From 309e64b8a2ba5a194bc91d8e844f1f33df71a89c Mon Sep 17 00:00:00 2001 From: maziggy Date: Mon, 7 Sep 2026 19:23:48 +0200 Subject: [PATCH] fix(ams): resolve a slot's K profile by index when the printer does not file per hotend (issue #3044) An X2D with two AMS 2 Pro, one per hotend, showed a K value on every slot of the first and nothing on any slot of the second. Configure Slot was worse than blank there: the picker offered no matching profile, the slot read as though nothing were bound, and choosing one changed nothing the user could see. Both symptoms are one rule. A calibration index can mean two different profiles on a dual-nozzle machine -- on the maintainer's H2C, index 16 is the left hotend's black PLA at K=0.018 and 15 is the right's at K=0.020 -- so the index is resolved against the slot's own hotend, and a miss shows nothing rather than the other nozzle's number. That is right whenever the printer files its calibrations per hotend. This one files them per filament: the second AMS's slots point at the same entries as the first, every entry tagged with one extruder, and requiring a match found nothing at all. The hotend now has to appear in the table the printer actually sent before it is used to narrow anything. Where it does not, the index stands on its own, which is what BambuStudio does for this same card -- AMSItem.cpp resolves it through get_pa_k_n_value_by_cali_idx, matching cali_idx and nothing else. Where it does, nothing changes: the H2C case still blanks rather than borrowing, and the other hotend's profiles stay reachable under Other K profiles. The relaxed path still refuses an answer when the candidates disagree on a value. The premise that the table is always numbered per nozzle had been written into three comments and two layers of code; it is corrected where it appears. Alongside it, in the same picker: the K-profile options rendered the hotend suffix twice in the matching group and three times under Other, so every option on a dual-nozzle printer read "... . Left . Left". --- CHANGELOG.md | 1 + backend/app/api/routes/printers.py | 13 +- backend/app/utils/fts_routing.py | 15 +- backend/app/utils/kprofile_lookup.py | 84 +++++++--- .../test_kprofile_nozzle_buckets_2854.py | 99 ++++++++++++ .../components/ConfigureAmsSlotModal.test.tsx | 120 ++++++++++++++ .../src/components/ConfigureAmsSlotModal.tsx | 55 +++++-- .../{index-DgrwpFp7.js => index-DQmhpLf8.js} | 148 +++++++++--------- static/index.html | 2 +- 9 files changed, 415 insertions(+), 122 deletions(-) rename static/assets/{index-DgrwpFp7.js => index-DQmhpLf8.js} (94%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65232b6e9..b1f1d637f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ All notable changes to Bambuddy will be documented in this file. - **Every FTP session Bambuddy opens now records how it closed (#3009, reported by @grengojbo)** — the report traced a print completion that opened two FTP connections to the printer, deleted one file and then, as far as the log showed, did nothing else until the printer was powered off 21 minutes later, and concluded the connections were being left open. They were not: the post-print SD-card cleanup opens one connection per candidate filename and closes each in a `finally`, which a run against a real FTPS server confirms at the server end for both the delete and the 550 not-here case. The trouble is that nothing in the log could have said so. Neither the clean close nor the hard socket drop logged anything at any level, so a session closed properly and a socket genuinely abandoned produced the same output — none — and the only way to tell them apart was to read the source. Both now log one DEBUG line naming the printer, whether QUIT was acknowledged or the socket had to be dropped without it, why, and how long the session was held. Every connect in a debug log is now paired with a close, so the next person suspecting a leaked FTP connection can settle it from a support bundle rather than by inference. Nothing about the connection handling itself changed, and at default log level nothing new is printed. This does not explain the SD-card read/write error in that report or in #645; it only removes one theory from the list by making it checkable. ### Fixed +- **K values missing on a second AMS, and its slots unconfigurable (#3044, reported by @Zib-Astian)** — an X2D with two AMS 2 Pro, one per hotend, showed K on every slot of the first and nothing on any slot of the second. Configure Slot was worse than blank there: the picker offered no matching profile, the slot read as though it had none bound, and choosing one changed nothing visible. Both came from the same rule. A calibration index can mean two different profiles on a dual-nozzle printer — on the maintainer's H2C, index 16 is the left hotend's black PLA at K=0.018 and 15 is the right's at K=0.020 — so Bambuddy resolves it against the slot's own hotend and shows nothing rather than the wrong number. But a printer does not always file one profile per hotend. This one files one per filament, so the second AMS's slots point at the same entries as the first, all tagged with a single extruder, and requiring a match found nothing at all. The hotend now has to actually appear in the table the printer sent before it is used to narrow anything; where it does not, the index stands on its own, which is what BambuStudio does for the same card. Printers that do file per hotend are unaffected — the wrong-nozzle number still cannot be shown, and the other hotend's profiles stay under **Other K profiles**. Also fixed alongside it: on a dual-nozzle printer the K-profile dropdown named the hotend twice on every matching option and three times on every other one. - **The Timeline ignored Shortest Job First (#3043)** — turning SJF on reordered the pending list and the scheduler itself, but the Timeline tab kept drawing the queue in its pre-SJF order, indefinitely. It chained each swimlane's bars by queue position alone and was never told the setting existed, so the one view whose entire job is to say *when* each print will run was the one view answering for an order the scheduler had no intention of using. Bars now chain in the scheduler's own order — jumped items first, then shortest print time, then position — and the starvation guard is visible there too, so a long print that has finally come up shows as such instead of staying buried. All three surfaces that claim to show queue order (the pending list, the "if started now" ETA, and the Timeline) now share one comparator rather than three hand-copied ones. Along the way the pending list stopped folding a model name down to its first letter when grouping lanes, which had been interleaving *Any X1C* with *Any X2D* (and *Any P1S* with *Any P1P*) into a single run of rows. - **Preheat & Heat Soak delayed PLA prints by minutes with nothing to preheat for (#3041)** — with the feature on, a queued PLA print sat for five to seven minutes before the file was even uploaded, and turning the feature off started it immediately. The per-filament map does what it says and gives PLA a chamber target of 0, and the chamber phase duly skipped — but the stage then heated the bed to the print's own temperature, waited for it, and held the full soak anyway, because the soak had no idea it was holding for a chamber that was never asked for. That is pure delay: the print's G-code sets the bed the moment it starts, so preheating it here only moved the warm-up ahead of the upload instead of overlapping with it, and there was no chamber to condition. A chamber target of 0 derived from the filament map now skips the whole stage, so PLA, PETG, TPU and PVA prints dispatch straight away with the feature left on. The one thing the skip still does is put the airduct flap back to cooling, which is a single command and no wait — an H2D left in heating mode by the ABS job before it would otherwise cook the PLA that follows. Explicit instructions are untouched: a chamber target of **0** typed into a print's own override still heats the bed and runs the soak, which is what the queue documentation has always promised it does, as does forcing a print's Preheat override to **On**. Prints that genuinely want chamber heat are unaffected, including on the P1S/P1P/A1 tier where the bed and the soak timer are the whole mechanism. - **Server-side slicing rejected MakerWorld 3MFs over filament-index fields, and the plate preview was never sanitised at all (#3030, reported by @kielsucks)** — Bambu Studio writes `0` into `wall_filament`, `sparse_infill_filament` and `solid_infill_filament` to mean "use whichever filament the object is set to". Bambu Studio and OrcaSlicer 2.4 both accept that; OrcaSlicer 2.3 and earlier counted these from 1 and reject it outright with `wall_filament: 0 not in range [1.000000,...]`, so a sidecar pinned to one of those images refused the file before it ever looked at the profiles Bambuddy supplied. This is the same shape as the `-1` inherit markers fixed in #1201, with a different marker value, so the sanitiser's allowlist is now a key-to-marker map rather than one global constant — a `-1` on a filament index is a real value and is left alone, as is a `0` on a raft field. The key is removed rather than rewritten, which is what makes it safe on every build: the slicer then falls back to its own default, which is the same `0` on the versions where `0` was legal and `1` on the older ones, which is what "the active filament" means there. Fixed alongside, and the more consequential half: **the plate preview never ran the sanitiser**, so a file that sliced fine could still fail the automatic preview and fall back to a guessed filament list — and it matters more there than in a real slice, because the preview deliberately runs on the file's own embedded settings and so has no `--load-settings` pass that could supply a replacement for a rejected field. Both paths now share one sanitiser. diff --git a/backend/app/api/routes/printers.py b/backend/app/api/routes/printers.py index 90f7af25b..e6f045c72 100644 --- a/backend/app/api/routes/printers.py +++ b/backend/app/api/routes/printers.py @@ -528,13 +528,14 @@ async def get_printer_status( ams_exists = False raw_data = state.raw_data or {} - # K value for a slot's bound profile, resolved against its own nozzle. + # K value for a slot's bound profile, preferring the slot's own nozzle. # - # Keyed on more than cali_idx: the printer numbers its calibration table - # per nozzle, so entry 16 exists on each and means a different profile on - # each. A cali_idx-only map let whichever profile the printer happened to - # list last overwrite the other, and the slot then displayed the wrong - # nozzle's K — on the maintainer's H2C, 0.018 and 0.020 for the same spool. + # cali_idx alone is not enough: two profiles can share an index and differ + # by extruder, and a cali_idx-only map let whichever the printer listed + # last overwrite the other — on the maintainer's H2C, 0.018 and 0.020 for + # the same spool. Nor is the extruder a requirement: one profile can be + # what both extruders' slots point at, and demanding a match blanked every + # slot on a second AMS (#3044). The resolver does both in order. _kprofile_k = build_slot_k_resolver(state) # Cached active-cycle drying params (filament + target temp) we sent diff --git a/backend/app/utils/fts_routing.py b/backend/app/utils/fts_routing.py index ba2ceb086..1f972cee6 100644 --- a/backend/app/utils/fts_routing.py +++ b/backend/app/utils/fts_routing.py @@ -1,11 +1,14 @@ """Which nozzle an AMS slot feeds, with or without a Filament Track Switch. -K-profiles are per-nozzle, and the printer's calibration tables are numbered -per-nozzle too: ``cali_idx: 16`` means "entry 16 of whichever nozzle feeds this -tray". Without a switch that is unambiguous, because each AMS is wired to one -extruder and says so in its ``info`` bits. With a switch installed every AMS -reports 0xE instead and is bound to a switch *inlet*, so the answer has to come -from the inlet binding. +K-profiles are per-nozzle: a calibration run belongs to the hotend it ran on, +and ``cali_idx: 16`` can name a different profile on each. (It need not — one +profile can also be what both extruders' slots point at, which is why the K +lookup in ``kprofile_lookup`` treats the extruder as a preference rather than a +filter — but the routing question below is the same either way.) Without a +switch the answer is unambiguous, because each AMS is wired to one extruder and +says so in its ``info`` bits. With a switch installed every AMS reports 0xE +instead and is bound to a switch *inlet*, so the answer has to come from the +inlet binding. Every caller that resolves a slot to an extruder should go through ``slot_extruder`` here. Three separate copies of that logic used to end in diff --git a/backend/app/utils/kprofile_lookup.py b/backend/app/utils/kprofile_lookup.py index 3e18ead4d..29245199a 100644 --- a/backend/app/utils/kprofile_lookup.py +++ b/backend/app/utils/kprofile_lookup.py @@ -2,21 +2,41 @@ H2-series trays carry no ``k`` field of their own — only ``cali_idx`` — so the K value on the AMS slot card (#2854) is looked up from the printer's -calibration table in ``state.kprofiles``. That table is not flat: the printer -numbers it **per nozzle**, so entry 16 exists under every nozzle it holds -profiles for and means a different profile on each. +calibration table in ``state.kprofiles``. -``state.kprofiles`` is the union across nozzle diameters (see -``BambuMQTTClient._store_kprofiles``), which is what the assign paths need but -makes ``cali_idx`` alone ambiguous. Resolution here is therefore: +That table is not a clean per-nozzle numbering, and treating it as one is what +blanked every slot on a second AMS (#3044). Both of these happen: -1. the slot's own extruder, which separates the two nozzles of a dual-nozzle - machine outright; -2. failing that, the diameters currently installed, which separates a live - table from one left behind by a nozzle that has since been swapped out. +* Two profiles can share a ``cali_idx`` and differ by extruder — measured on + the maintainer's H2C, where one spool read 0.018 on the left nozzle and + 0.020 on the right. Resolving on ``cali_idx`` alone showed the wrong one. +* One profile can be what *both* extruders' slots point at. In the #3044 + capture an X2D's B1 and B3 carried exactly the K values of A4 and A1 — the + same entries, tagged with one extruder. Demanding an extruder match left + every slot on the right-hand AMS blank. -If both fail to single out one profile the answer is ``None``. A blank space on -the card is a smaller error than confidently printing the other nozzle's number. +The two are told apart by whether the table distinguishes extruders *at all*: + +1. a profile filed under the slot's own extruder wins outright; +2. if the slot's extruder appears nowhere in the table, its tagging carries no + information about this slot, so match on ``cali_idx`` alone — taking the + answer only when the candidates agree on one K value, with the diameters + currently installed as the tie-break (which separates a live table from one + left behind by a nozzle that has since been swapped out). + +The condition on step 2 is what keeps the H2C case fixed. There extruder 0 does +hold profiles, so a right-hand slot pointing at an index only the left hotend +has is a real miss — the index means entry 16 *of the right nozzle's table*, +and the left's entry 16 is a different profile. Falling back there is how the +wrong K got shown in the first place. + +BambuStudio is looser still: ``AMSItem.cpp`` fills the same card through +``CalibUtils::get_pa_k_n_value_by_cali_idx``, which scans the whole history for +a matching ``cali_idx`` and takes the first hit regardless of nozzle. + +If neither step singles out one value the answer is ``None``. A blank space on +the card is a smaller error than confidently printing the other nozzle's +number. """ from collections.abc import Callable @@ -34,6 +54,9 @@ def build_slot_k_resolver(state) -> Callable[[int | None, int, int], float | Non # detects the ambiguity: more than one entry means two nozzles' tables both # claim this index on this extruder. table: dict[tuple[int, int], dict[str, float]] = {} + # cali_idx -> [(nozzle_diameter, k)], every extruder together. The fallback + # for an index no profile claims on the slot's own extruder. + shared: dict[int, list[tuple[str, float]]] = {} for kp in getattr(state, "kprofiles", None) or []: if kp.slot_id is None or not kp.k_value: continue @@ -45,22 +68,45 @@ def build_slot_k_resolver(state) -> Callable[[int | None, int, int], float | Non extruder = int(kp.extruder_id or 0) except (ValueError, TypeError): extruder = 0 - table.setdefault((extruder, kp.slot_id), {})[str(kp.nozzle_diameter or "")] = k_value + nozzle = str(kp.nozzle_diameter or "") + table.setdefault((extruder, kp.slot_id), {})[nozzle] = k_value + shared.setdefault(kp.slot_id, []).append((nozzle, k_value)) + + # Which extruders the table names at all. An extruder missing from this is + # one the printer is not filing profiles under, which is what makes the + # cali_idx-only fallback safe for it. + extruders_filed = {extruder for extruder, _ in table} installed = {str(n.nozzle_diameter) for n in (getattr(state, "nozzles", None) or []) if n.nozzle_diameter} + def _agreed(candidates: list[tuple[str, float]]) -> float | None: + """The one K these candidates describe, or None if they disagree. + + Values rather than entries: two nozzles listing the same number is not + an ambiguity, it is the shared profile the fallback exists for. + """ + values = {k for _, k in candidates} + if len(values) == 1: + return values.pop() + live = {k for nozzle, k in candidates if nozzle in installed} + return live.pop() if len(live) == 1 else None + def resolve(cali_idx: int | None, ams_id: int, tray_id: int) -> float | None: if cali_idx is None: return None extruder = slot_extruder(ams_id, tray_id, state.ams_extruder_map, state.ams_switch_inlet) # Single-nozzle printers report everything under extruder 0, and that # is also the right default when the routing is simply unknown. - by_nozzle = table.get((extruder if extruder is not None else 0, cali_idx)) - if not by_nozzle: + own = extruder if extruder is not None else 0 + by_nozzle = table.get((own, cali_idx)) + if by_nozzle: + if len(by_nozzle) == 1: + return next(iter(by_nozzle.values())) + live = [k for nozzle, k in by_nozzle.items() if nozzle in installed] + return live[0] if len(live) == 1 else None + if own in extruders_filed: return None - if len(by_nozzle) == 1: - return next(iter(by_nozzle.values())) - live = [k for nozzle, k in by_nozzle.items() if nozzle in installed] - return live[0] if len(live) == 1 else None + candidates = shared.get(cali_idx) + return _agreed(candidates) if candidates else None return resolve diff --git a/backend/tests/unit/services/test_kprofile_nozzle_buckets_2854.py b/backend/tests/unit/services/test_kprofile_nozzle_buckets_2854.py index 397d57de9..178fc426f 100644 --- a/backend/tests/unit/services/test_kprofile_nozzle_buckets_2854.py +++ b/backend/tests/unit/services/test_kprofile_nozzle_buckets_2854.py @@ -190,6 +190,105 @@ class TestSlotKResolver: assert resolve(3, 0, 0) is None +class TestASlotWhoseExtruderClaimsNoProfile: + """#3044: an X2D showed K on its first AMS and nothing on its second. + + The printer does not always file a profile per hotend. In the reporter's + capture the second AMS's slots pointed at the same table entries as the + first -- B1 read the K of A4, B3 the K of A1 -- and those entries carry one + extruder. Requiring the slot's own extruder to match therefore found + nothing for every slot on the right-hand AMS. + + BambuStudio, filling the same card, does not scope by extruder at all: + ``AMSItem.cpp`` resolves through ``get_pa_k_n_value_by_cali_idx``, which + takes the first entry with a matching ``cali_idx``. + """ + + def test_a_shared_profile_resolves_on_the_other_extruder(self): + resolve = build_slot_k_resolver( + _state( + [_profile(3, "0.021000", "0.4", extruder=0)], + ams_extruder_map={"0": 0, "1": 1}, + ) + ) + + assert resolve(3, 0, 0) == pytest.approx(0.021) + assert resolve(3, 1, 0) == pytest.approx(0.021) + + def test_the_slots_own_extruder_still_wins_over_the_fallback(self): + """The H2C case has to keep winning: the fallback is a last resort, not + a replacement. Index 3 exists on both hotends with different K.""" + resolve = build_slot_k_resolver( + _state( + [_profile(3, "0.020000", "0.4", extruder=0), _profile(3, "0.018000", "0.4", extruder=1)], + ams_extruder_map={"0": 1, "1": 0}, + ) + ) + + assert resolve(3, 0, 0) == pytest.approx(0.018) + assert resolve(3, 1, 0) == pytest.approx(0.020) + + def test_two_entries_agreeing_on_one_k_is_not_an_ambiguity(self): + """Both hotends calibrated to the same number says nothing is in doubt.""" + resolve = build_slot_k_resolver( + _state( + [_profile(3, "0.021000", "0.4", extruder=0), _profile(3, "0.021000", "0.6", extruder=0)], + nozzles=("0.4", "0.6"), + ams_extruder_map={"0": 1}, + ) + ) + + assert resolve(3, 0, 0) == pytest.approx(0.021) + + def test_the_fallback_still_prefers_the_nozzle_that_is_fitted(self): + """A table left behind by a swapped-out nozzle loses to the live one.""" + resolve = build_slot_k_resolver( + _state( + [_profile(3, "0.020000", "0.4", extruder=0), _profile(3, "0.017000", "0.6", extruder=0)], + nozzles=("0.6",), + ams_extruder_map={"0": 1}, + ) + ) + + assert resolve(3, 0, 0) == pytest.approx(0.017) + + def test_the_fallback_refuses_when_the_candidates_disagree(self): + """Blank still beats confidently printing one of two different numbers.""" + resolve = build_slot_k_resolver( + _state( + [_profile(3, "0.020000", "0.4", extruder=0), _profile(3, "0.017000", "0.6", extruder=0)], + nozzles=("0.4", "0.6"), + ams_extruder_map={"0": 1}, + ) + ) + + assert resolve(3, 0, 0) is None + + def test_a_hotend_with_its_own_profiles_does_not_borrow_the_others(self): + """The H2C guard, which the fallback must not reopen. + + Index 16 is the left hotend's entry and index 15 the right's. A + right-hand slot bound to 16 means "entry 16 of the right nozzle's + table", which this printer does not have -- and the left's entry 16 is + a different profile, not a stand-in. Blank is the honest answer. + """ + resolve = build_slot_k_resolver( + _state( + [_profile(16, "0.018000", "0.4", extruder=1), _profile(15, "0.020000", "0.4", extruder=0)], + ams_extruder_map={"0": 0, "1": 1}, + ) + ) + + assert resolve(16, 0, 0) is None + assert resolve(15, 0, 0) == pytest.approx(0.020) + assert resolve(16, 1, 0) == pytest.approx(0.018) + + def test_an_index_no_profile_holds_is_still_nothing(self): + resolve = build_slot_k_resolver(_state([_profile(3, "0.020000", "0.4", extruder=0)], ams_extruder_map={"0": 1})) + + assert resolve(9, 0, 0) is None + + class TestPrimeKProfileTable: """Nothing used to read the calibration table on connect. diff --git a/frontend/src/__tests__/components/ConfigureAmsSlotModal.test.tsx b/frontend/src/__tests__/components/ConfigureAmsSlotModal.test.tsx index c472d91f5..bcc7dca9d 100644 --- a/frontend/src/__tests__/components/ConfigureAmsSlotModal.test.tsx +++ b/frontend/src/__tests__/components/ConfigureAmsSlotModal.test.tsx @@ -869,6 +869,126 @@ describe('ConfigureAmsSlotModal', () => { }); }); + describe('A slot whose extruder claims no profile (#3044)', () => { + // Reporter's X2D: two AMS 2 Pro, one per hotend, the same filaments in + // both. The printer files one profile per filament rather than one per + // hotend, so the second AMS's slots point at entries tagged extruder 0. + // Scoping the picker to the slot's own extruder left it with nothing: + // the slot read as unconfigured and choosing a profile changed nothing + // the user could see. + const sharedProfiles = [ + { name: 'PLA', k_value: '0.021', slot_id: 1 }, + { name: 'PETG', k_value: '0.026', slot_id: 4 }, + ].map(p => ({ + ...p, + extruder_id: 0, + nozzle_id: 'HH00-0.4', + nozzle_diameter: '0.4', + filament_id: 'GFL99', + n_coef: '0', + ams_id: 0, + tray_id: 0, + setting_id: '', + })); + + // AMS-B, right-hand hotend, already bound to the PLA profile the A-side + // slots use. + const rightHandSlot = { + ...defaultProps.slotInfo, + amsId: 1, + savedPresetId: 'builtin_GFL99', + extruderId: 1, + caliIdx: 1, + }; + + beforeEach(() => { + (api.getBuiltinFilaments as ReturnType).mockResolvedValue([ + { filament_id: 'GFL99', name: 'Generic PLA', filament_type: 'PLA' }, + ]); + (api.getKProfiles as ReturnType).mockResolvedValue({ profiles: sharedProfiles }); + }); + + it('offers the profiles as matches rather than an empty picker', async () => { + render(); + + await waitFor(() => { + expect(screen.getByRole('option', { name: /PLA \(K=0.021\)/ })).toBeInTheDocument(); + }); + // Matches are the select's direct children; anything demoted to the + // "Other K profiles" group sits inside an optgroup instead. Being merely + // present is what the slot already had, and it read as unconfigured. + const matches = Array.from(screen.getByRole('combobox').querySelectorAll(':scope > option')) + .map(o => (o as HTMLOptionElement).value) + .filter(Boolean); + expect(matches).toEqual(['0|PLA|0.021', '0|PETG|0.026']); + }); + + it('shows the slot as already bound to its active profile', async () => { + render(); + + await waitFor(() => { + expect(screen.getByRole('option', { name: /PLA \(K=0.021\)/ })).toBeInTheDocument(); + }); + // Not the "no K profile" placeholder, which is what the slot showed while + // the active profile could not be found on this extruder. + expect((screen.getByRole('combobox') as HTMLSelectElement).value).toBe('0|PLA|0.021'); + }); + + it('still scopes to the slot own hotend when that hotend has its own profiles', async () => { + // The H2C case behind the scoping: one filament calibrated on both + // hotends, two profiles, one right answer per slot. The fallback is a + // last resort and must not reopen this. + (api.getKProfiles as ReturnType).mockResolvedValue({ + profiles: [ + { ...sharedProfiles[0], extruder_id: 0, k_value: '0.020', slot_id: 1 }, + { ...sharedProfiles[0], extruder_id: 1, k_value: '0.018', slot_id: 2 }, + ], + }); + render( + + ); + + await waitFor(() => { + expect(screen.getByRole('option', { name: /K=0.018/ })).toBeInTheDocument(); + }); + expect((screen.getByRole('combobox') as HTMLSelectElement).value).toBe('1|PLA|0.018'); + // The left hotend's copy is still reachable, but under "Other". + const other = screen.getByRole('option', { name: /K=0.020/ }); + expect(other.parentElement?.tagName).toBe('OPTGROUP'); + }); + + it('names each hotend once, not two or three times', async () => { + // The label rendered kProfileNozzleSuffix twice in the matching group and + // three times under "Other", so every option on a dual-nozzle printer + // read "... . Left . Left". + (api.getKProfiles as ReturnType).mockResolvedValue({ + profiles: [ + { ...sharedProfiles[0], extruder_id: 0, k_value: '0.020', slot_id: 1 }, + { ...sharedProfiles[0], extruder_id: 1, k_value: '0.018', slot_id: 2 }, + ], + }); + render( + + ); + + await waitFor(() => { + expect(screen.getByRole('option', { name: /K=0.018/ })).toBeInTheDocument(); + }); + for (const option of screen.getAllByRole('option')) { + // The suffix is the only thing that puts a middot in an option label, + // so counting separators counts how many times the hotend was named. + const separators = (option.textContent ?? '').match(/\u00b7/g) ?? []; + expect(separators.length).toBeLessThanOrEqual(1); + } + }); + }); + it('does not include the active K-profile when caliIdx is 0 or null (#1689 guard)', async () => { // cali_idx == 0 / null means no profile is active (printer default 0.020). // The safety net only triggers for activeIdx > 0 — otherwise unrelated diff --git a/frontend/src/components/ConfigureAmsSlotModal.tsx b/frontend/src/components/ConfigureAmsSlotModal.tsx index 1385015ad..4acf9d588 100644 --- a/frontend/src/components/ConfigureAmsSlotModal.tsx +++ b/frontend/src/components/ConfigureAmsSlotModal.tsx @@ -114,21 +114,39 @@ function kProfileOptionValue(profile: KProfile): string { return `${profile.extruder_id ?? 0}|${profile.name}|${profile.k_value}`; } +/** + * Does the printer file its calibration table per hotend? + * + * It is not a property of the machine but of the table it sent. When the + * slot's own hotend appears in it, an index means "entry N of *that* hotend's + * table" and the tagging is load-bearing. When the hotend appears nowhere, the + * tagging says nothing about this slot and scoping by it only hides profiles + * the slot really does use. + */ +function tableNamesThisHotend(profiles: KProfile[], extruderId: number | undefined): boolean { + if (extruderId === undefined) return false; + return profiles.some(p => (p.extruder_id ?? 0) === extruderId); +} + /** * The profile a slot's `cali_idx` points at. * - * An index is only meaningful together with a nozzle: the printer numbers its - * calibration table per hotend, so entry 16 exists on both and means a - * different profile on each. On the maintainer's H2C, index 16 is the left - * hotend's black PLA at K=0.018 and index 15 is the right's at K=0.020. - * Matching on the index alone returns whichever the printer listed first. + * Scoped to the slot's own hotend where the table names it: on the + * maintainer's H2C, index 16 is the left hotend's black PLA at K=0.018 and + * index 15 is the right's at K=0.020, so a right-hand slot bound to 16 must + * come up empty rather than follow the index into the left's table. + * + * Where the table does not name the hotend, the printer is filing one profile + * per filament instead — an X2D's second AMS points at the same entries as its + * first — and demanding a match found nothing at all, leaving every slot on + * that AMS unconfigured with no error (#3044). There the index stands alone. */ function findProfileByCaliIdx( profiles: KProfile[], caliIdx: number, extruderId: number | undefined ): KProfile | undefined { - if (extruderId !== undefined) { + if (tableNamesThisHotend(profiles, extruderId)) { return profiles.find(p => p.slot_id === caliIdx && (p.extruder_id ?? 0) === extruderId); } return profiles.find(p => p.slot_id === caliIdx); @@ -992,13 +1010,18 @@ export function ConfigureAmsSlotModal({ return false; }); - // Scope to the slot's own nozzle when it is known: a K-profile calibrated on - // the other hotend is not a match for this slot, and offering it as one is - // how the wrong K got bound. Those profiles are still reachable below under - // "Other", where the option label names the hotend. - const onThisNozzle = slotInfo.extruderId === undefined - ? filtered - : filtered.filter(p => (p.extruder_id ?? 0) === slotInfo.extruderId); + // Scope to the slot's own nozzle where the table names it: a K-profile + // calibrated on the other hotend is not a match for this slot, and offering + // it as one is how the wrong K got bound. Those profiles are still + // reachable below under "Other", where the option label names the hotend. + // + // Where the table names no profile on this hotend at all, scoping emptied + // the list instead — the X2D case in #3044, where the second AMS's slots + // point at the first's entries — so the tagging is ignored rather than + // enforced. + const onThisNozzle = tableNamesThisHotend(kprofilesData.profiles, slotInfo.extruderId) + ? filtered.filter(p => (p.extruder_id ?? 0) === slotInfo.extruderId) + : filtered; // Deduplicate genuine duplicates — same nozzle, same name, same K. const seen = new Map(); @@ -1374,14 +1397,14 @@ export function ConfigureAmsSlotModal({ {matchingKProfiles.map((profile) => ( ))} {otherKProfiles.length > 0 && ( {otherKProfiles.map((profile) => ( ))} @@ -1626,7 +1649,7 @@ export function ConfigureAmsSlotModal({ {otherKProfiles.map((profile) => ( ))} diff --git a/static/assets/index-DgrwpFp7.js b/static/assets/index-DQmhpLf8.js similarity index 94% rename from static/assets/index-DgrwpFp7.js rename to static/assets/index-DQmhpLf8.js index 8a865def5..65e8bee5d 100644 --- a/static/assets/index-DgrwpFp7.js +++ b/static/assets/index-DQmhpLf8.js @@ -4128,39 +4128,39 @@ void main() { `;function jse(e,t){let n=(t,n)=>{let r=Math.min(2048,Math.max(1,n)),i=Math.max(1,Math.ceil(n/r)),a=new Float32Array(r*i*4);a.set(t.subarray(0,Math.min(t.length,r*i*4)));let o=new e.DataTexture(a,r,i,e.RGBAFormat,e.FloatType);return o.minFilter=o.magFilter=e.NearestFilter,o.generateMipmaps=!1,o.needsUpdate=!0,o},r=n(t.position,t.nV),i=n(t.hwa,t.nV),a=new e.InstancedBufferGeometry;a.setIndex(wse),a.setAttribute(`position`,new e.BufferAttribute(new Float32Array(24),3)),a.setAttribute(`vertex_id_float`,new e.BufferAttribute(new Float32Array([0,1,2,3,4,5,6,7]),1));let o=new e.InstancedInterleavedBuffer(t.segIndex,4);a.setAttribute(`seg_id_a_u`,new e.InterleavedBufferAttribute(o,1,0)),a.setAttribute(`seg_layer_u`,new e.InterleavedBufferAttribute(o,1,1)),a.instanceCount=0;let s=new e.RawShaderMaterial({glslVersion:e.GLSL3,uniforms:{view_matrix:{value:new e.Matrix4},projection_matrix:{value:new e.Matrix4},camera_position:{value:new e.Vector3},position_tex:{value:r},height_width_angle_tex:{value:i},layer_lo:{value:0},layer_hi:{value:t.layerCount}},vertexShader:kse,fragmentShader:Ase,side:e.DoubleSide}),c=new e.Mesh(a,s),l=null;if(t.bbox){let{min:n,max:r}=t.bbox,i=new e.Vector3((n[0]+r[0])/2,(n[1]+r[1])/2,(n[2]+r[2])/2),a=Math.hypot(r[0]-n[0],r[1]-n[1],r[2]-n[2])/2+2;l=new e.Sphere(i,a)}c.frustumCulled=!!l,l&&(a.boundingSphere=l);let u=new e.Matrix4,d=new e.Vector3;c.onBeforeRender=(e,t,n)=>{s.uniforms.projection_matrix.value.copy(n.projectionMatrix),s.uniforms.view_matrix.value.multiplyMatrices(n.matrixWorldInverse,c.matrixWorld),u.copy(c.matrixWorld).invert(),n.getWorldPosition(d).applyMatrix4(u),s.uniforms.camera_position.value.copy(d)};let f=new e.BufferGeometry;f.setAttribute(`position`,new e.BufferAttribute(t.travelPos,3)),f.setDrawRange(0,0);let p=new e.LineSegments(f,new e.LineBasicMaterial({color:7041658}));p.frustumCulled=!!l,p.visible=!1,l&&(f.boundingSphere=l);let m=!1,h=0,g=t.layerCount-1,_=()=>{let e=t.travelPrefix[h],n=t.travelPrefix[g+1];f.setDrawRange(m?e*2:0,m?(n-e)*2:0)},v=(e,n)=>{let r=t.layerCount;h=Math.max(0,Math.min(r-1,e|0)),g=Math.max(h,Math.min(r-1,n|0)),s.uniforms.layer_lo.value=h,s.uniforms.layer_hi.value=g,a.instanceCount=t.layerSegPrefix[g+1],_()};return{mesh:c,travLines:p,setVisibleLayers:e=>v(0,(e|0)-1),setLayerRange:v,setTravelVisible:e=>{m=!!e,p.visible=m,_()},setColors:e=>{let t=i.image.data,n=Math.min(e.length,t.length)/4;for(let r=0;r{a.dispose(),s.dispose(),r.dispose(),i.dispose(),f.dispose(),p.material.dispose()},nSeg:t.nSeg,layerCount:t.layerCount}}var Mse=[`filament`,`feature`,`height`,`width`],Nse=[{type:iT.wall,key:`gcodeViewer.feature.wall`,fallback:`Walls`},{type:iT.sparseInfill,key:`gcodeViewer.feature.sparseInfill`,fallback:`Sparse infill`},{type:iT.solidInfill,key:`gcodeViewer.feature.solidInfill`,fallback:`Solid infill`},{type:iT.bridge,key:`gcodeViewer.feature.bridge`,fallback:`Bridge / overhang`},{type:iT.support,key:`gcodeViewer.feature.support`,fallback:`Support`},{type:iT.skirt,key:`gcodeViewer.feature.skirt`,fallback:`Skirt / brim`},{type:iT.gapFill,key:`gcodeViewer.feature.gapFill`,fallback:`Gap fill`},{type:iT.ironing,key:`gcodeViewer.feature.ironing`,fallback:`Ironing`},{type:iT.primeTower,key:`gcodeViewer.feature.primeTower`,fallback:`Prime tower`}];function Pse(e){let t=e.replace(`#`,``),n=t.length===3?t.split(``).map(e=>e+e).join(``):t,r=Number.parseInt(n.slice(0,6),16);return Number.isFinite(r)?r:44610}var mT=e=>e?`rgb(${e.map(e=>Math.round(e*255)).join(`,`)})`:`transparent`;function Fse(){let e=fT;return e.map((t,n)=>`${mT(t)} ${(n/(e.length-1)*100).toFixed(0)}%`).join(`, `)}function hT(e){return Number.isFinite(e)?Math.abs(e)<10?e.toFixed(2):e.toFixed(0):`-`}function gT({gcodeUrl:e,buildVolume:t={x:256,y:256,z:256},filamentColors:n,className:r=``}){let{t:i}=U(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),m=(n?.length??0)>0,[h,g]=(0,y.useState)(m?`filament`:`feature`),_=(0,y.useRef)(!1);(0,y.useEffect)(()=>{m&&!_.current&&g(`filament`)},[m]);let[v,b]=(0,y.useState)([0,0]),[x,S]=(0,y.useState)(new Set),[C,w]=(0,y.useState)(new Set),T=h===`filament`,E=T?C:x,D=[...E].sort((e,t)=>e-t).join(`,`),O=e=>{let t=t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n};T?w(t):S(t)},[k,A]=(0,y.useState)(!1),j=(0,y.useRef)(null),M=(0,y.useRef)(null),N=(0,y.useRef)(null),P=(0,y.useRef)(null),F=(0,y.useRef)(null),[I,L]=(0,y.useState)(0),R=(0,y.useRef)(k),z=(0,y.useRef)(v);R.current=k,z.current=v;let B=(0,y.useRef)(!1),V=(0,y.useMemo)(()=>({x:t.x,y:t.y,z:t.z}),[`${t.x}x${t.y}x${t.z}`]);(0,y.useEffect)(()=>{let t=!1;s(!0),l(null),d(!1),p(null);let n={},r=ud();return r&&(n.Authorization=`Bearer ${r}`),fetch(e,{headers:n}).then(async e=>{if(!e.ok){if(e.status===404){let t=await e.json().catch(()=>({}));if(typeof t.detail==`string`&&t.detail.includes(`sliced`))throw d(!0),Error(`not_sliced`)}throw Error(`Failed to load G-code`)}return e.text()}).then(e=>{if(t)return;B.current=!1;let n=xse(e);p(n),b([0,Math.max(0,n.layers.length-1)]),s(!1)}).catch(e=>{t||(e.message!==`not_sliced`&&l(e.message),s(!1))}),()=>{t=!0}},[e]),(0,y.useEffect)(()=>{let e=a.current;if(!e)return;let t=e.clientWidth||1,n=e.clientHeight||1,r=new cy;r.background=new lv(1710618),j.current=r;let i=new Qv(45,t/n,.1,1e4);M.current=i;let o=new Lw({antialias:!0});o.setSize(t,n),o.setPixelRatio(Math.min(window.devicePixelRatio,2)),o.domElement.style.display=`block`,o.domElement.style.position=`absolute`,o.domElement.style.inset=`0`,e.appendChild(o.domElement);let s=new qw(i,o.domElement);s.enableDamping=!0,s.dampingFactor=.05,N.current=s;let c=new wC(Math.max(V.x,V.y),Math.ceil(Math.max(V.x,V.y)/16),4473924,3355443);c.position.set(V.x/2,0,-V.y/2),r.add(c);let l=0,u=()=>{l=requestAnimationFrame(u),s.update(),o.render(r,i)};u();let d=()=>{let t=e.clientWidth||1,n=e.clientHeight||1;i.aspect=t/n,i.updateProjectionMatrix(),o.setSize(t,n)},f=new ResizeObserver(d);return f.observe(e),window.addEventListener(`resize`,d),()=>{window.removeEventListener(`resize`,d),f.disconnect(),cancelAnimationFrame(l),s.dispose(),c.geometry.dispose(),c.material.dispose(),o.dispose(),e.removeChild(o.domElement),j.current=null,M.current=null,N.current=null}},[V]),(0,y.useEffect)(()=>{let e=j.current,t=M.current,n=N.current;if(!e||!t||!n||!f||f.layers.length===0)return;let r=Tse(Cse(T?Sse(f.layers):f.layers,E),f.defaultWidth),i=jse(Uie,r);F.current=r,P.current=i;let a=new iy;if(a.rotation.x=-Math.PI/2,a.add(i.mesh),a.add(i.travLines),e.add(a),i.setTravelVisible(R.current),i.setLayerRange(z.current[0],z.current[1]),L(e=>e+1),!B.current){B.current=!0;let e=f.bounds,r=e?new Zg(new $(e.min[0],e.min[2],-e.max[1]),new $(e.max[0],e.max[2],-e.min[1])):new Zg(new $(0,0,0),new $(V.x,1,-V.y)),i=r.getCenter(new $),a=Math.max(r.getSize(new $).length()/2,.001),o=Og.degToRad(t.fov),s=2*Math.atan(Math.tan(o/2)*t.aspect),c=1.15*Math.max(a/Math.sin(o/2),a/Math.sin(s/2));t.position.copy(i).addScaledVector(new $(.7,.5,.7).normalize(),c),t.near=Math.max(c/1e3,.01),t.far=c+a*4,t.updateProjectionMatrix(),n.target.copy(i),n.update()}return()=>{e.remove(a),i.dispose(),P.current=null,F.current=null}},[f,T,V,D]),(0,y.useEffect)(()=>{P.current?.setLayerRange(v[0],v[1])},[v]),(0,y.useEffect)(()=>{P.current?.setTravelVisible(k)},[k]);let ee=(0,y.useMemo)(()=>{let e=F.current;if(!e||!f)return null;if(T){let t=new Float32Array(e.nV*4);for(let r=0;r{ee&&P.current?.setColors(ee.color)},[ee]);let te=f?.layers.length??0;return u?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 text-bambu-gray ${r}`,children:[(0,G.jsx)(lc,{className:`w-8 h-8`}),i(`gcodeViewer.notSliced`,`This file has not been sliced yet.`)]}):c?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 text-bambu-gray ${r}`,children:[(0,G.jsx)(lc,{className:`w-8 h-8`}),i(`gcodeViewer.loadFailed`,`Could not load the G-code for this file.`)]}):(0,G.jsxs)(`div`,{className:`relative ${r}`,children:[(0,G.jsx)(`div`,{ref:a,className:`absolute inset-0`}),o&&(0,G.jsxs)(`div`,{className:`absolute inset-0 flex items-center justify-center gap-2 bg-bambu-dark/60 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`gcodeViewer.loading`,`Reading toolpath...`)]}),!o&&te>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`absolute left-3 top-3 flex flex-col gap-2 rounded border border-bambu-dark-tertiary bg-bambu-dark/85 p-2`,children:[(0,G.jsx)(`div`,{className:`flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:Mse.filter(e=>e!==`filament`||m).map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{_.current=!0,g(e)},className:`px-2 py-1 text-xs transition-colors ${h===e?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:i(`gcodeViewer.view.${e}`,e)},e))}),(0,G.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 text-xs text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:k,onChange:e=>A(e.target.checked),className:`cursor-pointer`}),i(`gcodeViewer.showTravel`,`Travel moves`)]}),T?(0,G.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:(n??[]).map((e,t)=>{let n=t+1,r=E.has(n);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>O(n),"aria-pressed":!r,className:`flex w-full items-center gap-1.5 text-left text-[0.7rem] transition-opacity hover:text-white ${r?`text-bambu-gray/40`:`text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 shrink-0 rounded-sm border border-white/20 ${r?`opacity-25`:``}`,style:{backgroundColor:e},"aria-hidden":!0}),(0,G.jsx)(`span`,{className:r?`line-through`:``,children:i(`gcodeViewer.filamentSlot`,`Filament {{n}}`,{n:t+1})})]})},t)})}):h===`feature`?(0,G.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:Nse.map(e=>{let t=E.has(e.type);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>O(e.type),"aria-pressed":!t,className:`flex w-full items-center gap-1.5 text-left text-[0.7rem] transition-opacity hover:text-white ${t?`text-bambu-gray/40`:`text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 shrink-0 rounded-sm ${t?`opacity-25`:``}`,style:{backgroundColor:mT(uT[e.type])},"aria-hidden":!0}),(0,G.jsx)(`span`,{className:t?`line-through`:``,children:i(e.key,e.fallback)})]})},e.type)})}):ee&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsx)(`div`,{className:`h-2.5 w-full rounded-sm border border-white/10`,style:{background:`linear-gradient(to right, ${Fse()})`},"aria-hidden":!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-[0.7rem] tabular-nums text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:hT(ee.min)}),(0,G.jsx)(`span`,{className:`text-bambu-gray/70`,children:ee.unit}),(0,G.jsx)(`span`,{children:hT(ee.max)})]})]})]}),(0,G.jsxs)(`div`,{className:`absolute right-3 top-3 flex flex-col items-center gap-1 rounded border border-bambu-dark-tertiary bg-bambu-dark/85 p-2`,children:[(0,G.jsx)(`span`,{className:`text-[0.65rem] tabular-nums text-bambu-gray`,children:v[1]+1}),(0,G.jsx)(`input`,{type:`range`,min:0,max:Math.max(0,te-1),value:v[1],onChange:e=>{let t=Number(e.target.value);b(([e])=>[Math.min(e,t),t])},"aria-label":i(`gcodeViewer.topLayer`,`Top layer`),className:`h-40 w-4 cursor-pointer`,style:{writingMode:`vertical-lr`,direction:`rtl`}}),(0,G.jsx)(`input`,{type:`range`,min:0,max:Math.max(0,te-1),value:v[0],onChange:e=>{let t=Number(e.target.value);b(([,e])=>[t,Math.max(t,e)])},"aria-label":i(`gcodeViewer.bottomLayer`,`Bottom layer`),className:`h-40 w-4 cursor-pointer`,style:{writingMode:`vertical-lr`,direction:`rtl`}}),(0,G.jsx)(`span`,{className:`text-[0.65rem] tabular-nums text-bambu-gray`,children:v[0]+1})]})]})]})}function Ise({printerId:e,filePath:t,filename:n,onClose:r}){let[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=n.toLowerCase().split(`.`).pop()||``,p=f===`3mf`||f===`stl`,m=f===`gcode`||f===`3mf`;(0,y.useEffect)(()=>{a(p?`3d`:m?`gcode`:null)},[p,m]),(0,y.useEffect)(()=>{s([]),d(null),p&&(l(!0),Z.getPrinterFilePlates(e,t).then(e=>s(e.plates||[])).catch(()=>s([])).finally(()=>l(!1)))},[t,p,e]);let h=o.length>1,g=u==null?null:o.find(e=>e.index===u)??null;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-6`,onClick:r,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-4xl h-[80vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate flex-1 mr-4`,children:n}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`button`,{onClick:()=>p&&a(`3d`),disabled:!p,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${i===`3d`?`text-bambu-green border-b-2 border-bambu-green`:p?`text-bambu-gray hover:text-white`:`text-bambu-gray/30 cursor-not-allowed`}`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),`3D Model`,!p&&(0,G.jsx)(`span`,{className:`text-xs`,children:`(not available)`})]}),(0,G.jsxs)(`button`,{onClick:()=>m&&a(`gcode`),disabled:!m,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${i===`gcode`?`text-bambu-green border-b-2 border-bambu-green`:m?`text-bambu-gray hover:text-white`:`text-bambu-gray/30 cursor-not-allowed`}`,children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),`G-code Preview`,!m&&(0,G.jsx)(`span`,{className:`text-xs`,children:`(not sliced)`})]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-hidden p-4`,children:i===`3d`&&p?(0,G.jsxs)(`div`,{className:`w-full h-full flex flex-col gap-3`,children:[h&&(0,G.jsxs)(`div`,{className:`rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),`Plates`,c&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>d(null),className:`flex items-center gap-2 rounded-lg border p-2 text-left transition-colors ${u==null?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Zo,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:`All Plates`}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[o.length,` plate`,o.length===1?``:`s`]})]}),u==null&&(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green flex-shrink-0`})]}),o.map(n=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>d(n.index),className:`flex items-center gap-2 rounded-lg border p-2 text-left transition-colors ${u===n.index?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[n.has_thumbnail?(0,G.jsx)(`img`,{src:Z.getPrinterFilePlateThumbnail(e,n.index,t),alt:`Plate ${n.index}`,className:`w-10 h-10 rounded object-cover bg-bambu-dark-tertiary`}):(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Zo,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:n.name||`Plate ${n.index}`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:n.objects.length>0?n.objects.slice(0,2).join(`, `)+(n.objects.length>2?`…`:``):`${n.filaments.length} filament${n.filaments.length===1?``:`s`}`})]}),u===n.index&&(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green flex-shrink-0`})]},n.index))]}),g&&(0,G.jsxs)(`div`,{className:`mt-3 text-xs text-bambu-gray flex flex-wrap gap-x-4 gap-y-1`,children:[(0,G.jsxs)(`span`,{children:[`Plate `,g.index]}),g.print_time_seconds!=null&&(0,G.jsxs)(`span`,{children:[`ETA `,Math.round(g.print_time_seconds/60),` min`]}),g.filament_used_grams!=null&&(0,G.jsxs)(`span`,{children:[g.filament_used_grams.toFixed(1),` g`]}),g.filaments.length>0&&(0,G.jsxs)(`span`,{children:[g.filaments.length,` filament`,g.filaments.length===1?``:`s`]})]})]}),(0,G.jsx)(`div`,{className:`flex-1`,children:(0,G.jsx)(rT,{url:Z.getPrinterFileDownloadUrl(e,t),fileType:f,selectedPlateId:u,className:`w-full h-full`})})]}):i===`gcode`&&m?(0,G.jsx)(gT,{gcodeUrl:Z.getPrinterFileGcodeUrl(e,t),className:`w-full h-full`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:`No preview available for this file`})})]})})}function _T(e){if(e===0)return`0 GB`;let t=e/(1024*1024*1024);return t>=1?`${t.toFixed(1)} GB`:`${(e/(1024*1024)).toFixed(0)} MB`}function Lse(e,t){if(t)return Sc;switch(e.toLowerCase().split(`.`).pop()||``){case`3mf`:return sc;case`gcode`:return fc;case`mp4`:case`avi`:return mc;case`png`:case`jpg`:case`jpeg`:return Hc;default:return pc}}var Rse=[{value:`name-asc`,label:`Name (A-Z)`},{value:`name-desc`,label:`Name (Z-A)`},{value:`size-asc`,label:`Size (smallest)`},{value:`size-desc`,label:`Size (largest)`},{value:`date-asc`,label:`Date (oldest)`},{value:`date-desc`,label:`Date (newest)`}];function zse({printerId:e,printerName:t,onClose:n}){let{t:r}=U(),{showToast:i}=qd(),a=co(),[o,s]=(0,y.useState)(`/`),[c,l]=(0,y.useState)(new Set),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)([]),[m,h]=(0,y.useState)(`name-asc`),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),x=(0,y.useRef)(null),S=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let{data:C,isLoading:w,refetch:T}=K({queryKey:[`printerFiles`,e,o],queryFn:()=>Z.getPrinterFiles(e,o)}),{data:E}=K({queryKey:[`printerStorage`,e],queryFn:()=>Z.getPrinterStorage(e),staleTime:3e4}),D=(0,y.useMemo)(()=>[...C?.files??[]].filter(e=>!u||e.name.toLowerCase().includes(u.toLowerCase())).sort((e,t)=>{if(e.is_directory&&!t.is_directory)return-1;if(!e.is_directory&&t.is_directory)return 1;switch(m){case`name-asc`:return e.name.localeCompare(t.name);case`name-desc`:return t.name.localeCompare(e.name);case`size-asc`:return e.size-t.size;case`size-desc`:return t.size-e.size;case`date-asc`:return(e.mtime?rp(e.mtime)?.getTime()??0:0)-(t.mtime?rp(t.mtime)?.getTime()??0:0);case`date-desc`:{let n=e.mtime?rp(e.mtime)?.getTime()??0:0;return(t.mtime?rp(t.mtime)?.getTime()??0:0)-n}default:return e.name.localeCompare(t.name)}}),[C?.files,u,m]),O=!!C&&!C.warnings?.includes(`printer_unavailable`);(0,y.useEffect)(()=>{if(!O)return;let e=new Set(D.filter(e=>!e.is_directory).map(e=>e.path));l(t=>new Set([...t].filter(t=>e.has(t)))),x.current&&!e.has(x.current)&&(x.current=null)},[D,O]),(0,y.useEffect)(()=>()=>S.current?.abort(),[]);let k=q({mutationFn:async t=>{for(let n of t)await Z.deletePrinterFile(e,n)},onSuccess:()=>{i(r(`printerFiles.toast.filesDeleted`,{count:f.length})),a.invalidateQueries({queryKey:[`printerFiles`,e]}),l(new Set),x.current=null,p([])},onError:e=>{i(r(`printerFiles.toast.deleteFailed`,{error:e.message}),`error`)}}),A=e=>{s(e),l(new Set),x.current=null},j=()=>{if(o===`/`)return;let e=o.split(`/`).filter(Boolean);e.pop(),s(e.length?`/`+e.join(`/`):`/`),l(new Set),x.current=null},M=(e,t)=>{t.stopPropagation();let n=D.filter(e=>!e.is_directory).map(e=>e.path),r=x.current?n.indexOf(x.current):-1,i=n.indexOf(e),a=t.shiftKey&&r!==-1&&i!==-1;a||(x.current=e),l(t=>{let o=new Set(t);if(a){let e=Math.min(r,i),t=Math.max(r,i);n.slice(e,t+1).forEach(e=>o.add(e))}else o.has(e)?o.delete(e):o.add(e);return o})};return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:n,children:[(0,G.jsxs)(`div`,{className:`w-full max-w-3xl max-h-[85vh] flex flex-col bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(Pc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`printerFiles.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[E&&(E.used_bytes!=null||E.free_bytes!=null)&&(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray flex items-center gap-2`,children:[E.used_bytes!=null&&(0,G.jsxs)(`span`,{children:[r(`printerFiles.storageUsed`),` `,_T(E.used_bytes)]}),E.used_bytes!=null&&E.free_bytes!=null&&(0,G.jsx)(`span`,{className:`text-bambu-dark-tertiary`,children:`|`}),E.free_bytes!=null&&(0,G.jsxs)(`span`,{children:[r(`printerFiles.storageFree`),` `,_T(E.free_bytes)]})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:`Close file manager`,"aria-label":`Close file manager`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-3 border-b border-bambu-dark-tertiary bg-bambu-dark/50 flex-shrink-0`,children:[[{path:`/`,label:`Root`},{path:`/cache`,label:`Cache`},{path:`/model`,label:`Models`},{path:`/timelapse`,label:`Timelapse`}].map(e=>(0,G.jsx)(`button`,{onClick:()=>{A(e.path),d(``)},className:`px-3 py-1 text-sm rounded-full transition-colors ${o===e.path?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:e.label},e.path)),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:r(`printerFiles.filterPlaceholder`),value:u,onChange:e=>d(e.target.value),className:`w-40 pl-8 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`relative flex items-center gap-1`,children:[(0,G.jsx)(Bo,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`select`,{value:m,onChange:e=>h(e.target.value),className:`appearance-none bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm py-1.5 pl-2 pr-6 focus:border-bambu-green focus:outline-none cursor-pointer`,title:`Sort files`,"aria-label":`Sort files`,children:Rse.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>T(),disabled:w,"aria-label":r(`common.refresh`),title:r(`common.refresh`),children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${w?`animate-spin`:``}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 bg-bambu-dark text-sm flex-shrink-0`,children:[(0,G.jsx)(`button`,{onClick:j,disabled:o===`/`,className:`p-1 rounded hover:bg-bambu-dark-tertiary disabled:opacity-50 disabled:cursor-not-allowed`,title:`Go to parent folder`,"aria-label":`Go to parent folder`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`text-bambu-gray font-mono`,children:o})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-2 min-h-0`,children:w?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):C?.warnings?.includes(`printer_unavailable`)?(0,G.jsx)(`div`,{className:`text-center py-12 text-amber-600 dark:text-amber-400`,children:r(`printerFiles.printerUnavailable`)}):C?.files?.length?(0,G.jsx)(`div`,{className:`space-y-1`,children:D.map(e=>{let t=Lse(e.name,e.is_directory),n=c.has(e.path);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-2 rounded-lg cursor-pointer transition-colors ${n?`bg-bambu-green/20 border border-bambu-green/50`:`hover:bg-bambu-dark-tertiary`}`,onClick:t=>{e.is_directory?A(e.path):M(e.path,t)},children:[e.is_directory?null:(0,G.jsx)(`button`,{onClick:t=>M(e.path,t),className:`flex-shrink-0 text-bambu-gray hover:text-white`,"aria-label":r(n?`printerFiles.deselectFile`:`printerFiles.selectFile`,{name:e.name}),title:r(`printerFiles.shiftSelectHint`),children:n?(0,G.jsx)(vu,{className:`w-5 h-5 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-5 h-5`})}),(0,G.jsx)(t,{className:`w-5 h-5 flex-shrink-0 ${e.is_directory?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`flex-1 text-white truncate`,children:e.name}),!e.is_directory&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:Gd(e.size)}),(e.name.toLowerCase().endsWith(`.3mf`)||e.name.toLowerCase().endsWith(`.gcode`)||e.name.toLowerCase().endsWith(`.stl`))&&(0,G.jsx)(`button`,{onClick:t=>{t.stopPropagation(),b({path:e.path,name:e.name})},className:`p-1 rounded hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`,title:`3D View`,children:(0,G.jsx)(Zo,{className:`w-4 h-4`})})]}),e.is_directory&&(0,G.jsx)(hs,{className:`w-4 h-4 text-bambu-gray rotate-180`})]},e.path)})}):(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:r(`printerFiles.noFiles`)})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary bg-bambu-dark/50 flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:c.size>0?`${c.size} selected`:u?`${C?.files?.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())).length||0} of ${C?.files?.length||0} items`:`${C?.files?.length||0} items`}),C?.files?.some(e=>!e.is_directory)&&(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:c.size>0?(0,G.jsxs)(`button`,{onClick:()=>{l(new Set),x.current=null},className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsx)(yu,{className:`w-4 h-4`}),`Deselect All`]}):(0,G.jsxs)(`button`,{onClick:()=>{let e=D.filter(e=>!e.is_directory).map(e=>e.path);l(new Set(e)),x.current=null},className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),`Select All`]})})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,disabled:c.size===0||g!==null,onClick:async()=>{if(c.size===0)return;let n=D.filter(e=>!e.is_directory&&c.has(e.path)).map(e=>e.path);if(n.length===0)return;let a=new AbortController;S.current=a,_({current:0,total:n.length});try{let o=Object.fromEntries(n.map(e=>[e,C?.files.find(t=>t.path===e)?.size??0])),s=await Z.downloadPrinterFilesAsZip(e,n,o,n.length===1?C?.files.find(e=>e.path===n[0])?.name??`printer-file`:`${t.replace(/[^a-zA-Z0-9]/g,`_`)}-files.zip`,n.length>1,a.signal,(e,t)=>_({current:e,total:t}));s.failed>0?i(r(`printerFiles.zipPartial`,{successful:s.successful,total:s.requested}),`warning`):i(r(`printerFiles.zipStarted`,{count:s.successful})),l(new Set),x.current=null}catch(e){i(r(`printerFiles.downloadFailed`,{error:e instanceof Error?e.message:r(`printerFiles.unknownError`)}),`error`)}finally{S.current===a&&(S.current=null),_(null)}},children:g?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),g.current,`/`,g.total]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download`,c.size>1?` (${c.size})`:``]})}),(0,G.jsxs)(Q,{variant:`secondary`,disabled:c.size===0||k.isPending,onClick:()=>{c.size!==0&&p(D.filter(e=>!e.is_directory&&c.has(e.path)).map(e=>e.path))},className:`text-red-700 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300`,children:[k.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),r(`printerFiles.deleteButton`),c.size>1?` (${c.size})`:``]})]})]})]}),f.length>0&&(0,G.jsx)(of,{title:f.length>1?r(`printerFiles.deleteFiles`,{count:f.length}):r(`fileManager.deleteFile`),message:f.length>1?r(`printerFiles.deleteFilesConfirm`,{count:f.length}):r(`printerFiles.deleteFileConfirm`,{name:f[0].split(`/`).pop()}),confirmText:r(`common.delete`),variant:`danger`,onConfirm:()=>{k.mutate(f)},onCancel:()=>p([])}),v&&(0,G.jsx)(Ise,{printerId:e,filePath:v.path,filename:v.name,onClose:()=>b(null)})]})}function vT({on:e,className:t=`w-5 h-5`}){let n=e?`#facc15`:`none`,r=e?`#78350f`:`currentColor`;return(0,G.jsxs)(`svg`,{viewBox:`0 0 32 32`,fill:`none`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:t,children:[(0,G.jsxs)(`g`,{stroke:r,opacity:+!!e,children:[(0,G.jsx)(`line`,{x1:`16`,y1:`2`,x2:`16`,y2:`6`}),(0,G.jsx)(`line`,{x1:`6.1`,y1:`6.1`,x2:`8.9`,y2:`8.9`}),(0,G.jsx)(`line`,{x1:`25.9`,y1:`6.1`,x2:`23.1`,y2:`8.9`}),(0,G.jsx)(`line`,{x1:`2`,y1:`16`,x2:`6`,y2:`16`}),(0,G.jsx)(`line`,{x1:`30`,y1:`16`,x2:`26`,y2:`16`})]}),(0,G.jsx)(`path`,{d:`M12 24v-2.3c0-.9-.4-1.7-1-2.3C9.2 17.6 8 15.4 8 13c0-4.4 3.6-8 8-8s8 3.6 8 8c0 2.4-1.2 4.6-3 6.4-.6.6-1 1.4-1 2.3V24`,fill:n,stroke:r}),(0,G.jsx)(`path`,{d:`M12 24h8`,stroke:r}),(0,G.jsx)(`path`,{d:`M12 27h8`,stroke:r}),(0,G.jsx)(`path`,{d:`M13 30h6`,stroke:r})]})}function Bse(e,t,n){let r=Math.max(0,Math.min(e.width-1,Math.floor(t))),i=(Math.max(0,Math.min(e.height-1,Math.floor(n)))*e.width+r)*4,a=e.data[i],o=e.data[i+1],s=e.data[i+2];return!e.data[i+3]||a===0&&o===0&&s===0?null:a+(o<<8)+(s<<16)}function Vse(e,t,n,r,i){let a=Math.min(e.width/t,e.height/n);if(!(a>0))return null;let o=(r-e.left-(e.width-t*a)/2)/a,s=(i-e.top-(e.height-n*a)/2)/a;return o<0||s<0||o>=t||s>=n?null:{x:o,y:s}}var yT=({className:e})=>(0,G.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:[(0,G.jsx)(`rect`,{x:`2`,y:`15`,width:`5`,height:`5`,rx:`0.5`}),(0,G.jsx)(`rect`,{x:`9.5`,y:`15`,width:`5`,height:`5`,rx:`0.5`,fill:`currentColor`,opacity:`0.3`}),(0,G.jsx)(`rect`,{x:`17`,y:`15`,width:`5`,height:`5`,rx:`0.5`}),(0,G.jsx)(`path`,{d:`M4 12 C4 6, 14 6, 14 12`}),(0,G.jsx)(`polyline`,{points:`12,10 14,12 12,14`})]});function bT({printerId:e,isOpen:t,onClose:n}){let{t:r}=U(),{showToast:i}=qd(),{hasPermission:a}=Nd(),[o,s]=(0,y.useState)(new Set),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),m=(0,y.useRef)(null),h=(0,y.useRef)(null),g=(0,y.useRef)(null),{data:_}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:3e4,enabled:t}),{data:v,refetch:b}=K({queryKey:[`printableObjects`,e],queryFn:()=>Z.getPrintableObjects(e),enabled:t,refetchInterval:t?5e3:!1}),x=(v?.objects.length??0)>0,S=x&&_?.cover_url?vd(`${_.cover_url}?view=top`):null,C=x&&_?.cover_url?vd(`${_.cover_url}?view=pick`):null,w=(0,y.useMemo)(()=>(v?.objects??[]).filter(e=>!e.skipped),[v]),T=(0,y.useMemo)(()=>w.filter(e=>o.has(e.id)),[w,o]),E=w.length>0&&T.length===w.length,D=E&&o.size>0,O=o.size>0&&(_?.layer_num??0)>1&&a(`printers:control`),k=q({mutationFn:t=>Z.skipObjects(e,t),onSuccess:async e=>{i(e.message||r(`printers.skipObjects.objectsSkipped`)),await b(),l(!1),s(new Set),n()},onError:e=>{l(!1),i(e.message||r(`printers.toast.failedToSkipObjects`),`error`)}});(0,y.useEffect)(()=>{t||(s(new Set),l(!1),d(!1))},[t]),(0,y.useEffect)(()=>{if(m.current=null,p(!1),!t||!C)return;let e=!1,n=new Image;return n.onload=()=>{if(e)return;let t=document.createElement(`canvas`);t.width=n.naturalWidth||512,t.height=n.naturalHeight||512;let r=t.getContext(`2d`,{willReadFrequently:!0});r&&(r.drawImage(n,0,0),m.current=r.getImageData(0,0,t.width,t.height),p(!0))},n.onerror=()=>{e||p(!1)},n.src=C,()=>{e=!0}},[t,C]),(0,y.useEffect)(()=>{let e=m.current;if(!e||!v)return;let t=new Set(v.objects.filter(e=>e.skipped).map(e=>e.id));for(let n of[h.current,g.current]){if(!n)continue;n.width=e.width,n.height=e.height;let r=n.getContext(`2d`);if(!r)continue;let i=r.createImageData(e.width,e.height);for(let n=0;n{e.skipped||s(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})},j=e=>{let t=m.current;if(!t)return;let n=Vse(e.currentTarget.getBoundingClientRect(),t.width,t.height,e.clientX,e.clientY);if(!n)return;let r=Bse(t,n.x,n.y),i=v?.objects.find(e=>e.id===r);i&&A(i)},M=(e=!1)=>(0,G.jsxs)(`div`,{className:`relative aspect-square overflow-hidden rounded-lg border border-gray-300 bg-gray-900 dark:border-gray-600 ${f?`cursor-crosshair`:``}`,children:[S?(0,G.jsx)(`img`,{src:S,alt:r(`printers.printPreview`),className:`absolute inset-0 h-full w-full object-contain`}):(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Zo,{className:`h-10 w-10 text-gray-500`})}),(0,G.jsx)(`canvas`,{ref:e?g:h,onClick:j,className:`absolute inset-0 h-full w-full object-contain`,"aria-label":r(`printers.skipObjects.selectObjectsToSkip`)}),!e&&S&&(0,G.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),d(!0)},className:`absolute right-2 top-2 rounded bg-black/65 p-1.5 text-white/80 hover:text-white`,title:r(`common.expand`),children:(0,G.jsx)(cl,{className:`h-4 w-4`})}),!f&&S&&(0,G.jsx)(`div`,{className:`absolute bottom-2 left-2 rounded bg-black/70 px-2 py-1 text-[10px] text-white/80`,children:r(`common.unavailable`)})]});return t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4`,onClick:n,onKeyDown:e=>{e.key===`Escape`&&(u?d(!1):n())},tabIndex:-1,ref:e=>e?.focus(),children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/55`}),(0,G.jsxs)(`section`,{className:`relative z-10 flex max-h-[88vh] w-full max-w-[980px] flex-col overflow-hidden rounded-lg border border-gray-200 bg-white shadow-2xl dark:border-bambu-dark-tertiary dark:bg-bambu-dark`,onClick:e=>e.stopPropagation(),"aria-label":r(`printers.skipObjects.title`),children:[(0,G.jsxs)(`header`,{className:`flex items-center justify-between border-b border-gray-200 bg-gray-50 px-4 py-3 dark:border-bambu-dark-tertiary dark:bg-bambu-dark`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(yT,{className:`h-5 w-5 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-gray-900 dark:text-white`,children:r(`printers.skipObjects.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-bambu-gray`,children:r(`printers.skipObjects.selectObjectsToSkip`)})]})]}),(0,G.jsx)(`button`,{type:`button`,onClick:n,className:`rounded p-1 text-gray-500 hover:text-gray-900 dark:text-bambu-gray dark:hover:text-white`,children:(0,G.jsx)(nd,{className:`h-5 w-5`})})]}),v?v.objects.length===0?(0,G.jsxs)(`div`,{className:`px-4 py-12 text-center text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-sm`,children:r(`printers.noObjectsFound`)}),(0,G.jsx)(`p`,{className:`mt-1 text-xs opacity-70`,children:r(`printers.objectsLoadedOnPrintStart`)})]}):(0,G.jsxs)(G.Fragment,{children:[(_?.layer_num??0)<=1&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-amber-400/20 bg-amber-500/10 px-4 py-2 text-xs text-amber-400`,children:[(0,G.jsx)(ys,{className:`h-4 w-4 flex-shrink-0`}),r(`printers.skipObjects.waitForLayer`,{layer:_?.layer_num??0})]}),(0,G.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-[minmax(320px,1fr)_minmax(340px,0.9fr)] overflow-hidden max-md:grid-cols-1 max-md:overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`border-r border-gray-200 bg-gray-50 p-4 dark:border-bambu-dark-tertiary dark:bg-bambu-dark-secondary max-md:border-b-0 max-md:border-r-0`,children:[M(),(0,G.jsxs)(`div`,{className:`mt-3 flex items-center justify-between text-xs text-gray-500 dark:text-bambu-gray`,children:[(0,G.jsxs)(`span`,{children:[o.size,`/`,w.length]}),(0,G.jsxs)(`span`,{children:[v.skipped_count,` `,r(`printers.skipObjects.skipped`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(E?new Set:new Set(w.map(e=>e.id))),className:`flex items-center gap-3 border-b border-gray-200 px-4 py-3 text-left text-sm font-semibold text-gray-900 hover:bg-gray-50 dark:border-bambu-dark-tertiary dark:text-white dark:hover:bg-white/5`,children:[E?(0,G.jsx)(vu,{className:`h-5 w-5 text-bambu-green`}):(0,G.jsx)(bu,{className:`h-5 w-5 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`flex-1`,children:r(E?`common.deselectAll`:`common.selectAll`)}),(0,G.jsx)(`span`,{className:`text-xs font-normal text-bambu-gray`,children:w.length})]}),(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:v.objects.map((e,t)=>{let n=o.has(e.id);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>A(e),disabled:e.skipped,className:`flex w-full items-center gap-3 border-b border-gray-200 px-4 py-2.5 text-left transition-colors dark:border-bambu-dark-tertiary/60 ${e.skipped?`cursor-not-allowed bg-red-500/5 opacity-55`:n?`bg-bambu-green/15 hover:bg-bambu-green/20`:`hover:bg-gray-50 dark:hover:bg-white/5`}`,children:[e.skipped||n?(0,G.jsx)(vu,{className:`h-5 w-5 flex-shrink-0 ${e.skipped?`text-red-400`:`text-bambu-green`}`}):(0,G.jsx)(bu,{className:`h-5 w-5 flex-shrink-0 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`w-8 flex-shrink-0 text-xs font-bold text-bambu-gray`,children:t+1}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm ${e.skipped?`text-red-400 line-through`:`text-gray-900 dark:text-white`}`,children:e.name}),(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[`ID `,e.id]})]},e.id)})})]})]}),(0,G.jsxs)(`footer`,{className:`flex items-center gap-3 border-t border-gray-200 bg-gray-50 px-4 py-3 dark:border-bambu-dark-tertiary dark:bg-bambu-dark`,children:[(0,G.jsx)(`span`,{className:`mr-auto text-sm text-gray-600 dark:text-bambu-gray`,children:o.size===0?r(`printers.skipObjects.noObjectsSelected`):`${o.size}/${w.length}`}),(0,G.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-md border border-gray-300 px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:border-bambu-dark-tertiary dark:text-white dark:hover:bg-white/5`,children:r(`common.cancel`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(!0),disabled:!O||k.isPending,className:`rounded-md bg-red-500 px-4 py-2 text-sm font-semibold text-white hover:bg-red-600 disabled:cursor-not-allowed disabled:opacity-35`,children:k.isPending?r(`printers.skipObjects.skipping`):r(`printers.skipObjects.skipSelected`)})]})]}):(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`h-6 w-6 animate-spin text-bambu-gray`})})]})]}),c&&(0,G.jsx)(of,{variant:`warning`,title:r(`printers.skipObjects.confirmTitle`),message:D?r(`printers.skipObjects.confirmAllMessage`):T.length===1?r(`printers.skipObjects.confirmMessage`,{name:T[0].name}):r(`printers.skipObjects.confirmMultipleMessage`,{count:T.length}),confirmText:r(`printers.skipObjects.skipSelected`),isLoading:k.isPending,onConfirm:()=>k.mutate([...o]),onCancel:()=>l(!1)}),u&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/90 p-8`,onClick:()=>d(!1),children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>d(!1),className:`absolute right-4 top-4 rounded p-2 text-white/70 hover:text-white`,children:(0,G.jsx)(nd,{className:`h-6 w-6`})}),(0,G.jsx)(`div`,{className:`aspect-square max-h-[86vh] w-full max-w-[86vh]`,onClick:e=>e.stopPropagation(),children:M(!0)})]})]}):null}function Hse({status:e}){return e===`ok`?(0,G.jsx)(Ss,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}):e===`failed`?(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0`}):(0,G.jsx)(ws,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`})}function xT({printerId:e,printerName:t,onClose:n}){let{t:r}=U(),i=q({mutationFn:()=>Z.diagnoseCamera(e)});(0,y.useEffect)(()=>{i.mutate()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let a=i.data;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(Su,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,children:r(`camera.diagnose.modalTitle`,{name:t||``})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-4`,children:[i.isPending&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:r(`camera.diagnose.running`)})]}),i.isError&&(0,G.jsx)(`div`,{className:`rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:r(`camera.diagnose.runFailed`,{error:i.error.message})}),a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`ol`,{className:`space-y-2`,children:a.stages.map(e=>(0,G.jsxs)(`li`,{className:`flex items-center gap-3 bg-bambu-dark rounded-lg px-4 py-2.5`,children:[(0,G.jsx)(Hse,{status:e.status}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white`,children:r(`camera.diagnose.stage.${e.name}`)}),e.code&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray font-mono`,children:e.code})]}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray tabular-nums flex-shrink-0`,children:[e.duration_ms,` ms`]})]},e.name))}),(0,G.jsx)(`div`,{className:a.overall_status===`ok`?`rounded-lg bg-bambu-green/10 border border-bambu-green/30 px-4 py-3 text-sm text-bambu-green`:`rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:r(`camera.diagnose.summary.${a.summary_code}`,{defaultValue:r(`camera.diagnose.summary.unknown_failure`)})}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray space-y-0.5`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[r(`camera.diagnose.meta.protocol`),`: `]}),(0,G.jsx)(`span`,{className:`font-mono`,children:a.protocol}),` • `,(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[r(`camera.diagnose.meta.port`),`: `]}),(0,G.jsx)(`span`,{className:`font-mono`,children:a.port}),` • `,(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[r(`camera.diagnose.meta.profile`),`: `]}),(0,G.jsx)(`span`,{className:`font-mono`,children:a.profile})]})})]})]}),(0,G.jsxs)(`div`,{className:`px-6 py-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>i.mutate(),disabled:i.isPending,className:`px-4 py-2 bg-bambu-dark hover:bg-bambu-dark-tertiary disabled:opacity-50 text-white text-sm rounded-lg transition-colors`,children:r(`camera.diagnose.retry`)}),(0,G.jsx)(`button`,{onClick:n,className:`px-4 py-2 bg-bambu-green hover:bg-bambu-green/90 text-white text-sm rounded-lg transition-colors`,children:r(`common.close`)})]})]})})}var Use=`embeddedCameraState_`,ST=5,Wse=2e3,Gse=3e4,Kse=5e3,CT={x:window.innerWidth-420,y:20,width:400,height:300};function qse({printerId:e,printerName:t,viewerIndex:n=0,onClose:r}){let{t:i}=U(),a=co(),{showToast:o}=qd(),{hasPermission:s}=Nd(),c=`${Use}${e}`,[l,u]=(0,y.useState)(()=>{try{let e=localStorage.getItem(c);if(e){let t=JSON.parse(e);return{x:Math.min(Math.max(0,t.x),window.innerWidth-100),y:Math.min(Math.max(0,t.y),window.innerHeight-100),width:Math.max(200,Math.min(t.width,window.innerWidth-20)),height:Math.max(150,Math.min(t.height,window.innerHeight-20))}}}catch{}let e=n*30;return{...CT,x:Math.max(0,CT.x-e),y:Math.max(0,CT.y+e)}}),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)({x:0,y:0}),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(1),[w,T]=(0,y.useState)({x:0,y:0}),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)({x:0,y:0}),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!0),[R,z]=(0,y.useState)(Date.now()),[B,V]=(0,y.useState)(0),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(0),ie=(0,y.useRef)(null),ae=(0,y.useRef)(null),oe=(0,y.useRef)(null),se=(0,y.useRef)(null),H=(0,y.useRef)(null),[ce,le]=(0,y.useState)(!1),[ue,de]=(0,y.useState)(!1),{data:fe}=K({queryKey:[`printer`,e],queryFn:()=>Z.getPrinter(e),enabled:e>0}),{data:pe}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:3e4,enabled:e>0}),me=q({mutationFn:t=>Z.setChamberLight(e,t),onMutate:async t=>{await a.cancelQueries({queryKey:[`printerStatus`,e]});let n=a.getQueryData([`printerStatus`,e]);return a.setQueryData([`printerStatus`,e],e=>({...e,chamber_light:t})),{previousStatus:n}},onSuccess:(e,t)=>{o(`Chamber light ${t?`on`:`off`}`)},onError:(t,n,r)=>{r?.previousStatus&&a.setQueryData([`printerStatus`,e],r.previousStatus),o(t.message||i(`printers.toast.failedToControlChamberLight`),`error`)}}),he=(pe?.state===`RUNNING`||pe?.state===`PAUSE`)&&(pe?.printable_objects_count??0)>=2;(0,y.useEffect)(()=>{let e=setTimeout(()=>{localStorage.setItem(c,JSON.stringify(l))},500);return()=>clearTimeout(e)},[l,c]);let ge=(0,y.useRef)(!1);(0,y.useEffect)(()=>{ge.current=!1;let t=`/api/v1/printers/${e}/camera/stop`,n=()=>{if(e>0&&!ge.current){ge.current=!0;let e={},n=ud();n&&(e.Authorization=`Bearer ${n}`),fetch(t,{method:`POST`,keepalive:!0,headers:e}).catch(()=>{})}},r=ae.current;return()=>{r&&(r.src=``),n(),oe.current&&clearTimeout(oe.current),se.current&&clearInterval(se.current),H.current&&clearInterval(H.current)}},[e]),(0,y.useEffect)(()=>{if(I){let e=setTimeout(()=>L(!1),3e3);return()=>clearTimeout(e)}},[I,R]);let _e=(0,y.useCallback)(()=>{if(B>=ST){te(!1),F(!0);return}let e=Math.min(Wse*2**B,Gse);te(!0),re(Math.ceil(e/1e3)),se.current=setInterval(()=>{re(e=>e<=1?(se.current&&clearInterval(se.current),0):e-1)},1e3),oe.current=setTimeout(()=>{V(e=>e+1),te(!1),L(!0),F(!1),ae.current&&(ae.current.src=``),z(Date.now())},e)},[B]);(0,y.useEffect)(()=>{if(I||ee||_){H.current&&=(clearInterval(H.current),null);return}return H.current=setInterval(async()=>{try{let t=await Z.getCameraStatus(e);(t.stalled||!t.active&&!P)&&(H.current&&=(clearInterval(H.current),null),L(!1),_e())}catch{}},Kse),()=>{H.current&&=(clearInterval(H.current),null)}},[I,P,ee,_,e,_e]),(0,y.useEffect)(()=>{let e=()=>{let e=!!document.fullscreenElement;x(e),e||(C(1),T({x:0,y:0}))};return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[]);let ve=()=>{ie.current&&(document.fullscreenElement?document.exitFullscreen():ie.current.requestFullscreen())},ye=()=>{C(e=>Math.min(e+.5,4))},be=()=>{C(e=>{let t=Math.max(e-.5,1);return t===1&&T({x:0,y:0}),t})},xe=e=>{e.preventDefault(),e.deltaY<0?ye():be()},Se=e=>{S>1&&(e.preventDefault(),D(!0),k({x:e.clientX-w.x,y:e.clientY-w.y}))},Ce=(0,y.useCallback)(()=>{if(!ie.current||!ae.current)return{x:200,y:150};let e=ie.current.getBoundingClientRect(),t=e.width*(S-1)/2,n=e.height*(S-1)/2;return{x:Math.max(50,t),y:Math.max(50,n)}},[S]),we=e=>{if(E&&S>1){let t=e.clientX-O.x,n=e.clientY-O.y,r=Ce();T({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Te=()=>{D(!1)},Ee=e=>{if(e.length<2)return 0;let t=e[0].clientX-e[1].clientX,n=e[0].clientY-e[1].clientY;return Math.sqrt(t*t+n*n)},De=e=>e.length<2?{x:e[0].clientX,y:e[0].clientY}:{x:(e[0].clientX+e[1].clientX)/2,y:(e[0].clientY+e[1].clientY)/2},Oe=e=>{e.touches.length===2?(e.preventDefault(),j(Ee(e.touches)),N(De(e.touches))):e.touches.length===1&&S>1&&(e.preventDefault(),D(!0),k({x:e.touches[0].clientX-w.x,y:e.touches[0].clientY-w.y}))},ke=e=>{if(e.touches.length===2&&A!==null){e.preventDefault();let t=Ee(e.touches),n=t/A;C(e=>{let t=Math.max(1,Math.min(4,e*n));return t===1&&T({x:0,y:0}),t}),j(t);let r=De(e.touches);if(M){let e=Ce();T(t=>({x:Math.max(-e.x,Math.min(e.x,t.x+(r.x-M.x))),y:Math.max(-e.y,Math.min(e.y,t.y+(r.y-M.y)))}))}N(r)}else if(e.touches.length===1&&E&&S>1){e.preventDefault();let t=e.touches[0].clientX-O.x,n=e.touches[0].clientY-O.y,r=Ce();T({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Ae=e=>{e.touches.length<2&&(j(null),N(null)),e.touches.length===0&&D(!1)},je=()=>{C(1),T({x:0,y:0})},Me=()=>{L(!1),B{L(!1),F(!1),V(0),te(!1),oe.current&&clearTimeout(oe.current),se.current&&clearInterval(se.current)},Pe=()=>{L(!0),F(!1),V(0),te(!1),oe.current&&clearTimeout(oe.current),se.current&&clearInterval(se.current);let t={},n=ud();n&&(t.Authorization=`Bearer ${n}`),fetch(`/api/v1/printers/${e}/camera/stop`,{method:`POST`,headers:t}).catch(()=>{}),ae.current&&(ae.current.src=``),setTimeout(()=>z(Date.now()),100)},Fe=e=>{e.target.closest(`.no-drag`)||(f(!0),g({x:e.clientX-l.x,y:e.clientY-l.y}))},Ie=e=>{if(e.target.closest(`.no-drag`))return;let t=e.touches[0];f(!0),g({x:t.clientX-l.x,y:t.clientY-l.y})},Le=e=>{e.stopPropagation(),m(!0)},Re=e=>{e.stopPropagation(),m(!0)};(0,y.useEffect)(()=>{let e=e=>{if(d)u(t=>({...t,x:Math.max(0,Math.min(e.clientX-h.x,window.innerWidth-t.width)),y:Math.max(0,Math.min(e.clientY-h.y,window.innerHeight-t.height))}));else if(p&&ie.current){let t=ie.current.getBoundingClientRect();u(n=>({...n,width:Math.max(200,Math.min(e.clientX-t.left,window.innerWidth-n.x-10)),height:Math.max(150,Math.min(e.clientY-t.top,window.innerHeight-n.y-10))}))}},t=e=>{if(!d&&!p)return;e.preventDefault();let t=e.touches[0];if(d)u(e=>({...e,x:Math.max(0,Math.min(t.clientX-h.x,window.innerWidth-e.width)),y:Math.max(0,Math.min(t.clientY-h.y,window.innerHeight-e.height))}));else if(p&&ie.current){let e=ie.current.getBoundingClientRect();u(n=>({...n,width:Math.max(200,Math.min(t.clientX-e.left,window.innerWidth-n.x-10)),height:Math.max(150,Math.min(t.clientY-e.top,window.innerHeight-n.y-10))}))}},n=()=>{f(!1),m(!1)};if(d||p)return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,n),document.addEventListener(`touchmove`,t,{passive:!1}),document.addEventListener(`touchend`,n),document.addEventListener(`touchcancel`,n),()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,n),document.removeEventListener(`touchmove`,t),document.removeEventListener(`touchend`,n),document.removeEventListener(`touchcancel`,n)}},[d,p,h]);let ze=_d(`/api/v1/printers/${e}/camera/stream?fps=15&t=${R}`);return(0,G.jsxs)(`div`,{ref:ie,className:`${b?`fixed inset-0 z-[100]`:`fixed z-40 rounded-lg shadow-2xl border border-bambu-dark-tertiary`} bg-bambu-dark-secondary overflow-hidden`,style:b?void 0:{left:l.x,top:l.y,width:_?200:l.width,height:_?40:l.height,cursor:d?`grabbing`:`default`},children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 bg-bambu-dark border-b border-bambu-dark-tertiary cursor-grab active:cursor-grabbing`,onMouseDown:Fe,onTouchStart:Ie,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-white truncate`,children:[(0,G.jsx)(jc,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:fe?.name||t})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 no-drag`,children:[(0,G.jsx)(`button`,{onClick:()=>me.mutate(!pe?.chamber_light),disabled:!pe?.connected||me.isPending||!s(`printers:control`),className:`p-1 rounded disabled:opacity-50 ${pe?.chamber_light?`bg-yellow-500/20 hover:bg-yellow-500/30`:`hover:bg-bambu-dark-tertiary`}`,title:s(`printers:control`)?i(`camera.chamberLight`):i(`printers.permission.noControl`),children:(0,G.jsx)(vT,{on:pe?.chamber_light??!1,className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:()=>le(!0),disabled:!he||!s(`printers:control`),className:`p-1 rounded disabled:opacity-50 ${he&&s(`printers:control`)?`hover:bg-bambu-dark-tertiary`:``}`,title:s(`printers:control`)?i(he?`printers.skipObjects.tooltip`:`printers.skipObjects.onlyWhilePrinting`):i(`printers.permission.noControl`),children:(0,G.jsx)(yT,{className:`w-3.5 h-3.5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:Pe,disabled:I||ee,className:`p-1 hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,title:`Refresh stream`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5 text-bambu-gray ${I?`animate-spin`:``}`})}),(0,G.jsx)(`button`,{onClick:()=>de(!0),className:`p-1 hover:bg-bambu-dark-tertiary rounded`,title:i(`camera.diagnose.button`),children:(0,G.jsx)(Su,{className:`w-3.5 h-3.5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:ve,className:`p-1 hover:bg-bambu-dark-tertiary rounded`,title:b?`Exit fullscreen`:`Fullscreen`,children:b?(0,G.jsx)(pl,{className:`w-3.5 h-3.5 text-bambu-gray`}):(0,G.jsx)(Cc,{className:`w-3.5 h-3.5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:()=>v(!_),className:`p-1 hover:bg-bambu-dark-tertiary rounded`,title:_?`Expand`:`Minimize`,children:_?(0,G.jsx)(cl,{className:`w-3.5 h-3.5 text-bambu-gray`}):(0,G.jsx)(fl,{className:`w-3.5 h-3.5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-red-500/20 rounded`,title:`Close`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400`})})]})]}),!_&&(0,G.jsxs)(`div`,{className:`relative w-full bg-black flex items-center justify-center overflow-hidden h-[calc(100%-40px)]`,onWheel:xe,onMouseMove:we,onMouseUp:Te,onMouseLeave:Te,onTouchStart:Oe,onTouchMove:ke,onTouchEnd:Ae,style:{touchAction:`none`},children:[I&&!ee&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/50 z-10`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 text-bambu-gray animate-spin`})}),ee&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/80 z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-2`,children:[(0,G.jsx)(Zu,{className:`w-6 h-6 text-orange-400 mx-auto mb-2`}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Reconnecting in `,ne,`s...`]})]})}),P&&!ee&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-2`,children:[(0,G.jsx)(Lu,{className:`w-6 h-6 text-orange-400 mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`camera.unavailable`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[(0,G.jsx)(`button`,{onClick:Pe,className:`px-2 py-1 text-xs bg-bambu-green text-white rounded hover:bg-bambu-green/80`,children:i(`camera.retry`)}),(0,G.jsx)(`button`,{onClick:()=>de(!0),className:`px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray hover:text-white rounded transition-colors`,children:i(`camera.diagnose.button`)})]})]})}),(0,G.jsx)(`img`,{ref:ae,src:ze,alt:`Camera stream`,className:`max-w-full max-h-full object-contain select-none`,style:{transform:`scale(${S}) translate(${w.x/S}px, ${w.y/S}px) rotate(${fe?.camera_rotation||0}deg)`,...fe?.camera_rotation===90||fe?.camera_rotation===270?{maxWidth:`100%`,maxHeight:`100%`}:{},cursor:S>1?E?`grabbing`:`grab`:`default`},onError:Me,onLoad:Ne,onMouseDown:Se,draggable:!1},R),(0,G.jsxs)(`div`,{className:`absolute bottom-2 left-2 flex items-center gap-1 bg-black/60 rounded px-1.5 py-1 no-drag`,children:[(0,G.jsx)(`button`,{onClick:be,disabled:S<=1,className:`p-1 hover:bg-white/10 rounded disabled:opacity-30`,title:`Zoom out`,children:(0,G.jsx)(ad,{className:`w-3.5 h-3.5 text-white`})}),(0,G.jsxs)(`button`,{onClick:je,className:`px-1.5 py-0.5 text-xs text-white hover:bg-white/10 rounded min-w-[32px]`,title:`Reset zoom`,children:[Math.round(S*100),`%`]}),(0,G.jsx)(`button`,{onClick:ye,disabled:S>=4,className:`p-1 hover:bg-white/10 rounded disabled:opacity-30`,title:`Zoom in`,children:(0,G.jsx)(rd,{className:`w-3.5 h-3.5 text-white`})})]}),!b&&(0,G.jsx)(`div`,{className:`absolute bottom-0 right-0 w-6 h-6 cursor-se-resize no-drag hover:bg-white/10 rounded-tl transition-colors`,onMouseDown:Le,onTouchStart:Re,title:`Drag to resize`,children:(0,G.jsx)(`svg`,{className:`w-6 h-6 text-bambu-gray/70 hover:text-bambu-gray`,viewBox:`0 0 24 24`,fill:`currentColor`,children:(0,G.jsx)(`path`,{d:`M22 22H20V20H22V22ZM22 18H20V16H22V18ZM18 22H16V20H18V22ZM22 14H20V12H22V14ZM18 18H16V16H18V18ZM14 22H12V20H14V22ZM22 10H20V8H22V10ZM18 14H16V12H18V14ZM14 18H12V16H14V18ZM10 22H8V20H10V22Z`})})})]}),(0,G.jsx)(bT,{printerId:e,isOpen:ce,onClose:()=>le(!1)}),ue&&(0,G.jsx)(xT,{printerId:e,printerName:fe?.name||null,onClose:()=>de(!1)})]})}var Jse=8;function Yse(e,t){if(t>0)return`error`;switch(e){case`RUNNING`:return`printing`;case`PAUSE`:return`paused`;case`FINISH`:case`FAILED`:return`finished`;default:return`idle`}}var Xse={printing:`bg-bambu-green/85 text-black`,paused:`bg-amber-500/85 text-black`,finished:`bg-sky-500/80 text-white`,error:`bg-red-500/85 text-white`,idle:`bg-bambu-dark-tertiary/80 text-bambu-gray`};function Zse({printerId:e,printerName:t,cameraRotation:n=0,mode:r,snapshotIntervalMs:i,connected:a,onClick:o,statusMode:s=`off`,printerState:c=null,progress:l=null,remainingMin:u=null,layerNum:d=null,totalLayers:f=null,printName:p=null,hmsErrorCount:m=0}){let{t:h}=U(),[g,_]=(0,y.useState)(0),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(r);(0,y.useEffect)(()=>{let t=x.current===`live`,n=r===`live`;if(x.current=r,t&&!n){let t={},n=ud();n&&(t.Authorization=`Bearer ${n}`),fetch(`/api/v1/printers/${e}/camera/stop`,{method:`POST`,keepalive:!0,headers:t}).catch(()=>{})}b(!1),_(e=>e+1)},[r,e]),(0,y.useEffect)(()=>()=>{if(x.current===`live`){let t={},n=ud();n&&(t.Authorization=`Bearer ${n}`),fetch(`/api/v1/printers/${e}/camera/stop`,{method:`POST`,keepalive:!0,headers:t}).catch(()=>{})}},[e]),(0,y.useEffect)(()=>{if(r!==`snapshot`)return;let e=setInterval(()=>_(e=>e+1),i);return()=>clearInterval(e)},[r,i]);let S=_d(`/api/v1/printers/${e}/camera/stream?fps=${Jse}&t=${g}`),C=_d(`/api/v1/printers/${e}/camera/snapshot?t=${g}`),w=o!=null,T=n?`rotate(${n}deg)`:void 0,E=Yse(c,m),D=a&&s!==`off`&&E!==`idle`,O=a&&s===`full`&&(E===`printing`||E===`paused`),k=p??null,A=l==null?null:Math.round(l),j=d!=null&&f!=null&&f>0,M=u!=null&&u>0,N=`group relative aspect-video w-full overflow-hidden rounded-lg border border-bambu-dark-tertiary bg-black text-left ${w?`focus:outline-none focus:ring-2 focus:ring-bambu-green`:`cursor-default`}`,P=(0,G.jsxs)(G.Fragment,{children:[!a||r===`paused`?(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-bambu-dark/60`,children:a?(0,G.jsx)(Wu,{className:`h-8 w-8 text-bambu-gray/70`,"aria-hidden":`true`}):(0,G.jsx)(Zu,{className:`h-8 w-8 text-bambu-gray/70`,"aria-hidden":`true`})}):v?(0,G.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-1 bg-black/80 text-bambu-gray`,children:[(0,G.jsx)(Wu,{className:`h-7 w-7`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`text-xs`,children:h(`printers.camWall.noSignal`)})]}):(0,G.jsx)(`img`,{src:r===`live`?S:C,alt:t,draggable:!1,loading:`lazy`,className:`h-full w-full select-none object-contain`,style:{transform:T},onError:()=>b(!0)},`${r}-${g}`),D&&(0,G.jsxs)(`span`,{className:`absolute left-2 top-2 flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide ${Xse[E]}`,children:[m>0&&(0,G.jsx)(Lu,{className:`h-3 w-3`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{children:h(`printers.status.${E}`)})]}),(0,G.jsx)(`span`,{className:`absolute right-2 top-2 rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide ${r===`live`?`bg-red-500/80 text-white`:r===`snapshot`?`bg-amber-500/70 text-black`:`bg-bambu-dark-tertiary/70 text-bambu-gray`}`,children:h(r===`live`?`printers.camWall.live`:r===`snapshot`?`printers.camWall.snap`:`printers.camWall.off`)}),(0,G.jsxs)(`div`,{className:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/85 via-black/55 to-transparent px-2 pb-1.5 pt-3 text-white`,children:[O&&(0,G.jsxs)(`div`,{className:`mb-0.5 space-y-0.5 text-[11px] leading-tight text-white/90`,children:[k&&(0,G.jsx)(`div`,{className:`truncate`,title:k,children:k}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5 text-bambu-gray`,children:[A!=null&&(0,G.jsxs)(`span`,{className:`font-semibold text-white`,children:[A,`%`]}),j&&(0,G.jsx)(`span`,{children:h(`printers.camWall.layer`,{cur:d,total:f})}),M&&(0,G.jsx)(`span`,{children:h(`printers.camWall.timeLeft`,{time:lp((u??0)*60)})})]})]}),(0,G.jsx)(`span`,{className:`block truncate text-xs font-medium`,children:t})]})]});return w?(0,G.jsx)(`button`,{type:`button`,onClick:o,className:N,title:t,children:P}):(0,G.jsx)(`div`,{className:N,title:t,children:P})}var wT=1,TT=16,ET=2,DT=60,Qse=[`off`,`compact`,`full`];function OT({printers:e,maxLive:t,snapshotIntervalSec:n,statusMode:r,onTileClick:i,onChangeMaxLive:a,onChangeSnapshotIntervalSec:o,onChangeStatusMode:s,statuses:c,showSettings:l=!0}){let{t:u}=U(),d=(0,y.useRef)(new Map),f=c?[]:e,p=Co({queries:f.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),staleTime:5e3}))}),m=(0,y.useMemo)(()=>{let e=new Map;return f.forEach((t,n)=>{e.set(t.id,p[n]?.data)}),e},[e,p,c]),h=c??m,[g,_]=(0,y.useState)(()=>new Set),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!v)return;let e=e=>{x.current&&!x.current.contains(e.target)&&b(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[v]),(0,y.useEffect)(()=>{let e=new IntersectionObserver(e=>{_(t=>{let n=new Set(t);for(let t of e){let e=Number(t.target.dataset.printerId);Number.isFinite(e)&&(t.isIntersecting?n.add(e):n.delete(e))}return n})},{threshold:.4});for(let[,t]of d.current)t&&e.observe(t);return()=>e.disconnect()},[e]);let S=(0,y.useMemo)(()=>{let n=new Map,r=Math.max(0,t);for(let t of e){let e=h.get(t.id)?.connected??!1;if(!g.has(t.id)||!e){n.set(t.id,`paused`);continue}r>0?(n.set(t.id,`live`),--r):n.set(t.id,`snapshot`)}return n},[e,g,t,h]);return e.length===0?(0,G.jsx)(`div`,{className:`rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-6 text-center text-bambu-gray`,children:u(`printers.camWall.noPrinters`)}):(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:u(`printers.camWall.summary`,{live:Array.from(S.values()).filter(e=>e===`live`).length,snap:Array.from(S.values()).filter(e=>e===`snapshot`).length,total:e.length})}),l&&(0,G.jsxs)(`div`,{className:`relative`,ref:x,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>b(e=>!e),className:`flex h-7 items-center gap-1 rounded-md border border-bambu-dark-tertiary bg-bambu-dark px-2 text-white hover:bg-bambu-dark-tertiary`,title:u(`printers.camWall.settings.title`),children:[(0,G.jsx)(ru,{className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:u(`printers.camWall.settings.title`)})]}),v&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-9 z-30 w-72 space-y-3 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary p-3 shadow-xl`,children:[(0,G.jsxs)(`label`,{className:`block space-y-1`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:u(`printers.camWall.settings.maxLive`)}),(0,G.jsx)(`input`,{type:`number`,min:wT,max:TT,value:t,onChange:e=>{a(Math.min(TT,Math.max(wT,Number(e.target.value)||wT)))},className:`w-full rounded-md border border-bambu-dark-tertiary bg-bambu-dark px-2 py-1 text-sm text-white`}),(0,G.jsx)(`span`,{className:`block text-[11px] text-bambu-gray`,children:u(`printers.camWall.settings.maxLiveHint`)})]}),(0,G.jsxs)(`label`,{className:`block space-y-1`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:u(`printers.camWall.settings.snapshotInterval`)}),(0,G.jsx)(`input`,{type:`number`,min:ET,max:DT,value:n,onChange:e=>{o(Math.min(DT,Math.max(ET,Number(e.target.value)||ET)))},className:`w-full rounded-md border border-bambu-dark-tertiary bg-bambu-dark px-2 py-1 text-sm text-white`}),(0,G.jsx)(`span`,{className:`block text-[11px] text-bambu-gray`,children:u(`printers.camWall.settings.snapshotIntervalHint`)})]}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`span`,{className:`block text-xs font-medium text-white`,children:u(`printers.camWall.settings.statusOverlay`)}),(0,G.jsx)(`div`,{role:`radiogroup`,"aria-label":u(`printers.camWall.settings.statusOverlay`),className:`flex overflow-hidden rounded-md border border-bambu-dark-tertiary`,children:Qse.map(e=>(0,G.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r===e,onClick:()=>s(e),className:`flex-1 px-2 py-1 text-xs ${r===e?`bg-bambu-green text-black font-semibold`:`bg-bambu-dark text-white hover:bg-bambu-dark-tertiary`}`,children:u(`printers.camWall.statusMode.${e}`)},e))}),(0,G.jsx)(`span`,{className:`block text-[11px] text-bambu-gray`,children:u(`printers.camWall.settings.statusOverlayHint`)})]})]})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`,children:e.map(e=>{let t=S.get(e.id)??`paused`;return(0,G.jsx)(`div`,{ref:t=>{d.current.set(e.id,t)},"data-printer-id":e.id,children:(0,G.jsx)(Zse,{printerId:e.id,printerName:e.name,cameraRotation:e.camera_rotation,mode:t,snapshotIntervalMs:n*1e3,connected:h.get(e.id)?.connected??!1,statusMode:r,printerState:h.get(e.id)?.state??null,progress:h.get(e.id)?.progress??null,remainingMin:h.get(e.id)?.remaining_time??null,layerNum:h.get(e.id)?.layer_num??null,totalLayers:h.get(e.id)?.total_layers??null,printName:h.get(e.id)?.subtask_name??h.get(e.id)?.gcode_file??null,hmsErrorCount:Fm(h.get(e.id)?.hms_errors??[]).length,onClick:i?()=>i(e.id,e.name):void 0})},e.id)})})]})}function $se({items:e,searchPlaceholder:t,onClose:n,className:r,onMouseEnter:i,onMouseLeave:a}){let[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(t){let e=window.setTimeout(()=>c.current?.focus(),0);return()=>window.clearTimeout(e)}},[t]);let l=o.trim().toLowerCase(),u=t&&l?e.filter(e=>e.label.toLowerCase().includes(l)):e;return(0,G.jsxs)(`div`,{className:r,onMouseEnter:i,onMouseLeave:a,children:[t&&(0,G.jsx)(`div`,{className:`sticky top-0 z-[1] px-2 py-1.5 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{ref:c,type:`text`,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{if(e.key===`Enter`){let e=u.find(e=>!e.disabled);e&&(e.onClick(),n())}},placeholder:t,className:`w-full pl-7 pr-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})}),u.map((e,t)=>(0,G.jsxs)(`button`,{onClick:()=>{e.disabled||(e.onClick(),n())},disabled:e.disabled,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${e.disabled?`text-bambu-gray cursor-not-allowed`:e.danger?`text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-400/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e.icon&&(0,G.jsx)(`span`,{className:`w-4 h-4 flex-shrink-0 flex items-center justify-center`,children:e.icon}),(0,G.jsx)(`span`,{className:`flex-1 truncate`,children:e.label})]},t)),t&&u.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray text-center italic`,children:`—`})]})}function kT({x:e,y:t,items:n,onClose:r}){let i=(0,y.useRef)(null),[a,o]=(0,y.useState)(null),s=(0,y.useRef)(null),[c,l]=(0,y.useState)({x:e,y:t,visible:!1}),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)({});(0,y.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{e.key===`Escape`&&r()},n=e=>{i.current&&i.current.contains(e.target)||r()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),document.addEventListener(`scroll`,n,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),document.removeEventListener(`scroll`,n,!0),s.current&&clearTimeout(s.current)}},[r]),(0,y.useLayoutEffect)(()=>{if(i.current){i.current.style.visibility=`hidden`,i.current.style.display=`block`;let n=i.current.getBoundingClientRect(),r=window.innerWidth,a=window.innerHeight,o=e,s=t;e+n.width>r-8&&(o=Math.max(8,r-n.width-8)),o<8&&(o=8),t+n.height>a-8&&(s=Math.max(8,a-n.height-8)),s<8&&(s=8),d(r-o-n.width<180&&o>180),l({x:o,y:s,visible:!0})}},[e,t]);let m=(e,t)=>{s.current&&=(clearTimeout(s.current),null);let n=t.getBoundingClientRect(),r=window.innerHeight-n.top-8<300&&n.top>300;p(t=>({...t,[e]:r?`bottom`:`top`})),o(e)},h=()=>{s.current=window.setTimeout(()=>{o(null)},150)};return(0,G.jsx)(`div`,{ref:i,className:`fixed z-50 min-w-[180px] max-w-[280px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1`,style:{left:c.x,top:c.y,visibility:c.visible?`visible`:`hidden`},children:n.map((e,t)=>{if(e.divider)return(0,G.jsx)(`div`,{className:`my-1 border-t border-bambu-dark-tertiary`},t);let n=e.submenu&&e.submenu.length>0;return(0,G.jsxs)(`div`,{className:`relative`,onMouseEnter:e=>n&&m(t,e.currentTarget),onMouseLeave:()=>n&&h(),children:[(0,G.jsxs)(`button`,{onMouseEnter:e=>n&&m(t,e.currentTarget.parentElement),onClick:()=>{n?o(a===t?null:t):e.disabled||(e.onClick(),r())},disabled:e.disabled,title:e.title,className:`group w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${e.disabled?`text-bambu-gray cursor-not-allowed`:e.danger?`text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-400/10`:`text-white hover:bg-bambu-dark-tertiary`} ${n&&a===t?`bg-bambu-dark-tertiary`:``}`,children:[e.icon&&(0,G.jsx)(`span`,{className:`w-4 h-4 flex-shrink-0 flex items-center justify-center`,children:e.icon}),(0,G.jsx)(`span`,{className:`flex-1`,children:e.label}),n&&(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`})]}),n&&a===t&&(0,G.jsx)($se,{items:e.submenu,searchPlaceholder:e.submenuSearchPlaceholder,onClose:r,className:`absolute min-w-[200px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 overflow-hidden max-h-[300px] overflow-y-auto z-[60] ${u?`right-full mr-1`:`left-full ml-1`} ${f[t]===`bottom`?`bottom-0`:`top-0`}`,onMouseEnter:()=>{s.current&&=(clearTimeout(s.current),null)},onMouseLeave:()=>h()})]},t)})})}function ece({printerId:e,printerName:t,onClose:n}){let{t:r}=U(),i=co(),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(`all`),p=(0,y.useRef)(null),{data:m,isLoading:h,refetch:g}=K({queryKey:[`mqtt-logs`,e],queryFn:()=>Z.getMQTTLogs(e),refetchInterval:1e3}),_=q({mutationFn:()=>Z.enableMQTTLogging(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`mqtt-logs`,e]})}}),v=q({mutationFn:()=>Z.disableMQTTLogging(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`mqtt-logs`,e]})}}),b=q({mutationFn:()=>Z.clearMQTTLogs(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`mqtt-logs`,e]})}});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,y.useEffect)(()=>{a&&p.current&&(p.current.scrollTop=p.current.scrollHeight)},[m?.logs,a]);let x=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},S=e=>new Date(e).toLocaleTimeString(`en-US`,{hour12:!1,fractionalSecondDigits:3}),C=(e,t)=>{if(e==null)return``;let n=typeof e==`string`?JSON.parse(e):e,r=JSON.stringify(n,null,t?2:0);return!t&&r.length>100?r.substring(0,100)+`...`:r},w=m?.logging_enabled??!1,T=(0,y.useMemo)(()=>m?.logs??[],[m?.logs]),E=(0,y.useMemo)(()=>T.filter(e=>{if(d!==`all`&&e.direction!==d)return!1;if(l.trim()){let t=l.toLowerCase(),n=e.topic.toLowerCase().includes(t),r=JSON.stringify(e.payload).toLowerCase().includes(t);return n||r}return!0}),[T,l,d]);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg max-w-4xl w-full max-h-[85vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`mqttDebug.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[w?(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>v.mutate(),disabled:v.isPending,children:[(0,G.jsx)(bu,{className:`w-4 h-4`}),r(`mqttDebug.stopLogging`)]}):(0,G.jsxs)(Q,{size:`sm`,onClick:()=>_.mutate(),disabled:_.isPending,children:[(0,G.jsx)(Nl,{className:`w-4 h-4`}),r(`mqttDebug.startLogging`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>b.mutate(),disabled:b.isPending||T.length===0,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),r(`mqttDebug.clearLog`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>g(),disabled:h,children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${h?`animate-spin`:``}`})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:a,onChange:e=>o(e.target.checked),className:`rounded border-bambu-dark-tertiary`}),`Auto-scroll`]}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[E.length,`/`,T.length]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:r(`mqttDebug.searchPlaceholder`),value:l,onChange:e=>u(e.target.value),className:`w-full pl-8 pr-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),l&&(0,G.jsx)(`button`,{onClick:()=>u(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 bg-bambu-dark rounded border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>f(`all`),className:`px-2 py-1.5 text-xs rounded-l transition-colors ${d===`all`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:r(`mqttDebug.all`)}),(0,G.jsxs)(`button`,{onClick:()=>f(`in`),className:`px-2 py-1.5 text-xs transition-colors flex items-center gap-1 ${d===`in`?`bg-blue-500 text-white`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Io,{className:`w-3 h-3`}),r(`mqttDebug.incoming`)]}),(0,G.jsxs)(`button`,{onClick:()=>f(`out`),className:`px-2 py-1.5 text-xs rounded-r transition-colors flex items-center gap-1 ${d===`out`?`bg-green-500 text-white`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Ho,{className:`w-3 h-3`}),r(`mqttDebug.outgoing`)]})]})]})]}),(0,G.jsx)(`div`,{ref:p,className:`flex-1 overflow-auto p-4 font-mono text-xs bg-black min-h-[400px]`,children:T.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`mb-2`,children:r(`mqttDebug.noMessages`)}),!w&&(0,G.jsx)(`p`,{className:`text-sm`,children:r(`mqttDebug.startLoggingHint`)})]}):E.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`mb-2`,children:r(`mqttDebug.noMessagesMatch`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`mqttDebug.adjustFilterHint`)})]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:E.map((e,t)=>{let n=s.has(t),i=e.direction===`in`;return(0,G.jsxs)(`div`,{className:`p-2 rounded cursor-pointer hover:bg-bambu-dark-secondary transition-colors ${n?`bg-bambu-dark-secondary`:``}`,onClick:()=>x(t),children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray shrink-0`,children:S(e.timestamp)}),(0,G.jsx)(`span`,{className:`shrink-0 ${i?`text-blue-400`:`text-green-400`}`,title:r(i?`mqttDebug.incoming`:`mqttDebug.outgoing`),children:i?(0,G.jsx)(Io,{className:`w-3 h-3`}):(0,G.jsx)(Ho,{className:`w-3 h-3`})}),(0,G.jsx)(`span`,{className:`text-purple-400 shrink-0`,children:e.topic})]}),n?(0,G.jsx)(`pre`,{className:`mt-2 p-3 bg-gray-900 border border-gray-700 rounded text-green-400 overflow-x-auto whitespace-pre-wrap break-all max-h-96 overflow-y-auto text-xs`,children:C(e.payload,!0)}):(0,G.jsx)(`pre`,{className:`mt-1 text-white/80 truncate`,children:C(e.payload,!1)})]},t)})})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:w?(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 bg-green-500 rounded-full animate-pulse`}),r(`mqttDebug.loggingActive`)]}):(0,G.jsx)(`span`,{children:r(`mqttDebug.loggingStopped`)})}),(0,G.jsx)(Q,{variant:`secondary`,onClick:n,children:r(`common.close`)})]})]})})}function AT(e){if(!e)return`idle`;switch(e.class){case`failure`:case`warning`:case`safe`:case`error`:return e.class;default:return`unknown`}}function tce(e){return e===`failure`||e===`warning`||e===`safe`}function nce({printerName:e,detection:t,lastError:n,onClose:r}){let{t:i}=U(),a=or();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let o=AT(t),s=o===`failure`?`text-status-error`:o===`warning`?`text-status-warning`:o===`safe`?`text-status-ok`:o===`error`?`text-amber-600 dark:text-amber-400`:`text-bambu-gray`,c=t?.error??n;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg shadow-xl max-w-lg w-full max-h-[80vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`printers.aiDetection.modalTitle`,{name:e})})]}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,"aria-label":i(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4 text-sm`,children:[(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`printers.aiDetection.currentStatus`)}),(0,G.jsx)(`span`,{className:`font-medium ${s}`,children:i(`printers.aiDetection.${o}`)})]}),t&&tce(o)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`printers.aiDetection.score`)}),(0,G.jsx)(`span`,{className:`text-white font-mono`,children:t.score.toFixed(3)})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`printers.aiDetection.framesAnalyzed`)}),(0,G.jsx)(`span`,{className:`text-white font-mono`,children:t.frame_count})]})]}),o===`error`&&(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`printers.aiDetection.errorHint`)}),!t&&(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`printers.aiDetection.idleHint`)})]}),c&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-red-700 dark:text-red-400`}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`font-medium text-red-700 dark:text-red-400`,children:i(`printers.aiDetection.lastError`)}),(0,G.jsx)(`p`,{className:`text-red-700/80 dark:text-red-300/80 break-words mt-1`,children:c})]})]})]}),(0,G.jsx)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex items-center justify-end`,children:(0,G.jsxs)(`button`,{onClick:()=>a(`/settings?tab=failure-detection`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-lg bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsx)(ru,{className:`w-4 h-4`}),i(`printers.aiDetection.openSettings`)]})})]})})}function jT(e,t){if(e.archive_name)return e.archive_name;if(e.library_file_name)return e.library_file_name;let n=e.variants??[];if(n.length>0){let e=n[0].filename,r=n.length-1;return r>0&&t?`${e} ${t(r)}`:e}return`File #${e.archive_id??e.library_file_id}`}function rce({printerId:e,printerModel:t,loadedFilamentTypes:n,loadedFilaments:r,loadedVariants:i,variant:a=`card`}){let{t:o}=U(),{data:s}=K({queryKey:[`queue`,e,`pending`,t],queryFn:()=>Z.getQueue(e,`pending`,t||void 0),refetchInterval:3e4}),c=s?Tm(s,n,r,i):void 0,l=c?.length||0;if(l===0)return null;let u=c?.[0];return(0,G.jsx)(Ai,{to:`/queue`,className:a===`panelExtension`?`block mt-2 border-t border-bambu-dark-tertiary pt-2 pl-1 hover:opacity-90 transition-opacity`:`block mb-3 p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(as,{className:`w-5 h-5 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:o(`queue.nextInQueue`)}),(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:u?jT(u):``})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),u?.scheduled_time?up(u.scheduled_time,`system`,o):o(`time.waiting`)]}),l>1&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 bg-yellow-100 dark:bg-yellow-400/20 text-yellow-700 dark:text-yellow-400 rounded`,children:[`+`,l-1]}),(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`})]})]})})}var MT={door:{on:`open`,off:`closed`},garage_door:{on:`open`,off:`closed`},window:{on:`open`,off:`closed`},opening:{on:`open`,off:`closed`},lock:{on:`unlocked`,off:`locked`},motion:{on:`detected`,off:`clear`},occupancy:{on:`detected`,off:`clear`},presence:{on:`detected`,off:`clear`},smoke:{on:`detected`,off:`clear`},gas:{on:`detected`,off:`clear`},moisture:{on:`wet`,off:`dry`},problem:{on:`problem`,off:`ok`},safety:{on:`problem`,off:`ok`},running:{on:`running`,off:`stopped`}},NT={door:Ys,garage_door:Ys,window:Ys,opening:Ys,lock:tl,temperature:Mu,humidity:Qs,moisture:Qs,battery:Wo,motion:Mo,occupancy:Mo,presence:Mo,smoke:Lu,gas:Lu,problem:Lu,safety:Lu,running:$u};function PT(e,t,n){if(!e.reachable||e.state===null)return t(`haSensors.unavailable`);if(e.kind===`numeric`){if(e.value===null)return e.state;let t=n?.decimals===void 0?String(e.value):e.value.toFixed(n.decimals);return e.unit?`${t} ${e.unit}`:t}let r=MT[e.device_class??``],i=r?r[e.state===`on`?`on`:`off`]:e.state;return t(`haSensors.states.${i}`,{defaultValue:i})}function FT(e){let t=e.device_class??``;if(e.state===`off`){if(NT[t]===Ys)return Js;if(NT[t]===tl)return nl}return NT[t]??(e.kind===`numeric`?Tc:Mo)}function ice({printerId:e}){let{t}=U(),{data:n}=K({queryKey:[`haSensorReadings`,e],queryFn:()=>Z.getHASensorReadings(e),refetchInterval:15e3});if(!n?.length)return null;let r=e=>PT(e,t);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,G.jsx)(Tc,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] text-blue-600 dark:text-blue-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t(`haSensors.label`)}),(0,G.jsx)(`div`,{className:`h-[2px] w-5 bg-bambu-dark-tertiary/50`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:n.map(e=>{let n=FT(e),i=!e.reachable||e.state===null;return(0,G.jsxs)(`span`,{title:e.block_print?t(`haSensors.blocksPrints`,{entity:e.entity_id}):e.entity_id,className:`px-2 py-0.5 text-xs rounded flex items-center gap-1 ${i?`bg-bambu-dark-tertiary/50 text-bambu-gray`:e.alerting?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[(0,G.jsx)(n,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`}),(0,G.jsx)(`span`,{children:e.name}),(0,G.jsx)(`span`,{className:`font-medium`,children:r(e)})]},e.id)})})]})}function IT(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t{var{children:n,width:r,height:i,viewBox:a,className:o,style:s,title:c,desc:l}=e,u=lce(e,cce),d=a||{width:r,height:i,x:0,y:0},f=LT(`recharts-surface`,o);return y.createElement(`svg`,WT({},UT(u),{className:f,width:r,height:i,style:s,viewBox:`${d.x} ${d.y} ${d.width} ${d.height}`,ref:t}),y.createElement(`title`,null,c),y.createElement(`desc`,null,l),n)}),dce=[`children`,`className`];function KT(){return KT=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:n,className:r}=e,i=fce(e,dce),a=LT(`recharts-layer`,r);return y.createElement(`g`,KT({className:a},UT(i),{ref:t}),n)}),JT=(0,y.createContext)(null),mce=()=>(0,y.useContext)(JT);function YT(e){return function(){return e}}var XT=Math.cos,ZT=Math.sin,QT=Math.sqrt,$T=Math.PI;$T/2;var eE=2*$T,tE=Math.PI,nE=2*tE,rE=1e-6,hce=nE-rE;function iE(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw Error(`invalid digits: ${e}`);if(t>15)return iE;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;trE)if(!(Math.abs(u*s-c*l)>rE)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((tE-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>rE&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>rE||Math.abs(this._y1-l)>rE)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%nE+nE),d>hce?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>rE&&this._append`A${n},${n},0,${+(d>=tE)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};function _ce(){return new aE}_ce.prototype=aE.prototype;function oE(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new aE(t)}Array.prototype.slice;function sE(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function cE(e){this._context=e}cE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function lE(e){return new cE(e)}function uE(e){return e[0]}function dE(e){return e[1]}function fE(e,t){var n=YT(!0),r=null,i=lE,a=null,o=oE(s);e=typeof e==`function`?e:e===void 0?uE:YT(e),t=typeof t==`function`?t:t===void 0?dE:YT(t);function s(s){var c,l=(s=sE(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return fE().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:YT(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:YT(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:YT(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:YT(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:YT(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:YT(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:YT(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var mE=class{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t);break}this._x0=e,this._y0=t}};function vce(e){return new mE(e,!0)}function yce(e){return new mE(e,!1)}var hE={draw(e,t){let n=QT(t/$T);e.moveTo(n,0),e.arc(0,0,n,0,eE)}},bce={draw(e,t){let n=QT(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},gE=QT(1/3),xce=gE*2,Sce={draw(e,t){let n=QT(t/xce),r=n*gE;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},Cce={draw(e,t){let n=QT(t),r=-n/2;e.rect(r,r,n,n)}},wce=.8908130915292852,_E=ZT($T/10)/ZT(7*$T/10),Tce=ZT(eE/10)*_E,Ece=-XT(eE/10)*_E,Dce={draw(e,t){let n=QT(t*wce),r=Tce*n,i=Ece*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=eE*t/5,o=XT(a),s=ZT(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},vE=QT(3),Oce={draw(e,t){let n=-QT(t/(vE*3));e.moveTo(0,n*2),e.lineTo(-vE*n,-n),e.lineTo(vE*n,-n),e.closePath()}},yE=-.5,bE=QT(3)/2,xE=1/QT(12),kce=(xE/2+1)*3,Ace={draw(e,t){let n=QT(t/kce),r=n/2,i=n*xE,a=r,o=n*xE+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(yE*r-bE*i,bE*r+yE*i),e.lineTo(yE*a-bE*o,bE*a+yE*o),e.lineTo(yE*s-bE*c,bE*s+yE*c),e.lineTo(yE*r+bE*i,yE*i-bE*r),e.lineTo(yE*a+bE*o,yE*o-bE*a),e.lineTo(yE*s+bE*c,yE*c-bE*s),e.closePath()}};function jce(e,t){let n=null,r=oE(i);e=typeof e==`function`?e:YT(e||hE),t=typeof t==`function`?t:YT(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:YT(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:YT(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function SE(){}function CE(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function wE(e){this._context=e}wE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:CE(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:CE(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Mce(e){return new wE(e)}function TE(e){this._context=e}TE.prototype={areaStart:SE,areaEnd:SE,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:CE(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Nce(e){return new TE(e)}function EE(e){this._context=e}EE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:CE(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Pce(e){return new EE(e)}function DE(e){this._context=e}DE.prototype={areaStart:SE,areaEnd:SE,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Fce(e){return new DE(e)}function OE(e){return e<0?-1:1}function kE(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(OE(a)+OE(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function AE(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function jE(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function ME(e){this._context=e}ME.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:jE(this,this._t0,AE(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,jE(this,AE(this,n=kE(this,e,t)),n);break;default:jE(this,this._t0,n=kE(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function NE(e){this._context=new PE(e)}(NE.prototype=Object.create(ME.prototype)).point=function(e,t){ME.prototype.point.call(this,t,e)};function PE(e){this._context=e}PE.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function Ice(e){return new ME(e)}function Lce(e){return new NE(e)}function FE(e){this._context=e}FE.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=IE(e),i=IE(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}this._x=e,this._y=t}};function zce(e){return new LE(e,.5)}function Bce(e){return new LE(e,0)}function Vce(e){return new LE(e,1)}function RE(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n=0;)n[t]=t;return n}function Hce(e,t){return e[t]}function Uce(e){let t=[];return t.key=e,t}function Wce(){var e=YT([]),t=zE,n=RE,r=Hce;function i(i){var a=Array.from(e.apply(this,arguments),Uce),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o0){for(var n,r,i=0,a=e[0].length,o;i0){for(var n=0,r=e[t[0]],i,a=r.length;n0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e===`__proto__`}e.isUnsafeProperty=t})),BE=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e.includes(`.`)||e.includes(`[`)||e.includes(`]`)}}e.isDeepKey=t})),VE=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}e.toKey=t})),Yce=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(t).join(`,`);let n=String(e);return n===`0`&&Object.is(Number(e),-0)?`-0`:n}e.toString=t})),HE=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Yce(),n=VE();function r(e){if(Array.isArray(e))return e.map(n.toKey);if(typeof e==`symbol`)return[e];e=t.toString(e);let r=[],i=e.length;if(i===0)return r;let a=0,o=``,s=``,c=!1;for(e.charCodeAt(0)===46&&(r.push(``),a++);a{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Jce(),n=BE(),r=VE(),i=HE();function a(e,s,c){if(e==null)return c;switch(typeof s){case`string`:{if(t.isUnsafeProperty(s))return c;let r=e[s];return r===void 0?n.isDeepKey(s)?a(e,i.toPath(s),c):c:r}case`number`:case`symbol`:{typeof s==`number`&&(s=r.toKey(s));let t=e[s];return t===void 0?c:t}default:{if(Array.isArray(s))return o(e,s,c);if(s=Object.is(s?.valueOf(),-0)?`-0`:String(s),t.isUnsafeProperty(s))return c;let n=e[s];return n===void 0?c:n}}}function o(e,n,r){if(n.length===0)return r;let i=e;for(let e=0;e{t.exports=UE().get})),Zce=4;function WE(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zce),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function GE(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+WE(i)+n},``)}var KE=l(Xce()),qE=e=>e===0?0:e>0?1:-1,JE=e=>typeof e==`number`&&e!=+e,YE=e=>typeof e==`string`&&e.indexOf(`%`)===e.length-1,XE=e=>(typeof e==`number`||e instanceof Number)&&!JE(e),ZE=e=>XE(e)||typeof e==`string`,Qce=0,QE=e=>{var t=++Qce;return`${e||``}${t}`},$E=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!XE(e)&&typeof e!=`string`)return n;var i;if(YE(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return JE(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},eD=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;re&&(typeof t==`function`?t(e):(0,KE.default)(e,t))===n)}var rD=e=>e==null,iD=e=>rD(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function aD(e){return e!=null}function oD(){}var $ce=[`type`,`size`,`sizeType`];function sD(){return sD=Object.assign?Object.assign.bind():function(e){for(var t=1;tuD[`symbol${iD(e)}`]||hE,sle=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*ale;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},cle=(e,t)=>{uD[`symbol${iD(e)}`]=t},dD=e=>{var{type:t=`circle`,size:n=64,sizeType:r=`area`}=e,i=lD(lD({},rle(e,$ce)),{},{type:t,size:n,sizeType:r}),a=`circle`;typeof t==`string`&&(a=t);var o=()=>{var e=ole(a),t=jce().type(e).size(sle(n,r,a))();if(t!==null)return t},{className:s,cx:c,cy:l}=i,u=UT(i);return XE(c)&&XE(l)&&XE(n)?y.createElement(`path`,sD({},u,{className:LT(`recharts-symbols`,s),transform:`translate(${c}, ${l})`,d:o()})):null};dD.registerSymbol=cle;var fD=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,pD=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,y.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{RT(e)&&(r[e]=t||(t=>n[e](n,t)))}),r},lle=(e,t,n)=>r=>(e(t,n,r),null),mD=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];RT(i)&&typeof a==`function`&&(r||={},r[i]=lle(a,t,n))}),r};function hD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ule(e){for(var t=1;t(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function _D(){return _D=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var u=t.formatter||i,d=LT({"recharts-legend-item":!0,[`legend-item-${r}`]:!0,inactive:t.inactive});if(t.type===`none`)return null;var f=t.inactive?a:t.color,p=u?u(t.value,t,r):t.value;return y.createElement(`li`,_D({className:d,style:c,key:`legend-item-${r}`},mD(e,t,r)),y.createElement(GT,{width:n,height:n,viewBox:s,style:l,"aria-label":`${p} legend icon`},y.createElement(yle,{data:t,iconType:o,inactiveColor:a})),y.createElement(`span`,{className:`recharts-legend-item-text`,style:{color:f}},p))})}var xle=e=>{var t=gD(e,vle),{payload:n,layout:r,align:i}=t;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:r===`horizontal`?i:`left`};return y.createElement(`ul`,{className:`recharts-default-legend`,style:a},y.createElement(ble,_D({},t,{payload:n})))},Sle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){let n=new Map;for(let r=0;r{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}e.ary=t})),bD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e}e.identity=t})),wle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Number.isSafeInteger(e)&&e>=0}e.isLength=t})),xD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=wle();function n(e){return e!=null&&typeof e!=`function`&&t.isLength(e.length)}e.isArrayLike=n})),Tle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`object`&&!!e}e.isObjectLike=t})),Ele=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=xD(),n=Tle();function r(e){return n.isObjectLike(e)&&t.isArrayLike(e)}e.isArrayLikeObject=r})),Dle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=UE();function n(e){return function(n){return t.get(n,e)}}e.property=n})),SD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}e.isObject=t})),CD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e==null||typeof e!=`object`&&typeof e!=`function`}e.isPrimitive=t})),wD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}e.isEqualsSameValueZero=t})),Ole=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=SD(),n=CD(),r=wD();function i(e,t,n){return typeof n==`function`?a(e,t,function e(t,r,i,o,s,c){let l=n(t,r,i,o,s,c);return l===void 0?a(t,r,e,c):!!l},new Map):i(e,t,()=>void 0)}function a(e,n,i,s){if(n===e)return!0;switch(typeof n){case`object`:return o(e,n,i,s);case`function`:return Object.keys(n).length>0?a(e,{...n},i,s):r.isEqualsSameValueZero(e,n);default:return t.isObject(e)?typeof n==`string`?n===``:!0:r.isEqualsSameValueZero(e,n)}}function o(e,t,r,i){if(t==null)return!0;if(Array.isArray(t))return c(e,t,r,i);if(t instanceof Map)return s(e,t,r,i);if(t instanceof Set)return l(e,t,r,i);let a=Object.keys(t);if(e==null||n.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let o=0;o{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Ole();function n(e,n){return t.isMatchWith(e,n,()=>void 0)}e.isMatch=n})),kle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}e.getSymbols=t})),ED=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}e.getTag=t})),DD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),e.argumentsTag=`[object Arguments]`,e.arrayBufferTag=`[object ArrayBuffer]`,e.arrayTag=`[object Array]`,e.bigInt64ArrayTag=`[object BigInt64Array]`,e.bigUint64ArrayTag=`[object BigUint64Array]`,e.booleanTag=`[object Boolean]`,e.dataViewTag=`[object DataView]`,e.dateTag=`[object Date]`,e.errorTag=`[object Error]`,e.float32ArrayTag=`[object Float32Array]`,e.float64ArrayTag=`[object Float64Array]`,e.functionTag=`[object Function]`,e.int16ArrayTag=`[object Int16Array]`,e.int32ArrayTag=`[object Int32Array]`,e.int8ArrayTag=`[object Int8Array]`,e.mapTag=`[object Map]`,e.numberTag=`[object Number]`,e.objectTag=`[object Object]`,e.regexpTag=`[object RegExp]`,e.setTag=`[object Set]`,e.stringTag=`[object String]`,e.symbolTag=`[object Symbol]`,e.uint16ArrayTag=`[object Uint16Array]`,e.uint32ArrayTag=`[object Uint32Array]`,e.uint8ArrayTag=`[object Uint8Array]`,e.uint8ClampedArrayTag=`[object Uint8ClampedArray]`})),Ale=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}e.isTypedArray=t})),OD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=kle(),n=ED(),r=DD(),i=CD(),a=Ale();function o(e,t){return s(e,void 0,e,new Map,t)}function s(e,t,n,r=new Map,o=void 0){let u=o?.(e,t,n,r);if(u!==void 0)return u;if(i.isPrimitive(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let i=0;i{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=OD();function n(e){return t.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}e.cloneDeep=n})),Mle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=TD(),n=jle();function r(e){return e=n.cloneDeep(e),n=>t.isMatch(n,e)}e.matches=r})),Nle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=OD(),n=ED(),r=DD();function i(e,i){return t.cloneDeepWith(e,(a,o,s,c)=>{let l=i?.(a,o,s,c);if(l!==void 0)return l;if(typeof e==`object`){if(n.getTag(e)===r.objectTag&&typeof e.constructor!=`function`){let n={};return c.set(e,n),t.copyProperties(n,e,s,c),n}switch(Object.prototype.toString.call(e)){case r.numberTag:case r.stringTag:case r.booleanTag:{let n=new e.constructor(e?.valueOf());return t.copyProperties(n,e),n}case r.argumentsTag:{let n={};return t.copyProperties(n,e),n.length=e.length,n[Symbol.iterator]=e[Symbol.iterator],n}default:return}}})}e.cloneDeepWith=i})),Ple=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Nle();function n(e){return t.cloneDeepWith(e)}e.cloneDeep=n})),kD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=/^(?:0|[1-9]\d*)$/;function n(e,n=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=ED();function n(e){return typeof e==`object`&&!!e&&t.getTag(e)===`[object Arguments]`}e.isArguments=n})),Ile=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=BE(),n=kD(),r=Fle(),i=HE();function a(e,a){let o;if(o=Array.isArray(a)?a:typeof a==`string`&&t.isDeepKey(a)&&e?.[a]==null?i.toPath(a):[a],o.length===0)return!1;let s=e;for(let e=0;e{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=TD(),n=VE(),r=Ple(),i=UE(),a=Ile();function o(e,o){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=n.toKey(e);break}return o=r.cloneDeep(o),function(n){let r=i.get(n,e);return r===void 0?a.has(n,e):o===void 0?r===void 0:t.isMatch(r,o)}}e.matchesProperty=o})),Rle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=bD(),n=Dle(),r=Mle(),i=Lle();function a(e){if(e==null)return t.identity;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?i.matchesProperty(e[0],e[1]):r.matches(e);case`string`:case`symbol`:case`number`:return n.property(e)}}e.iteratee=a})),zle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Sle(),n=Cle(),r=bD(),i=Ele(),a=Rle();function o(e,o=r.identity){return i.isArrayLikeObject(e)?t.uniqBy(Array.from(e),n.ary(a.iteratee(o),1)):[]}e.uniqBy=o})),AD=l(o(((e,t)=>{t.exports=zle().uniqBy}))());function jD(e,t,n){return t===!0?(0,AD.default)(e,n):typeof t==`function`?(0,AD.default)(e,t):e}var Ble=o((e=>{var t=f(),n=Ze();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Vle=o(((e,t)=>{t.exports=Ble()})),MD=(0,y.createContext)(null),ND=Vle(),Hle=e=>e,PD=()=>{var e=(0,y.useContext)(MD);return e?e.store.dispatch:Hle},FD=()=>{},Ule=()=>FD,Wle=(e,t)=>e===t;function ID(e){var t=(0,y.useContext)(MD),n=(0,y.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:FD,[t,e]);return(0,ND.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Ule,t?t.store.getState:FD,t?t.store.getState:FD,n,Wle)}function Gle(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function Kle(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function qle(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var LD=e=>Array.isArray(e)?e:[e];function Jle(e){let t=Array.isArray(e[0])?e[0]:e;return qle(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function Yle(e,t){let n=[],{length:r}=e;for(let i=0;i{n=zD(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function $le(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),Gle(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=BD,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=LD(c),p=LD(u),m=Jle(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=Yle(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var VD=$le(BD),eue=Object.assign((e,t=VD)=>{Kle(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>eue}),tue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}e.compareValues=(e,n,r)=>{if(e!==n){let i=t(e),a=t(n);if(i===a&&i===0){if(en)return r===`desc`?-1:1}return r===`desc`?a-i:i-a}return 0}})),HD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`symbol`||e instanceof Symbol}e.isSymbol=t})),nue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=HD(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(e,i){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||t.isSymbol(e)?!0:typeof e==`string`&&(r.test(e)||!n.test(e))||i!=null&&Object.hasOwn(i,e)}e.isKey=i})),rue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=tue(),n=nue(),r=HE();function i(e,i,a,o){if(e==null)return[];a=o?void 0:a,Array.isArray(e)||(e=Object.values(e)),Array.isArray(i)||(i=i==null?[null]:[i]),i.length===0&&(i=[null]),Array.isArray(a)||(a=a==null?[]:[a]),a=a.map(e=>String(e));let s=(e,t)=>{let n=e;for(let e=0;et==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:s(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?s(t,e):typeof t==`object`?t[e]:t,l=i.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||n.isKey(e)?e:{key:e,path:r.toPath(e)}));return e.map(e=>({original:e,criteria:l.map(t=>c(t,e))})).slice().sort((e,n)=>{for(let r=0;re.original)}e.orderBy=i})),iue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=kD(),n=xD(),r=SD(),i=wD();function a(e,a,o){return r.isObject(o)&&(typeof a==`number`&&n.isArrayLike(o)&&t.isIndex(a)&&a{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=rue(),n=iue(),r=UD();function i(e,...i){let a=i.length;return a>1&&r.isIterateeCall(e,i[0],i[1])?i=[]:a>2&&r.isIterateeCall(i[0],i[1],i[2])&&(i=[i[0]]),t.orderBy(e,n.flatten(i),[`asc`])}e.sortBy=i})),WD=l(o(((e,t)=>{t.exports=aue().sortBy}))()),GD=e=>e.legend.settings,oue=e=>e.legend.size,sue=VD([e=>e.legend.payload,GD],(e,t)=>{var{itemSorter:n}=t,r=e.flat(1);return n?(0,WD.default)(r,n):r});function cue(){return ID(sue)}var KD=1;function qD(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,n]=(0,y.useState)({height:0,left:0,top:0,width:0});return[t,(0,y.useCallback)(e=>{if(e!=null){var r=e.getBoundingClientRect(),i={height:r.height,left:r.left,top:r.top,width:r.width};(Math.abs(i.height-t.height)>KD||Math.abs(i.left-t.left)>KD||Math.abs(i.top-t.top)>KD||Math.abs(i.width-t.width)>KD)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}},[t.width,t.height,t.top,t.left,...e])]}function JD(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var YD=typeof Symbol==`function`&&Symbol.observable||`@@observable`,XD=()=>Math.random().toString(36).substring(7).split(``).join(`.`),ZD={INIT:`@@redux/INIT${XD()}`,REPLACE:`@@redux/REPLACE${XD()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${XD()}`};function QD(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function $D(e,t,n){if(typeof e!=`function`)throw Error(JD(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(JD(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(JD(1));return n($D)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(JD(3));return i}function d(e){if(typeof e!=`function`)throw Error(JD(4));if(c)throw Error(JD(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(JD(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!QD(e))throw Error(JD(7));if(e.type===void 0)throw Error(JD(8));if(typeof e.type!=`string`)throw Error(JD(17));if(c)throw Error(JD(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(JD(10));r=e,f({type:ZD.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(JD(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[YD](){return this}}}return f({type:ZD.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[YD]:m}}function lue(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:ZD.INIT})===void 0)throw Error(JD(12));if(n(void 0,{type:ZD.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(JD(13))})}function eO(e){let t=Object.keys(e),n={};for(let r=0;re:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function uue(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(JD(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=tO(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function nO(e){return QD(e)&&`type`in e&&typeof e.type==`string`}var rO=Symbol.for(`immer-nothing`),iO=Symbol.for(`immer-draftable`),aO=Symbol.for(`immer-state`);function oO(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var sO=Object,cO=sO.getPrototypeOf,lO=`constructor`,uO=`prototype`,dO=`configurable`,fO=`enumerable`,pO=`writable`,mO=`value`,hO=e=>!!e&&!!e[aO];function gO(e){return e?vO(e)||wO(e)||!!e[iO]||!!e[lO]?.[iO]||TO(e)||EO(e):!1}var due=sO[uO][lO].toString(),_O=new WeakMap;function vO(e){if(!e||!DO(e))return!1;let t=cO(e);if(t===null||t===sO[uO])return!0;let n=sO.hasOwnProperty.call(t,lO)&&t[lO];if(n===Object)return!0;if(!OO(n))return!1;let r=_O.get(n);return r===void 0&&(r=Function.toString.call(n),_O.set(n,r)),r===due}function yO(e,t,n=!0){bO(e)===0?(n?Reflect.ownKeys(e):sO.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function bO(e){let t=e[aO];return t?t.type_:wO(e)?1:TO(e)?2:EO(e)?3:0}var xO=(e,t,n=bO(e))=>n===2?e.has(t):sO[uO].hasOwnProperty.call(e,t),SO=(e,t,n=bO(e))=>n===2?e.get(t):e[t],CO=(e,t,n,r=bO(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function fue(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var wO=Array.isArray,TO=e=>e instanceof Map,EO=e=>e instanceof Set,DO=e=>typeof e==`object`,OO=e=>typeof e==`function`,kO=e=>typeof e==`boolean`;function pue(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var AO=e=>e.copy_||e.base_,jO=e=>e.modified_?e.copy_:e.base_;function MO(e,t){if(TO(e))return new Map(e);if(EO(e))return new Set(e);if(wO(e))return Array[uO].slice.call(e);let n=vO(e);if(t===!0||t===`class_only`&&!n){let t=sO.getOwnPropertyDescriptors(e);delete t[aO];let n=Reflect.ownKeys(t);for(let r=0;r1&&sO.defineProperties(e,{set:PO,add:PO,clear:PO,delete:PO}),sO.freeze(e),t&&yO(e,(e,t)=>{NO(t,!0)},!1),e)}function mue(){oO(2)}var PO={[mO]:mue};function FO(e){return e===null||!DO(e)?!0:sO.isFrozen(e)}var IO=`MapSet`,LO=`Patches`,RO=`ArrayMethods`,zO={};function BO(e){let t=zO[e];return t||oO(0,e),t}var VO=e=>!!zO[e],HO,UO=()=>HO,hue=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:VO(IO)?BO(IO):void 0,arrayMethodsPlugin_:VO(RO)?BO(RO):void 0});function WO(e,t){t&&(e.patchPlugin_=BO(LO),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function GO(e){KO(e),e.drafts_.forEach(gue),e.drafts_=null}function KO(e){e===HO&&(HO=e.parent_)}var qO=e=>HO=hue(HO,e);function gue(e){let t=e[aO];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function JO(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[aO].modified_&&(GO(t),oO(4)),gO(e)&&(e=_ue(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[aO].base_,e,t)}else e=_ue(t,n);return vue(t,e,!0),GO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===rO?void 0:e}function _ue(e,t){if(FO(t))return t;let n=t[aO];if(!n)return XO(t,e.handledSet_,e);if(!YO(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);Cue(n,e)}return n.copy_}function vue(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&NO(t,n)}function yue(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var YO=(e,t)=>e.scope_===t,bue=[];function xue(e,t,n,r){let i=AO(e),a=e.type_;if(r!==void 0&&SO(i,r,a)===t){CO(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;yO(i,(e,n)=>{if(hO(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??bue;for(let e of o)CO(i,e,n,a)}function Sue(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!YO(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=jO(i);xue(e,i.draft_??i,a,n),Cue(i,r)})}function Cue(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}yue(e)}}function wue(e,t,n){let{scope_:r}=e;if(hO(n)){let i=n[aO];YO(i,r)&&i.callbacks_.push(function(){tk(e),xue(e,n,jO(i),t)})}else gO(n)&&e.callbacks_.push(function(){let i=AO(e);e.type_===3?i.has(n)&&XO(n,r.handledSet_,r):SO(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&XO(SO(e.copy_,t,e.type_),r.handledSet_,r)})}function XO(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||hO(e)||t.has(e)||!gO(e)||FO(e)?e:(t.add(e),yO(e,(r,i)=>{if(hO(i)){let t=i[aO];YO(t,n)&&(CO(e,r,jO(t),e.type_),yue(t))}else gO(i)&&XO(i,t,n)}),e)}function Tue(e,t){let n=wO(e),r={type_:+!!n,scope_:t?t.scope_:UO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=ZO;n&&(i=[r],a=QO);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var ZO={get(e,t){if(t===aO)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=AO(e);if(!xO(i,t,e.type_))return Eue(e,i,t);let a=i[t];if(e.finalized_||!gO(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&pue(t))return a;if(a===$O(e.base_,t)){tk(e);let n=e.type_===1?+t:t,r=nk(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in AO(e)},ownKeys(e){return Reflect.ownKeys(AO(e))},set(e,t,n){let r=Due(AO(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=$O(AO(e),t),i=r?.[aO];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(fue(n,r)&&(n!==void 0||xO(e.base_,t,e.type_)))return!0;tk(e),ek(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),wue(e,t,n),!0)},deleteProperty(e,t){return tk(e),$O(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),ek(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=AO(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[pO]:!0,[dO]:e.type_!==1||t!==`length`,[fO]:r[fO],[mO]:n[t]}},defineProperty(){oO(11)},getPrototypeOf(e){return cO(e.base_)},setPrototypeOf(){oO(12)}},QO={};for(let e in ZO){let t=ZO[e];QO[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}QO.deleteProperty=function(e,t){return QO.set.call(this,e,t,void 0)},QO.set=function(e,t,n){return ZO.set.call(this,e[0],t,n,e[0])};function $O(e,t){let n=e[aO];return(n?AO(n):e)[t]}function Eue(e,t,n){let r=Due(t,n);return r?mO in r?r[mO]:r.get?.call(e.draft_):void 0}function Due(e,t){if(!(t in e))return;let n=cO(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=cO(n)}}function ek(e){e.modified_||(e.modified_=!0,e.parent_&&ek(e.parent_))}function tk(e){e.copy_||=(e.assigned_=new Map,MO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Oue=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(OO(e)&&!OO(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}OO(t)||oO(6),n!==void 0&&!OO(n)&&oO(7);let r;if(gO(e)){let i=qO(this),a=nk(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?GO(i):KO(i)}return WO(i,n),JO(r,i)}else if(!e||!DO(e)){if(r=t(e),r===void 0&&(r=e),r===rO&&(r=void 0),this.autoFreeze_&&NO(r,!0),n){let t=[],i=[];BO(LO).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else oO(1,e)},this.produceWithPatches=(e,t)=>{if(OO(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},kO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),kO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),kO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){gO(e)||oO(8),hO(e)&&(e=rk(e));let t=qO(this),n=nk(t,e,void 0);return n[aO].isManual_=!0,KO(t),n}finishDraft(e,t){let n=e&&e[aO];(!n||!n.isManual_)&&oO(9);let{scope_:r}=n;return WO(r,t),JO(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=BO(LO).applyPatches_;return hO(e)?r(e,t):this.produce(e,e=>r(e,t))}};function nk(e,t,n,r){let[i,a]=TO(t)?BO(IO).proxyMap_(t,n):EO(t)?BO(IO).proxySet_(t,n):Tue(t,n);return(n?.scope_??UO()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Sue(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function rk(e){return hO(e)||oO(10,e),kue(e)}function kue(e){if(!gO(e)||FO(e))return e;let t=e[aO],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=MO(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=MO(e,!0);return yO(n,(e,t)=>{CO(n,e,kue(t))},r),t&&(t.finalized_=!1),n}var Aue=new Oue().produce;function jue(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var Mue=jue(),Nue=jue,Pue=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?tO:tO.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function ik(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(bk(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>nO(t)&&t.type===e,n}var Fue=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Iue(e){return gO(e)?Aue(e,()=>{}):e}function ak(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function Lue(e){return typeof e==`boolean`}var Rue=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new Fue;return t&&(Lue(t)?a.push(Mue):a.push(Nue(t.extraArgument))),a},zue=`RTK_autoBatch`,ok=()=>e=>({payload:e,meta:{[zue]:!0}}),Bue=e=>t=>{setTimeout(t,e)},Vue=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?window.requestAnimationFrame:Bue(10):e.type===`callback`?e.queueNotification:Bue(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[zue],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},Hue=e=>function(t){let{autoBatch:n=!0}=t??{},r=new Fue(e);return n&&r.push(Vue(typeof n==`object`?n:void 0)),r};function Uue(e){let t=Rue(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(QD(n))c=eO(n);else throw Error(bk(1));let l;l=typeof r==`function`?r(t):t();let u=tO;i&&(u=Pue({trace:!1,...typeof i==`object`&&i}));let d=Hue(uue(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return $D(c,o,p)}function Wue(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(bk(28));if(r in t)throw Error(bk(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function Gue(e){return typeof e==`function`}function Kue(e,t){let[n,r,i]=Wue(t),a;if(Gue(e))a=()=>Iue(e());else{let t=Iue(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n)if(hO(e)){let r=n(e,t);return r===void 0?e:r}else if(gO(e))return Aue(e,e=>n(e,t));else{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(`A case reducer on a non-draftable value must not return undefined`)}return r}return e},e)}return o.getInitialState=a,o}var que=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,Jue=(e=21)=>{let t=``,n=e;for(;n--;)t+=que[Math.random()*64|0];return t},Yue=Symbol.for(`rtk-slice-createasyncthunk`);function Xue(e,t){return`${e}/${t}`}function Zue({creators:e}={}){let t=e?.asyncThunk?.[Yue];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(bk(11));let i=(typeof e.reducers==`function`?e.reducers($ue()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(bk(12));if(n in o.sliceCaseReducersByType)throw Error(bk(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:Xue(n,r),createNotation:typeof e.reducers==`function`};tde(a)?rde(o,a,s,t):ede(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?Wue(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return Kue(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=ak(d,r,m)),i}function i(t=l){return ak(ak(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=Que(a,t,()=>ak(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function Que(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var sk=Zue();function $ue(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function ede({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!nde(r))throw Error(bk(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?ik(e,o):ik(e))}function tde(e){return e._reducerDefinitionType===`asyncThunk`}function nde(e){return e._reducerDefinitionType===`reducerWithPrepare`}function rde({type:e,reducerName:t},n,r,i){if(!i)throw Error(bk(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||ck,pending:s||ck,rejected:c||ck,settled:l||ck})}function ck(){}var ide=`task`,ade=`listener`,ode=`completed`,lk=`cancelled`,sde=`task-${lk}`,cde=`task-${ode}`,uk=`${ade}-${lk}`,lde=`${ade}-${ode}`,dk=class{constructor(e){this.code=e,this.message=`${ide} ${lk} (reason: ${e})`}name=`TaskAbortError`;message},fk=(e,t)=>{if(typeof e!=`function`)throw TypeError(bk(32))},pk=()=>{},ude=(e,t=pk)=>(e.catch(t),e),dde=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),mk=e=>{if(e.aborted)throw new dk(e.reason)};function fde(e,t){let n=pk;return new Promise((r,i)=>{let a=()=>i(new dk(e.reason));if(e.aborted){a();return}n=dde(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=pk})}var pde=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof dk?`cancelled`:`rejected`,error:e}}finally{t?.()}},hk=e=>t=>ude(fde(e,t).then(t=>(mk(e),t))),mde=e=>{let t=hk(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:gk}=Object,hde={},_k=`listenerMiddleware`,gde=(e,t)=>{let n=t=>dde(e,()=>t.abort(e.reason));return(r,i)=>{fk(r,`taskExecutor`);let a=new AbortController;n(a);let o=pde(async()=>{mk(e),mk(a.signal);let t=await r({pause:hk(a.signal),delay:mde(a.signal),signal:a.signal});return mk(a.signal),t},()=>a.abort(cde));return i?.autoJoin&&t.push(o.catch(pk)),{result:hk(e)(o),cancel(){a.abort(sde)}}}},_de=(e,t)=>{let n=async(n,r)=>{mk(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await fde(t,Promise.race(a));return mk(t),e}finally{i()}};return(e,t)=>ude(n(e,t))},vde=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=ik(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(bk(21));return fk(a,`options.listener`),{predicate:i,type:t,effect:a}},yde=gk(e=>{let{type:t,predicate:n,effect:r}=vde(e);return{id:Jue(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(bk(22))}}},{withTypes:()=>yde}),bde=(e,t)=>{let{type:n,effect:r,predicate:i}=vde(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},vk=e=>{e.pending.forEach(e=>{e.abort(uk)})},xde=(e,t)=>()=>{for(let e of t.keys())vk(e);e.clear()},Sde=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},Cde=gk(ik(`${_k}/add`),{withTypes:()=>Cde}),wde=ik(`${_k}/removeAll`),Tde=gk(ik(`${_k}/remove`),{withTypes:()=>Tde}),Ede=(...e)=>{console.error(`${_k}/error`,...e)},yk=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=Ede}=e;fk(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&vk(e)}),c=e=>s(bde(t,e)??yde(e));gk(c,{withTypes:()=>c});let l=e=>{let n=bde(t,e);return n&&(n.unsubscribe(),e.cancelActive&&vk(n)),!!n};gk(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=_de(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,gk({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:mde(u.signal),pause:hk(u.signal),extra:a,signal:u.signal,fork:gde(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(uk),n.delete(e))})},cancel:()=>{u.abort(uk),e.pending.delete(u)},throwIfCancelled:()=>{mk(u.signal)}})))}catch(e){e instanceof dk||Sde(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(lde),i(e),e.pending.delete(u)}},d=xde(t,n);return{middleware:e=>n=>r=>{if(!nO(r))return n(r);if(Cde.match(r))return c(r.payload);if(wde.match(r)){d();return}if(Tde.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===hde)throw Error(bk(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,Sde(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=hde}return s},startListening:c,stopListening:l,clearListeners:d}};function bk(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Dde=sk({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),{setMargin:Ode,setLayout:kde,setChartSize:Ade,setScale:jde}=Dde.actions,Mde=Dde.reducer;function Nde(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function xk(e){return Number.isFinite(e)}function Sk(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function Pde(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ck(e){for(var t=1;t{if(t&&n){var{width:r,height:i}=n,{align:a,verticalAlign:o,layout:s}=t;if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&XE(e[a]))return Ck(Ck({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&XE(e[o]))return Ck(Ck({},e),{},{[o]:e[o]+(i||0)})}return e},Tk=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,Ek=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var i,a,o=e.map(e=>(e.coordinate===t&&(i=!0),e.coordinate===n&&(a=!0),e.coordinate));return i||o.push(t),a||o.push(n),o},Dk=(e,t,n)=>{if(!e)return null;var{duplicateDomain:r,type:i,range:a,scale:o,realScaleType:s,isCategorical:c,categoricalDomain:l,tickCount:u,ticks:d,niceTicks:f,axisType:p}=e;if(!o)return null;var m=s===`scaleBand`&&o.bandwidth?o.bandwidth()/2:2,h=(t||n)&&i===`category`&&o.bandwidth?o.bandwidth()/m:0;return h=p===`angleAxis`&&a&&a.length>=2?qE(a[0]-a[1])*2*h:h,t&&(d||f)?(d||f||[]).map((e,t)=>{var n=r?r.indexOf(e):e,i=o.map(n);return xk(i)?{coordinate:i+h,value:e,offset:h,index:t}:null}).filter(aD):c&&l?l.map((e,t)=>{var n=o.map(e);return xk(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(aD):o.ticks&&!n&&u!=null?o.ticks(u).map((e,t)=>{var n=o.map(e);return xk(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(aD):o.domain().map((e,t)=>{var n=o.map(e);return xk(n)?{coordinate:n+h,value:r?r[e]:e,index:t,offset:h}:null}).filter(aD)},zde=(e,t)=>{if(!t||t.length!==2||!XE(t[0])||!XE(t[1]))return e;var n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]),i=[e[0],e[1]];return(!XE(e[0])||e[0]r)&&(i[1]=r),i[0]>r&&(i[0]=r),i[1]{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:Gce,none:RE,silhouette:Kce,wiggle:qce,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},Vde=(e,t,n)=>{var r=Bde[n]??RE,i=Wce().keys(t).value((e,t)=>Number(wk(e,t,0))).order(zE).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=wk(e[i],t[r],0);Array.isArray(a)&&a.length===2&&XE(a[0])&&XE(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function Ok(e){return e==null?void 0:String(e)}function kk(e){var{axis:t,ticks:n,bandSize:r,entry:i,index:a,dataKey:o}=e;if(t.type===`category`){if(!t.allowDuplicatedCategory&&t.dataKey&&!rD(i[t.dataKey])){var s=nD(n,`value`,i[t.dataKey]);if(s)return s.coordinate+r/2}return n!=null&&n[a]?n[a].coordinate+r/2:null}var c=wk(i,rD(o)?t.dataKey:o),l=t.scale.map(c);return XE(l)?l:null}var Ak=e=>{var{axis:t,ticks:n,offset:r,bandSize:i,entry:a,index:o}=e;if(t.type===`category`)return n[o]?n[o].coordinate+r:null;var s=wk(a,t.dataKey,t.scale.domain()[o]);if(rD(s))return null;var c=t.scale.map(s);return XE(c)?c-i/2+r:null},Hde=e=>{var{numericAxis:t}=e,n=t.scale.domain();if(t.type===`number`){var r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return r<=0&&i>=0?0:i<0?i:r}return n[0]},Ude=e=>{var t=e.flat(2).filter(XE);return[Math.min(...t),Math.max(...t)]},Wde=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],Gde=(e,t,n)=>{if(e!=null)return Wde(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var{stackedData:o}=a,s=o.reduce((e,r)=>{var i=Ude(Nde(r,t,n));return!xk(i[0])||!xk(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(s[0],r[0]),Math.max(s[1],r[1])]},[1/0,-1/0]))},jk=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Mk=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Nk=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=(0,WD.default)(t,e=>e.coordinate),a=1/0,o=1,s=i.length;o{if(t===`horizontal`)return e.chartX;if(t===`vertical`)return e.chartY},qde=(e,t)=>t===`centric`?e.angle:e.radius,Ik=e=>e.layout.width,Lk=e=>e.layout.height,Jde=e=>e.layout.scale,Rk=e=>e.layout.margin,zk=VD(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),Bk=VD(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),Vk=`data-recharts-item-index`,Yde=`data-recharts-item-id`;function Hk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Uk(e){for(var t=1;te.brush.height;function efe(e){return Bk(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function tfe(e){return Bk(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function nfe(e){return zk(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+t.height:e,0)}function rfe(e){return zk(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+t.height:e,0)}var Wk=VD([Ik,Lk,Rk,$de,efe,tfe,nfe,rfe,GD,oue],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=Uk(Uk({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=Rde(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return Uk(Uk({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),ife=VD(Wk,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Gk=VD(Ik,Lk,(e,t)=>({x:0,y:0,width:e,height:t})),afe=(0,y.createContext)(null),Kk=()=>(0,y.useContext)(afe)!=null,qk=e=>e.brush,Jk=VD([qk,Wk,Rk],(e,t,n)=>({height:e.height,x:XE(e.x)?e.x:t.left,y:XE(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:XE(e.width)?e.width:t.width})),ofe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}e.debounce=t})),sfe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=ofe();function n(e,n=0,r={}){typeof r!=`object`&&(r={});let{leading:i=!1,trailing:a=!0,maxWait:o}=r,s=[,,];i&&(s[0]=`leading`),a&&(s[1]=`trailing`);let c,l=null,u=t.debounce(function(...t){c=e.apply(this,t),l=null},n,{edges:s}),d=function(...t){return o!=null&&(l===null&&(l=Date.now()),Date.now()-l>=o)?(c=e.apply(this,t),l=Date.now(),u.cancel(),u.schedule(),c):(u.apply(this,t),c)};return d.cancel=u.cancel,d.flush=()=>(u.flush(),c),d}e.debounce=n})),cfe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=sfe();function n(e,n=0,r={}){let{leading:i=!0,trailing:a=!0}=r;return t.debounce(e,n,{leading:i,maxWait:n,trailing:a})}e.throttle=n})),lfe=o(((e,t)=>{t.exports=cfe().throttle})),ufe=!0,Yk=function(e,t){var n=[...arguments].slice(2);if(ufe&&typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e))if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}},Xk={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},Zk=(e,t,n)=>{var{width:r=Xk.width,height:i=Xk.height,aspect:a,maxHeight:o}=n,s=YE(r)?e:Number(r),c=YE(i)?t:Number(i);return a&&a>0&&(s?c=s/a:c&&(s=c*a),o&&c!=null&&c>o&&(c=o)),{calculatedWidth:s,calculatedHeight:c}},dfe={width:0,height:0,overflow:`visible`},ffe={width:0,overflowX:`visible`},pfe={height:0,overflowY:`visible`},mfe={},hfe=e=>{var{width:t,height:n}=e,r=YE(t),i=YE(n);return r&&i?dfe:r?ffe:i?pfe:mfe};function gfe(e){var{width:t,height:n,aspect:r}=e,i=t,a=n;return i===void 0&&a===void 0?(i=Xk.width,a=Xk.height):i===void 0?i=r&&r>0?void 0:Xk.width:a===void 0&&(a=r&&r>0?void 0:Xk.height),{width:i,height:a}}var _fe=l(lfe());function Qk(){return Qk=Object.assign?Object.assign.bind():function(e){for(var t=1;t({width:n,height:r}),[n,r]);return xfe(i)?y.createElement(tA.Provider,{value:i},t):null}var rA=()=>(0,y.useContext)(tA),Sfe=(0,y.forwardRef)((e,t)=>{var{aspect:n,initialDimension:r=Xk.initialDimension,width:i,height:a,minWidth:o=Xk.minWidth,minHeight:s,maxHeight:c,children:l,debounce:u=Xk.debounce,id:d,className:f,onResize:p,style:m={}}=e,h=(0,y.useRef)(null),g=(0,y.useRef)();g.current=p,(0,y.useImperativeHandle)(t,()=>h.current);var[_,v]=(0,y.useState)({containerWidth:r.width,containerHeight:r.height}),b=(0,y.useCallback)((e,t)=>{v(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,y.useEffect)(()=>{if(h.current==null||typeof ResizeObserver>`u`)return oD;var e=e=>{var t,n=e[0];if(n!=null){var{width:r,height:i}=n.contentRect;b(r,i),(t=g.current)==null||t.call(g,r,i)}};u>0&&(e=(0,_fe.default)(e,u,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),{width:n,height:r}=h.current.getBoundingClientRect();return b(n,r),t.observe(h.current),()=>{t.disconnect()}},[b,u]);var{containerWidth:x,containerHeight:S}=_;Yk(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var{calculatedWidth:C,calculatedHeight:w}=Zk(x,S,{width:i,height:a,aspect:n,maxHeight:c});return Yk(C!=null&&C>0||w!=null&&w>0,`The width(%s) and height(%s) of chart should be greater than 0, + A${a},${a},0,1,1,${o},${i}`,className:`recharts-legend-icon`});if(c===`rect`)return y.createElement(`path`,{stroke:`none`,fill:s,d:`M0,${yD/8}h${yD}v${yD*3/4}h${-yD}z`,className:`recharts-legend-icon`});if(y.isValidElement(t.legendIcon)){var l=mle({},t);return delete l.legendIcon,y.cloneElement(t.legendIcon,l)}return y.createElement(dD,{fill:s,cx:i,cy:i,size:yD,sizeType:`diameter`,type:c})}function ble(e){var{payload:t,iconSize:n,layout:r,formatter:i,inactiveColor:a,iconType:o}=e,s={x:0,y:0,width:yD,height:yD},c={display:r===`horizontal`?`inline-block`:`block`,marginRight:10},l={display:`inline-block`,verticalAlign:`middle`,marginRight:4};return t.map((t,r)=>{var u=t.formatter||i,d=LT({"recharts-legend-item":!0,[`legend-item-${r}`]:!0,inactive:t.inactive});if(t.type===`none`)return null;var f=t.inactive?a:t.color,p=u?u(t.value,t,r):t.value;return y.createElement(`li`,_D({className:d,style:c,key:`legend-item-${r}`},mD(e,t,r)),y.createElement(GT,{width:n,height:n,viewBox:s,style:l,"aria-label":`${p} legend icon`},y.createElement(yle,{data:t,iconType:o,inactiveColor:a})),y.createElement(`span`,{className:`recharts-legend-item-text`,style:{color:f}},p))})}var xle=e=>{var t=gD(e,vle),{payload:n,layout:r,align:i}=t;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:r===`horizontal`?i:`left`};return y.createElement(`ul`,{className:`recharts-default-legend`,style:a},y.createElement(ble,_D({},t,{payload:n})))},Sle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){let n=new Map;for(let r=0;r{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}e.ary=t})),bD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e}e.identity=t})),wle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Number.isSafeInteger(e)&&e>=0}e.isLength=t})),xD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=wle();function n(e){return e!=null&&typeof e!=`function`&&t.isLength(e.length)}e.isArrayLike=n})),Tle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`object`&&!!e}e.isObjectLike=t})),Ele=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=xD(),n=Tle();function r(e){return n.isObjectLike(e)&&t.isArrayLike(e)}e.isArrayLikeObject=r})),Dle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=UE();function n(e){return function(n){return t.get(n,e)}}e.property=n})),SD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}e.isObject=t})),Ole=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e==null||typeof e!=`object`&&typeof e!=`function`}e.isPrimitive=t})),CD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}e.isEqualsSameValueZero=t})),kle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=SD(),n=Ole(),r=CD();function i(e,t,n){return typeof n==`function`?a(e,t,function e(t,r,i,o,s,c){let l=n(t,r,i,o,s,c);return l===void 0?a(t,r,e,c):!!l},new Map):i(e,t,()=>void 0)}function a(e,n,i,s){if(n===e)return!0;switch(typeof n){case`object`:return o(e,n,i,s);case`function`:return Object.keys(n).length>0?a(e,{...n},i,s):r.isEqualsSameValueZero(e,n);default:return t.isObject(e)?typeof n==`string`?n===``:!0:r.isEqualsSameValueZero(e,n)}}function o(e,t,r,i){if(t==null)return!0;if(Array.isArray(t))return c(e,t,r,i);if(t instanceof Map)return s(e,t,r,i);if(t instanceof Set)return l(e,t,r,i);let a=Object.keys(t);if(e==null||n.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(i?.has(t))return i.get(t)===e;i?.set(t,e);try{for(let o=0;o{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=kle();function n(e,n){return t.isMatchWith(e,n,()=>void 0)}e.isMatch=n})),Ale=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}e.getSymbols=t})),TD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}e.getTag=t})),ED=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),e.argumentsTag=`[object Arguments]`,e.arrayBufferTag=`[object ArrayBuffer]`,e.arrayTag=`[object Array]`,e.bigInt64ArrayTag=`[object BigInt64Array]`,e.bigUint64ArrayTag=`[object BigUint64Array]`,e.booleanTag=`[object Boolean]`,e.dataViewTag=`[object DataView]`,e.dateTag=`[object Date]`,e.errorTag=`[object Error]`,e.float32ArrayTag=`[object Float32Array]`,e.float64ArrayTag=`[object Float64Array]`,e.functionTag=`[object Function]`,e.int16ArrayTag=`[object Int16Array]`,e.int32ArrayTag=`[object Int32Array]`,e.int8ArrayTag=`[object Int8Array]`,e.mapTag=`[object Map]`,e.numberTag=`[object Number]`,e.objectTag=`[object Object]`,e.regexpTag=`[object RegExp]`,e.setTag=`[object Set]`,e.stringTag=`[object String]`,e.symbolTag=`[object Symbol]`,e.uint16ArrayTag=`[object Uint16Array]`,e.uint32ArrayTag=`[object Uint32Array]`,e.uint8ArrayTag=`[object Uint8Array]`,e.uint8ClampedArrayTag=`[object Uint8ClampedArray]`})),jle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}e.isTypedArray=t})),DD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Ale(),n=TD(),r=ED(),i=Ole(),a=jle();function o(e,t){return s(e,void 0,e,new Map,t)}function s(e,t,n,r=new Map,o=void 0){let u=o?.(e,t,n,r);if(u!==void 0)return u;if(i.isPrimitive(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let i=0;i{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=DD();function n(e){return t.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}e.cloneDeep=n})),Nle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=wD(),n=Mle();function r(e){return e=n.cloneDeep(e),n=>t.isMatch(n,e)}e.matches=r})),Ple=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=DD(),n=TD(),r=ED();function i(e,i){return t.cloneDeepWith(e,(a,o,s,c)=>{let l=i?.(a,o,s,c);if(l!==void 0)return l;if(typeof e==`object`){if(n.getTag(e)===r.objectTag&&typeof e.constructor!=`function`){let n={};return c.set(e,n),t.copyProperties(n,e,s,c),n}switch(Object.prototype.toString.call(e)){case r.numberTag:case r.stringTag:case r.booleanTag:{let n=new e.constructor(e?.valueOf());return t.copyProperties(n,e),n}case r.argumentsTag:{let n={};return t.copyProperties(n,e),n.length=e.length,n[Symbol.iterator]=e[Symbol.iterator],n}default:return}}})}e.cloneDeepWith=i})),Fle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Ple();function n(e){return t.cloneDeepWith(e)}e.cloneDeep=n})),OD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=/^(?:0|[1-9]\d*)$/;function n(e,n=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=TD();function n(e){return typeof e==`object`&&!!e&&t.getTag(e)===`[object Arguments]`}e.isArguments=n})),Lle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=BE(),n=OD(),r=Ile(),i=HE();function a(e,a){let o;if(o=Array.isArray(a)?a:typeof a==`string`&&t.isDeepKey(a)&&e?.[a]==null?i.toPath(a):[a],o.length===0)return!1;let s=e;for(let e=0;e{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=wD(),n=VE(),r=Fle(),i=UE(),a=Lle();function o(e,o){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=n.toKey(e);break}return o=r.cloneDeep(o),function(n){let r=i.get(n,e);return r===void 0?a.has(n,e):o===void 0?r===void 0:t.isMatch(r,o)}}e.matchesProperty=o})),zle=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=bD(),n=Dle(),r=Nle(),i=Rle();function a(e){if(e==null)return t.identity;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?i.matchesProperty(e[0],e[1]):r.matches(e);case`string`:case`symbol`:case`number`:return n.property(e)}}e.iteratee=a})),Ble=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Sle(),n=Cle(),r=bD(),i=Ele(),a=zle();function o(e,o=r.identity){return i.isArrayLikeObject(e)?t.uniqBy(Array.from(e),n.ary(a.iteratee(o),1)):[]}e.uniqBy=o})),kD=l(o(((e,t)=>{t.exports=Ble().uniqBy}))());function AD(e,t,n){return t===!0?(0,kD.default)(e,n):typeof t==`function`?(0,kD.default)(e,t):e}var Vle=o((e=>{var t=f(),n=Ze();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),Hle=o(((e,t)=>{t.exports=Vle()})),jD=(0,y.createContext)(null),MD=Hle(),Ule=e=>e,ND=()=>{var e=(0,y.useContext)(jD);return e?e.store.dispatch:Ule},PD=()=>{},Wle=()=>PD,Gle=(e,t)=>e===t;function FD(e){var t=(0,y.useContext)(jD),n=(0,y.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:PD,[t,e]);return(0,MD.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:Wle,t?t.store.getState:PD,t?t.store.getState:PD,n,Gle)}function Kle(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function qle(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!=`object`)throw TypeError(t)}function Jle(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var ID=e=>Array.isArray(e)?e:[e];function Yle(e){let t=Array.isArray(e[0])?e[0]:e;return Jle(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function Xle(e,t){let n=[],{length:r}=e;for(let i=0;i{n=RD(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function eue(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),Kle(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=zD,argsMemoizeOptions:u=[],devModeChecks:d={}}={...n,...a},f=ID(c),p=ID(u),m=Yle(e),h=s(function(){return t++,o.apply(null,arguments)},...f),g=l(function(){r++;let e=Xle(m,arguments);return i=h.apply(null,e),i},...p);return Object.assign(g,{resultFunc:o,memoizedResultFunc:h,dependencies:m,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var BD=eue(zD),tue=Object.assign((e,t=BD)=>{qle(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);let n=Object.keys(e);return t(n.map(t=>e[t]),(...e)=>e.reduce((e,t,r)=>(e[n[r]]=t,e),{}))},{withTypes:()=>tue}),nue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}e.compareValues=(e,n,r)=>{if(e!==n){let i=t(e),a=t(n);if(i===a&&i===0){if(en)return r===`desc`?-1:1}return r===`desc`?a-i:i-a}return 0}})),VD=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return typeof e==`symbol`||e instanceof Symbol}e.isSymbol=t})),rue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=VD(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(e,i){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||t.isSymbol(e)?!0:typeof e==`string`&&(r.test(e)||!n.test(e))||i!=null&&Object.hasOwn(i,e)}e.isKey=i})),iue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=nue(),n=rue(),r=HE();function i(e,i,a,o){if(e==null)return[];a=o?void 0:a,Array.isArray(e)||(e=Object.values(e)),Array.isArray(i)||(i=i==null?[null]:[i]),i.length===0&&(i=[null]),Array.isArray(a)||(a=a==null?[]:[a]),a=a.map(e=>String(e));let s=(e,t)=>{let n=e;for(let e=0;et==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:s(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?s(t,e):typeof t==`object`?t[e]:t,l=i.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||n.isKey(e)?e:{key:e,path:r.toPath(e)}));return e.map(e=>({original:e,criteria:l.map(t=>c(t,e))})).slice().sort((e,n)=>{for(let r=0;re.original)}e.orderBy=i})),aue=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=OD(),n=xD(),r=SD(),i=CD();function a(e,a,o){return r.isObject(o)&&(typeof a==`number`&&n.isArrayLike(o)&&t.isIndex(a)&&a{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=iue(),n=aue(),r=HD();function i(e,...i){let a=i.length;return a>1&&r.isIterateeCall(e,i[0],i[1])?i=[]:a>2&&r.isIterateeCall(i[0],i[1],i[2])&&(i=[i[0]]),t.orderBy(e,n.flatten(i),[`asc`])}e.sortBy=i})),UD=l(o(((e,t)=>{t.exports=oue().sortBy}))()),WD=e=>e.legend.settings,sue=e=>e.legend.size,cue=BD([e=>e.legend.payload,WD],(e,t)=>{var{itemSorter:n}=t,r=e.flat(1);return n?(0,UD.default)(r,n):r});function lue(){return FD(cue)}var GD=1;function KD(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[t,n]=(0,y.useState)({height:0,left:0,top:0,width:0});return[t,(0,y.useCallback)(e=>{if(e!=null){var r=e.getBoundingClientRect(),i={height:r.height,left:r.left,top:r.top,width:r.width};(Math.abs(i.height-t.height)>GD||Math.abs(i.left-t.left)>GD||Math.abs(i.top-t.top)>GD||Math.abs(i.width-t.width)>GD)&&n({height:i.height,left:i.left,top:i.top,width:i.width})}},[t.width,t.height,t.top,t.left,...e])]}function qD(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var JD=typeof Symbol==`function`&&Symbol.observable||`@@observable`,YD=()=>Math.random().toString(36).substring(7).split(``).join(`.`),XD={INIT:`@@redux/INIT${YD()}`,REPLACE:`@@redux/REPLACE${YD()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${YD()}`};function ZD(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function QD(e,t,n){if(typeof e!=`function`)throw Error(qD(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(qD(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(qD(1));return n(QD)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(qD(3));return i}function d(e){if(typeof e!=`function`)throw Error(qD(4));if(c)throw Error(qD(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(qD(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!ZD(e))throw Error(qD(7));if(e.type===void 0)throw Error(qD(8));if(typeof e.type!=`string`)throw Error(qD(17));if(c)throw Error(qD(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(qD(10));r=e,f({type:XD.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(qD(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[JD](){return this}}}return f({type:XD.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[JD]:m}}function uue(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:XD.INIT})===void 0)throw Error(qD(12));if(n(void 0,{type:XD.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(qD(13))})}function $D(e){let t=Object.keys(e),n={};for(let r=0;re:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function due(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(qD(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=eO(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function tO(e){return ZD(e)&&`type`in e&&typeof e.type==`string`}var nO=Symbol.for(`immer-nothing`),rO=Symbol.for(`immer-draftable`),iO=Symbol.for(`immer-state`);function aO(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var oO=Object,sO=oO.getPrototypeOf,cO=`constructor`,lO=`prototype`,uO=`configurable`,dO=`enumerable`,fO=`writable`,pO=`value`,mO=e=>!!e&&!!e[iO];function hO(e){return e?_O(e)||CO(e)||!!e[rO]||!!e[cO]?.[rO]||wO(e)||TO(e):!1}var fue=oO[lO][cO].toString(),gO=new WeakMap;function _O(e){if(!e||!EO(e))return!1;let t=sO(e);if(t===null||t===oO[lO])return!0;let n=oO.hasOwnProperty.call(t,cO)&&t[cO];if(n===Object)return!0;if(!DO(n))return!1;let r=gO.get(n);return r===void 0&&(r=Function.toString.call(n),gO.set(n,r)),r===fue}function vO(e,t,n=!0){yO(e)===0?(n?Reflect.ownKeys(e):oO.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function yO(e){let t=e[iO];return t?t.type_:CO(e)?1:wO(e)?2:TO(e)?3:0}var bO=(e,t,n=yO(e))=>n===2?e.has(t):oO[lO].hasOwnProperty.call(e,t),xO=(e,t,n=yO(e))=>n===2?e.get(t):e[t],SO=(e,t,n,r=yO(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function pue(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var CO=Array.isArray,wO=e=>e instanceof Map,TO=e=>e instanceof Set,EO=e=>typeof e==`object`,DO=e=>typeof e==`function`,OO=e=>typeof e==`boolean`;function mue(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var kO=e=>e.copy_||e.base_,AO=e=>e.modified_?e.copy_:e.base_;function jO(e,t){if(wO(e))return new Map(e);if(TO(e))return new Set(e);if(CO(e))return Array[lO].slice.call(e);let n=_O(e);if(t===!0||t===`class_only`&&!n){let t=oO.getOwnPropertyDescriptors(e);delete t[iO];let n=Reflect.ownKeys(t);for(let r=0;r1&&oO.defineProperties(e,{set:NO,add:NO,clear:NO,delete:NO}),oO.freeze(e),t&&vO(e,(e,t)=>{MO(t,!0)},!1),e)}function hue(){aO(2)}var NO={[pO]:hue};function PO(e){return e===null||!EO(e)?!0:oO.isFrozen(e)}var FO=`MapSet`,IO=`Patches`,LO=`ArrayMethods`,RO={};function zO(e){let t=RO[e];return t||aO(0,e),t}var BO=e=>!!RO[e],VO,HO=()=>VO,gue=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:BO(FO)?zO(FO):void 0,arrayMethodsPlugin_:BO(LO)?zO(LO):void 0});function UO(e,t){t&&(e.patchPlugin_=zO(IO),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function WO(e){GO(e),e.drafts_.forEach(_ue),e.drafts_=null}function GO(e){e===VO&&(VO=e.parent_)}var KO=e=>VO=gue(VO,e);function _ue(e){let t=e[iO];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function qO(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[iO].modified_&&(WO(t),aO(4)),hO(e)&&(e=vue(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[iO].base_,e,t)}else e=vue(t,n);return yue(t,e,!0),WO(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===nO?void 0:e}function vue(e,t){if(PO(t))return t;let n=t[iO];if(!n)return YO(t,e.handledSet_,e);if(!JO(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);wue(n,e)}return n.copy_}function yue(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&MO(t,n)}function bue(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var JO=(e,t)=>e.scope_===t,xue=[];function Sue(e,t,n,r){let i=kO(e),a=e.type_;if(r!==void 0&&xO(i,r,a)===t){SO(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;vO(i,(e,n)=>{if(mO(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??xue;for(let e of o)SO(i,e,n,a)}function Cue(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!JO(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=AO(i);Sue(e,i.draft_??i,a,n),wue(i,r)})}function wue(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}bue(e)}}function Tue(e,t,n){let{scope_:r}=e;if(mO(n)){let i=n[iO];JO(i,r)&&i.callbacks_.push(function(){ek(e),Sue(e,n,AO(i),t)})}else hO(n)&&e.callbacks_.push(function(){let i=kO(e);e.type_===3?i.has(n)&&YO(n,r.handledSet_,r):xO(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&YO(xO(e.copy_,t,e.type_),r.handledSet_,r)})}function YO(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||mO(e)||t.has(e)||!hO(e)||PO(e)?e:(t.add(e),vO(e,(r,i)=>{if(mO(i)){let t=i[iO];JO(t,n)&&(SO(e,r,AO(t),e.type_),bue(t))}else hO(i)&&YO(i,t,n)}),e)}function Eue(e,t){let n=CO(e),r={type_:+!!n,scope_:t?t.scope_:HO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=XO;n&&(i=[r],a=ZO);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var XO={get(e,t){if(t===iO)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=kO(e);if(!bO(i,t,e.type_))return Due(e,i,t);let a=i[t];if(e.finalized_||!hO(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&mue(t))return a;if(a===QO(e.base_,t)){ek(e);let n=e.type_===1?+t:t,r=tk(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in kO(e)},ownKeys(e){return Reflect.ownKeys(kO(e))},set(e,t,n){let r=Oue(kO(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=QO(kO(e),t),i=r?.[iO];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(pue(n,r)&&(n!==void 0||bO(e.base_,t,e.type_)))return!0;ek(e),$O(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Tue(e,t,n),!0)},deleteProperty(e,t){return ek(e),QO(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),$O(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=kO(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[fO]:!0,[uO]:e.type_!==1||t!==`length`,[dO]:r[dO],[pO]:n[t]}},defineProperty(){aO(11)},getPrototypeOf(e){return sO(e.base_)},setPrototypeOf(){aO(12)}},ZO={};for(let e in XO){let t=XO[e];ZO[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}ZO.deleteProperty=function(e,t){return ZO.set.call(this,e,t,void 0)},ZO.set=function(e,t,n){return XO.set.call(this,e[0],t,n,e[0])};function QO(e,t){let n=e[iO];return(n?kO(n):e)[t]}function Due(e,t,n){let r=Oue(t,n);return r?pO in r?r[pO]:r.get?.call(e.draft_):void 0}function Oue(e,t){if(!(t in e))return;let n=sO(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=sO(n)}}function $O(e){e.modified_||(e.modified_=!0,e.parent_&&$O(e.parent_))}function ek(e){e.copy_||=(e.assigned_=new Map,jO(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var kue=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(DO(e)&&!DO(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}DO(t)||aO(6),n!==void 0&&!DO(n)&&aO(7);let r;if(hO(e)){let i=KO(this),a=tk(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?WO(i):GO(i)}return UO(i,n),qO(r,i)}else if(!e||!EO(e)){if(r=t(e),r===void 0&&(r=e),r===nO&&(r=void 0),this.autoFreeze_&&MO(r,!0),n){let t=[],i=[];zO(IO).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else aO(1,e)},this.produceWithPatches=(e,t)=>{if(DO(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},OO(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),OO(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),OO(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){hO(e)||aO(8),mO(e)&&(e=nk(e));let t=KO(this),n=tk(t,e,void 0);return n[iO].isManual_=!0,GO(t),n}finishDraft(e,t){let n=e&&e[iO];(!n||!n.isManual_)&&aO(9);let{scope_:r}=n;return UO(r,t),qO(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=zO(IO).applyPatches_;return mO(e)?r(e,t):this.produce(e,e=>r(e,t))}};function tk(e,t,n,r){let[i,a]=wO(t)?zO(FO).proxyMap_(t,n):TO(t)?zO(FO).proxySet_(t,n):Eue(t,n);return(n?.scope_??HO()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Cue(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function nk(e){return mO(e)||aO(10,e),Aue(e)}function Aue(e){if(!hO(e)||PO(e))return e;let t=e[iO],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=jO(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=jO(e,!0);return vO(n,(e,t)=>{SO(n,e,Aue(t))},r),t&&(t.finalized_=!1),n}var jue=new kue().produce;function Mue(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var Nue=Mue(),Pue=Mue,Fue=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?eO:eO.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function rk(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(yk(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>tO(t)&&t.type===e,n}var Iue=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function Lue(e){return hO(e)?jue(e,()=>{}):e}function ik(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function Rue(e){return typeof e==`boolean`}var zue=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new Iue;return t&&(Rue(t)?a.push(Nue):a.push(Pue(t.extraArgument))),a},Bue=`RTK_autoBatch`,ak=()=>e=>({payload:e,meta:{[Bue]:!0}}),Vue=e=>t=>{setTimeout(t,e)},Hue=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?window.requestAnimationFrame:Vue(10):e.type===`callback`?e.queueNotification:Vue(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[Bue],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},Uue=e=>function(t){let{autoBatch:n=!0}=t??{},r=new Iue(e);return n&&r.push(Hue(typeof n==`object`?n:void 0)),r};function Wue(e){let t=zue(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(ZD(n))c=$D(n);else throw Error(yk(1));let l;l=typeof r==`function`?r(t):t();let u=eO;i&&(u=Fue({trace:!1,...typeof i==`object`&&i}));let d=Uue(due(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return QD(c,o,p)}function Gue(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(yk(28));if(r in t)throw Error(yk(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function Kue(e){return typeof e==`function`}function que(e,t){let[n,r,i]=Gue(t),a;if(Kue(e))a=()=>Lue(e());else{let t=Lue(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n)if(mO(e)){let r=n(e,t);return r===void 0?e:r}else if(hO(e))return jue(e,e=>n(e,t));else{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(`A case reducer on a non-draftable value must not return undefined`)}return r}return e},e)}return o.getInitialState=a,o}var Jue=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,Yue=(e=21)=>{let t=``,n=e;for(;n--;)t+=Jue[Math.random()*64|0];return t},Xue=Symbol.for(`rtk-slice-createasyncthunk`);function Zue(e,t){return`${e}/${t}`}function Que({creators:e}={}){let t=e?.asyncThunk?.[Xue];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(yk(11));let i=(typeof e.reducers==`function`?e.reducers(ede()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(yk(12));if(n in o.sliceCaseReducersByType)throw Error(yk(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:Zue(n,r),createNotation:typeof e.reducers==`function`};nde(a)?ide(o,a,s,t):tde(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?Gue(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return que(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=ik(d,r,m)),i}function i(t=l){return ik(ik(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=$ue(a,t,()=>ik(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function $ue(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var ok=Que();function ede(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function tde({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!rde(r))throw Error(yk(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?rk(e,o):rk(e))}function nde(e){return e._reducerDefinitionType===`asyncThunk`}function rde(e){return e._reducerDefinitionType===`reducerWithPrepare`}function ide({type:e,reducerName:t},n,r,i){if(!i)throw Error(yk(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||sk,pending:s||sk,rejected:c||sk,settled:l||sk})}function sk(){}var ade=`task`,ode=`listener`,sde=`completed`,ck=`cancelled`,cde=`task-${ck}`,lde=`task-${sde}`,lk=`${ode}-${ck}`,ude=`${ode}-${sde}`,uk=class{constructor(e){this.code=e,this.message=`${ade} ${ck} (reason: ${e})`}name=`TaskAbortError`;message},dk=(e,t)=>{if(typeof e!=`function`)throw TypeError(yk(32))},fk=()=>{},dde=(e,t=fk)=>(e.catch(t),e),fde=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),pk=e=>{if(e.aborted)throw new uk(e.reason)};function pde(e,t){let n=fk;return new Promise((r,i)=>{let a=()=>i(new uk(e.reason));if(e.aborted){a();return}n=fde(e,a),t.finally(()=>n()).then(r,i)}).finally(()=>{n=fk})}var mde=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof uk?`cancelled`:`rejected`,error:e}}finally{t?.()}},mk=e=>t=>dde(pde(e,t).then(t=>(pk(e),t))),hde=e=>{let t=mk(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:hk}=Object,gde={},gk=`listenerMiddleware`,_de=(e,t)=>{let n=t=>fde(e,()=>t.abort(e.reason));return(r,i)=>{dk(r,`taskExecutor`);let a=new AbortController;n(a);let o=mde(async()=>{pk(e),pk(a.signal);let t=await r({pause:mk(a.signal),delay:hde(a.signal),signal:a.signal});return pk(a.signal),t},()=>a.abort(lde));return i?.autoJoin&&t.push(o.catch(fk)),{result:mk(e)(o),cancel(){a.abort(cde)}}}},vde=(e,t)=>{let n=async(n,r)=>{pk(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await pde(t,Promise.race(a));return pk(t),e}finally{i()}};return(e,t)=>dde(n(e,t))},yde=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=rk(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(yk(21));return dk(a,`options.listener`),{predicate:i,type:t,effect:a}},bde=hk(e=>{let{type:t,predicate:n,effect:r}=yde(e);return{id:Yue(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(yk(22))}}},{withTypes:()=>bde}),xde=(e,t)=>{let{type:n,effect:r,predicate:i}=yde(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},_k=e=>{e.pending.forEach(e=>{e.abort(lk)})},Sde=(e,t)=>()=>{for(let e of t.keys())_k(e);e.clear()},Cde=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},wde=hk(rk(`${gk}/add`),{withTypes:()=>wde}),Tde=rk(`${gk}/removeAll`),Ede=hk(rk(`${gk}/remove`),{withTypes:()=>Ede}),Dde=(...e)=>{console.error(`${gk}/error`,...e)},vk=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=Dde}=e;dk(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&_k(e)}),c=e=>s(xde(t,e)??bde(e));hk(c,{withTypes:()=>c});let l=e=>{let n=xde(t,e);return n&&(n.unsubscribe(),e.cancelActive&&_k(n)),!!n};hk(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=vde(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,hk({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:hde(u.signal),pause:mk(u.signal),extra:a,signal:u.signal,fork:_de(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(lk),n.delete(e))})},cancel:()=>{u.abort(lk),e.pending.delete(u)},throwIfCancelled:()=>{pk(u.signal)}})))}catch(e){e instanceof uk||Cde(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(ude),i(e),e.pending.delete(u)}},d=Sde(t,n);return{middleware:e=>n=>r=>{if(!tO(r))return n(r);if(wde.match(r))return c(r.payload);if(Tde.match(r)){d();return}if(Ede.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===gde)throw Error(yk(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,Cde(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=gde}return s},startListening:c,stopListening:l,clearListeners:d}};function yk(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Ode=ok({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),{setMargin:kde,setLayout:Ade,setChartSize:jde,setScale:Mde}=Ode.actions,Nde=Ode.reducer;function Pde(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function bk(e){return Number.isFinite(e)}function xk(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function Fde(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sk(e){for(var t=1;t{if(t&&n){var{width:r,height:i}=n,{align:a,verticalAlign:o,layout:s}=t;if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&XE(e[a]))return Sk(Sk({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&XE(e[o]))return Sk(Sk({},e),{},{[o]:e[o]+(i||0)})}return e},wk=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,Tk=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var i,a,o=e.map(e=>(e.coordinate===t&&(i=!0),e.coordinate===n&&(a=!0),e.coordinate));return i||o.push(t),a||o.push(n),o},Ek=(e,t,n)=>{if(!e)return null;var{duplicateDomain:r,type:i,range:a,scale:o,realScaleType:s,isCategorical:c,categoricalDomain:l,tickCount:u,ticks:d,niceTicks:f,axisType:p}=e;if(!o)return null;var m=s===`scaleBand`&&o.bandwidth?o.bandwidth()/2:2,h=(t||n)&&i===`category`&&o.bandwidth?o.bandwidth()/m:0;return h=p===`angleAxis`&&a&&a.length>=2?qE(a[0]-a[1])*2*h:h,t&&(d||f)?(d||f||[]).map((e,t)=>{var n=r?r.indexOf(e):e,i=o.map(n);return bk(i)?{coordinate:i+h,value:e,offset:h,index:t}:null}).filter(aD):c&&l?l.map((e,t)=>{var n=o.map(e);return bk(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(aD):o.ticks&&!n&&u!=null?o.ticks(u).map((e,t)=>{var n=o.map(e);return bk(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(aD):o.domain().map((e,t)=>{var n=o.map(e);return bk(n)?{coordinate:n+h,value:r?r[e]:e,index:t,offset:h}:null}).filter(aD)},Bde=(e,t)=>{if(!t||t.length!==2||!XE(t[0])||!XE(t[1]))return e;var n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]),i=[e[0],e[1]];return(!XE(e[0])||e[0]r)&&(i[1]=r),i[0]>r&&(i[0]=r),i[1]{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:Gce,none:RE,silhouette:Kce,wiggle:qce,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},Hde=(e,t,n)=>{var r=Vde[n]??RE,i=Wce().keys(t).value((e,t)=>Number(Ck(e,t,0))).order(zE).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=Ck(e[i],t[r],0);Array.isArray(a)&&a.length===2&&XE(a[0])&&XE(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function Dk(e){return e==null?void 0:String(e)}function Ok(e){var{axis:t,ticks:n,bandSize:r,entry:i,index:a,dataKey:o}=e;if(t.type===`category`){if(!t.allowDuplicatedCategory&&t.dataKey&&!rD(i[t.dataKey])){var s=nD(n,`value`,i[t.dataKey]);if(s)return s.coordinate+r/2}return n!=null&&n[a]?n[a].coordinate+r/2:null}var c=Ck(i,rD(o)?t.dataKey:o),l=t.scale.map(c);return XE(l)?l:null}var kk=e=>{var{axis:t,ticks:n,offset:r,bandSize:i,entry:a,index:o}=e;if(t.type===`category`)return n[o]?n[o].coordinate+r:null;var s=Ck(a,t.dataKey,t.scale.domain()[o]);if(rD(s))return null;var c=t.scale.map(s);return XE(c)?c-i/2+r:null},Ude=e=>{var{numericAxis:t}=e,n=t.scale.domain();if(t.type===`number`){var r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]);return r<=0&&i>=0?0:i<0?i:r}return n[0]},Wde=e=>{var t=e.flat(2).filter(XE);return[Math.min(...t),Math.max(...t)]},Gde=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],Kde=(e,t,n)=>{if(e!=null)return Gde(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var{stackedData:o}=a,s=o.reduce((e,r)=>{var i=Wde(Pde(r,t,n));return!bk(i[0])||!bk(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(s[0],r[0]),Math.max(s[1],r[1])]},[1/0,-1/0]))},Ak=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,jk=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Mk=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=(0,UD.default)(t,e=>e.coordinate),a=1/0,o=1,s=i.length;o{if(t===`horizontal`)return e.chartX;if(t===`vertical`)return e.chartY},Jde=(e,t)=>t===`centric`?e.angle:e.radius,Fk=e=>e.layout.width,Ik=e=>e.layout.height,Yde=e=>e.layout.scale,Lk=e=>e.layout.margin,Rk=BD(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),zk=BD(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),Bk=`data-recharts-item-index`,Xde=`data-recharts-item-id`;function Vk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hk(e){for(var t=1;te.brush.height;function tfe(e){return zk(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function nfe(e){return zk(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function rfe(e){return Rk(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+t.height:e,0)}function ife(e){return Rk(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+t.height:e,0)}var Uk=BD([Fk,Ik,Lk,efe,tfe,nfe,rfe,ife,WD,sue],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=Hk(Hk({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=zde(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return Hk(Hk({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),afe=BD(Uk,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Wk=BD(Fk,Ik,(e,t)=>({x:0,y:0,width:e,height:t})),ofe=(0,y.createContext)(null),Gk=()=>(0,y.useContext)(ofe)!=null,Kk=e=>e.brush,qk=BD([Kk,Uk,Lk],(e,t,n)=>({height:e.height,x:XE(e.x)?e.x:t.left,y:XE(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:XE(e.width)?e.width:t.width})),sfe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}e.debounce=t})),cfe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=sfe();function n(e,n=0,r={}){typeof r!=`object`&&(r={});let{leading:i=!1,trailing:a=!0,maxWait:o}=r,s=[,,];i&&(s[0]=`leading`),a&&(s[1]=`trailing`);let c,l=null,u=t.debounce(function(...t){c=e.apply(this,t),l=null},n,{edges:s}),d=function(...t){return o!=null&&(l===null&&(l=Date.now()),Date.now()-l>=o)?(c=e.apply(this,t),l=Date.now(),u.cancel(),u.schedule(),c):(u.apply(this,t),c)};return d.cancel=u.cancel,d.flush=()=>(u.flush(),c),d}e.debounce=n})),lfe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=cfe();function n(e,n=0,r={}){let{leading:i=!0,trailing:a=!0}=r;return t.debounce(e,n,{leading:i,maxWait:n,trailing:a})}e.throttle=n})),ufe=o(((e,t)=>{t.exports=lfe().throttle})),dfe=!0,Jk=function(e,t){var n=[...arguments].slice(2);if(dfe&&typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e))if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}},Yk={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},Xk=(e,t,n)=>{var{width:r=Yk.width,height:i=Yk.height,aspect:a,maxHeight:o}=n,s=YE(r)?e:Number(r),c=YE(i)?t:Number(i);return a&&a>0&&(s?c=s/a:c&&(s=c*a),o&&c!=null&&c>o&&(c=o)),{calculatedWidth:s,calculatedHeight:c}},ffe={width:0,height:0,overflow:`visible`},pfe={width:0,overflowX:`visible`},mfe={height:0,overflowY:`visible`},hfe={},gfe=e=>{var{width:t,height:n}=e,r=YE(t),i=YE(n);return r&&i?ffe:r?pfe:i?mfe:hfe};function _fe(e){var{width:t,height:n,aspect:r}=e,i=t,a=n;return i===void 0&&a===void 0?(i=Yk.width,a=Yk.height):i===void 0?i=r&&r>0?void 0:Yk.width:a===void 0&&(a=r&&r>0?void 0:Yk.height),{width:i,height:a}}var vfe=l(ufe());function Zk(){return Zk=Object.assign?Object.assign.bind():function(e){for(var t=1;t({width:n,height:r}),[n,r]);return Sfe(i)?y.createElement(eA.Provider,{value:i},t):null}var nA=()=>(0,y.useContext)(eA),Cfe=(0,y.forwardRef)((e,t)=>{var{aspect:n,initialDimension:r=Yk.initialDimension,width:i,height:a,minWidth:o=Yk.minWidth,minHeight:s,maxHeight:c,children:l,debounce:u=Yk.debounce,id:d,className:f,onResize:p,style:m={}}=e,h=(0,y.useRef)(null),g=(0,y.useRef)();g.current=p,(0,y.useImperativeHandle)(t,()=>h.current);var[_,v]=(0,y.useState)({containerWidth:r.width,containerHeight:r.height}),b=(0,y.useCallback)((e,t)=>{v(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,y.useEffect)(()=>{if(h.current==null||typeof ResizeObserver>`u`)return oD;var e=e=>{var t,n=e[0];if(n!=null){var{width:r,height:i}=n.contentRect;b(r,i),(t=g.current)==null||t.call(g,r,i)}};u>0&&(e=(0,vfe.default)(e,u,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),{width:n,height:r}=h.current.getBoundingClientRect();return b(n,r),t.observe(h.current),()=>{t.disconnect()}},[b,u]);var{containerWidth:x,containerHeight:S}=_;Jk(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var{calculatedWidth:C,calculatedHeight:w}=Xk(x,S,{width:i,height:a,aspect:n,maxHeight:c});return Jk(C!=null&&C>0||w!=null&&w>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,C,w,i,a,o,s,n),y.createElement(`div`,{id:d?`${d}`:void 0,className:LT(`recharts-responsive-container`,f),style:eA(eA({},m),{},{width:i,height:a,minWidth:o,minHeight:s,maxHeight:c}),ref:h},y.createElement(`div`,{style:hfe({width:i,height:a})},y.createElement(nA,{width:C,height:w},l)))}),iA=(0,y.forwardRef)((e,t)=>{var n=rA();if(Sk(n.width)&&Sk(n.height))return e.children;var{width:r,height:i}=gfe({width:e.width,height:e.height,aspect:e.aspect}),{calculatedWidth:a,calculatedHeight:o}=Zk(void 0,void 0,{width:r,height:i,aspect:e.aspect,maxHeight:e.maxHeight});return XE(a)&&XE(o)?y.createElement(nA,{width:a,height:o},e.children):y.createElement(Sfe,Qk({},e,{width:r,height:i,ref:t}))});function aA(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var oA=()=>{var e=Kk(),t=ID(ife),n=ID(Jk),r=ID(qk)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},Cfe={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},sA=()=>ID(Wk)??Cfe,cA=()=>ID(Ik),lA=()=>ID(Lk),wfe=()=>ID(e=>e.layout.margin),uA=e=>e.layout.layoutType,dA=()=>ID(uA),fA=()=>{var e=dA();if(e===`horizontal`||e===`vertical`)return e},pA=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},Tfe=()=>dA()!==void 0,mA=e=>{var t=PD(),n=Kk(),{width:r,height:i}=e,a=rA(),o=r,s=i;return a&&(o=a.width>0?a.width:r,s=a.height>0?a.height:i),(0,y.useEffect)(()=>{!n&&Sk(o)&&Sk(s)&&t(Ade({width:o,height:s}))},[t,n,o,s]),null},hA=Symbol.for(`immer-nothing`),gA=Symbol.for(`immer-draftable`),_A=Symbol.for(`immer-state`);function vA(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var yA=Object.getPrototypeOf;function bA(e){return!!e&&!!e[_A]}function xA(e){return e?CA(e)||Array.isArray(e)||!!e[gA]||!!e.constructor?.[gA]||OA(e)||kA(e):!1}var Efe=Object.prototype.constructor.toString(),SA=new WeakMap;function CA(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;if(n===Object)return!0;if(typeof n!=`function`)return!1;let r=SA.get(n);return r===void 0&&(r=Function.toString.call(n),SA.set(n,r)),r===Efe}function wA(e,t,n=!0){TA(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function TA(e){let t=e[_A];return t?t.type_:Array.isArray(e)?1:OA(e)?2:kA(e)?3:0}function EA(e,t){return TA(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function DA(e,t,n){let r=TA(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function Dfe(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function OA(e){return e instanceof Map}function kA(e){return e instanceof Set}function AA(e){return e.copy_||e.base_}function jA(e,t){if(OA(e))return new Map(e);if(kA(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let n=CA(e);if(t===!0||t===`class_only`&&!n){let t=Object.getOwnPropertyDescriptors(e);delete t[_A];let n=Reflect.ownKeys(t);for(let r=0;r1&&Object.defineProperties(e,{set:NA,add:NA,clear:NA,delete:NA}),Object.freeze(e),t&&Object.values(e).forEach(e=>MA(e,!0)),e)}function Ofe(){vA(2)}var NA={value:Ofe};function PA(e){return typeof e!=`object`||!e?!0:Object.isFrozen(e)}var kfe={};function FA(e){let t=kfe[e];return t||vA(0,e),t}var IA;function LA(){return IA}function Afe(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function RA(e,t){t&&(FA(`Patches`),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function zA(e){BA(e),e.drafts_.forEach(jfe),e.drafts_=null}function BA(e){e===IA&&(IA=e.parent_)}function VA(e){return IA=Afe(IA,e)}function jfe(e){let t=e[_A];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function HA(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];return e!==void 0&&e!==n?(n[_A].modified_&&(zA(t),vA(4)),xA(e)&&(e=UA(t,e),t.parent_||GA(t,e)),t.patches_&&FA(`Patches`).generateReplacementPatches_(n[_A].base_,e,t.patches_,t.inversePatches_)):e=UA(t,n,[]),zA(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===hA?void 0:e}function UA(e,t,n){if(PA(t))return t;let r=e.immer_.shouldUseStrictIteration(),i=t[_A];if(!i)return wA(t,(r,a)=>WA(e,i,t,r,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return GA(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;let t=i.copy_,a=t,o=!1;i.type_===3&&(a=new Set(t),t.clear(),o=!0),wA(a,(r,a)=>WA(e,i,t,r,a,n,o),r),GA(e,t,!1),n&&e.patches_&&FA(`Patches`).generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function WA(e,t,n,r,i,a,o){if(i==null||typeof i!=`object`&&!o)return;let s=PA(i);if(!(s&&!o)){if(bA(i)){let o=UA(e,i,a&&t&&t.type_!==3&&!EA(t.assigned_,r)?a.concat(r):void 0);if(DA(n,r,o),bA(o))e.canAutoFreeze_=!1;else return}else o&&n.add(i);if(xA(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;UA(e,i),(!t||!t.scope_.parent_)&&typeof r!=`symbol`&&(OA(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&GA(e,i)}}}function GA(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&MA(t,n)}function Mfe(e,t){let n=Array.isArray(e),r={type_:+!!n,scope_:t?t.scope_:LA(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},i=r,a=KA;n&&(i=[r],a=qA);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}var KA={get(e,t){if(t===_A)return e;let n=AA(e);if(!EA(n,t))return Nfe(e,n,t);let r=n[t];return e.finalized_||!xA(r)?r:r===JA(e.base_,t)?(ZA(e),e.copy_[t]=QA(r,e)):r},has(e,t){return t in AA(e)},ownKeys(e){return Reflect.ownKeys(AA(e))},set(e,t,n){let r=YA(AA(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=JA(AA(e),t),i=r?.[_A];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(Dfe(n,r)&&(n!==void 0||EA(e.base_,t)))return!0;ZA(e),XA(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_[t]=!0,!0)},deleteProperty(e,t){return JA(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,ZA(e),XA(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=AA(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!==`length`,enumerable:r.enumerable,value:n[t]}},defineProperty(){vA(11)},getPrototypeOf(e){return yA(e.base_)},setPrototypeOf(){vA(12)}},qA={};wA(KA,(e,t)=>{qA[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),qA.deleteProperty=function(e,t){return qA.set.call(this,e,t,void 0)},qA.set=function(e,t,n){return KA.set.call(this,e[0],t,n,e[0])};function JA(e,t){let n=e[_A];return(n?AA(n):e)[t]}function Nfe(e,t,n){let r=YA(t,n);return r?`value`in r?r.value:r.get?.call(e.draft_):void 0}function YA(e,t){if(!(t in e))return;let n=yA(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=yA(n)}}function XA(e){e.modified_||(e.modified_=!0,e.parent_&&XA(e.parent_))}function ZA(e){e.copy_||=jA(e.base_,e.scope_.immer_.useStrictShallowCopy_)}var Pfe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,n)=>{if(typeof e==`function`&&typeof t!=`function`){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}typeof t!=`function`&&vA(6),n!==void 0&&typeof n!=`function`&&vA(7);let r;if(xA(e)){let i=VA(this),a=QA(e,void 0),o=!0;try{r=t(a),o=!1}finally{o?zA(i):BA(i)}return RA(i,n),HA(r,i)}else if(!e||typeof e!=`object`){if(r=t(e),r===void 0&&(r=e),r===hA&&(r=void 0),this.autoFreeze_&&MA(r,!0),n){let t=[],i=[];FA(`Patches`).generateReplacementPatches_(e,r,t,i),n(t,i)}return r}else vA(1,e)},this.produceWithPatches=(e,t)=>{if(typeof e==`function`)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},typeof e?.autoFreeze==`boolean`&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy==`boolean`&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration==`boolean`&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){xA(e)||vA(8),bA(e)&&(e=Ffe(e));let t=VA(this),n=QA(e,void 0);return n[_A].isManual_=!0,BA(t),n}finishDraft(e,t){let n=e&&e[_A];(!n||!n.isManual_)&&vA(9);let{scope_:r}=n;return RA(r,t),HA(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=FA(`Patches`).applyPatches_;return bA(e)?r(e,t):this.produce(e,e=>r(e,t))}};function QA(e,t){let n=OA(e)?FA(`MapSet`).proxyMap_(e,t):kA(e)?FA(`MapSet`).proxySet_(e,t):Mfe(e,t);return(t?t.scope_:LA()).drafts_.push(n),n}function Ffe(e){return bA(e)||vA(10,e),$A(e)}function $A(e){if(!xA(e)||PA(e))return e;let t=e[_A],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=jA(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=jA(e,!0);return wA(n,(e,t)=>{DA(n,e,$A(t))},r),t&&(t.finalized_=!1),n}new Pfe().produce;function ej(e){return e}var tj=sk({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`middle`,itemSorter:`value`},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(ej(t.payload))},prepare:ok()},replaceLegendPayload:{reducer(e,t){var{prev:n,next:r}=t.payload,i=rk(e).payload.indexOf(ej(n));i>-1&&(e.payload[i]=ej(r))},prepare:ok()},removeLegendPayload:{reducer(e,t){var n=rk(e).payload.indexOf(ej(t.payload));n>-1&&e.payload.splice(n,1)},prepare:ok()}}}),{setLegendSize:nj,setLegendSettings:Ife,addLegendPayload:rj,replaceLegendPayload:ij,removeLegendPayload:aj}=tj.actions,Lfe=tj.reducer,Rfe=[`contextPayload`];function oj(){return oj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t(Ife(e))},[t,e]),null}function Jfe(e){var t=PD();return(0,y.useEffect)(()=>(t(nj(e)),()=>{t(nj({width:0,height:0}))}),[t,e]),null}function Yfe(e,t,n,r){return e===`vertical`&&t!=null?{height:t}:e===`horizontal`?{width:n||r}:null}var Xfe={align:`center`,iconSize:14,inactiveColor:`#ccc`,itemSorter:`value`,layout:`horizontal`,verticalAlign:`bottom`};function lj(e){var t=gD(e,Xfe),n=cue(),r=mce(),i=wfe(),{width:a,height:o,wrapperStyle:s,portal:c}=t,[l,u]=qD([n]),d=cA(),f=lA();if(d==null||f==null)return null;var p=d-(i?.left||0)-(i?.right||0),m=Yfe(t.layout,o,a,p),h=c?s:cj(cj({position:`absolute`,width:m?.width||a||`auto`,height:m?.height||o||`auto`},Kfe(s,t,i,d,f,l)),s),g=c??r;return g==null||n==null?null:(0,At.createPortal)(y.createElement(`div`,{className:`recharts-legend-wrapper`,style:h,ref:u},y.createElement(qfe,{layout:t.layout,align:t.align,verticalAlign:t.verticalAlign,itemSorter:t.itemSorter}),!c&&y.createElement(Jfe,{width:l.width,height:l.height}),y.createElement(Gfe,oj({},t,m,{margin:i,chartWidth:d,chartHeight:f,contextPayload:n}))),g)}lj.displayName=`Legend`;function uj(){return uj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{separator:t=pj.separator,contentStyle:n,itemStyle:r,labelStyle:i=pj.labelStyle,payload:a,formatter:o,itemSorter:s,wrapperClassName:c,labelClassName:l,label:u,labelFormatter:d,accessibilityLayer:f=pj.accessibilityLayer}=e,p=()=>{if(a&&a.length){var e={padding:0,margin:0},n=(s?(0,WD.default)(a,s):a).map((e,n)=>{if(e.type===`none`)return null;var i=e.formatter||o||epe,{value:s,name:c}=e,l=s,u=c;if(i){var d=i(s,c,e,n,a);if(Array.isArray(d))[l,u]=d;else if(d!=null)l=d;else return null}var f=fj(fj({},pj.itemStyle),{},{color:e.color||pj.itemStyle.color},r);return y.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${n}`,style:f},ZE(u)?y.createElement(`span`,{className:`recharts-tooltip-item-name`},u):null,ZE(u)?y.createElement(`span`,{className:`recharts-tooltip-item-separator`},t):null,y.createElement(`span`,{className:`recharts-tooltip-item-value`},l),y.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return y.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},n)}return null},m=fj(fj({},pj.contentStyle),n),h=fj({margin:0},i),g=!rD(u),_=g?u:``,v=LT(`recharts-default-tooltip`,c),b=LT(`recharts-tooltip-label`,l);g&&d&&a!=null&&(_=d(u,a));var x=f?{role:`status`,"aria-live":`assertive`}:{};return y.createElement(`div`,uj({className:v,style:m},x),y.createElement(`p`,{className:b,style:h},y.isValidElement(_)?_:`${_}`),p())},mj=`recharts-tooltip-wrapper`,npe={visibility:`hidden`};function rpe(e){var{coordinate:t,translateX:n,translateY:r}=e;return LT(mj,{[`${mj}-right`]:XE(n)&&t&&XE(t.x)&&n>=t.x,[`${mj}-left`]:XE(n)&&t&&XE(t.x)&&n=t.y,[`${mj}-top`]:XE(r)&&t&&XE(t.y)&&r0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(uf+l?Math.max(u,f):Math.max(d,f)}function ipe(e){var{translateX:t,translateY:n,useTranslate3d:r}=e;return{transform:r?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function ape(e){var{allowEscapeViewBox:t,coordinate:n,offsetTop:r,offsetLeft:i,position:a,reverseDirection:o,tooltipBox:s,useTranslate3d:c,viewBox:l}=e,u,d,f;return s.height>0&&s.width>0&&n?(d=hj({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=hj({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=ipe({translateX:d,translateY:f,useTranslate3d:c})):u=npe,{cssProperties:u,cssClasses:rpe({translateX:d,translateY:f,coordinate:n})}}function gj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _j(e){for(var t=1;t{e.key===`Escape`&&this.setState({dismissed:!0,dismissedAtCoordinate:{x:this.props.coordinate?.x??0,y:this.props.coordinate?.y??0}})})}componentDidMount(){document.addEventListener(`keydown`,this.handleKeyDown)}componentWillUnmount(){document.removeEventListener(`keydown`,this.handleKeyDown)}componentDidUpdate(){this.state.dismissed&&(this.props.coordinate?.x!==this.state.dismissedAtCoordinate.x||this.props.coordinate?.y!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}render(){var{active:e,allowEscapeViewBox:t,animationDuration:n,animationEasing:r,children:i,coordinate:a,hasPayload:o,isAnimationActive:s,offset:c,position:l,reverseDirection:u,useTranslate3d:d,viewBox:f,wrapperStyle:p,lastBoundingBox:m,innerRef:h,hasPortalFromProps:g}=this.props,{cssClasses:_,cssProperties:v}=ape({allowEscapeViewBox:t,coordinate:a,offsetLeft:typeof c==`number`?c:c.x,offsetTop:typeof c==`number`?c:c.y,position:l,reverseDirection:u,tooltipBox:{height:m.height,width:m.width},useTranslate3d:d,viewBox:f}),b=_j(_j({},g?{}:_j(_j({transition:s&&e?`transform ${n}ms ${r}`:void 0},v),{},{pointerEvents:`none`,visibility:!this.state.dismissed&&e&&o?`visible`:`hidden`,position:`absolute`,top:0,left:0})),{},{visibility:!this.state.dismissed&&e&&o?`visible`:`hidden`},p);return y.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:_,style:b,ref:h},i)}},yj=()=>ID(e=>e.rootProps.accessibilityLayer)??!0;function bj(){return bj=Object.assign?Object.assign.bind():function(e){for(var t=1;txk(e.x)&&xk(e.y),Tj=e=>e.base!=null&&wj(e.base)&&wj(e),Ej=e=>e.x,Dj=e=>e.y,fpe=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${iD(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=Cj[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return Cj[n]||lE},Oj={connectNulls:!1,type:`linear`},ppe=e=>{var{type:t=Oj.type,points:n=[],baseLine:r,layout:i,connectNulls:a=Oj.connectNulls}=e,o=fpe(t,i),s=a?n.filter(wj):n;if(Array.isArray(r)){var c,l=n.map((e,t)=>Sj(Sj({},e),{},{base:r[t]}));return c=i===`vertical`?pE().y(Dj).x1(Ej).x0(e=>e.base.x):pE().x(Ej).y1(Dj).y0(e=>e.base.y),c.defined(Tj).curve(o)(a?l.filter(Tj):l)}return(i===`vertical`&&XE(r)?pE().y(Dj).x1(Ej).x0(r):XE(r)?pE().x(Ej).y1(Dj).y0(r):fE().x(Ej).y(Dj)).defined(wj).curve(o)(s)},kj=e=>{var{className:t,points:n,path:r,pathRef:i}=e,a=dA();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=n&&n.length?ppe(o):r;return y.createElement(`path`,bj({},VT(e),pD(e),{className:LT(`recharts-curve`,t),d:s===null?void 0:s,ref:i}))},mpe=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function Aj(){return Aj=Object.assign?Object.assign.bind():function(e){for(var t=1;t`M${e},${i}v${r}M${a},${t}h${n}`,Spe=e=>{var{x:t=0,y:n=0,top:r=0,left:i=0,width:a=0,height:o=0,className:s}=e,c=ype(e,mpe),l=hpe({x:t,y:n,top:r,left:i,width:a,height:o},c);return!XE(t)||!XE(n)||!XE(a)||!XE(o)||!XE(r)||!XE(i)?null:y.createElement(`path`,Aj({},UT(l),{className:LT(`recharts-cross`,s),d:xpe(t,n,a,o,r,i)}))};function Cpe(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}function Mj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Nj(e){for(var t=1;te.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),Pj=(e,t,n)=>e.map(e=>`${Dpe(e)} ${t}ms ${n}`).join(`,`),Ope=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((e,t)=>e.filter(e=>t.includes(e))),Fj=(e,t)=>Object.keys(t).reduce((n,r)=>Nj(Nj({},n),{},{[r]:e(r,t[r])}),{});function Ij(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lj(e){for(var t=1;te+(t-e)*n,zj=e=>{var{from:t,to:n}=e;return t!==n},Bj=(e,t,n)=>{var r=Fj((t,n)=>{if(zj(n)){var[r,i]=e(n.from,n.to,n.velocity);return Lj(Lj({},n),{},{from:r,velocity:i})}return n},t);return n<1?Fj((e,t)=>zj(t)&&r[e]!=null?Lj(Lj({},t),{},{velocity:Rj(t.velocity,r[e].velocity,n),from:Rj(t.from,r[e].from,n)}):t,t):Bj(e,r,n-1)};function Mpe(e,t,n,r,i,a){var o,s=r.reduce((n,r)=>Lj(Lj({},n),{},{[r]:{from:e[r],velocity:0,to:t[r]}}),{}),c=()=>Fj((e,t)=>t.from,s),l=()=>!Object.values(s).filter(zj).length,u=null,d=r=>{o||=r;var f=(r-o)/n.dt;s=Bj(n,s,f),i(Lj(Lj(Lj({},e),t),c())),o=r,l()||(u=a.setTimeout(d))};return()=>(u=a.setTimeout(d),()=>{var e;(e=u)==null||e()})}function Npe(e,t,n,r,i,a,o){var s=null,c=i.reduce((n,r)=>{var i=e[r],a=t[r];return i==null||a==null?n:Lj(Lj({},n),{},{[r]:[i,a]})},{}),l,u=i=>{l||=i;var d=(i-l)/r,f=Fj((e,t)=>Rj(...t,n(d)),c);if(a(Lj(Lj(Lj({},e),t),f)),d<1)s=o.setTimeout(u);else{var p=Fj((e,t)=>Rj(...t,n(1)),c);a(Lj(Lj(Lj({},e),t),p))}};return()=>(s=o.setTimeout(u),()=>{var e;(e=s)==null||e()})}var Ppe=(e,t,n,r,i,a)=>{var o=Ope(e,t);return n==null?()=>(i(Lj(Lj({},e),t)),()=>{}):n.isStepper===!0?Mpe(e,t,n,o,i,a):Npe(e,t,n,r,o,i,a)},Vj=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],Hj=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),Uj=(e,t)=>n=>Hj(Vj(e,t),n),Fpe=(e,t)=>n=>Hj([...Vj(e,t).map((e,t)=>e*t).slice(1),0],n),Ipe=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},Lpe=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=Ipe(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},Rpe=(e,t,n,r)=>{var i=Uj(e,n),a=Uj(t,r),o=Fpe(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},Wj=function(){return Rpe(...Lpe(...arguments))},zpe=function(){var{stiff:e=100,damping:t=8,dt:n=17}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(r,i,a)=>{var o=a+(-(r-i)*e-a*t)*n/1e3,s=a*n/1e3+r;return Math.abs(s-i)<1e-4&&Math.abs(o)<1e-4?[i,0]:[s,o]};return r.isStepper=!0,r.dt=n,r},Bpe=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return Wj(e);case`spring`:return zpe();default:if(e.split(`(`)[0]===`cubic-bezier`)return Wj(e)}return typeof e==`function`?e:null};function Vpe(e){var t,n=()=>null,r=!1,i=null,a=o=>{if(!r){if(Array.isArray(o)){if(!o.length)return;var[s,...c]=o;if(typeof s==`number`){i=e.setTimeout(a.bind(null,c),s);return}a(s),i=e.setTimeout(a.bind(null,c));return}typeof o==`string`&&(t=o,n(t)),typeof o==`object`&&(t=o,n(t)),typeof o==`function`&&o()}};return{stop:()=>{r=!0},start:e=>{r=!1,i&&=(i(),null),a(e)},subscribe:e=>(n=e,()=>{n=()=>null}),getTimeoutController:()=>e}}var Hpe=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):typeof requestAnimationFrame==`function`&&(r=requestAnimationFrame(i))};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function Upe(){return Vpe(new Hpe)}var Wpe=(0,y.createContext)(Upe);function Gpe(e,t){var n=(0,y.useContext)(Wpe);return(0,y.useMemo)(()=>t??n(e),[e,t,n])}var Gj={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)},Kpe={begin:0,duration:1e3,easing:`ease`,isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},Kj={t:0},qj={t:1};function Jj(e){var t=gD(e,Kpe),{isActive:n,canBegin:r,duration:i,easing:a,begin:o,onAnimationEnd:s,onAnimationStart:c,children:l}=t,u=n===`auto`?!Gj.isSsr:n,d=Gpe(t.animationId,t.animationManager),[f,p]=(0,y.useState)(u?Kj:qj),m=(0,y.useRef)(null);return(0,y.useEffect)(()=>{u||p(qj)},[u]),(0,y.useEffect)(()=>{if(!u||!r)return oD;var e=Ppe(Kj,qj,Bpe(a),i,p,d.getTimeoutController());return d.start([c,o,()=>{m.current=e()},i,s]),()=>{d.stop(),m.current&&m.current(),s()}},[u,r,i,a,o,c,s,d]),l(f.t)}function Yj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,y.useRef)(QE(t)),r=(0,y.useRef)(e);return r.current!==e&&(n.current=QE(t),r.current=e),n.current}var qpe=[`radius`],Jpe=[`radius`],Ype,Xpe,Zpe,Qpe,$pe,eme,tme,nme,rme,ime;function Xj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zj(e){for(var t=1;t{var a=WE(n),o=WE(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;ps?s:h}d=GE(Ype||=eM([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=GE(Xpe||=eM([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=GE(Zpe||=eM([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=GE(Qpe||=eM([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=GE($pe||=eM([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=GE(eme||=eM([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=GE(tme||=eM([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=GE(nme||=eM([`A `,`,`,`,0,0,`,`, - `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=GE(rme||=eM(`M .,. + height and width.`,C,w,i,a,o,s,n),y.createElement(`div`,{id:d?`${d}`:void 0,className:LT(`recharts-responsive-container`,f),style:$k($k({},m),{},{width:i,height:a,minWidth:o,minHeight:s,maxHeight:c}),ref:h},y.createElement(`div`,{style:gfe({width:i,height:a})},y.createElement(tA,{width:C,height:w},l)))}),rA=(0,y.forwardRef)((e,t)=>{var n=nA();if(xk(n.width)&&xk(n.height))return e.children;var{width:r,height:i}=_fe({width:e.width,height:e.height,aspect:e.aspect}),{calculatedWidth:a,calculatedHeight:o}=Xk(void 0,void 0,{width:r,height:i,aspect:e.aspect,maxHeight:e.maxHeight});return XE(a)&&XE(o)?y.createElement(tA,{width:a,height:o},e.children):y.createElement(Cfe,Zk({},e,{width:r,height:i,ref:t}))});function iA(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var aA=()=>{var e=Gk(),t=FD(afe),n=FD(qk),r=FD(Kk)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},wfe={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},oA=()=>FD(Uk)??wfe,sA=()=>FD(Fk),cA=()=>FD(Ik),Tfe=()=>FD(e=>e.layout.margin),lA=e=>e.layout.layoutType,uA=()=>FD(lA),dA=()=>{var e=uA();if(e===`horizontal`||e===`vertical`)return e},fA=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},Efe=()=>uA()!==void 0,pA=e=>{var t=ND(),n=Gk(),{width:r,height:i}=e,a=nA(),o=r,s=i;return a&&(o=a.width>0?a.width:r,s=a.height>0?a.height:i),(0,y.useEffect)(()=>{!n&&xk(o)&&xk(s)&&t(jde({width:o,height:s}))},[t,n,o,s]),null},mA=Symbol.for(`immer-nothing`),hA=Symbol.for(`immer-draftable`),gA=Symbol.for(`immer-state`);function _A(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vA=Object.getPrototypeOf;function yA(e){return!!e&&!!e[gA]}function bA(e){return e?SA(e)||Array.isArray(e)||!!e[hA]||!!e.constructor?.[hA]||DA(e)||OA(e):!1}var Dfe=Object.prototype.constructor.toString(),xA=new WeakMap;function SA(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.hasOwnProperty.call(t,`constructor`)&&t.constructor;if(n===Object)return!0;if(typeof n!=`function`)return!1;let r=xA.get(n);return r===void 0&&(r=Function.toString.call(n),xA.set(n,r)),r===Dfe}function CA(e,t,n=!0){wA(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function wA(e){let t=e[gA];return t?t.type_:Array.isArray(e)?1:DA(e)?2:OA(e)?3:0}function TA(e,t){return wA(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function EA(e,t,n){let r=wA(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function Ofe(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function DA(e){return e instanceof Map}function OA(e){return e instanceof Set}function kA(e){return e.copy_||e.base_}function AA(e,t){if(DA(e))return new Map(e);if(OA(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let n=SA(e);if(t===!0||t===`class_only`&&!n){let t=Object.getOwnPropertyDescriptors(e);delete t[gA];let n=Reflect.ownKeys(t);for(let r=0;r1&&Object.defineProperties(e,{set:MA,add:MA,clear:MA,delete:MA}),Object.freeze(e),t&&Object.values(e).forEach(e=>jA(e,!0)),e)}function kfe(){_A(2)}var MA={value:kfe};function NA(e){return typeof e!=`object`||!e?!0:Object.isFrozen(e)}var Afe={};function PA(e){let t=Afe[e];return t||_A(0,e),t}var FA;function IA(){return FA}function jfe(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function LA(e,t){t&&(PA(`Patches`),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function RA(e){zA(e),e.drafts_.forEach(Mfe),e.drafts_=null}function zA(e){e===FA&&(FA=e.parent_)}function BA(e){return FA=jfe(FA,e)}function Mfe(e){let t=e[gA];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function VA(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];return e!==void 0&&e!==n?(n[gA].modified_&&(RA(t),_A(4)),bA(e)&&(e=HA(t,e),t.parent_||WA(t,e)),t.patches_&&PA(`Patches`).generateReplacementPatches_(n[gA].base_,e,t.patches_,t.inversePatches_)):e=HA(t,n,[]),RA(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===mA?void 0:e}function HA(e,t,n){if(NA(t))return t;let r=e.immer_.shouldUseStrictIteration(),i=t[gA];if(!i)return CA(t,(r,a)=>UA(e,i,t,r,a,n),r),t;if(i.scope_!==e)return t;if(!i.modified_)return WA(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;let t=i.copy_,a=t,o=!1;i.type_===3&&(a=new Set(t),t.clear(),o=!0),CA(a,(r,a)=>UA(e,i,t,r,a,n,o),r),WA(e,t,!1),n&&e.patches_&&PA(`Patches`).generatePatches_(i,n,e.patches_,e.inversePatches_)}return i.copy_}function UA(e,t,n,r,i,a,o){if(i==null||typeof i!=`object`&&!o)return;let s=NA(i);if(!(s&&!o)){if(yA(i)){let o=HA(e,i,a&&t&&t.type_!==3&&!TA(t.assigned_,r)?a.concat(r):void 0);if(EA(n,r,o),yA(o))e.canAutoFreeze_=!1;else return}else o&&n.add(i);if(bA(i)&&!s){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[r]===i&&s)return;HA(e,i),(!t||!t.scope_.parent_)&&typeof r!=`symbol`&&(DA(n)?n.has(r):Object.prototype.propertyIsEnumerable.call(n,r))&&WA(e,i)}}}function WA(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&jA(t,n)}function Nfe(e,t){let n=Array.isArray(e),r={type_:+!!n,scope_:t?t.scope_:IA(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},i=r,a=GA;n&&(i=[r],a=KA);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,s}var GA={get(e,t){if(t===gA)return e;let n=kA(e);if(!TA(n,t))return Pfe(e,n,t);let r=n[t];return e.finalized_||!bA(r)?r:r===qA(e.base_,t)?(XA(e),e.copy_[t]=ZA(r,e)):r},has(e,t){return t in kA(e)},ownKeys(e){return Reflect.ownKeys(kA(e))},set(e,t,n){let r=JA(kA(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=qA(kA(e),t),i=r?.[gA];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(Ofe(n,r)&&(n!==void 0||TA(e.base_,t)))return!0;XA(e),YA(e)}return e.copy_[t]===n&&(n!==void 0||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_[t]=!0,!0)},deleteProperty(e,t){return qA(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,XA(e),YA(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=kA(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.type_!==1||t!==`length`,enumerable:r.enumerable,value:n[t]}},defineProperty(){_A(11)},getPrototypeOf(e){return vA(e.base_)},setPrototypeOf(){_A(12)}},KA={};CA(GA,(e,t)=>{KA[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),KA.deleteProperty=function(e,t){return KA.set.call(this,e,t,void 0)},KA.set=function(e,t,n){return GA.set.call(this,e[0],t,n,e[0])};function qA(e,t){let n=e[gA];return(n?kA(n):e)[t]}function Pfe(e,t,n){let r=JA(t,n);return r?`value`in r?r.value:r.get?.call(e.draft_):void 0}function JA(e,t){if(!(t in e))return;let n=vA(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=vA(n)}}function YA(e){e.modified_||(e.modified_=!0,e.parent_&&YA(e.parent_))}function XA(e){e.copy_||=AA(e.base_,e.scope_.immer_.useStrictShallowCopy_)}var Ffe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,t,n)=>{if(typeof e==`function`&&typeof t!=`function`){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}typeof t!=`function`&&_A(6),n!==void 0&&typeof n!=`function`&&_A(7);let r;if(bA(e)){let i=BA(this),a=ZA(e,void 0),o=!0;try{r=t(a),o=!1}finally{o?RA(i):zA(i)}return LA(i,n),VA(r,i)}else if(!e||typeof e!=`object`){if(r=t(e),r===void 0&&(r=e),r===mA&&(r=void 0),this.autoFreeze_&&jA(r,!0),n){let t=[],i=[];PA(`Patches`).generateReplacementPatches_(e,r,t,i),n(t,i)}return r}else _A(1,e)},this.produceWithPatches=(e,t)=>{if(typeof e==`function`)return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},typeof e?.autoFreeze==`boolean`&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy==`boolean`&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof e?.useStrictIteration==`boolean`&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){bA(e)||_A(8),yA(e)&&(e=Ife(e));let t=BA(this),n=ZA(e,void 0);return n[gA].isManual_=!0,zA(t),n}finishDraft(e,t){let n=e&&e[gA];(!n||!n.isManual_)&&_A(9);let{scope_:r}=n;return LA(r,t),VA(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=PA(`Patches`).applyPatches_;return yA(e)?r(e,t):this.produce(e,e=>r(e,t))}};function ZA(e,t){let n=DA(e)?PA(`MapSet`).proxyMap_(e,t):OA(e)?PA(`MapSet`).proxySet_(e,t):Nfe(e,t);return(t?t.scope_:IA()).drafts_.push(n),n}function Ife(e){return yA(e)||_A(10,e),QA(e)}function QA(e){if(!bA(e)||NA(e))return e;let t=e[gA],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=AA(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=AA(e,!0);return CA(n,(e,t)=>{EA(n,e,QA(t))},r),t&&(t.finalized_=!1),n}new Ffe().produce;function $A(e){return e}var ej=ok({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`middle`,itemSorter:`value`},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push($A(t.payload))},prepare:ak()},replaceLegendPayload:{reducer(e,t){var{prev:n,next:r}=t.payload,i=nk(e).payload.indexOf($A(n));i>-1&&(e.payload[i]=$A(r))},prepare:ak()},removeLegendPayload:{reducer(e,t){var n=nk(e).payload.indexOf($A(t.payload));n>-1&&e.payload.splice(n,1)},prepare:ak()}}}),{setLegendSize:tj,setLegendSettings:Lfe,addLegendPayload:nj,replaceLegendPayload:rj,removeLegendPayload:ij}=ej.actions,Rfe=ej.reducer,zfe=[`contextPayload`];function aj(){return aj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{t(Lfe(e))},[t,e]),null}function Yfe(e){var t=ND();return(0,y.useEffect)(()=>(t(tj(e)),()=>{t(tj({width:0,height:0}))}),[t,e]),null}function Xfe(e,t,n,r){return e===`vertical`&&t!=null?{height:t}:e===`horizontal`?{width:n||r}:null}var Zfe={align:`center`,iconSize:14,inactiveColor:`#ccc`,itemSorter:`value`,layout:`horizontal`,verticalAlign:`bottom`};function cj(e){var t=gD(e,Zfe),n=lue(),r=mce(),i=Tfe(),{width:a,height:o,wrapperStyle:s,portal:c}=t,[l,u]=KD([n]),d=sA(),f=cA();if(d==null||f==null)return null;var p=d-(i?.left||0)-(i?.right||0),m=Xfe(t.layout,o,a,p),h=c?s:sj(sj({position:`absolute`,width:m?.width||a||`auto`,height:m?.height||o||`auto`},qfe(s,t,i,d,f,l)),s),g=c??r;return g==null||n==null?null:(0,At.createPortal)(y.createElement(`div`,{className:`recharts-legend-wrapper`,style:h,ref:u},y.createElement(Jfe,{layout:t.layout,align:t.align,verticalAlign:t.verticalAlign,itemSorter:t.itemSorter}),!c&&y.createElement(Yfe,{width:l.width,height:l.height}),y.createElement(Kfe,aj({},t,m,{margin:i,chartWidth:d,chartHeight:f,contextPayload:n}))),g)}cj.displayName=`Legend`;function lj(){return lj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{separator:t=fj.separator,contentStyle:n,itemStyle:r,labelStyle:i=fj.labelStyle,payload:a,formatter:o,itemSorter:s,wrapperClassName:c,labelClassName:l,label:u,labelFormatter:d,accessibilityLayer:f=fj.accessibilityLayer}=e,p=()=>{if(a&&a.length){var e={padding:0,margin:0},n=(s?(0,UD.default)(a,s):a).map((e,n)=>{if(e.type===`none`)return null;var i=e.formatter||o||tpe,{value:s,name:c}=e,l=s,u=c;if(i){var d=i(s,c,e,n,a);if(Array.isArray(d))[l,u]=d;else if(d!=null)l=d;else return null}var f=dj(dj({},fj.itemStyle),{},{color:e.color||fj.itemStyle.color},r);return y.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${n}`,style:f},ZE(u)?y.createElement(`span`,{className:`recharts-tooltip-item-name`},u):null,ZE(u)?y.createElement(`span`,{className:`recharts-tooltip-item-separator`},t):null,y.createElement(`span`,{className:`recharts-tooltip-item-value`},l),y.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return y.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},n)}return null},m=dj(dj({},fj.contentStyle),n),h=dj({margin:0},i),g=!rD(u),_=g?u:``,v=LT(`recharts-default-tooltip`,c),b=LT(`recharts-tooltip-label`,l);g&&d&&a!=null&&(_=d(u,a));var x=f?{role:`status`,"aria-live":`assertive`}:{};return y.createElement(`div`,lj({className:v,style:m},x),y.createElement(`p`,{className:b,style:h},y.isValidElement(_)?_:`${_}`),p())},pj=`recharts-tooltip-wrapper`,rpe={visibility:`hidden`};function ipe(e){var{coordinate:t,translateX:n,translateY:r}=e;return LT(pj,{[`${pj}-right`]:XE(n)&&t&&XE(t.x)&&n>=t.x,[`${pj}-left`]:XE(n)&&t&&XE(t.x)&&n=t.y,[`${pj}-top`]:XE(r)&&t&&XE(t.y)&&r0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(uf+l?Math.max(u,f):Math.max(d,f)}function ape(e){var{translateX:t,translateY:n,useTranslate3d:r}=e;return{transform:r?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function ope(e){var{allowEscapeViewBox:t,coordinate:n,offsetTop:r,offsetLeft:i,position:a,reverseDirection:o,tooltipBox:s,useTranslate3d:c,viewBox:l}=e,u,d,f;return s.height>0&&s.width>0&&n?(d=mj({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=mj({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=ape({translateX:d,translateY:f,useTranslate3d:c})):u=rpe,{cssProperties:u,cssClasses:ipe({translateX:d,translateY:f,coordinate:n})}}function hj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gj(e){for(var t=1;t{e.key===`Escape`&&this.setState({dismissed:!0,dismissedAtCoordinate:{x:this.props.coordinate?.x??0,y:this.props.coordinate?.y??0}})})}componentDidMount(){document.addEventListener(`keydown`,this.handleKeyDown)}componentWillUnmount(){document.removeEventListener(`keydown`,this.handleKeyDown)}componentDidUpdate(){this.state.dismissed&&(this.props.coordinate?.x!==this.state.dismissedAtCoordinate.x||this.props.coordinate?.y!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}render(){var{active:e,allowEscapeViewBox:t,animationDuration:n,animationEasing:r,children:i,coordinate:a,hasPayload:o,isAnimationActive:s,offset:c,position:l,reverseDirection:u,useTranslate3d:d,viewBox:f,wrapperStyle:p,lastBoundingBox:m,innerRef:h,hasPortalFromProps:g}=this.props,{cssClasses:_,cssProperties:v}=ope({allowEscapeViewBox:t,coordinate:a,offsetLeft:typeof c==`number`?c:c.x,offsetTop:typeof c==`number`?c:c.y,position:l,reverseDirection:u,tooltipBox:{height:m.height,width:m.width},useTranslate3d:d,viewBox:f}),b=gj(gj({},g?{}:gj(gj({transition:s&&e?`transform ${n}ms ${r}`:void 0},v),{},{pointerEvents:`none`,visibility:!this.state.dismissed&&e&&o?`visible`:`hidden`,position:`absolute`,top:0,left:0})),{},{visibility:!this.state.dismissed&&e&&o?`visible`:`hidden`},p);return y.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:_,style:b,ref:h},i)}},vj=()=>FD(e=>e.rootProps.accessibilityLayer)??!0;function yj(){return yj=Object.assign?Object.assign.bind():function(e){for(var t=1;tbk(e.x)&&bk(e.y),wj=e=>e.base!=null&&Cj(e.base)&&Cj(e),Tj=e=>e.x,Ej=e=>e.y,ppe=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${iD(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=Sj[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return Sj[n]||lE},Dj={connectNulls:!1,type:`linear`},mpe=e=>{var{type:t=Dj.type,points:n=[],baseLine:r,layout:i,connectNulls:a=Dj.connectNulls}=e,o=ppe(t,i),s=a?n.filter(Cj):n;if(Array.isArray(r)){var c,l=n.map((e,t)=>xj(xj({},e),{},{base:r[t]}));return c=i===`vertical`?pE().y(Ej).x1(Tj).x0(e=>e.base.x):pE().x(Tj).y1(Ej).y0(e=>e.base.y),c.defined(wj).curve(o)(a?l.filter(wj):l)}return(i===`vertical`&&XE(r)?pE().y(Ej).x1(Tj).x0(r):XE(r)?pE().x(Tj).y1(Ej).y0(r):fE().x(Tj).y(Ej)).defined(Cj).curve(o)(s)},Oj=e=>{var{className:t,points:n,path:r,pathRef:i}=e,a=uA();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=n&&n.length?mpe(o):r;return y.createElement(`path`,yj({},VT(e),pD(e),{className:LT(`recharts-curve`,t),d:s===null?void 0:s,ref:i}))},hpe=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function kj(){return kj=Object.assign?Object.assign.bind():function(e){for(var t=1;t`M${e},${i}v${r}M${a},${t}h${n}`,Cpe=e=>{var{x:t=0,y:n=0,top:r=0,left:i=0,width:a=0,height:o=0,className:s}=e,c=bpe(e,hpe),l=gpe({x:t,y:n,top:r,left:i,width:a,height:o},c);return!XE(t)||!XE(n)||!XE(a)||!XE(o)||!XE(r)||!XE(i)?null:y.createElement(`path`,kj({},UT(l),{className:LT(`recharts-cross`,s),d:Spe(t,n,a,o,r,i)}))};function wpe(e,t,n,r){var i=r/2;return{stroke:`none`,fill:`#ccc`,x:e===`horizontal`?t.x-i:n.left+.5,y:e===`horizontal`?n.top+.5:t.y-i,width:e===`horizontal`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}function jj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mj(e){for(var t=1;te.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),Nj=(e,t,n)=>e.map(e=>`${Ope(e)} ${t}ms ${n}`).join(`,`),kpe=(e,t)=>[Object.keys(e),Object.keys(t)].reduce((e,t)=>e.filter(e=>t.includes(e))),Pj=(e,t)=>Object.keys(t).reduce((n,r)=>Mj(Mj({},n),{},{[r]:e(r,t[r])}),{});function Fj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ij(e){for(var t=1;te+(t-e)*n,Rj=e=>{var{from:t,to:n}=e;return t!==n},zj=(e,t,n)=>{var r=Pj((t,n)=>{if(Rj(n)){var[r,i]=e(n.from,n.to,n.velocity);return Ij(Ij({},n),{},{from:r,velocity:i})}return n},t);return n<1?Pj((e,t)=>Rj(t)&&r[e]!=null?Ij(Ij({},t),{},{velocity:Lj(t.velocity,r[e].velocity,n),from:Lj(t.from,r[e].from,n)}):t,t):zj(e,r,n-1)};function Npe(e,t,n,r,i,a){var o,s=r.reduce((n,r)=>Ij(Ij({},n),{},{[r]:{from:e[r],velocity:0,to:t[r]}}),{}),c=()=>Pj((e,t)=>t.from,s),l=()=>!Object.values(s).filter(Rj).length,u=null,d=r=>{o||=r;var f=(r-o)/n.dt;s=zj(n,s,f),i(Ij(Ij(Ij({},e),t),c())),o=r,l()||(u=a.setTimeout(d))};return()=>(u=a.setTimeout(d),()=>{var e;(e=u)==null||e()})}function Ppe(e,t,n,r,i,a,o){var s=null,c=i.reduce((n,r)=>{var i=e[r],a=t[r];return i==null||a==null?n:Ij(Ij({},n),{},{[r]:[i,a]})},{}),l,u=i=>{l||=i;var d=(i-l)/r,f=Pj((e,t)=>Lj(...t,n(d)),c);if(a(Ij(Ij(Ij({},e),t),f)),d<1)s=o.setTimeout(u);else{var p=Pj((e,t)=>Lj(...t,n(1)),c);a(Ij(Ij(Ij({},e),t),p))}};return()=>(s=o.setTimeout(u),()=>{var e;(e=s)==null||e()})}var Fpe=(e,t,n,r,i,a)=>{var o=kpe(e,t);return n==null?()=>(i(Ij(Ij({},e),t)),()=>{}):n.isStepper===!0?Npe(e,t,n,o,i,a):Ppe(e,t,n,r,o,i,a)},Bj=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],Vj=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),Hj=(e,t)=>n=>Vj(Bj(e,t),n),Ipe=(e,t)=>n=>Vj([...Bj(e,t).map((e,t)=>e*t).slice(1),0],n),Lpe=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},Rpe=function(){var e=[...arguments];if(e.length===1)switch(e[0]){case`linear`:return[0,0,1,1];case`ease`:return[.25,.1,.25,1];case`ease-in`:return[.42,0,1,1];case`ease-out`:return[.42,0,.58,1];case`ease-in-out`:return[0,0,.58,1];default:var t=Lpe(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},zpe=(e,t,n,r)=>{var i=Hj(e,n),a=Hj(t,r),o=Ipe(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},Uj=function(){return zpe(...Rpe(...arguments))},Bpe=function(){var{stiff:e=100,damping:t=8,dt:n=17}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(r,i,a)=>{var o=a+(-(r-i)*e-a*t)*n/1e3,s=a*n/1e3+r;return Math.abs(s-i)<1e-4&&Math.abs(o)<1e-4?[i,0]:[s,o]};return r.isStepper=!0,r.dt=n,r},Vpe=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return Uj(e);case`spring`:return Bpe();default:if(e.split(`(`)[0]===`cubic-bezier`)return Uj(e)}return typeof e==`function`?e:null};function Hpe(e){var t,n=()=>null,r=!1,i=null,a=o=>{if(!r){if(Array.isArray(o)){if(!o.length)return;var[s,...c]=o;if(typeof s==`number`){i=e.setTimeout(a.bind(null,c),s);return}a(s),i=e.setTimeout(a.bind(null,c));return}typeof o==`string`&&(t=o,n(t)),typeof o==`object`&&(t=o,n(t)),typeof o==`function`&&o()}};return{stop:()=>{r=!0},start:e=>{r=!1,i&&=(i(),null),a(e)},subscribe:e=>(n=e,()=>{n=()=>null}),getTimeoutController:()=>e}}var Upe=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):typeof requestAnimationFrame==`function`&&(r=requestAnimationFrame(i))};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function Wpe(){return Hpe(new Upe)}var Gpe=(0,y.createContext)(Wpe);function Kpe(e,t){var n=(0,y.useContext)(Gpe);return(0,y.useMemo)(()=>t??n(e),[e,t,n])}var Wj={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)},qpe={begin:0,duration:1e3,easing:`ease`,isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},Gj={t:0},Kj={t:1};function qj(e){var t=gD(e,qpe),{isActive:n,canBegin:r,duration:i,easing:a,begin:o,onAnimationEnd:s,onAnimationStart:c,children:l}=t,u=n===`auto`?!Wj.isSsr:n,d=Kpe(t.animationId,t.animationManager),[f,p]=(0,y.useState)(u?Gj:Kj),m=(0,y.useRef)(null);return(0,y.useEffect)(()=>{u||p(Kj)},[u]),(0,y.useEffect)(()=>{if(!u||!r)return oD;var e=Fpe(Gj,Kj,Vpe(a),i,p,d.getTimeoutController());return d.start([c,o,()=>{m.current=e()},i,s]),()=>{d.stop(),m.current&&m.current(),s()}},[u,r,i,a,o,c,s,d]),l(f.t)}function Jj(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,y.useRef)(QE(t)),r=(0,y.useRef)(e);return r.current!==e&&(n.current=QE(t),r.current=e),n.current}var Jpe=[`radius`],Ype=[`radius`],Xpe,Zpe,Qpe,$pe,eme,tme,nme,rme,ime,ame;function Yj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xj(e){for(var t=1;t{var a=WE(n),o=WE(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;ps?s:h}d=GE(Xpe||=$j([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=GE(Zpe||=$j([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=GE(Qpe||=$j([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=GE($pe||=$j([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=GE(eme||=$j([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=GE(tme||=$j([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=GE(nme||=$j([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=GE(rme||=$j([`A `,`,`,`,0,0,`,`, + `,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=GE(ime||=$j(`M .,. A .,.,0,0,.,.,. L .,. A .,.,0,0,.,.,. L .,. A .,.,0,0,.,.,. L .,. - A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=GE(ime||=eM([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},nM={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},rM=e=>{var t=gD(e,nM),n=(0,y.useRef)(null),[r,i]=(0,y.useState)(-1);(0,y.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&i(e)}catch{}},[]);var{x:a,y:o,width:s,height:c,radius:l,className:u}=t,{animationEasing:d,animationDuration:f,animationBegin:p,isAnimationActive:m,isUpdateAnimationActive:h}=t,g=(0,y.useRef)(s),_=(0,y.useRef)(c),v=(0,y.useRef)(a),b=(0,y.useRef)(o),x=Yj((0,y.useMemo)(()=>({x:a,y:o,width:s,height:c,radius:l}),[a,o,s,c,l]),`rectangle-`);if(a!==+a||o!==+o||s!==+s||c!==+c||s===0||c===0)return null;var S=LT(`recharts-rectangle`,u);if(!h){var C=UT(t),{radius:w}=C,T=$j(C,qpe);return y.createElement(`path`,Qj({},T,{x:WE(a),y:WE(o),width:WE(s),height:WE(c),radius:typeof l==`number`?l:void 0,className:S,d:tM(a,o,s,c,l)}))}var E=g.current,D=_.current,O=v.current,k=b.current,A=`0px ${r===-1?1:r}px`,j=`${r}px 0px`,M=Pj([`strokeDasharray`],f,typeof d==`string`?d:nM.animationEasing);return y.createElement(Jj,{animationId:x,key:x,canBegin:r>0,duration:f,easing:d,isActive:h,begin:p},e=>{var r=tD(E,s,e),i=tD(D,c,e),u=tD(O,a,e),d=tD(k,o,e);n.current&&(g.current=r,_.current=i,v.current=u,b.current=d);var f=m?e>0?{transition:M,strokeDasharray:j}:{strokeDasharray:A}:{strokeDasharray:j},p=UT(t),{radius:h}=p,x=$j(p,Jpe);return y.createElement(`path`,Qj({},x,{radius:typeof l==`number`?l:void 0,className:S,d:tM(u,d,r,i,l),ref:n,style:Zj(Zj({},f),t.style)}))})};function iM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aM(e){for(var t=1;te*180/Math.PI,sM=(e,t,n,r)=>({x:e+Math.cos(-oM*r)*n,y:t+Math.sin(-oM*r)*n}),cM=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},pme=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return Math.sqrt((n-i)**2+(r-a)**2)},mme=(e,t)=>{var{x:n,y:r}=e,{cx:i,cy:a}=t,o=pme({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:fme(c),angleInRadian:c}},hme=e=>{var{startAngle:t,endAngle:n}=e,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},gme=(e,t)=>{var{startAngle:n,endAngle:r}=t,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},_me=(e,t)=>{var{chartX:n,chartY:r}=e,{radius:i,angle:a}=mme({x:n,y:r},t),{innerRadius:o,outerRadius:s}=t;if(is||i===0)return null;var{startAngle:c,endAngle:l}=hme(t),u=a,d;if(c<=l){for(;u>l;)u-=360;for(;u=c&&u<=l}else{for(;u>c;)u-=360;for(;u=l&&u<=c}return d?aM(aM({},t),{},{radius:i,angle:gme(u,t)}):null};function lM(e){var{cx:t,cy:n,radius:r,startAngle:i,endAngle:a}=e;return{points:[sM(t,n,r,i),sM(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var vme,yme,bme,xme,Sme,Cme,wme;function uM(){return uM=Object.assign?Object.assign.bind():function(e){for(var t=1;tqE(t-e)*Math.min(Math.abs(t-e),359.999),fM=e=>{var{cx:t,cy:n,radius:r,angle:i,sign:a,isExternal:o,cornerRadius:s,cornerIsExternal:c}=e,l=s*(o?1:-1)+r,u=Math.asin(s/l)/oM,d=c?i:i+a*u,f=sM(t,n,l,d),p=sM(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:sM(t,n,l*Math.cos(u*oM),m),theta:u}},pM=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:a,endAngle:o}=e,s=Tme(a,o),c=a+s,l=sM(t,n,i,a),u=sM(t,n,i,c),d=GE(vme||=dM([`M `,`,`,` + A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=GE(ame||=$j([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},tM={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},nM=e=>{var t=gD(e,tM),n=(0,y.useRef)(null),[r,i]=(0,y.useState)(-1);(0,y.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&i(e)}catch{}},[]);var{x:a,y:o,width:s,height:c,radius:l,className:u}=t,{animationEasing:d,animationDuration:f,animationBegin:p,isAnimationActive:m,isUpdateAnimationActive:h}=t,g=(0,y.useRef)(s),_=(0,y.useRef)(c),v=(0,y.useRef)(a),b=(0,y.useRef)(o),x=Jj((0,y.useMemo)(()=>({x:a,y:o,width:s,height:c,radius:l}),[a,o,s,c,l]),`rectangle-`);if(a!==+a||o!==+o||s!==+s||c!==+c||s===0||c===0)return null;var S=LT(`recharts-rectangle`,u);if(!h){var C=UT(t),{radius:w}=C,T=Qj(C,Jpe);return y.createElement(`path`,Zj({},T,{x:WE(a),y:WE(o),width:WE(s),height:WE(c),radius:typeof l==`number`?l:void 0,className:S,d:eM(a,o,s,c,l)}))}var E=g.current,D=_.current,O=v.current,k=b.current,A=`0px ${r===-1?1:r}px`,j=`${r}px 0px`,M=Nj([`strokeDasharray`],f,typeof d==`string`?d:tM.animationEasing);return y.createElement(qj,{animationId:x,key:x,canBegin:r>0,duration:f,easing:d,isActive:h,begin:p},e=>{var r=tD(E,s,e),i=tD(D,c,e),u=tD(O,a,e),d=tD(k,o,e);n.current&&(g.current=r,_.current=i,v.current=u,b.current=d);var f=m?e>0?{transition:M,strokeDasharray:j}:{strokeDasharray:A}:{strokeDasharray:j},p=UT(t),{radius:h}=p,x=Qj(p,Ype);return y.createElement(`path`,Zj({},x,{radius:typeof l==`number`?l:void 0,className:S,d:eM(u,d,r,i,l),ref:n,style:Xj(Xj({},f),t.style)}))})};function rM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iM(e){for(var t=1;te*180/Math.PI,oM=(e,t,n,r)=>({x:e+Math.cos(-aM*r)*n,y:t+Math.sin(-aM*r)*n}),sM=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},mme=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return Math.sqrt((n-i)**2+(r-a)**2)},hme=(e,t)=>{var{x:n,y:r}=e,{cx:i,cy:a}=t,o=mme({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:pme(c),angleInRadian:c}},gme=e=>{var{startAngle:t,endAngle:n}=e,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},_me=(e,t)=>{var{startAngle:n,endAngle:r}=t,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},vme=(e,t)=>{var{chartX:n,chartY:r}=e,{radius:i,angle:a}=hme({x:n,y:r},t),{innerRadius:o,outerRadius:s}=t;if(is||i===0)return null;var{startAngle:c,endAngle:l}=gme(t),u=a,d;if(c<=l){for(;u>l;)u-=360;for(;u=c&&u<=l}else{for(;u>c;)u-=360;for(;u=l&&u<=c}return d?iM(iM({},t),{},{radius:i,angle:_me(u,t)}):null};function cM(e){var{cx:t,cy:n,radius:r,startAngle:i,endAngle:a}=e;return{points:[oM(t,n,r,i),oM(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var yme,bme,xme,Sme,Cme,wme,Tme;function lM(){return lM=Object.assign?Object.assign.bind():function(e){for(var t=1;tqE(t-e)*Math.min(Math.abs(t-e),359.999),dM=e=>{var{cx:t,cy:n,radius:r,angle:i,sign:a,isExternal:o,cornerRadius:s,cornerIsExternal:c}=e,l=s*(o?1:-1)+r,u=Math.asin(s/l)/aM,d=c?i:i+a*u,f=oM(t,n,l,d),p=oM(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:oM(t,n,l*Math.cos(u*aM),m),theta:u}},fM=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:a,endAngle:o}=e,s=Eme(a,o),c=a+s,l=oM(t,n,i,a),u=oM(t,n,i,c),d=GE(yme||=uM([`M `,`,`,` A `,`,`,`,0, `,`,`,`, `,`,`,` - `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=sM(t,n,r,a),p=sM(t,n,r,c);d+=GE(yme||=dM([`L `,`,`,` + `]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=oM(t,n,r,a),p=oM(t,n,r,c);d+=GE(bme||=uM([`L `,`,`,` A `,`,`,`,0, `,`,`,`, - `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=GE(bme||=dM([`L `,`,`,` Z`]),t,n);return d},Eme=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,cornerRadius:a,forceCornerRadius:o,cornerIsExternal:s,startAngle:c,endAngle:l}=e,u=qE(l-c),{circleTangency:d,lineTangency:f,theta:p}=fM({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),{circleTangency:m,lineTangency:h,theta:g}=fM({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),_=s?Math.abs(c-l):Math.abs(c-l)-p-g;if(_<0)return o?GE(xme||=dM([`M `,`,`,` + `,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=GE(xme||=uM([`L `,`,`,` Z`]),t,n);return d},Dme=e=>{var{cx:t,cy:n,innerRadius:r,outerRadius:i,cornerRadius:a,forceCornerRadius:o,cornerIsExternal:s,startAngle:c,endAngle:l}=e,u=qE(l-c),{circleTangency:d,lineTangency:f,theta:p}=dM({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),{circleTangency:m,lineTangency:h,theta:g}=dM({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),_=s?Math.abs(c-l):Math.abs(c-l)-p-g;if(_<0)return o?GE(Sme||=uM([`M `,`,`,` a`,`,`,`,0,0,1,`,`,0 a`,`,`,`,0,0,1,`,`,0 - `]),f.x,f.y,a,a,a*2,a,a,-a*2):pM({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var v=GE(Sme||=dM([`M `,`,`,` + `]),f.x,f.y,a,a,a*2,a,a,-a*2):fM({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var v=GE(Cme||=uM([`M `,`,`,` A`,`,`,`,0,0,`,`,`,`,`,` A`,`,`,`,0,`,`,`,`,`,`,`,` A`,`,`,`,0,0,`,`,`,`,`,` - `]),f.x,f.y,a,a,+(u<0),d.x,d.y,i,i,+(_>180),+(u<0),m.x,m.y,a,a,+(u<0),h.x,h.y);if(r>0){var{circleTangency:y,lineTangency:b,theta:x}=fM({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),{circleTangency:S,lineTangency:C,theta:w}=fM({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),T=s?Math.abs(c-l):Math.abs(c-l)-x-w;if(T<0&&a===0)return`${v}L${t},${n}Z`;v+=GE(Cme||=dM([`L`,`,`,` + `]),f.x,f.y,a,a,+(u<0),d.x,d.y,i,i,+(_>180),+(u<0),m.x,m.y,a,a,+(u<0),h.x,h.y);if(r>0){var{circleTangency:y,lineTangency:b,theta:x}=dM({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),{circleTangency:S,lineTangency:C,theta:w}=dM({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),T=s?Math.abs(c-l):Math.abs(c-l)-x-w;if(T<0&&a===0)return`${v}L${t},${n}Z`;v+=GE(wme||=uM([`L`,`,`,` A`,`,`,`,0,0,`,`,`,`,`,` A`,`,`,`,0,`,`,`,`,`,`,`,` - A`,`,`,`,0,0,`,`,`,`,`,`Z`]),C.x,C.y,a,a,+(u<0),S.x,S.y,r,r,+(T>180),+(u>0),y.x,y.y,a,a,+(u<0),b.x,b.y)}else v+=GE(wme||=dM([`L`,`,`,`Z`]),t,n);return v},Dme={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},mM=e=>{var t=gD(e,Dme),{cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:o,forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u,className:d}=t;if(a0&&Math.abs(l-u)<360?Eme({cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:Math.min(m,p/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u}):pM({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:l,endAngle:u});return y.createElement(`path`,uM({},UT(t),{className:f,d:h}))};function Ome(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(fD(t)){if(e===`centric`){var{cx:r,cy:i,innerRadius:a,outerRadius:o,angle:s}=t,c=sM(r,i,a,s),l=sM(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return lM(t)}}var kme=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=HD();function n(e){return t.isSymbol(e)?NaN:Number(e)}e.toNumber=n})),Ame=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=kme();function n(e){return e?(e=t.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}e.toFinite=n})),jme=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=UD(),n=Ame();function r(e,r,i){i&&typeof i!=`number`&&t.isIterateeCall(e,r,i)&&(r=i=void 0),e=n.toFinite(e),r===void 0?(r=e,e=0):r=n.toFinite(r),i=i===void 0?e{t.exports=jme().range}));function hM(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Nme(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gM(e){let t,n,r;e.length===2?(t=e===hM||e===Nme?e:Pme,n=e,r=e):(t=hM,n=(t,n)=>hM(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i>>1;n(e[t],r)<0?i=t+1:a=t}while(i>>1;n(e[t],r)<=0?i=t+1:a=t}while(in&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function Pme(){return 0}function _M(e){return e===null?NaN:+e}function*Fme(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var vM=gM(hM),yM=vM.right;vM.left,gM(_M).center;var bM=class extends Map{constructor(e,t=Rme){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(xM(this,e))}has(e){return super.has(xM(this,e))}set(e,t){return super.set(Ime(this,e),t)}delete(e){return super.delete(Lme(this,e))}};function xM({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function Ime({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Lme({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Rme(e){return typeof e==`object`&&e?e.valueOf():e}function zme(e=hM){if(e===hM)return SM;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function SM(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et))}var Bme=Math.sqrt(50),Vme=Math.sqrt(10),Hme=Math.sqrt(2);function CM(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=Bme?10:a>=Vme?5:a>=Hme?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/lt&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*lt&&--c),c0))return[];if(e===t)return[e];let r=t=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function OM(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function kM(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?SM:zme(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));kM(e,t,u,d,i)}let a=e[t],o=n,s=r;for(AM(e,n,t),i(e[r],a)>0&&AM(e,n,r);o0;)--s}i(e[n],a)===0?AM(e,n,s):(++s,AM(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function AM(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Ume(e,t,n){if(e=Float64Array.from(Fme(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return OM(e);if(t>=1)return DM(e);var r,i=(r-1)*t,a=Math.floor(i),o=DM(kM(e,a).subarray(0,a+1));return o+(OM(e.subarray(a+1))-o)*(i-a)}}function Wme(e,t,n=_M){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function Gme(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?XM(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?XM(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Jme.exec(e))?new QM(t[1],t[2],t[3],1):(t=Yme.exec(e))?new QM(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Xme.exec(e))?XM(t[1],t[2],t[3],t[4]):(t=Zme.exec(e))?XM(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Qme.exec(e))?iN(t[1],t[2]/100,t[3]/100,1):(t=$me.exec(e))?iN(t[1],t[2]/100,t[3]/100,t[4]):GM.hasOwnProperty(e)?YM(GM[e]):e===`transparent`?new QM(NaN,NaN,NaN,0):null}function YM(e){return new QM(e>>16&255,e>>8&255,e&255,1)}function XM(e,t,n,r){return r<=0&&(e=t=n=NaN),new QM(e,t,n,r)}function nhe(e){return e instanceof zM||(e=JM(e)),e?(e=e.rgb(),new QM(e.r,e.g,e.b,e.opacity)):new QM}function ZM(e,t,n,r){return arguments.length===1?nhe(e):new QM(e,t,n,r??1)}function QM(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}LM(QM,ZM,RM(zM,{brighter(e){return e=e==null?VM:VM**+e,new QM(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?BM:BM**+e,new QM(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new QM(nN(this.r),nN(this.g),nN(this.b),tN(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$M,formatHex:$M,formatHex8:rhe,formatRgb:eN,toString:eN}));function $M(){return`#${rN(this.r)}${rN(this.g)}${rN(this.b)}`}function rhe(){return`#${rN(this.r)}${rN(this.g)}${rN(this.b)}${rN((isNaN(this.opacity)?1:this.opacity)*255)}`}function eN(){let e=tN(this.opacity);return`${e===1?`rgb(`:`rgba(`}${nN(this.r)}, ${nN(this.g)}, ${nN(this.b)}${e===1?`)`:`, ${e})`}`}function tN(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function nN(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function rN(e){return e=nN(e),(e<16?`0`:``)+e.toString(16)}function iN(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new oN(e,t,n,r)}function aN(e){if(e instanceof oN)return new oN(e.h,e.s,e.l,e.opacity);if(e instanceof zM||(e=JM(e)),!e)return new oN;if(e instanceof oN)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new oN(o,s,c,e.opacity)}function ihe(e,t,n,r){return arguments.length===1?aN(e):new oN(e,t,n,r??1)}function oN(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}LM(oN,ihe,RM(zM,{brighter(e){return e=e==null?VM:VM**+e,new oN(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?BM:BM**+e,new oN(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new QM(lN(e>=240?e-240:e+120,i,r),lN(e,i,r),lN(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new oN(sN(this.h),cN(this.s),cN(this.l),tN(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=tN(this.opacity);return`${e===1?`hsl(`:`hsla(`}${sN(this.h)}, ${cN(this.s)*100}%, ${cN(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function sN(e){return e=(e||0)%360,e<0?e+360:e}function cN(e){return Math.max(0,Math.min(1,e||0))}function lN(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var uN=e=>()=>e;function ahe(e,t){return function(n){return e+n*t}}function ohe(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function she(e){return(e=+e)==1?dN:function(t,n){return n-t?ohe(t,n,e):uN(isNaN(t)?n:t)}}function dN(e,t){var n=t-e;return n?ahe(e,n):uN(isNaN(e)?t:e)}var fN=(function e(t){var n=she(t);function r(e,t){var r=n((e=ZM(e)).r,(t=ZM(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=dN(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function che(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:pN(r,i)})),n=hN.lastIndex;return nt&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function yhe(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i2?bhe:yhe,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),pN))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,vN),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=_N,u()},d.clamp=function(e){return arguments.length?(o=e?!0:bN,u()):o!==bN},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function wN(){return CN()(bN,bN)}function xhe(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function TN(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function EN(e){return e=TN(Math.abs(e)),e?e[1]:NaN}function She(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Che(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var whe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function DN(e){if(!(t=whe.exec(e)))throw Error(`invalid format: `+e);var t;return new ON({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}DN.prototype=ON.prototype;function ON(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}ON.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function The(e){out:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var kN;function Ehe(e,t){var n=TN(e,t);if(!n)return kN=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(kN=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+TN(e,Math.max(0,t+a-1))[0]}function AN(e,t){var n=TN(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var jN={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:xhe,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>AN(e*100,t),r:AN,s:Ehe,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function MN(e){return e}var NN=Array.prototype.map,PN=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function Dhe(e){var t=e.grouping===void 0||e.thousands===void 0?MN:She(NN.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?MN:Che(NN.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=DN(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):jN[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=jN[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=The(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&kN!==void 0?PN[8+kN/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++op||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(EN(t)/3)))*3,r=10**-n,i=l((e=DN(e),e.type=`f`,e),{suffix:PN[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var FN,IN,LN;Ohe({thousands:`,`,grouping:[3],currency:[`$`,``]});function Ohe(e){return FN=Dhe(e),IN=FN.format,LN=FN.formatPrefix,FN}function khe(e){return Math.max(0,-EN(Math.abs(e)))}function Ahe(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(EN(t)/3)))*3-EN(Math.abs(e)))}function jhe(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,EN(t)-EN(e))+1}function RN(e,t,n,r){var i=EM(e,t,n),a;switch(r=DN(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=Ahe(i,o))&&(r.precision=a),LN(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=jhe(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=khe(i))&&(r.precision=a-(r.type===`%`)*2);break}return IN(r)}function zN(e){var t=e.domain;return e.ticks=function(e){var n=t();return wM(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return RN(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s0;){if(l=TM(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function BN(){var e=wN();return e.copy=function(){return SN(e,BN())},jM.apply(e,arguments),zN(e)}function VN(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,vN),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return VN(e).unknown(t)},e=arguments.length?Array.from(e,vN):[0,1],zN(n)}function HN(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return ae**+t}function Ihe(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function GN(e){return(t,n)=>-e(-t,n)}function KN(e){let t=e(UN,WN),n=t.domain,r=10,i,a;function o(){return i=Ihe(r),a=Fhe(r),n()[0]<0?(i=GN(i),a=GN(a),e(Mhe,Nhe)):e(UN,WN),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s0){for(;l<=u;++l)for(d=1;ds)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(fs)break;m.push(f)}m.length*2{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=DN(n)).precision==null&&(n.trim=!0),n=IN(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*rn(HN(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function qN(){let e=KN(CN()).domain([1,10]);return e.copy=()=>SN(e,qN()).base(e.base()),jM.apply(e,arguments),e}function JN(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function YN(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function XN(e){var t=1,n=e(JN(t),YN(t));return n.constant=function(n){return arguments.length?e(JN(t=+n),YN(t)):t},zN(n)}function ZN(){var e=XN(CN());return e.copy=function(){return SN(e,ZN()).constant(e.constant())},jM.apply(e,arguments)}function QN(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Lhe(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Rhe(e){return e<0?-e*e:e*e}function $N(e){var t=e(bN,bN),n=1;function r(){return n===1?e(bN,bN):n===.5?e(Lhe,Rhe):e(QN(n),QN(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},zN(t)}function eP(){var e=$N(CN());return e.copy=function(){return SN(e,eP()).exponent(e.exponent())},jM.apply(e,arguments),e}function zhe(){return eP.apply(null,arguments).exponent(.5)}function tP(e){return Math.sign(e)*e*e}function Bhe(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function nP(){var e=wN(),t=[0,1],n=!1,r;function i(t){var i=Bhe(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(tP(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,vN)).map(tP)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return nP(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},jM.apply(i,arguments),zN(i)}function rP(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r0?n[i-1]:e[0],i=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return iP().domain([e,t]).range(i).unknown(a)},jM.apply(zN(o),arguments)}function aP(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[yM(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return aP().domain(e).range(t).unknown(n)},jM.apply(i,arguments)}var oP=new Date,sP=new Date;function cP(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(scP(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(i.count=(t,r)=>(oP.setTime(+t),sP.setTime(+r),e(oP),e(sP),Math.floor(n(oP,sP))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var lP=cP(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);lP.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?cP(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):lP),lP.range;var uP=1e3,dP=uP*60,fP=dP*60,pP=fP*24,mP=pP*7,hP=pP*30,gP=pP*365,_P=cP(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*uP)},(e,t)=>(t-e)/uP,e=>e.getUTCSeconds());_P.range;var vP=cP(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*uP)},(e,t)=>{e.setTime(+e+t*dP)},(e,t)=>(t-e)/dP,e=>e.getMinutes());vP.range;var yP=cP(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*dP)},(e,t)=>(t-e)/dP,e=>e.getUTCMinutes());yP.range;var bP=cP(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*uP-e.getMinutes()*dP)},(e,t)=>{e.setTime(+e+t*fP)},(e,t)=>(t-e)/fP,e=>e.getHours());bP.range;var xP=cP(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*fP)},(e,t)=>(t-e)/fP,e=>e.getUTCHours());xP.range;var SP=cP(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*dP)/pP,e=>e.getDate()-1);SP.range;var CP=cP(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pP,e=>e.getUTCDate()-1);CP.range;var wP=cP(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/pP,e=>Math.floor(e/pP));wP.range;function TP(e){return cP(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*dP)/mP)}var EP=TP(0),DP=TP(1),Vhe=TP(2),Hhe=TP(3),OP=TP(4),Uhe=TP(5),Whe=TP(6);EP.range,DP.range,Vhe.range,Hhe.range,OP.range,Uhe.range,Whe.range;function kP(e){return cP(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/mP)}var AP=kP(0),jP=kP(1),Ghe=kP(2),Khe=kP(3),MP=kP(4),qhe=kP(5),Jhe=kP(6);AP.range,jP.range,Ghe.range,Khe.range,MP.range,qhe.range,Jhe.range;var NP=cP(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());NP.range;var PP=cP(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());PP.range;var FP=cP(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());FP.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:cP(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),FP.range;var IP=cP(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());IP.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:cP(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),IP.range;function LP(e,t,n,r,i,a){let o=[[_P,1,uP],[_P,5,5*uP],[_P,15,15*uP],[_P,30,30*uP],[a,1,dP],[a,5,5*dP],[a,15,15*dP],[a,30,30*dP],[i,1,fP],[i,3,3*fP],[i,6,6*fP],[i,12,12*fP],[r,1,pP],[r,2,2*pP],[n,1,mP],[t,1,hP],[t,3,3*hP],[e,1,gP]];function s(e,t,n){let r=te).right(o,i);if(a===o.length)return e.every(EM(t/gP,n/gP,r));if(a===0)return lP.every(Math.max(EM(t,n,r),1));let[s,c]=o[i/o[a-1][2]53)return null;`w`in r||(r.w=1),`Z`in r?(a=zP(BP(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?jP.ceil(a):jP(a),a=CP.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=RP(BP(r.y,0,1)),o=a.getDay(),a=o>4||o===0?DP.ceil(a):DP(a),a=SP.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else (`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?zP(BP(r.y,0,1)).getUTCDay():RP(BP(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,zP(r)):RP(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in VP?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function F(e){return c[e.getMonth()]}function I(e){return s[e.getMonth()]}function L(e){return i[+(e.getHours()>=12)]}function R(e){return 1+~~(e.getMonth()/3)}function z(e){return o[e.getUTCDay()]}function B(e){return a[e.getUTCDay()]}function V(e){return c[e.getUTCMonth()]}function ee(e){return s[e.getUTCMonth()]}function te(e){return i[+(e.getUTCHours()>=12)]}function ne(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var VP={"-":``,_:` `,0:`0`},HP=/^\s*\d+/,ege=/^%/,tge=/[\\^$*+?|[\]().{}]/g;function UP(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a[e.toLowerCase(),t]))}function rge(e,t,n){var r=HP.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function ige(e,t,n){var r=HP.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function age(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function oge(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function sge(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function KP(e,t,n){var r=HP.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function qP(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function cge(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function lge(e,t,n){var r=HP.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function uge(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function JP(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function dge(e,t,n){var r=HP.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function YP(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function fge(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function pge(e,t,n){var r=HP.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function mge(e,t,n){var r=HP.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function hge(e,t,n){var r=HP.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function gge(e,t,n){var r=ege.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _ge(e,t,n){var r=HP.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function vge(e,t,n){var r=HP.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function XP(e,t){return UP(e.getDate(),t,2)}function yge(e,t){return UP(e.getHours(),t,2)}function bge(e,t){return UP(e.getHours()%12||12,t,2)}function xge(e,t){return UP(1+SP.count(FP(e),e),t,3)}function ZP(e,t){return UP(e.getMilliseconds(),t,3)}function Sge(e,t){return ZP(e,t)+`000`}function Cge(e,t){return UP(e.getMonth()+1,t,2)}function wge(e,t){return UP(e.getMinutes(),t,2)}function Tge(e,t){return UP(e.getSeconds(),t,2)}function Ege(e){var t=e.getDay();return t===0?7:t}function Dge(e,t){return UP(EP.count(FP(e)-1,e),t,2)}function QP(e){var t=e.getDay();return t>=4||t===0?OP(e):OP.ceil(e)}function Oge(e,t){return e=QP(e),UP(OP.count(FP(e),e)+(FP(e).getDay()===4),t,2)}function kge(e){return e.getDay()}function Age(e,t){return UP(DP.count(FP(e)-1,e),t,2)}function jge(e,t){return UP(e.getFullYear()%100,t,2)}function Mge(e,t){return e=QP(e),UP(e.getFullYear()%100,t,2)}function Nge(e,t){return UP(e.getFullYear()%1e4,t,4)}function Pge(e,t){var n=e.getDay();return e=n>=4||n===0?OP(e):OP.ceil(e),UP(e.getFullYear()%1e4,t,4)}function Fge(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+UP(t/60|0,`0`,2)+UP(t%60,`0`,2)}function $P(e,t){return UP(e.getUTCDate(),t,2)}function Ige(e,t){return UP(e.getUTCHours(),t,2)}function Lge(e,t){return UP(e.getUTCHours()%12||12,t,2)}function Rge(e,t){return UP(1+CP.count(IP(e),e),t,3)}function eF(e,t){return UP(e.getUTCMilliseconds(),t,3)}function zge(e,t){return eF(e,t)+`000`}function Bge(e,t){return UP(e.getUTCMonth()+1,t,2)}function Vge(e,t){return UP(e.getUTCMinutes(),t,2)}function Hge(e,t){return UP(e.getUTCSeconds(),t,2)}function Uge(e){var t=e.getUTCDay();return t===0?7:t}function Wge(e,t){return UP(AP.count(IP(e)-1,e),t,2)}function tF(e){var t=e.getUTCDay();return t>=4||t===0?MP(e):MP.ceil(e)}function Gge(e,t){return e=tF(e),UP(MP.count(IP(e),e)+(IP(e).getUTCDay()===4),t,2)}function Kge(e){return e.getUTCDay()}function qge(e,t){return UP(jP.count(IP(e)-1,e),t,2)}function Jge(e,t){return UP(e.getUTCFullYear()%100,t,2)}function Yge(e,t){return e=tF(e),UP(e.getUTCFullYear()%100,t,2)}function Xge(e,t){return UP(e.getUTCFullYear()%1e4,t,4)}function Zge(e,t){var n=e.getUTCDay();return e=n>=4||n===0?MP(e):MP.ceil(e),UP(e.getUTCFullYear()%1e4,t,4)}function Qge(){return`+0000`}function nF(){return`%`}function rF(e){return+e}function iF(e){return Math.floor(e/1e3)}var aF,oF,sF;$ge({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function $ge(e){return aF=$he(e),oF=aF.format,aF.parse,sF=aF.utcFormat,aF.utcParse,aF}function e_e(e){return new Date(e)}function t_e(e){return e instanceof Date?+e:+new Date(+e)}function cF(e,t,n,r,i,a,o,s,c,l){var u=wN(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Ume(e,r/t))},n.copy=function(){return hF(t).domain(e)},MM.apply(n,arguments)}function gF(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=bN,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*eFM,scaleDiverging:()=>_F,scaleDivergingLog:()=>vF,scaleDivergingPow:()=>bF,scaleDivergingSqrt:()=>a_e,scaleDivergingSymlog:()=>yF,scaleIdentity:()=>VN,scaleImplicit:()=>NM,scaleLinear:()=>BN,scaleLog:()=>qN,scaleOrdinal:()=>PM,scalePoint:()=>Kme,scalePow:()=>eP,scaleQuantile:()=>rP,scaleQuantize:()=>iP,scaleRadial:()=>nP,scaleSequential:()=>dF,scaleSequentialLog:()=>fF,scaleSequentialPow:()=>mF,scaleSequentialQuantile:()=>hF,scaleSequentialSqrt:()=>i_e,scaleSequentialSymlog:()=>pF,scaleSqrt:()=>zhe,scaleSymlog:()=>ZN,scaleThreshold:()=>aP,scaleTime:()=>n_e,scaleUtc:()=>r_e,tickFormat:()=>RN}),SF=e=>e.chartData,CF=VD([SF],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),wF=(e,t,n,r)=>r?CF(e):SF(e),TF=(e,t,n)=>n?CF(e):SF(e);function EF(e){if(Array.isArray(e)&&e.length===2){var[t,n]=e;if(xk(t)&&xk(n))return!0}return!1}function DF(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function OF(e,t){if(t&&typeof e!=`function`&&Array.isArray(e)&&e.length===2){var[n,r]=e,i,a;if(xk(n))i=n;else if(typeof n==`function`)return;if(xk(r))a=r;else if(typeof r==`function`)return;var o=[i,a];if(EF(o))return o}}function o_e(e,t,n){if(!(!n&&t==null)){if(typeof e==`function`&&t!=null)try{var r=e(t,n);if(EF(r))return DF(r,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var[i,a]=e,o,s;if(i===`auto`)t!=null&&(o=Math.min(...t));else if(XE(i))o=i;else if(typeof i==`function`)try{t!=null&&(o=i(t?.[0]))}catch{}else if(typeof i==`string`&&jk.test(i)){var c=jk.exec(i);if(c==null||c[1]==null||t==null)o=void 0;else{var l=+c[1];o=t[0]-l}}else o=t?.[0];if(a===`auto`)t!=null&&(s=Math.max(...t));else if(XE(a))s=a;else if(typeof a==`function`)try{t!=null&&(s=a(t?.[1]))}catch{}else if(typeof a==`string`&&Mk.test(a)){var u=Mk.exec(a);if(u==null||u[1]==null||t==null)s=void 0;else{var d=+u[1];s=t[1]+d}}else s=t?.[1];var f=[o,s];if(EF(f))return t==null?f:DF(f,t,n)}}}var kF=l(o(((e,t)=>{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=re.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||en)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;tr?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),rh||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}else if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i);if((i=e[r=`LN10`])!==void 0)if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i);return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function AF(e){return e===0?1:Math.floor(new kF.default(e).abs().log(10).toNumber())+1}function jF(e,t,n){for(var r=new kF.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}var MF=e=>{var[t,n]=e,[r,i]=[t,n];return t>n&&([r,i]=[n,t]),[r,i]},NF=(e,t,n)=>{if(e.lte(0))return new kF.default(0);var r=AF(e.toNumber()),i=new kF.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new kF.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new kF.default(s.toNumber()):new kF.default(Math.ceil(s.toNumber()))},s_e=(e,t,n)=>{var r=new kF.default(1),i=new kF.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new kF.default(10).pow(AF(e)-1),i=new kF.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new kF.default(Math.floor(e)))}else e===0?i=new kF.default(Math.floor((t-1)/2)):n||(i=new kF.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new kF.default(0),tickMin:new kF.default(0),tickMax:new kF.default(0)};var a=NF(new kF.default(t).sub(e).div(n-1),r,i),o;e<=0&&t>=0?o=new kF.default(0):(o=new kF.default(e).add(t).div(2),o=o.sub(new kF.default(o).mod(a)));var s=Math.ceil(o.sub(e).div(a).toNumber()),c=Math.ceil(new kF.default(t).sub(o).div(a).toNumber()),l=s+c+1;return l>n?PF(e,t,n,r,i+1):(l0?c+(n-l):c,s=t>0?s:s+(n-l)),{step:a,tickMin:o.sub(new kF.default(s).mul(a)),tickMax:o.add(new kF.default(c).mul(a))})},c_e=function(e){var[t,n]=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=Math.max(r,2),[o,s]=MF([t,n]);if(o===-1/0||s===1/0){var c=s===1/0?[o,...Array(r-1).fill(1/0)]:[...Array(r-1).fill(-1/0),s];return t>n?c.reverse():c}if(o===s)return s_e(o,r,i);var{step:l,tickMin:u,tickMax:d}=PF(o,s,a,i,0),f=jF(u,d.add(new kF.default(.1).mul(l)),l);return t>n?f.reverse():f},l_e=function(e,t){var[n,r]=e,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,[a,o]=MF([n,r]);if(a===-1/0||o===1/0)return[n,r];if(a===o)return[a];var s=Math.max(t,2),c=NF(new kF.default(o).sub(a).div(s-1),i,0),l=[...jF(new kF.default(a),new kF.default(o),c),o];return i===!1&&(l=l.map(e=>Math.round(e))),n>r?l.reverse():l},FF=e=>e.rootProps.maxBarSize,u_e=e=>e.rootProps.barGap,IF=e=>e.rootProps.barCategoryGap,d_e=e=>e.rootProps.barSize,LF=e=>e.rootProps.stackOffset,RF=e=>e.rootProps.reverseStackOrder,zF=e=>e.options.chartName,BF=e=>e.rootProps.syncId,VF=e=>e.rootProps.syncMethod,HF=e=>e.options.eventEmitter,f_e=e=>e.rootProps.baseValue,UF={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},WF={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:UF.axis},GF={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:UF.axis},KF=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function qF(e,t,n){if(n!==`auto`)return n;if(e!=null)return Tk(e,t)?`category`:`number`}function JF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YF(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},pA],(e,t)=>{if(e!=null)return e;var n=qF(t,`angleAxis`,XF.type)??`category`;return YF(YF({},XF),{},{type:n})}),$F=VD([(e,t)=>e.polarAxis.radiusAxis[t],pA],(e,t)=>{if(e!=null)return e;var n=qF(t,`radiusAxis`,ZF.type)??`category`;return YF(YF({},ZF),{},{type:n})}),eI=e=>e.polarOptions,tI=VD([Ik,Lk,Wk],cM),nI=VD([eI,tI],(e,t)=>{if(e!=null)return $E(e.innerRadius,t,0)}),rI=VD([eI,tI],(e,t)=>{if(e!=null)return $E(e.outerRadius,t,t*.8)}),iI=VD([eI],e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:n}=e;return[t,n]});VD([QF,iI],KF);var aI=VD([tI,nI,rI],(e,t,n)=>{if(!(e==null||t==null||n==null))return[t,n]});VD([$F,aI],KF);var oI=VD([uA,eI,nI,rI,Ik,Lk],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var{cx:o,cy:s,startAngle:c,endAngle:l}=t;return{cx:$E(o,i,i/2),cy:$E(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),sI=(e,t)=>t,cI=(e,t,n)=>n;function lI(e){return e?.id}function uI(e,t,n){var{chartData:r=[]}=t,{allowDuplicatedCategory:i,dataKey:a}=n,o=new Map;return e.forEach(e=>{var t=e.data??r;if(!(t==null||t.length===0)){var n=lI(e);t.forEach((t,r)=>{var s=a==null||i?r:String(wk(t,a,null)),c=wk(t,e.dataKey,0),l=o.has(s)?o.get(s):{};Object.assign(l,{[n]:c}),o.set(s,l)})}}),Array.from(o.values())}function dI(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var fI=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function pI(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function g_e(e,t){if(e.length===t.length){for(var n=0;n{var t=uA(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},hI=e=>e.tooltip.settings.axisId;function __e(e){if(e in xF)return xF[e]();var t=`scale${iD(e)}`;if(t in xF)return xF[t]()}function gI(e){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i;break;default:break}}return r}}}}function _I(e,t,n){if(typeof e==`function`)return gI(e.copy().domain(t).range(n));if(e!=null){var r=__e(e);if(r!=null)return r.domain(t).range(n),gI(r)}}var vI=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!EF(t)){for(var n,r,i=0;ir)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}},yI=l(Mme());function bI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xI(e){for(var t=1;te.cartesianAxis.xAxis[t],TI=(e,t)=>wI(e,t)??CI,EI={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:SI,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,width:60},DI=(e,t)=>e.cartesianAxis.yAxis[t],OI=(e,t)=>DI(e,t)??EI,x_e={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},kI=(e,t)=>e.cartesianAxis.zAxis[t]??x_e,AI=(e,t,n)=>{switch(t){case`xAxis`:return TI(e,n);case`yAxis`:return OI(e,n);case`zAxis`:return kI(e,n);case`angleAxis`:return QF(e,n);case`radiusAxis`:return $F(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},S_e=(e,t,n)=>{switch(t){case`xAxis`:return TI(e,n);case`yAxis`:return OI(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},jI=(e,t,n)=>{switch(t){case`xAxis`:return TI(e,n);case`yAxis`:return OI(e,n);case`angleAxis`:return QF(e,n);case`radiusAxis`:return $F(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},MI=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function NI(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var PI=e=>e.graphicalItems.cartesianItems,C_e=VD([sI,cI],NI),FI=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0?!0:!e.hide),II=VD([PI,AI,C_e],FI,{memoizeOptions:{resultEqualityCheck:pI}}),LI=VD([II],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(dI)),RI=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),w_e=VD([II],RI),zI=e=>e.map(e=>e.data).filter(Boolean).flat(1),T_e=VD([II],zI,{memoizeOptions:{resultEqualityCheck:pI}}),BI=(e,t)=>{var{chartData:n=[],dataStartIndex:r,dataEndIndex:i}=t;return e.length>0?e:n.slice(r,i+1)},VI=VD([T_e,wF],BI),HI=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:wk(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:wk(e,t.dataKey)})),UI=VD([VI,AI,II],HI);function WI(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function GI(e){if(ZE(e)||e instanceof Date){var t=Number(e);if(xk(t))return t}}function KI(e){if(Array.isArray(e)){var t=[GI(e[0]),GI(e[1])];return EF(t)?t:void 0}var n=GI(e);if(n!=null)return[n,n]}function qI(e){return e.map(GI).filter(aD)}function E_e(e,t,n){return!n||typeof t!=`number`||JE(t)||!n.length?[]:qI(n.flatMap(n=>{var r=wk(e,n.dataKey),i,a;if(Array.isArray(r)?[i,a]=r:i=a=r,!(!xk(i)||!xk(a)))return[t-i,t+a]}))}var JI=e=>jI(e,mI(e),hI(e)),YI=VD([JI],e=>e?.dataKey),D_e=VD([LI,wF,JI],uI),XI=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var[i,a]=t,o=r?[...a].reverse():a;return[i,{stackedData:Vde(e,o.map(lI),n),graphicalItems:o}]}))},ZI=VD([D_e,LI,LF,RF],XI),QI=(e,t,n,r)=>{var{dataStartIndex:i,dataEndIndex:a}=t;if(r==null&&n!==`zAxis`){var o=Gde(e,i,a);if(!(o!=null&&o[0]===0&&o[1]===0))return o}},O_e=VD([AI],e=>e.allowDataOverflow),$I=e=>{if(e==null||!(`domain`in e))return SI;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=qI(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??SI},eL=VD([AI],$I),tL=VD([eL,O_e],OF),k_e=VD([ZI,SF,sI,tL],QI,{memoizeOptions:{resultEqualityCheck:fI}}),nL=e=>e.errorBars,A_e=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>WI(n,e)),rL=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},iL=(e,t,n,r,i)=>{var a,o;if(n.length>0&&e.forEach(e=>{n.forEach(n=>{var s=r[n.id]?.filter(e=>WI(i,e)),c=wk(e,t.dataKey??n.dataKey),l=E_e(e,c,s);if(l.length>=2){var u=Math.min(...l),d=Math.max(...l);(a==null||uo)&&(o=d)}var f=KI(c);f!=null&&(a=a==null?f[0]:Math.min(a,f[0]),o=o==null?f[1]:Math.max(o,f[1]))})}),t?.dataKey!=null&&e.forEach(e=>{var n=KI(wk(e,t.dataKey));n!=null&&(a=a==null?n[0]:Math.min(a,n[0]),o=o==null?n[1]:Math.max(o,n[1]))}),xk(a)&&xk(o))return[a,o]},j_e=VD([VI,AI,w_e,nL,sI],iL,{memoizeOptions:{resultEqualityCheck:fI}});function M_e(e){var{value:t}=e;if(ZE(t)||t instanceof Date)return t}var N_e=(e,t,n)=>{var r=e.map(M_e).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&eD(r))?(0,yI.default)(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},aL=e=>e.referenceElements.dots,oL=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),P_e=VD([aL,sI,cI],oL),sL=e=>e.referenceElements.areas,F_e=VD([sL,sI,cI],oL),cL=e=>e.referenceElements.lines,I_e=VD([cL,sI,cI],oL),lL=(e,t)=>{if(e!=null){var n=qI(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},L_e=VD(P_e,sI,lL),uL=(e,t)=>{if(e!=null){var n=qI(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},R_e=VD([F_e,sI],uL);function z_e(e){if(e.x!=null)return qI([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:qI(t)}function B_e(e){if(e.y!=null)return qI([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:qI(t)}var dL=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?z_e(e):B_e(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},V_e=VD(L_e,VD([I_e,sI],dL),R_e,(e,t,n)=>rL(e,n,t)),fL=(e,t,n,r,i,a,o,s)=>n??o_e(t,o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?rL(r,a,i):rL(a,i),e.allowDataOverflow),H_e=VD([AI,eL,tL,k_e,j_e,V_e,uA,sI],fL,{memoizeOptions:{resultEqualityCheck:fI}}),U_e=[0,1],pL=(e,t,n,r,i,a,o)=>{if(!((e==null||n==null||n.length===0)&&o===void 0)){var{dataKey:s,type:c}=e,l=Tk(t,a);return l&&s==null?(0,yI.default)(0,n?.length??0):c===`category`?N_e(r,e,l):i===`expand`?U_e:o}},mL=VD([AI,uA,VI,UI,LF,sI,H_e],pL);function W_e(e){return e in xF}var hL=(e,t,n)=>{if(e!=null){var{scale:r,type:i}=e;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`){var a=`scale${iD(r)}`;return W_e(a)?a:`point`}}},gL=VD([AI,MI,zF],hL);function _L(e,t,n,r){if(!(n==null||r==null))return typeof e.scale==`function`?_I(e.scale,n,r):_I(t,n,r)}var vL=(e,t,n)=>{var r=$I(t);if(!(n!==`auto`&&n!==`linear`)){if(t!=null&&t.tickCount&&Array.isArray(r)&&(r[0]===`auto`||r[1]===`auto`)&&EF(e))return c_e(e,t.tickCount,t.allowDecimals);if(t!=null&&t.tickCount&&t.type===`number`&&EF(e))return l_e(e,t.tickCount,t.allowDecimals)}},yL=VD([mL,jI,gL],vL),bL=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&EF(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},G_e=VD([AI,mL,yL,sI],bL),xL=VD(VD(UI,AI,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(qI(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;si,(e,t,n,r,i)=>{if(!xk(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=$E(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),K_e=(e,t,n)=>{var r=TI(e,t);return r==null||typeof r.padding!=`string`?0:xL(e,`xAxis`,t,n,r.padding)},q_e=(e,t,n)=>{var r=OI(e,t);return r==null||typeof r.padding!=`string`?0:xL(e,`yAxis`,t,n,r.padding)},J_e=VD(TI,K_e,(e,t)=>{if(e==null)return{left:0,right:0};var{padding:n}=e;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),Y_e=VD(OI,q_e,(e,t)=>{if(e==null)return{top:0,bottom:0};var{padding:n}=e;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),X_e=VD([Wk,J_e,Jk,qk,(e,t,n)=>n],(e,t,n,r,i)=>{var{padding:a}=r;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),Z_e=VD([Wk,uA,Y_e,Jk,qk,(e,t,n)=>n],(e,t,n,r,i,a)=>{var{padding:o}=i;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),SL=(e,t,n,r)=>{switch(t){case`xAxis`:return X_e(e,n,r);case`yAxis`:return Z_e(e,n,r);case`zAxis`:return kI(e,n)?.range;case`angleAxis`:return iI(e);case`radiusAxis`:return aI(e,n);default:return}},CL=VD([AI,SL],KF),wL=VD([AI,gL,VD([gL,G_e],vI),CL],_L);VD([II,nL,sI],A_e);function TL(e,t){return e.idt.id)}var EL=(e,t)=>t,DL=(e,t,n)=>n,Q_e=VD(zk,EL,DL,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(TL)),$_e=VD(Bk,EL,DL,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(TL)),OL=(e,t)=>({width:e.width,height:t.height}),eve=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),kL=VD(Wk,TI,OL),tve=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},nve=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},rve=VD(Lk,Wk,Q_e,EL,DL,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=OL(t,n);o??=tve(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),ive=VD(Ik,Wk,$_e,EL,DL,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=eve(t,n);o??=nve(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),ave=VD([Wk,TI,(e,t)=>{var n=TI(e,t);if(n!=null)return rve(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),ove=VD([Wk,OI,(e,t)=>{var n=OI(e,t);if(n!=null)return ive(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),AL=VD(Wk,OI,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),jL=(e,t,n)=>{switch(t){case`xAxis`:return kL(e,n).width;case`yAxis`:return AL(e,n).height;default:return}},ML=(e,t,n,r)=>{if(n!=null){var{allowDuplicatedCategory:i,type:a,dataKey:o}=n,s=Tk(e,r),c=t.map(e=>e.value);if(o&&s&&a===`category`&&i&&eD(c))return c}},NL=VD([uA,UI,AI,sI],ML),PL=(e,t,n,r)=>{if(!(n==null||n.dataKey==null)){var{type:i,scale:a}=n;if(Tk(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},FL=VD([uA,UI,jI,sI],PL),IL=VD([uA,S_e,gL,wL,NL,FL,SL,yL,sI],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=Tk(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}}),LL=VD([uA,jI,gL,wL,yL,SL,NL,FL,sI],(e,t,n,r,i,a,o,s,c)=>{if(!(t==null||r==null)){var l=Tk(e,c),{type:u,ticks:d,tickCount:f}=t,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?qE(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return xk(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(aD):l&&s?s.map((e,t)=>{var n=r.map(e);return xk(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(aD):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return xk(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(aD):r.domain().map((e,t)=>{var n=r.map(e);return xk(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(aD)}}),RL=VD([uA,jI,wL,SL,NL,FL,sI],(e,t,n,r,i,a,o)=>{if(!(t==null||n==null||r==null||r[0]===r[1])){var s=Tk(e,o),{tickCount:c}=t,l=0;return l=o===`angleAxis`&&r?.length>=2?qE(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return xk(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(aD):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return xk(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(aD):n.domain().map((e,t)=>{var r=n.map(e);return xk(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(aD)}}),zL=VD(AI,wL,(e,t)=>{if(!(e==null||t==null))return xI(xI({},e),{},{scale:t})});VD((e,t,n)=>kI(e,n),VD([AI,gL,mL,CL],_L),(e,t)=>{if(!(e==null||t==null))return xI(xI({},e),{},{scale:t})});var sve=VD([uA,zk,Bk],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}}),BL=e=>e.options.defaultTooltipEventType,VL=e=>e.options.validateTooltipEventTypes;function HL(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function UL(e,t){return HL(t,BL(e),VL(e))}function cve(e){return ID(t=>UL(t,e))}var WL=(e,t)=>{var n,r=Number(t);if(!(JE(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},lve=e=>e.tooltip.settings,GL={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},KL=sk({name:`tooltip`,initialState:{itemInteraction:{click:GL,hover:GL},axisInteraction:{click:GL,hover:GL},keyboardInteraction:GL,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(ej(t.payload))},prepare:ok()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:n,next:r}=t.payload,i=rk(e).tooltipItemPayloads.indexOf(ej(n));i>-1&&(e.tooltipItemPayloads[i]=ej(r))},prepare:ok()},removeTooltipEntrySettings:{reducer(e,t){var n=rk(e).tooltipItemPayloads.indexOf(ej(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:ok()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:uve,replaceTooltipEntrySettings:dve,removeTooltipEntrySettings:fve,setTooltipSettingsState:pve,setActiveMouseOverItemIndex:qL,mouseLeaveItem:mve,mouseLeaveChart:JL,setActiveClickItemIndex:hve,setMouseOverAxisIndex:YL,setMouseClickAxisIndex:gve,setSyncInteraction:XL,setKeyboardInteraction:ZL}=KL.actions,_ve=KL.reducer;function QL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $L(e){for(var t=1;t{if(t==null)return GL;var i=xve(e,t,n);if(i==null)return GL;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(Sve(i)){if(a)return $L($L({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return $L($L({},GL),{},{coordinate:i.coordinate})};function Cve(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function wve(e,t){var n=Cve(e),r=t[0],i=t[1];return n===void 0?!1:n>=Math.min(r,i)&&n<=Math.max(r,i)}function Tve(e,t,n){if(n==null||t==null)return!0;var r=wk(e,t);return r==null||!EF(n)?!0:wve(r,n)}var tR=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!xk(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||Tve(l,n,r)?String(c):null},nR=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},rR=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(i==null&&r!=null){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},iR=e=>e.options.tooltipPayloadSearcher,aR=e=>e.tooltip;function oR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sR(e){for(var t=1;t{if(!(t==null||a==null)){var{chartData:s,computedData:c,dataStartIndex:l,dataEndIndex:u}=n;return e.reduce((e,n)=>{var{dataDefinedOnItem:d,settings:f}=n,p=kve(d,s),m=Array.isArray(p)?Nde(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_=r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?nD(m,r,i):a(m,t,c,g);return Array.isArray(_)?_.forEach(t=>{var n=sR(sR({},f),{},{name:t.name,unit:t.unit,color:void 0,fill:void 0});e.push(Pk({tooltipEntrySettings:n,dataKey:t.dataKey,payload:t.payload,value:wk(t.payload,t.dataKey),name:t.name}))}):e.push(Pk({tooltipEntrySettings:f,dataKey:h,payload:_,value:wk(_,h),name:wk(_,g)??f?.name})),e},[])}},lR=VD([JI,MI,zF],hL),uR=VD([VD([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),JI,VD([mI,hI],NI)],FI,{memoizeOptions:{resultEqualityCheck:pI}}),Ave=VD([uR],e=>e.filter(dI)),dR=VD([VD([uR],zI,{memoizeOptions:{resultEqualityCheck:pI}}),SF],BI),jve=VD([Ave,SF,JI],uI),fR=VD([dR,JI,uR],HI),pR=VD([JI],$I),mR=VD([pR,VD([JI],e=>e.allowDataOverflow)],OF),Mve=VD([VD([jve,VD([uR],e=>e.filter(dI)),LF,RF],XI),SF,mI,mR],QI),Nve=VD([dR,JI,VD([uR],RI),nL,mI],iL,{memoizeOptions:{resultEqualityCheck:fI}}),Pve=VD([VD([aL,mI,hI],oL),mI],lL),Fve=VD([VD([sL,mI,hI],oL),mI],uL),hR=VD([JI,uA,dR,fR,LF,mI,VD([JI,pR,mR,Mve,Nve,VD([Pve,VD([VD([cL,mI,hI],oL),mI],dL),Fve],rL),uA,mI],fL)],pL),Ive=VD([JI,hR,VD([hR,JI,lR],vL),mI],bL),gR=e=>SL(e,mI(e),hI(e),!1),_R=VD([JI,gR],KF),vR=VD([JI,lR,Ive,_R],_L),yR=VD([uA,JI,lR,vR,gR,VD([uA,fR,JI,mI],ML),VD([uA,fR,JI,mI],PL),mI],(e,t,n,r,i,a,o,s)=>{if(t){var{type:c}=t,l=Tk(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?qE(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return xk(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(aD):r.domain().map((e,t)=>{var n=r.map(e);return xk(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(aD)}}}),bR=VD([BL,VL,lve],(e,t,n)=>HL(n.shared,e,t)),xR=e=>e.tooltip.settings.trigger,SR=e=>e.tooltip.settings.defaultIndex,CR=VD([aR,bR,xR,SR],eR),wR=VD([CR,dR,YI,hR],tR),TR=VD([yR,wR],WL),ER=VD([CR],e=>{if(e)return e.dataKey}),Lve=VD([CR],e=>{if(e)return e.graphicalItemId}),DR=VD([aR,bR,xR,SR],rR),Rve=VD([CR,VD([Ik,Lk,uA,Wk,yR,SR,DR],nR)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),zve=VD([CR],e=>e?.active??!1),Bve=VD([VD([DR,wR,SF,YI,TR,iR,bR],cR)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function OR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kR(e){for(var t=1;tID(JI),Gve=()=>{var e=Wve(),t=ID(yR),n=ID(vR);return Nk(!e||!n?void 0:kR(kR({},e),{},{scale:n}),t)};function AR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jR(e){for(var t=1;t{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.chartY};if(e===`vertical`)return{x:r.chartX,y:i.coordinate}}return{x:0,y:0}},Xve=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,{radius:o}=r;return jR(jR(jR({},r),sM(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,{angle:c}=r;return jR(jR(jR({},r),sM(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function Zve(e,t){var{chartX:n,chartY:r}=e;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var MR=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=0;o0?n[o-1]?.coordinate:n[a-1]?.coordinate,c=n[o]?.coordinate,l=o>=a-1?n[0]?.coordinate:n[o+1]?.coordinate,u=void 0;if(!(s==null||c==null||l==null))if(qE(c-s)!==qE(l-c)){var d=[];if(qE(l-c)===qE(i[1]-i[0])){u=l;var f=c+i[1]-i[0];d[0]=Math.min(f,(f+s)/2),d[1]=Math.max(f,(f+s)/2)}else{u=s;var p=l+i[1]-i[0];d[0]=Math.min(c,(p+c)/2),d[1]=Math.max(c,(p+c)/2)}var m=[Math.min(c,(u+c)/2),Math.max(c,(u+c)/2)];if(e>m[0]&&e<=m[1]||e>=d[0]&&e<=d[1])return n[o]?.index}else{var h=Math.min(s,l),g=Math.max(s,l);if(e>(h+c)/2&&e<=(g+c)/2)return n[o]?.index}}else if(t)for(var _=0;_(v.coordinate+b.coordinate)/2||_>0&&_(v.coordinate+b.coordinate)/2&&e<=(v.coordinate+y.coordinate)/2)return v.index}}return-1},NR=()=>ID(zF),PR=(e,t)=>t,FR=(e,t,n)=>n,IR=(e,t,n,r)=>r,Qve=VD(yR,e=>(0,WD.default)(e,e=>e.coordinate)),LR=VD([aR,PR,FR,IR],eR),RR=VD([LR,dR,YI,hR],tR),$ve=(e,t,n)=>{if(t!=null){var r=aR(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},zR=VD([aR,PR,FR,IR],rR),BR=VD([Ik,Lk,uA,Wk,yR,IR,zR],nR),eye=VD([LR,BR],(e,t)=>e.coordinate??t),VR=VD([yR,RR],WL),tye=VD([zR,RR,SF,YI,VR,iR,PR],cR),nye=VD([LR,RR],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),rye=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&Zve(e,o)){var s=MR(Kde(e,t),a,i,n,r),c=Yve(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},iye=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=_me(e,n);if(s){var c=MR(qde(s,t),o,a,r,i),l=Xve(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},aye=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?rye(e,t,r,i,a,o,s):iye(e,t,n,r,i,a,o)},oye=VD(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),sye=VD(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(UF));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:g_e}});function HR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UR(e){for(var t=1;tUR(UR({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},fye=new Set(Object.values(UF));function pye(e){return fye.has(e)}var WR=sk({name:`zIndex`,initialState:dye,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:ok()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!pye(n)&&delete e.zIndexMap[n])},prepare:ok()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n,element:r,isPanorama:i}=t.payload;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=ej(r):e.zIndexMap[n].element=ej(r):e.zIndexMap[n]={consumers:0,element:i?void 0:ej(r),panoramaElement:i?ej(r):void 0}},prepare:ok()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:ok()}}}),{registerZIndexPortal:mye,unregisterZIndexPortal:hye,registerZIndexPortalElement:gye,unregisterZIndexPortalElement:_ye}=WR.actions,vye=WR.reducer;function GR(e){var{zIndex:t,children:n}=e,r=Tfe()&&t!==void 0&&t!==0,i=Kk(),a=PD();(0,y.useLayoutEffect)(()=>r?(a(mye({zIndex:t})),()=>{a(hye({zIndex:t}))}):oD,[a,t,r]);var o=ID(e=>oye(e,t,i));return r?o?(0,At.createPortal)(n,o):null:n}function KR(){return KR=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,y.useContext)(YR),Eye=l(o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!JE(n))return e[n]}},ez=sk({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),Dye=ez.reducer,{createEventEmitter:Oye}=ez.actions;function kye(e){return e.tooltip.syncInteraction}var tz=sk({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=ej(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:n,endIndex:r}=t.payload;n!=null&&(e.dataStartIndex=n),r!=null&&(e.dataEndIndex=r)}}}),{setChartData:nz,setDataStartEndIndexes:Aye,setComputedData:jye}=tz.actions,Mye=tz.reducer,Nye=[`x`,`y`];function rz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iz(e){for(var t=1;t{if(e==null)return oD;var s=(s,c,l)=>{if(t!==l&&e===s){if(r===`index`){var u;if(o&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,{x:f,y:p}=d,m=Lye(d,Nye),{x:h,y:g,width:_,height:v}=c.payload.sourceViewBox,y=iz(iz({},m),{},{x:o.x+(_?(f-h)/_:0)*o.width,y:o.y+(v?(p-g)/v:0)*o.height});n(iz(iz({},c),{},{payload:iz(iz({},c.payload),{},{coordinate:y})}))}else n(c);return}if(i!=null){var b;typeof r==`function`?b=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(b=i.find(e=>String(e.value)===c.payload.label));var{coordinate:x}=c.payload;if(b==null||c.payload.active===!1||x==null||o==null){n(XL({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}var{x:S,y:C}=x,w=Math.min(S,o.x+o.width),T=Math.min(C,o.y+o.height),E={x:a===`horizontal`?b.coordinate:w,y:a===`horizontal`?T:b.coordinate};n(XL({active:c.payload.active,coordinate:E,dataKey:c.payload.dataKey,index:String(b.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return XR.on(ZR,s),()=>{XR.off(ZR,s)}},[ID(e=>e.rootProps.className),n,t,e,r,i,a,o])}function Bye(){var e=ID(BF),t=ID(HF),n=PD();(0,y.useEffect)(()=>{if(e==null)return oD;var r=(r,i,a)=>{t!==a&&e===r&&n(Aye(i))};return XR.on(QR,r),()=>{XR.off(QR,r)}},[n,t,e])}function Vye(){var e=PD();(0,y.useEffect)(()=>{e(Oye())},[e]),zye(),Bye()}function Hye(e,t,n,r,i,a){var o=ID(n=>$ve(n,e,t)),s=ID(HF),c=ID(BF),l=ID(VF),u=ID(kye)?.active,d=oA();(0,y.useEffect)(()=>{if(!u&&c!=null&&s!=null){var e=XL({active:a,coordinate:n,dataKey:o,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:d,graphicalItemId:void 0});XR.emit(ZR,c,e,s)}},[u,n,o,i,r,s,c,l,a,d])}function az(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oz(e){for(var t=1;t{S(pve({shared:g,trigger:_,axisId:x,active:n,defaultIndex:C}))},[S,g,_,x,n,C]);var w=oA(),T=yj(),E=cve(g),{activeIndex:D,isActive:O}=ID(e=>nye(e,E,_,C))??{},k=ID(e=>tye(e,E,_,C)),A=ID(e=>VR(e,E,_,C)),j=ID(e=>eye(e,E,_,C)),M=k,N=Tye(),P=n??O??!1,[F,I]=qD([M,P]),L=E===`axis`?A:void 0;Hye(E,_,j,L,D,P);var R=b??N;if(R==null||w==null||E==null)return null;var z=M??sz;P||(z=sz),s&&z.length&&(z=jD(z.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),u,Kye));var B=z.length>0,V=y.createElement(cpe,{allowEscapeViewBox:r,animationDuration:i,animationEasing:a,isAnimationActive:c,active:P,coordinate:j,hasPayload:B,offset:l,position:d,reverseDirection:f,useTranslate3d:p,viewBox:w,wrapperStyle:m,lastBoundingBox:F,innerRef:I,hasPortalFromProps:!!b},qye(o,oz(oz({},t),{},{payload:z,label:L,active:P,activeIndex:D,coordinate:j,accessibilityLayer:T})));return y.createElement(y.Fragment,null,(0,At.createPortal)(V,R),P&&y.createElement(wye,{cursor:h,tooltipEventType:E,coordinate:j,payload:z,index:D}))}var lz=e=>null;lz.displayName=`Cell`;function Yye(e,t,n){return(t=Xye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xye(e){var t=Zye(e,`string`);return typeof t==`symbol`?t:t+``}function Zye(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Qye=class{constructor(e){Yye(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function uz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $ye(e){for(var t=1;t{try{var n=document.getElementById(pz);n||(n=document.createElement(`span`),n.setAttribute(`id`,pz),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,rbe,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},hz=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Gj.isSsr)return{width:0,height:0};if(!dz.enableCache)return mz(e,t);var n=ibe(e,t),r=fz.get(n);if(r)return r;var i=mz(e,t);return fz.set(n,i),i},gz;function abe(e,t,n){return(t=obe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function obe(e){var t=sbe(e,`string`);return typeof t==`symbol`?t:t+``}function sbe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var _z=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,vz=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,cbe=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,lbe=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,ube={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},dbe=[`cm`,`mm`,`pt`,`pc`,`in`,`Q`,`px`];function fbe(e){return dbe.includes(e)}var yz=`NaN`;function pbe(e,t){return e*ube[t]}var bz=class e{static parse(t){var[,n,r]=lbe.exec(t)??[];return n==null?e.NaN:new e(parseFloat(n),r??``)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,JE(e)&&(this.unit=``),t!==``&&!cbe.test(t)&&(this.num=NaN,this.unit=``),fbe(t)&&(this.num=pbe(e,t),this.unit=`px`)}add(t){return this.unit===t.unit?new e(this.num+t.num,this.unit):new e(NaN,``)}subtract(t){return this.unit===t.unit?new e(this.num-t.num,this.unit):new e(NaN,``)}multiply(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num/t.num,this.unit||t.unit)}toString(){return`${this.num}${this.unit}`}isNaN(){return JE(this.num)}};gz=bz,abe(bz,`NaN`,new gz(NaN,``));function xz(e){if(e==null||e.includes(yz))return yz;for(var t=e;t.includes(`*`)||t.includes(`/`);){var[,n,r,i]=_z.exec(t)??[],a=bz.parse(n??``),o=bz.parse(i??``),s=r===`*`?a.multiply(o):a.divide(o);if(s.isNaN())return yz;t=t.replace(_z,s.toString())}for(;t.includes(`+`)||/.-\d+(?:\.\d+)?/.test(t);){var[,c,l,u]=vz.exec(t)??[],d=bz.parse(c??``),f=bz.parse(u??``),p=l===`+`?d.add(f):d.subtract(f);if(p.isNaN())return yz;t=t.replace(vz,p.toString())}return t}var Sz=/\(([^()]*)\)/;function mbe(e){for(var t=e,n;(n=Sz.exec(t))!=null;){var[,r]=n;t=t.replace(Sz,xz(r))}return t}function hbe(e){var t=e.replace(/\s+/g,``);return t=mbe(t),t=xz(t),t}function gbe(e){try{return hbe(e)}catch{return yz}}function Cz(e){var t=gbe(e.slice(5,-1));return t===yz?``:t}var _be=[`x`,`y`,`lineHeight`,`capHeight`,`fill`,`scaleToFit`,`textAnchor`,`verticalAnchor`],vbe=[`dx`,`dy`,`angle`,`className`,`breakAll`];function wz(){return wz=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:t,breakAll:n,style:r}=e;try{var i=[];return rD(t)||(i=n?t.toString().split(``):t.toString().split(Ez)),{wordsWithComputedWidth:i.map(e=>({word:e,width:hz(e,r).width})),spaceWidth:n?0:hz(`\xA0`,r).width}}catch{return null}};function bbe(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}var Oz=(e,t,n,r)=>e.reduce((e,i)=>{var{word:a,width:o}=i,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+ne.reduce((e,t)=>e.width>t.width?e:t),xbe=`…`,Az=(e,t,n,r,i,a,o,s)=>{var c=Dz({breakAll:n,style:r,children:e.slice(0,t)+xbe});if(!c)return[!1,[]];var l=Oz(c.wordsWithComputedWidth,a,o,s);return[l.length>i||kz(l).width>Number(a),l]},Sbe=(e,t,n,r,i)=>{var{maxLines:a,children:o,style:s,breakAll:c}=e,l=XE(a),u=String(o),d=Oz(t,r,n,i);if(!l||i||!(d.length>a||kz(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),[_,v]=Az(u,g-1,c,s,a,r,n,i),[y]=Az(u,g,c,s,a,r,n,i);if(!_&&!y&&(f=g+1),_&&y&&(p=g-1),!_&&y){h=v;break}m++}return h||d},jz=e=>[{words:rD(e)?[]:e.toString().split(Ez),width:void 0}],Cbe=e=>{var{width:t,scaleToFit:n,children:r,style:i,breakAll:a,maxLines:o}=e;if((t||n)&&!Gj.isSsr){var s,c,l=Dz({breakAll:a,children:r,style:i});if(l){var{wordsWithComputedWidth:u,spaceWidth:d}=l;s=u,c=d}else return jz(r);return Sbe({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return jz(r)},Mz=`#808080`,wbe={angle:0,breakAll:!1,capHeight:`0.71em`,fill:Mz,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},Nz=(0,y.forwardRef)((e,t)=>{var n=gD(e,wbe),{x:r,y:i,lineHeight:a,capHeight:o,fill:s,scaleToFit:c,textAnchor:l,verticalAnchor:u}=n,d=Tz(n,_be),f=(0,y.useMemo)(()=>Cbe({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),{dx:p,dy:m,angle:h,className:g,breakAll:_}=d,v=Tz(d,vbe);if(!ZE(r)||!ZE(i)||f.length===0)return null;var b=Number(r)+(XE(p)?p:0),x=Number(i)+(XE(m)?m:0);if(!xk(b)||!xk(x))return null;var S;switch(u){case`start`:S=Cz(`calc(${o})`);break;case`middle`:S=Cz(`calc(${(f.length-1)/2} * -${a} + (${o} / 2))`);break;default:S=Cz(`calc(${f.length-1} * -${a})`);break}var C=[],w=f[0];if(c&&w!=null){var T=w.width,{width:E}=d;C.push(`scale(${XE(E)&&XE(T)?E/T:1})`)}return h&&C.push(`rotate(${h}, ${b}, ${x})`),C.length&&(v.transform=C.join(` `)),y.createElement(`text`,wz({},UT(v),{ref:t,x:b,y:x,className:LT(`recharts-text`,g),textAnchor:l,fill:s.includes(`url`)?Mz:s}),f.map((e,t)=>{var n=e.words.join(_?``:` `);return y.createElement(`tspan`,{x:b,dy:t===0?S:a,key:`${n}-${t}`},n)}))});Nz.displayName=`Text`;function Pz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fz(e){for(var t=1;t{var{viewBox:t,position:n,offset:r=0,parentViewBox:i,clamp:a}=e,{x:o,y:s,height:c,upperWidth:l,lowerWidth:u}=aA(t),d=o,f=o+(l-u)/2,p=(d+f)/2,m=(l+u)/2,h=d+l/2,g=c>=0?1:-1,_=g*r,v=g>0?`end`:`start`,y=g>0?`start`:`end`,b=l>=0?1:-1,x=b*r,S=b>0?`end`:`start`,C=b>0?`start`:`end`,w=i;if(n===`top`){var T={x:d+l/2,y:s-_,horizontalAnchor:`middle`,verticalAnchor:v};return a&&w&&(T.height=Math.max(s-w.y,0),T.width=l),T}if(n===`bottom`){var E={x:f+u/2,y:s+c+_,horizontalAnchor:`middle`,verticalAnchor:y};return a&&w&&(E.height=Math.max(w.y+w.height-(s+c),0),E.width=u),E}if(n===`left`){var D={x:p-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`};return a&&w&&(D.width=Math.max(D.x-w.x,0),D.height=c),D}if(n===`right`){var O={x:p+m+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`};return a&&w&&(O.width=Math.max(w.x+w.width-O.x,0),O.height=c),O}var k=a&&w?{width:m,height:c}:{};return n===`insideLeft`?Fz({x:p+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`},k):n===`insideRight`?Fz({x:p+m-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`},k):n===`insideTop`?Fz({x:d+l/2,y:s+_,horizontalAnchor:`middle`,verticalAnchor:y},k):n===`insideBottom`?Fz({x:f+u/2,y:s+c-_,horizontalAnchor:`middle`,verticalAnchor:v},k):n===`insideTopLeft`?Fz({x:d+x,y:s+_,horizontalAnchor:C,verticalAnchor:y},k):n===`insideTopRight`?Fz({x:d+l-x,y:s+_,horizontalAnchor:S,verticalAnchor:y},k):n===`insideBottomLeft`?Fz({x:f+x,y:s+c-_,horizontalAnchor:C,verticalAnchor:v},k):n===`insideBottomRight`?Fz({x:f+u-x,y:s+c-_,horizontalAnchor:S,verticalAnchor:v},k):n&&typeof n==`object`&&(XE(n.x)||YE(n.x))&&(XE(n.y)||YE(n.y))?Fz({x:o+$E(n.x,m),y:s+$E(n.y,c),horizontalAnchor:`end`,verticalAnchor:`end`},k):Fz({x:h,y:s+c/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},k)},kbe=[`labelRef`],Abe=[`content`];function Iz(e,t){if(e==null)return{};var n,r,i=jbe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o,children:s}=e,c=(0,y.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o}),[t,n,r,i,a,o]);return y.createElement(Bz.Provider,{value:c},s)},Hz=()=>{var e=(0,y.useContext)(Bz),t=oA();return e||(t?aA(t):void 0)},Fbe=(0,y.createContext)(null),Ibe=()=>{var e=(0,y.useContext)(Fbe),t=ID(oI);return e||t},Lbe=e=>{var{value:t,formatter:n}=e,r=rD(e.children)?t:e.children;return typeof n==`function`?n(r):r},Uz=e=>e!=null&&typeof e==`function`,Rbe=(e,t)=>qE(t-e)*Math.min(Math.abs(t-e),360),zbe=(e,t,n,r,i)=>{var{offset:a,className:o}=e,{cx:s,cy:c,innerRadius:l,outerRadius:u,startAngle:d,endAngle:f,clockWise:p}=i,m=(l+u)/2,h=Rbe(d,f),g=h>=0?1:-1,_,v;switch(t){case`insideStart`:_=d+g*a,v=p;break;case`insideEnd`:_=f-g*a,v=!p;break;case`end`:_=f+g*a,v=p;break;default:throw Error(`Unsupported position ${t}`)}v=h<=0?v:!v;var b=sM(s,c,m,_),x=sM(s,c,m,_+(v?1:-1)*359),S=`M${b.x},${b.y} + A`,`,`,`,0,0,`,`,`,`,`,`Z`]),C.x,C.y,a,a,+(u<0),S.x,S.y,r,r,+(T>180),+(u>0),y.x,y.y,a,a,+(u<0),b.x,b.y)}else v+=GE(Tme||=uM([`L`,`,`,`Z`]),t,n);return v},Ome={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},pM=e=>{var t=gD(e,Ome),{cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:o,forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u,className:d}=t;if(a0&&Math.abs(l-u)<360?Dme({cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:Math.min(m,p/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u}):fM({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:l,endAngle:u});return y.createElement(`path`,lM({},UT(t),{className:f,d:h}))};function kme(e,t,n){if(e===`horizontal`)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e===`vertical`)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(fD(t)){if(e===`centric`){var{cx:r,cy:i,innerRadius:a,outerRadius:o,angle:s}=t,c=oM(r,i,a,s),l=oM(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return cM(t)}}var Ame=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=VD();function n(e){return t.isSymbol(e)?NaN:Number(e)}e.toNumber=n})),jme=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Ame();function n(e){return e?(e=t.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}e.toFinite=n})),Mme=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=HD(),n=jme();function r(e,r,i){i&&typeof i!=`number`&&t.isIterateeCall(e,r,i)&&(r=i=void 0),e=n.toFinite(e),r===void 0?(r=e,e=0):r=n.toFinite(r),i=i===void 0?e{t.exports=Mme().range}));function mM(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Pme(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function hM(e){let t,n,r;e.length===2?(t=e===mM||e===Pme?e:Fme,n=e,r=e):(t=mM,n=(t,n)=>mM(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i>>1;n(e[t],r)<0?i=t+1:a=t}while(i>>1;n(e[t],r)<=0?i=t+1:a=t}while(in&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function Fme(){return 0}function gM(e){return e===null?NaN:+e}function*Ime(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var _M=hM(mM),vM=_M.right;_M.left,hM(gM).center;var yM=class extends Map{constructor(e,t=zme){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(bM(this,e))}has(e){return super.has(bM(this,e))}set(e,t){return super.set(Lme(this,e),t)}delete(e){return super.delete(Rme(this,e))}};function bM({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function Lme({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Rme({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function zme(e){return typeof e==`object`&&e?e.valueOf():e}function Bme(e=mM){if(e===mM)return xM;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function xM(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et))}var Vme=Math.sqrt(50),Hme=Math.sqrt(10),Ume=Math.sqrt(2);function SM(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=Vme?10:a>=Hme?5:a>=Ume?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/lt&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*lt&&--c),c0))return[];if(e===t)return[e];let r=t=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function DM(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function OM(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?xM:Bme(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));OM(e,t,u,d,i)}let a=e[t],o=n,s=r;for(kM(e,n,t),i(e[r],a)>0&&kM(e,n,r);o0;)--s}i(e[n],a)===0?kM(e,n,s):(++s,kM(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function kM(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Wme(e,t,n){if(e=Float64Array.from(Ime(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return DM(e);if(t>=1)return EM(e);var r,i=(r-1)*t,a=Math.floor(i),o=EM(OM(e,a).subarray(0,a+1));return o+(DM(e.subarray(a+1))-o)*(i-a)}}function Gme(e,t,n=gM){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function Kme(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?YM(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?YM(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Yme.exec(e))?new ZM(t[1],t[2],t[3],1):(t=Xme.exec(e))?new ZM(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Zme.exec(e))?YM(t[1],t[2],t[3],t[4]):(t=Qme.exec(e))?YM(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=$me.exec(e))?rN(t[1],t[2]/100,t[3]/100,1):(t=ehe.exec(e))?rN(t[1],t[2]/100,t[3]/100,t[4]):WM.hasOwnProperty(e)?JM(WM[e]):e===`transparent`?new ZM(NaN,NaN,NaN,0):null}function JM(e){return new ZM(e>>16&255,e>>8&255,e&255,1)}function YM(e,t,n,r){return r<=0&&(e=t=n=NaN),new ZM(e,t,n,r)}function rhe(e){return e instanceof RM||(e=qM(e)),e?(e=e.rgb(),new ZM(e.r,e.g,e.b,e.opacity)):new ZM}function XM(e,t,n,r){return arguments.length===1?rhe(e):new ZM(e,t,n,r??1)}function ZM(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}IM(ZM,XM,LM(RM,{brighter(e){return e=e==null?BM:BM**+e,new ZM(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?zM:zM**+e,new ZM(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ZM(tN(this.r),tN(this.g),tN(this.b),eN(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:QM,formatHex:QM,formatHex8:ihe,formatRgb:$M,toString:$M}));function QM(){return`#${nN(this.r)}${nN(this.g)}${nN(this.b)}`}function ihe(){return`#${nN(this.r)}${nN(this.g)}${nN(this.b)}${nN((isNaN(this.opacity)?1:this.opacity)*255)}`}function $M(){let e=eN(this.opacity);return`${e===1?`rgb(`:`rgba(`}${tN(this.r)}, ${tN(this.g)}, ${tN(this.b)}${e===1?`)`:`, ${e})`}`}function eN(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function tN(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function nN(e){return e=tN(e),(e<16?`0`:``)+e.toString(16)}function rN(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new aN(e,t,n,r)}function iN(e){if(e instanceof aN)return new aN(e.h,e.s,e.l,e.opacity);if(e instanceof RM||(e=qM(e)),!e)return new aN;if(e instanceof aN)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n0&&c<1?0:o,new aN(o,s,c,e.opacity)}function ahe(e,t,n,r){return arguments.length===1?iN(e):new aN(e,t,n,r??1)}function aN(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}IM(aN,ahe,LM(RM,{brighter(e){return e=e==null?BM:BM**+e,new aN(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?zM:zM**+e,new aN(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ZM(cN(e>=240?e-240:e+120,i,r),cN(e,i,r),cN(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new aN(oN(this.h),sN(this.s),sN(this.l),eN(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=eN(this.opacity);return`${e===1?`hsl(`:`hsla(`}${oN(this.h)}, ${sN(this.s)*100}%, ${sN(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function oN(e){return e=(e||0)%360,e<0?e+360:e}function sN(e){return Math.max(0,Math.min(1,e||0))}function cN(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var lN=e=>()=>e;function ohe(e,t){return function(n){return e+n*t}}function she(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function che(e){return(e=+e)==1?uN:function(t,n){return n-t?she(t,n,e):lN(isNaN(t)?n:t)}}function uN(e,t){var n=t-e;return n?ohe(e,n):lN(isNaN(e)?t:e)}var dN=(function e(t){var n=che(t);function r(e,t){var r=n((e=XM(e)).r,(t=XM(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=uN(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function lhe(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;in&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:fN(r,i)})),n=mN.lastIndex;return nt&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function bhe(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i2?xhe:bhe,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),fN))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,_N),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=gN,u()},d.clamp=function(e){return arguments.length?(o=e?!0:yN,u()):o!==yN},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function CN(){return SN()(yN,yN)}function She(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function wN(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function TN(e){return e=wN(Math.abs(e)),e?e[1]:NaN}function Che(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function whe(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var The=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function EN(e){if(!(t=The.exec(e)))throw Error(`invalid format: `+e);var t;return new DN({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}EN.prototype=DN.prototype;function DN(e){this.fill=e.fill===void 0?` `:e.fill+``,this.align=e.align===void 0?`>`:e.align+``,this.sign=e.sign===void 0?`-`:e.sign+``,this.symbol=e.symbol===void 0?``:e.symbol+``,this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?``:e.type+``}DN.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?`0`:``)+(this.width===void 0?``:Math.max(1,this.width|0))+(this.comma?`,`:``)+(this.precision===void 0?``:`.`+Math.max(0,this.precision|0))+(this.trim?`~`:``)+this.type};function Ehe(e){out:for(var t=e.length,n=1,r=-1,i;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var ON;function Dhe(e,t){var n=wN(e,t);if(!n)return ON=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(ON=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+wN(e,Math.max(0,t+a-1))[0]}function kN(e,t){var n=wN(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var AN={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:She,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>kN(e*100,t),r:kN,s:Dhe,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function jN(e){return e}var MN=Array.prototype.map,NN=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function Ohe(e){var t=e.grouping===void 0||e.thousands===void 0?jN:Che(MN.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?jN:whe(MN.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=EN(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):AN[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=AN[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=Ehe(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&ON!==void 0?NN[8+ON/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++op||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r;break}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(TN(t)/3)))*3,r=10**-n,i=l((e=EN(e),e.type=`f`,e),{suffix:NN[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var PN,FN,IN;khe({thousands:`,`,grouping:[3],currency:[`$`,``]});function khe(e){return PN=Ohe(e),FN=PN.format,IN=PN.formatPrefix,PN}function Ahe(e){return Math.max(0,-TN(Math.abs(e)))}function jhe(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(TN(t)/3)))*3-TN(Math.abs(e)))}function Mhe(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,TN(t)-TN(e))+1}function LN(e,t,n,r){var i=TM(e,t,n),a;switch(r=EN(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=jhe(i,o))&&(r.precision=a),IN(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=Mhe(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=Ahe(i))&&(r.precision=a-(r.type===`%`)*2);break}return FN(r)}function RN(e){var t=e.domain;return e.ticks=function(e){var n=t();return CM(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return LN(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s0;){if(l=wM(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function zN(){var e=CN();return e.copy=function(){return xN(e,zN())},AM.apply(e,arguments),RN(e)}function BN(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,_N),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return BN(e).unknown(t)},e=arguments.length?Array.from(e,_N):[0,1],RN(n)}function VN(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return ae**+t}function Lhe(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function WN(e){return(t,n)=>-e(-t,n)}function GN(e){let t=e(HN,UN),n=t.domain,r=10,i,a;function o(){return i=Lhe(r),a=Ihe(r),n()[0]<0?(i=WN(i),a=WN(a),e(Nhe,Phe)):e(HN,UN),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s0){for(;l<=u;++l)for(d=1;ds)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(fs)break;m.push(f)}m.length*2{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=EN(n)).precision==null&&(n.trim=!0),n=FN(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*rn(VN(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function KN(){let e=GN(SN()).domain([1,10]);return e.copy=()=>xN(e,KN()).base(e.base()),AM.apply(e,arguments),e}function qN(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function JN(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function YN(e){var t=1,n=e(qN(t),JN(t));return n.constant=function(n){return arguments.length?e(qN(t=+n),JN(t)):t},RN(n)}function XN(){var e=YN(SN());return e.copy=function(){return xN(e,XN()).constant(e.constant())},AM.apply(e,arguments)}function ZN(e){return function(t){return t<0?-((-t)**+e):t**+e}}function Rhe(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function zhe(e){return e<0?-e*e:e*e}function QN(e){var t=e(yN,yN),n=1;function r(){return n===1?e(yN,yN):n===.5?e(Rhe,zhe):e(ZN(n),ZN(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},RN(t)}function $N(){var e=QN(SN());return e.copy=function(){return xN(e,$N()).exponent(e.exponent())},AM.apply(e,arguments),e}function Bhe(){return $N.apply(null,arguments).exponent(.5)}function eP(e){return Math.sign(e)*e*e}function Vhe(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function tP(){var e=CN(),t=[0,1],n=!1,r;function i(t){var i=Vhe(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(eP(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,_N)).map(eP)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return tP(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},AM.apply(i,arguments),RN(i)}function nP(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r0?n[i-1]:e[0],i=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return rP().domain([e,t]).range(i).unknown(a)},AM.apply(RN(o),arguments)}function iP(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[vM(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return iP().domain(e).range(t).unknown(n)},AM.apply(i,arguments)}var aP=new Date,oP=new Date;function sP(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(ssP(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(i.count=(t,r)=>(aP.setTime(+t),oP.setTime(+r),e(aP),e(oP),Math.floor(n(aP,oP))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var cP=sP(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);cP.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?sP(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):cP),cP.range;var lP=1e3,uP=lP*60,dP=uP*60,fP=dP*24,pP=fP*7,mP=fP*30,hP=fP*365,gP=sP(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*lP)},(e,t)=>(t-e)/lP,e=>e.getUTCSeconds());gP.range;var _P=sP(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*lP)},(e,t)=>{e.setTime(+e+t*uP)},(e,t)=>(t-e)/uP,e=>e.getMinutes());_P.range;var vP=sP(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*uP)},(e,t)=>(t-e)/uP,e=>e.getUTCMinutes());vP.range;var yP=sP(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*lP-e.getMinutes()*uP)},(e,t)=>{e.setTime(+e+t*dP)},(e,t)=>(t-e)/dP,e=>e.getHours());yP.range;var bP=sP(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*dP)},(e,t)=>(t-e)/dP,e=>e.getUTCHours());bP.range;var xP=sP(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*uP)/fP,e=>e.getDate()-1);xP.range;var SP=sP(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fP,e=>e.getUTCDate()-1);SP.range;var CP=sP(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/fP,e=>Math.floor(e/fP));CP.range;function wP(e){return sP(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*uP)/pP)}var TP=wP(0),EP=wP(1),Hhe=wP(2),Uhe=wP(3),DP=wP(4),Whe=wP(5),Ghe=wP(6);TP.range,EP.range,Hhe.range,Uhe.range,DP.range,Whe.range,Ghe.range;function OP(e){return sP(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/pP)}var kP=OP(0),AP=OP(1),Khe=OP(2),qhe=OP(3),jP=OP(4),Jhe=OP(5),Yhe=OP(6);kP.range,AP.range,Khe.range,qhe.range,jP.range,Jhe.range,Yhe.range;var MP=sP(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());MP.range;var NP=sP(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());NP.range;var PP=sP(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());PP.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:sP(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}),PP.range;var FP=sP(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());FP.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:sP(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}),FP.range;function IP(e,t,n,r,i,a){let o=[[gP,1,lP],[gP,5,5*lP],[gP,15,15*lP],[gP,30,30*lP],[a,1,uP],[a,5,5*uP],[a,15,15*uP],[a,30,30*uP],[i,1,dP],[i,3,3*dP],[i,6,6*dP],[i,12,12*dP],[r,1,fP],[r,2,2*fP],[n,1,pP],[t,1,mP],[t,3,3*mP],[e,1,hP]];function s(e,t,n){let r=te).right(o,i);if(a===o.length)return e.every(TM(t/hP,n/hP,r));if(a===0)return cP.every(Math.max(TM(t,n,r),1));let[s,c]=o[i/o[a-1][2]53)return null;`w`in r||(r.w=1),`Z`in r?(a=RP(zP(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?AP.ceil(a):AP(a),a=SP.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=LP(zP(r.y,0,1)),o=a.getDay(),a=o>4||o===0?EP.ceil(a):EP(a),a=xP.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else (`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?RP(zP(r.y,0,1)).getUTCDay():LP(zP(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,RP(r)):LP(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in BP?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function A(e,n,r){return w(e,t,n,r)}function j(e,t,r){return w(e,n,t,r)}function M(e,t,n){return w(e,r,t,n)}function N(e){return o[e.getDay()]}function P(e){return a[e.getDay()]}function F(e){return c[e.getMonth()]}function I(e){return s[e.getMonth()]}function L(e){return i[+(e.getHours()>=12)]}function R(e){return 1+~~(e.getMonth()/3)}function z(e){return o[e.getUTCDay()]}function B(e){return a[e.getUTCDay()]}function V(e){return c[e.getUTCMonth()]}function ee(e){return s[e.getUTCMonth()]}function te(e){return i[+(e.getUTCHours()>=12)]}function ne(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var BP={"-":``,_:` `,0:`0`},VP=/^\s*\d+/,tge=/^%/,nge=/[\\^$*+?|[\]().{}]/g;function HP(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a[e.toLowerCase(),t]))}function ige(e,t,n){var r=VP.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function age(e,t,n){var r=VP.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function oge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function sge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function cge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function GP(e,t,n){var r=VP.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function KP(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function lge(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function uge(e,t,n){var r=VP.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function dge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function qP(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function fge(e,t,n){var r=VP.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function JP(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function pge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function mge(e,t,n){var r=VP.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function hge(e,t,n){var r=VP.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function gge(e,t,n){var r=VP.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function _ge(e,t,n){var r=tge.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function vge(e,t,n){var r=VP.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function yge(e,t,n){var r=VP.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function YP(e,t){return HP(e.getDate(),t,2)}function bge(e,t){return HP(e.getHours(),t,2)}function xge(e,t){return HP(e.getHours()%12||12,t,2)}function Sge(e,t){return HP(1+xP.count(PP(e),e),t,3)}function XP(e,t){return HP(e.getMilliseconds(),t,3)}function Cge(e,t){return XP(e,t)+`000`}function wge(e,t){return HP(e.getMonth()+1,t,2)}function Tge(e,t){return HP(e.getMinutes(),t,2)}function Ege(e,t){return HP(e.getSeconds(),t,2)}function Dge(e){var t=e.getDay();return t===0?7:t}function Oge(e,t){return HP(TP.count(PP(e)-1,e),t,2)}function ZP(e){var t=e.getDay();return t>=4||t===0?DP(e):DP.ceil(e)}function kge(e,t){return e=ZP(e),HP(DP.count(PP(e),e)+(PP(e).getDay()===4),t,2)}function Age(e){return e.getDay()}function jge(e,t){return HP(EP.count(PP(e)-1,e),t,2)}function Mge(e,t){return HP(e.getFullYear()%100,t,2)}function Nge(e,t){return e=ZP(e),HP(e.getFullYear()%100,t,2)}function Pge(e,t){return HP(e.getFullYear()%1e4,t,4)}function Fge(e,t){var n=e.getDay();return e=n>=4||n===0?DP(e):DP.ceil(e),HP(e.getFullYear()%1e4,t,4)}function Ige(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+HP(t/60|0,`0`,2)+HP(t%60,`0`,2)}function QP(e,t){return HP(e.getUTCDate(),t,2)}function Lge(e,t){return HP(e.getUTCHours(),t,2)}function Rge(e,t){return HP(e.getUTCHours()%12||12,t,2)}function zge(e,t){return HP(1+SP.count(FP(e),e),t,3)}function $P(e,t){return HP(e.getUTCMilliseconds(),t,3)}function Bge(e,t){return $P(e,t)+`000`}function Vge(e,t){return HP(e.getUTCMonth()+1,t,2)}function Hge(e,t){return HP(e.getUTCMinutes(),t,2)}function Uge(e,t){return HP(e.getUTCSeconds(),t,2)}function Wge(e){var t=e.getUTCDay();return t===0?7:t}function Gge(e,t){return HP(kP.count(FP(e)-1,e),t,2)}function eF(e){var t=e.getUTCDay();return t>=4||t===0?jP(e):jP.ceil(e)}function Kge(e,t){return e=eF(e),HP(jP.count(FP(e),e)+(FP(e).getUTCDay()===4),t,2)}function qge(e){return e.getUTCDay()}function Jge(e,t){return HP(AP.count(FP(e)-1,e),t,2)}function Yge(e,t){return HP(e.getUTCFullYear()%100,t,2)}function Xge(e,t){return e=eF(e),HP(e.getUTCFullYear()%100,t,2)}function Zge(e,t){return HP(e.getUTCFullYear()%1e4,t,4)}function Qge(e,t){var n=e.getUTCDay();return e=n>=4||n===0?jP(e):jP.ceil(e),HP(e.getUTCFullYear()%1e4,t,4)}function $ge(){return`+0000`}function tF(){return`%`}function nF(e){return+e}function rF(e){return Math.floor(e/1e3)}var iF,aF,oF;e_e({dateTime:`%x, %X`,date:`%-m/%-d/%Y`,time:`%-I:%M:%S %p`,periods:[`AM`,`PM`],days:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],shortDays:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],shortMonths:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`]});function e_e(e){return iF=ege(e),aF=iF.format,iF.parse,oF=iF.utcFormat,iF.utcParse,iF}function t_e(e){return new Date(e)}function n_e(e){return e instanceof Date?+e:+new Date(+e)}function sF(e,t,n,r,i,a,o,s,c,l){var u=CN(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Wme(e,r/t))},n.copy=function(){return mF(t).domain(e)},jM.apply(n,arguments)}function hF(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=yN,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*ePM,scaleDiverging:()=>gF,scaleDivergingLog:()=>_F,scaleDivergingPow:()=>yF,scaleDivergingSqrt:()=>o_e,scaleDivergingSymlog:()=>vF,scaleIdentity:()=>BN,scaleImplicit:()=>MM,scaleLinear:()=>zN,scaleLog:()=>KN,scaleOrdinal:()=>NM,scalePoint:()=>qme,scalePow:()=>$N,scaleQuantile:()=>nP,scaleQuantize:()=>rP,scaleRadial:()=>tP,scaleSequential:()=>uF,scaleSequentialLog:()=>dF,scaleSequentialPow:()=>pF,scaleSequentialQuantile:()=>mF,scaleSequentialSqrt:()=>a_e,scaleSequentialSymlog:()=>fF,scaleSqrt:()=>Bhe,scaleSymlog:()=>XN,scaleThreshold:()=>iP,scaleTime:()=>r_e,scaleUtc:()=>i_e,tickFormat:()=>LN}),xF=e=>e.chartData,SF=BD([xF],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),CF=(e,t,n,r)=>r?SF(e):xF(e),wF=(e,t,n)=>n?SF(e):xF(e);function TF(e){if(Array.isArray(e)&&e.length===2){var[t,n]=e;if(bk(t)&&bk(n))return!0}return!1}function EF(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function DF(e,t){if(t&&typeof e!=`function`&&Array.isArray(e)&&e.length===2){var[n,r]=e,i,a;if(bk(n))i=n;else if(typeof n==`function`)return;if(bk(r))a=r;else if(typeof r==`function`)return;var o=[i,a];if(TF(o))return o}}function s_e(e,t,n){if(!(!n&&t==null)){if(typeof e==`function`&&t!=null)try{var r=e(t,n);if(TF(r))return EF(r,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var[i,a]=e,o,s;if(i===`auto`)t!=null&&(o=Math.min(...t));else if(XE(i))o=i;else if(typeof i==`function`)try{t!=null&&(o=i(t?.[0]))}catch{}else if(typeof i==`string`&&Ak.test(i)){var c=Ak.exec(i);if(c==null||c[1]==null||t==null)o=void 0;else{var l=+c[1];o=t[0]-l}}else o=t?.[0];if(a===`auto`)t!=null&&(s=Math.max(...t));else if(XE(a))s=a;else if(typeof a==`function`)try{t!=null&&(s=a(t?.[1]))}catch{}else if(typeof a==`string`&&jk.test(a)){var u=jk.exec(a);if(u==null||u[1]==null||t==null)s=void 0;else{var d=+u[1];s=t[1]+d}}else s=t?.[1];var f=[o,s];if(TF(f))return t==null?f:EF(f,t,n)}}}var OF=l(o(((e,t)=>{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=re.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=k(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=k(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?k(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=k(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),A(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),A(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=k(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=k(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return k(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||en)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;tr?1:-1;else for(i=a=0;it[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,k,A=r.constructor,j=r.s==i.s?1:-1,M=r.d,N=i.d;if(!r.s)return new A(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=N.length,T=M.length,g=new A(j),_=g.d=[],u=0;N[u]==(M[u]||0);)++u;if(N[u]>(M[u]||0)&&--l,x=o==null?o=A.precision:s?o+(S(r)-S(i))+1:o,x<0)return new A(0);if(x=x/p+2|0,u=0,O==1)for(d=0,N=N[0],x++;(u1&&(N=e(N,d),M=e(M,d),O=N.length,T=M.length),w=O,v=M.slice(0,O),y=v.length;y=f/2&&++E;do d=0,c=t(N,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(N,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),rh||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function A(e,t){if(e.length>t)return e.length=t,!0}function j(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i){t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;return}if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}else if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}if(i.prototype=g,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=j,i.config=i.set=M,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i);if((i=e[r=`LN10`])!==void 0)if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i);return this}r=j(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(e)}))());function kF(e){return e===0?1:Math.floor(new OF.default(e).abs().log(10).toNumber())+1}function AF(e,t,n){for(var r=new OF.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}var jF=e=>{var[t,n]=e,[r,i]=[t,n];return t>n&&([r,i]=[n,t]),[r,i]},MF=(e,t,n)=>{if(e.lte(0))return new OF.default(0);var r=kF(e.toNumber()),i=new OF.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new OF.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new OF.default(s.toNumber()):new OF.default(Math.ceil(s.toNumber()))},c_e=(e,t,n)=>{var r=new OF.default(1),i=new OF.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new OF.default(10).pow(kF(e)-1),i=new OF.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new OF.default(Math.floor(e)))}else e===0?i=new OF.default(Math.floor((t-1)/2)):n||(i=new OF.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new OF.default(0),tickMin:new OF.default(0),tickMax:new OF.default(0)};var a=MF(new OF.default(t).sub(e).div(n-1),r,i),o;e<=0&&t>=0?o=new OF.default(0):(o=new OF.default(e).add(t).div(2),o=o.sub(new OF.default(o).mod(a)));var s=Math.ceil(o.sub(e).div(a).toNumber()),c=Math.ceil(new OF.default(t).sub(o).div(a).toNumber()),l=s+c+1;return l>n?NF(e,t,n,r,i+1):(l0?c+(n-l):c,s=t>0?s:s+(n-l)),{step:a,tickMin:o.sub(new OF.default(s).mul(a)),tickMax:o.add(new OF.default(c).mul(a))})},l_e=function(e){var[t,n]=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=Math.max(r,2),[o,s]=jF([t,n]);if(o===-1/0||s===1/0){var c=s===1/0?[o,...Array(r-1).fill(1/0)]:[...Array(r-1).fill(-1/0),s];return t>n?c.reverse():c}if(o===s)return c_e(o,r,i);var{step:l,tickMin:u,tickMax:d}=NF(o,s,a,i,0),f=AF(u,d.add(new OF.default(.1).mul(l)),l);return t>n?f.reverse():f},u_e=function(e,t){var[n,r]=e,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,[a,o]=jF([n,r]);if(a===-1/0||o===1/0)return[n,r];if(a===o)return[a];var s=Math.max(t,2),c=MF(new OF.default(o).sub(a).div(s-1),i,0),l=[...AF(new OF.default(a),new OF.default(o),c),o];return i===!1&&(l=l.map(e=>Math.round(e))),n>r?l.reverse():l},PF=e=>e.rootProps.maxBarSize,d_e=e=>e.rootProps.barGap,FF=e=>e.rootProps.barCategoryGap,f_e=e=>e.rootProps.barSize,IF=e=>e.rootProps.stackOffset,LF=e=>e.rootProps.reverseStackOrder,RF=e=>e.options.chartName,zF=e=>e.rootProps.syncId,BF=e=>e.rootProps.syncMethod,VF=e=>e.options.eventEmitter,p_e=e=>e.rootProps.baseValue,HF={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},UF={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:HF.axis},WF={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:HF.axis},GF=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function KF(e,t,n){if(n!==`auto`)return n;if(e!=null)return wk(e,t)?`category`:`number`}function qF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JF(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},fA],(e,t)=>{if(e!=null)return e;var n=KF(t,`angleAxis`,YF.type)??`category`;return JF(JF({},YF),{},{type:n})}),QF=BD([(e,t)=>e.polarAxis.radiusAxis[t],fA],(e,t)=>{if(e!=null)return e;var n=KF(t,`radiusAxis`,XF.type)??`category`;return JF(JF({},XF),{},{type:n})}),$F=e=>e.polarOptions,eI=BD([Fk,Ik,Uk],sM),tI=BD([$F,eI],(e,t)=>{if(e!=null)return $E(e.innerRadius,t,0)}),nI=BD([$F,eI],(e,t)=>{if(e!=null)return $E(e.outerRadius,t,t*.8)}),rI=BD([$F],e=>{if(e==null)return[0,0];var{startAngle:t,endAngle:n}=e;return[t,n]});BD([ZF,rI],GF);var iI=BD([eI,tI,nI],(e,t,n)=>{if(!(e==null||t==null||n==null))return[t,n]});BD([QF,iI],GF);var aI=BD([lA,$F,tI,nI,Fk,Ik],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var{cx:o,cy:s,startAngle:c,endAngle:l}=t;return{cx:$E(o,i,i/2),cy:$E(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),oI=(e,t)=>t,sI=(e,t,n)=>n;function cI(e){return e?.id}function lI(e,t,n){var{chartData:r=[]}=t,{allowDuplicatedCategory:i,dataKey:a}=n,o=new Map;return e.forEach(e=>{var t=e.data??r;if(!(t==null||t.length===0)){var n=cI(e);t.forEach((t,r)=>{var s=a==null||i?r:String(Ck(t,a,null)),c=Ck(t,e.dataKey,0),l=o.has(s)?o.get(s):{};Object.assign(l,{[n]:c}),o.set(s,l)})}}),Array.from(o.values())}function uI(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var dI=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function fI(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function __e(e,t){if(e.length===t.length){for(var n=0;n{var t=lA(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},mI=e=>e.tooltip.settings.axisId;function v_e(e){if(e in bF)return bF[e]();var t=`scale${iD(e)}`;if(t in bF)return bF[t]()}function hI(e){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i;break;default:break}}return r}}}}function gI(e,t,n){if(typeof e==`function`)return hI(e.copy().domain(t).range(n));if(e!=null){var r=v_e(e);if(r!=null)return r.domain(t).range(n),hI(r)}}var _I=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!TF(t)){for(var n,r,i=0;ir)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}},vI=l(Nme());function yI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bI(e){for(var t=1;te.cartesianAxis.xAxis[t],wI=(e,t)=>CI(e,t)??SI,TI={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:xI,hide:!0,id:0,includeHidden:!1,interval:`preserveEnd`,minTickGap:5,mirror:!1,name:void 0,orientation:`left`,padding:{top:0,bottom:0},reversed:!1,scale:`auto`,tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:`number`,unit:void 0,width:60},EI=(e,t)=>e.cartesianAxis.yAxis[t],DI=(e,t)=>EI(e,t)??TI,S_e={domain:[0,`auto`],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:``,range:[64,64],scale:`auto`,type:`number`,unit:``},OI=(e,t)=>e.cartesianAxis.zAxis[t]??S_e,kI=(e,t,n)=>{switch(t){case`xAxis`:return wI(e,n);case`yAxis`:return DI(e,n);case`zAxis`:return OI(e,n);case`angleAxis`:return ZF(e,n);case`radiusAxis`:return QF(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},C_e=(e,t,n)=>{switch(t){case`xAxis`:return wI(e,n);case`yAxis`:return DI(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},AI=(e,t,n)=>{switch(t){case`xAxis`:return wI(e,n);case`yAxis`:return DI(e,n);case`angleAxis`:return ZF(e,n);case`radiusAxis`:return QF(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},jI=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function MI(e,t){return n=>{switch(e){case`xAxis`:return`xAxisId`in n&&n.xAxisId===t;case`yAxis`:return`yAxisId`in n&&n.yAxisId===t;case`zAxis`:return`zAxisId`in n&&n.zAxisId===t;case`angleAxis`:return`angleAxisId`in n&&n.angleAxisId===t;case`radiusAxis`:return`radiusAxisId`in n&&n.radiusAxisId===t;default:return!1}}}var NI=e=>e.graphicalItems.cartesianItems,w_e=BD([oI,sI],MI),PI=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0?!0:!e.hide),FI=BD([NI,kI,w_e],PI,{memoizeOptions:{resultEqualityCheck:fI}}),II=BD([FI],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(uI)),LI=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),T_e=BD([FI],LI),RI=e=>e.map(e=>e.data).filter(Boolean).flat(1),E_e=BD([FI],RI,{memoizeOptions:{resultEqualityCheck:fI}}),zI=(e,t)=>{var{chartData:n=[],dataStartIndex:r,dataEndIndex:i}=t;return e.length>0?e:n.slice(r,i+1)},BI=BD([E_e,CF],zI),VI=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:Ck(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:Ck(e,t.dataKey)})),HI=BD([BI,kI,FI],VI);function UI(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function WI(e){if(ZE(e)||e instanceof Date){var t=Number(e);if(bk(t))return t}}function GI(e){if(Array.isArray(e)){var t=[WI(e[0]),WI(e[1])];return TF(t)?t:void 0}var n=WI(e);if(n!=null)return[n,n]}function KI(e){return e.map(WI).filter(aD)}function D_e(e,t,n){return!n||typeof t!=`number`||JE(t)||!n.length?[]:KI(n.flatMap(n=>{var r=Ck(e,n.dataKey),i,a;if(Array.isArray(r)?[i,a]=r:i=a=r,!(!bk(i)||!bk(a)))return[t-i,t+a]}))}var qI=e=>AI(e,pI(e),mI(e)),JI=BD([qI],e=>e?.dataKey),O_e=BD([II,CF,qI],lI),YI=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var[i,a]=t,o=r?[...a].reverse():a;return[i,{stackedData:Hde(e,o.map(cI),n),graphicalItems:o}]}))},XI=BD([O_e,II,IF,LF],YI),ZI=(e,t,n,r)=>{var{dataStartIndex:i,dataEndIndex:a}=t;if(r==null&&n!==`zAxis`){var o=Kde(e,i,a);if(!(o!=null&&o[0]===0&&o[1]===0))return o}},k_e=BD([kI],e=>e.allowDataOverflow),QI=e=>{if(e==null||!(`domain`in e))return xI;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=KI(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??xI},$I=BD([kI],QI),eL=BD([$I,k_e],DF),A_e=BD([XI,xF,oI,eL],ZI,{memoizeOptions:{resultEqualityCheck:dI}}),tL=e=>e.errorBars,j_e=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>UI(n,e)),nL=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},rL=(e,t,n,r,i)=>{var a,o;if(n.length>0&&e.forEach(e=>{n.forEach(n=>{var s=r[n.id]?.filter(e=>UI(i,e)),c=Ck(e,t.dataKey??n.dataKey),l=D_e(e,c,s);if(l.length>=2){var u=Math.min(...l),d=Math.max(...l);(a==null||uo)&&(o=d)}var f=GI(c);f!=null&&(a=a==null?f[0]:Math.min(a,f[0]),o=o==null?f[1]:Math.max(o,f[1]))})}),t?.dataKey!=null&&e.forEach(e=>{var n=GI(Ck(e,t.dataKey));n!=null&&(a=a==null?n[0]:Math.min(a,n[0]),o=o==null?n[1]:Math.max(o,n[1]))}),bk(a)&&bk(o))return[a,o]},M_e=BD([BI,kI,T_e,tL,oI],rL,{memoizeOptions:{resultEqualityCheck:dI}});function N_e(e){var{value:t}=e;if(ZE(t)||t instanceof Date)return t}var P_e=(e,t,n)=>{var r=e.map(N_e).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&eD(r))?(0,vI.default)(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},iL=e=>e.referenceElements.dots,aL=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),F_e=BD([iL,oI,sI],aL),oL=e=>e.referenceElements.areas,I_e=BD([oL,oI,sI],aL),sL=e=>e.referenceElements.lines,L_e=BD([sL,oI,sI],aL),cL=(e,t)=>{if(e!=null){var n=KI(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},R_e=BD(F_e,oI,cL),lL=(e,t)=>{if(e!=null){var n=KI(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},z_e=BD([I_e,oI],lL);function B_e(e){if(e.x!=null)return KI([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:KI(t)}function V_e(e){if(e.y!=null)return KI([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:KI(t)}var uL=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?B_e(e):V_e(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},H_e=BD(R_e,BD([L_e,oI],uL),z_e,(e,t,n)=>nL(e,n,t)),dL=(e,t,n,r,i,a,o,s)=>n??s_e(t,o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?nL(r,a,i):nL(a,i),e.allowDataOverflow),U_e=BD([kI,$I,eL,A_e,M_e,H_e,lA,oI],dL,{memoizeOptions:{resultEqualityCheck:dI}}),W_e=[0,1],fL=(e,t,n,r,i,a,o)=>{if(!((e==null||n==null||n.length===0)&&o===void 0)){var{dataKey:s,type:c}=e,l=wk(t,a);return l&&s==null?(0,vI.default)(0,n?.length??0):c===`category`?P_e(r,e,l):i===`expand`?W_e:o}},pL=BD([kI,lA,BI,HI,IF,oI,U_e],fL);function G_e(e){return e in bF}var mL=(e,t,n)=>{if(e!=null){var{scale:r,type:i}=e;if(r===`auto`)return i===`category`&&n&&(n.indexOf(`LineChart`)>=0||n.indexOf(`AreaChart`)>=0||n.indexOf(`ComposedChart`)>=0&&!t)?`point`:i===`category`?`band`:`linear`;if(typeof r==`string`){var a=`scale${iD(r)}`;return G_e(a)?a:`point`}}},hL=BD([kI,jI,RF],mL);function gL(e,t,n,r){if(!(n==null||r==null))return typeof e.scale==`function`?gI(e.scale,n,r):gI(t,n,r)}var _L=(e,t,n)=>{var r=QI(t);if(!(n!==`auto`&&n!==`linear`)){if(t!=null&&t.tickCount&&Array.isArray(r)&&(r[0]===`auto`||r[1]===`auto`)&&TF(e))return l_e(e,t.tickCount,t.allowDecimals);if(t!=null&&t.tickCount&&t.type===`number`&&TF(e))return u_e(e,t.tickCount,t.allowDecimals)}},vL=BD([pL,AI,hL],_L),yL=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&TF(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},K_e=BD([kI,pL,vL,oI],yL),bL=BD(BD(HI,kI,(e,t)=>{if(!(!t||t.type!==`number`)){var n=1/0,r=Array.from(KI(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;si,(e,t,n,r,i)=>{if(!bk(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=$E(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),q_e=(e,t,n)=>{var r=wI(e,t);return r==null||typeof r.padding!=`string`?0:bL(e,`xAxis`,t,n,r.padding)},J_e=(e,t,n)=>{var r=DI(e,t);return r==null||typeof r.padding!=`string`?0:bL(e,`yAxis`,t,n,r.padding)},Y_e=BD(wI,q_e,(e,t)=>{if(e==null)return{left:0,right:0};var{padding:n}=e;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),X_e=BD(DI,J_e,(e,t)=>{if(e==null)return{top:0,bottom:0};var{padding:n}=e;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),Z_e=BD([Uk,Y_e,qk,Kk,(e,t,n)=>n],(e,t,n,r,i)=>{var{padding:a}=r;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),Q_e=BD([Uk,lA,X_e,qk,Kk,(e,t,n)=>n],(e,t,n,r,i,a)=>{var{padding:o}=i;return a?[r.height-o.bottom,o.top]:t===`horizontal`?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),xL=(e,t,n,r)=>{switch(t){case`xAxis`:return Z_e(e,n,r);case`yAxis`:return Q_e(e,n,r);case`zAxis`:return OI(e,n)?.range;case`angleAxis`:return rI(e);case`radiusAxis`:return iI(e,n);default:return}},SL=BD([kI,xL],GF),CL=BD([kI,hL,BD([hL,K_e],_I),SL],gL);BD([FI,tL,oI],j_e);function wL(e,t){return e.idt.id)}var TL=(e,t)=>t,EL=(e,t,n)=>n,$_e=BD(Rk,TL,EL,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(wL)),eve=BD(zk,TL,EL,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(wL)),DL=(e,t)=>({width:e.width,height:t.height}),tve=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),OL=BD(Uk,wI,DL),nve=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},rve=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},ive=BD(Ik,Uk,$_e,TL,EL,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=DL(t,n);o??=nve(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),ave=BD(Fk,Uk,eve,TL,EL,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=tve(t,n);o??=rve(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),ove=BD([Uk,wI,(e,t)=>{var n=wI(e,t);if(n!=null)return ive(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),sve=BD([Uk,DI,(e,t)=>{var n=DI(e,t);if(n!=null)return ave(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),kL=BD(Uk,DI,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),AL=(e,t,n)=>{switch(t){case`xAxis`:return OL(e,n).width;case`yAxis`:return kL(e,n).height;default:return}},jL=(e,t,n,r)=>{if(n!=null){var{allowDuplicatedCategory:i,type:a,dataKey:o}=n,s=wk(e,r),c=t.map(e=>e.value);if(o&&s&&a===`category`&&i&&eD(c))return c}},ML=BD([lA,HI,kI,oI],jL),NL=(e,t,n,r)=>{if(!(n==null||n.dataKey==null)){var{type:i,scale:a}=n;if(wk(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},PL=BD([lA,HI,AI,oI],NL),FL=BD([lA,C_e,hL,CL,ML,PL,xL,vL,oI],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=wk(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}}),IL=BD([lA,AI,hL,CL,vL,xL,ML,PL,oI],(e,t,n,r,i,a,o,s,c)=>{if(!(t==null||r==null)){var l=wk(e,c),{type:u,ticks:d,tickCount:f}=t,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?qE(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return bk(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(aD):l&&s?s.map((e,t)=>{var n=r.map(e);return bk(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(aD):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return bk(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(aD):r.domain().map((e,t)=>{var n=r.map(e);return bk(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(aD)}}),LL=BD([lA,AI,CL,xL,ML,PL,oI],(e,t,n,r,i,a,o)=>{if(!(t==null||n==null||r==null||r[0]===r[1])){var s=wk(e,o),{tickCount:c}=t,l=0;return l=o===`angleAxis`&&r?.length>=2?qE(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return bk(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(aD):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return bk(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(aD):n.domain().map((e,t)=>{var r=n.map(e);return bk(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(aD)}}),RL=BD(kI,CL,(e,t)=>{if(!(e==null||t==null))return bI(bI({},e),{},{scale:t})});BD((e,t,n)=>OI(e,n),BD([kI,hL,pL,SL],gL),(e,t)=>{if(!(e==null||t==null))return bI(bI({},e),{},{scale:t})});var cve=BD([lA,Rk,zk],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}}),zL=e=>e.options.defaultTooltipEventType,BL=e=>e.options.validateTooltipEventTypes;function VL(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function HL(e,t){return VL(t,zL(e),BL(e))}function lve(e){return FD(t=>HL(t,e))}var UL=(e,t)=>{var n,r=Number(t);if(!(JE(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},uve=e=>e.tooltip.settings,WL={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},GL=ok({name:`tooltip`,initialState:{itemInteraction:{click:WL,hover:WL},axisInteraction:{click:WL,hover:WL},keyboardInteraction:WL,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:`hover`,axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push($A(t.payload))},prepare:ak()},replaceTooltipEntrySettings:{reducer(e,t){var{prev:n,next:r}=t.payload,i=nk(e).tooltipItemPayloads.indexOf($A(n));i>-1&&(e.tooltipItemPayloads[i]=$A(r))},prepare:ak()},removeTooltipEntrySettings:{reducer(e,t){var n=nk(e).tooltipItemPayloads.indexOf($A(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:ak()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),{addTooltipEntrySettings:dve,replaceTooltipEntrySettings:fve,removeTooltipEntrySettings:pve,setTooltipSettingsState:mve,setActiveMouseOverItemIndex:KL,mouseLeaveItem:hve,mouseLeaveChart:qL,setActiveClickItemIndex:gve,setMouseOverAxisIndex:JL,setMouseClickAxisIndex:_ve,setSyncInteraction:YL,setKeyboardInteraction:XL}=GL.actions,vve=GL.reducer;function ZL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function QL(e){for(var t=1;t{if(t==null)return WL;var i=Sve(e,t,n);if(i==null)return WL;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(Cve(i)){if(a)return QL(QL({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return QL(QL({},WL),{},{coordinate:i.coordinate})};function wve(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function Tve(e,t){var n=wve(e),r=t[0],i=t[1];return n===void 0?!1:n>=Math.min(r,i)&&n<=Math.max(r,i)}function Eve(e,t,n){if(n==null||t==null)return!0;var r=Ck(e,t);return r==null||!TF(n)?!0:Tve(r,n)}var eR=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!bk(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||Eve(l,n,r)?String(c):null},tR=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},nR=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(i==null&&r!=null){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},rR=e=>e.options.tooltipPayloadSearcher,iR=e=>e.tooltip;function aR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oR(e){for(var t=1;t{if(!(t==null||a==null)){var{chartData:s,computedData:c,dataStartIndex:l,dataEndIndex:u}=n;return e.reduce((e,n)=>{var{dataDefinedOnItem:d,settings:f}=n,p=Ave(d,s),m=Array.isArray(p)?Pde(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_=r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?nD(m,r,i):a(m,t,c,g);return Array.isArray(_)?_.forEach(t=>{var n=oR(oR({},f),{},{name:t.name,unit:t.unit,color:void 0,fill:void 0});e.push(Nk({tooltipEntrySettings:n,dataKey:t.dataKey,payload:t.payload,value:Ck(t.payload,t.dataKey),name:t.name}))}):e.push(Nk({tooltipEntrySettings:f,dataKey:h,payload:_,value:Ck(_,h),name:Ck(_,g)??f?.name})),e},[])}},cR=BD([qI,jI,RF],mL),lR=BD([BD([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),qI,BD([pI,mI],MI)],PI,{memoizeOptions:{resultEqualityCheck:fI}}),jve=BD([lR],e=>e.filter(uI)),uR=BD([BD([lR],RI,{memoizeOptions:{resultEqualityCheck:fI}}),xF],zI),Mve=BD([jve,xF,qI],lI),dR=BD([uR,qI,lR],VI),fR=BD([qI],QI),pR=BD([fR,BD([qI],e=>e.allowDataOverflow)],DF),Nve=BD([BD([Mve,BD([lR],e=>e.filter(uI)),IF,LF],YI),xF,pI,pR],ZI),Pve=BD([uR,qI,BD([lR],LI),tL,pI],rL,{memoizeOptions:{resultEqualityCheck:dI}}),Fve=BD([BD([iL,pI,mI],aL),pI],cL),Ive=BD([BD([oL,pI,mI],aL),pI],lL),mR=BD([qI,lA,uR,dR,IF,pI,BD([qI,fR,pR,Nve,Pve,BD([Fve,BD([BD([sL,pI,mI],aL),pI],uL),Ive],nL),lA,pI],dL)],fL),Lve=BD([qI,mR,BD([mR,qI,cR],_L),pI],yL),hR=e=>xL(e,pI(e),mI(e),!1),gR=BD([qI,hR],GF),_R=BD([qI,cR,Lve,gR],gL),vR=BD([lA,qI,cR,_R,hR,BD([lA,dR,qI,pI],jL),BD([lA,dR,qI,pI],NL),pI],(e,t,n,r,i,a,o,s)=>{if(t){var{type:c}=t,l=wk(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?qE(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return bk(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(aD):r.domain().map((e,t)=>{var n=r.map(e);return bk(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(aD)}}}),yR=BD([zL,BL,uve],(e,t,n)=>VL(n.shared,e,t)),bR=e=>e.tooltip.settings.trigger,xR=e=>e.tooltip.settings.defaultIndex,SR=BD([iR,yR,bR,xR],$L),CR=BD([SR,uR,JI,mR],eR),wR=BD([vR,CR],UL),TR=BD([SR],e=>{if(e)return e.dataKey}),Rve=BD([SR],e=>{if(e)return e.graphicalItemId}),ER=BD([iR,yR,bR,xR],nR),zve=BD([SR,BD([Fk,Ik,lA,Uk,vR,xR,ER],tR)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),Bve=BD([SR],e=>e?.active??!1),Vve=BD([BD([ER,CR,xF,JI,wR,rR,yR],sR)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function DR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function OR(e){for(var t=1;tFD(qI),Kve=()=>{var e=Gve(),t=FD(vR),n=FD(_R);return Mk(!e||!n?void 0:OR(OR({},e),{},{scale:n}),t)};function kR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function AR(e){for(var t=1;t{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.chartY};if(e===`vertical`)return{x:r.chartX,y:i.coordinate}}return{x:0,y:0}},Zve=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,{radius:o}=r;return AR(AR(AR({},r),oM(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,{angle:c}=r;return AR(AR(AR({},r),oM(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function Qve(e,t){var{chartX:n,chartY:r}=e;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var jR=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=0;o0?n[o-1]?.coordinate:n[a-1]?.coordinate,c=n[o]?.coordinate,l=o>=a-1?n[0]?.coordinate:n[o+1]?.coordinate,u=void 0;if(!(s==null||c==null||l==null))if(qE(c-s)!==qE(l-c)){var d=[];if(qE(l-c)===qE(i[1]-i[0])){u=l;var f=c+i[1]-i[0];d[0]=Math.min(f,(f+s)/2),d[1]=Math.max(f,(f+s)/2)}else{u=s;var p=l+i[1]-i[0];d[0]=Math.min(c,(p+c)/2),d[1]=Math.max(c,(p+c)/2)}var m=[Math.min(c,(u+c)/2),Math.max(c,(u+c)/2)];if(e>m[0]&&e<=m[1]||e>=d[0]&&e<=d[1])return n[o]?.index}else{var h=Math.min(s,l),g=Math.max(s,l);if(e>(h+c)/2&&e<=(g+c)/2)return n[o]?.index}}else if(t)for(var _=0;_(v.coordinate+b.coordinate)/2||_>0&&_(v.coordinate+b.coordinate)/2&&e<=(v.coordinate+y.coordinate)/2)return v.index}}return-1},MR=()=>FD(RF),NR=(e,t)=>t,PR=(e,t,n)=>n,FR=(e,t,n,r)=>r,$ve=BD(vR,e=>(0,UD.default)(e,e=>e.coordinate)),IR=BD([iR,NR,PR,FR],$L),LR=BD([IR,uR,JI,mR],eR),eye=(e,t,n)=>{if(t!=null){var r=iR(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},RR=BD([iR,NR,PR,FR],nR),zR=BD([Fk,Ik,lA,Uk,vR,FR,RR],tR),tye=BD([IR,zR],(e,t)=>e.coordinate??t),BR=BD([vR,LR],UL),nye=BD([RR,LR,xF,JI,BR,rR,NR],sR),rye=BD([IR,LR],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),iye=(e,t,n,r,i,a,o)=>{if(!(!e||!n||!r||!i)&&Qve(e,o)){var s=jR(qde(e,t),a,i,n,r),c=Xve(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},aye=(e,t,n,r,i,a,o)=>{if(!(!e||!r||!i||!a||!n)){var s=vme(e,n);if(s){var c=jR(Jde(s,t),o,a,r,i),l=Zve(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},oye=(e,t,n,r,i,a,o,s)=>{if(!(!e||!t||!r||!i||!a))return t===`horizontal`||t===`vertical`?iye(e,t,r,i,a,o,s):aye(e,t,n,r,i,a,o)},sye=BD(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),cye=BD(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(HF));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:__e}});function VR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HR(e){for(var t=1;tHR(HR({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},pye=new Set(Object.values(HF));function mye(e){return pye.has(e)}var UR=ok({name:`zIndex`,initialState:fye,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:ak()},unregisterZIndexPortal:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!mye(n)&&delete e.zIndexMap[n])},prepare:ak()},registerZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n,element:r,isPanorama:i}=t.payload;e.zIndexMap[n]?i?e.zIndexMap[n].panoramaElement=$A(r):e.zIndexMap[n].element=$A(r):e.zIndexMap[n]={consumers:0,element:i?void 0:$A(r),panoramaElement:i?$A(r):void 0}},prepare:ak()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var{zIndex:n}=t.payload;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:ak()}}}),{registerZIndexPortal:hye,unregisterZIndexPortal:gye,registerZIndexPortalElement:_ye,unregisterZIndexPortalElement:vye}=UR.actions,yye=UR.reducer;function WR(e){var{zIndex:t,children:n}=e,r=Efe()&&t!==void 0&&t!==0,i=Gk(),a=ND();(0,y.useLayoutEffect)(()=>r?(a(hye({zIndex:t})),()=>{a(gye({zIndex:t}))}):oD,[a,t,r]);var o=FD(e=>sye(e,t,i));return r?o?(0,At.createPortal)(n,o):null:n}function GR(){return GR=Object.assign?Object.assign.bind():function(e){for(var t=1;t(0,y.useContext)(JR),Dye=l(o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!JE(n))return e[n]}},$R=ok({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),Oye=$R.reducer,{createEventEmitter:kye}=$R.actions;function Aye(e){return e.tooltip.syncInteraction}var ez=ok({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=$A(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var{startIndex:n,endIndex:r}=t.payload;n!=null&&(e.dataStartIndex=n),r!=null&&(e.dataEndIndex=r)}}}),{setChartData:tz,setDataStartEndIndexes:jye,setComputedData:Mye}=ez.actions,Nye=ez.reducer,Pye=[`x`,`y`];function nz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rz(e){for(var t=1;t{if(e==null)return oD;var s=(s,c,l)=>{if(t!==l&&e===s){if(r===`index`){var u;if(o&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,{x:f,y:p}=d,m=Rye(d,Pye),{x:h,y:g,width:_,height:v}=c.payload.sourceViewBox,y=rz(rz({},m),{},{x:o.x+(_?(f-h)/_:0)*o.width,y:o.y+(v?(p-g)/v:0)*o.height});n(rz(rz({},c),{},{payload:rz(rz({},c.payload),{},{coordinate:y})}))}else n(c);return}if(i!=null){var b;typeof r==`function`?b=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(b=i.find(e=>String(e.value)===c.payload.label));var{coordinate:x}=c.payload;if(b==null||c.payload.active===!1||x==null||o==null){n(YL({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}var{x:S,y:C}=x,w=Math.min(S,o.x+o.width),T=Math.min(C,o.y+o.height),E={x:a===`horizontal`?b.coordinate:w,y:a===`horizontal`?T:b.coordinate};n(YL({active:c.payload.active,coordinate:E,dataKey:c.payload.dataKey,index:String(b.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}};return YR.on(XR,s),()=>{YR.off(XR,s)}},[FD(e=>e.rootProps.className),n,t,e,r,i,a,o])}function Vye(){var e=FD(zF),t=FD(VF),n=ND();(0,y.useEffect)(()=>{if(e==null)return oD;var r=(r,i,a)=>{t!==a&&e===r&&n(jye(i))};return YR.on(ZR,r),()=>{YR.off(ZR,r)}},[n,t,e])}function Hye(){var e=ND();(0,y.useEffect)(()=>{e(kye())},[e]),Bye(),Vye()}function Uye(e,t,n,r,i,a){var o=FD(n=>eye(n,e,t)),s=FD(VF),c=FD(zF),l=FD(BF),u=FD(Aye)?.active,d=aA();(0,y.useEffect)(()=>{if(!u&&c!=null&&s!=null){var e=YL({active:a,coordinate:n,dataKey:o,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:d,graphicalItemId:void 0});YR.emit(XR,c,e,s)}},[u,n,o,i,r,s,c,l,a,d])}function iz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function az(e){for(var t=1;t{S(mve({shared:g,trigger:_,axisId:x,active:n,defaultIndex:C}))},[S,g,_,x,n,C]);var w=aA(),T=vj(),E=lve(g),{activeIndex:D,isActive:O}=FD(e=>rye(e,E,_,C))??{},k=FD(e=>nye(e,E,_,C)),A=FD(e=>BR(e,E,_,C)),j=FD(e=>tye(e,E,_,C)),M=k,N=Eye(),P=n??O??!1,[F,I]=KD([M,P]),L=E===`axis`?A:void 0;Uye(E,_,j,L,D,P);var R=b??N;if(R==null||w==null||E==null)return null;var z=M??oz;P||(z=oz),s&&z.length&&(z=AD(z.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),u,qye));var B=z.length>0,V=y.createElement(lpe,{allowEscapeViewBox:r,animationDuration:i,animationEasing:a,isAnimationActive:c,active:P,coordinate:j,hasPayload:B,offset:l,position:d,reverseDirection:f,useTranslate3d:p,viewBox:w,wrapperStyle:m,lastBoundingBox:F,innerRef:I,hasPortalFromProps:!!b},Jye(o,az(az({},t),{},{payload:z,label:L,active:P,activeIndex:D,coordinate:j,accessibilityLayer:T})));return y.createElement(y.Fragment,null,(0,At.createPortal)(V,R),P&&y.createElement(Tye,{cursor:h,tooltipEventType:E,coordinate:j,payload:z,index:D}))}var cz=e=>null;cz.displayName=`Cell`;function Xye(e,t,n){return(t=Zye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zye(e){var t=Qye(e,`string`);return typeof t==`symbol`?t:t+``}function Qye(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var $ye=class{constructor(e){Xye(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function lz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ebe(e){for(var t=1;t{try{var n=document.getElementById(fz);n||(n=document.createElement(`span`),n.setAttribute(`id`,fz),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,ibe,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},mz=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||Wj.isSsr)return{width:0,height:0};if(!uz.enableCache)return pz(e,t);var n=abe(e,t),r=dz.get(n);if(r)return r;var i=pz(e,t);return dz.set(n,i),i},hz;function obe(e,t,n){return(t=sbe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sbe(e){var t=cbe(e,`string`);return typeof t==`symbol`?t:t+``}function cbe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var gz=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,_z=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,lbe=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,ube=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,dbe={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},fbe=[`cm`,`mm`,`pt`,`pc`,`in`,`Q`,`px`];function pbe(e){return fbe.includes(e)}var vz=`NaN`;function mbe(e,t){return e*dbe[t]}var yz=class e{static parse(t){var[,n,r]=ube.exec(t)??[];return n==null?e.NaN:new e(parseFloat(n),r??``)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,JE(e)&&(this.unit=``),t!==``&&!lbe.test(t)&&(this.num=NaN,this.unit=``),pbe(t)&&(this.num=mbe(e,t),this.unit=`px`)}add(t){return this.unit===t.unit?new e(this.num+t.num,this.unit):new e(NaN,``)}subtract(t){return this.unit===t.unit?new e(this.num-t.num,this.unit):new e(NaN,``)}multiply(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num/t.num,this.unit||t.unit)}toString(){return`${this.num}${this.unit}`}isNaN(){return JE(this.num)}};hz=yz,obe(yz,`NaN`,new hz(NaN,``));function bz(e){if(e==null||e.includes(vz))return vz;for(var t=e;t.includes(`*`)||t.includes(`/`);){var[,n,r,i]=gz.exec(t)??[],a=yz.parse(n??``),o=yz.parse(i??``),s=r===`*`?a.multiply(o):a.divide(o);if(s.isNaN())return vz;t=t.replace(gz,s.toString())}for(;t.includes(`+`)||/.-\d+(?:\.\d+)?/.test(t);){var[,c,l,u]=_z.exec(t)??[],d=yz.parse(c??``),f=yz.parse(u??``),p=l===`+`?d.add(f):d.subtract(f);if(p.isNaN())return vz;t=t.replace(_z,p.toString())}return t}var xz=/\(([^()]*)\)/;function hbe(e){for(var t=e,n;(n=xz.exec(t))!=null;){var[,r]=n;t=t.replace(xz,bz(r))}return t}function gbe(e){var t=e.replace(/\s+/g,``);return t=hbe(t),t=bz(t),t}function _be(e){try{return gbe(e)}catch{return vz}}function Sz(e){var t=_be(e.slice(5,-1));return t===vz?``:t}var vbe=[`x`,`y`,`lineHeight`,`capHeight`,`fill`,`scaleToFit`,`textAnchor`,`verticalAnchor`],ybe=[`dx`,`dy`,`angle`,`className`,`breakAll`];function Cz(){return Cz=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{children:t,breakAll:n,style:r}=e;try{var i=[];return rD(t)||(i=n?t.toString().split(``):t.toString().split(Tz)),{wordsWithComputedWidth:i.map(e=>({word:e,width:mz(e,r).width})),spaceWidth:n?0:mz(`\xA0`,r).width}}catch{return null}};function xbe(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}var Dz=(e,t,n,r)=>e.reduce((e,i)=>{var{word:a,width:o}=i,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+ne.reduce((e,t)=>e.width>t.width?e:t),Sbe=`…`,kz=(e,t,n,r,i,a,o,s)=>{var c=Ez({breakAll:n,style:r,children:e.slice(0,t)+Sbe});if(!c)return[!1,[]];var l=Dz(c.wordsWithComputedWidth,a,o,s);return[l.length>i||Oz(l).width>Number(a),l]},Cbe=(e,t,n,r,i)=>{var{maxLines:a,children:o,style:s,breakAll:c}=e,l=XE(a),u=String(o),d=Dz(t,r,n,i);if(!l||i||!(d.length>a||Oz(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),[_,v]=kz(u,g-1,c,s,a,r,n,i),[y]=kz(u,g,c,s,a,r,n,i);if(!_&&!y&&(f=g+1),_&&y&&(p=g-1),!_&&y){h=v;break}m++}return h||d},Az=e=>[{words:rD(e)?[]:e.toString().split(Tz),width:void 0}],wbe=e=>{var{width:t,scaleToFit:n,children:r,style:i,breakAll:a,maxLines:o}=e;if((t||n)&&!Wj.isSsr){var s,c,l=Ez({breakAll:a,children:r,style:i});if(l){var{wordsWithComputedWidth:u,spaceWidth:d}=l;s=u,c=d}else return Az(r);return Cbe({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return Az(r)},jz=`#808080`,Tbe={angle:0,breakAll:!1,capHeight:`0.71em`,fill:jz,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},Mz=(0,y.forwardRef)((e,t)=>{var n=gD(e,Tbe),{x:r,y:i,lineHeight:a,capHeight:o,fill:s,scaleToFit:c,textAnchor:l,verticalAnchor:u}=n,d=wz(n,vbe),f=(0,y.useMemo)(()=>wbe({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),{dx:p,dy:m,angle:h,className:g,breakAll:_}=d,v=wz(d,ybe);if(!ZE(r)||!ZE(i)||f.length===0)return null;var b=Number(r)+(XE(p)?p:0),x=Number(i)+(XE(m)?m:0);if(!bk(b)||!bk(x))return null;var S;switch(u){case`start`:S=Sz(`calc(${o})`);break;case`middle`:S=Sz(`calc(${(f.length-1)/2} * -${a} + (${o} / 2))`);break;default:S=Sz(`calc(${f.length-1} * -${a})`);break}var C=[],w=f[0];if(c&&w!=null){var T=w.width,{width:E}=d;C.push(`scale(${XE(E)&&XE(T)?E/T:1})`)}return h&&C.push(`rotate(${h}, ${b}, ${x})`),C.length&&(v.transform=C.join(` `)),y.createElement(`text`,Cz({},UT(v),{ref:t,x:b,y:x,className:LT(`recharts-text`,g),textAnchor:l,fill:s.includes(`url`)?jz:s}),f.map((e,t)=>{var n=e.words.join(_?``:` `);return y.createElement(`tspan`,{x:b,dy:t===0?S:a,key:`${n}-${t}`},n)}))});Mz.displayName=`Text`;function Nz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Pz(e){for(var t=1;t{var{viewBox:t,position:n,offset:r=0,parentViewBox:i,clamp:a}=e,{x:o,y:s,height:c,upperWidth:l,lowerWidth:u}=iA(t),d=o,f=o+(l-u)/2,p=(d+f)/2,m=(l+u)/2,h=d+l/2,g=c>=0?1:-1,_=g*r,v=g>0?`end`:`start`,y=g>0?`start`:`end`,b=l>=0?1:-1,x=b*r,S=b>0?`end`:`start`,C=b>0?`start`:`end`,w=i;if(n===`top`){var T={x:d+l/2,y:s-_,horizontalAnchor:`middle`,verticalAnchor:v};return a&&w&&(T.height=Math.max(s-w.y,0),T.width=l),T}if(n===`bottom`){var E={x:f+u/2,y:s+c+_,horizontalAnchor:`middle`,verticalAnchor:y};return a&&w&&(E.height=Math.max(w.y+w.height-(s+c),0),E.width=u),E}if(n===`left`){var D={x:p-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`};return a&&w&&(D.width=Math.max(D.x-w.x,0),D.height=c),D}if(n===`right`){var O={x:p+m+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`};return a&&w&&(O.width=Math.max(w.x+w.width-O.x,0),O.height=c),O}var k=a&&w?{width:m,height:c}:{};return n===`insideLeft`?Pz({x:p+x,y:s+c/2,horizontalAnchor:C,verticalAnchor:`middle`},k):n===`insideRight`?Pz({x:p+m-x,y:s+c/2,horizontalAnchor:S,verticalAnchor:`middle`},k):n===`insideTop`?Pz({x:d+l/2,y:s+_,horizontalAnchor:`middle`,verticalAnchor:y},k):n===`insideBottom`?Pz({x:f+u/2,y:s+c-_,horizontalAnchor:`middle`,verticalAnchor:v},k):n===`insideTopLeft`?Pz({x:d+x,y:s+_,horizontalAnchor:C,verticalAnchor:y},k):n===`insideTopRight`?Pz({x:d+l-x,y:s+_,horizontalAnchor:S,verticalAnchor:y},k):n===`insideBottomLeft`?Pz({x:f+x,y:s+c-_,horizontalAnchor:C,verticalAnchor:v},k):n===`insideBottomRight`?Pz({x:f+u-x,y:s+c-_,horizontalAnchor:S,verticalAnchor:v},k):n&&typeof n==`object`&&(XE(n.x)||YE(n.x))&&(XE(n.y)||YE(n.y))?Pz({x:o+$E(n.x,m),y:s+$E(n.y,c),horizontalAnchor:`end`,verticalAnchor:`end`},k):Pz({x:h,y:s+c/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},k)},Abe=[`labelRef`],jbe=[`content`];function Fz(e,t){if(e==null)return{};var n,r,i=Mbe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o,children:s}=e,c=(0,y.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o}),[t,n,r,i,a,o]);return y.createElement(zz.Provider,{value:c},s)},Vz=()=>{var e=(0,y.useContext)(zz),t=aA();return e||(t?iA(t):void 0)},Ibe=(0,y.createContext)(null),Lbe=()=>{var e=(0,y.useContext)(Ibe),t=FD(aI);return e||t},Rbe=e=>{var{value:t,formatter:n}=e,r=rD(e.children)?t:e.children;return typeof n==`function`?n(r):r},Hz=e=>e!=null&&typeof e==`function`,zbe=(e,t)=>qE(t-e)*Math.min(Math.abs(t-e),360),Bbe=(e,t,n,r,i)=>{var{offset:a,className:o}=e,{cx:s,cy:c,innerRadius:l,outerRadius:u,startAngle:d,endAngle:f,clockWise:p}=i,m=(l+u)/2,h=zbe(d,f),g=h>=0?1:-1,_,v;switch(t){case`insideStart`:_=d+g*a,v=p;break;case`insideEnd`:_=f-g*a,v=!p;break;case`end`:_=f+g*a,v=p;break;default:throw Error(`Unsupported position ${t}`)}v=h<=0?v:!v;var b=oM(s,c,m,_),x=oM(s,c,m,_+(v?1:-1)*359),S=`M${b.x},${b.y} A${m},${m},0,1,${+!v}, - ${x.x},${x.y}`,C=rD(e.id)?QE(`recharts-radial-line-`):e.id;return y.createElement(`text`,zz({},r,{dominantBaseline:`central`,className:LT(`recharts-radial-bar-label`,o)}),y.createElement(`defs`,null,y.createElement(`path`,{id:C,d:S})),y.createElement(`textPath`,{xlinkHref:`#${C}`},n))},Bbe=(e,t,n)=>{var{cx:r,cy:i,innerRadius:a,outerRadius:o,startAngle:s,endAngle:c}=e,l=(s+c)/2;if(n===`outside`){var{x:u,y:d}=sM(r,i,o+t,l);return{x:u,y:d,textAnchor:u>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var{x:f,y:p}=sM(r,i,(a+o)/2,l);return{x:f,y:p,textAnchor:`middle`,verticalAnchor:`middle`}},Wz=e=>e!=null&&`cx`in e&&XE(e.cx),Vbe={angle:0,offset:5,zIndex:UF.label,position:`middle`,textBreakAll:!1};function Hbe(e){if(!Wz(e))return e;var{cx:t,cy:n,outerRadius:r}=e,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function Gz(e){var t=gD(e,Vbe),{viewBox:n,parentViewBox:r,position:i,value:a,children:o,content:s,className:c=``,textBreakAll:l,labelRef:u}=t,d=Ibe(),f=Hz(),p=n==null?i===`center`?f:d??f:Wz(n)?n:aA(n),m,h,g=Hbe(p);if(!p||rD(a)&&rD(o)&&!(0,y.isValidElement)(s)&&typeof s!=`function`)return null;var _=Rz(Rz({},t),{},{viewBox:p});if((0,y.isValidElement)(s)){var{labelRef:v}=_;return(0,y.cloneElement)(s,Iz(_,kbe))}if(typeof s==`function`){var{content:b}=_;if(m=(0,y.createElement)(s,Iz(_,Abe)),(0,y.isValidElement)(m))return m}else m=Lbe(t);var x=UT(t);if(Wz(p)){if(i===`insideStart`||i===`insideEnd`||i===`end`)return zbe(t,i,m,x,p);h=Bbe(p,t.offset,t.position)}else{if(!g)return null;var S=Obe({viewBox:g,position:i,offset:t.offset,parentViewBox:Wz(r)?void 0:r,clamp:!0});h=Rz(Rz({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width===void 0?{}:{width:S.width}),S.height===void 0?{}:{height:S.height})}return y.createElement(GR,{zIndex:t.zIndex},y.createElement(Nz,zz({ref:u,className:LT(`recharts-label`,c)},x,h,{textAnchor:bbe(x.textAnchor)?x.textAnchor:h.textAnchor,breakAll:l}),m))}Gz.displayName=`Label`;var Ube=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?y.createElement(Gz,zz({key:`label-implicit`},r)):ZE(e)?y.createElement(Gz,zz({key:`label-implicit`,value:e},r)):(0,y.isValidElement)(e)?e.type===Gz?(0,y.cloneElement)(e,Rz({key:`label-implicit`},r)):y.createElement(Gz,zz({key:`label-implicit`,content:e},r)):Uz(e)?y.createElement(Gz,zz({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?y.createElement(Gz,zz({},e,{key:`label-implicit`},r)):null};function Kz(e){var{label:t,labelRef:n}=e;return Ube(t,Hz(),n)||null}var Wbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e[e.length-1]}e.last=t})),Gbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Array.isArray(e)?e:Array.from(e)}e.toArray=t})),Kbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Wbe(),n=Gbe(),r=xD();function i(e){if(r.isArrayLike(e))return t.last(n.toArray(e))}e.last=i})),qbe=l(o(((e,t)=>{t.exports=Kbe().last}))()),Jbe=[`valueAccessor`],Ybe=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function qz(){return qz=Object.assign?Object.assign.bind():function(e){for(var t=1;tArray.isArray(e.value)?(0,qbe.default)(e.value):e.value,Yz=(0,y.createContext)(void 0),Xz=Yz.Provider,Zz=(0,y.createContext)(void 0),Qbe=Zz.Provider;function $be(){return(0,y.useContext)(Yz)}function exe(){return(0,y.useContext)(Zz)}function Qz(e){var{valueAccessor:t=Zbe}=e,n=Jz(e,Jbe),{dataKey:r,clockWise:i,id:a,textBreakAll:o,zIndex:s}=n,c=Jz(n,Ybe),l=$be(),u=exe(),d=l||u;return!d||!d.length?null:y.createElement(GR,{zIndex:s??UF.label},y.createElement(qT,{className:`recharts-label-list`},d.map((e,i)=>{var s=rD(r)?t(e,i):wk(e.payload,r),l=rD(a)?{}:{id:`${a}-${i}`};return y.createElement(Gz,qz({key:`label-${i}`},UT(e),c,l,{fill:n.fill??e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:o,viewBox:e.viewBox,index:i,zIndex:0}))})))}Qz.displayName=`LabelList`;function $z(e){var{label:t}=e;return t?t===!0?y.createElement(Qz,{key:`labelList-implicit`}):y.isValidElement(t)||Uz(t)?y.createElement(Qz,{key:`labelList-implicit`,content:t}):typeof t==`object`?y.createElement(Qz,qz({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}function eB(){return eB=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{cx:t,cy:n,r,className:i}=e,a=LT(`recharts-dot`,i);return XE(t)&&XE(n)&&XE(r)?y.createElement(`circle`,eB({},VT(e),pD(e),{className:a,cx:t,cy:n,r})):null},nB=e=>e.graphicalItems.polarItems,rB=VD([nB,AI,VD([sI,cI],NI)],FI),iB=VD([VD([rB],zI),CF],BI),txe=VD([iB,AI,rB],HI);VD([iB,AI,rB],(e,t,n)=>n.length>0?e.flatMap(e=>n.flatMap(n=>({value:wk(e,t.dataKey??n.dataKey),errorDomain:[]}))).filter(Boolean):t?.dataKey==null?e.map(e=>({value:e,errorDomain:[]})):e.map(e=>({value:wk(e,t.dataKey),errorDomain:[]})));var aB=()=>void 0,oB=VD([AI,uA,iB,txe,LF,sI,VD([AI,eL,tL,aB,VD([iB,AI,rB,nL,sI],iL),aB,uA,sI],fL)],pL);VD([gL,VD([AI,oB,VD([oB,jI,gL],vL),sI],bL)],vI);var nxe=sk({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=ej(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=ej(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:rxe,removeRadiusAxis:ixe,addAngleAxis:axe,removeAngleAxis:oxe}=nxe.actions,sxe=nxe.reducer;function cxe(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}function lxe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uxe(e){for(var t=1;tt],(e,t)=>e.filter(e=>e.type===`pie`).find(e=>e.id===t)),mxe=[],cB=(e,t,n)=>n?.length===0?mxe:n,hxe=VD([CF,sB,cB],(e,t,n)=>{var{chartData:r}=e;if(t!=null){var i=t?.data!=null&&t.data.length>0?t.data:r;if((!i||!i.length)&&n!=null&&(i=n.map(e=>uxe(uxe({},t.presentationProps),e.props))),i!=null)return i}}),gxe=VD([hxe,sB,cB],(e,t,n)=>{if(!(e==null||t==null))return e.map((e,r)=>{var i,a=wk(e,t.nameKey,t.name),o=n!=null&&(i=n[r])!=null&&(i=i.props)!=null&&i.fill?n[r].props.fill:typeof e==`object`&&e&&`fill`in e?e.fill:t.fill;return{value:Fk(a,t.dataKey),color:o,payload:e,type:t.legendType}})}),_xe=VD([hxe,sB,cB,Wk],(e,t,n,r)=>{if(!(t==null||e==null))return OSe({offset:r,pieSettings:t,displayedData:e,cells:n})}),vxe=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.suspense_list`),d=Symbol.for(`react.memo`),f=Symbol.for(`react.lazy`),p=Symbol.for(`react.view_transition`);function m(e){if(typeof e==`object`&&e){var m=e.$$typeof;switch(m){case t:switch(e=e.type,e){case r:case a:case i:case l:case u:case p:return e;default:switch(e&&=e.$$typeof,e){case s:case c:case f:case d:return e;case o:return e;default:return m}}case n:return m}}}e.isFragment=function(e){return m(e)===r}})),yxe=o(((e,t)=>{t.exports=vxe()}))(),bxe=e=>typeof e==`string`?e:e?e.displayName||e.name||`Component`:``,xxe=null,lB=null,Sxe=e=>{if(e===xxe&&Array.isArray(lB))return lB;var t=[];return y.Children.forEach(e,e=>{rD(e)||((0,yxe.isFragment)(e)?t=t.concat(Sxe(e.props.children)):t.push(e))}),lB=t,xxe=e,t};function uB(e,t){var n=[],r=[];return r=Array.isArray(t)?t.map(e=>bxe(e)):[bxe(t)],Sxe(e).forEach(e=>{var t=(0,KE.default)(e,`type.displayName`)||(0,KE.default)(e,`type.name`);t&&r.indexOf(t)!==-1&&n.push(e)}),n}var dB=e=>e&&typeof e==`object`&&`clipDot`in e?!!e.clipDot:!0,Cxe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}e.isPlainObject=t})),wxe=o(((e,t)=>{t.exports=Cxe().isPlainObject})),Txe,Exe,Dxe,Oxe,kxe;function Axe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jxe(e){for(var t=1;t{var a=n-r,o=GE(Txe||=pB([`M `,`,`,``]),e,t);return o+=GE(Exe||=pB([`L `,`,`,``]),e+n,t),o+=GE(Dxe||=pB([`L `,`,`,``]),e+n-a/2,t+i),o+=GE(Oxe||=pB([`L `,`,`,``]),e+n-a/2-r,t+i),o+=GE(kxe||=pB([`L `,`,`,` Z`]),e,t),o},Ixe={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},Lxe=e=>{var t=gD(e,Ixe),{x:n,y:r,upperWidth:i,lowerWidth:a,height:o,className:s}=t,{animationEasing:c,animationDuration:l,animationBegin:u,isUpdateAnimationActive:d}=t,f=(0,y.useRef)(null),[p,m]=(0,y.useState)(-1),h=(0,y.useRef)(i),g=(0,y.useRef)(a),_=(0,y.useRef)(o),v=(0,y.useRef)(n),b=(0,y.useRef)(r),x=Yj(e,`trapezoid-`);if((0,y.useEffect)(()=>{if(f.current&&f.current.getTotalLength)try{var e=f.current.getTotalLength();e&&m(e)}catch{}},[]),n!==+n||r!==+r||i!==+i||a!==+a||o!==+o||i===0&&a===0||o===0)return null;var S=LT(`recharts-trapezoid`,s);if(!d)return y.createElement(`g`,null,y.createElement(`path`,fB({},UT(t),{className:S,d:Fxe(n,r,i,a,o)})));var C=h.current,w=g.current,T=_.current,E=v.current,D=b.current,O=`0px ${p===-1?1:p}px`,k=`${p}px 0px`,A=Pj([`strokeDasharray`],l,c);return y.createElement(Jj,{animationId:x,key:x,canBegin:p>0,duration:l,easing:c,isActive:d,begin:u},e=>{var s=tD(C,i,e),c=tD(w,a,e),l=tD(T,o,e),u=tD(E,n,e),d=tD(D,r,e);f.current&&(h.current=s,g.current=c,_.current=l,v.current=u,b.current=d);var p=e>0?{transition:A,strokeDasharray:k}:{strokeDasharray:O};return y.createElement(`path`,fB({},UT(t),{className:S,d:Fxe(u,d,s,c,l),ref:f,style:jxe(jxe({},p),t.style)}))})},Rxe=l(wxe()),zxe=[`option`,`shapeType`,`activeClassName`];function Bxe(e,t){if(e==null)return{};var n,r,i=Vxe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var r=PD();return(i,a)=>o=>{e?.(i,a,o),r(qL({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},_B=e=>{var t=PD();return(n,r)=>i=>{e?.(n,r,i),t(mve())}},vB=(e,t,n)=>{var r=PD();return(i,a)=>o=>{e?.(i,a,o),r(hve({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}};function yB(e){var{tooltipEntrySettings:t}=e,n=PD(),r=Kk(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(uve(t)):i.current!==t&&n(dve({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(fve(i.current)),null)},[n]),null}function bB(e){var{legendPayload:t}=e,n=PD(),r=Kk(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(rj(t)):i.current!==t&&n(ij({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(aj(i.current)),null)},[n]),null}function Xxe(e){var{legendPayload:t}=e,n=PD(),r=ID(uA),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r!==`centric`&&r!==`radial`||(i.current===null?n(rj(t)):i.current!==t&&n(ij({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(aj(i.current)),null)},[n]),null}var Zxe=y.useId??(()=>{var[e]=y.useState(()=>QE(`uid-`));return e});function Qxe(e,t){var n=Zxe();return t||(e?`${e}-${n}`:n)}var $xe=(0,y.createContext)(void 0),xB=e=>{var{id:t,type:n,children:r}=e,i=Qxe(`recharts-${n}`,t);return y.createElement($xe.Provider,{value:i},r(i))},eSe=sk({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(ej(t.payload))},prepare:ok()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=rk(e).cartesianItems.indexOf(ej(n));i>-1&&(e.cartesianItems[i]=ej(r))},prepare:ok()},removeCartesianGraphicalItem:{reducer(e,t){var n=rk(e).cartesianItems.indexOf(ej(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:ok()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(ej(t.payload))},prepare:ok()},removePolarGraphicalItem:{reducer(e,t){var n=rk(e).polarItems.indexOf(ej(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:ok()}}}),{addCartesianGraphicalItem:tSe,replaceCartesianGraphicalItem:nSe,removeCartesianGraphicalItem:rSe,addPolarGraphicalItem:iSe,removePolarGraphicalItem:aSe}=eSe.actions,oSe=eSe.reducer,SB=(0,y.memo)(e=>{var t=PD(),n=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{n.current===null?t(tSe(e)):n.current!==e&&t(nSe({prev:n.current,next:e})),n.current=e},[t,e]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(rSe(n.current)),null)},[t]),null});function sSe(e){var t=PD();return(0,y.useLayoutEffect)(()=>(t(iSe(e)),()=>{t(aSe(e))}),[t,e]),null}var cSe=[`key`],lSe=[`onMouseEnter`,`onClick`,`onMouseLeave`],uSe=[`id`],dSe=[`id`];function fSe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CB(e){for(var t=1;tuB(e.children,lz),[e.children]),n=ID(n=>gxe(n,e.id,t));return n==null?null:y.createElement(Xxe,{legendPayload:n})}var vSe=y.memo(e=>{var{dataKey:t,nameKey:n,sectors:r,stroke:i,strokeWidth:a,fill:o,name:s,hide:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:r.map(e=>e.tooltipPayload),getPosition:e=>r[Number(e)]?.tooltipPosition,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:t,nameKey:n,name:Fk(s,t),hide:c,type:l,color:o,unit:``,graphicalItemId:u}};return y.createElement(yB,{tooltipEntrySettings:d})}),ySe=(e,t)=>e>t?`start`:e$E(typeof t==`function`?t(e):t,n,n*.8),xSe=(e,t,n)=>{var{top:r,left:i,width:a,height:o}=t,s=cM(a,o);return{cx:i+$E(e.cx,a,a/2),cy:r+$E(e.cy,o,o/2),innerRadius:$E(e.innerRadius,s,0),outerRadius:bSe(n,e.outerRadius,s),maxRadius:e.maxRadius||Math.sqrt(a*a+o*o)/2}},SSe=(e,t)=>qE(t-e)*Math.min(Math.abs(t-e),360),CSe=(e,t)=>{if(y.isValidElement(e))return y.cloneElement(e,t);if(typeof e==`function`)return e(t);var n=LT(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className),{key:r}=t,i=TB(t,cSe);return y.createElement(kj,wB({},i,{type:`linear`,className:n}))},wSe=(e,t,n)=>{if(y.isValidElement(e))return y.cloneElement(e,t);var r=n;if(typeof e==`function`&&(r=e(t),y.isValidElement(r)))return r;var i=LT(`recharts-pie-label-text`,cxe(e));return y.createElement(Nz,wB({},t,{alignmentBaseline:`middle`,className:i}),r)};function TSe(e){var{sectors:t,props:n,showLabels:r}=e,{label:i,labelLine:a,dataKey:o}=n;if(!r||!i||!t)return null;var s=VT(n),c=HT(i),l=HT(a),u=typeof i==`object`&&`offsetRadius`in i&&typeof i.offsetRadius==`number`&&i.offsetRadius||20,d=t.map((e,t)=>{var n=(e.startAngle+e.endAngle)/2,r=sM(e.cx,e.cy,e.outerRadius+u,n),d=CB(CB(CB(CB({},s),e),{},{stroke:`none`},c),{},{index:t,textAnchor:ySe(r.x,e.cx)},r),f=CB(CB(CB(CB({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:t,points:[sM(e.cx,e.cy,e.outerRadius,n),r],key:`line`});return y.createElement(GR,{zIndex:UF.label,key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${t}`},y.createElement(qT,null,a&&CSe(a,f),wSe(i,d,wk(e,o))))});return y.createElement(qT,{className:`recharts-pie-labels`},d)}function ESe(e){var{sectors:t,props:n,showLabels:r}=e,{label:i}=n;return typeof i==`object`&&i&&`position`in i?y.createElement($z,{label:i}):y.createElement(TSe,{sectors:t,props:n,showLabels:r})}function DSe(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:i,shape:a,id:o}=e,s=ID(wR),c=ID(ER),l=ID(Lve),{onMouseEnter:u,onClick:d,onMouseLeave:f}=i,p=TB(i,lSe),m=gB(u,i.dataKey,o),h=_B(f),g=vB(d,i.dataKey,o);return t==null||t.length===0?null:y.createElement(y.Fragment,null,t.map((e,u)=>{if(e?.startAngle===0&&e?.endAngle===0&&t.length!==1)return null;var d=l==null||l===o,f=String(u)===s&&(c==null||i.dataKey===c)&&d,_=n&&f?n:s?r:null,v=CB(CB({},e),{},{stroke:e.stroke,tabIndex:-1,[Vk]:u,[Yde]:o});return y.createElement(qT,wB({key:`sector-${e?.startAngle}-${e?.endAngle}-${e.midAngle}-${u}`,tabIndex:-1,className:`recharts-pie-sector`},mD(p,e,u),{onMouseEnter:m(e,u),onMouseLeave:h(e,u),onClick:g(e,u)}),y.createElement(hB,wB({option:a??_,index:u,shapeType:`sector`,isActive:f},v)))}))}function OSe(e){var{pieSettings:t,displayedData:n,cells:r,offset:i}=e,{cornerRadius:a,startAngle:o,endAngle:s,dataKey:c,nameKey:l,tooltipType:u}=t,d=Math.abs(t.minAngle),f=SSe(o,s),p=Math.abs(f),m=n.length<=1?0:t.paddingAngle??0,h=n.filter(e=>wk(e,c,0)!==0).length,g=(p>=360?h:h-1)*m,_=p-h*d-g,v=n.reduce((e,t)=>{var n=wk(t,c,0);return e+(XE(n)?n:0)},0),y;if(v>0){var b;y=n.map((e,n)=>{var s=wk(e,c,0),p=wk(e,l,n),h=xSe(t,i,e),g=(XE(s)?s:0)/v,y,x=CB(CB({},e),r&&r[n]&&r[n].props);y=n?b.endAngle+qE(f)*m*(s===0?0:1):o;var S=y+qE(f)*((s===0?0:d)+g*_),C=(y+S)/2,w=(h.innerRadius+h.outerRadius)/2,T=[{name:p,value:s,payload:x,dataKey:c,type:u,graphicalItemId:t.id}],E=sM(h.cx,h.cy,w,C);return b=CB(CB(CB(CB({},t.presentationProps),{},{percent:g,cornerRadius:typeof a==`string`?parseFloat(a):a,name:p,tooltipPayload:T,midAngle:C,middleRadius:w,tooltipPosition:E},x),h),{},{value:s,dataKey:c,startAngle:y,endAngle:S,payload:x,paddingAngle:qE(f)*m}),b})}return y}function kSe(e){var{showLabels:t,sectors:n,children:r}=e,i=(0,y.useMemo)(()=>!t||!n?[]:n.map(e=>({value:e.value,payload:e.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:e.cx,cy:e.cy,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clockWise:!1},fill:e.fill})),[n,t]);return y.createElement(Qbe,{value:t?i:void 0},r)}function ASe(e){var{props:t,previousSectorsRef:n,id:r}=e,{sectors:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,activeShape:l,inactiveShape:u,onAnimationStart:d,onAnimationEnd:f}=t,p=Yj(t,`recharts-pie-`),m=n.current,[h,g]=(0,y.useState)(!1),_=(0,y.useCallback)(()=>{typeof f==`function`&&f(),g(!1)},[f]),v=(0,y.useCallback)(()=>{typeof d==`function`&&d(),g(!0)},[d]);return y.createElement(kSe,{showLabels:!h,sectors:i},y.createElement(Jj,{animationId:p,begin:o,duration:s,isActive:a,easing:c,onAnimationStart:v,onAnimationEnd:_,key:p},e=>{var a=[],o=(i&&i[0])?.startAngle??0;return i?.forEach((t,n)=>{var r=m&&m[n],i=n>0?(0,KE.default)(t,`paddingAngle`,0):0;if(r){var s=tD(r.endAngle-r.startAngle,t.endAngle-t.startAngle,e),c=CB(CB({},t),{},{startAngle:o+i,endAngle:o+s+i});a.push(c),o=c.endAngle}else{var{endAngle:l,startAngle:u}=t,d=tD(0,l-u,e),f=CB(CB({},t),{},{startAngle:o+i,endAngle:o+d+i});a.push(f),o=f.endAngle}}),n.current=a,y.createElement(qT,null,y.createElement(DSe,{sectors:a,activeShape:l,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:r}))}),y.createElement(ESe,{showLabels:!h,sectors:i,props:t}),t.children)}var jSe={animationBegin:400,animationDuration:1500,animationEasing:`ease`,cx:`50%`,cy:`50%`,dataKey:`value`,endAngle:360,fill:`#808080`,hide:!1,innerRadius:0,isAnimationActive:`auto`,label:!1,labelLine:!0,legendType:`rect`,minAngle:0,nameKey:`name`,outerRadius:`80%`,paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:`#fff`,zIndex:UF.area};function MSe(e){var{id:t}=e,n=TB(e,uSe),{hide:r,className:i,rootTabIndex:a}=e,o=(0,y.useMemo)(()=>uB(e.children,lz),[e.children]),s=ID(e=>_xe(e,t,o)),c=(0,y.useRef)(null),l=LT(`recharts-pie`,i);return r||s==null?(c.current=null,y.createElement(qT,{tabIndex:a,className:l})):y.createElement(GR,{zIndex:e.zIndex},y.createElement(vSe,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t}),y.createElement(qT,{tabIndex:a,className:l},y.createElement(ASe,{props:CB(CB({},n),{},{sectors:s}),previousSectorsRef:c,id:t})))}function EB(e){var t=gD(e,jSe),{id:n}=t,r=TB(t,dSe),i=VT(r);return y.createElement(xB,{id:n,type:`pie`},e=>y.createElement(y.Fragment,null,y.createElement(sSe,{type:`pie`,id:e,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:i,maxRadius:t.maxRadius}),y.createElement(_Se,wB({},r,{id:e})),y.createElement(MSe,wB({},r,{id:e}))))}EB.displayName=`Pie`;var NSe=[`points`];function PSe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function DB(e){for(var t=1;t{var s=DB(DB(DB({r:3},o),d),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:a,value:e.value,payload:e.payload,points:t});return y.createElement(BSe,{key:`dot-${r}`,option:n,dotProps:s,className:i})}),p={};return s&&c!=null&&(p.clipPath=`url(#clipPath-${u?``:`dots-`}${c})`),y.createElement(GR,{zIndex:l},y.createElement(qT,OB({className:r},p),f))}function USe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function WSe(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),Ik,Lk],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),kB=()=>ID(oCe),sCe=()=>ID(Bve);function cCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function AB(e){for(var t=1;t{var{point:t,childIndex:n,mainColor:r,activeDot:i,dataKey:a,clipPath:o}=e;if(i===!1||t.x==null||t.y==null)return null;var s=AB(AB(AB({},{index:n,dataKey:a,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),HT(i)),pD(i)),c=(0,y.isValidElement)(i)?(0,y.cloneElement)(i,s):typeof i==`function`?i(s):y.createElement(tB,s);return y.createElement(qT,{className:`recharts-active-dot`,clipPath:o},c)};function jB(e){var{points:t,mainColor:n,activeDot:r,itemDataKey:i,clipPath:a,zIndex:o=UF.activeDot}=e,s=ID(wR),c=sCe();if(t==null||c==null)return null;var l=t.find(e=>c.includes(e.payload));return rD(l)?null:y.createElement(GR,{zIndex:o},y.createElement(fCe,{point:l,childIndex:Number(s),mainColor:n,dataKey:i,activeDot:r,clipPath:a}))}var pCe=(e,t,n)=>{var r=n??e;if(!rD(r))return $E(r,t,0)},mCe=(e,t,n)=>{var r={},i=e.filter(dI),a=e.filter(e=>e.stackId==null),o=i.reduce((e,t)=>{var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},r),s=Object.entries(o).map(e=>{var[r,i]=e;return{stackId:r,dataKeys:i.map(e=>e.dataKey),barSize:pCe(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:pCe(t,n,e.barSize)}));return[...s,...c]};function hCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function MB(e){for(var t=1;te+(t.barSize||0),0);d+=(a-1)*o,d>=n&&(d-=(a-1)*o,o=0),d>=n&&u>0&&(l=!0,u*=.9,d=a*u);var f={offset:((n-d)/2>>0)-o,size:0};s=r.reduce((e,t)=>{var n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+o,size:l?u:t.barSize??0}},r=[...e,n];return f=n.position,r},c)}else{var p=$E(t,n,0,!0);n-2*p-(a-1)*o<=0&&(o=0);var m=(n-2*p-(a-1)*o)/a;m>1&&(m>>=0);var h=xk(i)?Math.min(m,i):m;s=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p+(m+o)*n+(m-h)/2,size:h}}],c)}return s}}var bCe=(e,t,n,r,i,a,o)=>{var s=rD(o)?t:o,c=yCe(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>MB(MB({},e),{},{position:MB(MB({},e.position),{},{offset:e.position.offset-i/2})}))),c},xCe=(e,t)=>{var n=lI(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var i=e[r];if(i){var{stackedData:a}=i;if(a)return a.find(e=>e.key===n)}}}},SCe=(e,t)=>{if(!(e==null||t==null)){var n=e.find(e=>e.stackId===t.stackId&&t.dataKey!=null&&e.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function CCe(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&xk(e.zIndex)?e.zIndex:t}var wCe=e=>{var{chartData:t}=e,n=PD(),r=Kk();return(0,y.useEffect)(()=>r?()=>{}:(n(nz(t)),()=>{n(nz(void 0))}),[t,n,r]),null},TCe={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},ECe=sk({name:`brush`,initialState:TCe,reducers:{setBrushSettings(e,t){return t.payload==null?TCe:t.payload}}}),{setBrushSettings:DCe}=ECe.actions,OCe=ECe.reducer,kCe=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return{x:Math.min(n,i),y:Math.min(r,a),width:Math.abs(i-n),height:Math.abs(a-r)}},ACe=e=>{var{x1:t,y1:n,x2:r,y2:i}=e;return kCe({x:t,y:n},{x:r,y:i})};function jCe(e){return(e%180+180)%180}var MCe=function(e){var{width:t,height:n}=e,r=jCe(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=rk(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=rk(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(ej(t.payload))},removeLine:(e,t)=>{var n=rk(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:PCe,removeDot:FCe,addArea:ICe,removeArea:LCe,addLine:RCe,removeLine:zCe}=NCe.actions,BCe=NCe.reducer,VCe=(0,y.createContext)(void 0),HCe=e=>{var{children:t}=e,[n]=(0,y.useState)(`${QE(`recharts`)}-clip`),r=kB();if(r==null)return null;var{x:i,y:a,width:o,height:s}=r;return y.createElement(VCe.Provider,{value:n},y.createElement(`defs`,null,y.createElement(`clipPath`,{id:n},y.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)},UCe=()=>(0,y.useContext)(VCe),WCe=class{constructor(e){var{x:t,y:n}=e;this.xAxisScale=t,this.yAxisScale=n}map(e,t){var{position:n}=t;return{x:this.xAxisScale.map(e.x,{position:n})??0,y:this.yAxisScale.map(e.y,{position:n})??0}}mapWithFallback(e,t){var{position:n,fallback:r}=t,i=r===`rangeMin`?this.yAxisScale.rangeMin():r===`rangeMax`?this.yAxisScale.rangeMax():0,a=r===`rangeMin`?this.xAxisScale.rangeMin():r===`rangeMax`?this.xAxisScale.rangeMax():0;return{x:this.xAxisScale.map(e.x,{position:n})??a,y:this.yAxisScale.map(e.y,{position:n})??i}}isInRange(e){var{x:t,y:n}=e,r=t==null||this.xAxisScale.isInRange(t),i=n==null||this.yAxisScale.isInRange(n);return r&&i}};function GCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function KCe(e){for(var t=1;t{var n;if(y.isValidElement(e))n=y.cloneElement(e,t);else if(typeof e==`function`)n=e(t);else{if(!xk(t.x1)||!xk(t.y1)||!xk(t.x2)||!xk(t.y2))return null;n=y.createElement(`line`,NB({},t,{className:`recharts-reference-line-line`}))}return n},ZCe=(e,t,n,r,i,a)=>{var{x:o,width:s}=a,c=i.map(e,{position:n});if(!xk(c)||t===`discard`&&!i.isInRange(c))return null;var l=[{x:o+s,y:c},{x:o,y:c}];return r===`left`?l.reverse():l},QCe=(e,t,n,r,i,a)=>{var{y:o,height:s}=a,c=i.map(e,{position:n});if(!xk(c)||t===`discard`&&!i.isInRange(c))return null;var l=[{x:c,y:o+s},{x:c,y:o}];return r===`top`?l.reverse():l},$Ce=(e,t,n,r)=>{var i=[r.mapWithFallback(e[0],{position:n,fallback:`rangeMin`}),r.mapWithFallback(e[1],{position:n,fallback:`rangeMax`})];return t===`discard`&&i.some(e=>!r.isInRange(e))?null:i},ewe=(e,t,n,r,i,a,o)=>{var{x:s,y:c,segment:l,ifOverflow:u}=o,d=ZE(s);return ZE(c)?ZCe(c,u,r,a,t,n):d?QCe(s,u,r,i,e,n):l!=null&&l.length===2?$Ce(l,u,r,new WCe({x:e,y:t})):null};function twe(e){var t=PD();return(0,y.useEffect)(()=>(t(RCe(e)),()=>{t(zCe(e))})),null}function nwe(e){var{xAxisId:t,yAxisId:n,shape:r,className:i,ifOverflow:a}=e,o=Kk(),s=UCe(),c=ID(e=>TI(e,t)),l=ID(e=>OI(e,n)),u=ID(e=>wL(e,`xAxis`,t,o)),d=ID(e=>wL(e,`yAxis`,n,o)),f=oA();if(!s||!f||c==null||l==null||u==null||d==null)return null;var p=ewe(u,d,f,e.position,c.orientation,l.orientation,e);if(!p)return null;var m=p[0],h=p[1];if(m==null||h==null)return null;var{x:g,y:_}=m,{x:v,y:b}=h,x=KCe(KCe({clipPath:a===`hidden`?`url(#${s})`:void 0},UT(e)),{},{x1:g,y1:_,x2:v,y2:b}),S=ACe({x1:g,y1:_,x2:v,y2:b});return y.createElement(GR,{zIndex:e.zIndex},y.createElement(qT,{className:LT(`recharts-reference-line`,i)},XCe(r,x),y.createElement(Vz,NB({},S,{lowerWidth:S.width,upperWidth:S.width}),y.createElement(Kz,{label:e.label}),e.children)))}var rwe={ifOverflow:`discard`,xAxisId:0,yAxisId:0,fill:`none`,label:!1,stroke:`#ccc`,fillOpacity:1,strokeWidth:1,position:`middle`,zIndex:UF.line};function PB(e){var t=gD(e,rwe);return y.createElement(y.Fragment,null,y.createElement(twe,{yAxisId:t.yAxisId,xAxisId:t.xAxisId,ifOverflow:t.ifOverflow,x:t.x,y:t.y,segment:t.segment}),y.createElement(nwe,t))}PB.displayName=`ReferenceLine`;function iwe(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;re*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function swe(e,t){return iwe(e,t+1)}function cwe(e,t,n,r,i){for(var a=(r||[]).slice(),{start:o,end:s}=t,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:iwe(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||FB(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function lwe(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var{start:o,end:s}=t,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||FB(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=IB(IB({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=IB(IB({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&FB(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=IB(IB({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function hwe(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,{start:c,end:l}=t;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=IB(IB({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&FB(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=IB(IB({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=IB(IB({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=IB(IB({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&FB(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=IB(IB({},a),{},{isShow:!0}))},h=0;h{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?awe(hz(i,{fontSize:t,letterSpacing:n}),m,d):hz(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?qE(_.coordinate-g.coordinate):1,y=owe(a,v,p);return c===`equidistantPreserveStart`?cwe(v,y,h,i,o):c===`equidistantPreserveEnd`?lwe(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?hwe(v,y,h,i,o,c===`preserveStartEnd`):mwe(v,y,h,i,o),f.filter(e=>e.isShow))}var gwe=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}});var s=n?n.getBoundingClientRect().width:0,c=i+a,l=o+c+s+(n?r:0);return Math.round(l)}return 0},_we=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`];function vwe(e,t){if(e==null)return{};var n,r,i=ywe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{ticks:n=[],tick:r,tickLine:i,stroke:a,tickFormatter:o,unit:s,padding:c,tickTextProps:l,orientation:u,mirror:d,x:f,y:p,width:m,height:h,tickSize:g,tickMargin:_,fontSize:v,letterSpacing:b,getTicksConfig:x,events:S,axisType:C}=e,w=LB(zB(zB({},x),{},{ticks:n}),v,b),T=Ewe(u,d),E=Dwe(u,d),D=VT(x),O=HT(r),k={};typeof i==`object`&&(k=i);var A=zB(zB({},D),{},{fill:`none`},k),j=w.map(e=>zB({entry:e},Twe(e,f,p,m,h,u,g,d,_))),M=j.map(e=>{var{entry:t,line:n}=e;return y.createElement(qT,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},i&&y.createElement(`line`,RB({},A,n,{className:LT(`recharts-cartesian-axis-tick-line`,(0,KE.default)(i,`className`))})))}),N=j.map((e,t)=>{var{entry:n,tick:i}=e,u=zB(zB({},zB(zB(zB(zB({verticalAnchor:E},D),{},{textAnchor:T,stroke:`none`,fill:a},i),{},{index:t,payload:n,visibleTicksCount:w.length,tickFormatter:o,padding:c},l),{},{angle:l?.angle??D.angle??0})),O);return y.createElement(qT,RB({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},mD(S,n,t)),r&&y.createElement(Owe,{option:r,tickProps:u,value:`${typeof o==`function`?o(n.value,t):n.value}${s||``}`}))});return y.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},N.length>0&&y.createElement(GR,{zIndex:UF.label},y.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},N)),M.length>0&&y.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},M))}),Awe=(0,y.forwardRef)((e,t)=>{var{axisLine:n,width:r,height:i,className:a,hide:o,ticks:s,axisType:c}=e,l=vwe(e,_we),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),m=(0,y.useRef)(null);(0,y.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>gwe({ticks:m.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var h=(0,y.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);m.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==u||a!==f)&&(d(i),p(a))}}},[u,f]);return o||r!=null&&r<=0||i!=null&&i<=0?null:y.createElement(GR,{zIndex:e.zIndex},y.createElement(qT,{className:LT(`recharts-cartesian-axis`,a)},y.createElement(wwe,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:VT(e)}),y.createElement(kwe,{ref:h,axisType:c,events:l,fontSize:u,getTicksConfig:e,height:e.height,letterSpacing:f,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y}),y.createElement(Vz,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(Kz,{label:e.label,labelRef:e.labelRef}),e.children)))}),VB=y.forwardRef((e,t)=>{var n=gD(e,BB);return y.createElement(Awe,RB({},n,{ref:t}))});VB.displayName=`CartesianAxis`;var jwe=[`x1`,`y1`,`x2`,`y2`,`key`],Mwe=[`offset`],Nwe=[`xAxisId`,`yAxisId`],Pwe=[`xAxisId`,`yAxisId`];function Fwe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HB(e){for(var t=1;t{var{fill:t}=e;if(!t||t===`none`)return null;var{fillOpacity:n,x:r,y:i,width:a,height:o,ry:s}=e;return y.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function Vwe(e){var{option:t,lineItemProps:n}=e,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var{x1:i,y1:a,x2:o,y2:s,key:c}=n,l=VT(WB(n,jwe))??{},{offset:u}=l,d=WB(l,Mwe);r=y.createElement(`line`,UB({},d,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function Hwe(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=WB(e,Nwe),c=i.map((e,i)=>{var a=HB(HB({},s),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${i}`,index:i});return y.createElement(Vwe,{key:`line-${i}`,option:r,lineItemProps:a})});return y.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},c)}function Uwe(e){var{y:t,height:n,vertical:r=!0,verticalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=WB(e,Pwe),c=i.map((e,i)=>{var a=HB(HB({},s),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${i}`,index:i});return y.createElement(Vwe,{option:r,lineItemProps:a,key:`line-${i}`})});return y.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},c)}function Wwe(e){var{horizontalFill:t,fillOpacity:n,x:r,y:i,width:a,height:o,horizontalPoints:s,horizontal:c=!0}=e;if(!c||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return y.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function Gwe(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:i,y:a,width:o,height:s,verticalPoints:c}=e;if(!t||!n||!n.length)return null;var l=c.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,t)=>{var c=l[t+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=t%n.length;return y.createElement(`rect`,{key:`react-${t}`,x:e,y:a,width:u,height:s,stroke:`none`,fill:n[d],fillOpacity:r,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},u)}var Kwe=(e,t)=>{var{xAxis:n,width:r,height:i,offset:a}=e;return Ek(LB(HB(HB(HB({},BB),n),{},{ticks:Dk(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},qwe=(e,t)=>{var{yAxis:n,width:r,height:i,offset:a}=e;return Ek(LB(HB(HB(HB({},BB),n),{},{ticks:Dk(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},Jwe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:UF.grid};function GB(e){var t=cA(),n=lA(),r=sA(),i=HB(HB({},gD(e,Jwe)),{},{x:XE(e.x)?e.x:r.left,y:XE(e.y)?e.y:r.top,width:XE(e.width)?e.width:r.width,height:XE(e.height)?e.height:r.height}),{xAxisId:a,yAxisId:o,x:s,y:c,width:l,height:u,syncWithTicks:d,horizontalValues:f,verticalValues:p}=i,m=Kk(),h=ID(e=>IL(e,`xAxis`,a,m)),g=ID(e=>IL(e,`yAxis`,o,m));if(!Sk(l)||!Sk(u)||!XE(s)||!XE(c))return null;var _=i.verticalCoordinatesGenerator||Kwe,v=i.horizontalCoordinatesGenerator||qwe,{horizontalPoints:b,verticalPoints:x}=i;if((!b||!b.length)&&typeof v==`function`){var S=f&&f.length,C=v({yAxis:g?HB(HB({},g),{},{ticks:S?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},S?!0:d);Yk(Array.isArray(C),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof C}]`),Array.isArray(C)&&(b=C)}if((!x||!x.length)&&typeof _==`function`){var w=p&&p.length,T=_({xAxis:h?HB(HB({},h),{},{ticks:w?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);Yk(Array.isArray(T),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(x=T)}return y.createElement(GR,{zIndex:i.zIndex},y.createElement(`g`,{className:`recharts-cartesian-grid`},y.createElement(Bwe,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),y.createElement(Wwe,UB({},i,{horizontalPoints:b})),y.createElement(Gwe,UB({},i,{verticalPoints:x})),y.createElement(Hwe,UB({},i,{offset:r,horizontalPoints:b,xAxis:h,yAxis:g})),y.createElement(Uwe,UB({},i,{offset:r,verticalPoints:x,xAxis:h,yAxis:g}))))}GB.displayName=`CartesianGrid`;var Ywe=sk({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:i}=t.payload;e[n]&&(e[n]=e[n].map(e=>e.dataKey===r.dataKey&&e.direction===r.direction?i:e))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(e=>e.dataKey!==r.dataKey||e.direction!==r.direction))}}}),{addErrorBar:Xwe,replaceErrorBar:Zwe,removeErrorBar:Qwe}=Ywe.actions,$we=Ywe.reducer,eTe=[`children`];function tTe(e,t){if(e==null)return{};var n,r,i=nTe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r({x:0,y:0,value:0}),errorBarOffset:0});function iTe(e){var{children:t}=e,n=tTe(e,eTe);return y.createElement(rTe.Provider,{value:n},t)}function KB(e,t){var n=ID(t=>TI(t,e)),r=ID(e=>OI(e,t)),i=n?.allowDataOverflow??CI.allowDataOverflow,a=r?.allowDataOverflow??EI.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function qB(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,i=kB(),{needClipX:a,needClipY:o,needClip:s}=KB(t,n);if(!s||!i)return null;var{x:c,y:l,width:u,height:d}=i;return y.createElement(`clipPath`,{id:`clipPath-${r}`},y.createElement(`rect`,{x:a?c:c-u/2,y:o?l:l-d/2,width:a?u:u*2,height:o?d:d*2}))}var aTe=(e,t,n,r)=>zL(e,`xAxis`,t,r),oTe=(e,t,n,r)=>RL(e,`xAxis`,t,r),sTe=(e,t,n,r)=>zL(e,`yAxis`,n,r),cTe=(e,t,n,r)=>RL(e,`yAxis`,n,r),lTe=VD([uA,aTe,sTe,oTe,cTe],(e,t,n,r,i)=>Tk(e,`xAxis`)?Nk(t,r,!1):Nk(n,i,!1)),uTe=(e,t,n,r,i)=>i;function dTe(e){return e.type===`line`}var fTe=VD([uA,aTe,sTe,oTe,cTe,VD([PI,uTe],(e,t)=>e.filter(dTe).find(e=>e.id===t)),lTe,wF],(e,t,n,r,i,a,o,s)=>{var{chartData:c,dataStartIndex:l,dataEndIndex:u}=s;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var{dataKey:d,data:f}=a,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return tEe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function pTe(e){var t=HT(e),n=3,r=2;if(t!=null){var{r:i,strokeWidth:a}=t,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}var mTe=o((e=>{var t=f();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));o(((e,t)=>{t.exports=mTe()}))();function hTe(e){e()}function gTe(){let e=null,t=null;return{clear(){e=null,t=null},notify(){hTe(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var _Te={notify(){},get:()=>[]};function vTe(e,t){let n,r=_Te,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=gTe())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=_Te)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var yTe=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,bTe=typeof navigator<`u`&&navigator.product===`ReactNative`,xTe=yTe||bTe?y.useLayoutEffect:y.useEffect;function STe(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function CTe(e,t){if(STe(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r({store:i,subscription:vTe(i),getServerState:r?()=>r:void 0}),[i,r]),o=y.useMemo(()=>i.getState(),[i]);xTe(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||DTe;return y.createElement(s.Provider,{value:a},t)}var kTe=OTe,ATe=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`]);function jTe(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function JB(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(ATe.has(n)){if(e[n]==null&&t[n]==null)continue;if(!CTe(e[n],t[n]))return!1}else if(!jTe(e[n],t[n]))return!1;return!0}var MTe=[`id`],NTe=[`type`,`layout`,`connectNulls`,`needClip`,`shape`],PTe=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function YB(){return YB=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:Fk(n,t),payload:e}]},VTe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:oD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Fk(o,t),hide:s,type:l,color:r,unit:c,graphicalItemId:u}};return y.createElement(yB,{tooltipEntrySettings:d})}),HTe=(e,t)=>`${t}px ${e-t}px`;function UTe(e,t){for(var n=e.length%2==0?e:[...e,0],r=[],i=0;i{var r=n.reduce((e,t)=>e+t);if(!r)return HTe(t,e);for(var i=Math.floor(e/r),a=e%r,o=t-e,s=[],c=0,l=0;ca){s=[...n.slice(0,c),a-l];break}}var f=s.length%2==0?[0,o]:[o];return[...UTe(n,i),...s,...f].map(e=>`${e}px`).join(`, `)};function GTe(e){var{clipPathId:t,points:n,props:r}=e,{dot:i,dataKey:a,needClip:o}=r,{id:s}=r,c=VT(ZB(r,MTe));return y.createElement(HSe,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:c,needClip:o,clipPathId:t})}function KTe(e){var{showLabels:t,children:n,points:r}=e,i=(0,y.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return XB(XB({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return y.createElement(Xz,{value:t?i:void 0},n)}function qTe(e){var{clipPathId:t,pathRef:n,points:r,strokeDasharray:i,props:a}=e,{type:o,layout:s,connectNulls:c,needClip:l,shape:u}=a,d=XB(XB({},UT(ZB(a,NTe))),{},{fill:`none`,className:`recharts-line-curve`,clipPath:l?`url(#clipPath-${t})`:void 0,points:r,type:o,layout:s,connectNulls:c,strokeDasharray:i??a.strokeDasharray});return y.createElement(y.Fragment,null,r?.length>1&&y.createElement(hB,YB({shapeType:`curve`,option:u},d,{pathRef:n})),y.createElement(GTe,{points:r,clipPathId:t,props:a}))}function JTe(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function YTe(e){var{clipPathId:t,props:n,pathRef:r,previousPointsRef:i,longestAnimatedLengthRef:a}=e,{points:o,strokeDasharray:s,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,animateNewValues:f,width:p,height:m,onAnimationEnd:h,onAnimationStart:g}=n,_=i.current,v=Yj(o,`recharts-line-`),b=(0,y.useRef)(v),[x,S]=(0,y.useState)(!1),C=!x,w=(0,y.useCallback)(()=>{typeof h==`function`&&h(),S(!1)},[h]),T=(0,y.useCallback)(()=>{typeof g==`function`&&g(),S(!0)},[g]),E=JTe(r.current),D=(0,y.useRef)(0);b.current!==v&&(D.current=a.current,b.current=v);var O=D.current;return y.createElement(KTe,{points:o,showLabels:C},n.children,y.createElement(Jj,{animationId:v,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:w,onAnimationStart:T,key:v},e=>{var l=tD(O,E+O,e),u=Math.min(l,E),d=c?s?WTe(u,E,`${s}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):HTe(E,u):s==null?void 0:String(s);if(e>0&&E>0&&(i.current=o,a.current=Math.max(a.current,u)),_){var h=_.length/o.length,g=e===1?o:o.map((t,n)=>{var r=Math.floor(n*h);if(_[r]){var i=_[r];return XB(XB({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return f?XB(XB({},t),{},{x:tD(p*2,t.x,e),y:tD(m/2,t.y,e)}):XB(XB({},t),{},{x:t.x,y:t.y})});return i.current=g,y.createElement(qTe,{props:n,points:g,clipPathId:t,pathRef:r,strokeDasharray:d})}return y.createElement(qTe,{props:n,points:o,clipPathId:t,pathRef:r,strokeDasharray:d})}),y.createElement($z,{label:n.label}))}function XTe(e){var{clipPathId:t,props:n}=e,r=(0,y.useRef)(null),i=(0,y.useRef)(0),a=(0,y.useRef)(null);return y.createElement(YTe,{props:n,clipPathId:t,previousPointsRef:r,longestAnimatedLengthRef:i,pathRef:a})}var ZTe=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:wk(e.payload,t)}),QTe=class extends y.Component{render(){var{hide:e,dot:t,points:n,className:r,xAxisId:i,yAxisId:a,top:o,left:s,width:c,height:l,id:u,needClip:d,zIndex:f}=this.props;if(e)return null;var p=LT(`recharts-line`,r),m=u,{r:h,strokeWidth:g}=pTe(t),_=dB(t),v=h*2+g,b=d?`url(#clipPath-${_?``:`dots-`}${m})`:void 0;return y.createElement(GR,{zIndex:f},y.createElement(qT,{className:p},d&&y.createElement(`defs`,null,y.createElement(qB,{clipPathId:m,xAxisId:i,yAxisId:a}),!_&&y.createElement(`clipPath`,{id:`clipPath-dots-${m}`},y.createElement(`rect`,{x:s-v/2,y:o-v/2,width:c+v,height:l+v}))),y.createElement(iTe,{xAxisId:i,yAxisId:a,data:n,dataPointFormatter:ZTe,errorBarOffset:0},y.createElement(XTe,{props:this.props,clipPathId:m}))),y.createElement(jB,{activeDot:this.props.activeDot,points:n,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:b}))}},$Te={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:UF.line,type:`linear`};function eEe(e){var t=gD(e,$Te),{activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:s,dot:c,hide:l,isAnimationActive:u,label:d,legendType:f,xAxisId:p,yAxisId:m,id:h}=t,g=ZB(t,PTe),{needClip:_}=KB(p,m),v=kB(),b=dA(),x=Kk(),S=ID(e=>fTe(e,p,m,x,h));if(b!==`horizontal`&&b!==`vertical`||S==null||v==null)return null;var{height:C,width:w,x:T,y:E}=v;return y.createElement(QTe,YB({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:S,layout:b,height:C,width:w,left:T,top:E,needClip:_}))}function tEe(e){var{layout:t,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:s,displayedData:c}=e;return c.map((e,c)=>{var l=wk(e,o);if(t===`horizontal`)return{x:kk({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(rD(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=rD(l)?null:n.scale.map(l),d=kk({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function nEe(e){var t=gD(e,$Te),n=Kk();return y.createElement(xB,{id:t.id,type:`line`},e=>y.createElement(y.Fragment,null,y.createElement(bB,{legendPayload:BTe(t)}),y.createElement(VTe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(SB,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),y.createElement(eEe,YB({},t,{id:e}))))}var QB=y.memo(nEe,JB);QB.displayName=`Line`;function $B(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function eV(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var rEe=(e,t,n)=>zL(e,`xAxis`,$B(e,t),n),iEe=(e,t,n)=>RL(e,`xAxis`,$B(e,t),n),aEe=(e,t,n)=>zL(e,`yAxis`,eV(e,t),n),oEe=(e,t,n)=>RL(e,`yAxis`,eV(e,t),n),sEe=VD([uA,rEe,aEe,iEe,oEe],(e,t,n,r,i)=>Tk(e,`xAxis`)?Nk(t,r,!1):Nk(n,i,!1)),cEe=VD([PI,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),lEe=e=>Tk(uA(e),`xAxis`)?`yAxis`:`xAxis`,uEe=(e,t)=>lEe(e)===`yAxis`?eV(e,t):$B(e,t),dEe=VD([uA,rEe,aEe,iEe,oEe,VD([cEe,(e,t,n)=>ZI(e,lEe(e),uEe(e,t),n)],(e,t)=>{if(!(e==null||t==null)){var{stackId:n}=e,r=lI(e);if(!(n==null||r==null)){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),TF,sEe,cEe,f_e],(e,t,n,r,i,a,o,s,c,l)=>{var{chartData:u,dataStartIndex:d,dataEndIndex:f}=o;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var{data:p}=c,m=p&&p.length>0?p:u?.slice(d,f+1);if(m!=null)return PEe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:c,stackedData:a,displayedData:m,chartBaseValue:l,bandSize:s})}}),fEe=[`id`],pEe=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function tV(){return tV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:rV(r,i),value:Fk(n,t),payload:e}]},xEe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:oD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Fk(o,t),hide:s,type:l,color:rV(r,a),unit:c,graphicalItemId:u}};return y.createElement(yB,{tooltipEntrySettings:d})});function SEe(e){var{clipPathId:t,points:n,props:r}=e,{needClip:i,dot:a,dataKey:o}=r,s=VT(r);return y.createElement(HSe,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function CEe(e){var{showLabels:t,children:n,points:r}=e,i=r.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return nV(nV({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return y.createElement(Xz,{value:t?i:void 0},n)}function wEe(e){var{points:t,baseLine:n,needClip:r,clipPathId:i,props:a}=e,{layout:o,type:s,stroke:c,connectNulls:l,isRange:u}=a,{id:d}=a,f=mEe(a,fEe),p=VT(f),m=UT(f);return y.createElement(y.Fragment,null,t?.length>1&&y.createElement(qT,{clipPath:r?`url(#clipPath-${i})`:void 0},y.createElement(kj,tV({},m,{id:d,points:t,connectNulls:l,type:s,baseLine:n,layout:o,stroke:`none`,className:`recharts-area-area`})),c!==`none`&&y.createElement(kj,tV({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:t})),c!==`none`&&u&&y.createElement(kj,tV({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:n}))),y.createElement(SEe,{points:t,props:f,clipPathId:i}))}function TEe(e){var{alpha:t,baseLine:n,points:r,strokeWidth:i}=e,a=r[0]?.y,o=r[r.length-1]?.y;if(!xk(a)||!xk(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return XE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),XE(c)?y.createElement(`rect`,{x:0,y:ae.y||0));return XE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),XE(c)?y.createElement(`rect`,{x:a({points:o,baseLine:s}),[o,s]),`recharts-area-`),h=fA(),[g,_]=(0,y.useState)(!1),v=!g,b=(0,y.useCallback)(()=>{typeof p==`function`&&p(),_(!1)},[p]),x=(0,y.useCallback)(()=>{typeof f==`function`&&f(),_(!0)},[f]);if(h==null)return null;var S=i.current,C=a.current;return y.createElement(CEe,{showLabels:v,points:o},r.children,y.createElement(Jj,{animationId:m,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:b,onAnimationStart:x,key:m},e=>{if(S){var l=S.length/o.length,u=e===1?o:o.map((t,n)=>{var r=Math.floor(n*l);if(S[r]){var i=S[r];return nV(nV({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return t}),d=XE(s)?tD(C,s,e):rD(s)||JE(s)?tD(C,0,e):s.map((t,n)=>{var r=Math.floor(n*l);if(Array.isArray(C)&&C[r]){var i=C[r];return nV(nV({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return t});return e>0&&(i.current=u,a.current=d),y.createElement(wEe,{points:u,baseLine:d,needClip:t,clipPathId:n,props:r})}return e>0&&(i.current=o,a.current=s),y.createElement(qT,null,c&&y.createElement(`defs`,null,y.createElement(`clipPath`,{id:`animationClipPath-${n}`},y.createElement(DEe,{alpha:e,points:o,baseLine:s,layout:h,strokeWidth:r.strokeWidth}))),y.createElement(qT,{clipPath:`url(#animationClipPath-${n})`},y.createElement(wEe,{points:o,baseLine:s,needClip:t,clipPathId:n,props:r})))}),y.createElement($z,{label:r.label}))}function kEe(e){var{needClip:t,clipPathId:n,props:r}=e,i=(0,y.useRef)(null),a=(0,y.useRef)();return y.createElement(OEe,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var AEe=class extends y.PureComponent{render(){var{hide:e,dot:t,points:n,className:r,top:i,left:a,needClip:o,xAxisId:s,yAxisId:c,width:l,height:u,id:d,baseLine:f,zIndex:p}=this.props;if(e)return null;var m=LT(`recharts-area`,r),h=d,{r:g,strokeWidth:_}=pTe(t),v=dB(t),b=g*2+_,x=o?`url(#clipPath-${v?``:`dots-`}${h})`:void 0;return y.createElement(GR,{zIndex:p},y.createElement(qT,{className:m},o&&y.createElement(`defs`,null,y.createElement(qB,{clipPathId:h,xAxisId:s,yAxisId:c}),!v&&y.createElement(`clipPath`,{id:`clipPath-dots-${h}`},y.createElement(`rect`,{x:a-b/2,y:i-b/2,width:l+b,height:u+b}))),y.createElement(kEe,{needClip:o,clipPathId:h,props:this.props})),y.createElement(jB,{points:n,mainColor:rV(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}),this.props.isRange&&Array.isArray(f)&&y.createElement(jB,{points:f,mainColor:rV(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}))}},jEe={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,xAxisId:0,yAxisId:0,zIndex:UF.area};function MEe(e){var t=gD(e,jEe),{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,connectNulls:o,dot:s,fill:c,fillOpacity:l,hide:u,isAnimationActive:d,legendType:f,stroke:p,xAxisId:m,yAxisId:h}=t,g=mEe(t,pEe),_=dA(),v=NR(),{needClip:b}=KB(m,h),x=Kk(),{points:S,isRange:C,baseLine:w}=ID(t=>dEe(t,e.id,x))??{},T=kB();if(_!==`horizontal`&&_!==`vertical`||T==null||v!==`AreaChart`&&v!==`ComposedChart`)return null;var{height:E,width:D,x:O,y:k}=T;return!S||!S.length?null:y.createElement(AEe,tV({},g,{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,baseLine:w,connectNulls:o,dot:s,fill:c,fillOpacity:l,height:E,hide:u,layout:_,isAnimationActive:d===`auto`?!Gj.isSsr:d,isRange:C,legendType:f,needClip:b,points:S,stroke:p,width:D,left:O,top:k,xAxisId:m,yAxisId:h}))}var NEe=(e,t,n,r,i)=>{var a=n??t;if(XE(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function PEe(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:i,layout:a,chartBaseValue:o,xAxis:s,yAxis:c,displayedData:l,dataStartIndex:u,xAxisTicks:d,yAxisTicks:f,bandSize:p}=e,m=i&&i.length,h=NEe(a,o,n,s,c),g=a===`horizontal`,_=!1,v=l.map((e,n)=>{var a;if(m)a=i[u+n];else{var o=wk(e,r);Array.isArray(o)?(a=o,_=!0):a=[h,o]}var l=a?.[1]??null,v=l==null||m&&!t&&wk(e,r)==null;return g?{x:kk({axis:s,ticks:d,bandSize:p,entry:e,index:n}),y:v?null:c.scale.map(l)??null,value:a,payload:e}:{x:v?null:s.scale.map(l)??null,y:kk({axis:c,ticks:f,bandSize:p,entry:e,index:n}),value:a,payload:e}});return{points:v,baseLine:(m||_?v.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return g?{x:e.x,y:t!=null&&e.y!=null?c.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:s.scale.map(t)??null,y:e.y,payload:e.payload}}):g?c.scale.map(h):s.scale.map(h))??0,isRange:_}}function FEe(e){var t=gD(e,jEe),n=Kk();return y.createElement(xB,{id:t.id,type:`area`},e=>y.createElement(y.Fragment,null,y.createElement(bB,{legendPayload:bEe(t)}),y.createElement(xEe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(SB,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Ok(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(MEe,tV({},t,{id:e}))))}var iV=y.memo(FEe,JB);iV.displayName=`Area`;var IEe=!0,aV=`Invariant failed`;function LEe(e,t){if(!e){if(IEe)throw Error(aV);var n=typeof t==`function`?t():t,r=n?`${aV}: ${n}`:aV;throw Error(r)}}function oV(){return oV=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(XE(e))return e;var i=XE(n)||rD(n);return i?e(n,r):(!i&&LEe(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},zEe=(e,t,n)=>n,cV=VD([PI,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),BEe=VD([cV],e=>e?.maxBarSize),VEe=(e,t,n,r)=>r,HEe=VD([uA,PI,$B,eV,zEe],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),UEe=(e,t,n)=>{var r=uA(e),i=$B(e,t),a=eV(e,t);if(!(i==null||a==null))return r===`horizontal`?ZI(e,`yAxis`,a,n):ZI(e,`xAxis`,i,n)},WEe=VD([HEe,d_e,(e,t)=>{var n=uA(e),r=$B(e,t),i=eV(e,t);if(!(r==null||i==null))return n===`horizontal`?jL(e,`xAxis`,r):jL(e,`yAxis`,i)}],mCe),GEe=(e,t,n)=>{var r=cV(e,t);if(r==null)return 0;var i=$B(e,t),a=eV(e,t);if(i==null||a==null)return 0;var o=uA(e),s=FF(e),{maxBarSize:c}=r,l=rD(c)?s:c,u,d;return o===`horizontal`?(u=zL(e,`xAxis`,i,n),d=RL(e,`xAxis`,i,n)):(u=zL(e,`yAxis`,a,n),d=RL(e,`yAxis`,a,n)),Nk(u,d,!0)??l??0},KEe=(e,t,n)=>{var r=uA(e),i=$B(e,t),a=eV(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=zL(e,`xAxis`,i,n),s=RL(e,`xAxis`,i,n)):(o=zL(e,`yAxis`,a,n),s=RL(e,`yAxis`,a,n)),Nk(o,s)}},qEe=VD([Wk,Gk,(e,t,n)=>{var r=$B(e,t);if(r!=null)return zL(e,`xAxis`,r,n)},(e,t,n)=>{var r=eV(e,t);if(r!=null)return zL(e,`yAxis`,r,n)},(e,t,n)=>{var r=$B(e,t);if(r!=null)return RL(e,`xAxis`,r,n)},(e,t,n)=>{var r=eV(e,t);if(r!=null)return RL(e,`yAxis`,r,n)},VD([VD([WEe,FF,u_e,IF,GEe,KEe,BEe],bCe),cV],SCe),uA,TF,KEe,VD([UEe,cV],xCe),cV,VEe],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var{chartData:p,dataStartIndex:m,dataEndIndex:h}=c;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var{data:g}=d,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return TDe({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),JEe=[`index`];function lV(){return lV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,y.useContext)(ZEe);if(t!=null)return t.stackId;if(e!=null)return Ok(e)},$Ee=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,eDe=e=>{var t=(0,y.useContext)(ZEe);if(t!=null){var{stackId:n}=t;return`url(#${$Ee(n,e)})`}},tDe=e=>{var{index:t}=e,n=YEe(e,JEe),r=eDe(t);return y.createElement(qT,lV({className:`recharts-bar-stack-layer`,clipPath:r},n))},nDe=[`onMouseEnter`,`onMouseLeave`,`onClick`],rDe=[`value`,`background`,`tooltipPosition`],iDe=[`id`],aDe=[`onMouseEnter`,`onClick`,`onMouseLeave`];function uV(){return uV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:Fk(n,t),payload:e}]},fDe=y.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:s,tooltipType:c,id:l}=e,u={dataDefinedOnItem:void 0,getPosition:oD,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Fk(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return y.createElement(yB,{tooltipEntrySettings:u})});function pDe(e){var t=ID(wR),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=fV(a,nDe),u=gB(o,r,a.id),d=_B(s),f=vB(c,r,a.id);if(!i||n==null)return null;var p=HT(i);return y.createElement(GR,{zIndex:CCe(i,UF.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=fV(e,rDe);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=dV(dV(dV(dV(dV({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),mD(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return y.createElement(sV,uV({key:`background-bar-${n}`},_))}))}function mDe(e){var{showLabels:t,children:n,rects:r}=e,i=r?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return dV(dV({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return y.createElement(Xz,{value:t?i:void 0},n)}function hDe(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=ID(wR),c=ID(ER),l=n&&String(a)===s&&(c==null||o===c),u=l?n:t;return l?y.createElement(GR,{zIndex:UF.activeBar},y.createElement(tDe,{index:a},y.createElement(sV,uV({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o})))):y.createElement(sV,uV({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o}))}function gDe(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return y.createElement(sV,uV({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function _De(e){var{data:t,props:n}=e,r=VT(n)??{},{id:i}=r,a=fV(r,iDe),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=fV(n,aDe),p=gB(l,s,i),m=_B(d),h=vB(u,s,i);return t?y.createElement(y.Fragment,null,t.map((e,t)=>y.createElement(tDe,uV({index:t,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},mD(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?y.createElement(hDe,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):y.createElement(gDe,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function vDe(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,onAnimationEnd:l,onAnimationStart:u}=t,d=n.current,f=Yj(t,`recharts-bar-`),[p,m]=(0,y.useState)(!1),h=!p,g=(0,y.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,y.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return y.createElement(mDe,{showLabels:h,rects:r},y.createElement(Jj,{animationId:f,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:g,onAnimationStart:_,key:f},e=>{var a=e===1?r:r?.map((t,n)=>{var r=d&&d[n];if(r)return dV(dV({},t),{},{x:tD(r.x,t.x,e),y:tD(r.y,t.y,e),width:tD(r.width,t.width,e),height:tD(r.height,t.height,e)});if(i===`horizontal`){var a=tD(0,t.height,e),o=tD(t.stackedBarStart,t.y,e);return dV(dV({},t),{},{y:o,height:a})}var s=tD(0,t.width,e),c=tD(t.stackedBarStart,t.x,e);return dV(dV({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:y.createElement(qT,null,y.createElement(_De,{props:t,data:a}))}),y.createElement($z,{label:t.label}),t.children)}function yDe(e){var t=(0,y.useRef)(null);return y.createElement(vDe,{previousRectanglesRef:t,props:e})}var bDe=0,xDe=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:wk(e,t)}},SDe=class extends y.PureComponent{render(){var{hide:e,data:t,dataKey:n,className:r,xAxisId:i,yAxisId:a,needClip:o,background:s,id:c}=this.props;if(e||t==null)return null;var l=LT(`recharts-bar`,r),u=c;return y.createElement(qT,{className:l,id:c},o&&y.createElement(`defs`,null,y.createElement(qB,{clipPathId:u,xAxisId:i,yAxisId:a})),y.createElement(qT,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},y.createElement(pDe,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),y.createElement(yDe,this.props)))}},CDe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:bDe,xAxisId:0,yAxisId:0,zIndex:UF.bar};function wDe(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u}=e,{needClip:d}=KB(t,n),f=dA(),p=Kk(),m=uB(e.children,lz),h=ID(t=>qEe(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,y.createElement(iTe,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:xDe,errorBarOffset:g},y.createElement(SDe,uV({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function TDe(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r},pos:i,bandSize:a,xAxis:o,yAxis:s,xAxisTicks:c,yAxisTicks:l,stackedData:u,displayedData:d,offset:f,cells:p,parentViewBox:m,dataStartIndex:h}=e,g=t===`horizontal`?s:o,_=u?g.scale.domain():null,v=Hde({numericAxis:g}),y=g.scale.map(v);return d.map((e,d)=>{var g,b,x,S,C,w;if(u){var T=u[d+h];if(T==null)return null;g=zde(T,_)}else g=wk(e,n),Array.isArray(g)||(g=[v,g]);var E=REe(r,bDe)(g[1],d);if(t===`horizontal`){var D=s.scale.map(g[0]),O=s.scale.map(g[1]);if(D==null||O==null)return null;b=Ak({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:d}),x=O??D??void 0,S=i.size;var k=D-O;if(C=JE(k)?0:k,w={x:b,y:f.top,width:S,height:f.height},Math.abs(E)>0&&Math.abs(C)0&&Math.abs(S)y.createElement(y.Fragment,null,y.createElement(bB,{legendPayload:dDe(t)}),y.createElement(fDe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(SB,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),y.createElement(GR,{zIndex:t.zIndex},y.createElement(wDe,uV({},t,{id:e})))))}var pV=y.memo(EDe,JB);pV.displayName=`Bar`;var DDe=[`domain`,`range`],ODe=[`domain`,`range`];function mV(e,t){if(e==null)return{};var n,r,i=kDe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{if(o!=null)return yV(yV({},a),{},{type:o})},[a,o]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(YSe(s)):n.current!==s&&t(XSe({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(ZSe(n.current)),null)},[t]),null}var RDe=e=>{var{xAxisId:t,className:n}=e,r=ID(Gk),i=Kk(),a=`xAxis`,o=ID(e=>LL(e,a,t,i)),s=ID(e=>kL(e,t)),c=ID(e=>ave(e,t)),l=ID(e=>wI(e,t));if(s==null||c==null||l==null)return null;var{dangerouslySetInnerHTML:u,ticks:d,scale:f}=e,p=bV(e,jDe),{id:m,scale:h}=l,g=bV(l,MDe);return y.createElement(VB,_V({},p,g,{x:c.x,y:c.y,width:s.width,height:s.height,className:LT(`recharts-${a} ${a}`,n),viewBox:r,ticks:o,axisType:a}))},zDe={allowDataOverflow:CI.allowDataOverflow,allowDecimals:CI.allowDecimals,allowDuplicatedCategory:CI.allowDuplicatedCategory,angle:CI.angle,axisLine:BB.axisLine,height:CI.height,hide:!1,includeHidden:CI.includeHidden,interval:CI.interval,label:!1,minTickGap:CI.minTickGap,mirror:CI.mirror,orientation:CI.orientation,padding:CI.padding,reversed:CI.reversed,scale:CI.scale,tick:CI.tick,tickCount:CI.tickCount,tickLine:BB.tickLine,tickSize:BB.tickSize,type:CI.type,xAxisId:0},xV=y.memo(e=>{var t=gD(e,zDe);return y.createElement(y.Fragment,null,y.createElement(LDe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),y.createElement(RDe,t))},gV);xV.displayName=`XAxis`;var BDe=[`type`],VDe=[`dangerouslySetInnerHTML`,`ticks`,`scale`],HDe=[`id`,`scale`];function SV(){return SV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return wV(wV({},a),{},{type:o})},[o,a]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(QSe(s)):n.current!==s&&t($Se({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(eCe(n.current)),null)},[t]),null}function JDe(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=ID(Gk),c=Kk(),l=PD(),u=`yAxis`,d=ID(e=>AL(e,t)),f=ID(e=>ove(e,t)),p=ID(e=>LL(e,u,t,c)),m=ID(e=>DI(e,t));if((0,y.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||Uz(i)||(0,y.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(iCe({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;var{dangerouslySetInnerHTML:h,ticks:g,scale:_}=e,v=TV(e,VDe),{id:b,scale:x}=m,S=TV(m,HDe);return y.createElement(VB,SV({},v,S,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:LT(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u}))}var YDe={allowDataOverflow:EI.allowDataOverflow,allowDecimals:EI.allowDecimals,allowDuplicatedCategory:EI.allowDuplicatedCategory,angle:EI.angle,axisLine:BB.axisLine,hide:!1,includeHidden:EI.includeHidden,interval:EI.interval,label:!1,minTickGap:EI.minTickGap,mirror:EI.mirror,orientation:EI.orientation,padding:EI.padding,reversed:EI.reversed,scale:EI.scale,tick:EI.tick,tickCount:EI.tickCount,tickLine:BB.tickLine,tickSize:BB.tickSize,type:EI.type,width:EI.width,yAxisId:0},EV=y.memo(e=>{var t=gD(e,YDe);return y.createElement(y.Fragment,null,y.createElement(qDe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),y.createElement(JDe,t))},gV);EV.displayName=`YAxis`;var DV=VD([(e,t)=>t,uA,oI,mI,_R,yR,Qve,Wk],aye),OV=e=>{var t=e.currentTarget.getBoundingClientRect(),n=t.width/e.currentTarget.offsetWidth,r=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/n),chartY:Math.round((e.clientY-t.top)/r)}},kV=ik(`mouseClick`),AV=yk();AV.startListening({actionCreator:kV,effect:(e,t)=>{var n=e.payload,r=DV(t.getState(),OV(n));r?.activeIndex!=null&&t.dispatch(gve({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var jV=ik(`mouseMove`),MV=yk(),NV=null;MV.startListening({actionCreator:jV,effect:(e,t)=>{var n=e.payload;NV!==null&&cancelAnimationFrame(NV);var r=OV(n);NV=requestAnimationFrame(()=>{var e=t.getState();if(UL(e,e.tooltip.settings.shared)===`axis`){var n=DV(e,r);n?.activeIndex==null?t.dispatch(JL()):t.dispatch(YL({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}NV=null})}});function XDe(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<>`:t}var PV={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},FV=sk({name:`rootProps`,initialState:PV,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??PV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),ZDe=FV.reducer,{updateOptions:QDe}=FV.actions,IV=sk({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>t.payload}}),{updatePolarOptions:$De}=IV.actions,eOe=IV.reducer,LV=ik(`keyDown`),RV=ik(`focus`),zV=yk();zV.startListening({actionCreator:LV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip,i=e.payload;if(!(i!==`ArrowRight`&&i!==`ArrowLeft`&&i!==`Enter`)){var a=tR(r,dR(n),YI(n),hR(n)),o=a==null?-1:Number(a);if(!(!Number.isFinite(o)||o<0)){var s=yR(n);if(i===`Enter`){var c=BR(n,`axis`,`hover`,String(r.index));t.dispatch(ZL({active:!r.active,activeIndex:r.index,activeCoordinate:c}));return}var l=sve(n)===`left-to-right`?1:-1,u=o+(i===`ArrowRight`?1:-1)*l;if(!(s==null||u>=s.length||u<0)){var d=BR(n,`axis`,`hover`,String(u));t.dispatch(ZL({active:!0,activeIndex:u.toString(),activeCoordinate:d}))}}}}}}),zV.startListening({actionCreator:RV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var i=`0`,a=BR(n,`axis`,`hover`,String(i));t.dispatch(ZL({active:!0,activeIndex:i,activeCoordinate:a}))}}}});var BV=ik(`externalEvent`),VV=yk(),HV=new Map;VV.startListening({actionCreator:BV,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){r.persist();var i=r.type,a=HV.get(i);a!==void 0&&cancelAnimationFrame(a);var o=requestAnimationFrame(()=>{try{var e=t.getState();n({activeCoordinate:Rve(e),activeDataKey:ER(e),activeIndex:wR(e),activeLabel:TR(e),activeTooltipIndex:wR(e),isTooltipActive:zve(e)},r)}finally{HV.delete(i)}});HV.set(i,o)}}});var tOe=VD([VD([aR],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),UV=ik(`touchMove`),WV=yk();WV.startListening({actionCreator:UV,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){var r=t.getState(),i=UL(r,r.tooltip.settings.shared);if(i===`axis`){var a=n.touches[0];if(a==null)return;var o=DV(r,OV({clientX:a.clientX,clientY:a.clientY,currentTarget:n.currentTarget}));o?.activeIndex!=null&&t.dispatch(YL({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(i===`item`){var s=n.touches[0];if(document.elementFromPoint==null||s==null)return;var c=document.elementFromPoint(s.clientX,s.clientY);if(!c||!c.getAttribute)return;var l=c.getAttribute(Vk),u=c.getAttribute(`data-recharts-item-id`)??void 0,d=uR(r).find(e=>e.id===u);if(l==null||d==null||u==null)return;var{dataKey:f}=d,p=tOe(r,l,u);t.dispatch(qL({activeDataKey:f,activeIndex:l,activeCoordinate:p,activeGraphicalItemId:u}))}}}});var nOe=eO({brush:OCe,cartesianAxis:aCe,chartData:Mye,errorBars:$we,graphicalItems:oSe,layout:Mde,legend:Lfe,options:Dye,polarAxis:sxe,polarOptions:eOe,referenceElements:BCe,rootProps:ZDe,tooltip:_ve,zIndex:vye}),rOe=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Uue({reducer:nOe,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([AV.middleware,MV.middleware,zV.middleware,VV.middleware,WV.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Vue({type:`raf`}))},devTools:Gj.devToolsEnabled&&{serialize:{replacer:XDe},name:`recharts-${t}`}})};function GV(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=Kk(),a=(0,y.useRef)(null);if(i)return n;a.current??=rOe(t,r);var o=MD;return y.createElement(kTe,{context:o,store:a.current},n)}function iOe(e){var{layout:t,margin:n}=e,r=PD(),i=Kk();return(0,y.useEffect)(()=>{i||(r(kde(t)),r(Ode(n)))},[r,i,t,n]),null}var KV=(0,y.memo)(iOe,JB);function qV(e){var t=PD();return(0,y.useEffect)(()=>{t(QDe(e))},[t,e]),null}function JV(e){var{zIndex:t,isPanorama:n}=e,r=(0,y.useRef)(null),i=PD();return(0,y.useLayoutEffect)(()=>(r.current&&i(gye({zIndex:t,element:r.current,isPanorama:n})),()=>{i(_ye({zIndex:t,isPanorama:n}))}),[i,t,n]),y.createElement(`g`,{tabIndex:-1,ref:r})}function YV(e){var{children:t,isPanorama:n}=e,r=ID(sye);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return y.createElement(y.Fragment,null,i.map(e=>y.createElement(JV,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>y.createElement(JV,{key:e,zIndex:e,isPanorama:n})))}var aOe=[`children`];function oOe(e,t){if(e==null)return{};var n,r,i=sOe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=cA(),r=lA(),i=yj();if(!Sk(n)||!Sk(r))return null;var{children:a,otherAttributes:o,title:s,desc:c}=e,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),y.createElement(GT,XV({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:cOe,ref:t}),a)}),uOe=e=>{var{children:t}=e,n=ID(Jk);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return y.createElement(GT,{width:r,height:i,x:o,y:a},t)},ZV=(0,y.forwardRef)((e,t)=>{var{children:n}=e,r=oOe(e,aOe);return Kk()?y.createElement(uOe,null,y.createElement(YV,{isPanorama:!0},n)):y.createElement(lOe,XV({ref:t},r),y.createElement(YV,{isPanorama:!1},n))});function dOe(){var e=PD(),[t,n]=(0,y.useState)(null),r=ID(Jde);return(0,y.useEffect)(()=>{if(t!=null){var n=t.getBoundingClientRect().width/t.offsetWidth;xk(n)&&n!==r&&e(jde(n))}},[t,e,r]),n}function QV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fOe(e){for(var t=1;t(Vye(),null);function eH(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var _Oe=(0,y.forwardRef)((e,t)=>{var n=(0,y.useRef)(null),[r,i]=(0,y.useState)({containerWidth:eH(e.style?.width),containerHeight:eH(e.style?.height)}),a=(0,y.useCallback)((e,t)=>{i(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),o=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null&&typeof ResizeObserver<`u`){var{width:r,height:i}=e.getBoundingClientRect();a(r,i);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var{width:n,height:r}=t.contentRect;a(n,r)}});o.observe(e),n.current=o}},[t,a]);return(0,y.useEffect)(()=>()=>{n.current?.disconnect()},[a]),y.createElement(y.Fragment,null,y.createElement(mA,{width:r.containerWidth,height:r.containerHeight}),y.createElement(`div`,$V({ref:o},e)))}),vOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e,[i,a]=(0,y.useState)({containerWidth:eH(n),containerHeight:eH(r)}),o=(0,y.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var{width:n,height:r}=e.getBoundingClientRect();o(n,r)}},[t,o]);return y.createElement(y.Fragment,null,y.createElement(mA,{width:i.containerWidth,height:i.containerHeight}),y.createElement(`div`,$V({ref:s},e)))}),yOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return y.createElement(y.Fragment,null,y.createElement(mA,{width:n,height:r}),y.createElement(`div`,$V({ref:t},e)))}),bOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return typeof n==`string`||typeof r==`string`?y.createElement(vOe,$V({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?y.createElement(yOe,$V({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(mA,{width:n,height:r}),y.createElement(`div`,$V({ref:t},e)))});function xOe(e){return e?_Oe:bOe}var SOe=(0,y.forwardRef)((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:s,onMouseDown:c,onMouseEnter:l,onMouseLeave:u,onMouseMove:d,onMouseUp:f,onTouchEnd:p,onTouchMove:m,onTouchStart:h,style:g,width:_,responsive:v,dispatchTouchEvents:b=!0}=e,x=(0,y.useRef)(null),S=PD(),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(null),D=dOe(),O=rA(),k=O?.width>0?O.width:_,A=O?.height>0?O.height:i,j=(0,y.useCallback)(e=>{D(e),typeof t==`function`&&t(e),w(e),E(e),e!=null&&(x.current=e)},[D,t,w,E]),M=(0,y.useCallback)(e=>{S(kV(e)),S(BV({handler:a,reactEvent:e}))},[S,a]),N=(0,y.useCallback)(e=>{S(jV(e)),S(BV({handler:l,reactEvent:e}))},[S,l]),P=(0,y.useCallback)(e=>{S(JL()),S(BV({handler:u,reactEvent:e}))},[S,u]),F=(0,y.useCallback)(e=>{S(jV(e)),S(BV({handler:d,reactEvent:e}))},[S,d]),I=(0,y.useCallback)(()=>{S(RV())},[S]),L=(0,y.useCallback)(e=>{S(LV(e.key))},[S]),R=(0,y.useCallback)(e=>{S(BV({handler:o,reactEvent:e}))},[S,o]),z=(0,y.useCallback)(e=>{S(BV({handler:s,reactEvent:e}))},[S,s]),B=(0,y.useCallback)(e=>{S(BV({handler:c,reactEvent:e}))},[S,c]),V=(0,y.useCallback)(e=>{S(BV({handler:f,reactEvent:e}))},[S,f]),ee=(0,y.useCallback)(e=>{S(BV({handler:h,reactEvent:e}))},[S,h]),te=(0,y.useCallback)(e=>{b&&S(UV(e)),S(BV({handler:m,reactEvent:e}))},[S,b,m]),ne=(0,y.useCallback)(e=>{S(BV({handler:p,reactEvent:e}))},[S,p]),re=xOe(v);return y.createElement(YR.Provider,{value:C},y.createElement(JT.Provider,{value:T},y.createElement(re,{width:k??g?.width,height:A??g?.height,className:LT(`recharts-wrapper`,r),style:fOe({position:`relative`,cursor:`default`,width:k,height:A},g),onClick:M,onContextMenu:R,onDoubleClick:z,onFocus:I,onKeyDown:L,onMouseDown:B,onMouseEnter:N,onMouseLeave:P,onMouseMove:F,onMouseUp:V,onTouchEnd:ne,onTouchMove:te,onTouchStart:ee,ref:j},y.createElement(gOe,null),n)))}),COe=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function wOe(e,t){if(e==null)return{};var n,r,i=TOe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{width:n,height:r,responsive:i,children:a,className:o,style:s,compact:c,title:l,desc:u}=e,d=VT(wOe(e,COe));return c?y.createElement(y.Fragment,null,y.createElement(mA,{width:n,height:r}),y.createElement(ZV,{otherAttributes:d,title:l,desc:u},a)):y.createElement(SOe,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},y.createElement(ZV,{otherAttributes:d,title:l,desc:u,ref:t},y.createElement(HCe,null,a)))});function nH(){return nH=Object.assign?Object.assign.bind():function(e){for(var t=1;ty.createElement(rH,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:DOe,tooltipPayloadSearcher:$R,categoricalChartProps:e,ref:t})),OOe=[`axis`,`item`],aH=(0,y.forwardRef)((e,t)=>y.createElement(rH,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:OOe,tooltipPayloadSearcher:$R,categoricalChartProps:e,ref:t}));function kOe(e){var t=PD();return(0,y.useEffect)(()=>{t($De(e))},[t,e]),null}var AOe=[`layout`];function oH(){return oH=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var n=gD(e,ROe);return y.createElement(NOe,{chartName:`PieChart`,defaultTooltipEventType:`item`,validateTooltipEventTypes:LOe,tooltipPayloadSearcher:$R,categoricalChartProps:n,ref:t})}),zOe=[`axis`],dH=(0,y.forwardRef)((e,t)=>y.createElement(rH,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:zOe,tooltipPayloadSearcher:$R,categoricalChartProps:e,ref:t})),fH=[{value:`6h`,label:`6h`,hours:6},{value:`24h`,label:`24h`,hours:24},{value:`48h`,label:`48h`,hours:48},{value:`7d`,label:`7d`,hours:168}];function BOe({isOpen:e,onClose:t,printerId:n,printerName:r,amsId:i,amsLabel:a,initialMode:o=`humidity`,thresholds:s}){let{t:c}=U(),[l,u]=(0,y.useState)(`24h`),[d,f]=(0,y.useState)(o),{data:p}=K({queryKey:[`settings`],queryFn:Z.getSettings}),m=p?.time_format||`system`;(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]);let h=fH.find(e=>e.value===l)?.hours||24,{data:g,isLoading:_,error:v}=K({queryKey:[`ams-history`,n,i,h],queryFn:()=>Z.getAMSHistory(n,i,h),enabled:e,refetchInterval:6e4});if(!e)return null;let b=g?.data.map(e=>({time:(rp(e.recorded_at)||new Date).getTime(),humidity:e.humidity,temperature:e.temperature}))||[],x=Date.now()-h*60*60*1e3,S=Date.now(),C=[...b];if(C.length>0){let e=C[0];e.time>x&&C.unshift({...e,time:x});let t=C[C.length-1];t.time{let t=e.filter(e=>e!=null);if(t.length<4)return`stable`;let n=t.slice(0,Math.floor(t.length/4)),r=t.slice(-Math.floor(t.length/4)),i=n.reduce((e,t)=>e+t,0)/n.length,a=r.reduce((e,t)=>e+t,0)/r.length-i;return Math.abs(a)<2?`stable`:a>0?`up`:`down`},M=j(C.map(e=>e.humidity)),N=j(C.map(e=>e.temperature)),P=({trend:e})=>e===`up`?(0,G.jsx)(Iu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}):e===`down`?(0,G.jsx)(Fu,{className:`w-4 h-4 text-green-600 dark:text-green-400`}):(0,G.jsx)(ml,{className:`w-4 h-4 text-gray-400 dark:text-bambu-gray`}),F=e=>e==null?`#9ca3af`:e<=w?`#22a352`:e<=T?`#d4a017`:`#c62828`,I=e=>e==null?`#9ca3af`:e<=E?`#22a352`:e<=D?`#d4a017`:`#c62828`,L=`var(--bg-secondary)`,R=`var(--bg-primary)`,z=`var(--border-color)`,B=`var(--text-primary)`,V=`var(--text-secondary)`,ee=`var(--text-muted)`;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,onClick:t,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-xl`,style:{backgroundColor:L},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b`,style:{borderColor:z},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold`,style:{color:B},children:[a,` `,c(`common.history`,`History`)]}),(0,G.jsx)(`p`,{className:`text-sm`,style:{color:V},children:r})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg transition-colors`,style:{color:V},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-6 overflow-y-auto max-h-[calc(90vh-80px)]`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between max-[550px]:flex-col max-[550px]:items-start max-[550px]:gap-3`,children:[(0,G.jsxs)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:R},children:[(0,G.jsxs)(`button`,{onClick:()=>f(`humidity`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${d===`humidity`?`bg-blue-600 text-white`:``}`,style:d===`humidity`?void 0:{color:V},children:[(0,G.jsx)(Qs,{className:`w-4 h-4`}),c(`common.humidity`,`Humidity`)]}),(0,G.jsxs)(`button`,{onClick:()=>f(`temperature`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${d===`temperature`?`bg-orange-600 text-white`:``}`,style:d===`temperature`?void 0:{color:V},children:[(0,G.jsx)(Mu,{className:`w-4 h-4`}),c(`common.temperature`,`Temperature`)]})]}),(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:R},children:fH.map(e=>(0,G.jsx)(`button`,{onClick:()=>u(e.value),className:`px-3 py-1 text-sm rounded-md transition-colors ${l===e.value?`bg-bambu-green text-white`:``}`,style:l===e.value?void 0:{color:V},children:e.label},e.value))})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-4 max-[550px]:grid-cols-2`,children:d===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:F(k)},children:k==null?`—`:`${k}%`}),(0,G.jsx)(P,{trend:M})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:B},children:g?.avg_humidity==null?`—`:`${g.avg_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-green-500`,children:g?.min_humidity==null?`—`:`${g.min_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:g?.max_humidity==null?`—`:`${g.max_humidity}%`})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:I(A)},children:A==null?`—`:`${A}°C`}),(0,G.jsx)(P,{trend:N})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:B},children:g?.avg_temperature==null?`—`:`${g.avg_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-blue-500`,children:g?.min_temperature==null?`—`:`${g.min_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:g?.max_temperature==null?`—`:`${g.max_temperature}°C`})]})]})}),(0,G.jsx)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:R},children:_?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.loading`,`Loading...`)}):v?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center text-red-500`,children:c(`common.error`,`Error loading data`)}):C.length===0?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.noData`,`No data available for this time range`)}):(0,G.jsx)(iA,{width:`100%`,height:300,children:(0,G.jsxs)(iH,{data:C,children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:z}),(0,G.jsx)(xV,{dataKey:`time`,type:`number`,domain:[Date.now()-h*60*60*1e3,Date.now()],tickFormatter:e=>{let t=new Date(e);return h>24?t.toLocaleDateString([],{day:`numeric`,month:`short`}):t.toLocaleTimeString([],np({hour:`2-digit`,minute:`2-digit`},m))},stroke:ee,tick:{fontSize:12}}),(0,G.jsx)(EV,{stroke:ee,tick:{fontSize:12},domain:d===`humidity`?[0,100]:[`auto`,`auto`],tickFormatter:e=>d===`humidity`?`${e}%`:`${e}°C`}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:L,border:`1px solid ${z}`,borderRadius:`8px`,color:B},labelFormatter:e=>new Date(e).toLocaleString(void 0,np({year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`},m)),formatter:e=>[d===`humidity`?`${e??0}%`:`${e??0}°C`,d===`humidity`?`Humidity`:`Temperature`]}),(0,G.jsx)(lj,{}),d===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(PB,{y:w,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(PB,{y:T,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(PB,{y:E,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(PB,{y:D,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}),(0,G.jsx)(QB,{type:`monotone`,dataKey:d,name:d===`humidity`?`Humidity`:`Temperature`,stroke:d===`humidity`?`#3b82f6`:`#f97316`,strokeWidth:2,dot:!1,activeDot:{r:4},connectNulls:!0})]})})}),(0,G.jsx)(`div`,{className:`text-xs text-center`,style:{color:V},children:c(`amsHistory.recordingInfo`,`Data is recorded every 5 minutes while the printer is connected`)})]})]})})}function pH({checked:e,onChange:t,disabled:n}){return(0,G.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,disabled:n,onClick:r=>{r.preventDefault(),r.stopPropagation(),n||t(!e)},className:`relative inline-flex w-11 h-7 md:w-9 md:h-5 rounded-full transition-colors flex-shrink-0 focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${n?`bg-bambu-dark-tertiary/50 cursor-not-allowed opacity-50`:e?`bg-bambu-green cursor-pointer`:`bg-bambu-dark-tertiary cursor-pointer hover:bg-bambu-dark-tertiary/80`}`,children:(0,G.jsx)(`span`,{className:`pointer-events-none absolute top-[3px] md:top-[2px] left-[3px] md:left-[2px] w-5 h-5 md:w-4 md:h-4 bg-white rounded-full shadow transition-transform duration-200 ease-in-out ${e?`translate-x-4`:`translate-x-0`}`})})}function VOe(e,t,n){let r=n===1||e>=128,i=e>=128?e-128:e,a=String.fromCharCode(65+i);return r?`HT·${t+1}`:`${a}·${t+1}`}function HOe(e){let t=(e||``).replace(`#`,``).slice(0,6);if(t.length!==6)return`#FFFFFF`;let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);return[n,r,i].some(Number.isNaN)?`#FFFFFF`:(.2126*n+.7152*r+.0722*i)/255>.55?`#1A1A1A`:`#FFFFFF`}function UOe({group:e,trayCountByAms:t,innerBg:n,textPrimary:r,textSecondary:i,showExtruderBadge:a,extruderLabel:o}){let s=mp(e.trayColor||void 0),c=HOe(e.trayColor),l=c===`#FFFFFF`?`rgba(0,0,0,0.45)`:`rgba(255,255,255,0.7)`,u=e.members.length;return(0,G.jsxs)(`div`,{className:`relative flex flex-col items-center`,children:[a&&(0,G.jsx)(`span`,{className:`absolute -top-1 -left-1 z-10 w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shadow`,style:{backgroundColor:r,color:n},"aria-label":o,title:o,children:o}),(0,G.jsxs)(`svg`,{viewBox:`-100 -100 200 200`,className:`w-44 h-44`,children:[(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`95`,fill:`none`,stroke:i,strokeOpacity:`0.25`,strokeWidth:`1`}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`92`,fill:s}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`56`,fill:n}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`56`,fill:`none`,stroke:i,strokeOpacity:`0.3`,strokeWidth:`1`}),(0,G.jsx)(`text`,{x:`0`,y:`-4`,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`14`,fontWeight:`700`,fill:r,children:e.displayName||`—`}),(0,G.jsx)(`text`,{x:`0`,y:`16`,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`11`,fontWeight:`500`,fill:i,children:`${u}× ↻`}),e.members.map((e,n)=>{let r=(n*360/u-90)*Math.PI/180,i=76*Math.cos(r),a=76*Math.sin(r),o=VOe(e.amsId,e.slotIdx,t.get(e.amsId)??4),s=Math.max(22,o.length*7+8);return(0,G.jsxs)(`g`,{children:[(0,G.jsx)(`rect`,{x:i-s/2,y:a-9,width:s,height:18,rx:9,ry:9,fill:l}),(0,G.jsx)(`text`,{x:i,y:a,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`12`,fontWeight:`700`,fill:c,children:o})]},`${e.amsId}-${e.slotIdx}`)})]})]})}function WOe({isOpen:e,state:t,amsUnits:n,amsExtruderMap:r,isDualNozzle:i,canToggle:a,pending:o,onToggle:s,onClose:c}){let{t:l}=U();if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.stopPropagation(),c())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,c]),!e)return null;let u=`var(--bg-secondary)`,d=`var(--border-color)`,f=`var(--text-primary)`,p=`var(--text-secondary)`,m=(()=>{if(!i||!r)return!1;let e=new Set;for(let t of n||[]){let n=r[String(t.id)];if(n!==void 0&&(e.add(Number(n)),e.size>1))return!0}return!1})(),h=nee(n,r,m),g=new Map((n||[]).map(e=>[e.id,e.tray.length])),_=h.filter(e=>e.members.length>=2),v=t===!0,b=t===null;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:c,"data-testid":`ams-backup-modal`,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-2xl max-h-[90vh] overflow-hidden shadow-xl flex flex-col`,style:{backgroundColor:u},onClick:e=>e.stopPropagation(),role:`dialog`,"aria-modal":`true`,"aria-labelledby":`ams-backup-modal-title`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b`,style:{borderColor:d},children:[(0,G.jsx)(`h2`,{id:`ams-backup-modal-title`,className:`text-base font-semibold`,style:{color:f},children:l(`printers.amsBackup.modalTitle`)}),(0,G.jsx)(`button`,{type:`button`,onClick:c,className:`p-1 rounded-md transition-colors hover:bg-black/10`,style:{color:p},"aria-label":l(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b`,style:{borderColor:d,backgroundColor:`var(--bg-primary)`},children:[(0,G.jsxs)(`div`,{className:`min-w-0 mr-3`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium`,style:{color:f},children:l(b?`printers.amsBackup.stateUnknown`:v?`printers.amsBackup.stateOn`:`printers.amsBackup.stateOff`)}),(0,G.jsx)(`p`,{className:`text-xs mt-0.5`,style:{color:p},children:l(`printers.amsBackup.modalHelp`)})]}),(0,G.jsx)(pH,{checked:v,onChange:s,disabled:!a||b||o})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-6`,children:_.length===0?(0,G.jsx)(`p`,{className:`text-sm text-center py-8`,style:{color:p},children:l(`printers.amsBackup.modalNoPairs`)}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-6 justify-items-center`,children:_.map(e=>(0,G.jsx)(UOe,{group:e,trayCountByAms:g,innerBg:u,textPrimary:f,textSecondary:p,showExtruderBadge:m,extruderLabel:e.extruder===0?l(`printers.amsBackup.extruderRightShort`):l(`printers.amsBackup.extruderLeftShort`)},e.key))})})]})})}var mH=[{value:`6h`,label:`6h`,hours:6},{value:`24h`,label:`24h`,hours:24},{value:`48h`,label:`48h`,hours:48},{value:`7d`,label:`7d`,hours:168}],hH={nozzle:`#fb923c`,nozzle_2:`#f97316`,bed:`#60a5fa`,chamber:`#34d399`},GOe={nozzle:`#fed7aa`,nozzle_2:`#fdba74`,bed:`#bfdbfe`,chamber:`#a7f3d0`};function KOe({isOpen:e,onClose:t,printerId:n,printerName:r,initialKind:i=`nozzle`,availableKinds:a=[`nozzle`,`bed`,`chamber`]}){let{t:o}=U(),[s,c]=(0,y.useState)(`24h`),[l,u]=(0,y.useState)(i);(0,y.useEffect)(()=>{u(i)},[i]);let{data:d}=K({queryKey:[`settings`],queryFn:Z.getSettings}),f=d?.time_format||`system`;(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]);let p=mH.find(e=>e.value===s)?.hours||24,{data:m,isLoading:h,error:g}=K({queryKey:[`printer-sensor-history`,n,p,a.join(`,`)],queryFn:()=>Z.getPrinterSensorHistory(n,p,a),enabled:e,refetchInterval:6e4});if(!e)return null;let _=m?.series.find(e=>e.sensor_kind===l),v=(_?.data||[]).map(e=>({time:(rp(e.recorded_at)||new Date).getTime(),value:e.value,target:e.target})),b=Date.now()-p*60*60*1e3,x=Date.now(),S=[...v];if(S.length>0){let e=S[0];e.time>b&&S.unshift({...e,time:b});let t=S[S.length-1];t.time{let t=e.filter(e=>e!=null);if(t.length<4)return`stable`;let n=t.slice(0,Math.floor(t.length/4)),r=t.slice(-Math.floor(t.length/4)),i=n.reduce((e,t)=>e+t,0)/n.length,a=r.reduce((e,t)=>e+t,0)/r.length-i;return Math.abs(a)<2?`stable`:a>0?`up`:`down`})(S.map(e=>e.value)),D=({trend:e})=>e===`up`?(0,G.jsx)(Iu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}):e===`down`?(0,G.jsx)(Fu,{className:`w-4 h-4 text-green-600 dark:text-green-400`}):(0,G.jsx)(ml,{className:`w-4 h-4 text-gray-400 dark:text-bambu-gray`}),O=`var(--bg-secondary)`,k=`var(--bg-primary)`,A=`var(--border-color)`,j=`var(--text-primary)`,M=`var(--text-secondary)`,N=`var(--text-muted)`,P=e=>{switch(e){case`nozzle`:return o(`printers.heaterHistory.nozzle`,`Nozzle`);case`nozzle_2`:return o(`printers.heaterHistory.nozzle2`,`Nozzle 2`);case`bed`:return o(`printers.heaterHistory.bed`,`Bed`);case`chamber`:return o(`printers.heaterHistory.chamber`,`Chamber`)}},F=({k:e})=>e===`nozzle`||e===`nozzle_2`?(0,G.jsx)(hc,{className:`w-4 h-4`}):e===`bed`?(0,G.jsx)(bu,{className:`w-4 h-4`}):(0,G.jsx)(Zo,{className:`w-4 h-4`});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,onClick:t,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-xl`,style:{backgroundColor:O},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b`,style:{borderColor:A},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,style:{color:j},children:o(`printers.heaterHistory.title`,`Heater History`)}),(0,G.jsx)(`p`,{className:`text-sm`,style:{color:M},children:r})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg transition-colors`,style:{color:M},"aria-label":o(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-6 overflow-y-auto max-h-[calc(90vh-80px)]`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between max-[550px]:flex-col max-[550px]:items-start max-[550px]:gap-3`,children:[(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:k},children:a.map(e=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${l===e?`text-white`:``}`,style:l===e?{backgroundColor:hH[e]}:{color:M},children:[(0,G.jsx)(F,{k:e}),P(e)]},e))}),(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:k},children:mH.map(e=>(0,G.jsx)(`button`,{onClick:()=>c(e.value),className:`px-3 py-1 text-sm rounded-md transition-colors ${s===e.value?`bg-bambu-green text-white`:``}`,style:s===e.value?void 0:{color:M},children:e.label},e.value))})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-4 gap-4 max-[550px]:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:hH[l]},children:w==null?`—`:`${Math.round(w)}°C`}),(0,G.jsx)(D,{trend:E})]}),T!=null&&T>0&&(0,G.jsxs)(`p`,{className:`text-xs mt-1`,style:{color:M},children:[o(`common.target`,`Target`),`: `,Math.round(T),`°C`]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.avg_value==null?`—`:`${_.avg_value}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.min_value==null?`—`:`${Math.round(_.min_value)}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.max_value==null?`—`:`${Math.round(_.max_value)}°C`})]})]}),(0,G.jsx)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:h?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center`,style:{color:M},children:o(`common.loading`,`Loading...`)}):g?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center text-red-700 dark:text-red-400`,children:o(`printers.heaterHistory.error`,`Failed to load history`)}):S.length===0?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center`,style:{color:M},children:o(`printers.heaterHistory.empty`,`No data recorded yet`)}):(0,G.jsx)(iA,{width:`100%`,height:300,children:(0,G.jsxs)(iH,{data:S,margin:{top:5,right:10,left:0,bottom:5},children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:A}),(0,G.jsx)(xV,{dataKey:`time`,type:`number`,domain:[b,x],tickFormatter:e=>new Date(e).toLocaleTimeString([],np({hour:`2-digit`,minute:`2-digit`},f)),stroke:N,fontSize:11}),(0,G.jsx)(EV,{stroke:N,fontSize:11,domain:[0,`auto`],tickFormatter:e=>`${Math.round(e)}°`}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:O,border:`1px solid ${A}`,borderRadius:6,color:j},labelFormatter:e=>new Date(e).toLocaleString(void 0,np({month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`},f)),formatter:e=>e==null?`—`:`${Math.round(Number(e))}°C`}),(0,G.jsx)(lj,{}),(0,G.jsx)(QB,{type:`monotone`,dataKey:`value`,name:o(`common.current`,`Current`),stroke:hH[l],strokeWidth:2,dot:!1,isAnimationActive:!1}),(0,G.jsx)(QB,{type:`stepAfter`,dataKey:`target`,name:o(`common.target`,`Target`),stroke:GOe[l],strokeDasharray:`4 4`,strokeWidth:1.5,dot:!1,isAnimationActive:!1})]})})})]})]})})}var qOe=2166136261,JOe=16777619;function YOe(...e){let t=qOe,n=new TextEncoder,r=n.encode(`__|`);for(let i of e)typeof i==`string`?t=gH(t,n.encode(i+`|`)):i??(t=gH(t,r));return t>>>0}function gH(e,t){for(let n of t)e^=n,e=Math.imul(e,JOe)>>>0;return e}function XOe(e){let t=()=>{e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,(t^t>>>14)>>>0},n=(e,n)=>{if(!Number.isFinite(e)||!Number.isFinite(n))throw RangeError(`from and to must be finite numbers`);if(e>n)throw RangeError(`from must be less than or equal to to`);return e===n?e:e+t()/4294967295*(n-e)};return{next:()=>t()/4294967295,floatBetween:(e,t)=>n(e,t),intBetween:(e,t)=>{if(!Number.isInteger(e)||!Number.isInteger(t))throw RangeError(`from and to must be integers`);return Math.round(n(e,t))}}}var _H={table:{dotCount:5,dotScale:1},preview:{dotCount:8,dotScale:1.5},card:{dotCount:40,dotScale:2},bar:{dotCount:20,dotScale:2},groupheader:{dotCount:80,dotScale:2}},vH=[{value:``,labelKey:`inventory.colorEffect.none`},{value:`sparkle`,labelKey:`inventory.colorEffect.sparkle`},{value:`wood`,labelKey:`inventory.colorEffect.wood`},{value:`marble`,labelKey:`inventory.colorEffect.marble`},{value:`glow`,labelKey:`inventory.colorEffect.glow`},{value:`matte`,labelKey:`inventory.colorEffect.matte`},{value:`silk`,labelKey:`inventory.colorEffect.silk`},{value:`galaxy`,labelKey:`inventory.colorEffect.galaxy`},{value:`rainbow`,labelKey:`inventory.colorEffect.rainbow`},{value:`metal`,labelKey:`inventory.colorEffect.metal`},{value:`translucent`,labelKey:`inventory.colorEffect.translucent`},{value:`gradient`,labelKey:`inventory.colorEffect.gradient`},{value:`dual-color`,labelKey:`inventory.colorEffect.dualColor`},{value:`tri-color`,labelKey:`inventory.colorEffect.triColor`},{value:`multicolor`,labelKey:`inventory.colorEffect.multicolor`}],ZOe=`repeating-conic-gradient(#979797 0% 25%, #f5f5f5 0% 50%)`,QOe=`12px 12px`,$Oe={sparkle:(e=0,t=`table`)=>{let n=XOe(e),r=_H[t]??_H.table,i=[];for(let e=0;e`repeating-linear-gradient(90deg, rgba(0,0,0,0.18) 0 1px, transparent 1px 6px, rgba(0,0,0,0.08) 6px 7px, transparent 7px 12px)`,marble:()=>`repeating-linear-gradient(135deg, rgba(255,255,255,0.18) 0 2px, transparent 2px 8px), repeating-linear-gradient(45deg, rgba(0,0,0,0.10) 0 1px, transparent 1px 7px)`,glow:()=>`radial-gradient(circle at 50% 50%, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 70%)`,matte:()=>`linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.10) 100%)`,silk:()=>`linear-gradient(110deg, rgba(255,255,255,0) 30%, rgba(255,255,255,0.30) 50%, rgba(255,255,255,0) 70%)`,galaxy:()=>`linear-gradient(110deg, rgba(255,255,255,0) 25%, rgba(255,255,255,0.40) 50%, rgba(255,255,255,0) 75%)`,metal:()=>`repeating-linear-gradient(90deg, rgba(255,255,255,0.10) 0 1px, transparent 1px 3px), linear-gradient(180deg, rgba(255,255,255,0.18) 0%, rgba(0,0,0,0.18) 100%)`};function yH(e){let t=e.trim().replace(/^#/,``);return t.length!==6&&t.length!==8||!/^[0-9a-fA-F]+$/.test(t)?null:`#${t}`}function bH(e){return e?e.split(`,`).map(e=>yH(e)).filter(e=>!!e):[]}function eke(e,t,n,r){let i=e?yH(e):null;if(t.length===0)return`linear-gradient(${i??`#808080`}, ${i??`#808080`})`;let a=t.length===1?[t[0],t[0]]:t,o=(n??``).toLowerCase(),s=(r??``).toLowerCase();if(o===`multicolor`||s===`multicolor`){let e=a.length;return`conic-gradient(from 0deg, ${a.map((t,n)=>`${t} ${(n/e*360).toFixed(3)}deg ${((n+1)/e*360).toFixed(3)}deg`).join(`, `)})`}if(s===`dual-color`||s===`tri-color`){let e=a.length;return`linear-gradient(to right, ${a.map((t,n)=>`${t} ${(n/e*100).toFixed(3)}% ${((n+1)/e*100).toFixed(3)}%`).join(`, `)})`}return`linear-gradient(135deg, ${a.join(`, `)})`}function tke(e,t,n){let r=$Oe[e];return r?r(n,t):null}function xH(e){let t=bH(e.extraColors),n=eke(e.rgba,t,e.subtype,e.effectType),r=YOe(e.rgba,e.extraColors,e.subtype,e.effectType),i=typeof e.effectType==`string`?tke(e.effectType,e.effectSize,r):null,a=[];return i&&(Array.isArray(i)?i:[i]).forEach(e=>{a.push({image:e,size:`cover`})}),a.push({image:n,size:`cover`}),a.push({image:ZOe,size:QOe}),{backgroundImage:a.map(e=>e.image).join(`, `),backgroundSize:a.map(e=>e.size).join(`, `)}}function SH({data:e,children:t,disabled:n,className:r=``,spoolman:i,inventory:a,configureSlot:o,actions:s}){let{t:c}=U(),l=or(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(`top`),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null),w=()=>{let t=e.trayUuid;t&&(navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(t).then(()=>{_(!0),setTimeout(()=>_(!1),2e3)}).catch(()=>{T(t)}):T(t))},T=e=>{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();try{document.execCommand(`copy`),_(!0),setTimeout(()=>_(!1),2e3)}catch{console.error(`Failed to copy to clipboard`)}document.body.removeChild(t)};(0,y.useLayoutEffect)(()=>{if(!u){h(null);return}let e=()=>{if(!x.current||!S.current)return;let e=x.current.getBoundingClientRect(),t=S.current.offsetHeight,n=S.current.offsetWidth,r=e.top-56,i=window.innerHeight-e.bottom,a=rr?`bottom`:`top`,o=e.left+e.width/2,s=Math.max(8,Math.min(o-n/2,window.innerWidth-n-8)),c=a===`top`?e.top-t-8:e.bottom+8;p(a),h({top:c,left:s})};e();let t=requestAnimationFrame(e);return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[u]);let E=()=>{n||(C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!0),80))},D=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!1),100)},O=()=>{C.current&&clearTimeout(C.current),d(!1)};(0,y.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]);let k=e=>e<=15?`#ef4444`:e<=30?`#f97316`:e<=50?`#eab308`:`#22c55e`,A=e.colorHex?`#${e.colorHex.replace(`#`,``)}`:null,j=kf(a?.assignedSpool?.color_name??null,null)?.trim()||e.colorName,M=a?.assignedSpool?.remainingWeightGrams??null,N=a?.assignedSpool??null,P=bH(N?.extra_colors),F=!!N?.effect_type,I=!!N&&(P.length>0||F),L=I?xH({effectSize:`card`,rgba:N?.rgba??A,extraColors:N?.extra_colors,effectType:N?.effect_type,subtype:N?.subtype}):null,R=P.length>1,z=I?P.length===1?P[0]:N?.rgba??A:A;return(0,G.jsxs)(`div`,{ref:x,"data-testid":`filament-slot`,className:`relative ${r}`,onMouseEnter:E,onMouseLeave:D,children:[t,u&&(0,At.createPortal)((0,G.jsxs)(`div`,{ref:S,className:`fixed z-[60]`,style:{top:m?.top??-9999,left:m?.left??-9999,maxWidth:`calc(100vw - 24px)`,visibility:m?`visible`:`hidden`},onMouseEnter:E,onMouseLeave:D,children:[(0,G.jsxs)(`div`,{className:` + ${x.x},${x.y}`,C=rD(e.id)?QE(`recharts-radial-line-`):e.id;return y.createElement(`text`,Rz({},r,{dominantBaseline:`central`,className:LT(`recharts-radial-bar-label`,o)}),y.createElement(`defs`,null,y.createElement(`path`,{id:C,d:S})),y.createElement(`textPath`,{xlinkHref:`#${C}`},n))},Vbe=(e,t,n)=>{var{cx:r,cy:i,innerRadius:a,outerRadius:o,startAngle:s,endAngle:c}=e,l=(s+c)/2;if(n===`outside`){var{x:u,y:d}=oM(r,i,o+t,l);return{x:u,y:d,textAnchor:u>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var{x:f,y:p}=oM(r,i,(a+o)/2,l);return{x:f,y:p,textAnchor:`middle`,verticalAnchor:`middle`}},Uz=e=>e!=null&&`cx`in e&&XE(e.cx),Hbe={angle:0,offset:5,zIndex:HF.label,position:`middle`,textBreakAll:!1};function Ube(e){if(!Uz(e))return e;var{cx:t,cy:n,outerRadius:r}=e,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function Wz(e){var t=gD(e,Hbe),{viewBox:n,parentViewBox:r,position:i,value:a,children:o,content:s,className:c=``,textBreakAll:l,labelRef:u}=t,d=Lbe(),f=Vz(),p=n==null?i===`center`?f:d??f:Uz(n)?n:iA(n),m,h,g=Ube(p);if(!p||rD(a)&&rD(o)&&!(0,y.isValidElement)(s)&&typeof s!=`function`)return null;var _=Lz(Lz({},t),{},{viewBox:p});if((0,y.isValidElement)(s)){var{labelRef:v}=_;return(0,y.cloneElement)(s,Fz(_,Abe))}if(typeof s==`function`){var{content:b}=_;if(m=(0,y.createElement)(s,Fz(_,jbe)),(0,y.isValidElement)(m))return m}else m=Rbe(t);var x=UT(t);if(Uz(p)){if(i===`insideStart`||i===`insideEnd`||i===`end`)return Bbe(t,i,m,x,p);h=Vbe(p,t.offset,t.position)}else{if(!g)return null;var S=kbe({viewBox:g,position:i,offset:t.offset,parentViewBox:Uz(r)?void 0:r,clamp:!0});h=Lz(Lz({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width===void 0?{}:{width:S.width}),S.height===void 0?{}:{height:S.height})}return y.createElement(WR,{zIndex:t.zIndex},y.createElement(Mz,Rz({ref:u,className:LT(`recharts-label`,c)},x,h,{textAnchor:xbe(x.textAnchor)?x.textAnchor:h.textAnchor,breakAll:l}),m))}Wz.displayName=`Label`;var Wbe=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?y.createElement(Wz,Rz({key:`label-implicit`},r)):ZE(e)?y.createElement(Wz,Rz({key:`label-implicit`,value:e},r)):(0,y.isValidElement)(e)?e.type===Wz?(0,y.cloneElement)(e,Lz({key:`label-implicit`},r)):y.createElement(Wz,Rz({key:`label-implicit`,content:e},r)):Hz(e)?y.createElement(Wz,Rz({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?y.createElement(Wz,Rz({},e,{key:`label-implicit`},r)):null};function Gz(e){var{label:t,labelRef:n}=e;return Wbe(t,Vz(),n)||null}var Gbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return e[e.length-1]}e.last=t})),Kbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Array.isArray(e)?e:Array.from(e)}e.toArray=t})),qbe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Gbe(),n=Kbe(),r=xD();function i(e){if(r.isArrayLike(e))return t.last(n.toArray(e))}e.last=i})),Jbe=l(o(((e,t)=>{t.exports=qbe().last}))()),Ybe=[`valueAccessor`],Xbe=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function Kz(){return Kz=Object.assign?Object.assign.bind():function(e){for(var t=1;tArray.isArray(e.value)?(0,Jbe.default)(e.value):e.value,Jz=(0,y.createContext)(void 0),Yz=Jz.Provider,Xz=(0,y.createContext)(void 0),$be=Xz.Provider;function exe(){return(0,y.useContext)(Jz)}function txe(){return(0,y.useContext)(Xz)}function Zz(e){var{valueAccessor:t=Qbe}=e,n=qz(e,Ybe),{dataKey:r,clockWise:i,id:a,textBreakAll:o,zIndex:s}=n,c=qz(n,Xbe),l=exe(),u=txe(),d=l||u;return!d||!d.length?null:y.createElement(WR,{zIndex:s??HF.label},y.createElement(qT,{className:`recharts-label-list`},d.map((e,i)=>{var s=rD(r)?t(e,i):Ck(e.payload,r),l=rD(a)?{}:{id:`${a}-${i}`};return y.createElement(Wz,Kz({key:`label-${i}`},UT(e),c,l,{fill:n.fill??e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:o,viewBox:e.viewBox,index:i,zIndex:0}))})))}Zz.displayName=`LabelList`;function Qz(e){var{label:t}=e;return t?t===!0?y.createElement(Zz,{key:`labelList-implicit`}):y.isValidElement(t)||Hz(t)?y.createElement(Zz,{key:`labelList-implicit`,content:t}):typeof t==`object`?y.createElement(Zz,Kz({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}function $z(){return $z=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{cx:t,cy:n,r,className:i}=e,a=LT(`recharts-dot`,i);return XE(t)&&XE(n)&&XE(r)?y.createElement(`circle`,$z({},VT(e),pD(e),{className:a,cx:t,cy:n,r})):null},tB=e=>e.graphicalItems.polarItems,nB=BD([tB,kI,BD([oI,sI],MI)],PI),rB=BD([BD([nB],RI),SF],zI),nxe=BD([rB,kI,nB],VI);BD([rB,kI,nB],(e,t,n)=>n.length>0?e.flatMap(e=>n.flatMap(n=>({value:Ck(e,t.dataKey??n.dataKey),errorDomain:[]}))).filter(Boolean):t?.dataKey==null?e.map(e=>({value:e,errorDomain:[]})):e.map(e=>({value:Ck(e,t.dataKey),errorDomain:[]})));var iB=()=>void 0,aB=BD([kI,lA,rB,nxe,IF,oI,BD([kI,$I,eL,iB,BD([rB,kI,nB,tL,oI],rL),iB,lA,oI],dL)],fL);BD([hL,BD([kI,aB,BD([aB,AI,hL],_L),oI],yL)],_I);var rxe=ok({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=$A(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=$A(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),{addRadiusAxis:ixe,removeRadiusAxis:axe,addAngleAxis:oxe,removeAngleAxis:sxe}=rxe.actions,cxe=rxe.reducer;function lxe(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}function uxe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dxe(e){for(var t=1;tt],(e,t)=>e.filter(e=>e.type===`pie`).find(e=>e.id===t)),hxe=[],sB=(e,t,n)=>n?.length===0?hxe:n,gxe=BD([SF,oB,sB],(e,t,n)=>{var{chartData:r}=e;if(t!=null){var i=t?.data!=null&&t.data.length>0?t.data:r;if((!i||!i.length)&&n!=null&&(i=n.map(e=>dxe(dxe({},t.presentationProps),e.props))),i!=null)return i}}),_xe=BD([gxe,oB,sB],(e,t,n)=>{if(!(e==null||t==null))return e.map((e,r)=>{var i,a=Ck(e,t.nameKey,t.name),o=n!=null&&(i=n[r])!=null&&(i=i.props)!=null&&i.fill?n[r].props.fill:typeof e==`object`&&e&&`fill`in e?e.fill:t.fill;return{value:Pk(a,t.dataKey),color:o,payload:e,type:t.legendType}})}),vxe=BD([gxe,oB,sB,Uk],(e,t,n,r)=>{if(!(t==null||e==null))return kSe({offset:r,pieSettings:t,displayedData:e,cells:n})}),yxe=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.suspense_list`),d=Symbol.for(`react.memo`),f=Symbol.for(`react.lazy`),p=Symbol.for(`react.view_transition`);function m(e){if(typeof e==`object`&&e){var m=e.$$typeof;switch(m){case t:switch(e=e.type,e){case r:case a:case i:case l:case u:case p:return e;default:switch(e&&=e.$$typeof,e){case s:case c:case f:case d:return e;case o:return e;default:return m}}case n:return m}}}e.isFragment=function(e){return m(e)===r}})),bxe=o(((e,t)=>{t.exports=yxe()}))(),xxe=e=>typeof e==`string`?e:e?e.displayName||e.name||`Component`:``,Sxe=null,cB=null,Cxe=e=>{if(e===Sxe&&Array.isArray(cB))return cB;var t=[];return y.Children.forEach(e,e=>{rD(e)||((0,bxe.isFragment)(e)?t=t.concat(Cxe(e.props.children)):t.push(e))}),cB=t,Sxe=e,t};function lB(e,t){var n=[],r=[];return r=Array.isArray(t)?t.map(e=>xxe(e)):[xxe(t)],Cxe(e).forEach(e=>{var t=(0,KE.default)(e,`type.displayName`)||(0,KE.default)(e,`type.name`);t&&r.indexOf(t)!==-1&&n.push(e)}),n}var uB=e=>e&&typeof e==`object`&&`clipDot`in e?!!e.clipDot:!0,wxe=o((e=>{Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){if(typeof e!=`object`||!e)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!==`[object Object]`){let t=e[Symbol.toStringTag];return t==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${t}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}e.isPlainObject=t})),Txe=o(((e,t)=>{t.exports=wxe().isPlainObject})),Exe,Dxe,Oxe,kxe,Axe;function jxe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mxe(e){for(var t=1;t{var a=n-r,o=GE(Exe||=fB([`M `,`,`,``]),e,t);return o+=GE(Dxe||=fB([`L `,`,`,``]),e+n,t),o+=GE(Oxe||=fB([`L `,`,`,``]),e+n-a/2,t+i),o+=GE(kxe||=fB([`L `,`,`,``]),e+n-a/2-r,t+i),o+=GE(Axe||=fB([`L `,`,`,` Z`]),e,t),o},Lxe={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},Rxe=e=>{var t=gD(e,Lxe),{x:n,y:r,upperWidth:i,lowerWidth:a,height:o,className:s}=t,{animationEasing:c,animationDuration:l,animationBegin:u,isUpdateAnimationActive:d}=t,f=(0,y.useRef)(null),[p,m]=(0,y.useState)(-1),h=(0,y.useRef)(i),g=(0,y.useRef)(a),_=(0,y.useRef)(o),v=(0,y.useRef)(n),b=(0,y.useRef)(r),x=Jj(e,`trapezoid-`);if((0,y.useEffect)(()=>{if(f.current&&f.current.getTotalLength)try{var e=f.current.getTotalLength();e&&m(e)}catch{}},[]),n!==+n||r!==+r||i!==+i||a!==+a||o!==+o||i===0&&a===0||o===0)return null;var S=LT(`recharts-trapezoid`,s);if(!d)return y.createElement(`g`,null,y.createElement(`path`,dB({},UT(t),{className:S,d:Ixe(n,r,i,a,o)})));var C=h.current,w=g.current,T=_.current,E=v.current,D=b.current,O=`0px ${p===-1?1:p}px`,k=`${p}px 0px`,A=Nj([`strokeDasharray`],l,c);return y.createElement(qj,{animationId:x,key:x,canBegin:p>0,duration:l,easing:c,isActive:d,begin:u},e=>{var s=tD(C,i,e),c=tD(w,a,e),l=tD(T,o,e),u=tD(E,n,e),d=tD(D,r,e);f.current&&(h.current=s,g.current=c,_.current=l,v.current=u,b.current=d);var p=e>0?{transition:A,strokeDasharray:k}:{strokeDasharray:O};return y.createElement(`path`,dB({},UT(t),{className:S,d:Ixe(u,d,s,c,l),ref:f,style:Mxe(Mxe({},p),t.style)}))})},zxe=l(Txe()),Bxe=[`option`,`shapeType`,`activeClassName`];function Vxe(e,t){if(e==null)return{};var n,r,i=Hxe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var r=ND();return(i,a)=>o=>{e?.(i,a,o),r(KL({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}},gB=e=>{var t=ND();return(n,r)=>i=>{e?.(n,r,i),t(hve())}},_B=(e,t,n)=>{var r=ND();return(i,a)=>o=>{e?.(i,a,o),r(gve({activeIndex:String(a),activeDataKey:t,activeCoordinate:i.tooltipPosition,activeGraphicalItemId:n}))}};function vB(e){var{tooltipEntrySettings:t}=e,n=ND(),r=Gk(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(dve(t)):i.current!==t&&n(fve({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(pve(i.current)),null)},[n]),null}function yB(e){var{legendPayload:t}=e,n=ND(),r=Gk(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(nj(t)):i.current!==t&&n(rj({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(ij(i.current)),null)},[n]),null}function Zxe(e){var{legendPayload:t}=e,n=ND(),r=FD(lA),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r!==`centric`&&r!==`radial`||(i.current===null?n(nj(t)):i.current!==t&&n(rj({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(ij(i.current)),null)},[n]),null}var Qxe=y.useId??(()=>{var[e]=y.useState(()=>QE(`uid-`));return e});function $xe(e,t){var n=Qxe();return t||(e?`${e}-${n}`:n)}var eSe=(0,y.createContext)(void 0),bB=e=>{var{id:t,type:n,children:r}=e,i=$xe(`recharts-${n}`,t);return y.createElement(eSe.Provider,{value:i},r(i))},tSe=ok({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push($A(t.payload))},prepare:ak()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,i=nk(e).cartesianItems.indexOf($A(n));i>-1&&(e.cartesianItems[i]=$A(r))},prepare:ak()},removeCartesianGraphicalItem:{reducer(e,t){var n=nk(e).cartesianItems.indexOf($A(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:ak()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push($A(t.payload))},prepare:ak()},removePolarGraphicalItem:{reducer(e,t){var n=nk(e).polarItems.indexOf($A(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:ak()}}}),{addCartesianGraphicalItem:nSe,replaceCartesianGraphicalItem:rSe,removeCartesianGraphicalItem:iSe,addPolarGraphicalItem:aSe,removePolarGraphicalItem:oSe}=tSe.actions,sSe=tSe.reducer,xB=(0,y.memo)(e=>{var t=ND(),n=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{n.current===null?t(nSe(e)):n.current!==e&&t(rSe({prev:n.current,next:e})),n.current=e},[t,e]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(iSe(n.current)),null)},[t]),null});function cSe(e){var t=ND();return(0,y.useLayoutEffect)(()=>(t(aSe(e)),()=>{t(oSe(e))}),[t,e]),null}var lSe=[`key`],uSe=[`onMouseEnter`,`onClick`,`onMouseLeave`],dSe=[`id`],fSe=[`id`];function pSe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function SB(e){for(var t=1;tlB(e.children,cz),[e.children]),n=FD(n=>_xe(n,e.id,t));return n==null?null:y.createElement(Zxe,{legendPayload:n})}var ySe=y.memo(e=>{var{dataKey:t,nameKey:n,sectors:r,stroke:i,strokeWidth:a,fill:o,name:s,hide:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:r.map(e=>e.tooltipPayload),getPosition:e=>r[Number(e)]?.tooltipPosition,settings:{stroke:i,strokeWidth:a,fill:o,dataKey:t,nameKey:n,name:Pk(s,t),hide:c,type:l,color:o,unit:``,graphicalItemId:u}};return y.createElement(vB,{tooltipEntrySettings:d})}),bSe=(e,t)=>e>t?`start`:e$E(typeof t==`function`?t(e):t,n,n*.8),SSe=(e,t,n)=>{var{top:r,left:i,width:a,height:o}=t,s=sM(a,o);return{cx:i+$E(e.cx,a,a/2),cy:r+$E(e.cy,o,o/2),innerRadius:$E(e.innerRadius,s,0),outerRadius:xSe(n,e.outerRadius,s),maxRadius:e.maxRadius||Math.sqrt(a*a+o*o)/2}},CSe=(e,t)=>qE(t-e)*Math.min(Math.abs(t-e),360),wSe=(e,t)=>{if(y.isValidElement(e))return y.cloneElement(e,t);if(typeof e==`function`)return e(t);var n=LT(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className),{key:r}=t,i=wB(t,lSe);return y.createElement(Oj,CB({},i,{type:`linear`,className:n}))},TSe=(e,t,n)=>{if(y.isValidElement(e))return y.cloneElement(e,t);var r=n;if(typeof e==`function`&&(r=e(t),y.isValidElement(r)))return r;var i=LT(`recharts-pie-label-text`,lxe(e));return y.createElement(Mz,CB({},t,{alignmentBaseline:`middle`,className:i}),r)};function ESe(e){var{sectors:t,props:n,showLabels:r}=e,{label:i,labelLine:a,dataKey:o}=n;if(!r||!i||!t)return null;var s=VT(n),c=HT(i),l=HT(a),u=typeof i==`object`&&`offsetRadius`in i&&typeof i.offsetRadius==`number`&&i.offsetRadius||20,d=t.map((e,t)=>{var n=(e.startAngle+e.endAngle)/2,r=oM(e.cx,e.cy,e.outerRadius+u,n),d=SB(SB(SB(SB({},s),e),{},{stroke:`none`},c),{},{index:t,textAnchor:bSe(r.x,e.cx)},r),f=SB(SB(SB(SB({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:t,points:[oM(e.cx,e.cy,e.outerRadius,n),r],key:`line`});return y.createElement(WR,{zIndex:HF.label,key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${t}`},y.createElement(qT,null,a&&wSe(a,f),TSe(i,d,Ck(e,o))))});return y.createElement(qT,{className:`recharts-pie-labels`},d)}function DSe(e){var{sectors:t,props:n,showLabels:r}=e,{label:i}=n;return typeof i==`object`&&i&&`position`in i?y.createElement(Qz,{label:i}):y.createElement(ESe,{sectors:t,props:n,showLabels:r})}function OSe(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:i,shape:a,id:o}=e,s=FD(CR),c=FD(TR),l=FD(Rve),{onMouseEnter:u,onClick:d,onMouseLeave:f}=i,p=wB(i,uSe),m=hB(u,i.dataKey,o),h=gB(f),g=_B(d,i.dataKey,o);return t==null||t.length===0?null:y.createElement(y.Fragment,null,t.map((e,u)=>{if(e?.startAngle===0&&e?.endAngle===0&&t.length!==1)return null;var d=l==null||l===o,f=String(u)===s&&(c==null||i.dataKey===c)&&d,_=n&&f?n:s?r:null,v=SB(SB({},e),{},{stroke:e.stroke,tabIndex:-1,[Bk]:u,[Xde]:o});return y.createElement(qT,CB({key:`sector-${e?.startAngle}-${e?.endAngle}-${e.midAngle}-${u}`,tabIndex:-1,className:`recharts-pie-sector`},mD(p,e,u),{onMouseEnter:m(e,u),onMouseLeave:h(e,u),onClick:g(e,u)}),y.createElement(mB,CB({option:a??_,index:u,shapeType:`sector`,isActive:f},v)))}))}function kSe(e){var{pieSettings:t,displayedData:n,cells:r,offset:i}=e,{cornerRadius:a,startAngle:o,endAngle:s,dataKey:c,nameKey:l,tooltipType:u}=t,d=Math.abs(t.minAngle),f=CSe(o,s),p=Math.abs(f),m=n.length<=1?0:t.paddingAngle??0,h=n.filter(e=>Ck(e,c,0)!==0).length,g=(p>=360?h:h-1)*m,_=p-h*d-g,v=n.reduce((e,t)=>{var n=Ck(t,c,0);return e+(XE(n)?n:0)},0),y;if(v>0){var b;y=n.map((e,n)=>{var s=Ck(e,c,0),p=Ck(e,l,n),h=SSe(t,i,e),g=(XE(s)?s:0)/v,y,x=SB(SB({},e),r&&r[n]&&r[n].props);y=n?b.endAngle+qE(f)*m*(s===0?0:1):o;var S=y+qE(f)*((s===0?0:d)+g*_),C=(y+S)/2,w=(h.innerRadius+h.outerRadius)/2,T=[{name:p,value:s,payload:x,dataKey:c,type:u,graphicalItemId:t.id}],E=oM(h.cx,h.cy,w,C);return b=SB(SB(SB(SB({},t.presentationProps),{},{percent:g,cornerRadius:typeof a==`string`?parseFloat(a):a,name:p,tooltipPayload:T,midAngle:C,middleRadius:w,tooltipPosition:E},x),h),{},{value:s,dataKey:c,startAngle:y,endAngle:S,payload:x,paddingAngle:qE(f)*m}),b})}return y}function ASe(e){var{showLabels:t,sectors:n,children:r}=e,i=(0,y.useMemo)(()=>!t||!n?[]:n.map(e=>({value:e.value,payload:e.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:e.cx,cy:e.cy,innerRadius:e.innerRadius,outerRadius:e.outerRadius,startAngle:e.startAngle,endAngle:e.endAngle,clockWise:!1},fill:e.fill})),[n,t]);return y.createElement($be,{value:t?i:void 0},r)}function jSe(e){var{props:t,previousSectorsRef:n,id:r}=e,{sectors:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,activeShape:l,inactiveShape:u,onAnimationStart:d,onAnimationEnd:f}=t,p=Jj(t,`recharts-pie-`),m=n.current,[h,g]=(0,y.useState)(!1),_=(0,y.useCallback)(()=>{typeof f==`function`&&f(),g(!1)},[f]),v=(0,y.useCallback)(()=>{typeof d==`function`&&d(),g(!0)},[d]);return y.createElement(ASe,{showLabels:!h,sectors:i},y.createElement(qj,{animationId:p,begin:o,duration:s,isActive:a,easing:c,onAnimationStart:v,onAnimationEnd:_,key:p},e=>{var a=[],o=(i&&i[0])?.startAngle??0;return i?.forEach((t,n)=>{var r=m&&m[n],i=n>0?(0,KE.default)(t,`paddingAngle`,0):0;if(r){var s=tD(r.endAngle-r.startAngle,t.endAngle-t.startAngle,e),c=SB(SB({},t),{},{startAngle:o+i,endAngle:o+s+i});a.push(c),o=c.endAngle}else{var{endAngle:l,startAngle:u}=t,d=tD(0,l-u,e),f=SB(SB({},t),{},{startAngle:o+i,endAngle:o+d+i});a.push(f),o=f.endAngle}}),n.current=a,y.createElement(qT,null,y.createElement(OSe,{sectors:a,activeShape:l,inactiveShape:u,allOtherPieProps:t,shape:t.shape,id:r}))}),y.createElement(DSe,{showLabels:!h,sectors:i,props:t}),t.children)}var MSe={animationBegin:400,animationDuration:1500,animationEasing:`ease`,cx:`50%`,cy:`50%`,dataKey:`value`,endAngle:360,fill:`#808080`,hide:!1,innerRadius:0,isAnimationActive:`auto`,label:!1,labelLine:!0,legendType:`rect`,minAngle:0,nameKey:`name`,outerRadius:`80%`,paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:`#fff`,zIndex:HF.area};function NSe(e){var{id:t}=e,n=wB(e,dSe),{hide:r,className:i,rootTabIndex:a}=e,o=(0,y.useMemo)(()=>lB(e.children,cz),[e.children]),s=FD(e=>vxe(e,t,o)),c=(0,y.useRef)(null),l=LT(`recharts-pie`,i);return r||s==null?(c.current=null,y.createElement(qT,{tabIndex:a,className:l})):y.createElement(WR,{zIndex:e.zIndex},y.createElement(ySe,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:s,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t}),y.createElement(qT,{tabIndex:a,className:l},y.createElement(jSe,{props:SB(SB({},n),{},{sectors:s}),previousSectorsRef:c,id:t})))}function TB(e){var t=gD(e,MSe),{id:n}=t,r=wB(t,fSe),i=VT(r);return y.createElement(bB,{id:n,type:`pie`},e=>y.createElement(y.Fragment,null,y.createElement(cSe,{type:`pie`,id:e,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:i,maxRadius:t.maxRadius}),y.createElement(vSe,CB({},r,{id:e})),y.createElement(NSe,CB({},r,{id:e}))))}TB.displayName=`Pie`;var PSe=[`points`];function FSe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function EB(e){for(var t=1;t{var s=EB(EB(EB({r:3},o),d),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:a,value:e.value,payload:e.payload,points:t});return y.createElement(VSe,{key:`dot-${r}`,option:n,dotProps:s,className:i})}),p={};return s&&c!=null&&(p.clipPath=`url(#clipPath-${u?``:`dots-`}${c})`),y.createElement(WR,{zIndex:l},y.createElement(qT,DB({className:r},p),f))}function WSe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function GSe(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),Fk,Ik],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),OB=()=>FD(sCe),cCe=()=>FD(Vve);function lCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kB(e){for(var t=1;t{var{point:t,childIndex:n,mainColor:r,activeDot:i,dataKey:a,clipPath:o}=e;if(i===!1||t.x==null||t.y==null)return null;var s=kB(kB(kB({},{index:n,dataKey:a,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),HT(i)),pD(i)),c=(0,y.isValidElement)(i)?(0,y.cloneElement)(i,s):typeof i==`function`?i(s):y.createElement(eB,s);return y.createElement(qT,{className:`recharts-active-dot`,clipPath:o},c)};function AB(e){var{points:t,mainColor:n,activeDot:r,itemDataKey:i,clipPath:a,zIndex:o=HF.activeDot}=e,s=FD(CR),c=cCe();if(t==null||c==null)return null;var l=t.find(e=>c.includes(e.payload));return rD(l)?null:y.createElement(WR,{zIndex:o},y.createElement(pCe,{point:l,childIndex:Number(s),mainColor:n,dataKey:i,activeDot:r,clipPath:a}))}var mCe=(e,t,n)=>{var r=n??e;if(!rD(r))return $E(r,t,0)},hCe=(e,t,n)=>{var r={},i=e.filter(uI),a=e.filter(e=>e.stackId==null),o=i.reduce((e,t)=>{var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},r),s=Object.entries(o).map(e=>{var[r,i]=e;return{stackId:r,dataKeys:i.map(e=>e.dataKey),barSize:mCe(t,n,i[0]?.barSize)}}),c=a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>e!=null),barSize:mCe(t,n,e.barSize)}));return[...s,...c]};function gCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jB(e){for(var t=1;te+(t.barSize||0),0);d+=(a-1)*o,d>=n&&(d-=(a-1)*o,o=0),d>=n&&u>0&&(l=!0,u*=.9,d=a*u);var f={offset:((n-d)/2>>0)-o,size:0};s=r.reduce((e,t)=>{var n={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+o,size:l?u:t.barSize??0}},r=[...e,n];return f=n.position,r},c)}else{var p=$E(t,n,0,!0);n-2*p-(a-1)*o<=0&&(o=0);var m=(n-2*p-(a-1)*o)/a;m>1&&(m>>=0);var h=bk(i)?Math.min(m,i):m;s=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:p+(m+o)*n+(m-h)/2,size:h}}],c)}return s}}var xCe=(e,t,n,r,i,a,o)=>{var s=rD(o)?t:o,c=bCe(n,r,i===a?a:i,e,s);return i!==a&&c!=null&&(c=c.map(e=>jB(jB({},e),{},{position:jB(jB({},e.position),{},{offset:e.position.offset-i/2})}))),c},SCe=(e,t)=>{var n=cI(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var i=e[r];if(i){var{stackedData:a}=i;if(a)return a.find(e=>e.key===n)}}}},CCe=(e,t)=>{if(!(e==null||t==null)){var n=e.find(e=>e.stackId===t.stackId&&t.dataKey!=null&&e.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function wCe(e,t){return e&&typeof e==`object`&&`zIndex`in e&&typeof e.zIndex==`number`&&bk(e.zIndex)?e.zIndex:t}var TCe=e=>{var{chartData:t}=e,n=ND(),r=Gk();return(0,y.useEffect)(()=>r?()=>{}:(n(tz(t)),()=>{n(tz(void 0))}),[t,n,r]),null},ECe={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},DCe=ok({name:`brush`,initialState:ECe,reducers:{setBrushSettings(e,t){return t.payload==null?ECe:t.payload}}}),{setBrushSettings:OCe}=DCe.actions,kCe=DCe.reducer,ACe=(e,t)=>{var{x:n,y:r}=e,{x:i,y:a}=t;return{x:Math.min(n,i),y:Math.min(r,a),width:Math.abs(i-n),height:Math.abs(a-r)}},jCe=e=>{var{x1:t,y1:n,x2:r,y2:i}=e;return ACe({x:t,y:n},{x:r,y:i})};function MCe(e){return(e%180+180)%180}var NCe=function(e){var{width:t,height:n}=e,r=MCe(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=nk(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=nk(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push($A(t.payload))},removeLine:(e,t)=>{var n=nk(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:FCe,removeDot:ICe,addArea:LCe,removeArea:RCe,addLine:zCe,removeLine:BCe}=PCe.actions,VCe=PCe.reducer,HCe=(0,y.createContext)(void 0),UCe=e=>{var{children:t}=e,[n]=(0,y.useState)(`${QE(`recharts`)}-clip`),r=OB();if(r==null)return null;var{x:i,y:a,width:o,height:s}=r;return y.createElement(HCe.Provider,{value:n},y.createElement(`defs`,null,y.createElement(`clipPath`,{id:n},y.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)},WCe=()=>(0,y.useContext)(HCe),GCe=class{constructor(e){var{x:t,y:n}=e;this.xAxisScale=t,this.yAxisScale=n}map(e,t){var{position:n}=t;return{x:this.xAxisScale.map(e.x,{position:n})??0,y:this.yAxisScale.map(e.y,{position:n})??0}}mapWithFallback(e,t){var{position:n,fallback:r}=t,i=r===`rangeMin`?this.yAxisScale.rangeMin():r===`rangeMax`?this.yAxisScale.rangeMax():0,a=r===`rangeMin`?this.xAxisScale.rangeMin():r===`rangeMax`?this.xAxisScale.rangeMax():0;return{x:this.xAxisScale.map(e.x,{position:n})??a,y:this.yAxisScale.map(e.y,{position:n})??i}}isInRange(e){var{x:t,y:n}=e,r=t==null||this.xAxisScale.isInRange(t),i=n==null||this.yAxisScale.isInRange(n);return r&&i}};function KCe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qCe(e){for(var t=1;t{var n;if(y.isValidElement(e))n=y.cloneElement(e,t);else if(typeof e==`function`)n=e(t);else{if(!bk(t.x1)||!bk(t.y1)||!bk(t.x2)||!bk(t.y2))return null;n=y.createElement(`line`,MB({},t,{className:`recharts-reference-line-line`}))}return n},QCe=(e,t,n,r,i,a)=>{var{x:o,width:s}=a,c=i.map(e,{position:n});if(!bk(c)||t===`discard`&&!i.isInRange(c))return null;var l=[{x:o+s,y:c},{x:o,y:c}];return r===`left`?l.reverse():l},$Ce=(e,t,n,r,i,a)=>{var{y:o,height:s}=a,c=i.map(e,{position:n});if(!bk(c)||t===`discard`&&!i.isInRange(c))return null;var l=[{x:c,y:o+s},{x:c,y:o}];return r===`top`?l.reverse():l},ewe=(e,t,n,r)=>{var i=[r.mapWithFallback(e[0],{position:n,fallback:`rangeMin`}),r.mapWithFallback(e[1],{position:n,fallback:`rangeMax`})];return t===`discard`&&i.some(e=>!r.isInRange(e))?null:i},twe=(e,t,n,r,i,a,o)=>{var{x:s,y:c,segment:l,ifOverflow:u}=o,d=ZE(s);return ZE(c)?QCe(c,u,r,a,t,n):d?$Ce(s,u,r,i,e,n):l!=null&&l.length===2?ewe(l,u,r,new GCe({x:e,y:t})):null};function nwe(e){var t=ND();return(0,y.useEffect)(()=>(t(zCe(e)),()=>{t(BCe(e))})),null}function rwe(e){var{xAxisId:t,yAxisId:n,shape:r,className:i,ifOverflow:a}=e,o=Gk(),s=WCe(),c=FD(e=>wI(e,t)),l=FD(e=>DI(e,n)),u=FD(e=>CL(e,`xAxis`,t,o)),d=FD(e=>CL(e,`yAxis`,n,o)),f=aA();if(!s||!f||c==null||l==null||u==null||d==null)return null;var p=twe(u,d,f,e.position,c.orientation,l.orientation,e);if(!p)return null;var m=p[0],h=p[1];if(m==null||h==null)return null;var{x:g,y:_}=m,{x:v,y:b}=h,x=qCe(qCe({clipPath:a===`hidden`?`url(#${s})`:void 0},UT(e)),{},{x1:g,y1:_,x2:v,y2:b}),S=jCe({x1:g,y1:_,x2:v,y2:b});return y.createElement(WR,{zIndex:e.zIndex},y.createElement(qT,{className:LT(`recharts-reference-line`,i)},ZCe(r,x),y.createElement(Bz,MB({},S,{lowerWidth:S.width,upperWidth:S.width}),y.createElement(Gz,{label:e.label}),e.children)))}var iwe={ifOverflow:`discard`,xAxisId:0,yAxisId:0,fill:`none`,label:!1,stroke:`#ccc`,fillOpacity:1,strokeWidth:1,position:`middle`,zIndex:HF.line};function NB(e){var t=gD(e,iwe);return y.createElement(y.Fragment,null,y.createElement(nwe,{yAxisId:t.yAxisId,xAxisId:t.xAxisId,ifOverflow:t.ifOverflow,x:t.x,y:t.y,segment:t.segment}),y.createElement(rwe,t))}NB.displayName=`ReferenceLine`;function awe(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;re*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function cwe(e,t){return awe(e,t+1)}function lwe(e,t,n,r,i){for(var a=(r||[]).slice(),{start:o,end:s}=t,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:awe(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||PB(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function uwe(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var{start:o,end:s}=t,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||PB(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=FB(FB({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=FB(FB({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&PB(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=FB(FB({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function gwe(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,{start:c,end:l}=t;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=FB(FB({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&PB(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=FB(FB({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=FB(FB({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=FB(FB({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&PB(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=FB(FB({},a),{},{isShow:!0}))},h=0;h{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?owe(mz(i,{fontSize:t,letterSpacing:n}),m,d):mz(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?qE(_.coordinate-g.coordinate):1,y=swe(a,v,p);return c===`equidistantPreserveStart`?lwe(v,y,h,i,o):c===`equidistantPreserveEnd`?uwe(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?gwe(v,y,h,i,o,c===`preserveStartEnd`):hwe(v,y,h,i,o),f.filter(e=>e.isShow))}var _we=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:i=0,tickMargin:a=0}=e,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>o&&(o=t.width)}});var s=n?n.getBoundingClientRect().width:0,c=i+a,l=o+c+s+(n?r:0);return Math.round(l)}return 0},vwe=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`];function ywe(e,t){if(e==null)return{};var n,r,i=bwe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{ticks:n=[],tick:r,tickLine:i,stroke:a,tickFormatter:o,unit:s,padding:c,tickTextProps:l,orientation:u,mirror:d,x:f,y:p,width:m,height:h,tickSize:g,tickMargin:_,fontSize:v,letterSpacing:b,getTicksConfig:x,events:S,axisType:C}=e,w=IB(RB(RB({},x),{},{ticks:n}),v,b),T=Dwe(u,d),E=Owe(u,d),D=VT(x),O=HT(r),k={};typeof i==`object`&&(k=i);var A=RB(RB({},D),{},{fill:`none`},k),j=w.map(e=>RB({entry:e},Ewe(e,f,p,m,h,u,g,d,_))),M=j.map(e=>{var{entry:t,line:n}=e;return y.createElement(qT,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},i&&y.createElement(`line`,LB({},A,n,{className:LT(`recharts-cartesian-axis-tick-line`,(0,KE.default)(i,`className`))})))}),N=j.map((e,t)=>{var{entry:n,tick:i}=e,u=RB(RB({},RB(RB(RB(RB({verticalAnchor:E},D),{},{textAnchor:T,stroke:`none`,fill:a},i),{},{index:t,payload:n,visibleTicksCount:w.length,tickFormatter:o,padding:c},l),{},{angle:l?.angle??D.angle??0})),O);return y.createElement(qT,LB({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},mD(S,n,t)),r&&y.createElement(kwe,{option:r,tickProps:u,value:`${typeof o==`function`?o(n.value,t):n.value}${s||``}`}))});return y.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${C}-ticks`},N.length>0&&y.createElement(WR,{zIndex:HF.label},y.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${C}-tick-labels`,ref:t},N)),M.length>0&&y.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${C}-tick-lines`},M))}),jwe=(0,y.forwardRef)((e,t)=>{var{axisLine:n,width:r,height:i,className:a,hide:o,ticks:s,axisType:c}=e,l=ywe(e,vwe),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),m=(0,y.useRef)(null);(0,y.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>_we({ticks:m.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var h=(0,y.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);m.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==u||a!==f)&&(d(i),p(a))}}},[u,f]);return o||r!=null&&r<=0||i!=null&&i<=0?null:y.createElement(WR,{zIndex:e.zIndex},y.createElement(qT,{className:LT(`recharts-cartesian-axis`,a)},y.createElement(Twe,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:VT(e)}),y.createElement(Awe,{ref:h,axisType:c,events:l,fontSize:u,getTicksConfig:e,height:e.height,letterSpacing:f,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:s,unit:e.unit,width:e.width,x:e.x,y:e.y}),y.createElement(Bz,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(Gz,{label:e.label,labelRef:e.labelRef}),e.children)))}),BB=y.forwardRef((e,t)=>{var n=gD(e,zB);return y.createElement(jwe,LB({},n,{ref:t}))});BB.displayName=`CartesianAxis`;var Mwe=[`x1`,`y1`,`x2`,`y2`,`key`],Nwe=[`offset`],Pwe=[`xAxisId`,`yAxisId`],Fwe=[`xAxisId`,`yAxisId`];function Iwe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VB(e){for(var t=1;t{var{fill:t}=e;if(!t||t===`none`)return null;var{fillOpacity:n,x:r,y:i,width:a,height:o,ry:s}=e;return y.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function Hwe(e){var{option:t,lineItemProps:n}=e,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var{x1:i,y1:a,x2:o,y2:s,key:c}=n,l=VT(UB(n,Mwe))??{},{offset:u}=l,d=UB(l,Nwe);r=y.createElement(`line`,HB({},d,{x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function Uwe(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=UB(e,Pwe),c=i.map((e,i)=>{var a=VB(VB({},s),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${i}`,index:i});return y.createElement(Hwe,{key:`line-${i}`,option:r,lineItemProps:a})});return y.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},c)}function Wwe(e){var{y:t,height:n,vertical:r=!0,verticalPoints:i}=e;if(!r||!i||!i.length)return null;var{xAxisId:a,yAxisId:o}=e,s=UB(e,Fwe),c=i.map((e,i)=>{var a=VB(VB({},s),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${i}`,index:i});return y.createElement(Hwe,{option:r,lineItemProps:a,key:`line-${i}`})});return y.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},c)}function Gwe(e){var{horizontalFill:t,fillOpacity:n,x:r,y:i,width:a,height:o,horizontalPoints:s,horizontal:c=!0}=e;if(!c||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return y.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function Kwe(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:i,y:a,width:o,height:s,verticalPoints:c}=e;if(!t||!n||!n.length)return null;var l=c.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,t)=>{var c=l[t+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=t%n.length;return y.createElement(`rect`,{key:`react-${t}`,x:e,y:a,width:u,height:s,stroke:`none`,fill:n[d],fillOpacity:r,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},u)}var qwe=(e,t)=>{var{xAxis:n,width:r,height:i,offset:a}=e;return Tk(IB(VB(VB(VB({},zB),n),{},{ticks:Ek(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},Jwe=(e,t)=>{var{yAxis:n,width:r,height:i,offset:a}=e;return Tk(IB(VB(VB(VB({},zB),n),{},{ticks:Ek(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},Ywe={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:`#ccc`,fill:`none`,verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:HF.grid};function WB(e){var t=sA(),n=cA(),r=oA(),i=VB(VB({},gD(e,Ywe)),{},{x:XE(e.x)?e.x:r.left,y:XE(e.y)?e.y:r.top,width:XE(e.width)?e.width:r.width,height:XE(e.height)?e.height:r.height}),{xAxisId:a,yAxisId:o,x:s,y:c,width:l,height:u,syncWithTicks:d,horizontalValues:f,verticalValues:p}=i,m=Gk(),h=FD(e=>FL(e,`xAxis`,a,m)),g=FD(e=>FL(e,`yAxis`,o,m));if(!xk(l)||!xk(u)||!XE(s)||!XE(c))return null;var _=i.verticalCoordinatesGenerator||qwe,v=i.horizontalCoordinatesGenerator||Jwe,{horizontalPoints:b,verticalPoints:x}=i;if((!b||!b.length)&&typeof v==`function`){var S=f&&f.length,C=v({yAxis:g?VB(VB({},g),{},{ticks:S?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},S?!0:d);Jk(Array.isArray(C),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof C}]`),Array.isArray(C)&&(b=C)}if((!x||!x.length)&&typeof _==`function`){var w=p&&p.length,T=_({xAxis:h?VB(VB({},h),{},{ticks:w?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);Jk(Array.isArray(T),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(x=T)}return y.createElement(WR,{zIndex:i.zIndex},y.createElement(`g`,{className:`recharts-cartesian-grid`},y.createElement(Vwe,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),y.createElement(Gwe,HB({},i,{horizontalPoints:b})),y.createElement(Kwe,HB({},i,{verticalPoints:x})),y.createElement(Uwe,HB({},i,{offset:r,horizontalPoints:b,xAxis:h,yAxis:g})),y.createElement(Wwe,HB({},i,{offset:r,verticalPoints:x,xAxis:h,yAxis:g}))))}WB.displayName=`CartesianGrid`;var Xwe=ok({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:i}=t.payload;e[n]&&(e[n]=e[n].map(e=>e.dataKey===r.dataKey&&e.direction===r.direction?i:e))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(e=>e.dataKey!==r.dataKey||e.direction!==r.direction))}}}),{addErrorBar:Zwe,replaceErrorBar:Qwe,removeErrorBar:$we}=Xwe.actions,eTe=Xwe.reducer,tTe=[`children`];function nTe(e,t){if(e==null)return{};var n,r,i=rTe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r({x:0,y:0,value:0}),errorBarOffset:0});function aTe(e){var{children:t}=e,n=nTe(e,tTe);return y.createElement(iTe.Provider,{value:n},t)}function GB(e,t){var n=FD(t=>wI(t,e)),r=FD(e=>DI(e,t)),i=n?.allowDataOverflow??SI.allowDataOverflow,a=r?.allowDataOverflow??TI.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function KB(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,i=OB(),{needClipX:a,needClipY:o,needClip:s}=GB(t,n);if(!s||!i)return null;var{x:c,y:l,width:u,height:d}=i;return y.createElement(`clipPath`,{id:`clipPath-${r}`},y.createElement(`rect`,{x:a?c:c-u/2,y:o?l:l-d/2,width:a?u:u*2,height:o?d:d*2}))}var oTe=(e,t,n,r)=>RL(e,`xAxis`,t,r),sTe=(e,t,n,r)=>LL(e,`xAxis`,t,r),cTe=(e,t,n,r)=>RL(e,`yAxis`,n,r),lTe=(e,t,n,r)=>LL(e,`yAxis`,n,r),uTe=BD([lA,oTe,cTe,sTe,lTe],(e,t,n,r,i)=>wk(e,`xAxis`)?Mk(t,r,!1):Mk(n,i,!1)),dTe=(e,t,n,r,i)=>i;function fTe(e){return e.type===`line`}var pTe=BD([lA,oTe,cTe,sTe,lTe,BD([NI,dTe],(e,t)=>e.filter(fTe).find(e=>e.id===t)),uTe,CF],(e,t,n,r,i,a,o,s)=>{var{chartData:c,dataStartIndex:l,dataEndIndex:u}=s;if(!(a==null||t==null||n==null||r==null||i==null||r.length===0||i.length===0||o==null||e!==`horizontal`&&e!==`vertical`)){var{dataKey:d,data:f}=a,p=f!=null&&f.length>0?f:c?.slice(l,u+1);if(p!=null)return nEe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataKey:d,bandSize:o,displayedData:p})}});function mTe(e){var t=HT(e),n=3,r=2;if(t!=null){var{r:i,strokeWidth:a}=t,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}var hTe=o((e=>{var t=f();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));o(((e,t)=>{t.exports=hTe()}))();function gTe(e){e()}function _Te(){let e=null,t=null;return{clear(){e=null,t=null},notify(){gTe(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!r||e===null||(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var vTe={notify(){},get:()=>[]};function yTe(e,t){let n,r=vTe,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=_Te())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=vTe)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var bTe=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,xTe=typeof navigator<`u`&&navigator.product===`ReactNative`,STe=bTe||xTe?y.useLayoutEffect:y.useEffect;function CTe(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function wTe(e,t){if(CTe(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r({store:i,subscription:yTe(i),getServerState:r?()=>r:void 0}),[i,r]),o=y.useMemo(()=>i.getState(),[i]);STe(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||OTe;return y.createElement(s.Provider,{value:a},t)}var ATe=kTe,jTe=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`]);function MTe(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function qB(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(jTe.has(n)){if(e[n]==null&&t[n]==null)continue;if(!wTe(e[n],t[n]))return!1}else if(!MTe(e[n],t[n]))return!1;return!0}var NTe=[`id`],PTe=[`type`,`layout`,`connectNulls`,`needClip`,`shape`],FTe=[`activeDot`,`animateNewValues`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`hide`,`isAnimationActive`,`label`,`legendType`,`xAxisId`,`yAxisId`,`id`];function JB(){return JB=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:Pk(n,t),payload:e}]},HTe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:oD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Pk(o,t),hide:s,type:l,color:r,unit:c,graphicalItemId:u}};return y.createElement(vB,{tooltipEntrySettings:d})}),UTe=(e,t)=>`${t}px ${e-t}px`;function WTe(e,t){for(var n=e.length%2==0?e:[...e,0],r=[],i=0;i{var r=n.reduce((e,t)=>e+t);if(!r)return UTe(t,e);for(var i=Math.floor(e/r),a=e%r,o=t-e,s=[],c=0,l=0;ca){s=[...n.slice(0,c),a-l];break}}var f=s.length%2==0?[0,o]:[o];return[...WTe(n,i),...s,...f].map(e=>`${e}px`).join(`, `)};function KTe(e){var{clipPathId:t,points:n,props:r}=e,{dot:i,dataKey:a,needClip:o}=r,{id:s}=r,c=VT(XB(r,NTe));return y.createElement(USe,{points:n,dot:i,className:`recharts-line-dots`,dotClassName:`recharts-line-dot`,dataKey:a,baseProps:c,needClip:o,clipPathId:t})}function qTe(e){var{showLabels:t,children:n,points:r}=e,i=(0,y.useMemo)(()=>r?.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return YB(YB({},t),{},{value:e.value,payload:e.payload,viewBox:t,parentViewBox:void 0,fill:void 0})}),[r]);return y.createElement(Yz,{value:t?i:void 0},n)}function JTe(e){var{clipPathId:t,pathRef:n,points:r,strokeDasharray:i,props:a}=e,{type:o,layout:s,connectNulls:c,needClip:l,shape:u}=a,d=YB(YB({},UT(XB(a,PTe))),{},{fill:`none`,className:`recharts-line-curve`,clipPath:l?`url(#clipPath-${t})`:void 0,points:r,type:o,layout:s,connectNulls:c,strokeDasharray:i??a.strokeDasharray});return y.createElement(y.Fragment,null,r?.length>1&&y.createElement(mB,JB({shapeType:`curve`,option:u},d,{pathRef:n})),y.createElement(KTe,{points:r,clipPathId:t,props:a}))}function YTe(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function XTe(e){var{clipPathId:t,props:n,pathRef:r,previousPointsRef:i,longestAnimatedLengthRef:a}=e,{points:o,strokeDasharray:s,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,animateNewValues:f,width:p,height:m,onAnimationEnd:h,onAnimationStart:g}=n,_=i.current,v=Jj(o,`recharts-line-`),b=(0,y.useRef)(v),[x,S]=(0,y.useState)(!1),C=!x,w=(0,y.useCallback)(()=>{typeof h==`function`&&h(),S(!1)},[h]),T=(0,y.useCallback)(()=>{typeof g==`function`&&g(),S(!0)},[g]),E=YTe(r.current),D=(0,y.useRef)(0);b.current!==v&&(D.current=a.current,b.current=v);var O=D.current;return y.createElement(qTe,{points:o,showLabels:C},n.children,y.createElement(qj,{animationId:v,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:w,onAnimationStart:T,key:v},e=>{var l=tD(O,E+O,e),u=Math.min(l,E),d=c?s?GTe(u,E,`${s}`.split(/[,\s]+/gim).map(e=>parseFloat(e))):UTe(E,u):s==null?void 0:String(s);if(e>0&&E>0&&(i.current=o,a.current=Math.max(a.current,u)),_){var h=_.length/o.length,g=e===1?o:o.map((t,n)=>{var r=Math.floor(n*h);if(_[r]){var i=_[r];return YB(YB({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return f?YB(YB({},t),{},{x:tD(p*2,t.x,e),y:tD(m/2,t.y,e)}):YB(YB({},t),{},{x:t.x,y:t.y})});return i.current=g,y.createElement(JTe,{props:n,points:g,clipPathId:t,pathRef:r,strokeDasharray:d})}return y.createElement(JTe,{props:n,points:o,clipPathId:t,pathRef:r,strokeDasharray:d})}),y.createElement(Qz,{label:n.label}))}function ZTe(e){var{clipPathId:t,props:n}=e,r=(0,y.useRef)(null),i=(0,y.useRef)(0),a=(0,y.useRef)(null);return y.createElement(XTe,{props:n,clipPathId:t,previousPointsRef:r,longestAnimatedLengthRef:i,pathRef:a})}var QTe=(e,t)=>({x:e.x??void 0,y:e.y??void 0,value:e.value,errorVal:Ck(e.payload,t)}),$Te=class extends y.Component{render(){var{hide:e,dot:t,points:n,className:r,xAxisId:i,yAxisId:a,top:o,left:s,width:c,height:l,id:u,needClip:d,zIndex:f}=this.props;if(e)return null;var p=LT(`recharts-line`,r),m=u,{r:h,strokeWidth:g}=mTe(t),_=uB(t),v=h*2+g,b=d?`url(#clipPath-${_?``:`dots-`}${m})`:void 0;return y.createElement(WR,{zIndex:f},y.createElement(qT,{className:p},d&&y.createElement(`defs`,null,y.createElement(KB,{clipPathId:m,xAxisId:i,yAxisId:a}),!_&&y.createElement(`clipPath`,{id:`clipPath-dots-${m}`},y.createElement(`rect`,{x:s-v/2,y:o-v/2,width:c+v,height:l+v}))),y.createElement(aTe,{xAxisId:i,yAxisId:a,data:n,dataPointFormatter:QTe,errorBarOffset:0},y.createElement(ZTe,{props:this.props,clipPathId:m}))),y.createElement(AB,{activeDot:this.props.activeDot,points:n,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:b}))}},eEe={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!0,fill:`#fff`,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:HF.line,type:`linear`};function tEe(e){var t=gD(e,eEe),{activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,connectNulls:s,dot:c,hide:l,isAnimationActive:u,label:d,legendType:f,xAxisId:p,yAxisId:m,id:h}=t,g=XB(t,FTe),{needClip:_}=GB(p,m),v=OB(),b=uA(),x=Gk(),S=FD(e=>pTe(e,p,m,x,h));if(b!==`horizontal`&&b!==`vertical`||S==null||v==null)return null;var{height:C,width:w,x:T,y:E}=v;return y.createElement($Te,JB({},g,{id:h,connectNulls:s,dot:c,activeDot:n,animateNewValues:r,animationBegin:i,animationDuration:a,animationEasing:o,isAnimationActive:u,hide:l,label:d,legendType:f,xAxisId:p,yAxisId:m,points:S,layout:b,height:C,width:w,left:T,top:E,needClip:_}))}function nEe(e){var{layout:t,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,dataKey:o,bandSize:s,displayedData:c}=e;return c.map((e,c)=>{var l=Ck(e,o);if(t===`horizontal`)return{x:Ok({axis:n,ticks:i,bandSize:s,entry:e,index:c}),y:(rD(l)?null:r.scale.map(l))??null,value:l,payload:e};var u=rD(l)?null:n.scale.map(l),d=Ok({axis:r,ticks:a,bandSize:s,entry:e,index:c});return u==null||d==null?null:{x:u,y:d,value:l,payload:e}}).filter(Boolean)}function rEe(e){var t=gD(e,eEe),n=Gk();return y.createElement(bB,{id:t.id,type:`line`},e=>y.createElement(y.Fragment,null,y.createElement(yB,{legendPayload:VTe(t)}),y.createElement(HTe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(xB,{type:`line`,id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),y.createElement(tEe,JB({},t,{id:e}))))}var ZB=y.memo(rEe,qB);ZB.displayName=`Line`;function QB(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function $B(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var iEe=(e,t,n)=>RL(e,`xAxis`,QB(e,t),n),aEe=(e,t,n)=>LL(e,`xAxis`,QB(e,t),n),oEe=(e,t,n)=>RL(e,`yAxis`,$B(e,t),n),sEe=(e,t,n)=>LL(e,`yAxis`,$B(e,t),n),cEe=BD([lA,iEe,oEe,aEe,sEe],(e,t,n,r,i)=>wk(e,`xAxis`)?Mk(t,r,!1):Mk(n,i,!1)),lEe=BD([NI,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),uEe=e=>wk(lA(e),`xAxis`)?`yAxis`:`xAxis`,dEe=(e,t)=>uEe(e)===`yAxis`?$B(e,t):QB(e,t),fEe=BD([lA,iEe,oEe,aEe,sEe,BD([lEe,(e,t,n)=>XI(e,uEe(e),dEe(e,t),n)],(e,t)=>{if(!(e==null||t==null)){var{stackId:n}=e,r=cI(e);if(!(n==null||r==null)){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),wF,cEe,lEe,p_e],(e,t,n,r,i,a,o,s,c,l)=>{var{chartData:u,dataStartIndex:d,dataEndIndex:f}=o;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var{data:p}=c,m=p&&p.length>0?p:u?.slice(d,f+1);if(m!=null)return FEe({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:d,areaSettings:c,stackedData:a,displayedData:m,chartBaseValue:l,bandSize:s})}}),pEe=[`id`],mEe=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function eV(){return eV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,stroke:r,fill:i,legendType:a,hide:o}=e;return[{inactive:o,dataKey:t,type:a,color:nV(r,i),value:Pk(n,t),payload:e}]},SEe=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:i,fill:a,name:o,hide:s,unit:c,tooltipType:l,id:u}=e,d={dataDefinedOnItem:n,getPosition:oD,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Pk(o,t),hide:s,type:l,color:nV(r,a),unit:c,graphicalItemId:u}};return y.createElement(vB,{tooltipEntrySettings:d})});function CEe(e){var{clipPathId:t,points:n,props:r}=e,{needClip:i,dot:a,dataKey:o}=r,s=VT(r);return y.createElement(USe,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function wEe(e){var{showLabels:t,children:n,points:r}=e,i=r.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return tV(tV({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return y.createElement(Yz,{value:t?i:void 0},n)}function TEe(e){var{points:t,baseLine:n,needClip:r,clipPathId:i,props:a}=e,{layout:o,type:s,stroke:c,connectNulls:l,isRange:u}=a,{id:d}=a,f=hEe(a,pEe),p=VT(f),m=UT(f);return y.createElement(y.Fragment,null,t?.length>1&&y.createElement(qT,{clipPath:r?`url(#clipPath-${i})`:void 0},y.createElement(Oj,eV({},m,{id:d,points:t,connectNulls:l,type:s,baseLine:n,layout:o,stroke:`none`,className:`recharts-area-area`})),c!==`none`&&y.createElement(Oj,eV({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:t})),c!==`none`&&u&&y.createElement(Oj,eV({},p,{className:`recharts-area-curve`,layout:o,type:s,connectNulls:l,fill:`none`,points:n}))),y.createElement(CEe,{points:t,props:f,clipPathId:i}))}function EEe(e){var{alpha:t,baseLine:n,points:r,strokeWidth:i}=e,a=r[0]?.y,o=r[r.length-1]?.y;if(!bk(a)||!bk(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return XE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),XE(c)?y.createElement(`rect`,{x:0,y:ae.y||0));return XE(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),XE(c)?y.createElement(`rect`,{x:a({points:o,baseLine:s}),[o,s]),`recharts-area-`),h=dA(),[g,_]=(0,y.useState)(!1),v=!g,b=(0,y.useCallback)(()=>{typeof p==`function`&&p(),_(!1)},[p]),x=(0,y.useCallback)(()=>{typeof f==`function`&&f(),_(!0)},[f]);if(h==null)return null;var S=i.current,C=a.current;return y.createElement(wEe,{showLabels:v,points:o},r.children,y.createElement(qj,{animationId:m,begin:l,duration:u,isActive:c,easing:d,onAnimationEnd:b,onAnimationStart:x,key:m},e=>{if(S){var l=S.length/o.length,u=e===1?o:o.map((t,n)=>{var r=Math.floor(n*l);if(S[r]){var i=S[r];return tV(tV({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return t}),d=XE(s)?tD(C,s,e):rD(s)||JE(s)?tD(C,0,e):s.map((t,n)=>{var r=Math.floor(n*l);if(Array.isArray(C)&&C[r]){var i=C[r];return tV(tV({},t),{},{x:tD(i.x,t.x,e),y:tD(i.y,t.y,e)})}return t});return e>0&&(i.current=u,a.current=d),y.createElement(TEe,{points:u,baseLine:d,needClip:t,clipPathId:n,props:r})}return e>0&&(i.current=o,a.current=s),y.createElement(qT,null,c&&y.createElement(`defs`,null,y.createElement(`clipPath`,{id:`animationClipPath-${n}`},y.createElement(OEe,{alpha:e,points:o,baseLine:s,layout:h,strokeWidth:r.strokeWidth}))),y.createElement(qT,{clipPath:`url(#animationClipPath-${n})`},y.createElement(TEe,{points:o,baseLine:s,needClip:t,clipPathId:n,props:r})))}),y.createElement(Qz,{label:r.label}))}function AEe(e){var{needClip:t,clipPathId:n,props:r}=e,i=(0,y.useRef)(null),a=(0,y.useRef)();return y.createElement(kEe,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var jEe=class extends y.PureComponent{render(){var{hide:e,dot:t,points:n,className:r,top:i,left:a,needClip:o,xAxisId:s,yAxisId:c,width:l,height:u,id:d,baseLine:f,zIndex:p}=this.props;if(e)return null;var m=LT(`recharts-area`,r),h=d,{r:g,strokeWidth:_}=mTe(t),v=uB(t),b=g*2+_,x=o?`url(#clipPath-${v?``:`dots-`}${h})`:void 0;return y.createElement(WR,{zIndex:p},y.createElement(qT,{className:m},o&&y.createElement(`defs`,null,y.createElement(KB,{clipPathId:h,xAxisId:s,yAxisId:c}),!v&&y.createElement(`clipPath`,{id:`clipPath-dots-${h}`},y.createElement(`rect`,{x:a-b/2,y:i-b/2,width:l+b,height:u+b}))),y.createElement(AEe,{needClip:o,clipPathId:h,props:this.props})),y.createElement(AB,{points:n,mainColor:nV(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}),this.props.isRange&&Array.isArray(f)&&y.createElement(AB,{points:f,mainColor:nV(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:x}))}},MEe={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,xAxisId:0,yAxisId:0,zIndex:HF.area};function NEe(e){var t=gD(e,MEe),{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,connectNulls:o,dot:s,fill:c,fillOpacity:l,hide:u,isAnimationActive:d,legendType:f,stroke:p,xAxisId:m,yAxisId:h}=t,g=hEe(t,mEe),_=uA(),v=MR(),{needClip:b}=GB(m,h),x=Gk(),{points:S,isRange:C,baseLine:w}=FD(t=>fEe(t,e.id,x))??{},T=OB();if(_!==`horizontal`&&_!==`vertical`||T==null||v!==`AreaChart`&&v!==`ComposedChart`)return null;var{height:E,width:D,x:O,y:k}=T;return!S||!S.length?null:y.createElement(jEe,eV({},g,{activeDot:n,animationBegin:r,animationDuration:i,animationEasing:a,baseLine:w,connectNulls:o,dot:s,fill:c,fillOpacity:l,height:E,hide:u,layout:_,isAnimationActive:d===`auto`?!Wj.isSsr:d,isRange:C,legendType:f,needClip:b,points:S,stroke:p,width:D,left:O,top:k,xAxisId:m,yAxisId:h}))}var PEe=(e,t,n,r,i)=>{var a=n??t;if(XE(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function FEe(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:i,layout:a,chartBaseValue:o,xAxis:s,yAxis:c,displayedData:l,dataStartIndex:u,xAxisTicks:d,yAxisTicks:f,bandSize:p}=e,m=i&&i.length,h=PEe(a,o,n,s,c),g=a===`horizontal`,_=!1,v=l.map((e,n)=>{var a;if(m)a=i[u+n];else{var o=Ck(e,r);Array.isArray(o)?(a=o,_=!0):a=[h,o]}var l=a?.[1]??null,v=l==null||m&&!t&&Ck(e,r)==null;return g?{x:Ok({axis:s,ticks:d,bandSize:p,entry:e,index:n}),y:v?null:c.scale.map(l)??null,value:a,payload:e}:{x:v?null:s.scale.map(l)??null,y:Ok({axis:c,ticks:f,bandSize:p,entry:e,index:n}),value:a,payload:e}});return{points:v,baseLine:(m||_?v.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return g?{x:e.x,y:t!=null&&e.y!=null?c.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:s.scale.map(t)??null,y:e.y,payload:e.payload}}):g?c.scale.map(h):s.scale.map(h))??0,isRange:_}}function IEe(e){var t=gD(e,MEe),n=Gk();return y.createElement(bB,{id:t.id,type:`area`},e=>y.createElement(y.Fragment,null,y.createElement(yB,{legendPayload:xEe(t)}),y.createElement(SEe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(xB,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Dk(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(NEe,eV({},t,{id:e}))))}var rV=y.memo(IEe,qB);rV.displayName=`Area`;var LEe=!0,iV=`Invariant failed`;function REe(e,t){if(!e){if(LEe)throw Error(iV);var n=typeof t==`function`?t():t,r=n?`${iV}: ${n}`:iV;throw Error(r)}}function aV(){return aV=Object.assign?Object.assign.bind():function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:0;return(n,r)=>{if(XE(e))return e;var i=XE(n)||rD(n);return i?e(n,r):(!i&&REe(!1,`minPointSize callback function received a value with type of ${typeof n}. Currently only numbers or null/undefined are supported.`),t)}},BEe=(e,t,n)=>n,sV=BD([NI,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`bar`).find(e=>e.id===t)),VEe=BD([sV],e=>e?.maxBarSize),HEe=(e,t,n,r)=>r,UEe=BD([lA,NI,QB,$B,BEe],(e,t,n,r,i)=>t.filter(t=>e===`horizontal`?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===i).filter(e=>e.hide===!1).filter(e=>e.type===`bar`)),WEe=(e,t,n)=>{var r=lA(e),i=QB(e,t),a=$B(e,t);if(!(i==null||a==null))return r===`horizontal`?XI(e,`yAxis`,a,n):XI(e,`xAxis`,i,n)},GEe=BD([UEe,f_e,(e,t)=>{var n=lA(e),r=QB(e,t),i=$B(e,t);if(!(r==null||i==null))return n===`horizontal`?AL(e,`xAxis`,r):AL(e,`yAxis`,i)}],hCe),KEe=(e,t,n)=>{var r=sV(e,t);if(r==null)return 0;var i=QB(e,t),a=$B(e,t);if(i==null||a==null)return 0;var o=lA(e),s=PF(e),{maxBarSize:c}=r,l=rD(c)?s:c,u,d;return o===`horizontal`?(u=RL(e,`xAxis`,i,n),d=LL(e,`xAxis`,i,n)):(u=RL(e,`yAxis`,a,n),d=LL(e,`yAxis`,a,n)),Mk(u,d,!0)??l??0},qEe=(e,t,n)=>{var r=lA(e),i=QB(e,t),a=$B(e,t);if(!(i==null||a==null)){var o,s;return r===`horizontal`?(o=RL(e,`xAxis`,i,n),s=LL(e,`xAxis`,i,n)):(o=RL(e,`yAxis`,a,n),s=LL(e,`yAxis`,a,n)),Mk(o,s)}},JEe=BD([Uk,Wk,(e,t,n)=>{var r=QB(e,t);if(r!=null)return RL(e,`xAxis`,r,n)},(e,t,n)=>{var r=$B(e,t);if(r!=null)return RL(e,`yAxis`,r,n)},(e,t,n)=>{var r=QB(e,t);if(r!=null)return LL(e,`xAxis`,r,n)},(e,t,n)=>{var r=$B(e,t);if(r!=null)return LL(e,`yAxis`,r,n)},BD([BD([GEe,PF,d_e,FF,KEe,qEe,VEe],xCe),sV],CCe),lA,wF,qEe,BD([WEe,sV],SCe),sV,HEe],(e,t,n,r,i,a,o,s,c,l,u,d,f)=>{var{chartData:p,dataStartIndex:m,dataEndIndex:h}=c;if(!(d==null||o==null||t==null||s!==`horizontal`&&s!==`vertical`||n==null||r==null||i==null||a==null||l==null)){var{data:g}=d,_=g!=null&&g.length>0?g:p?.slice(m,h+1);if(_!=null)return EDe({layout:s,barSettings:d,pos:o,parentViewBox:t,bandSize:l,xAxis:n,yAxis:r,xAxisTicks:i,yAxisTicks:a,stackedData:u,displayedData:_,offset:e,cells:f,dataStartIndex:m})}}),YEe=[`index`];function cV(){return cV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=(0,y.useContext)(QEe);if(t!=null)return t.stackId;if(e!=null)return Dk(e)},eDe=(e,t)=>`recharts-bar-stack-clip-path-${e}-${t}`,tDe=e=>{var t=(0,y.useContext)(QEe);if(t!=null){var{stackId:n}=t;return`url(#${eDe(n,e)})`}},nDe=e=>{var{index:t}=e,n=XEe(e,YEe),r=tDe(t);return y.createElement(qT,cV({className:`recharts-bar-stack-layer`,clipPath:r},n))},rDe=[`onMouseEnter`,`onMouseLeave`,`onClick`],iDe=[`value`,`background`,`tooltipPosition`],aDe=[`id`],oDe=[`onMouseEnter`,`onClick`,`onMouseLeave`];function lV(){return lV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var{dataKey:t,name:n,fill:r,legendType:i,hide:a}=e;return[{inactive:a,dataKey:t,type:i,color:r,value:Pk(n,t),payload:e}]},pDe=y.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:i,name:a,hide:o,unit:s,tooltipType:c,id:l}=e,u={dataDefinedOnItem:void 0,getPosition:oD,settings:{stroke:n,strokeWidth:r,fill:i,dataKey:t,nameKey:void 0,name:Pk(a,t),hide:o,type:c,color:i,unit:s,graphicalItemId:l}};return y.createElement(vB,{tooltipEntrySettings:u})});function mDe(e){var t=FD(CR),{data:n,dataKey:r,background:i,allOtherBarProps:a}=e,{onMouseEnter:o,onMouseLeave:s,onClick:c}=a,l=dV(a,rDe),u=hB(o,r,a.id),d=gB(s),f=_B(c,r,a.id);if(!i||n==null)return null;var p=HT(i);return y.createElement(WR,{zIndex:wCe(i,HF.barBackground)},n.map((e,n)=>{var{value:a,background:o,tooltipPosition:s}=e,c=dV(e,iDe);if(!o)return null;var m=u(e,n),h=d(e,n),g=f(e,n),_=uV(uV(uV(uV(uV({option:i,isActive:String(n)===t},c),{},{fill:`#eee`},o),p),mD(l,e,n)),{},{onMouseEnter:m,onMouseLeave:h,onClick:g,dataKey:r,index:n,className:`recharts-bar-background-rectangle`});return y.createElement(oV,lV({key:`background-bar-${n}`},_))}))}function hDe(e){var{showLabels:t,children:n,rects:r}=e,i=r?.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return uV(uV({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return y.createElement(Yz,{value:t?i:void 0},n)}function gDe(e){var{shape:t,activeBar:n,baseProps:r,entry:i,index:a,dataKey:o}=e,s=FD(CR),c=FD(TR),l=n&&String(a)===s&&(c==null||o===c),u=l?n:t;return l?y.createElement(WR,{zIndex:HF.activeBar},y.createElement(nDe,{index:a},y.createElement(oV,lV({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o})))):y.createElement(oV,lV({},r,{name:String(r.name)},i,{isActive:l,option:u,index:a,dataKey:o}))}function _De(e){var{shape:t,baseProps:n,entry:r,index:i,dataKey:a}=e;return y.createElement(oV,lV({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:i,dataKey:a}))}function vDe(e){var{data:t,props:n}=e,r=VT(n)??{},{id:i}=r,a=dV(r,aDe),{shape:o,dataKey:s,activeBar:c}=n,{onMouseEnter:l,onClick:u,onMouseLeave:d}=n,f=dV(n,oDe),p=hB(l,s,i),m=gB(d),h=_B(u,s,i);return t?y.createElement(y.Fragment,null,t.map((e,t)=>y.createElement(nDe,lV({index:t,key:`rectangle-${e?.x}-${e?.y}-${e?.value}-${t}`,className:`recharts-bar-rectangle`},mD(f,e,t),{onMouseEnter:p(e,t),onMouseLeave:m(e,t),onClick:h(e,t)}),c?y.createElement(gDe,{shape:o,activeBar:c,baseProps:a,entry:e,index:t,dataKey:s}):y.createElement(_De,{shape:o,baseProps:a,entry:e,index:t,dataKey:s})))):null}function yDe(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:i,isAnimationActive:a,animationBegin:o,animationDuration:s,animationEasing:c,onAnimationEnd:l,onAnimationStart:u}=t,d=n.current,f=Jj(t,`recharts-bar-`),[p,m]=(0,y.useState)(!1),h=!p,g=(0,y.useCallback)(()=>{typeof l==`function`&&l(),m(!1)},[l]),_=(0,y.useCallback)(()=>{typeof u==`function`&&u(),m(!0)},[u]);return y.createElement(hDe,{showLabels:h,rects:r},y.createElement(qj,{animationId:f,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:g,onAnimationStart:_,key:f},e=>{var a=e===1?r:r?.map((t,n)=>{var r=d&&d[n];if(r)return uV(uV({},t),{},{x:tD(r.x,t.x,e),y:tD(r.y,t.y,e),width:tD(r.width,t.width,e),height:tD(r.height,t.height,e)});if(i===`horizontal`){var a=tD(0,t.height,e),o=tD(t.stackedBarStart,t.y,e);return uV(uV({},t),{},{y:o,height:a})}var s=tD(0,t.width,e),c=tD(t.stackedBarStart,t.x,e);return uV(uV({},t),{},{width:s,x:c})});return e>0&&(n.current=a??null),a==null?null:y.createElement(qT,null,y.createElement(vDe,{props:t,data:a}))}),y.createElement(Qz,{label:t.label}),t.children)}function bDe(e){var t=(0,y.useRef)(null);return y.createElement(yDe,{previousRectanglesRef:t,props:e})}var xDe=0,SDe=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:Ck(e,t)}},CDe=class extends y.PureComponent{render(){var{hide:e,data:t,dataKey:n,className:r,xAxisId:i,yAxisId:a,needClip:o,background:s,id:c}=this.props;if(e||t==null)return null;var l=LT(`recharts-bar`,r),u=c;return y.createElement(qT,{className:l,id:c},o&&y.createElement(`defs`,null,y.createElement(KB,{clipPathId:u,xAxisId:i,yAxisId:a})),y.createElement(qT,{className:`recharts-bar-rectangles`,clipPath:o?`url(#clipPath-${u})`:void 0},y.createElement(mDe,{data:t,dataKey:n,background:s,allOtherBarProps:this.props}),y.createElement(bDe,this.props)))}},wDe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:`ease`,background:!1,hide:!1,isAnimationActive:`auto`,label:!1,legendType:`rect`,minPointSize:xDe,xAxisId:0,yAxisId:0,zIndex:HF.bar};function TDe(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u}=e,{needClip:d}=GB(t,n),f=uA(),p=Gk(),m=lB(e.children,cz),h=FD(t=>JEe(t,e.id,p,m));if(f!==`vertical`&&f!==`horizontal`)return null;var g,_=h?.[0];return g=_==null||_.height==null||_.width==null?0:f===`vertical`?_.height/2:_.width/2,y.createElement(aTe,{xAxisId:t,yAxisId:n,data:h,dataPointFormatter:SDe,errorBarOffset:g},y.createElement(CDe,lV({},e,{layout:f,needClip:d,data:h,xAxisId:t,yAxisId:n,hide:r,legendType:i,minPointSize:a,activeBar:o,animationBegin:s,animationDuration:c,animationEasing:l,isAnimationActive:u})))}function EDe(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r},pos:i,bandSize:a,xAxis:o,yAxis:s,xAxisTicks:c,yAxisTicks:l,stackedData:u,displayedData:d,offset:f,cells:p,parentViewBox:m,dataStartIndex:h}=e,g=t===`horizontal`?s:o,_=u?g.scale.domain():null,v=Ude({numericAxis:g}),y=g.scale.map(v);return d.map((e,d)=>{var g,b,x,S,C,w;if(u){var T=u[d+h];if(T==null)return null;g=Bde(T,_)}else g=Ck(e,n),Array.isArray(g)||(g=[v,g]);var E=zEe(r,xDe)(g[1],d);if(t===`horizontal`){var D=s.scale.map(g[0]),O=s.scale.map(g[1]);if(D==null||O==null)return null;b=kk({axis:o,ticks:c,bandSize:a,offset:i.offset,entry:e,index:d}),x=O??D??void 0,S=i.size;var k=D-O;if(C=JE(k)?0:k,w={x:b,y:f.top,width:S,height:f.height},Math.abs(E)>0&&Math.abs(C)0&&Math.abs(S)y.createElement(y.Fragment,null,y.createElement(yB,{legendPayload:fDe(t)}),y.createElement(pDe,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:e}),y.createElement(xB,{type:`bar`,id:e,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r}),y.createElement(WR,{zIndex:t.zIndex},y.createElement(TDe,lV({},t,{id:e})))))}var fV=y.memo(DDe,qB);fV.displayName=`Bar`;var ODe=[`domain`,`range`],kDe=[`domain`,`range`];function pV(e,t){if(e==null)return{};var n,r,i=ADe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{if(o!=null)return vV(vV({},a),{},{type:o})},[a,o]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(XSe(s)):n.current!==s&&t(ZSe({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(QSe(n.current)),null)},[t]),null}var zDe=e=>{var{xAxisId:t,className:n}=e,r=FD(Wk),i=Gk(),a=`xAxis`,o=FD(e=>IL(e,a,t,i)),s=FD(e=>OL(e,t)),c=FD(e=>ove(e,t)),l=FD(e=>CI(e,t));if(s==null||c==null||l==null)return null;var{dangerouslySetInnerHTML:u,ticks:d,scale:f}=e,p=yV(e,MDe),{id:m,scale:h}=l,g=yV(l,NDe);return y.createElement(BB,gV({},p,g,{x:c.x,y:c.y,width:s.width,height:s.height,className:LT(`recharts-${a} ${a}`,n),viewBox:r,ticks:o,axisType:a}))},BDe={allowDataOverflow:SI.allowDataOverflow,allowDecimals:SI.allowDecimals,allowDuplicatedCategory:SI.allowDuplicatedCategory,angle:SI.angle,axisLine:zB.axisLine,height:SI.height,hide:!1,includeHidden:SI.includeHidden,interval:SI.interval,label:!1,minTickGap:SI.minTickGap,mirror:SI.mirror,orientation:SI.orientation,padding:SI.padding,reversed:SI.reversed,scale:SI.scale,tick:SI.tick,tickCount:SI.tickCount,tickLine:zB.tickLine,tickSize:zB.tickSize,type:SI.type,xAxisId:0},bV=y.memo(e=>{var t=gD(e,BDe);return y.createElement(y.Fragment,null,y.createElement(RDe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit}),y.createElement(zDe,t))},hV);bV.displayName=`XAxis`;var VDe=[`type`],HDe=[`dangerouslySetInnerHTML`,`ticks`,`scale`],UDe=[`id`,`scale`];function xV(){return xV=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return CV(CV({},a),{},{type:o})},[o,a]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t($Se(s)):n.current!==s&&t(eCe({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(tCe(n.current)),null)},[t]),null}function YDe(e){var{yAxisId:t,className:n,width:r,label:i}=e,a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=FD(Wk),c=Gk(),l=ND(),u=`yAxis`,d=FD(e=>kL(e,t)),f=FD(e=>sve(e,t)),p=FD(e=>IL(e,u,t,c)),m=FD(e=>EI(e,t));if((0,y.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||Hz(i)||(0,y.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(aCe({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;var{dangerouslySetInnerHTML:h,ticks:g,scale:_}=e,v=wV(e,HDe),{id:b,scale:x}=m,S=wV(m,UDe);return y.createElement(BB,xV({},v,S,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:LT(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u}))}var XDe={allowDataOverflow:TI.allowDataOverflow,allowDecimals:TI.allowDecimals,allowDuplicatedCategory:TI.allowDuplicatedCategory,angle:TI.angle,axisLine:zB.axisLine,hide:!1,includeHidden:TI.includeHidden,interval:TI.interval,label:!1,minTickGap:TI.minTickGap,mirror:TI.mirror,orientation:TI.orientation,padding:TI.padding,reversed:TI.reversed,scale:TI.scale,tick:TI.tick,tickCount:TI.tickCount,tickLine:zB.tickLine,tickSize:zB.tickSize,type:TI.type,width:TI.width,yAxisId:0},TV=y.memo(e=>{var t=gD(e,XDe);return y.createElement(y.Fragment,null,y.createElement(JDe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter}),y.createElement(YDe,t))},hV);TV.displayName=`YAxis`;var EV=BD([(e,t)=>t,lA,aI,pI,gR,vR,$ve,Uk],oye),DV=e=>{var t=e.currentTarget.getBoundingClientRect(),n=t.width/e.currentTarget.offsetWidth,r=t.height/e.currentTarget.offsetHeight;return{chartX:Math.round((e.clientX-t.left)/n),chartY:Math.round((e.clientY-t.top)/r)}},OV=rk(`mouseClick`),kV=vk();kV.startListening({actionCreator:OV,effect:(e,t)=>{var n=e.payload,r=EV(t.getState(),DV(n));r?.activeIndex!=null&&t.dispatch(_ve({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var AV=rk(`mouseMove`),jV=vk(),MV=null;jV.startListening({actionCreator:AV,effect:(e,t)=>{var n=e.payload;MV!==null&&cancelAnimationFrame(MV);var r=DV(n);MV=requestAnimationFrame(()=>{var e=t.getState();if(HL(e,e.tooltip.settings.shared)===`axis`){var n=EV(e,r);n?.activeIndex==null?t.dispatch(qL()):t.dispatch(JL({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}MV=null})}});function ZDe(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<>`:t}var NV={accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:`none`,syncId:void 0,syncMethod:`index`,baseValue:void 0,reverseStackOrder:!1},PV=ok({name:`rootProps`,initialState:NV,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??NV.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),QDe=PV.reducer,{updateOptions:$De}=PV.actions,FV=ok({name:`polarOptions`,initialState:null,reducers:{updatePolarOptions:(e,t)=>t.payload}}),{updatePolarOptions:eOe}=FV.actions,tOe=FV.reducer,IV=rk(`keyDown`),LV=rk(`focus`),RV=vk();RV.startListening({actionCreator:IV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip,i=e.payload;if(!(i!==`ArrowRight`&&i!==`ArrowLeft`&&i!==`Enter`)){var a=eR(r,uR(n),JI(n),mR(n)),o=a==null?-1:Number(a);if(!(!Number.isFinite(o)||o<0)){var s=vR(n);if(i===`Enter`){var c=zR(n,`axis`,`hover`,String(r.index));t.dispatch(XL({active:!r.active,activeIndex:r.index,activeCoordinate:c}));return}var l=cve(n)===`left-to-right`?1:-1,u=o+(i===`ArrowRight`?1:-1)*l;if(!(s==null||u>=s.length||u<0)){var d=zR(n,`axis`,`hover`,String(u));t.dispatch(XL({active:!0,activeIndex:u.toString(),activeCoordinate:d}))}}}}}}),RV.startListening({actionCreator:LV,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var i=`0`,a=zR(n,`axis`,`hover`,String(i));t.dispatch(XL({active:!0,activeIndex:i,activeCoordinate:a}))}}}});var zV=rk(`externalEvent`),BV=vk(),VV=new Map;BV.startListening({actionCreator:zV,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){r.persist();var i=r.type,a=VV.get(i);a!==void 0&&cancelAnimationFrame(a);var o=requestAnimationFrame(()=>{try{var e=t.getState();n({activeCoordinate:zve(e),activeDataKey:TR(e),activeIndex:CR(e),activeLabel:wR(e),activeTooltipIndex:CR(e),isTooltipActive:Bve(e)},r)}finally{VV.delete(i)}});VV.set(i,o)}}});var nOe=BD([BD([iR],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var{getPosition:i}=r;if(i!=null)return i(t)}}}),HV=rk(`touchMove`),UV=vk();UV.startListening({actionCreator:HV,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){var r=t.getState(),i=HL(r,r.tooltip.settings.shared);if(i===`axis`){var a=n.touches[0];if(a==null)return;var o=EV(r,DV({clientX:a.clientX,clientY:a.clientY,currentTarget:n.currentTarget}));o?.activeIndex!=null&&t.dispatch(JL({activeIndex:o.activeIndex,activeDataKey:void 0,activeCoordinate:o.activeCoordinate}))}else if(i===`item`){var s=n.touches[0];if(document.elementFromPoint==null||s==null)return;var c=document.elementFromPoint(s.clientX,s.clientY);if(!c||!c.getAttribute)return;var l=c.getAttribute(Bk),u=c.getAttribute(`data-recharts-item-id`)??void 0,d=lR(r).find(e=>e.id===u);if(l==null||d==null||u==null)return;var{dataKey:f}=d,p=nOe(r,l,u);t.dispatch(KL({activeDataKey:f,activeIndex:l,activeCoordinate:p,activeGraphicalItemId:u}))}}}});var rOe=$D({brush:kCe,cartesianAxis:oCe,chartData:Nye,errorBars:eTe,graphicalItems:sSe,layout:Nde,legend:Rfe,options:Oye,polarAxis:cxe,polarOptions:tOe,referenceElements:VCe,rootProps:QDe,tooltip:vve,zIndex:yye}),iOe=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return Wue({reducer:rOe,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([kV.middleware,jV.middleware,RV.middleware,BV.middleware,UV.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(Hue({type:`raf`}))},devTools:Wj.devToolsEnabled&&{serialize:{replacer:ZDe},name:`recharts-${t}`}})};function WV(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,i=Gk(),a=(0,y.useRef)(null);if(i)return n;a.current??=iOe(t,r);var o=jD;return y.createElement(ATe,{context:o,store:a.current},n)}function aOe(e){var{layout:t,margin:n}=e,r=ND(),i=Gk();return(0,y.useEffect)(()=>{i||(r(Ade(t)),r(kde(n)))},[r,i,t,n]),null}var GV=(0,y.memo)(aOe,qB);function KV(e){var t=ND();return(0,y.useEffect)(()=>{t($De(e))},[t,e]),null}function qV(e){var{zIndex:t,isPanorama:n}=e,r=(0,y.useRef)(null),i=ND();return(0,y.useLayoutEffect)(()=>(r.current&&i(_ye({zIndex:t,element:r.current,isPanorama:n})),()=>{i(vye({zIndex:t,isPanorama:n}))}),[i,t,n]),y.createElement(`g`,{tabIndex:-1,ref:r})}function JV(e){var{children:t,isPanorama:n}=e,r=FD(cye);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return y.createElement(y.Fragment,null,i.map(e=>y.createElement(qV,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>y.createElement(qV,{key:e,zIndex:e,isPanorama:n})))}var oOe=[`children`];function sOe(e,t){if(e==null)return{};var n,r,i=cOe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=sA(),r=cA(),i=vj();if(!xk(n)||!xk(r))return null;var{children:a,otherAttributes:o,title:s,desc:c}=e,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),y.createElement(GT,YV({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:lOe,ref:t}),a)}),dOe=e=>{var{children:t}=e,n=FD(qk);if(!n)return null;var{width:r,height:i,y:a,x:o}=n;return y.createElement(GT,{width:r,height:i,x:o,y:a},t)},XV=(0,y.forwardRef)((e,t)=>{var{children:n}=e,r=sOe(e,oOe);return Gk()?y.createElement(dOe,null,y.createElement(JV,{isPanorama:!0},n)):y.createElement(uOe,YV({ref:t},r),y.createElement(JV,{isPanorama:!1},n))});function fOe(){var e=ND(),[t,n]=(0,y.useState)(null),r=FD(Yde);return(0,y.useEffect)(()=>{if(t!=null){var n=t.getBoundingClientRect().width/t.offsetWidth;bk(n)&&n!==r&&e(Mde(n))}},[t,e,r]),n}function ZV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pOe(e){for(var t=1;t(Hye(),null);function $V(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var vOe=(0,y.forwardRef)((e,t)=>{var n=(0,y.useRef)(null),[r,i]=(0,y.useState)({containerWidth:$V(e.style?.width),containerHeight:$V(e.style?.height)}),a=(0,y.useCallback)((e,t)=>{i(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),o=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null&&typeof ResizeObserver<`u`){var{width:r,height:i}=e.getBoundingClientRect();a(r,i);var o=new ResizeObserver(e=>{var t=e[0];if(t!=null){var{width:n,height:r}=t.contentRect;a(n,r)}});o.observe(e),n.current=o}},[t,a]);return(0,y.useEffect)(()=>()=>{n.current?.disconnect()},[a]),y.createElement(y.Fragment,null,y.createElement(pA,{width:r.containerWidth,height:r.containerHeight}),y.createElement(`div`,QV({ref:o},e)))}),yOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e,[i,a]=(0,y.useState)({containerWidth:$V(n),containerHeight:$V(r)}),o=(0,y.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var{width:n,height:r}=e.getBoundingClientRect();o(n,r)}},[t,o]);return y.createElement(y.Fragment,null,y.createElement(pA,{width:i.containerWidth,height:i.containerHeight}),y.createElement(`div`,QV({ref:s},e)))}),bOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return y.createElement(y.Fragment,null,y.createElement(pA,{width:n,height:r}),y.createElement(`div`,QV({ref:t},e)))}),xOe=(0,y.forwardRef)((e,t)=>{var{width:n,height:r}=e;return typeof n==`string`||typeof r==`string`?y.createElement(yOe,QV({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?y.createElement(bOe,QV({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(pA,{width:n,height:r}),y.createElement(`div`,QV({ref:t},e)))});function SOe(e){return e?vOe:xOe}var COe=(0,y.forwardRef)((e,t)=>{var{children:n,className:r,height:i,onClick:a,onContextMenu:o,onDoubleClick:s,onMouseDown:c,onMouseEnter:l,onMouseLeave:u,onMouseMove:d,onMouseUp:f,onTouchEnd:p,onTouchMove:m,onTouchStart:h,style:g,width:_,responsive:v,dispatchTouchEvents:b=!0}=e,x=(0,y.useRef)(null),S=ND(),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(null),D=fOe(),O=nA(),k=O?.width>0?O.width:_,A=O?.height>0?O.height:i,j=(0,y.useCallback)(e=>{D(e),typeof t==`function`&&t(e),w(e),E(e),e!=null&&(x.current=e)},[D,t,w,E]),M=(0,y.useCallback)(e=>{S(OV(e)),S(zV({handler:a,reactEvent:e}))},[S,a]),N=(0,y.useCallback)(e=>{S(AV(e)),S(zV({handler:l,reactEvent:e}))},[S,l]),P=(0,y.useCallback)(e=>{S(qL()),S(zV({handler:u,reactEvent:e}))},[S,u]),F=(0,y.useCallback)(e=>{S(AV(e)),S(zV({handler:d,reactEvent:e}))},[S,d]),I=(0,y.useCallback)(()=>{S(LV())},[S]),L=(0,y.useCallback)(e=>{S(IV(e.key))},[S]),R=(0,y.useCallback)(e=>{S(zV({handler:o,reactEvent:e}))},[S,o]),z=(0,y.useCallback)(e=>{S(zV({handler:s,reactEvent:e}))},[S,s]),B=(0,y.useCallback)(e=>{S(zV({handler:c,reactEvent:e}))},[S,c]),V=(0,y.useCallback)(e=>{S(zV({handler:f,reactEvent:e}))},[S,f]),ee=(0,y.useCallback)(e=>{S(zV({handler:h,reactEvent:e}))},[S,h]),te=(0,y.useCallback)(e=>{b&&S(HV(e)),S(zV({handler:m,reactEvent:e}))},[S,b,m]),ne=(0,y.useCallback)(e=>{S(zV({handler:p,reactEvent:e}))},[S,p]),re=SOe(v);return y.createElement(JR.Provider,{value:C},y.createElement(JT.Provider,{value:T},y.createElement(re,{width:k??g?.width,height:A??g?.height,className:LT(`recharts-wrapper`,r),style:pOe({position:`relative`,cursor:`default`,width:k,height:A},g),onClick:M,onContextMenu:R,onDoubleClick:z,onFocus:I,onKeyDown:L,onMouseDown:B,onMouseEnter:N,onMouseLeave:P,onMouseMove:F,onMouseUp:V,onTouchEnd:ne,onTouchMove:te,onTouchStart:ee,ref:j},y.createElement(_Oe,null),n)))}),wOe=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function TOe(e,t){if(e==null)return{};var n,r,i=EOe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var{width:n,height:r,responsive:i,children:a,className:o,style:s,compact:c,title:l,desc:u}=e,d=VT(TOe(e,wOe));return c?y.createElement(y.Fragment,null,y.createElement(pA,{width:n,height:r}),y.createElement(XV,{otherAttributes:d,title:l,desc:u},a)):y.createElement(COe,{className:o,style:s,width:n,height:r,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},y.createElement(XV,{otherAttributes:d,title:l,desc:u,ref:t},y.createElement(UCe,null,a)))});function tH(){return tH=Object.assign?Object.assign.bind():function(e){for(var t=1;ty.createElement(nH,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:OOe,tooltipPayloadSearcher:QR,categoricalChartProps:e,ref:t})),kOe=[`axis`,`item`],iH=(0,y.forwardRef)((e,t)=>y.createElement(nH,{chartName:`BarChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:kOe,tooltipPayloadSearcher:QR,categoricalChartProps:e,ref:t}));function AOe(e){var t=ND();return(0,y.useEffect)(()=>{t(eOe(e))},[t,e]),null}var jOe=[`layout`];function aH(){return aH=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var n=gD(e,zOe);return y.createElement(POe,{chartName:`PieChart`,defaultTooltipEventType:`item`,validateTooltipEventTypes:ROe,tooltipPayloadSearcher:QR,categoricalChartProps:n,ref:t})}),BOe=[`axis`],uH=(0,y.forwardRef)((e,t)=>y.createElement(nH,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:BOe,tooltipPayloadSearcher:QR,categoricalChartProps:e,ref:t})),dH=[{value:`6h`,label:`6h`,hours:6},{value:`24h`,label:`24h`,hours:24},{value:`48h`,label:`48h`,hours:48},{value:`7d`,label:`7d`,hours:168}];function VOe({isOpen:e,onClose:t,printerId:n,printerName:r,amsId:i,amsLabel:a,initialMode:o=`humidity`,thresholds:s}){let{t:c}=U(),[l,u]=(0,y.useState)(`24h`),[d,f]=(0,y.useState)(o),{data:p}=K({queryKey:[`settings`],queryFn:Z.getSettings}),m=p?.time_format||`system`;(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]);let h=dH.find(e=>e.value===l)?.hours||24,{data:g,isLoading:_,error:v}=K({queryKey:[`ams-history`,n,i,h],queryFn:()=>Z.getAMSHistory(n,i,h),enabled:e,refetchInterval:6e4});if(!e)return null;let b=g?.data.map(e=>({time:(rp(e.recorded_at)||new Date).getTime(),humidity:e.humidity,temperature:e.temperature}))||[],x=Date.now()-h*60*60*1e3,S=Date.now(),C=[...b];if(C.length>0){let e=C[0];e.time>x&&C.unshift({...e,time:x});let t=C[C.length-1];t.time{let t=e.filter(e=>e!=null);if(t.length<4)return`stable`;let n=t.slice(0,Math.floor(t.length/4)),r=t.slice(-Math.floor(t.length/4)),i=n.reduce((e,t)=>e+t,0)/n.length,a=r.reduce((e,t)=>e+t,0)/r.length-i;return Math.abs(a)<2?`stable`:a>0?`up`:`down`},M=j(C.map(e=>e.humidity)),N=j(C.map(e=>e.temperature)),P=({trend:e})=>e===`up`?(0,G.jsx)(Iu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}):e===`down`?(0,G.jsx)(Fu,{className:`w-4 h-4 text-green-600 dark:text-green-400`}):(0,G.jsx)(ml,{className:`w-4 h-4 text-gray-400 dark:text-bambu-gray`}),F=e=>e==null?`#9ca3af`:e<=w?`#22a352`:e<=T?`#d4a017`:`#c62828`,I=e=>e==null?`#9ca3af`:e<=E?`#22a352`:e<=D?`#d4a017`:`#c62828`,L=`var(--bg-secondary)`,R=`var(--bg-primary)`,z=`var(--border-color)`,B=`var(--text-primary)`,V=`var(--text-secondary)`,ee=`var(--text-muted)`;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,onClick:t,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-xl`,style:{backgroundColor:L},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b`,style:{borderColor:z},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold`,style:{color:B},children:[a,` `,c(`common.history`,`History`)]}),(0,G.jsx)(`p`,{className:`text-sm`,style:{color:V},children:r})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg transition-colors`,style:{color:V},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-6 overflow-y-auto max-h-[calc(90vh-80px)]`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between max-[550px]:flex-col max-[550px]:items-start max-[550px]:gap-3`,children:[(0,G.jsxs)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:R},children:[(0,G.jsxs)(`button`,{onClick:()=>f(`humidity`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${d===`humidity`?`bg-blue-600 text-white`:``}`,style:d===`humidity`?void 0:{color:V},children:[(0,G.jsx)(Qs,{className:`w-4 h-4`}),c(`common.humidity`,`Humidity`)]}),(0,G.jsxs)(`button`,{onClick:()=>f(`temperature`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${d===`temperature`?`bg-orange-600 text-white`:``}`,style:d===`temperature`?void 0:{color:V},children:[(0,G.jsx)(Mu,{className:`w-4 h-4`}),c(`common.temperature`,`Temperature`)]})]}),(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:R},children:dH.map(e=>(0,G.jsx)(`button`,{onClick:()=>u(e.value),className:`px-3 py-1 text-sm rounded-md transition-colors ${l===e.value?`bg-bambu-green text-white`:``}`,style:l===e.value?void 0:{color:V},children:e.label},e.value))})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-4 max-[550px]:grid-cols-2`,children:d===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:F(k)},children:k==null?`—`:`${k}%`}),(0,G.jsx)(P,{trend:M})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:B},children:g?.avg_humidity==null?`—`:`${g.avg_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-green-500`,children:g?.min_humidity==null?`—`:`${g.min_humidity}%`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:g?.max_humidity==null?`—`:`${g.max_humidity}%`})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-2`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:I(A)},children:A==null?`—`:`${A}°C`}),(0,G.jsx)(P,{trend:N})]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-4`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:B},children:g?.avg_temperature==null?`—`:`${g.avg_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-1`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-blue-500`,children:g?.min_temperature==null?`—`:`${g.min_temperature}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4 max-[550px]:order-3`,style:{backgroundColor:R},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:V},children:c(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-red-500`,children:g?.max_temperature==null?`—`:`${g.max_temperature}°C`})]})]})}),(0,G.jsx)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:R},children:_?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.loading`,`Loading...`)}):v?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center text-red-500`,children:c(`common.error`,`Error loading data`)}):C.length===0?(0,G.jsx)(`div`,{className:`h-[300px] flex items-center justify-center`,style:{color:V},children:c(`common.noData`,`No data available for this time range`)}):(0,G.jsx)(rA,{width:`100%`,height:300,children:(0,G.jsxs)(rH,{data:C,children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:z}),(0,G.jsx)(bV,{dataKey:`time`,type:`number`,domain:[Date.now()-h*60*60*1e3,Date.now()],tickFormatter:e=>{let t=new Date(e);return h>24?t.toLocaleDateString([],{day:`numeric`,month:`short`}):t.toLocaleTimeString([],np({hour:`2-digit`,minute:`2-digit`},m))},stroke:ee,tick:{fontSize:12}}),(0,G.jsx)(TV,{stroke:ee,tick:{fontSize:12},domain:d===`humidity`?[0,100]:[`auto`,`auto`],tickFormatter:e=>d===`humidity`?`${e}%`:`${e}°C`}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:L,border:`1px solid ${z}`,borderRadius:`8px`,color:B},labelFormatter:e=>new Date(e).toLocaleString(void 0,np({year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`},m)),formatter:e=>[d===`humidity`?`${e??0}%`:`${e??0}°C`,d===`humidity`?`Humidity`:`Temperature`]}),(0,G.jsx)(cj,{}),d===`humidity`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(NB,{y:w,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(NB,{y:T,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(NB,{y:E,stroke:`#22a352`,strokeDasharray:`5 5`,label:{value:`Good`,fill:`#22a352`,fontSize:10}}),(0,G.jsx)(NB,{y:D,stroke:`#d4a017`,strokeDasharray:`5 5`,label:{value:`Fair`,fill:`#d4a017`,fontSize:10}})]}),(0,G.jsx)(ZB,{type:`monotone`,dataKey:d,name:d===`humidity`?`Humidity`:`Temperature`,stroke:d===`humidity`?`#3b82f6`:`#f97316`,strokeWidth:2,dot:!1,activeDot:{r:4},connectNulls:!0})]})})}),(0,G.jsx)(`div`,{className:`text-xs text-center`,style:{color:V},children:c(`amsHistory.recordingInfo`,`Data is recorded every 5 minutes while the printer is connected`)})]})]})})}function fH({checked:e,onChange:t,disabled:n}){return(0,G.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,disabled:n,onClick:r=>{r.preventDefault(),r.stopPropagation(),n||t(!e)},className:`relative inline-flex w-11 h-7 md:w-9 md:h-5 rounded-full transition-colors flex-shrink-0 focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${n?`bg-bambu-dark-tertiary/50 cursor-not-allowed opacity-50`:e?`bg-bambu-green cursor-pointer`:`bg-bambu-dark-tertiary cursor-pointer hover:bg-bambu-dark-tertiary/80`}`,children:(0,G.jsx)(`span`,{className:`pointer-events-none absolute top-[3px] md:top-[2px] left-[3px] md:left-[2px] w-5 h-5 md:w-4 md:h-4 bg-white rounded-full shadow transition-transform duration-200 ease-in-out ${e?`translate-x-4`:`translate-x-0`}`})})}function HOe(e,t,n){let r=n===1||e>=128,i=e>=128?e-128:e,a=String.fromCharCode(65+i);return r?`HT·${t+1}`:`${a}·${t+1}`}function UOe(e){let t=(e||``).replace(`#`,``).slice(0,6);if(t.length!==6)return`#FFFFFF`;let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);return[n,r,i].some(Number.isNaN)?`#FFFFFF`:(.2126*n+.7152*r+.0722*i)/255>.55?`#1A1A1A`:`#FFFFFF`}function WOe({group:e,trayCountByAms:t,innerBg:n,textPrimary:r,textSecondary:i,showExtruderBadge:a,extruderLabel:o}){let s=mp(e.trayColor||void 0),c=UOe(e.trayColor),l=c===`#FFFFFF`?`rgba(0,0,0,0.45)`:`rgba(255,255,255,0.7)`,u=e.members.length;return(0,G.jsxs)(`div`,{className:`relative flex flex-col items-center`,children:[a&&(0,G.jsx)(`span`,{className:`absolute -top-1 -left-1 z-10 w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shadow`,style:{backgroundColor:r,color:n},"aria-label":o,title:o,children:o}),(0,G.jsxs)(`svg`,{viewBox:`-100 -100 200 200`,className:`w-44 h-44`,children:[(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`95`,fill:`none`,stroke:i,strokeOpacity:`0.25`,strokeWidth:`1`}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`92`,fill:s}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`56`,fill:n}),(0,G.jsx)(`circle`,{cx:`0`,cy:`0`,r:`56`,fill:`none`,stroke:i,strokeOpacity:`0.3`,strokeWidth:`1`}),(0,G.jsx)(`text`,{x:`0`,y:`-4`,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`14`,fontWeight:`700`,fill:r,children:e.displayName||`—`}),(0,G.jsx)(`text`,{x:`0`,y:`16`,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`11`,fontWeight:`500`,fill:i,children:`${u}× ↻`}),e.members.map((e,n)=>{let r=(n*360/u-90)*Math.PI/180,i=76*Math.cos(r),a=76*Math.sin(r),o=HOe(e.amsId,e.slotIdx,t.get(e.amsId)??4),s=Math.max(22,o.length*7+8);return(0,G.jsxs)(`g`,{children:[(0,G.jsx)(`rect`,{x:i-s/2,y:a-9,width:s,height:18,rx:9,ry:9,fill:l}),(0,G.jsx)(`text`,{x:i,y:a,textAnchor:`middle`,dominantBaseline:`middle`,fontSize:`12`,fontWeight:`700`,fill:c,children:o})]},`${e.amsId}-${e.slotIdx}`)})]})]})}function GOe({isOpen:e,state:t,amsUnits:n,amsExtruderMap:r,isDualNozzle:i,canToggle:a,pending:o,onToggle:s,onClose:c}){let{t:l}=U();if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.stopPropagation(),c())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,c]),!e)return null;let u=`var(--bg-secondary)`,d=`var(--border-color)`,f=`var(--text-primary)`,p=`var(--text-secondary)`,m=(()=>{if(!i||!r)return!1;let e=new Set;for(let t of n||[]){let n=r[String(t.id)];if(n!==void 0&&(e.add(Number(n)),e.size>1))return!0}return!1})(),h=nee(n,r,m),g=new Map((n||[]).map(e=>[e.id,e.tray.length])),_=h.filter(e=>e.members.length>=2),v=t===!0,b=t===null;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:c,"data-testid":`ams-backup-modal`,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-2xl max-h-[90vh] overflow-hidden shadow-xl flex flex-col`,style:{backgroundColor:u},onClick:e=>e.stopPropagation(),role:`dialog`,"aria-modal":`true`,"aria-labelledby":`ams-backup-modal-title`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b`,style:{borderColor:d},children:[(0,G.jsx)(`h2`,{id:`ams-backup-modal-title`,className:`text-base font-semibold`,style:{color:f},children:l(`printers.amsBackup.modalTitle`)}),(0,G.jsx)(`button`,{type:`button`,onClick:c,className:`p-1 rounded-md transition-colors hover:bg-black/10`,style:{color:p},"aria-label":l(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b`,style:{borderColor:d,backgroundColor:`var(--bg-primary)`},children:[(0,G.jsxs)(`div`,{className:`min-w-0 mr-3`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium`,style:{color:f},children:l(b?`printers.amsBackup.stateUnknown`:v?`printers.amsBackup.stateOn`:`printers.amsBackup.stateOff`)}),(0,G.jsx)(`p`,{className:`text-xs mt-0.5`,style:{color:p},children:l(`printers.amsBackup.modalHelp`)})]}),(0,G.jsx)(fH,{checked:v,onChange:s,disabled:!a||b||o})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-6`,children:_.length===0?(0,G.jsx)(`p`,{className:`text-sm text-center py-8`,style:{color:p},children:l(`printers.amsBackup.modalNoPairs`)}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-6 justify-items-center`,children:_.map(e=>(0,G.jsx)(WOe,{group:e,trayCountByAms:g,innerBg:u,textPrimary:f,textSecondary:p,showExtruderBadge:m,extruderLabel:e.extruder===0?l(`printers.amsBackup.extruderRightShort`):l(`printers.amsBackup.extruderLeftShort`)},e.key))})})]})})}var pH=[{value:`6h`,label:`6h`,hours:6},{value:`24h`,label:`24h`,hours:24},{value:`48h`,label:`48h`,hours:48},{value:`7d`,label:`7d`,hours:168}],mH={nozzle:`#fb923c`,nozzle_2:`#f97316`,bed:`#60a5fa`,chamber:`#34d399`},KOe={nozzle:`#fed7aa`,nozzle_2:`#fdba74`,bed:`#bfdbfe`,chamber:`#a7f3d0`};function qOe({isOpen:e,onClose:t,printerId:n,printerName:r,initialKind:i=`nozzle`,availableKinds:a=[`nozzle`,`bed`,`chamber`]}){let{t:o}=U(),[s,c]=(0,y.useState)(`24h`),[l,u]=(0,y.useState)(i);(0,y.useEffect)(()=>{u(i)},[i]);let{data:d}=K({queryKey:[`settings`],queryFn:Z.getSettings}),f=d?.time_format||`system`;(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]);let p=pH.find(e=>e.value===s)?.hours||24,{data:m,isLoading:h,error:g}=K({queryKey:[`printer-sensor-history`,n,p,a.join(`,`)],queryFn:()=>Z.getPrinterSensorHistory(n,p,a),enabled:e,refetchInterval:6e4});if(!e)return null;let _=m?.series.find(e=>e.sensor_kind===l),v=(_?.data||[]).map(e=>({time:(rp(e.recorded_at)||new Date).getTime(),value:e.value,target:e.target})),b=Date.now()-p*60*60*1e3,x=Date.now(),S=[...v];if(S.length>0){let e=S[0];e.time>b&&S.unshift({...e,time:b});let t=S[S.length-1];t.time{let t=e.filter(e=>e!=null);if(t.length<4)return`stable`;let n=t.slice(0,Math.floor(t.length/4)),r=t.slice(-Math.floor(t.length/4)),i=n.reduce((e,t)=>e+t,0)/n.length,a=r.reduce((e,t)=>e+t,0)/r.length-i;return Math.abs(a)<2?`stable`:a>0?`up`:`down`})(S.map(e=>e.value)),D=({trend:e})=>e===`up`?(0,G.jsx)(Iu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}):e===`down`?(0,G.jsx)(Fu,{className:`w-4 h-4 text-green-600 dark:text-green-400`}):(0,G.jsx)(ml,{className:`w-4 h-4 text-gray-400 dark:text-bambu-gray`}),O=`var(--bg-secondary)`,k=`var(--bg-primary)`,A=`var(--border-color)`,j=`var(--text-primary)`,M=`var(--text-secondary)`,N=`var(--text-muted)`,P=e=>{switch(e){case`nozzle`:return o(`printers.heaterHistory.nozzle`,`Nozzle`);case`nozzle_2`:return o(`printers.heaterHistory.nozzle2`,`Nozzle 2`);case`bed`:return o(`printers.heaterHistory.bed`,`Bed`);case`chamber`:return o(`printers.heaterHistory.chamber`,`Chamber`)}},F=({k:e})=>e===`nozzle`||e===`nozzle_2`?(0,G.jsx)(hc,{className:`w-4 h-4`}):e===`bed`?(0,G.jsx)(bu,{className:`w-4 h-4`}):(0,G.jsx)(Zo,{className:`w-4 h-4`});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,onClick:t,children:(0,G.jsxs)(`div`,{className:`rounded-xl w-full max-w-4xl max-h-[90vh] overflow-hidden shadow-xl`,style:{backgroundColor:O},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b`,style:{borderColor:A},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,style:{color:j},children:o(`printers.heaterHistory.title`,`Heater History`)}),(0,G.jsx)(`p`,{className:`text-sm`,style:{color:M},children:r})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 rounded-lg transition-colors`,style:{color:M},"aria-label":o(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-6 overflow-y-auto max-h-[calc(90vh-80px)]`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between max-[550px]:flex-col max-[550px]:items-start max-[550px]:gap-3`,children:[(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:k},children:a.map(e=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-md transition-colors ${l===e?`text-white`:``}`,style:l===e?{backgroundColor:mH[e]}:{color:M},children:[(0,G.jsx)(F,{k:e}),P(e)]},e))}),(0,G.jsx)(`div`,{className:`inline-flex gap-1 rounded-lg p-1 max-w-full flex-wrap w-fit`,style:{backgroundColor:k},children:pH.map(e=>(0,G.jsx)(`button`,{onClick:()=>c(e.value),className:`px-3 py-1 text-sm rounded-md transition-colors ${s===e.value?`bg-bambu-green text-white`:``}`,style:s===e.value?void 0:{color:M},children:e.label},e.value))})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-4 gap-4 max-[550px]:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.current`,`Current`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:mH[l]},children:w==null?`—`:`${Math.round(w)}°C`}),(0,G.jsx)(D,{trend:E})]}),T!=null&&T>0&&(0,G.jsxs)(`p`,{className:`text-xs mt-1`,style:{color:M},children:[o(`common.target`,`Target`),`: `,Math.round(T),`°C`]})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.average`,`Average`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.avg_value==null?`—`:`${_.avg_value}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.min`,`Min`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.min_value==null?`—`:`${Math.round(_.min_value)}°C`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:[(0,G.jsx)(`p`,{className:`text-xs`,style:{color:M},children:o(`common.max`,`Max`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold`,style:{color:j},children:_?.max_value==null?`—`:`${Math.round(_.max_value)}°C`})]})]}),(0,G.jsx)(`div`,{className:`rounded-lg p-4`,style:{backgroundColor:k},children:h?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center`,style:{color:M},children:o(`common.loading`,`Loading...`)}):g?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center text-red-700 dark:text-red-400`,children:o(`printers.heaterHistory.error`,`Failed to load history`)}):S.length===0?(0,G.jsx)(`div`,{className:`h-64 flex items-center justify-center`,style:{color:M},children:o(`printers.heaterHistory.empty`,`No data recorded yet`)}):(0,G.jsx)(rA,{width:`100%`,height:300,children:(0,G.jsxs)(rH,{data:S,margin:{top:5,right:10,left:0,bottom:5},children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:A}),(0,G.jsx)(bV,{dataKey:`time`,type:`number`,domain:[b,x],tickFormatter:e=>new Date(e).toLocaleTimeString([],np({hour:`2-digit`,minute:`2-digit`},f)),stroke:N,fontSize:11}),(0,G.jsx)(TV,{stroke:N,fontSize:11,domain:[0,`auto`],tickFormatter:e=>`${Math.round(e)}°`}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:O,border:`1px solid ${A}`,borderRadius:6,color:j},labelFormatter:e=>new Date(e).toLocaleString(void 0,np({month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`},f)),formatter:e=>e==null?`—`:`${Math.round(Number(e))}°C`}),(0,G.jsx)(cj,{}),(0,G.jsx)(ZB,{type:`monotone`,dataKey:`value`,name:o(`common.current`,`Current`),stroke:mH[l],strokeWidth:2,dot:!1,isAnimationActive:!1}),(0,G.jsx)(ZB,{type:`stepAfter`,dataKey:`target`,name:o(`common.target`,`Target`),stroke:KOe[l],strokeDasharray:`4 4`,strokeWidth:1.5,dot:!1,isAnimationActive:!1})]})})})]})]})})}var JOe=2166136261,YOe=16777619;function XOe(...e){let t=JOe,n=new TextEncoder,r=n.encode(`__|`);for(let i of e)typeof i==`string`?t=hH(t,n.encode(i+`|`)):i??(t=hH(t,r));return t>>>0}function hH(e,t){for(let n of t)e^=n,e=Math.imul(e,YOe)>>>0;return e}function ZOe(e){let t=()=>{e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,(t^t>>>14)>>>0},n=(e,n)=>{if(!Number.isFinite(e)||!Number.isFinite(n))throw RangeError(`from and to must be finite numbers`);if(e>n)throw RangeError(`from must be less than or equal to to`);return e===n?e:e+t()/4294967295*(n-e)};return{next:()=>t()/4294967295,floatBetween:(e,t)=>n(e,t),intBetween:(e,t)=>{if(!Number.isInteger(e)||!Number.isInteger(t))throw RangeError(`from and to must be integers`);return Math.round(n(e,t))}}}var gH={table:{dotCount:5,dotScale:1},preview:{dotCount:8,dotScale:1.5},card:{dotCount:40,dotScale:2},bar:{dotCount:20,dotScale:2},groupheader:{dotCount:80,dotScale:2}},_H=[{value:``,labelKey:`inventory.colorEffect.none`},{value:`sparkle`,labelKey:`inventory.colorEffect.sparkle`},{value:`wood`,labelKey:`inventory.colorEffect.wood`},{value:`marble`,labelKey:`inventory.colorEffect.marble`},{value:`glow`,labelKey:`inventory.colorEffect.glow`},{value:`matte`,labelKey:`inventory.colorEffect.matte`},{value:`silk`,labelKey:`inventory.colorEffect.silk`},{value:`galaxy`,labelKey:`inventory.colorEffect.galaxy`},{value:`rainbow`,labelKey:`inventory.colorEffect.rainbow`},{value:`metal`,labelKey:`inventory.colorEffect.metal`},{value:`translucent`,labelKey:`inventory.colorEffect.translucent`},{value:`gradient`,labelKey:`inventory.colorEffect.gradient`},{value:`dual-color`,labelKey:`inventory.colorEffect.dualColor`},{value:`tri-color`,labelKey:`inventory.colorEffect.triColor`},{value:`multicolor`,labelKey:`inventory.colorEffect.multicolor`}],QOe=`repeating-conic-gradient(#979797 0% 25%, #f5f5f5 0% 50%)`,$Oe=`12px 12px`,eke={sparkle:(e=0,t=`table`)=>{let n=ZOe(e),r=gH[t]??gH.table,i=[];for(let e=0;e`repeating-linear-gradient(90deg, rgba(0,0,0,0.18) 0 1px, transparent 1px 6px, rgba(0,0,0,0.08) 6px 7px, transparent 7px 12px)`,marble:()=>`repeating-linear-gradient(135deg, rgba(255,255,255,0.18) 0 2px, transparent 2px 8px), repeating-linear-gradient(45deg, rgba(0,0,0,0.10) 0 1px, transparent 1px 7px)`,glow:()=>`radial-gradient(circle at 50% 50%, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 70%)`,matte:()=>`linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.10) 100%)`,silk:()=>`linear-gradient(110deg, rgba(255,255,255,0) 30%, rgba(255,255,255,0.30) 50%, rgba(255,255,255,0) 70%)`,galaxy:()=>`linear-gradient(110deg, rgba(255,255,255,0) 25%, rgba(255,255,255,0.40) 50%, rgba(255,255,255,0) 75%)`,metal:()=>`repeating-linear-gradient(90deg, rgba(255,255,255,0.10) 0 1px, transparent 1px 3px), linear-gradient(180deg, rgba(255,255,255,0.18) 0%, rgba(0,0,0,0.18) 100%)`};function vH(e){let t=e.trim().replace(/^#/,``);return t.length!==6&&t.length!==8||!/^[0-9a-fA-F]+$/.test(t)?null:`#${t}`}function yH(e){return e?e.split(`,`).map(e=>vH(e)).filter(e=>!!e):[]}function tke(e,t,n,r){let i=e?vH(e):null;if(t.length===0)return`linear-gradient(${i??`#808080`}, ${i??`#808080`})`;let a=t.length===1?[t[0],t[0]]:t,o=(n??``).toLowerCase(),s=(r??``).toLowerCase();if(o===`multicolor`||s===`multicolor`){let e=a.length;return`conic-gradient(from 0deg, ${a.map((t,n)=>`${t} ${(n/e*360).toFixed(3)}deg ${((n+1)/e*360).toFixed(3)}deg`).join(`, `)})`}if(s===`dual-color`||s===`tri-color`){let e=a.length;return`linear-gradient(to right, ${a.map((t,n)=>`${t} ${(n/e*100).toFixed(3)}% ${((n+1)/e*100).toFixed(3)}%`).join(`, `)})`}return`linear-gradient(135deg, ${a.join(`, `)})`}function nke(e,t,n){let r=eke[e];return r?r(n,t):null}function bH(e){let t=yH(e.extraColors),n=tke(e.rgba,t,e.subtype,e.effectType),r=XOe(e.rgba,e.extraColors,e.subtype,e.effectType),i=typeof e.effectType==`string`?nke(e.effectType,e.effectSize,r):null,a=[];return i&&(Array.isArray(i)?i:[i]).forEach(e=>{a.push({image:e,size:`cover`})}),a.push({image:n,size:`cover`}),a.push({image:QOe,size:$Oe}),{backgroundImage:a.map(e=>e.image).join(`, `),backgroundSize:a.map(e=>e.size).join(`, `)}}function xH({data:e,children:t,disabled:n,className:r=``,spoolman:i,inventory:a,configureSlot:o,actions:s}){let{t:c}=U(),l=or(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(`top`),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null),w=()=>{let t=e.trayUuid;t&&(navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(t).then(()=>{_(!0),setTimeout(()=>_(!1),2e3)}).catch(()=>{T(t)}):T(t))},T=e=>{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();try{document.execCommand(`copy`),_(!0),setTimeout(()=>_(!1),2e3)}catch{console.error(`Failed to copy to clipboard`)}document.body.removeChild(t)};(0,y.useLayoutEffect)(()=>{if(!u){h(null);return}let e=()=>{if(!x.current||!S.current)return;let e=x.current.getBoundingClientRect(),t=S.current.offsetHeight,n=S.current.offsetWidth,r=e.top-56,i=window.innerHeight-e.bottom,a=rr?`bottom`:`top`,o=e.left+e.width/2,s=Math.max(8,Math.min(o-n/2,window.innerWidth-n-8)),c=a===`top`?e.top-t-8:e.bottom+8;p(a),h({top:c,left:s})};e();let t=requestAnimationFrame(e);return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[u]);let E=()=>{n||(C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!0),80))},D=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>d(!1),100)},O=()=>{C.current&&clearTimeout(C.current),d(!1)};(0,y.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]);let k=e=>e<=15?`#ef4444`:e<=30?`#f97316`:e<=50?`#eab308`:`#22c55e`,A=e.colorHex?`#${e.colorHex.replace(`#`,``)}`:null,j=kf(a?.assignedSpool?.color_name??null,null)?.trim()||e.colorName,M=a?.assignedSpool?.remainingWeightGrams??null,N=a?.assignedSpool??null,P=yH(N?.extra_colors),F=!!N?.effect_type,I=!!N&&(P.length>0||F),L=I?bH({effectSize:`card`,rgba:N?.rgba??A,extraColors:N?.extra_colors,effectType:N?.effect_type,subtype:N?.subtype}):null,R=P.length>1,z=I?P.length===1?P[0]:N?.rgba??A:A;return(0,G.jsxs)(`div`,{ref:x,"data-testid":`filament-slot`,className:`relative ${r}`,onMouseEnter:E,onMouseLeave:D,children:[t,u&&(0,At.createPortal)((0,G.jsxs)(`div`,{ref:S,className:`fixed z-[60]`,style:{top:m?.top??-9999,left:m?.left??-9999,maxWidth:`calc(100vw - 24px)`,visibility:m?`visible`:`hidden`},onMouseEnter:E,onMouseLeave:D,children:[(0,G.jsxs)(`div`,{className:` w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl overflow-hidden backdrop-blur-sm @@ -4172,7 +4172,7 @@ void main() { border-l-[6px] border-l-transparent border-r-[6px] border-r-transparent ${f===`top`?`top-full border-t-[6px] border-t-bambu-dark-tertiary`:`bottom-full border-b-[6px] border-b-bambu-dark-tertiary`} - `})]}),document.body),v&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center`,onClick:()=>b(!1),children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`}),(0,G.jsx)(`div`,{className:`relative bg-bambu-dark-secondary rounded-lg shadow-xl w-full max-w-sm mx-4 border border-bambu-dark-tertiary`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,children:c(`spoolman.unlinkConfirmTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`spoolman.unlinkConfirmMessage`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>b(!1),className:`flex-1 px-3 py-2 text-sm font-medium rounded transition-colors bg-bambu-dark hover:bg-bambu-dark-tertiary text-white`,children:c(`common.cancel`)}),(0,G.jsx)(`button`,{onClick:()=>{i?.onUnlinkSpool?.(),b(!1)},className:`flex-1 px-3 py-2 text-sm font-medium rounded transition-colors bg-red-100 dark:bg-red-500/20 hover:bg-red-200 dark:hover:bg-red-500/40 text-red-700 dark:text-red-400`,children:c(`inventory.unassignSpool`)})]})]})})]})]})}function CH({children:e,className:t=``,configureSlot:n,onAssignSpool:r,actions:i,kind:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(!0),80)},h=()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(!1),100)},g=()=>{p.current&&clearTimeout(p.current),c(!1)};return(0,y.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]),(0,y.useLayoutEffect)(()=>{if(!s){u(null);return}let e=()=>{if(!d.current||!f.current)return;let e=d.current.getBoundingClientRect(),t=f.current.offsetHeight,n=f.current.offsetWidth,r=e.left+e.width/2,i=Math.max(8,Math.min(r-n/2,window.innerWidth-n-8));u({top:e.top-t-8,left:i})};e();let t=requestAnimationFrame(e);return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[s]),(0,G.jsxs)(`div`,{ref:d,className:`relative ${t}`,onMouseEnter:m,onMouseLeave:h,children:[e,s&&(0,At.createPortal)((0,G.jsxs)(`div`,{ref:f,className:`fixed z-[60]`,style:{top:l?.top??-9999,left:l?.left??-9999,visibility:l?`visible`:`hidden`},onMouseEnter:m,onMouseLeave:h,children:[(0,G.jsxs)(`div`,{className:` + `})]}),document.body),v&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center`,onClick:()=>b(!1),children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`}),(0,G.jsx)(`div`,{className:`relative bg-bambu-dark-secondary rounded-lg shadow-xl w-full max-w-sm mx-4 border border-bambu-dark-tertiary`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,children:c(`spoolman.unlinkConfirmTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`spoolman.unlinkConfirmMessage`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>b(!1),className:`flex-1 px-3 py-2 text-sm font-medium rounded transition-colors bg-bambu-dark hover:bg-bambu-dark-tertiary text-white`,children:c(`common.cancel`)}),(0,G.jsx)(`button`,{onClick:()=>{i?.onUnlinkSpool?.(),b(!1)},className:`flex-1 px-3 py-2 text-sm font-medium rounded transition-colors bg-red-100 dark:bg-red-500/20 hover:bg-red-200 dark:hover:bg-red-500/40 text-red-700 dark:text-red-400`,children:c(`inventory.unassignSpool`)})]})]})})]})]})}function SH({children:e,className:t=``,configureSlot:n,onAssignSpool:r,actions:i,kind:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(!0),80)},h=()=>{p.current&&clearTimeout(p.current),p.current=setTimeout(()=>c(!1),100)},g=()=>{p.current&&clearTimeout(p.current),c(!1)};return(0,y.useEffect)(()=>()=>{p.current&&clearTimeout(p.current)},[]),(0,y.useLayoutEffect)(()=>{if(!s){u(null);return}let e=()=>{if(!d.current||!f.current)return;let e=d.current.getBoundingClientRect(),t=f.current.offsetHeight,n=f.current.offsetWidth,r=e.left+e.width/2,i=Math.max(8,Math.min(r-n/2,window.innerWidth-n-8));u({top:e.top-t-8,left:i})};e();let t=requestAnimationFrame(e);return window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{cancelAnimationFrame(t),window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[s]),(0,G.jsxs)(`div`,{ref:d,className:`relative ${t}`,onMouseEnter:m,onMouseLeave:h,children:[e,s&&(0,At.createPortal)((0,G.jsxs)(`div`,{ref:f,className:`fixed z-[60]`,style:{top:l?.top??-9999,left:l?.left??-9999,visibility:l?`visible`:`hidden`},onMouseEnter:m,onMouseLeave:h,children:[(0,G.jsxs)(`div`,{className:` bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md shadow-lg overflow-hidden `,children:[(0,G.jsx)(`div`,{className:`px-3 py-1.5 text-xs text-bambu-gray whitespace-nowrap`,children:o(a===`reset`?`ams.emptySlotReset`:`ams.emptySlot`)}),(n?.enabled||r||i)&&(0,G.jsxs)(`div`,{className:`px-2 pb-2 space-y-1`,children:[r&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),g(),r()},className:`w-full flex items-center justify-start gap-1.5 px-2 py-1.5 text-xs font-medium rounded transition-colors bg-bambu-blue/20 hover:bg-bambu-blue/40 text-bambu-blue`,children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5`}),o(`inventory.assignSpool`)]}),n?.enabled&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),g(),n.onConfigure?.()},className:`w-full flex items-center justify-start gap-1.5 px-2 py-1.5 text-xs font-medium rounded transition-colors bg-bambu-blue/20 hover:bg-bambu-blue/40 text-bambu-blue`,title:o(`ams.configureSlot`),children:[(0,G.jsx)(nu,{className:`w-3.5 h-3.5`}),o(`ams.configure`)]}),i&&(0,G.jsx)(`div`,{className:`pt-1 mt-1 border-t border-bambu-dark-tertiary space-y-1`,children:i})]})]}),(0,G.jsx)(`div`,{className:` @@ -4180,8 +4180,8 @@ void main() { border-l-[5px] border-l-transparent border-r-[5px] border-r-transparent border-t-[5px] border-t-bambu-dark-tertiary - `})]}),document.body)]})}function wH({isOpen:e,onClose:t,tagUid:n,trayUuid:r,printerId:i,amsId:a,trayId:o}){let{t:s}=U(),c=co(),{showToast:l}=qd(),[u,d]=(0,y.useState)(``),f=r||n,{data:p,isLoading:m}=K({queryKey:[`unlinked-spools`],queryFn:Z.getUnlinkedSpools,enabled:e}),h=(0,y.useMemo)(()=>p?p.filter(e=>{if(!u)return!0;let t=u.toLowerCase();return e.filament_name&&e.filament_name.toLowerCase().includes(t)||e.filament_vendor&&e.filament_vendor.toLowerCase().includes(t)||e.filament_material&&e.filament_material.toLowerCase().includes(t)||String(e.id).includes(t)}):[],[p,u]),g=q({mutationFn:e=>Z.linkSpool(e,{spoolTag:f,printerId:i,amsId:a,trayId:o}),onSuccess:()=>{c.invalidateQueries({queryKey:[`unlinked-spools`]}),c.invalidateQueries({queryKey:[`linked-spools`]}),c.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),l(s(`spoolman.linkSuccess`),`success`),t()},onError:e=>{l(e.message||s(`spoolman.linkFailed`),`error`)}});return e?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl shadow-xl w-full max-w-md mx-4 max-h-[80vh] flex flex-col border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-white/10`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Zc,{className:`w-5 h-5 text-bambu-green`}),s(`spoolman.selectSpool`)]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[`AMS `,a,` T`,o,` · Printer #`,i]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-white/10`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:s(`inventory.searchSpools`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark rounded-lg border border-white/10 text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),(r||n)&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-2 font-mono truncate`,title:r||n,children:[`Tag: `,r||n]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-2 min-h-0`,children:m?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):h.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8 text-sm`,children:s(`inventory.noSpoolsMatch`)}):h.map(e=>(0,G.jsxs)(`button`,{onClick:()=>g.mutate(e.id),disabled:g.isPending||!f,className:`w-full flex items-center gap-3 p-3 rounded-lg hover:bg-white/5 transition-colors text-left`,children:[(0,G.jsx)(`span`,{className:`w-6 h-6 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.filament_color_hex)}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white font-medium truncate`,children:e.filament_name||s(`spoolman.spoolId`)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray truncate`,children:[e.filament_vendor?`${e.filament_vendor} · `:``,e.filament_material||`Unknown`,` · #`,e.id]})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.remaining_weight==null?`—`:`${Math.round(e.remaining_weight)}g`})]},e.id))}),(0,G.jsx)(`div`,{className:`p-4 border-t border-white/10 flex justify-end`,children:(0,G.jsx)(Q,{variant:`ghost`,onClick:t,children:s(`inventory.cancel`)||`Cancel`})})]})]}):null}function nke(e,t){if(!t)return!0;let n=t.toLowerCase();return String(e.id).includes(n)||e.material.toLowerCase().includes(n)||(e.brand?.toLowerCase().includes(n)??!1)||(e.color_name?.toLowerCase().includes(n)??!1)||(e.subtype?.toLowerCase().includes(n)??!1)||(e.note?.toLowerCase().includes(n)??!1)||(e.slicer_filament_name?.toLowerCase().includes(n)??!1)||(e.storage_location?.toLowerCase().includes(n)??!1)}function TH(e,t){return t?e.filter(e=>nke(e,t)):e}function EH({isOpen:e,onClose:t,printerId:n,amsId:r,trayId:i,trayInfo:a,spoolmanEnabled:o}){let{t:s}=U(),c=co(),{showToast:l}=qd(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null);(0,y.useEffect)(()=>{p(null),h(null)},[u]);let[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(null);(0,y.useEffect)(()=>{e&&d(!1)},[e]);let{data:T,isLoading:E}=K({queryKey:[`inventory-spools`,`assign-modal`],queryFn:()=>Z.getSpools(!0),enabled:e&&!o}),{data:D}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:e}),{data:O}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),enabled:e}),{data:k,isLoading:A}=K({queryKey:[`spoolman-inventory-spools`,`assign-modal`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:e&&!!o}),{data:j}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e&&!!o}),M=(0,y.useMemo)(()=>j?new Set(j.filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i)).map(e=>e.spoolman_spool_id)):new Set,[j,n,r,i]),N=()=>{Z.refreshPrinterStatus(n).catch(()=>{}),c.invalidateQueries({queryKey:[`printerStatus`,n]})},P=q({mutationFn:e=>Z.assignSpool({spool_id:e,printer_id:n,ams_id:r,tray_id:i}),onSuccess:e=>{c.setQueryData([`spool-assignments`],t=>{let a=(t||[]).filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i));return a.push(e),a}),c.invalidateQueries({queryKey:[`spool-assignments`]}),N(),l(s(e.pending_config?`inventory.assignPendingInsert`:`inventory.assignSuccess`),`success`),S(!1),b(null),w(null),t()},onError:e=>{l(`${s(`inventory.assignFailed`)}: ${e.message}`,`error`)}}),F=q({mutationFn:e=>Z.assignSpoolmanSlot({spoolman_spool_id:e,printer_id:n,ams_id:r,tray_id:i}),onSuccess:()=>{c.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),c.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),N(),l(s(`inventory.assignSuccess`),`success`),t()},onError:e=>{l(`${s(`inventory.assignFailed`)}: ${e.message}`,`error`)}}),I=e=>(e??``).trim().toUpperCase(),L=(e,t)=>{let n=I(e),r=I(t);return!n||!r?`none`:n===r?`exact`:r.includes(n)||n.includes(r)?`partial`:`none`},R=e=>e.split(`@`)[0].trim(),z=(e,t)=>{let n=R(I(e)),r=R(I(t));return!n||!r?!1:n===r};if(!e)return null;let B=new Set((D||[]).filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i)).map(e=>e.spool_id)),V=T?.filter(e=>!e.archived_at&&(u||!B.has(e.id))),ee=V;if(!u){let e=R(I(a?.profile)),t=I(a?.material||a?.type);(e||t)&&(ee=ee?.filter(n=>{let r=R(I(n.slicer_filament_name||n.slicer_filament)),i=I(n.material);return e&&r&&r===e?!0:t&&i?i===t||t.includes(i)||i.includes(t):!r&&!i}))}g&&ee&&(ee=TH(ee,g));let te=()=>{if(m!==null){F.mutate(m);return}if(!f)return;let e=T?.find(e=>e.id===f);if(!e){l(s(`inventory.assignFailed`),`error`);return}if(!O?.disable_filament_warnings&&a){let t=a.material||a.type,n=L(e.material,t),r=e.slicer_filament_name||e.slicer_filament,i=a.profile||a.type,o=z(r,i);if(n!==`exact`){let a;a=n===`none`&&!o?`material_profile`:n===`partial`&&!o?`partial_profile`:n===`none`?`material`:`partial`,b(f),w({type:a,spoolMaterial:e.material||``,trayMaterial:t||``,spoolProfile:r||void 0,trayProfile:i||void 0}),S(!0);return}}P.mutate(f)},ne=()=>{v&&(P.mutate(v),S(!1),b(null))};return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-start sm:items-center justify-center p-4 overflow-y-auto`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-2xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] overflow-hidden flex flex-col my-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:s(`inventory.assignSpool`)})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto`,children:[a&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:[s(`inventory.selectSpool`),`:`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[a.color&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(a.color)}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:a.type||s(`ams.emptySlot`)}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,a.location,`)`]})]})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:s(`inventory.searchSpools`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!o&&(E?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):ee&&ee.length>0?(0,G.jsx)(`div`,{className:`max-h-96 overflow-y-auto grid grid-cols-2 sm:grid-cols-3 gap-2`,children:ee.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{p(e.id),h(null)},title:e.note||void 0,className:`p-2.5 rounded-lg border text-left transition-colors ${f===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-1`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.color_name||``})]}),e.label_weight&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[Math.max(0,Math.round(e.label_weight-e.weight_used)),` / `,e.label_weight,`g`]}),e.note&&(0,G.jsx)(`p`,{className:`text-[10px] text-bambu-gray/70 mt-1 truncate`,title:e.note,children:e.note})]},e.id))}):V&&V.length===0?(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:s(`inventory.noAvailableSpools`)}),T&&(0,G.jsxs)(`p`,{className:`text-[10px] mt-2 opacity-60`,children:[T.length,` fetched · `,T.filter(e=>e.archived_at).length,` archived ·`,` `,T.filter(e=>B.has(e.id)).length,` assigned to other slots`]})]}):(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:s(`inventory.noSpoolsMatch`)}),V&&(0,G.jsxs)(`p`,{className:`text-[10px] mt-2 opacity-60`,children:[V.length,` unassigned spools — `,V.length-(ee?.length??0),` filtered by tray match. Try "Show all spools".`]})]})),o&&(0,G.jsx)(G.Fragment,{children:A?(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`})}):k&&k.filter(e=>!e.archived_at&&!M.has(e.id)).length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide pt-1`,children:s(`inventory.spoolmanSpools`)}),(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto grid grid-cols-2 sm:grid-cols-3 gap-2`,children:TH(k.filter(e=>!e.archived_at&&!M.has(e.id)),g).map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.id),p(null)},title:e.note||void 0,className:`p-2.5 rounded-lg border text-left transition-colors ${m===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-1`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.color_name||``})]}),e.label_weight&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[Math.max(0,Math.round(e.label_weight-e.weight_used)),` / `,e.label_weight,`g`]}),e.note&&(0,G.jsx)(`p`,{className:`text-[10px] text-bambu-gray/70 mt-1 truncate`,title:e.note,children:e.note})]},`spoolman-${e.id}`))})]}):null})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{id:`disable-filtering-toggle`,type:`checkbox`,checked:u,onChange:()=>d(e=>!e),className:`accent-bambu-green w-4 h-4 rounded focus:ring-0 border-bambu-dark-tertiary`}),(0,G.jsx)(`label`,{htmlFor:`disable-filtering-toggle`,className:`text-xs text-bambu-gray select-none cursor-pointer`,children:s(`inventory.showAllSpools`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:s(`common.cancel`)}),(0,G.jsx)(Q,{onClick:te,disabled:!f&&m===null||P.isPending||F.isPending,children:P.isPending||F.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),s(`inventory.assigning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),s(`inventory.assignSpool`)]})})]})]}),P.isError&&(0,G.jsx)(`div`,{className:`mx-4 mb-4 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:P.error.message})]})]}),x&&a&&f&&C&&(()=>{let e=``;return C.type===`material`?e=s(`inventory.assignMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location}):C.type===`partial`?e=s(`inventory.assignPartialMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location}):C.type===`material_profile`?e=`${s(`inventory.assignMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location})}\n\n${s(`inventory.assignProfileMismatchMessage`,{spoolProfile:C.spoolProfile||s(`common.unknown`),trayProfile:C.trayProfile||s(`common.unknown`),location:a.location})}`:C.type===`partial_profile`&&(e=`${s(`inventory.assignPartialMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location})}\n\n${s(`inventory.assignProfileMismatchMessage`,{spoolProfile:C.spoolProfile||s(`common.unknown`),trayProfile:C.trayProfile||s(`common.unknown`),location:a.location})}`),e=`${e}\n\n${s(`inventory.assignReconfigureNote`)}`,(0,G.jsx)(of,{title:s(`inventory.assignMismatchTitle`),message:e,confirmText:s(`inventory.assignMismatchConfirm`),variant:`warning`,overlayZIndex:`z-[110]`,isLoading:P.isPending,onConfirm:ne,onCancel:()=>{P.isPending||(S(!1),b(null),w(null))}})})()]})}var rke={bambuModelByShortCode:{}},DH={"A1 MINI":[`A1M`],"H2D PRO":[`H2DP`]};function OH(e,t){let n=e.toUpperCase(),r=t.toUpperCase();if(n===r)return!0;let i=DH[r];if(i&&i.includes(n))return!0;let a=DH[n];return!!(a&&a.includes(r))}function ike(e){let t={};for(let[n,r]of Object.entries(e))r in t||(t[r]=n.replace(/^Bambu Lab\s+/,``));return t}function kH(e={}){return{bambuModelByShortCode:ike(e)}}function AH(e){return e.replace(/\s+/g,``).toLowerCase()}function jH(e){return e.replace(/^#\s*/,``).trim()}var ake=`0.4`;function MH(e){let t=e.match(/^(.*?)\s+([\d.]+)\s*nozzle\s*$/i);return t?{stripped:t[1].trim(),nozzle:t[2]}:{stripped:e.trim(),nozzle:null}}function oke(e){let t=e.indexOf(`@BBL `);if(t<0)return null;let{stripped:n,nozzle:r}=MH(e.slice(t+5).trim());return n?{token:n,nozzle:r}:null}function NH(e){let t=jH(e).match(/^Bambu Lab\s+(.+)$/i);if(!t)return null;let{stripped:n,nozzle:r}=MH(t[1]);return n?{model:n,nozzle:r}:null}function ske(e){return e.replace(/\s*\([^)]*\)\s*$/,``).trim()}var cke=.1,lke=2;function PH(e,t){let n=Number.parseFloat(e),r=Number.parseFloat(t);return Number.isNaN(n)||Number.isNaN(r)?!1:n===r}function uke(e){let t=ske(e),n=oke(t);if(n)return n;let r=t.lastIndexOf(`@`);if(r<0)return null;let i=t.slice(r+1).trim(),a=NH(i);if(a)return{token:a.model,nozzle:a.nozzle};let o=i.match(/^([\d.]+)\s*(?:mm)?\s*(?:nozzle)?$/i);if(o){let e=Number.parseFloat(o[1]);if(!Number.isNaN(e)&&e>=cke&&e<=lke)return{token:null,nozzle:o[1]}}return null}function dke(e,t,n){let r=uke(e);if(!r)return`unknown`;let i=NH(t);if(!i)return`unknown`;if(r.token===null)return i.nozzle!==null&&r.nozzle!==null&&!PH(r.nozzle,i.nozzle)?`mismatch`:`unknown`;let a=n[r.token]??r.token;return AH(i.model)!==AH(a)&&!OH(r.token,i.model)||i.nozzle!==null&&!PH(r.nozzle??ake,i.nozzle)?`mismatch`:`match`}function FH(e,t,n,r){if(!n)return`unknown`;let i=e.compatible_printers;if(i&&i.length>0){let e=jH(n);return i.some(t=>jH(t)===e)?`match`:`mismatch`}return dke(e.name,n,r.bambuModelByShortCode)}function fke(e){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/\s+/g,`\\s+`);return RegExp(`\\b${t}\\b`,`i`)}function IH(e,t){let n=e.indexOf(`@`);if(n>=0){let r=e.slice(n+1).trim(),i=r.match(/^BBL\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(i)return i[1].trim();let a=r.match(/^Bambu Lab\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(a){let e=a[1].trim(),n=`Bambu Lab ${e}`;if(t[n])return t[n];let r=n.toLowerCase();for(let[e,n]of Object.entries(t))if(e.toLowerCase()===r)return n;return e}}let r=[],i=new Set;for(let[e,n]of Object.entries(t)){let t=e.replace(/^Bambu Lab\s+/,``),a=t.toLowerCase();i.has(a)||(r.push({token:t,short:n}),i.add(a));let o=n.toLowerCase();i.has(o)||(r.push({token:n,short:n}),i.add(o))}r.sort((e,t)=>t.token.length-e.token.length);for(let{token:t,short:n}of r)if(fke(t).test(e))return n;return null}var LH=[`PLA`,`PETG`,`ABS`,`TPU`,`ASA`,`PC`,`PA`,`PVA`,`HIPS`,`PA-CF`,`PETG-CF`,`PLA-CF`],RH=[`Bambu`,`PolyLite`,`PolyTerra`,`eSUN`,`Overture`,`Fiberon`,`SUNLU`,`Inland`,`Hatchbox`,`Generic`],zH=`Basic.Matte.Silk.Silk+.Tough.Tough+.HF.High Flow.Engineering.CF.GF.Galaxy.Glow.Marble.Metal.Rainbow.Sparkle.Wood.Translucent.Transparent.Clear.Lite.Pro.Plus.Max.Super.Ultra.Flex.Soft.Hard.Strong.Impact.Heat Resistant.UV Resistant.ESD.Conductive.Magnetic.Gradient.Dual Color.Tri Color.Multicolor`.split(`.`),BH=[{name:`Black`,hex:`000000`},{name:`White`,hex:`FFFFFF`},{name:`Gray`,hex:`808080`},{name:`Red`,hex:`FF0000`},{name:`Orange`,hex:`FFA500`},{name:`Yellow`,hex:`FFFF00`},{name:`Green`,hex:`00AE42`},{name:`Blue`,hex:`0066FF`},{name:`Purple`,hex:`8B00FF`},{name:`Pink`,hex:`FF69B4`},{name:`Brown`,hex:`8B4513`},{name:`Silver`,hex:`C0C0C0`},{name:`Clear`,hex:`00000000`}],pke=[{name:`Dark Red`,hex:`8B0000`},{name:`Crimson`,hex:`DC143C`},{name:`Coral`,hex:`FF7F50`},{name:`Salmon`,hex:`FA8072`},{name:`Dark Orange`,hex:`FF8C00`},{name:`Peach`,hex:`FFDAB9`},{name:`Gold`,hex:`FFD700`},{name:`Khaki`,hex:`F0E68C`},{name:`Lemon`,hex:`FFF44F`},{name:`Lime`,hex:`32CD32`},{name:`Forest Green`,hex:`228B22`},{name:`Olive`,hex:`808000`},{name:`Mint`,hex:`98FF98`},{name:`Teal`,hex:`008080`},{name:`Navy`,hex:`000080`},{name:`Sky Blue`,hex:`87CEEB`},{name:`Royal Blue`,hex:`4169E1`},{name:`Cyan`,hex:`00FFFF`},{name:`Turquoise`,hex:`40E0D0`},{name:`Violet`,hex:`EE82EE`},{name:`Magenta`,hex:`FF00FF`},{name:`Indigo`,hex:`4B0082`},{name:`Lavender`,hex:`E6E6FA`},{name:`Plum`,hex:`DDA0DD`},{name:`Hot Pink`,hex:`FF69B4`},{name:`Rose`,hex:`FF007F`},{name:`Blush`,hex:`FFB6C1`},{name:`Chocolate`,hex:`D2691E`},{name:`Tan`,hex:`D2B48C`},{name:`Beige`,hex:`F5F5DC`},{name:`Maroon`,hex:`800000`},{name:`Dark Gray`,hex:`404040`},{name:`Light Gray`,hex:`D3D3D3`},{name:`Charcoal`,hex:`36454F`},{name:`Ivory`,hex:`FFFFF0`},{name:`Bambu Green`,hex:`00AE42`},{name:`Jade White`,hex:`E8E8E8`},{name:`Titan Gray`,hex:`5A5A5A`}],VH=[...BH,...pke],HH=`bambuddy-recent-colors`,UH=[`0.2`,`0.4`,`0.6`,`0.8`];async function WH(e,t){let n=Wp(t),r=Array.from(new Set([...UH,...n])),i=[];for(let t of r)i.push(await Z.getKProfiles(e,t).catch(()=>null));let a=[];for(let e of i)if(e)for(let t of e.profiles)a.push({cali_idx:t.slot_id,filament_id:t.filament_id,setting_id:t.setting_id||``,name:t.name,k_value:parseFloat(t.k_value)||0,n_coef:parseFloat(t.n_coef)||0,extruder_id:t.extruder_id,nozzle_diameter:t.nozzle_diameter,nozzle_id:t.nozzle_id});return a}var mke=[{code:`GFL00`,name:`Bambu PLA Basic`,displayName:`Bambu PLA Basic`,isCustom:!1,allCodes:[`GFL00`],source:`builtin`},{code:`GFL01`,name:`Bambu PLA Matte`,displayName:`Bambu PLA Matte`,isCustom:!1,allCodes:[`GFL01`],source:`builtin`},{code:`GFL05`,name:`Generic PLA`,displayName:`Generic PLA`,isCustom:!1,allCodes:[`GFL05`],source:`builtin`},{code:`GFG00`,name:`Bambu PETG Basic`,displayName:`Bambu PETG Basic`,isCustom:!1,allCodes:[`GFG00`],source:`builtin`},{code:`GFG05`,name:`Generic PETG`,displayName:`Generic PETG`,isCustom:!1,allCodes:[`GFG05`],source:`builtin`},{code:`GFB00`,name:`Bambu ABS Basic`,displayName:`Bambu ABS Basic`,isCustom:!1,allCodes:[`GFB00`],source:`builtin`},{code:`GFB05`,name:`Generic ABS`,displayName:`Generic ABS`,isCustom:!1,allCodes:[`GFB05`],source:`builtin`},{code:`GFA00`,name:`Bambu ASA Basic`,displayName:`Bambu ASA Basic`,isCustom:!1,allCodes:[`GFA00`],source:`builtin`},{code:`GFU00`,name:`Bambu TPU 95A`,displayName:`Bambu TPU 95A`,isCustom:!1,allCodes:[`GFU00`],source:`builtin`},{code:`GFU05`,name:`Generic TPU`,displayName:`Generic TPU`,isCustom:!1,allCodes:[`GFU05`],source:`builtin`},{code:`GFC00`,name:`Bambu PC Basic`,displayName:`Bambu PC Basic`,isCustom:!1,allCodes:[`GFC00`],source:`builtin`},{code:`GFN00`,name:`Bambu PA Basic`,displayName:`Bambu PA Basic`,isCustom:!1,allCodes:[`GFN00`],source:`builtin`},{code:`GFN05`,name:`Generic PA`,displayName:`Generic PA`,isCustom:!1,allCodes:[`GFN05`],source:`builtin`},{code:`GFS00`,name:`Bambu PLA-CF`,displayName:`Bambu PLA-CF`,isCustom:!1,allCodes:[`GFS00`],source:`builtin`},{code:`GFT00`,name:`Bambu PETG-CF`,displayName:`Bambu PETG-CF`,isCustom:!1,allCodes:[`GFT00`],source:`builtin`},{code:`GFNC0`,name:`Bambu PA-CF`,displayName:`Bambu PA-CF`,isCustom:!1,allCodes:[`GFNC0`],source:`builtin`},{code:`GFV00`,name:`Bambu PVA`,displayName:`Bambu PVA`,isCustom:!1,allCodes:[`GFV00`],source:`builtin`}];function GH(e){let t=e.replace(/@.*$/,``).trim();t=t.replace(/\(Custom\)/i,``).trim(),t=t.replace(/^[#*]+\s*/,``).trim();let n=`PLA-CF.PETG-CF.ABS-GF.ASA-CF.PA-CF.PAHT-CF.PA6-CF.PA6-GF.PPA-CF.PPA-GF.PET-CF.PPS-CF.PC-CF.PC-ABS.ABS-GF.PCTG.PETG.PLA.ABS.ASA.PC.PA.TPU.PVA.HIPS.BVOH.PPS.PEEK.PEI`.split(`.`),r=``,i=-1;for(let e of n){let n=t.toUpperCase().indexOf(e.toUpperCase());if(n!==-1){r=e,i=n;break}}let a=``;i>0&&(a=t.substring(0,i).trim(),a=a.replace(/[-_\s]+$/,``));let o=``;i!==-1&&r&&(o=t.substring(i+r.length).trim(),o=o.replace(/^[-_\s]+/,``));let s=``;for(let e of zH)if(o.toLowerCase().includes(e.toLowerCase())){s=e;break}if(!s&&a)for(let e of zH){let t=RegExp(`\\s+${e}$`,`i`);if(t.test(a)){s=e,a=a.replace(t,``).trim();break}}return{brand:a,material:r,variant:s}}function KH(e,t){let n=new Set(RH);for(let t of e){let{brand:e}=GH(t.name);e&&e.length>1&&n.add(e)}if(t)for(let e of t)if(e.filament_vendor&&e.filament_vendor.length>1)n.add(e.filament_vendor);else{let{brand:t}=GH(e.name);t&&t.length>1&&n.add(t)}return Array.from(n).sort((e,t)=>e.localeCompare(t))}function hke(e){let t=e.filter(e=>e.preset_type===`filament`);return t.length===0?[]:t.map(e=>{let t=String(e.id),n=e.filament_type||t,r=Array.from(new Set([t,n]));return{code:t,name:e.name,displayName:e.name,isCustom:!1,allCodes:r,source:`local`}}).sort((e,t)=>e.displayName.localeCompare(t.displayName))}function qH(e,t,n,r,i){let a=[],o=[],s=new Set;for(let n of e)if(n.is_custom){let e=n.name.toUpperCase();(t.size===0||Array.from(t).some(t=>e.includes(t))||!e.includes(`@`))&&(a.push({code:n.setting_id,name:n.name,displayName:`${n.name} (Custom)`,isCustom:!0,allCodes:[n.setting_id],source:i?.has(n.setting_id)?`orca_cloud`:`cloud`}),s.add(n.setting_id))}else o.push({code:n.setting_id,name:n.name,displayName:n.name,isCustom:!1,allCodes:[n.setting_id],source:i?.has(n.setting_id)?`orca_cloud`:`cloud`}),s.add(n.setting_id);let c=n&&n.length>0?hke(n):[],l=[];if(r&&r.length>0)for(let e of r){let t=e.filament_id.startsWith(`GF`)?`GFS`+e.filament_id.slice(2):e.filament_id;s.has(e.filament_id)||s.has(t)||l.push({code:e.filament_id,name:e.name,displayName:e.name,isCustom:!1,allCodes:[e.filament_id,t],source:`builtin`})}let u=[...a,...o,...c,...l];return u.length===0?mke:u.sort((e,t)=>e.displayName.localeCompare(t.displayName))}function JH(e,t){if(!e)return;let n=t.find(t=>t.code===e);if(n||=t.find(t=>t.allCodes.includes(e)),!n){let r=e.toLowerCase();n=t.find(e=>e.code.toLowerCase()===r||e.allCodes.some(e=>e.toLowerCase()===r))}return n}function YH(e,t){let n=t.trim();return!n||e.some(e=>e.toLowerCase()===n.toLowerCase())?e:[...e,n].sort((e,t)=>e.localeCompare(t))}function XH(e,t,n){if(!t)return[];let r=n.get(t.toLowerCase());return!r||r.size===0?[]:e.filter(e=>r.has(e.toLowerCase()))}function ZH(){try{let e=localStorage.getItem(HH);if(e)return JSON.parse(e)}catch{}return[]}function QH(e,t){let n=[e,...t.filter(t=>t.hex.toUpperCase()!==e.hex.toUpperCase())].slice(0,8);try{localStorage.setItem(HH,JSON.stringify(n))}catch{}return n}function $H(e){if(!e)return``;let t=e.split(`_`)[0];return/^GFS/i.test(t)&&(t=t.slice(0,2)+t.slice(3)),t.toUpperCase()}function gke(e){return!!e&&/^GF[A-Z]99$/i.test(e)}var _ke={GFB99:`ABS`,GFC99:`PC`,GFG99:`PETG`,GFL99:`PLA`,GFN99:`PA`,GFP99:`PE`,GFR99:`EVA`,GFS99:`PVA`,GFU99:`TPU`};function vke(e){return e&&_ke[e.toUpperCase()]||``}function eU(e){let t=e.trim().toUpperCase();return t===`NYLON`?`PA`:t}function yke(e,t){let n=vke(e);return!!n&&!!t&&eU(n)===eU(t)}function tU(e,t,n){return`${e}:${t}:${n}`}function nU(e,t){return`${e}\u0000${t}`}function bke(e){let[t=``,n=``]=e.split(`\0`);return{model:t,diameter:n}}function rU(e,t){if(!t.material)return!1;let n=$H(t.slicer_filament),r=$H(e.filament_id);if(n&&r&&n===r){if(!gke(r))return!0;let e=t.brand.trim();if((!e||e.toUpperCase()===`GENERIC`)&&yke(r,t.material))return!0}let i=(e.name||``).replace(/^High Flow[_\s]+/i,``).replace(/^Standard[_\s]+/i,``).replace(/^HF[_\s]+/i,``).replace(/^S[_\s]+/i,``).trim(),a=GH(i);return!(a.material.toUpperCase()!==t.material.toUpperCase()||t.brand&&!(a.brand.toLowerCase().includes(t.brand.toLowerCase())||t.brand.toLowerCase().includes(a.brand.toLowerCase()))||t.subtype&&!(a.variant.toLowerCase().includes(t.subtype.toLowerCase())||t.subtype.toLowerCase().includes(a.variant.toLowerCase())||i.toLowerCase().includes(t.subtype.toLowerCase())))}function iU(){let e=(0,y.useRef)(null),t=(0,y.useCallback)(()=>{e.current!==null&&(clearTimeout(e.current),e.current=null)},[]),n=(0,y.useCallback)((n,r)=>{t(),e.current=setTimeout(()=>{e.current=null,n()},r)},[t]);return(0,y.useEffect)(()=>t,[t]),{schedule:n,cancel:t}}function aU(e){let t=e.includes(`_`)?e.split(`_`)[0]:e;return t.startsWith(`GFS`)?`GF`+t.slice(3):(t.startsWith(`PFUS`)||t.startsWith(`PFSP`),t)}var oU=[`PLA`,`PETG`,`PCTG`,`ABS`,`ASA`,`TPU`,`PC`,`PA`,`NYLON`,`PVA`,`HIPS`,`PP`,`PET`];function sU(e){let t=e.replace(/@.+$/,``).trim(),n=t.toUpperCase(),r=n.match(/\bSUPPORT\s+FOR\s+/);if(r){let e=n.slice(r.index+r[0].length);for(let n of oU)if(RegExp(`\\b${n}\\b`).test(e))return{material:n,brand:t.slice(0,r.index).trim(),variant:`Support`}}for(let e of oU){let r=RegExp(`\\b${e}\\b`,`i`);if(r.test(n)){let n=t.split(r);return{material:e,brand:n[0]?.trim()||``,variant:n[1]?.trim()||``}}}let i=t.split(/\s+/);return i.length>=2?{material:i[1],brand:i[0],variant:i.slice(2).join(` `)}:{material:t,brand:``,variant:``}}function cU(e){return`${e.extruder_id??0}|${e.name}|${e.k_value}`}function lU(e,t,n){return n===void 0?e.find(e=>e.slot_id===t):e.find(e=>e.slot_id===t&&(e.extruder_id??0)===n)}function uU(e,t,n){return t?` \u00b7 ${e.extruder_id===1?n(`common.left`):n(`common.right`)}`:``}function xke(e){return!e.startsWith(`GF`)&&!e.startsWith(`P1`)}var Ske={white:`FFFFFF`,black:`000000`,red:`FF0000`,green:`00FF00`,blue:`0000FF`,yellow:`FFFF00`,cyan:`00FFFF`,magenta:`FF00FF`,orange:`FFA500`,purple:`800080`,pink:`FFC0CB`,brown:`8B4513`,gray:`808080`,grey:`808080`,"jade white":`FFFEF2`,ivory:`FFFFF0`,beige:`F5F5DC`,cream:`FFFDD0`,silver:`C0C0C0`,gold:`FFD700`,bronze:`CD7F32`,copper:`B87333`,navy:`000080`,teal:`008080`,olive:`808000`,maroon:`800000`,coral:`FF7F50`,salmon:`FA8072`,lime:`32CD32`,mint:`98FF98`,"forest green":`228B22`,"sky blue":`87CEEB`,"royal blue":`4169E1`,turquoise:`40E0D0`,lavender:`E6E6FA`,violet:`EE82EE`,plum:`DDA0DD`,tan:`D2B48C`,chocolate:`D2691E`,charcoal:`36454F`,slate:`708090`,transparent:`000000`,natural:`F5F5DC`,wood:`DEB887`},dU=[{name:`White`,hex:`FFFFFF`},{name:`Black`,hex:`000000`},{name:`Red`,hex:`FF0000`},{name:`Blue`,hex:`0000FF`},{name:`Green`,hex:`00AA00`},{name:`Yellow`,hex:`FFFF00`},{name:`Orange`,hex:`FFA500`},{name:`Gray`,hex:`808080`}],fU=[{name:`Cyan`,hex:`00FFFF`},{name:`Magenta`,hex:`FF00FF`},{name:`Purple`,hex:`800080`},{name:`Pink`,hex:`FFC0CB`},{name:`Brown`,hex:`8B4513`},{name:`Beige`,hex:`F5F5DC`},{name:`Navy`,hex:`000080`},{name:`Teal`,hex:`008080`},{name:`Lime`,hex:`32CD32`},{name:`Gold`,hex:`FFD700`},{name:`Silver`,hex:`C0C0C0`},{name:`Maroon`,hex:`800000`},{name:`Olive`,hex:`808000`},{name:`Coral`,hex:`FF7F50`},{name:`Salmon`,hex:`FA8072`},{name:`Turquoise`,hex:`40E0D0`},{name:`Violet`,hex:`EE82EE`},{name:`Indigo`,hex:`4B0082`},{name:`Chocolate`,hex:`D2691E`},{name:`Tan`,hex:`D2B48C`},{name:`Slate`,hex:`708090`},{name:`Charcoal`,hex:`36454F`},{name:`Ivory`,hex:`FFFFF0`},{name:`Cream`,hex:`FFFDD0`}];function pU(e){return Ske[e.toLowerCase().trim()]||null}function mU({isOpen:e,onClose:t,printerId:n,slotInfo:r,nozzleDiameter:i=`0.4`,printerModel:a,onSuccess:o,fullScreen:s}){let{t:c}=U(),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(null),p=(0,y.useRef)(null);p.current=d;let[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)(``),{schedule:E}=iU(),{data:D,isLoading:O,isError:k}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),enabled:e,retry:!1}),{data:A}=K({queryKey:[`orcaCloudProfilesForAmsSlot`],queryFn:()=>Z.orcaCloudListProfiles(),enabled:e,retry:!1}),{data:j,isLoading:M}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets(),enabled:e}),{data:N,isLoading:P}=K({queryKey:[`builtinFilaments`],queryFn:()=>Z.getBuiltinFilaments(),enabled:e,staleTime:1/0}),{data:F,isLoading:I}=K({queryKey:[`kprofiles`,n,i],queryFn:()=>Z.getKProfiles(n,i),enabled:e&&!!n}),{data:L}=K({queryKey:[`colorCatalog`],queryFn:()=>Z.getColorCatalog(),enabled:e,staleTime:1/0}),{data:R}=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,enabled:e,staleTime:1/0}),{data:z}=K({queryKey:[`slot-spool-defaults`,n,r.amsId,r.trayId],queryFn:()=>Z.getSlotSpoolDefaults(n,r.amsId,r.trayId),enabled:e,staleTime:0}),B=(0,y.useMemo)(()=>kH(R??{}),[R]),V=(0,y.useMemo)(()=>{if(!a||!R)return null;for(let[e,t]of Object.entries(R))if(t===a)return`${e.startsWith(`Bambu Lab `)?e:`Bambu Lab ${e}`} ${i} nozzle`;return null},[a,R,i]),ee=q({mutationFn:async()=>{if(!l)throw Error(`No filament preset selected`);let e=l.startsWith(`local_`),t=l.startsWith(`builtin_`),a=l.startsWith(`orca_`)?l.replace(`orca_`,``):l,o=!e&&!t?A?.filament.find(e=>e.setting_id===a):void 0,s=!!o,c=o??null,u=e?parseInt(l.replace(`local_`,``),10):null,d=t?l.replace(`builtin_`,``):null,f=e?j?.filament.find(e=>e.id===u):null,h=t?N?.find(e=>e.filament_id===d):null,g=!e&&!t&&!s?D?.filament.find(e=>e.setting_id===l):null;if(!e&&!t&&!s&&!g)throw Error(`Selected preset not found`);if(e&&!f)throw Error(`Selected local preset not found`);if(t&&!h)throw Error(`Selected builtin preset not found`);if(s&&!c)throw Error(`Selected Orca Cloud preset not found`);let _=e?f.name:t?h.name:s?c.name:g.name,v=sU(_),y=p.current?.slot_id??-1,b=m||r.trayColor?.slice(0,6)||`FFFFFF`,x=_.replace(/@.+$/,``).trim(),S,C,w=v.material.toUpperCase(),T={PLA:`GFL99`,"PLA-CF":`GFL98`,"PLA SILK":`GFL96`,"PLA HIGH SPEED":`GFL95`,PETG:`GFG99`,"PETG HF":`GFG96`,"PETG-CF":`GFG98`,PCTG:`GFG97`,ABS:`GFB99`,ASA:`GFB98`,PC:`GFC99`,PA:`GFN99`,"PA-CF":`GFN98`,NYLON:`GFN99`,TPU:`GFU99`,PVA:`GFS99`,HIPS:`GFS98`,PE:`GFP99`,PP:`GFP97`};if(e){let e=(oU.includes(w)?w:f?.filament_type||v.material||``).toUpperCase();S=T[e]||T[e.replace(/[-\s]?CF$/,``)]||T[e.replace(/\+$/,``)]||T[e.split(/[-\s]/)[0]]||``,C=``}else if(s){let e=``;try{let t=(await Z.orcaCloudGetProfile(a)).setting?.filament_id;typeof t==`string`&&t&&(e=t)}catch(e){console.warn(`Failed to fetch Orca Cloud profile for filament_id:`,e)}if(S=e,!S){let e=(oU.includes(w)?w:v.material||``).toUpperCase();S=T[e]||T[e.replace(/[-\s]?CF$/,``)]||T[e.replace(/\+$/,``)]||T[e.split(/[-\s]/)[0]]||``}C=``}else if(t)S=d,C=``;else{if(S=aU(l),C=l,!l.startsWith(`GFS`))try{let e=await Z.getCloudSettingDetail(l),t=e.setting?.filament_id,n=e.filament_id||(typeof t==`string`?t:``);n&&(S=n)}catch(e){console.warn(`Failed to fetch preset detail for filament_id:`,e)}/^(PFUS|PFSP|PFCN)/.test(S)&&(console.warn(`Cloud preset ${l} carries no filament_id in either place; sending no tray_info_idx so the printer keeps a resolvable one.`),S=``)}let E=e&&f?.nozzle_temp_min?f.nozzle_temp_min:190,O=e&&f?.nozzle_temp_max?f.nozzle_temp_max:230;if(!e||t||s||!f?.nozzle_temp_min&&!f?.nozzle_temp_max){let t=(e?oU.includes(w)?w:f?.filament_type||v.material||``:v.material).toUpperCase();t.includes(`PLA`)?(E=190,O=230):t.includes(`PETG`)?(E=220,O=260):t.includes(`ABS`)||t.includes(`ASA`)?(E=240,O=280):t.includes(`TPU`)?(E=200,O=240):t===`PCTG`?(E=220,O=260):t.includes(`PC`)?(E=260,O=300):(t.includes(`PA`)||t.includes(`NYLON`))&&(E=250,O=290)}let k=p.current?.k_value?parseFloat(p.current.k_value):0,M=e?oU.includes(w)?w:f?.filament_type||v.material||`PLA`:s&&oU.includes(w)?w:v.material||`PLA`,P=await Z.configureAmsSlot(n,r.amsId,r.trayId,{tray_info_idx:S,tray_type:M,tray_sub_brands:x,tray_color:b+`FF`,nozzle_temp_min:E,nozzle_temp_max:O,cali_idx:y,nozzle_diameter:i,setting_id:C,kprofile_filament_id:p.current?.filament_id,kprofile_setting_id:p.current?.setting_id||void 0,k_value:k}),F=e?`local_${u}`:t?`builtin_${d}`:l,I=e?`local`:t?`builtin`:s?`orca_cloud`:`cloud`;try{await Z.saveSlotPreset(n,r.amsId,r.trayId,F,x,I)}catch(e){console.warn(`Failed to save slot preset mapping:`,e)}return P},onSuccess:()=>{S(!0),o?.(),E(()=>{S(!1),t()},1500)}}),te=q({mutationFn:async()=>Z.resetAmsSlot(n,r.amsId,r.trayId),onSuccess:()=>{S(!0),o?.(),E(()=>{S(!1),t()},1500)}}),ne=(0,y.useMemo)(()=>{let e=v.toLowerCase(),t=[],n=new Set,i=r.savedPresetId,o=r.trayInfoIdx;if(A?.filament)for(let r of A.filament){let i=`orca_${r.setting_id}`;if(n.add(r.setting_id),n.add(i),!(e&&!r.name.toLowerCase().includes(e))){if(a){let e=IH(r.name,R??{});if(e&&!OH(e,a))continue}t.push({id:i,name:r.name,source:`orca_cloud`,isUser:!0})}}if(D?.filament)for(let r of D.filament){if(n.has(r.setting_id))continue;n.add(r.setting_id);let s=i===r.setting_id||o&&(r.setting_id===o||aU(r.setting_id)===o);if(!(e&&!r.name.toLowerCase().includes(e))){if(!s&&a){let e=IH(r.name,R??{});if(e&&!OH(e,a))continue}t.push({id:r.setting_id,name:r.name,source:`cloud`,isUser:xke(r.setting_id)})}}if(j?.filament){let n=r.savedPresetId;for(let r of j.filament){let i=`local_${r.id}`;if(!(e&&!r.name.toLowerCase().includes(e))){if(n!==i&&V){let e=null;if(r.compatible_printers)try{let t=JSON.parse(r.compatible_printers);Array.isArray(t)&&(e=t.filter(e=>typeof e==`string`))}catch{e=null}if(FH({name:r.name,compatible_printers:e},`filament`,V,B)===`mismatch`)continue}t.push({id:i,name:r.name,source:`local`,isUser:!1})}}}if(N)for(let r of N){if(n.has(r.filament_id))continue;let i=r.filament_id.startsWith(`GF`)?`GFS`+r.filament_id.slice(2):r.filament_id;n.has(i)||(!e||r.name.toLowerCase().includes(e))&&t.push({id:`builtin_${r.filament_id}`,name:r.name,source:`builtin`,isUser:!1})}return t.sort((e,t)=>{let n={local:0,orca_cloud:1,cloud:2,builtin:3};return e.source===t.source?e.isUser&&!t.isUser?-1:!e.isUser&&t.isUser?1:e.name.localeCompare(t.name):n[e.source]-n[t.source]})},[A?.filament,D?.filament,j?.filament,N,v,a,r.savedPresetId,r.trayInfoIdx,V,B,R]),re=(0,y.useMemo)(()=>{if(!l)return null;let e=null,t=``;if(l.startsWith(`local_`)){let t=parseInt(l.replace(`local_`,``),10);e=j?.filament.find(e=>e.id===t)?.name||null}else if(l.startsWith(`builtin_`)){let n=l.replace(`builtin_`,``);e=N?.find(e=>e.filament_id===n)?.name||null,t=$H(n)}else{let n=l.startsWith(`orca_`)?l.replace(`orca_`,``):l,r=A?.filament.find(e=>e.setting_id===n);if(r)e=r.name;else if(D?.filament){let n=D.filament.find(e=>e.setting_id===l);e=n?.name||null,n&&(t=$H(n.setting_id))}}if(!e)return null;let n=e.replace(/@.+$/,``).trim();n.startsWith(`# `)&&(n=n.slice(2).trim());let r=sU(n);return{fullName:n,material:r.material,brand:r.brand,filamentId:t}},[l,D?.filament,j?.filament,N,A?.filament]),ie=re?.fullName||``,ae=(0,y.useMemo)(()=>{if(!L||!re)return[];let{fullName:e,brand:t}=re,n=e.replace(/^(Bambu\s*(Lab)?|eSUN|Polymaker|Overture|Sunlu|Hatchbox)\s*/i,``).trim();return L.filter(e=>{let r=(e.material||``).toUpperCase(),i=e.manufacturer.toUpperCase();if(!(r===n.toUpperCase()||r.includes(n.toUpperCase())||n.toUpperCase().includes(r)))return!1;if(t){let e=t.toUpperCase();if(!i.includes(e)&&!e.includes(i))return!1}return!0})},[L,re]),oe=(0,y.useMemo)(()=>new Set((F?.profiles??[]).map(e=>e.extruder_id??0)).size>1,[F?.profiles]),se=(0,y.useMemo)(()=>{if(!F?.profiles)return[];if(!re){let e=r.caliIdx;if(e!=null&&e>0){let t=lU(F.profiles,e,r.extruderId);if(t)return[t]}return[]}let{fullName:e,material:t,brand:n,filamentId:i}=re,a=e.toUpperCase(),o=t.toUpperCase(),s=n.toUpperCase()===`GENERIC`?``:n.toUpperCase(),c=i;if(!o||o.length<2)return[];let l=F.profiles.filter(e=>{if(c){let t=$H(e.filament_id);if(t&&t===c)return!0}let t=e.name.toUpperCase();if(s)return!(!t.includes(s)||!t.includes(o));if(t.includes(a)||t.includes(o))return!0;let n={NYLON:[`PA`,`PA-CF`,`PA6`],PA:[`NYLON`]}[o]||[];for(let e of n)if(t.includes(e))return!0;return!1}),u=r.extruderId===void 0?l:l.filter(e=>(e.extruder_id??0)===r.extruderId),d=new Map;for(let e of u){let t=cU(e);d.has(t)||d.set(t,e)}let f=Array.from(d.values()),p=r.caliIdx;if(p!=null&&p>0&&!f.some(e=>e.slot_id===p)){let e=lU(F.profiles,p,r.extruderId);e&&f.unshift(e)}return f},[F?.profiles,re,r.extruderId,r.caliIdx]),H=(0,y.useMemo)(()=>{if(!F?.profiles)return[];let e=new Set(se.map(e=>cU(e))),t=new Map;for(let n of F.profiles){let r=cU(n);e.has(r)||t.has(r)||t.set(r,n)}return Array.from(t.values()).sort((e,t)=>e.name.localeCompare(t.name))},[F?.profiles,se]),ce=se.length>0||H.length>0,le=(0,y.useCallback)(e=>{if(!e){f(null);return}f(se.find(t=>cU(t)===e)||H.find(t=>cU(t)===e)||null)},[se,H]);(0,y.useEffect)(()=>{if(e){if(z?.slicer_filament)u(z.slicer_filament);else if(r.savedPresetId)u(r.savedPresetId);else if(r.trayInfoIdx&&D?.filament){let e=D.filament.find(e=>e.setting_id===r.trayInfoIdx);e||=D.filament.find(e=>aU(e.setting_id)===r.trayInfoIdx),e&&u(e.setting_id)}else if(r.trayInfoIdx&&N?.length){let e=r.trayInfoIdx,t=N.find(t=>t.filament_id===e);t&&u(`builtin_${t.filament_id}`)}if(r.trayColor){let e=r.trayColor.slice(0,6);e&&h(e)}}else u(``),f(null),h(``),_(``),b(``),S(!1),T.current=``},[e,z?.slicer_filament,r.savedPresetId,r.trayInfoIdx,r.trayColor,D?.filament,N]),(0,y.useEffect)(()=>{if(se.length>0){if(z?.cali_idx!=null){let e=lU(se,z.cali_idx,z.extruder??r.extruderId);if(e){f(e);return}}if(r.caliIdx!=null&&r.caliIdx>0){let e=lU(se,r.caliIdx,r.extruderId);if(e){f(e);return}}f(se[0])}else f(null)},[l,se,z?.cali_idx,z?.extruder,r.caliIdx,r.extruderId]);let ue=(0,y.useCallback)(e=>{e.key===`Escape`&&t()},[t]);(0,y.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,ue),()=>document.removeEventListener(`keydown`,ue)},[e,ue]);let de=O&&!k||M||P||I;if((0,y.useEffect)(()=>{if(!de&&l&&l!==T.current){let e=requestAnimationFrame(()=>{let e=document.querySelector(`[class*="fixed inset-0 z-50"]`)?.querySelector(`[data-preset-id="${CSS.escape(l)}"]`);e&&(T.current=l,e.scrollIntoView({block:`nearest`}))});return()=>cancelAnimationFrame(e)}},[l,de]),!e)return null;let fe=l&&!ee.isPending,pe=m||r.trayColor||`FFFFFF`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex ${s?``:`items-center justify-center`}`,children:[!s&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:s?`relative w-full h-full bg-bambu-dark-secondary flex flex-col`:`relative w-full max-w-lg mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-5 h-5 text-bambu-blue`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:c(`configureAmsSlot.title`)}),s&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 ml-4 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white/30`,children:`|`}),r.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(r.trayColor)}),(0,G.jsx)(`span`,{className:`text-white/70`,children:c(`configureAmsSlot.slotLabel`,{ams:yp(r.amsId,r.trayCount),slot:r.trayId+1})}),r.traySubBrands&&(0,G.jsxs)(`span`,{children:[`(`,r.traySubBrands,`)`]})]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 overflow-y-auto ${s?`flex-1 min-h-0`:`space-y-4 max-h-[60vh]`}`,children:[x&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-secondary/95 z-10 flex items-center justify-center rounded-xl`,children:(0,G.jsxs)(`div`,{className:`text-center space-y-3`,children:[(0,G.jsx)(Ss,{className:`w-16 h-16 text-bambu-green mx-auto`}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:c(`configureAmsSlot.slotConfigured`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`configureAmsSlot.settingsSentToPrinter`)})]})}),!s&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:c(`configureAmsSlot.configuringSlot`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(r.trayColor)}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:c(`configureAmsSlot.slotLabel`,{ams:yp(r.amsId,r.trayCount),slot:r.trayId+1})}),r.traySubBrands&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,r.traySubBrands,`)`]})]})]}),de?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):s?(0,G.jsxs)(`div`,{className:`flex gap-4 h-full`,children:[(0,G.jsxs)(`div`,{className:`w-1/2 flex flex-col min-h-0`,children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.filamentProfile`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.searchPresets`),value:v,onChange:e=>b(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none mb-2 shrink-0`}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto space-y-1`,children:ne.length===0?(0,G.jsx)(`p`,{className:`text-center py-4 text-bambu-gray`,children:D?.filament?.length===0&&!j?.filament?.length?c(`configureAmsSlot.noPresetsAvailable`):c(`configureAmsSlot.noMatchingPresets`)}):ne.map(e=>(0,G.jsx)(`button`,{"data-preset-id":e.id,onClick:()=>u(e.id),className:`group w-full p-2 rounded-lg border text-left transition-colors ${l===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate group-hover:whitespace-normal group-hover:break-all`,title:e.name,children:e.name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.source===`local`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,children:c(`profiles.localProfiles.badge`)}),e.source===`orca_cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:c(`configureAmsSlot.orcaCloud`)}),e.source===`cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-blue/20 text-bambu-blue`,children:c(`configureAmsSlot.bambuCloud`)}),e.source===`builtin`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:c(`configureAmsSlot.builtin`)})]})]})},e.id))})]}),(0,G.jsxs)(`div`,{className:`w-1/2 flex flex-col gap-4 min-h-0 overflow-y-auto`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.kProfileLabel`),ie&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-blue`,children:c(`configureAmsSlot.filteringFor`,{material:ie})})]}),ce?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:d?cU(d):``,onChange:e=>le(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:c(`configureAmsSlot.noKProfile`)}),se.map(e=>(0,G.jsxs)(`option`,{value:cU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c),uU(e,oe,c)]},cU(e))),H.length>0&&(0,G.jsx)(`optgroup`,{label:c(`configureAmsSlot.otherKProfiles`),children:H.map(e=>(0,G.jsxs)(`option`,{value:cU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c),uU(e,oe,c),uU(e,oe,c)]},cU(e)))})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}):l?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:c(`configureAmsSlot.noMatchingKProfiles`)}):(0,G.jsx)(`span`,{className:`inline-block text-xs px-2 py-1 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 border border-amber-300 dark:border-amber-500/30`,children:c(`configureAmsSlot.selectFilamentFirst`)}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-green mt-1`,children:c(`configureAmsSlot.kFromCalibration`,{value:d.k_value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`configureAmsSlot.customColorLabel`)}),ae.length>0&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1.5`,children:c(`configureAmsSlot.presetColors`,{name:re?.fullName})}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:ae.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.hex_color.replace(`#`,``).toUpperCase()),_(e.color_name)},className:`h-7 px-2 rounded-md border-2 transition-all flex items-center gap-1.5 ${m===e.hex_color.replace(`#`,``).toUpperCase()?`border-bambu-green scale-105`:`border-white/20 hover:border-white/40`}`,title:e.color_name,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:e.hex_color}}),(0,G.jsx)(`span`,{className:`text-xs text-white/80 whitespace-nowrap`,children:e.color_name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:[dU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex)),(0,G.jsx)(`button`,{onClick:()=>w(!C),className:`w-7 h-7 rounded-md border-2 border-white/20 hover:border-white/40 flex items-center justify-center text-white/60 hover:text-white/80 transition-all text-xs`,title:c(C?`configureAmsSlot.showLessColors`:`configureAmsSlot.showMoreColors`),children:C?`−`:`+`})]}),C&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:fU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex))}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg border-2 border-white/20 flex-shrink-0`,style:Mf(pe)}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.colorPlaceholder`),value:g,onChange:e=>{let t=e.target.value;_(t);let n=pU(t);if(n)h(n);else{let e=t.replace(/[^0-9A-Fa-f]/g,``).toUpperCase();e.length===6?h(e):e.length===3&&h(e.split(``).map(e=>e+e).join(``))}},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none text-sm`}),m&&(0,G.jsx)(`button`,{onClick:()=>{h(``),_(``)},className:`px-2 py-1 text-xs text-bambu-gray hover:text-white bg-bambu-dark-tertiary rounded`,title:c(`configureAmsSlot.clearCustomColor`),children:c(`configureAmsSlot.clear`)})]}),m&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5`,children:c(`configureAmsSlot.hexLabel`,{hex:m})})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.filamentProfile`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.searchPresets`),value:v,onChange:e=>b(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none mb-2`}),(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1`,children:ne.length===0?(0,G.jsx)(`p`,{className:`text-center py-4 text-bambu-gray`,children:D?.filament?.length===0&&!j?.filament?.length?c(`configureAmsSlot.noPresetsAvailable`):c(`configureAmsSlot.noMatchingPresets`)}):ne.map(e=>(0,G.jsx)(`button`,{"data-preset-id":e.id,onClick:()=>u(e.id),className:`group w-full p-2 rounded-lg border text-left transition-colors ${l===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate group-hover:whitespace-normal group-hover:break-all`,title:e.name,children:e.name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.source===`local`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,children:c(`profiles.localProfiles.badge`)}),e.source===`orca_cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:c(`configureAmsSlot.orcaCloud`)}),e.source===`cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-blue/20 text-bambu-blue`,children:c(`configureAmsSlot.bambuCloud`)}),e.source===`builtin`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:c(`configureAmsSlot.builtin`)})]})]})},e.id))})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.kProfileLabel`),ie&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-blue`,children:c(`configureAmsSlot.filteringFor`,{material:ie})})]}),ce?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:d?cU(d):``,onChange:e=>le(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:c(`configureAmsSlot.noKProfile`)}),se.map(e=>(0,G.jsxs)(`option`,{value:cU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c)]},cU(e))),H.length>0&&(0,G.jsx)(`optgroup`,{label:c(`configureAmsSlot.otherKProfiles`),children:H.map(e=>(0,G.jsxs)(`option`,{value:cU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c),uU(e,oe,c),uU(e,oe,c)]},cU(e)))})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}):l?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:c(`configureAmsSlot.noMatchingKProfiles`)}):(0,G.jsx)(`span`,{className:`inline-block text-xs px-2 py-1 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 border border-amber-300 dark:border-amber-500/30`,children:c(`configureAmsSlot.selectFilamentFirst`)}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-green mt-1`,children:c(`configureAmsSlot.kFromCalibration`,{value:d.k_value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`configureAmsSlot.customColorLabel`)}),ae.length>0&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1.5`,children:c(`configureAmsSlot.presetColors`,{name:re?.fullName})}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:ae.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.hex_color.replace(`#`,``).toUpperCase()),_(e.color_name)},className:`h-7 px-2 rounded-md border-2 transition-all flex items-center gap-1.5 ${m===e.hex_color.replace(`#`,``).toUpperCase()?`border-bambu-green scale-105`:`border-white/20 hover:border-white/40`}`,title:e.color_name,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:e.hex_color}}),(0,G.jsx)(`span`,{className:`text-xs text-white/80 whitespace-nowrap`,children:e.color_name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:[dU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex)),(0,G.jsx)(`button`,{onClick:()=>w(!C),className:`w-7 h-7 rounded-md border-2 border-white/20 hover:border-white/40 flex items-center justify-center text-white/60 hover:text-white/80 transition-all text-xs`,title:c(C?`configureAmsSlot.showLessColors`:`configureAmsSlot.showMoreColors`),children:C?`−`:`+`})]}),C&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:fU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex))}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg border-2 border-white/20 flex-shrink-0`,style:Mf(pe)}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.colorPlaceholder`),value:g,onChange:e=>{let t=e.target.value;_(t);let n=pU(t);if(n)h(n);else{let e=t.replace(/[^0-9A-Fa-f]/g,``).toUpperCase();e.length===6?h(e):e.length===3&&h(e.split(``).map(e=>e+e).join(``))}},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none text-sm`}),m&&(0,G.jsx)(`button`,{onClick:()=>{h(``),_(``)},className:`px-2 py-1 text-xs text-bambu-gray hover:text-white bg-bambu-dark-tertiary rounded`,title:c(`configureAmsSlot.clearCustomColor`),children:c(`configureAmsSlot.clear`)})]}),m&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5`,children:c(`configureAmsSlot.hexLabel`,{hex:m})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between p-4 border-t border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>te.mutate(),disabled:te.isPending||ee.isPending,className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10`,children:te.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`configureAmsSlot.resetting`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),c(`configureAmsSlot.resetSlot`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:c(`configureAmsSlot.cancel`)}),(0,G.jsx)(Q,{onClick:()=>ee.mutate(),disabled:!fe,children:ee.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`configureAmsSlot.configuring`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),c(`configureAmsSlot.configureSlot`)]})})]})]}),(ee.isError||te.isError)&&(0,G.jsx)(`div`,{className:`mx-4 mb-4 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:ee.error?.message||te.error?.message})]})]})}function hU({className:e=`w-4 h-4`}){return(0,G.jsx)(`svg`,{viewBox:`0 0 1945 1370`,fill:`none`,className:e,"aria-hidden":`true`,children:(0,G.jsxs)(`g`,{transform:`translate(-754.293 -471.685)`,children:[(0,G.jsxs)(`g`,{transform:`translate(0.18191 255.976)`,children:[(0,G.jsx)(`g`,{transform:`matrix(1.05469 0 0 0.241063 -153.484 1120.2)`,children:(0,G.jsx)(`rect`,{x:`922.048`,y:`1195.15`,width:`1721.5`,height:`470.135`,stroke:`currentColor`,strokeOpacity:`0.99`,strokeWidth:`168.84`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,G.jsx)(`g`,{transform:`matrix(0.983656 0 0 1.0767 -62.2035 141.539)`,children:(0,G.jsx)(`path`,{d:`M2741.42,1175.93L895.832,1175.93L1125.16,621.902L2512.09,621.902L2741.42,1175.93Z`,fill:`currentColor`,fillOpacity:`0.05`,stroke:`currentColor`,strokeOpacity:`0.99`,strokeWidth:`125.26`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),(0,G.jsx)(`g`,{transform:`translate(21.1916 0.684817)`,children:(0,G.jsx)(`path`,{d:`M1981.31,567.518C1954.86,567.518 1933.39,546.047 1933.39,519.601C1933.39,493.156 1954.86,471.685 1981.31,471.685L2146.61,471.685C2173.07,471.685 2194.53,493.138 2194.53,519.601L2194.53,688.741C2194.53,715.187 2173.05,736.658 2146.61,736.658C2120.16,736.658 2098.69,715.187 2098.69,688.741L2098.69,567.518L1981.31,567.518ZM2098.69,1252.54C2098.69,1226.1 2120.16,1204.62 2146.61,1204.62C2173.05,1204.62 2194.53,1226.1 2194.53,1252.54L2194.53,1421.68C2194.53,1448.14 2173.07,1469.6 2146.61,1469.6L1981.31,1469.6C1954.86,1469.6 1933.39,1448.13 1933.39,1421.68C1933.39,1395.24 1954.86,1373.76 1981.31,1373.76L2098.69,1373.76L2098.69,1252.54ZM1430.29,1373.76C1456.74,1373.76 1478.21,1395.24 1478.21,1421.68C1478.21,1448.13 1456.74,1469.6 1430.29,1469.6L1264.99,1469.6C1238.53,1469.6 1217.07,1448.14 1217.07,1421.68L1217.07,1252.54C1217.07,1226.1 1238.55,1204.62 1264.99,1204.62C1291.44,1204.62 1312.91,1226.1 1312.91,1252.54L1312.91,1373.76L1430.29,1373.76ZM1312.91,688.741C1312.91,715.187 1291.44,736.658 1264.99,736.658C1238.55,736.658 1217.07,715.187 1217.07,688.741L1217.07,519.601C1217.07,493.138 1238.53,471.685 1264.99,471.685L1430.29,471.685C1456.74,471.685 1478.21,493.156 1478.21,519.601C1478.21,546.047 1456.74,567.518 1430.29,567.518L1312.91,567.518L1312.91,688.741Z`,fill:`currentColor`,fillOpacity:`0.99`})})]})})}function gU({folderId:e,onClose:t,onUploadComplete:n,onFileUploaded:r,autoUpload:i,validateFile:a,accept:o,initialFiles:s}){let{t:c}=U(),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!0),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!0),[S,C]=(0,y.useState)(null),w=(0,y.useRef)(null),T=e=>{e.preventDefault(),f(!0)},E=e=>{e.preventDefault(),f(!1)},D=e=>{e.preventDefault(),f(!1),j(Array.from(e.dataTransfer.files))},O=e=>{e.target.files&&j(Array.from(e.target.files))},k=(e,t)=>{u(n=>n.map(n=>n.file===e?{...n,...t}:n))},A=async i=>{m(!0);for(let t of i)if(t.status===`pending`){k(t.file,{status:`uploading`});try{if(t.isZip){let n=await Z.extractZipFile(t.file,e,h,_,b);k(t.file,{status:n.errors.length>0&&n.extracted===0?`error`:`success`,extractedCount:n.extracted,error:n.errors.length>0?c(`fileManager.zipFilesFailed`,`{{count}} files failed`,{count:n.errors.length}):void 0})}else{let n=await Z.uploadLibraryFile(t.file,e,b);k(t.file,{status:`success`});let i=r?.(n);if(i){C(i),u([]),m(!1);return}}}catch(e){k(t.file,{status:`error`,error:e instanceof Error?e.message:c(`fileManager.uploadFailed`,`Upload failed`)})}}m(!1),n(),u(e=>(e.some(e=>e.status===`error`)||t(),e))},j=e=>{if(C(null),a)for(let t of e){let e=a(t);if(e){C(e);return}}let t=e.map(e=>({file:e,status:`pending`,isZip:e.name.toLowerCase().endsWith(`.zip`),is3mf:e.name.toLowerCase().endsWith(`.3mf`)}));u(e=>[...e,...t]),i&&e.length>0&&A(t)},M=e=>{u(t=>t.filter((t,n)=>n!==e))},N=(0,y.useRef)(!1);(0,y.useEffect)(()=>{N.current||!s||s.length===0||(N.current=!0,j(s))},[]);let P=l.some(e=>e.isZip&&e.status===`pending`),F=l.some(e=>e.file.name.toLowerCase().endsWith(`.stl`)&&e.status===`pending`),I=l.some(e=>e.is3mf&&e.status===`pending`),L=l.filter(e=>e.status===`pending`).length,R=l.length>0&&L===0&&!p;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:c(`fileManager.uploadFiles`)}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{onDragOver:T,onDragLeave:E,onDrop:D,onClick:()=>w.current?.click(),className:`border-2 border-dashed rounded-lg p-8 text-center cursor-pointer transition-colors ${d?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Vu,{className:`w-10 h-10 mx-auto mb-3 ${d?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:c(d?`fileManager.dropFilesHere`:`fileManager.dragDropFiles`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:c(`fileManager.orClickToBrowse`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-2`,children:c(`fileManager.allFileTypesSupported`)})]}),(0,G.jsx)(`input`,{ref:w,type:`file`,multiple:!0,accept:o,className:`hidden`,onChange:O}),P&&(0,G.jsx)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Po,{className:`w-5 h-5 text-blue-600 dark:text-blue-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-blue-700 dark:text-blue-300 font-medium`,children:c(`fileManager.zipFilesDetected`)}),(0,G.jsx)(`p`,{className:`text-xs text-blue-700/80 dark:text-blue-300/70 mt-1`,children:c(`fileManager.zipExtractOptions`)}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h,onChange:e=>g(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.preserveZipStructure`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.createFolderFromZip`)})]})]})]})}),I&&(0,G.jsx)(`div`,{className:`p-3 bg-purple-50 dark:bg-purple-500/10 border border-purple-300 dark:border-purple-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-purple-600 dark:text-purple-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-purple-700 dark:text-purple-300 font-medium`,children:c(`fileManager.threemfDetected`)}),(0,G.jsx)(`p`,{className:`text-xs text-purple-700/80 dark:text-purple-300/70 mt-1`,children:c(`fileManager.threemfExtractionInfo`)})]})]})}),(F||P)&&(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Hc,{className:`w-5 h-5 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-green font-medium`,children:c(`fileManager.stlThumbnailGeneration`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-green/70 mt-1`,children:c(P&&!F?`fileManager.zipMayContainStl`:`fileManager.thumbnailsCanBeGenerated`)}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>x(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.generateThumbnailsForStl`)})]})]})]})}),l.length>0&&(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-2`,children:l.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-2 bg-bambu-dark rounded-lg`,children:[e.isZip?(0,G.jsx)(Po,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0`}):(0,G.jsx)(pc,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.file.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[(e.file.size/1024/1024).toFixed(2),` MB`,e.isZip&&e.status===`pending`&&(0,G.jsxs)(`span`,{className:`text-blue-700 dark:text-blue-400 ml-2`,children:[`• `,c(`fileManager.willBeExtracted`)]}),e.extractedCount!==void 0&&(0,G.jsxs)(`span`,{className:`text-green-700 dark:text-green-400 ml-2`,children:[`• `,c(`fileManager.filesExtracted`,{count:e.extractedCount})]})]}),e.status===`error`&&e.error&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1 break-words`,children:e.error})]}),e.status===`pending`&&(0,G.jsx)(`button`,{onClick:()=>M(t),className:`p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray`})}),e.status===`uploading`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`}),e.status===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-green-500`}),e.status===`error`&&(0,G.jsx)(`span`,{title:e.error,children:(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-500`})})]},t))}),S&&(0,G.jsx)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300`,children:S})]})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:c(`common.cancel`)}),!R&&(0,G.jsx)(Q,{onClick:()=>A(l),disabled:L===0||p,children:p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),c(`fileManager.uploading`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),c(`common.upload`),` `,L>0?`(${L})`:``]})})]})]})})}function _U(e){if(!e)return null;let t=[e.brand,e.material,e.subtype].filter(Boolean);return t.length>0?t.join(` `):null}function vU(e,t){let n=[],r=e?.ams_extruder_map,i=!!e?.nozzles?.[1]?.nozzle_diameter||r&&Object.keys(r).length>0||(e?.vt_tray?.length??0)>1;e?.ams?.forEach(e=>{let i=e.tray.length===1;e.tray.forEach(a=>{if(a.tray_type){let o=mp(a.tray_color),s=Mp(e.id,a.id,!1),c=t?.get(s);n.push({type:a.tray_type,color:o,colorName:c?.color_name?.trim()||Df(o,a.tray_sub_brands),amsId:e.id,trayId:a.id,isHt:i,isExternal:!1,label:jp(e.id,a.id,i,!1),globalTrayId:s,trayInfoIdx:a.tray_info_idx||``,traySubBrands:a.tray_sub_brands||``,spoolName:_U(c)??void 0,extruderId:r?.[String(e.id)],remain:a.remain??-1})}})});for(let r of e?.vt_tray??[])if(r.tray_type){let a=mp(r.tray_color),o=r.id??254,s=(e?.vt_tray?.length??0)>1,c=t?.get(o);n.push({type:r.tray_type,color:a,colorName:c?.color_name?.trim()||Df(a,r.tray_sub_brands),amsId:-1,trayId:o-254,isHt:!1,isExternal:!0,label:s?o===254?`Ext-L`:`Ext-R`:`External`,globalTrayId:o,trayInfoIdx:r.tray_info_idx||``,traySubBrands:r.tray_sub_brands||``,spoolName:_U(c)??void 0,extruderId:i?255-o:void 0,remain:r.remain??-1})}return n}function yU(e,t,n,r){let i=vU(t);if(i.length!==0)return SU(xU(e,i,{},n,r,t?.fila_switch?.installed===!0))}function Cke(e,t){return(0,y.useMemo)(()=>vU(e,t),[e,t])}function bU(e,t){let n=hp(t);return n?hp(e)===n||wp(e,t):!0}function xU(e,t,n,r,i,a=!1){if(!e?.filaments||e.filaments.length===0)return[];let o=new Set(Object.values(n));return e.filaments.map(e=>{let s=e.slot_id||0;if(s>0&&n[s]!==void 0){let r=n[s],i=t.find(e=>e.globalTrayId===r);if(i){let t=Cp(i.type,e.type),n=bU(i.color,e.color),r;return r=t&&n?`match`:t?`type_only`:`mismatch`,{...e,loaded:i,hasFilament:!0,typeMatch:t,colorMatch:n,status:r,isManual:!0}}}let c=e.tray_info_idx||``,l=t.filter(e=>!o.has(e.globalTrayId));e.nozzle_id!=null&&!a&&(l=l.filter(t=>t.extruderId===e.nozzle_id)),r&&(l=[...l].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let u,d,f,p;if(c){let t=l.filter(e=>e.trayInfoIdx===c);t.length===1?u=t[0]:t.length>1&&(r&&t.sort((e,t)=>Vp(Bp(e,i),Bp(t,i))),d=t.find(t=>Cp(t.type,e.type)&&hp(t.color)===hp(e.color)),d||(f=Ap(t.filter(t=>Cp(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=t.find(t=>Cp(t.type,e.type))))}!u&&!d&&!f&&!p&&(d=l.find(t=>Cp(t.type,e.type)&&hp(t.color)===hp(e.color)),d||(f=Ap(l.filter(t=>Cp(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=l.find(t=>Cp(t.type,e.type))));let m=u||d||f||p||void 0;m&&o.add(m.globalTrayId);let h=!!m,g=h,_=h&&bU(m.color,e.color),v;return v=h?_?`match`:`type_only`:`mismatch`,{...e,loaded:m,hasFilament:h,typeMatch:g,colorMatch:_,status:v,isManual:!1}})}function SU(e){if(e.length===0)return;let t=Math.max(...e.map(e=>e.slot_id||0));if(t<=0)return;let n=Array(t).fill(-1);return e.forEach(e=>{e.slot_id&&e.slot_id>0&&(n[e.slot_id-1]=e.loaded?.globalTrayId??-1)}),n}function CU(e,t,n,r,i,a){let o=Cke(t,a),s=t?.fila_switch?.installed===!0,c=(0,y.useMemo)(()=>xU(e,o,n,r,i,s),[e,o,n,r,s,i]);return{loadedFilaments:o,filamentComparison:c,amsMapping:(0,y.useMemo)(()=>o.length===0?void 0:SU(c),[c,o.length]),hasTypeMismatch:c.some(e=>e.status===`mismatch`),hasColorMismatch:c.some(e=>e.status===`type_only`)}}function wke(e,t,n,r,i){if(!e||e.length===0)return{exactMatches:0,typeOnlyMatches:0,missingTypes:0,totalSlots:0,status:`full`};let a=0,o=0,s=0,c=new Set(Object.values(n));for(let l of e){let e=l.slot_id||0;if(e>0&&n[e]!==void 0){let r=n[e],i=t.find(e=>e.globalTrayId===r);if(i){let e=Cp(i.type,l.type),t=hp(i.color)===hp(l.color)||wp(i.color,l.color);e&&t?a++:e?o++:s++;continue}}let u=t.filter(e=>!c.has(e.globalTrayId));if(l.nozzle_id!=null){let e=u.filter(e=>e.extruderId===l.nozzle_id);e.length>0&&(u=e)}r&&(u=[...u].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let d=u.find(e=>Cp(e.type,l.type)&&hp(e.color)===hp(l.color)),f=d?void 0:Ap(u.filter(e=>Cp(e.type,l.type)),l.color,e=>e.color),p=d||f?void 0:u.find(e=>Cp(e.type,l.type)),m=d??f??p;m&&c.add(m.globalTrayId),d||f?a++:p?o++:s++}let l=e.length,u=`full`;return s>0?u=`missing`:o>0&&(u=`partial`),{exactMatches:a,typeOnlyMatches:o,missingTypes:s,totalSlots:l,status:u}}function Tke(e,t,n,r,i){if(!e?.filaments||e.filaments.length===0)return;let a=vU(t);if(a.length===0)return;let o=new Set(Object.values(n)),s=[];for(let t of e.filaments){let e=t.slot_id||0;if(e>0&&n[e]!==void 0){s.push({slot_id:e,globalTrayId:n[e]});continue}let c=a.filter(e=>!o.has(e.globalTrayId));if(t.nozzle_id!=null){let e=c.filter(e=>e.extruderId===t.nozzle_id);e.length>0&&(c=e)}r&&(c=[...c].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let l=c.find(e=>Cp(e.type,t.type)&&hp(e.color)===hp(t.color)),u=l?void 0:Ap(c.filter(e=>Cp(e.type,t.type)),t.color,e=>e.color),d=l||u?void 0:c.find(e=>Cp(e.type,t.type)),f=l??u??d;f&&o.add(f.globalTrayId),s.push({slot_id:e,globalTrayId:f?.globalTrayId??-1})}let c=Math.max(...s.map(e=>e.slot_id||0));if(c<=0)return;let l=Array(c).fill(-1);return s.forEach(e=>{e.slot_id&&e.slot_id>0&&(l[e.slot_id-1]=e.globalTrayId)}),l}var wU={useDefault:!0,manualMappings:{},autoConfigured:!1};function Eke(e,t,n,r,i,a,o,s){let c=Co({queries:e.map(t=>({queryKey:[`printer-status`,t],queryFn:()=>Z.getPrinterStatus(t),enabled:e.length>0,staleTime:5e3}))}),l=(0,y.useMemo)(()=>e.map((e,a)=>{let l=c[a],u=l?.data,d=t?.find(t=>t.id===e)?.name||`Printer ${e}`,f=vU(u),p=i[e]||wU,m=s?.get(e),h=Hp(o,u?.ams_filament_backup),g=yU(n,u,h,m),_=p.useDefault?r:p.manualMappings,v=Tke(n,u,_,h,m),y=wke(n?.filaments,f,_,h,m);return{printerId:e,printerName:d,status:u,isLoading:l?.isLoading??!1,loadedFilaments:f,autoMapping:g,finalMapping:v,matchStatus:y.status,exactMatches:y.exactMatches,typeOnlyMatches:y.typeOnlyMatches,missingTypes:y.missingTypes,totalSlots:y.totalSlots,config:p,inventoryByTrayId:m}}),[e,c,t,n,i,r,o,s]),u=c.some(e=>e.isLoading),d=(e,t)=>{a(n=>({...n,[e]:{...n[e]||wU,...t}}))},f=e=>{let t=l.find(t=>t.printerId===e);if(!t||!t.status||!n?.filaments)return;let r=yU(n,t.status,Hp(o,t.status?.ams_filament_backup),s?.get(e));if(!r)return;let i={};r.forEach((e,t)=>{e!==-1&&(i[t+1]=e)}),d(e,{useDefault:!1,manualMappings:i,autoConfigured:!0})};return{printerResults:l,isLoading:u,perPrinterConfigs:i,updatePrinterConfig:d,autoConfigureAll:()=>{for(let t of e)f(t)},autoConfigurePrinter:f,getFinalMapping:e=>l.find(t=>t.printerId===e)?.finalMapping,allPrintersReady:l.every(e=>e.matchStatus!==`missing`)}}var TU=`/img/bed`,Dke={"cool plate":{icon:`${TU}/bed_cool.png`,label:`Cool Plate`},"pc plate":{icon:`${TU}/bed_cool.png`,label:`Cool Plate`},"cool plate (supertack)":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"supertack plate":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"bambu cool plate supertack":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"engineering plate":{icon:`${TU}/bed_engineering.png`,label:`Engineering Plate`},"high temp plate":{icon:`${TU}/bed_high_templ.png`,label:`High Temp Plate`},"textured pei plate":{icon:`${TU}/bed_pei.png`,label:`Textured PEI Plate`},"pei plate":{icon:`${TU}/bed_pei.png`,label:`PEI Plate`},"smooth pei plate":{icon:`${TU}/bed_pei_cool.png`,label:`Smooth PEI Plate`}};function EU(e){return e?Dke[e.trim().toLowerCase()]??null:null}function Oke(e,t){if(t==null)return;let n=e?.slicer_ams_mapping;if(!(!n||typeof n!=`object`)&&n.printer_id===t&&!(!Array.isArray(n.mapping)||n.mapping.length===0))return n.mapping}function kke(e){let t=e.trim().split(/\s+/);return t.length<=1?e.trim():t.slice(1).join(` `)}function DU(e){let{data:t}=K({queryKey:[`builtin-filaments`],queryFn:()=>Z.getBuiltinFilaments(),staleTime:300*1e3}),{data:n}=K({queryKey:[`filament-id-map`],queryFn:()=>Z.getFilamentIdMap(),staleTime:300*1e3}),r=(0,y.useMemo)(()=>{let e={};for(let n of t||[])n.filament_id&&(e[n.filament_id]=n.name);for(let[t,r]of Object.entries(n||{}))t&&r&&(e[t]=r);return e},[t,n]),i=(0,y.useMemo)(()=>(e||[]).map(e=>{let t=e.tray_info_idx&&r[e.tray_info_idx]||e.type;return{resolvedName:t,materialHint:kke(t),color:e.color}}),[e,r]),a=Co({queries:i.map(({color:e,materialHint:t})=>({queryKey:[`color-by-material`,e,t],queryFn:()=>Z.getColorByMaterial(e,t),enabled:!!e,staleTime:300*1e3}))});return i.map(({resolvedName:e,color:t},n)=>({resolvedName:e,colorLabel:(a[n]?.data?.color_name??null)||Df(t)}))}var OU=Array.from({length:6},(e,t)=>t+1),Ake=0;function kU(e){let t=new Map,n;for(let r of e??[]){if(r.id===Ake){n=r;continue}let e=r.id-15;e>=1&&e<=6&&t.set(e,r)}let r=OU.filter(e=>!t.has(e));return r.length===1&&n&&(n.nozzle_diameter||n.nozzle_type)&&t.set(r[0],n),t}function AU(e,t){if(!e||!e.nozzle_diameter&&!e.nozzle_type)return!1;let n=Number.parseFloat(e.nozzle_diameter),r=Number.parseFloat(t.nozzle_diameter);if(!Number.isFinite(n)||!Number.isFinite(r)||Math.abs(n-r)>.005)return!1;let i=(t.volume_type||``).trim().toLowerCase();if(i&&e.nozzle_type){let t=e.nozzle_type.toUpperCase().startsWith(`HH`);if(i.startsWith(`high flow`)!==t)return!1}return!0}function jke(e,t,n){let r=kU(e);return OU.map(e=>{let i=r.get(e),a=AU(i,t),o;return a||(o=i?n(`printModal.rackWrongNozzle`,{has:`${i.nozzle_diameter||`?`} ${i.nozzle_type||``}`.trim(),needs:`${t.nozzle_diameter} ${t.volume_type}`.trim()}):n(`printModal.rackEmptyPosition`)),{position:e,diameter:i?.nozzle_diameter??``,nozzleType:i?.nozzle_type??``,filamentColor:i?.filament_color??``,eligible:a,reason:o}})}function Mke(e,t,n={}){let r=kU(e),i={},a=new Set,o=[...t.keys()].filter(e=>t.get(e).on_rack).sort((e,t)=>e-t);for(let e of o){let o=n[e];if(o!=null){if(a.has(o)||!AU(r.get(o),t.get(e)))return null;i[e]=o,a.add(o)}}for(let e of o){if(i[e]!=null)continue;let n=t.get(e),o=OU.filter(e=>!a.has(e)&&AU(r.get(e),n));if(o.length===0)return null;let s=jU(n.filament_color),c=(s?o.find(e=>jU(r.get(e)?.filament_color)===s):void 0)??o[0];i[e]=c,a.add(c)}return i}function jU(e){return(e??``).trim().replace(/^#/,``).slice(0,6).toUpperCase()}function MU({printerId:e,filamentReqs:t,manualMappings:n,onManualMappingChange:r,onEstimatedCostChange:i,budgetAvailable:a,quantity:o=1,currencySymbol:s,defaultCostPerKg:c,defaultExpanded:l=!1,forceColorMatch:u,onForceColorMatchChange:d,plateLabel:f,archiveAmsMapping:p,nozzleRackChoice:m,onNozzleRackChoiceChange:h}){let{t:g}=U(),_=co(),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(l),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)([]);(0,y.useEffect)(()=>{w(!1),T.current=[]},[p,f,e]);let E=()=>{if(!p||!t?.filaments)return;if(C){let e={...n};for(let t of T.current)delete e[t];r(e),T.current=[],w(!1);return}let e={...n},i=[];for(let n of t.filaments){let t=n.slot_id-1;n.slot_id>0&&t>=0&&t=0&&(e[n.slot_id]=p[t],i.push(n.slot_id))}r(e),T.current=i,w(!0)},{data:D}=K({queryKey:[`printer-status`,e],queryFn:()=>Z.getPrinterStatus(e),enabled:!!e}),{data:O}=K({queryKey:[`spool-assignments`,e],queryFn:()=>Z.getAssignments(e),enabled:!!e}),{data:k}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:A}=K({queryKey:[`printer-inventory-remain`,e],queryFn:()=>Z.getInventoryRemain(e),enabled:!!e,staleTime:30*1e3,refetchOnMount:`always`}),j=(0,y.useMemo)(()=>{if(!A?.inventory_remain_g)return;let e=new Map;return Object.entries(A.inventory_remain_g).forEach(([t,n])=>{let r=Number(t);Number.isNaN(r)||e.set(r,n)}),e},[A]),M=(0,y.useMemo)(()=>{let e=A?.slot_materials;if(!e?.length)return;let t=new Map;return e.forEach(e=>{e.spool&&t.set(e.global_tray_id,e.spool)}),t.size>0?t:void 0},[A]),{loadedFilaments:N,filamentComparison:P,hasTypeMismatch:F,hasColorMismatch:I}=CU(t,D,n,Hp(k?.prefer_lowest_filament,D?.ams_filament_backup),j,M),L=DU(t?.filaments),R=(0,y.useMemo)(()=>{let e=new Map;for(let t of O||[]){let n=t.ams_id===255,r=Mp(t.ams_id,t.tray_id,n);e.set(r,t.spool?.cost_per_kg??null)}return e},[O]),z=(0,y.useMemo)(()=>{let e=new Map;for(let t of O||[]){let n=t.ams_id===255,r=Mp(t.ams_id,t.tray_id,n),i=t.spool;if(!i){e.set(r,null);continue}e.set(r,Math.max(0,Math.round((i.label_weight??0)-(i.weight_used??0))))}return e},[O]),B=(0,y.useMemo)(()=>{let e=0;for(let t of P){let n=t.loaded?.globalTrayId;if(n==null)continue;let r=R.get(n)??null??c;r>0&&(e+=t.used_grams/1e3*r)}return e},[P,R,c]),V=(0,y.useRef)(i);(0,y.useEffect)(()=>{V.current=i},[i]),(0,y.useEffect)(()=>{V.current?.(B>0?B:null)},[B]);let ee=(0,y.useMemo)(()=>Array.from(R.values()).some(e=>e!=null&&e>0),[R]),te=B*Math.max(1,o),ne=a!=null&&te>a,re=t?.filaments&&t.filaments.length>0,ie=t?.filaments?.some(e=>e.nozzle_id!=null)??!1,ae=(0,y.useMemo)(()=>{let e=new Map;for(let n of t?.filaments??[])n.group_id!=null&&n.group&&e.set(n.group_id,n.group);return e},[t]),oe=(D?.nozzle_rack?.some(e=>e.id>=16)??!1)&&[...ae.values()].some(e=>e.on_rack),se=(0,y.useMemo)(()=>oe?Mke(D?.nozzle_rack,ae,m??{})??m??{}:{},[oe,D?.nozzle_rack,ae,m]),H=(e,t)=>{h&&h({...se,[e]:t})},ce=D?.fila_switch?.installed===!0,le=D?.ams_switch_inlet,ue=e=>ce&&le?.[String(e)]||null,de=(0,y.useMemo)(()=>{if(!ce)return null;let e=new Set;for(let t of P){if(!t.loaded||t.loaded.isExternal)return null;let n=ue(t.loaded.amsId);if(!n)return null;e.add(n)}return P.length<2||e.size!==1?null:[...e][0]},[ce,le,P]);if(!re||!D)return null;let fe=F?`#f97316`:I?`#facc15`:`#00ae42`,pe=(e,t)=>{if(e>0)if(t===``){let t={...n};delete t[e],r(t)}else r({...n,[e]:parseInt(t,10)})};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>S(!x),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,G.jsx)(Os,{className:`w-4 h-4`,fill:fe,stroke:`none`}),(0,G.jsx)(`span`,{children:f?`${g(`printModal.filamentMapping`)} — ${f}`:g(`printModal.filamentMapping`)}),F?(0,G.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:[`(`,g(`printModal.statusTypeNotFound`),`)`]}):I?(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,g(`printModal.statusColorMismatch`),`)`]}):(0,G.jsxs)(`span`,{className:`text-xs text-bambu-green`,children:[`(`,g(`printModal.statusReady`),`)`]}),x?(0,G.jsx)(gs,{className:`w-4 h-4 ml-auto`}):(0,G.jsx)(ps,{className:`w-4 h-4 ml-auto`})]}),x&&(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:g(`printModal.clickToChangeSlot`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[p&&(0,G.jsxs)(`button`,{type:`button`,onClick:E,title:g(`printModal.useArchiveMappingTooltip`),className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border transition-colors ${C?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:g(`printModal.useArchiveMapping`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:async()=>{b(!0);try{await Z.refreshPrinterStatus(e),await new Promise(e=>setTimeout(e,500)),await _.refetchQueries({queryKey:[`printer-status`,e]})}finally{b(!1)}},className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:v,children:[(0,G.jsx)(Hl,{className:`w-3 h-3 ${v?`animate-spin`:``}`}),(0,G.jsx)(`span`,{children:g(`printModal.reRead`)})]})]})]}),de&&(0,G.jsxs)(`div`,{className:`flex items-start gap-1.5 rounded border border-yellow-500/40 bg-yellow-500/10 px-2 py-1.5 text-xs text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:g(`printModal.ftsSameInletHint`,{inlet:de})})]}),P.map((e,t)=>{let n=e.slot_id??0,r=n>0&&d!=null,{resolvedName:i,colorLabel:a}=L[t]??{resolvedName:e.type,colorLabel:Df(e.color)},[o,s]=Of({name:a,hex:e.color},{name:e.loaded?.colorName,hex:e.loaded?.color});return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:oe?`16px minmax(210px, 1.4fr) auto 2fr 16px`:`16px minmax(70px, 1fr) auto 2fr 16px`},children:[(0,G.jsx)(`span`,{title:g(`printModal.requiredTooltip`,{name:i,color:o}),children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,G.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0`,children:[oe&&e.group_id!=null&&e.group?e.group.on_rack?(0,G.jsx)(`select`,{value:se[e.group_id]??``,onChange:t=>H(e.group_id,Number(t.target.value)),disabled:!h,title:g(`printModal.rackPositionTooltip`),"aria-label":g(`printModal.rackPosition`),className:`shrink-0 bg-bambu-dark-tertiary text-white text-[10px] font-bold rounded px-1 py-0.5 border border-bambu-dark-tertiary focus:border-bambu-green outline-none disabled:opacity-60`,children:jke(D?.nozzle_rack,e.group,g).map(e=>(0,G.jsxs)(`option`,{value:e.position,disabled:!e.eligible,title:e.reason,children:[`R`,e.position,e.diameter?` · ${e.diameter}`:``]},e.position))}):(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:g(`printModal.leftNozzleTooltip`),children:g(`printModal.leftNozzle`)}):ie&&e.nozzle_id!=null?(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:e.nozzle_id===1?g(`printModal.leftNozzleTooltip`):g(`printModal.rightNozzleTooltip`),children:e.nozzle_id===1?g(`printModal.leftNozzle`):g(`printModal.rightNozzle`)}):null,(0,G.jsx)(`span`,{className:`truncate min-w-0`,title:i,children:i}),(0,G.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,e.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:e.loaded?.globalTrayId??``,onChange:e=>pe(n,e.target.value),className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${e.status===`match`?`border-bambu-green/50 text-bambu-green`:e.status===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${e.isManual?`ring-1 ring-blue-400/50`:``}`,title:e.isManual?g(`printModal.manuallySelected`):g(`printModal.autoMatched`),children:[(0,G.jsxs)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:[`-- `,g(`printModal.selectSlot`),` --`]}),N.map(e=>{let t=z.get(e.globalTrayId),n=t==null?``:g(`printModal.slotRemainingShort`,{grams:t,defaultValue:` - ${t}g left`}),r=ue(e.amsId),i=r==null?``:` [${gp[r]}]`;return(0,G.jsxs)(`option`,{value:e.globalTrayId,className:`bg-bambu-dark text-white`,children:[e.label,`: `,e.spoolName||e.traySubBrands||e.type,` (`,e.colorName,`)`,n,i]},e.globalTrayId)})]}),e.status===`match`?(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}):e.status===`type_only`?(0,G.jsx)(`span`,{title:o&&s?g(`printModal.sameTypeDifferentColorDetail`,{required:o,loaded:s}):g(`printModal.sameTypeDifferentColor`),children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,G.jsx)(`span`,{title:g(`printModal.filamentTypeNotLoaded`),children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]}),r&&(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u?.[n]??!1,onChange:e=>d(n,e.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,G.jsx)(wl,{className:`w-3 h-3`}),g(`printModal.forceColorMatch`)]})]},t)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[g(`printModal.totalCost`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:B>0||ee?`${s}${B.toFixed(2)}`:`N/A`}),o>1&&B>0&&(0,G.jsx)(`span`,{className:`ml-2`,children:g(`printModal.totalCostForQuantity`,`total: {{cost}}`,{cost:`${s}${te.toFixed(2)}`})})]}),ne&&(0,G.jsx)(`p`,{className:`text-xs text-red-400 mt-2`,children:g(`printModal.insufficientBudget`,`Insufficient budget for this cost center.`)}),F&&(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-2`,children:g(`printModal.requiredTypeNotInPrinter`)})]})]})}function NU({filamentReqs:e,availableFilaments:t,overrides:n,onChange:r,forceColorMatch:i,onForceColorMatchChange:a,plateLabel:o,showHint:s=!0}){let{t:c}=U(),l=DU(e?.filaments),u=(0,y.useMemo)(()=>{let e={};for(let n of t){let t=Sp(n.type);e[t]||(e[t]=[]),e[t].push(n)}return e},[t]),d=e?.filaments;if(!d||d.length===0||t.length===0)return null;let f=(e,t)=>{if(t===``){let t={...n};delete t[e],r(t)}else{let[i,a]=t.split(`|`);r({...n,[e]:{type:i,color:a}})}};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:(0,G.jsx)(`span`,{children:o?`${c(`printModal.filamentOverride`)} — ${o}`:c(`printModal.filamentOverride`)})}),s&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:c(`printModal.filamentOverrideHint`)}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 space-y-2`,children:d.map((e,t)=>{let r=n[e.slot_id],o=!!r,s=u[Sp(e.type)]||[],d=e.nozzle_id==null?s:s.filter(t=>t.extruder_id==null||t.extruder_id===e.nozzle_id),{resolvedName:p,colorLabel:m}=l[t]??{resolvedName:e.type,colorLabel:Df(e.color)};return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:`16px minmax(70px, 1fr) auto 2fr 20px`},children:[(0,G.jsx)(`span`,{title:`${c(`printModal.originalFilament`)}: ${p} - ${m}`,children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,G.jsxs)(`span`,{className:`text-white truncate`,children:[p,` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:o?`${r.type}|${r.color}`:``,onChange:t=>f(e.slot_id,t.target.value),disabled:d.length===0,className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${o?`border-blue-500/50 dark:border-blue-400/50 text-blue-700 dark:text-blue-400`:`border-bambu-gray/30 text-bambu-gray`}`,children:[(0,G.jsxs)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:[c(`printModal.originalFilament`),`: `,p,` (`,m,`)`]}),d.map((e,t)=>(0,G.jsxs)(`option`,{value:`${e.type}|${e.color}`,className:`bg-bambu-dark text-white`,children:[e.tray_sub_brands||e.type,` (`,Df(e.color,e.tray_sub_brands),`)`]},`${e.type}-${e.color}-${e.tray_sub_brands}-${t}`))]}),o?(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(e.slot_id,``),className:`text-bambu-gray hover:text-white transition-colors`,title:c(`printModal.resetToOriginal`),children:(0,G.jsx)(Wl,{className:`w-3 h-3`})}):(0,G.jsx)(`span`,{className:`w-3`})]}),(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i?.[e.slot_id]??!1,onChange:t=>a?.(e.slot_id,t.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,G.jsx)(wl,{className:`w-3 h-3`}),c(`printModal.forceColorMatch`)]})]},e.slot_id)})})]})}function Nke({plates:e,isMultiPlate:t,selectedPlates:n,onToggle:r,onSelectAll:i,onDeselectAll:a,multiSelect:o,quantities:s,onQuantityChange:c}){let{t:l}=U();if(!t||e.length<=1)return null;let u=n.size===e.length,d=!!s&&!!c,f=d?e.reduce((e,t)=>n.has(t.index)?e+(s[t.index]??1):e,0):0;return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`Select Plate`,o?`s`:``,` to Print`]}),n.size===0&&(0,G.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),`Selection required`]}),o&&i&&a&&(0,G.jsx)(`button`,{type:`button`,onClick:u?a:i,className:`ml-auto text-xs px-2 py-0.5 rounded-full border transition-colors ${u?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-gray`}`,children:u?l(`queue.deselectAll`):l(`queue.selectAllPlates`,{count:e.length})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:e.map(e=>{let t=n.has(e.index);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg border transition-colors ${t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.index),className:`flex items-center gap-2 text-left min-w-0 flex-1`,children:[o&&(t?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`})),e.has_thumbnail&&e.thumbnail_url!=null?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-10 h-10 rounded object-cover bg-bambu-dark-tertiary`}):(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name||`Plate ${e.index}`}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`...`:``):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${lp(e.print_time_seconds)}`]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1 mt-0.5 truncate`,title:t.label,children:[(0,G.jsx)(`img`,{src:t.icon,alt:``,className:`w-3.5 h-3.5 object-contain flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:t.label})]}):null})()]}),!o&&t&&(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green flex-shrink-0`})]}),d&&t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,"aria-hidden":`true`,children:`×`}),(0,G.jsx)(`input`,{type:`number`,min:1,max:999,value:s[e.index]??1,"aria-label":l(`queue.plateQuantityLabel`,{plate:e.name||l(`queue.plateNumber`,{index:e.index})}),onChange:t=>c(e.index,Math.max(1,Math.min(999,parseInt(t.target.value)||1))),className:`w-14 px-1.5 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center focus:outline-none focus:ring-1 focus:ring-bambu-green`})]})]},e.index)})}),d&&f>n.size&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:l(`queue.plateQuantityTotal`,{count:f})})]})}var Pke=new Set([`IDLE`,`FINISH`,`FAILED`]);function Fke({printerResult:e,filamentReqs:t,onUpdateConfig:n}){let r=co(),[i,a]=(0,y.useState)(!1),o=(t,r)=>{if(t<=0)return;let i={...e.config.manualMappings};r===``?delete i[t]:i[t]=parseInt(r,10),n({useDefault:!1,manualMappings:i,autoConfigured:!1})},s=async()=>{a(!0);try{await Z.refreshPrinterStatus(e.printerId),await new Promise(e=>setTimeout(e,500)),await r.refetchQueries({queryKey:[`printer-status`,e.printerId]})}finally{a(!1)}},c=t.map(t=>{let n=t.slot_id||0,i=e.config.manualMappings[n],a,o=!1;if(i!==void 0)a=e.loadedFilaments.find(e=>e.globalTrayId===i),o=!0;else{let n=new Set(Object.values(e.config.manualMappings)),i=r.getQueryData([`settings`]);a=eee(t,e.loadedFilaments,n,Hp(i?.prefer_lowest_filament,e.status?.ams_filament_backup),e.inventoryByTrayId)}let s=`mismatch`;if(a){let e=Cp(a.type,t.type),n=hp(a.color)===hp(t.color)||wp(a.color,t.color);e&&n?s=`match`:e&&(s=`type_only`)}return{req:t,loaded:a,status:s,isManual:o}});return(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom slot mapping`}),(0,G.jsxs)(`button`,{type:`button`,onClick:s,className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:i,children:[(0,G.jsx)(Hl,{className:`w-3 h-3 ${i?`animate-spin`:``}`}),(0,G.jsx)(`span`,{children:`Re-read`})]})]}),c.map(({req:t,loaded:n,status:r,isManual:i},a)=>(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:`16px minmax(70px, 1fr) auto 2fr 16px`},children:[(0,G.jsx)(`span`,{title:`Required: ${t.type} - ${Df(t.color)}`,children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:t.color,stroke:t.color})}),(0,G.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`truncate min-w-0`,title:t.type,children:t.type}),(0,G.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,t.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:n?.globalTrayId??``,onChange:e=>o(t.slot_id||0,e.target.value),className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${r===`match`?`border-bambu-green/50 text-bambu-green`:r===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${i?`ring-1 ring-blue-400/50`:``}`,title:i?`Manually selected`:`Auto-matched`,children:[(0,G.jsx)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:`-- Select slot --`}),Up(e.loadedFilaments,t.nozzle_id).map(e=>(0,G.jsxs)(`option`,{value:e.globalTrayId,className:`bg-bambu-dark text-white`,children:[e.label,`: `,e.traySubBrands||e.type,` (`,e.colorName,`)`]},e.globalTrayId))]}),r===`match`?(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}):r===`type_only`?(0,G.jsx)(`span`,{title:`Same type, different color`,children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,G.jsx)(`span`,{title:`Filament type not loaded`,children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]},a))]})}function Ike({printers:e,selectedPrinterIds:t,onMultiSelect:n,isLoading:r=!1,allowMultiple:i=!1,showInactive:a=!1,disableBusy:o=!1,printerMappingResults:s,filamentReqs:c,onAutoConfigurePrinter:l,onUpdatePrinterConfig:u,assignmentMode:d=`printer`,onAssignmentModeChange:f,targetModel:p,onTargetModelChange:m,targetLocation:h,onTargetLocationChange:g,slicedForModel:_}){let[v,b]=(0,y.useState)(!1),x=a?e:e.filter(e=>e.is_active),S=Co({queries:x.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),staleTime:5e3}))}),C=(0,y.useMemo)(()=>{let e=new Map;return x.forEach((t,n)=>{let r=S[n];r?.data&&e.set(t.id,r.data)}),e},[x,S]),w=e=>{let t=C.get(e);return t?t.connected?!Pke.has(t.state??``):!0:!1},T=e=>{let t=C.get(e);if(!t)return null;if(!t.connected)return`Offline`;let n=t.state;return n?n===`RUNNING`?t.stg_cur_name||`Printing`:n===`PREPARE`?`Preparing`:n===`PAUSE`?`Paused`:n===`IDLE`?`Idle`:n===`FINISH`?`Finished`:n===`FAILED`?`Failed`:n:null},E=(0,y.useMemo)(()=>{if(d!==`printer`||!_||v)return x;let e=x.filter(e=>e.model===_);return e.length>0?e:x},[x,d,_,v]),D=x.length-E.length,O=(0,y.useMemo)(()=>{let e=x.map(e=>e.model).filter(e=>!!e);return[...new Set(e)].sort()},[x]),k=(0,y.useMemo)(()=>{if(!p)return[];let e=x.filter(e=>e.model===p&&e.location).map(e=>e.location).filter(e=>!!e);return[...new Set(e)].sort()},[x,p]),A=f&&m&&O.length>0,j=i&&t.length>1&&s&&c?.filaments&&c.filaments.length>0&&l&&u;if(r)return(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(E.length===0)return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm mb-4`,children:[(0,G.jsx)(ys,{className:`w-4 h-4`}),`No `,a?``:`active `,`printers available`]});let M=e=>{o&&w(e)||(i?t.includes(e)?n(t.filter(t=>t!==e)):n([...t,e]):n([e]))},N=()=>{n((o?E.filter(e=>!w(e.id)):E).map(e=>e.id))},P=()=>{n([])},F=(e,t,n)=>{n.stopPropagation(),!(!l||!u)&&(t?l(e):u(e,{useDefault:!0,manualMappings:{},autoConfigured:!1}))},I=e=>t.includes(e),L=t.length,R=e=>s?.find(t=>t.printerId===e);return(0,G.jsxs)(`div`,{className:`space-y-2 mb-6`,children:[A&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{f(`printer`),m(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${d===`printer`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm`,children:`Specific Printer`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{f(`model`),n([]),m(_&&O.includes(_)?_:null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${d===`model`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),(0,G.jsxs)(`span`,{className:`text-sm`,children:[`Any `,(d===`model`?p:null)||_||`Model`]})]})]}),d===`model`&&A&&(0,G.jsxs)(`div`,{className:`space-y-3 mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:[`Target Model`,_&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray/70`,children:[`(sliced for `,_,`)`]})]}),(0,G.jsxs)(`select`,{value:p||``,onChange:e=>{m(e.target.value||null),g&&g(null)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`Select a model...`}),O.map(e=>{let t=Sm(_,e);return(0,G.jsxs)(`option`,{value:e,disabled:!t,children:[e,t?``:` — incompatible with ${_} G-code`]},e)})]})]}),_&&p&&p!==_&&(Sm(_,p)?(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,_,`, but will be dispatched to a `,p,` printer`]})]}):(0,G.jsxs)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-red-600 dark:text-red-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:[`File was sliced for `,_,` and cannot be dispatched to `,p,` printers — select a compatible model`]})]})),p&&k.length>0&&g&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:`Location Filter (optional)`}),(0,G.jsxs)(`select`,{value:h||``,onChange:e=>g(e.target.value||null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`Any location`}),k.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),p&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Scheduler will assign to first available idle `,p,` printer`,h?` in ${h}`:``]})]}),d===`printer`&&i&&E.length>1&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray mb-2`,children:[(0,G.jsx)(`span`,{children:L===0?`Select printers`:`${L} printer${L===1?``:`s`} selected`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[L0&&(0,G.jsx)(`button`,{type:`button`,onClick:P,className:`text-bambu-gray hover:text-white transition-colors`,children:`Clear`})]})]}),d===`printer`&&E.map(e=>{let t=I(e.id),n=R(e.id),r=n&&!n.config.useDefault,a=w(e.id),s=o&&a,d=T(e.id);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>M(e.id),disabled:s,className:`w-full flex items-center gap-3 p-3 rounded-lg border transition-colors ${s?`border-bambu-dark-tertiary bg-bambu-dark opacity-50 cursor-not-allowed`:t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`} ${e.is_active?``:`opacity-60`}`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${s?`bg-bambu-dark-tertiary`:t?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Rl,{className:`w-5 h-5 ${s?`text-bambu-gray/50`:t?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{className:`text-left flex-1`,children:[(0,G.jsxs)(`p`,{className:`font-medium ${s?`text-bambu-gray`:`text-white`}`,children:[e.name,!e.is_active&&(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs ml-2`,children:`(inactive)`})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[e.model||`Unknown model`,` • `,e.ip_address]})]}),d&&(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${a?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-bambu-green/20 text-bambu-green`}`,children:d}),i&&(0,G.jsx)(`div`,{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors ${s?`border-bambu-gray/30`:t?`bg-bambu-green border-bambu-green`:`border-bambu-gray/50`}`,children:t&&(0,G.jsx)(fs,{className:`w-3 h-3 text-white`})})]}),t&&j&&n&&(0,G.jsxs)(`div`,{className:`ml-4 mt-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:r,onChange:t=>F(e.id,t.target.checked,t),className:`w-3.5 h-3.5 rounded border-bambu-gray/30 bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom mapping`})]}),(0,G.jsxs)(`span`,{className:`text-xs ml-2 ${n.matchStatus===`full`?`text-bambu-green`:n.matchStatus===`partial`?`text-yellow-700 dark:text-yellow-400`:`text-orange-700 dark:text-orange-400`}`,children:[`(`,n.exactMatches,`/`,n.totalSlots,` matched)`]}),n.isLoading&&(0,G.jsx)(Hl,{className:`w-3 h-3 text-bambu-gray animate-spin`}),r&&(0,G.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),l(e.id)},className:`ml-auto flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,children:[(0,G.jsx)(Yu,{className:`w-3 h-3`}),`Auto`]})]}),r&&(0,G.jsx)(Fke,{printerResult:n,filamentReqs:c.filaments,onUpdateConfig:t=>u(e.id,t)})]})]},e.id)}),d===`printer`&&D>0&&!v&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>b(!0),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`}),D,` other printer`,D>1?`s`:``,` hidden (different model) —`,(0,G.jsx)(`span`,{className:`underline`,children:`show all`})]}),d===`printer`&&v&&_&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>b(!1),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2`,children:(0,G.jsxs)(`span`,{className:`underline`,children:[`Show only `,_,` printers`]})}),d===`printer`&&L===0&&(0,G.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Select at least one printer`]}),d===`model`&&!p&&(0,G.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Select a target printer model`]})]})}var PU=[`off`,`auto`,`on`],FU={off:`bg-red-500 text-white`,auto:`bg-blue-500 text-white`,on:`bg-bambu-green text-white`},Lke=[`off`,`on`];function Rke({options:e,onChange:t,defaultExpanded:n=!1,showDualNozzleOptions:r=!1}){let{t:i}=U(),[a,o]=(0,y.useState)(n),s=[{key:`bed_levelling`,label:i(`settings.defaultBedLevelling`),desc:i(`settings.defaultBedLevellingDesc`),tristate:!0},{key:`flow_cali`,label:i(`settings.defaultFlowCali`),desc:i(`settings.defaultFlowCaliDesc`),tristate:!0},{key:`vibration_cali`,label:i(`settings.defaultVibrationCali`),desc:i(`settings.defaultVibrationCaliDesc`)},{key:`layer_inspect`,label:i(`settings.defaultLayerInspect`),desc:i(`settings.defaultLayerInspectDesc`)},{key:`timelapse`,label:i(`settings.defaultTimelapse`),desc:i(`settings.defaultTimelapseDesc`)},{key:`nozzle_offset_cali`,label:i(`settings.defaultNozzleOffsetCali`),desc:i(`settings.defaultNozzleOffsetCaliDesc`),dualNozzleOnly:!0,tristate:!0}].filter(e=>!e.dualNozzleOnly||r),c=(n,r)=>{t({...e,[n]:r})},l=(n,r)=>{t({...e,[n]:r})},u=n=>{t({...e,preheat_override:n,...n===`off`?{preheat_chamber_target_override:null}:{}})},d=n=>{if(n===``){t({...e,preheat_chamber_target_override:null});return}let r=parseInt(n,10);Number.isNaN(r)||t({...e,preheat_chamber_target_override:Math.max(0,Math.min(65,r))})};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(!a),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,G.jsx)(ru,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:i(`queue.bulkEdit.printOptions`)}),a?(0,G.jsx)(gs,{className:`w-4 h-4 ml-auto`}):(0,G.jsx)(ps,{className:`w-4 h-4 ml-auto`})]}),a&&(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[s.map(({key:t,label:n,desc:r,tristate:a})=>a?(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:PU.map(n=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(t,n),className:`px-2.5 py-1 text-xs rounded transition-colors ${e[t]===n?FU[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${n}`)},n))})]},t):(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:Lke.map(n=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(t,n===`on`),className:`px-2.5 py-1 text-xs rounded transition-colors ${(e[t]?`on`:`off`)===n?FU[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${n}`)},n))})]},t)),(0,G.jsxs)(`div`,{className:`pt-2 mt-1 border-t border-bambu-dark-tertiary/60`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(hc,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:i(`settings.preheatTitle`,`Preheat & Heat Soak`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.preheatPerItemDesc`,`Heat the bed and chamber before this print starts. Defaults to the global Settings → Workflow toggle.`)}),(0,G.jsx)(`div`,{className:`flex gap-1.5 mb-2`,children:[`inherit`,`on`,`off`].map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`flex-1 px-2 py-1.5 text-xs rounded transition-colors ${e.preheat_override===t?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.preheatOverride_${t}`,t===`inherit`?`Inherit`:t===`on`?`On`:`Off`)},t))}),e.preheat_override!==`off`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray flex-1`,children:i(`settings.preheatTargetOverride`,`Chamber target override (°C, blank = filament default)`)}),(0,G.jsx)(`input`,{type:`number`,min:0,max:65,step:1,value:e.preheat_chamber_target_override??``,onChange:e=>d(e.target.value),placeholder:`—`,className:`w-16 px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-white text-xs text-right focus:outline-none focus:border-bambu-green`})]}),e.preheat_override!==`off`&&(0,G.jsx)(`p`,{className:`text-[11px] text-bambu-gray mt-1`,children:i(`settings.preheatTargetOverrideHelp`,`0 heats the bed and runs the soak without the chamber. Leave blank and a print with no chamber requirement skips preheat entirely.`)})]})]})]})}function zke({options:e,onChange:t,dateFormat:n=`system`,timeFormat:r=`system`,canControlPrinter:i=!0,showStagger:a=!1,printerCount:o=0,hasGcodeSnippets:s=!1}){let{t:c}=U(),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!0),[h,g]=(0,y.useState)(!0),_=(0,y.useRef)(null),v=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(e.scheduleType!==`scheduled`){v.current=!1;return}if(!v.current){v.current=!0;let i;e.scheduledTime?(i=new Date(e.scheduledTime),isNaN(i.getTime())&&(i=new Date,i.setHours(i.getHours()+1,0,0,0))):(i=new Date,i.setHours(i.getHours()+1,0,0,0),t({...e,scheduledTime:tp(i)})),u(Yf(i,n)),f(Xf(i,r)),m(!0),g(!0)}},[e.scheduleType,e.scheduledTime,n,r,t,e]);let b=n=>{t({...e,scheduleType:n,requireManualStart:n===`queue`?e.requireManualStart:!1})},x=(r,i)=>{let a=$f(r,n),o=ep(i);m(!!a),g(!!o),a&&o&&(a.setHours(o.hours,o.minutes,0,0),a>new Date&&t({...e,scheduledTime:tp(a)}))},S=e=>{u(e),x(e,d)},C=e=>{f(e),x(l,e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`printModal.whenToPrint`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`asap`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`asap`),children:[(0,G.jsx)(js,{className:`w-4 h-4`}),c(`printModal.asap`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`queue`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`queue`),children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),c(`printModal.queue`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`scheduled`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`scheduled`),children:[(0,G.jsx)(as,{className:`w-4 h-4`}),c(`printModal.schedule`)]})]})]}),e.scheduleType===`scheduled`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:c(`printModal.dateTime`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 pr-10 bg-bambu-dark border rounded-lg text-white focus:outline-none ${p?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:l,onChange:e=>S(e.target.value),placeholder:qf(n)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{_.current?.showPicker()},className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,title:c(`printModal.openCalendar`),children:(0,G.jsx)(as,{className:`w-4 h-4`})}),(0,G.jsx)(`input`,{ref:_,type:`datetime-local`,className:`absolute top-0 left-0 w-0 h-0 opacity-0 pointer-events-none`,value:e.scheduledTime,onChange:i=>{let a=i.target.value;if(a){let i=new Date(a);isNaN(i.getTime())||(u(Yf(i,n)),f(Xf(i,r)),m(!0),g(!0),t({...e,scheduledTime:a}))}},tabIndex:-1})]}),(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border rounded-lg text-white focus:outline-none ${h?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:d,onChange:e=>C(e.target.value),placeholder:Jf(r)})})]}),(!p||!h)&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:c(`printModal.invalidDateTime`)})]}),e.scheduleType===`queue`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`requireManualStart`,checked:e.requireManualStart,onChange:n=>t({...e,requireManualStart:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`requireManualStart`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Nc,{className:`w-3.5 h-3.5`}),c(`printModal.requireManualStart`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`requirePrevious`,checked:e.requirePreviousSuccess,onChange:n=>t({...e,requirePreviousSuccess:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`requirePrevious`,className:`text-sm text-bambu-gray`,children:c(`printModal.requirePreviousSuccess`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`autoOffAfter`,checked:e.autoOffAfter,onChange:n=>t({...e,autoOffAfter:n.target.checked}),disabled:!i,className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green disabled:opacity-50`}),(0,G.jsxs)(`label`,{htmlFor:`autoOffAfter`,className:`text-sm flex items-center gap-1 ${i?`text-bambu-gray`:`text-bambu-gray/50`}`,children:[(0,G.jsx)(Ll,{className:`w-3.5 h-3.5`}),c(`printModal.autoOffAfter`)]})]}),s&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`gcodeInjection`,checked:e.gcodeInjection,onChange:n=>t({...e,gcodeInjection:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`gcodeInjection`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Fs,{className:`w-3.5 h-3.5`}),c(`printModal.gcodeInjection`,`Inject auto-print G-code`)]})]}),a&&e.scheduleType!==`queue`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`staggerEnabled`,checked:e.staggerEnabled,onChange:n=>t({...e,staggerEnabled:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`staggerEnabled`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5`}),c(`printModal.staggerPrinterStarts`,`Stagger printer starts`)]})]}),e.staggerEnabled&&(0,G.jsxs)(`div`,{className:`ml-6 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:c(`printModal.staggerGroupSize`,`Group size`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:o,value:e.staggerGroupSize,onChange:n=>t({...e,staggerGroupSize:Math.max(1,parseInt(n.target.value)||1)}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:c(`printModal.staggerInterval`,`Interval (min)`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:60,value:e.staggerIntervalMinutes,onChange:n=>t({...e,staggerIntervalMinutes:Math.max(1,parseInt(n.target.value)||1)}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]})]}),o>0&&(()=>{let t=Math.ceil(o/e.staggerGroupSize),n=o%e.staggerGroupSize,r=(t-1)*e.staggerIntervalMinutes;return(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[c(`printModal.staggerPreview`,`{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min`,{printers:o,groups:t,size:e.staggerGroupSize,interval:e.staggerIntervalMinutes}),n!==0&&e.staggerGroupSize1?` (${c(`printModal.staggerTotal`,`total: {{minutes}} min`,{minutes:r})})`:``]})})()]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.scheduleType===`asap`?c(`printModal.helpAsap`):e.scheduleType===`scheduled`?c(`printModal.helpSchedule`):c(`printModal.helpQueue`)})]})}function IU({candidates:e,onReorder:t,plateByFile:n,onPlateChange:r,readOnly:i=!1,readOnlyNote:a}){let{t:o}=U(),s=Co({queries:i?[]:e.map(e=>({queryKey:[`library-file-plates`,e.id],queryFn:()=>Z.getLibraryFilePlates(e.id),staleTime:6e4}))}),c=(0,y.useMemo)(()=>{let t={};return e.forEach((e,n)=>{let r=s[n]?.data;r?.is_multi_plate&&r.plates.length>1&&(t[e.id]=r.plates.map(e=>({index:e.index,name:e.name})))}),t},[e,s]),l=(n,r)=>{if(r<0||r>=e.length)return;let i=[...e],[a]=i.splice(n,1);i.splice(r,0,a),t(i)};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:o(`printModal.variants.title`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i?a??o(`printModal.variants.help`):o(`printModal.variants.help`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:e.map((t,a)=>{let s=c[t.id],u=t.sliced_for_model;return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary p-2`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray w-5 shrink-0`,children:[a+1,`.`]}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full bg-bambu-green/10 text-bambu-green text-xs shrink-0`,children:u||o(`printModal.variants.unknownModel`)}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate min-w-0 flex-1`,title:t.filename,children:t.filename}),s&&(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-bambu-gray shrink-0`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),(0,G.jsx)(`select`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-1 py-0.5 text-xs text-white`,value:n[t.id]??s[0].index,onChange:e=>r(t.id,Number(e.target.value)),"aria-label":o(`printModal.variants.plateFor`,{filename:t.filename}),children:s.map(e=>(0,G.jsx)(`option`,{value:e.index,children:e.name||o(`printModal.plateN`,{n:e.index})},e.index))})]}),!i&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(a,a-1),disabled:a===0,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":o(`printModal.variants.moveUp`),children:(0,G.jsx)(Ho,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(a,a+1),disabled:a===e.length-1,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":o(`printModal.variants.moveDown`),children:(0,G.jsx)(Io,{className:`w-3.5 h-3.5`})})]})]},t.id)})})]})}function Bke({costCenters:e,selectedCostCenterId:t,onChange:n}){let{t:r}=U();if(e.length===0)return null;let i=e.find(e=>e.id===t);return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`label`,{htmlFor:`printCostCenter`,className:`text-sm text-bambu-gray`,children:r(`printModal.costCenter`,`Cost center`)}),(0,G.jsx)(`select`,{id:`printCostCenter`,value:t??``,onChange:e=>n(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:e.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,e.is_private?` (${r(`printModal.personalDefault`,`Personal`)})`:``]},e.id))}),i?.budget_mode===`none`&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`printModal.unlimitedNoBudget`,`Unlimited – no budget limit is set.`)})]})}var LU={bed_levelling:`auto`,flow_cali:`auto`,vibration_cali:!0,layer_inspect:!1,timelapse:!1,nozzle_offset_cali:`auto`,preheat_override:`inherit`,preheat_chamber_target_override:null},RU={scheduleType:`asap`,scheduledTime:``,requireManualStart:!1,requirePreviousSuccess:!1,autoOffAfter:!1,gcodeInjection:!1,staggerEnabled:!1,staggerGroupSize:2,staggerIntervalMinutes:5};function zU({mode:e,archiveId:t,libraryFileId:n,archiveName:r,queueItem:i,initialSelectedPrinterIds:a,onClose:o,onSuccess:s,projectId:c,cleanupLibraryAfterDispatch:l,variantFiles:u}){let{t:d}=U(),f=co(),{showToast:p}=qd(),{hasPermission:m,user:h}=Nd(),g=!!n&&!t,_=e===`edit-queue-item`,v=e===`create`&&(u?.length??0)>1,b=e===`edit-queue-item`&&(i?.variants?.length??0)>1?i.variants.map(e=>({id:e.library_file_id,filename:e.filename,sliced_for_model:e.target_model})):[],x=b.length>0,[S,C]=(0,y.useState)(u??[]),[w,T]=(0,y.useState)({}),[E,D]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.printer_id?[i.printer_id]:a?.length?a:[]),[O,k]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.plate_id!=null?new Set([i.plate_id]):new Set),A=O.size===1?[...O][0]:null,[j,M]=(0,y.useState)(1),[N,P]=(0,y.useState)({}),[F,I]=(0,y.useState)(()=>e===`edit-queue-item`&&i?{bed_levelling:i.bed_levelling??LU.bed_levelling,flow_cali:i.flow_cali??LU.flow_cali,vibration_cali:i.vibration_cali??LU.vibration_cali,layer_inspect:i.layer_inspect??LU.layer_inspect,timelapse:i.timelapse??LU.timelapse,nozzle_offset_cali:i.nozzle_offset_cali??LU.nozzle_offset_cali,preheat_override:i.preheat_override??LU.preheat_override,preheat_chamber_target_override:i.preheat_chamber_target_override??LU.preheat_chamber_target_override}:LU),[L,R]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i){let e=`queue`;i.scheduled_time&&!Rp(i.scheduled_time)&&(e=`scheduled`);let t=``;return i.scheduled_time&&!Rp(i.scheduled_time)&&(t=tp(rp(i.scheduled_time)??new Date)),{scheduleType:e,scheduledTime:t,requireManualStart:i.manual_start,requirePreviousSuccess:i.require_previous_success,autoOffAfter:i.auto_off_after,gcodeInjection:i.gcode_injection??!1,staggerEnabled:!1,staggerGroupSize:RU.staggerGroupSize,staggerIntervalMinutes:RU.staggerIntervalMinutes}}return RU}),[z,B]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.ams_mapping&&Array.isArray(i.ams_mapping)){let e={};return i.ams_mapping.forEach((t,n)=>{t!==-1&&(e[n+1]=t)}),e}return{}}),[V,ee]=(0,y.useState)({}),[te,ne]=(0,y.useState)(()=>v||e===`edit-queue-item`&&i?.target_model?`model`:`printer`),[re,ie]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.target_model?i.target_model:null),[ae,oe]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.target_location?i.target_location:null),[se,H]=(0,y.useState)(()=>e===`edit-queue-item`?i?.cost_center_id??null:null),[ce,le]=(0,y.useState)(i?.estimated_cost??null),[ue,de]=(0,y.useState)({}),[fe,pe]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.filament_overrides){let e={};for(let t of i.filament_overrides)e[t.slot_id]={type:t.type,color:t.color};return e}return{}}),[me,he]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.filament_overrides){let e={};for(let t of i.filament_overrides)e[t.slot_id]=t.force_color_match===!0;return e}return{}}),[ge]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.printer_id?[i.printer_id]:[]),[_e]=(0,y.useState)(()=>e===`edit-queue-item`&&i?i.plate_id:null),[ve,ye]=(0,y.useState)(!1),[be,xe]=(0,y.useState)({current:0,total:0}),[Se,Ce]=(0,y.useState)(null),[we,Te]=(0,y.useState)(new Set),Ee=E.length,De=E.length>0?E[0]:null,{data:Oe}=K({queryKey:[`settings`],queryFn:Z.getSettings}),ke=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!Oe||ke.current||e===`edit-queue-item`||(ke.current=!0,I({bed_levelling:Oe.default_bed_levelling??LU.bed_levelling,flow_cali:Oe.default_flow_cali??LU.flow_cali,vibration_cali:Oe.default_vibration_cali??LU.vibration_cali,layer_inspect:Oe.default_layer_inspect??LU.layer_inspect,timelapse:Oe.default_timelapse??LU.timelapse,nozzle_offset_cali:Oe.default_nozzle_offset_cali??LU.nozzle_offset_cali,preheat_override:LU.preheat_override,preheat_chamber_target_override:LU.preheat_chamber_target_override}))},[Oe,e]);let Ae=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!Oe||Ae.current||e===`edit-queue-item`||(Ae.current=!0,R(e=>({...e,staggerGroupSize:Oe.stagger_group_size??e.staggerGroupSize,staggerIntervalMinutes:Oe.stagger_interval_minutes??e.staggerIntervalMinutes})))},[Oe,e]);let je=Lf(Oe?.currency||`USD`),Me=Oe?.default_filament_cost??0,Ne=Oe?.billing_enabled===!0,{data:Pe,isLoading:Fe}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:Ie,isLoading:Le}=K({queryKey:[`finance`,`cost-centers`,`mine`],queryFn:Z.getMyCostCenters,enabled:!!h&&Ne}),Re=(0,y.useMemo)(()=>(Ie||[]).filter(e=>e.can_print&&e.is_active),[Ie]),ze=(0,y.useMemo)(()=>Re.find(e=>e.id===se)??null,[Re,se]);(0,y.useEffect)(()=>{Re.length!==0&&(se!=null&&Re.some(e=>e.id===se)||H(Re.find(e=>e.is_private)?.id??Re[0].id))},[Re,se]);let Be=Co({queries:E.map(e=>({queryKey:[`printer-inventory-remain`,e],queryFn:()=>Z.getInventoryRemain(e),staleTime:30*1e3,refetchOnMount:`always`,enabled:E.length>0}))}),Ve=(0,y.useMemo)(()=>{let e=new Map;return E.forEach((t,n)=>{let r=Be[n]?.data?.inventory_remain_g;if(!r)return;let i=new Map;Object.entries(r).forEach(([e,t])=>{let n=Number(e);Number.isNaN(n)||i.set(n,t)}),e.set(t,i)}),e},[E,Be]),He=(0,y.useMemo)(()=>{let e=new Map;return E.forEach((t,n)=>{let r=Be[n]?.data?.slot_materials;if(!r)return;let i=new Map;r.forEach(e=>i.set(e.global_tray_id,e)),e.set(t,i)}),e},[E,Be]),{data:Ue}=K({queryKey:[`archive`,t],queryFn:()=>Z.getArchive(t),enabled:!!t&&!g}),{data:We}=K({queryKey:[`library-file`,n],queryFn:()=>Z.getLibraryFile(n),enabled:g&&!!n}),Ge=Ue?.sliced_for_model||We?.sliced_for_model||null,Ke=(0,y.useMemo)(()=>g?void 0:Oke(Ue?.extra_data,De),[g,Ue?.extra_data,De]),{data:qe,isError:Je}=K({queryKey:[`archive-plates`,t],queryFn:()=>Z.getArchivePlates(t),enabled:!!t&&!g,retry:!1}),{data:Ye}=K({queryKey:[`library-file-plates`,n],queryFn:()=>Z.getLibraryFilePlates(n),enabled:g&&!!n}),Xe=g?Ye:qe,{data:Ze,isError:Qe}=K({queryKey:[`archive-filaments`,t,A],queryFn:()=>Z.getArchiveFilamentRequirements(t,A??void 0),enabled:!!t&&!g&&(A!==null||!Xe?.is_multi_plate),retry:!1}),{data:$e}=K({queryKey:[`library-file-filaments`,n,A],queryFn:()=>Z.getLibraryFileFilamentRequirements(n,A??void 0),enabled:g&&!!n&&(A!==null||!Xe?.is_multi_plate)}),et=!g&&(Je||Qe),tt=g?$e:Ze,{data:nt}=K({queryKey:[`available-filaments`,re,ae],queryFn:()=>Z.getAvailableFilaments(re,ae??void 0),enabled:te===`model`&&!!re}),rt=(0,y.useMemo)(()=>Array.from(new Set(S.map(e=>e.sliced_for_model).filter(e=>!!e))),[S]),it=Co({queries:v?rt.map(e=>({queryKey:[`available-filaments`,e,ae],queryFn:()=>Z.getAvailableFilaments(e,ae??void 0)})):[]}),at=(0,y.useMemo)(()=>{let e=new Set,t=[];for(let n of it)for(let r of n.data??[]){let n=`${r.type}|${r.color}|${r.tray_info_idx}`;e.has(n)||(e.add(n),t.push(r))}return t},[it]),ot=v?at:nt,{data:st,isLoading:ct}=K({queryKey:[`printer-status`,De],queryFn:()=>Z.getPrinterStatus(De),enabled:!!De}),lt=Hp(Oe?.prefer_lowest_filament,st?.ams_filament_backup),ut=async()=>{if(L.scheduleType!==`asap`||te!==`printer`||E.length===0)return!1;try{return(await Promise.all(E.map(e=>f.fetchQuery({queryKey:[`printer-status`,e],queryFn:()=>Z.getPrinterStatus(e),staleTime:0})))).some(e=>!wm(e))}catch{return!0}},{amsMapping:dt}=CU(tt,st,z,lt,De?Ve.get(De):void 0),ft=(0,y.useMemo)(()=>[...O].sort((e,t)=>e-t),[O]),pt=O.size>1,mt=Co({queries:(pt?ft:[]).map(e=>({queryKey:g?[`library-file-filaments`,n,e]:[`archive-filaments`,t,e],queryFn:()=>g?Z.getLibraryFileFilamentRequirements(n,e):Z.getArchiveFilamentRequirements(t,e),enabled:g?!!n:!!t,retry:!1}))}),ht=mt.some(e=>e.isPending),gt=mt.some(e=>e.isError),_t=(0,y.useMemo)(()=>{let e=new Map;return ft.forEach((t,n)=>{let r=mt[n]?.data;r&&e.set(t,r)}),e},[ft,mt.map(e=>e.dataUpdatedAt).join(`|`)]),[vt,yt]=(0,y.useState)({}),[bt,xt]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.nozzle_rack_choice){let e={};for(let[t,n]of Object.entries(i.nozzle_rack_choice)){let r=Number(t);Number.isInteger(r)&&Number.isInteger(n)&&(e[r]=n)}return e}return{}}),[St,Ct]=(0,y.useState)({}),wt=(0,y.useMemo)(()=>{let e=new Map;if(!pt||!De||E.length!==1)return e;let t=vU(st),n=st?.fila_switch?.installed===!0,r=Ve.get(De);for(let i of ft){let a=_t.get(i);if(!a)continue;let o=xU(a,t,vt[i]??{},lt,r,n);e.set(i,SU(o))}return e},[pt,De,st,Ve,ft,_t,vt,lt,E.length]),Tt=Eke(E,Pe,tt,z,V,ee,Oe?.prefer_lowest_filament,Ve);(0,y.useEffect)(()=>{Xe?.plates&&Xe.plates.length>=1&&O.size===0&&k(new Set([Xe.plates[0].index]))},[Xe,O.size]),(0,y.useEffect)(()=>{if(e===`edit-queue-item`)return;let t=Pe?.filter(e=>e.is_active)||[];t.length===1&&E.length===0&&D([t[0].id])},[e,Pe,E.length]),(0,y.useEffect)(()=>{e===`edit-queue-item`?(JSON.stringify(E.sort())!==JSON.stringify(ge.sort())||A!==_e)&&(B({}),yt({}),ee({}),Te(new Set)):(B({}),yt({}),ee({}),Te(new Set))},[e,E,A,ge,_e]);let[Et,Dt]=(0,y.useState)(re),[Ot,kt]=(0,y.useState)(A);(0,y.useEffect)(()=>{(re!==Et||A!==Ot)&&(Dt(re),kt(A),(e!==`edit-queue-item`||Et!==null)&&(pe({}),he({})))},[re,A,Et,Ot,e]),(0,y.useEffect)(()=>{te!==`model`||re||!Ge||Pe?.some(e=>e.is_active&&e.model===Ge)&&ie(Ge)},[te,re,Ge,Pe]),(0,y.useEffect)(()=>{if(!Oe?.per_printer_mapping_expanded||E.length<=1)return;let e=E.filter(e=>{if(we.has(e))return!1;let t=Tt.printerResults.find(t=>t.printerId===e);return t&&t.status&&!t.isLoading});e.length>0&&(Te(t=>{let n=new Set(t);return e.forEach(e=>n.add(e)),n}),e.forEach(e=>{Tt.autoConfigurePrinter(e)}))},[Oe?.per_printer_mapping_expanded,E,we,Tt]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!ve&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o,ve]);let At=Xe?.is_multi_plate??!1,jt=Xe?.plates??[],Mt=(0,y.useMemo)(()=>{if(!Se||Se.length===0)return``;let e=Se.map(e=>e.pooled?d(`printModal.insufficientFilamentLinePooled`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}):d(`printModal.insufficientFilamentLine`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}));return[d(`printModal.insufficientFilamentMessage`),...e].join(` -`)},[Se,d]),Nt=q({mutationFn:e=>Z.addToQueue(e)}),Pt=q({mutationFn:e=>Z.updateQueueItem(i.id,e),onSuccess:()=>{f.invalidateQueries({queryKey:[`queue`]}),p(`Queue item updated`),s?.(),o()},onError:e=>{p(e.message||`Failed to update queue item`,`error`)}}),Ft=(e,t)=>{if(pt)return t===null||E.length!==1?void 0:wt.get(t);if(E.length>1){let t=V[e];if(t&&!t.useDefault)return Tt.getFinalMapping(e)}return dt},It=async(i,a)=>{if(i?.preventDefault(),Ne&&ze==null){p(d(`printModal.noPrintableCostCenters`),`error`);return}if(!a?.skipFilamentCheck&&!Oe?.disable_filament_warnings&&!_&&te===`printer`){let e=[],t=pt?ft.map(e=>({plateId:e,reqs:_t.get(e)?.filaments??[]})):[{plateId:A,reqs:tt?.filaments??[]}];if(t.some(e=>e.reqs.length>0)&&He.size>0)for(let n of E){let r=E.length>1?Tt.printerResults.find(e=>e.printerId===n)?.status:st,i=vU(r),a=new Map(i.map(e=>[e.globalTrayId,e.label])),o=He.get(n),s=Pe?.find(e=>e.id===n)?.name??`Printer ${n}`;if(!o||o.size===0)continue;let c=new Map;for(let e of t){let t=Ft(n,e.plateId);t&&e.reqs.forEach(e=>{if(!e.slot_id||e.slot_id<=0)return;let n=t[e.slot_id-1];!Number.isFinite(n)||n<0||c.set(n,(c.get(n)??0)+e.used_grams)})}let l=r?.ams_filament_backup===!0,u=e=>`${e.material_key}#${e.extruder}`,d=new Map,f=new Map,p=new Map;if(l){o.forEach(e=>{let t=u(e);d.set(t,(d.get(t)??0)+e.remaining_g),f.set(t,(f.get(t)??0)+1)});for(let[e,t]of c){let n=o.get(e);if(!n)continue;let r=u(n);p.set(r,(p.get(r)??0)+t)}}for(let[t,n]of c){let r=o.get(t);if(!r)continue;let i=a.get(t)??`Tray ${t}`;if(l){let t=u(r),n=d.get(t)??0,a=p.get(t)??0;if(n>=a)continue;e.push({printerName:s,slotLabel:i,requiredGrams:a,remainingGrams:n,pooled:(f.get(t)??1)>1});continue}r.remaining_g>=n||e.push({printerName:s,slotLabel:i,requiredGrams:n,remainingGrams:r.remaining_g})}}if(e.length>0){Ce(e);return}}if(te===`printer`&&E.length===0){p(`Please select at least one printer`,`error`);return}if(!v&&te===`model`&&!re){p(`Please select a target printer model`,`error`);return}if(!v&&te===`model`&&!Sm(Ge,re)){p(`File was sliced for ${Ge} and cannot be dispatched to ${re} printers`,`error`);return}ye(!0);let u=O.size>1?jt.filter(e=>O.has(e.index)):[null],m=te===`model`?u.length:E.length*u.length;xe({current:0,total:m});let h={success:0,failed:0,errors:[]},y=e=>{let t=[];if(e?.filaments)for(let n of e.filaments){let e=fe[n.slot_id],r=me[n.slot_id]??!1,i=e?.type??n.type,a=e?.color??n.color;(e||r)&&t.push({slot_id:n.slot_id,type:i,color:a,color_name:Df(a),force_color_match:r})}else for(let[e,{type:n,color:r}]of Object.entries(fe)){let i=parseInt(e,10),a=me[i]??!1;t.push({slot_id:i,type:n,color:r,color_name:Df(r),force_color_match:a})}return t.length>0?t:void 0},b=y(tt),x=e=>pt&&e!==null?y(_t.get(e)):b;if(v){try{await Z.addToQueue({variants:S.map(e=>({library_file_id:e.id,plate_id:w[e.id]??null,filament_overrides:b})),target_location:ae,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():void 0,quantity:j,...F,project_id:c??void 0}),p(d(`printModal.variants.queued`,{count:S.length}),`success`),f.invalidateQueries({queryKey:[`queue`]}),s?.(),o()}catch(e){p(e instanceof Error?e.message:String(e),`error`)}finally{ye(!1)}return}let C=u.map((e,t)=>{let n=e?e.index:A;return{plate_id:n,plate_name:e&&e.name||null,quantity_target:Vt(n),sort_order:t}}),T=C.reduce((e,t)=>e+t.quantity_target,0),D=e===`create`&&(u.length>1||T>1)&&(te===`model`||E.length===1),k=null;if(D)try{let e=(r||``).replace(/\.gcode\.3mf$/i,``).replace(/\.3mf$/i,``),i=u.length>1?`${e||`Batch`} · ${u.length} plates`:`${e||`Batch`} ×${T}`;k=(await Z.createBatch({name:i,archive_id:g?void 0:t,library_file_id:g?n:void 0,plates:C})).id}catch{k=null}let M=new Map,N=(e,t,n=1)=>{if(L.scheduleType!==`asap`)return;let r=t===null?`unassigned`:`printer:${t}`,i=(M.get(r)??0)+1;e.insert_at_top=!0,e.insert_position=i,M.set(r,i+n-1)},P=e=>{let t=e!=null&&pt?St[e]:bt;return t&&Object.keys(t).length>0?t:void 0},I=(e,r)=>{let i=r===void 0?A:r,o=i!=null&&pt?ue[i]??null:ce;return{printer_id:te===`printer`?e:null,target_model:te===`model`?re:null,target_location:te===`model`?ae:null,filament_overrides:te===`model`?x(i):void 0,archive_id:g?void 0:t,library_file_id:g?n:void 0,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,skip_filament_check:a?.skipFilamentCheck===!0?!0:void 0,ams_mapping:e?Ft(e,i):void 0,nozzle_rack_choice:e?P(i):void 0,plate_id:i,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():void 0,...F,project_id:c??void 0,cost_center_id:Ne?se:void 0,estimated_cost:Ne&&se!=null?o:void 0,batch_id:k??void 0,cleanup_library_after_dispatch:l}};if(te===`model`){let t=0;for(let n of u){t++,xe({current:t,total:m});let r=n?n.index:A;try{if(e===`edit-queue-item`&&!n){let e={printer_id:null,target_model:re,target_location:ae,filament_overrides:b||null,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,ams_mapping:void 0,plate_id:r,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():null,...F,cost_center_id:Ne?se:void 0,estimated_cost:Ne&&se!=null?ce:void 0};await Pt.mutateAsync(e)}else{let e=I(null,r),t=Vt(r);t>1&&(e.quantity=t),N(e,null,t),await Nt.mutateAsync(e)}h.success++}catch(e){h.failed++;let t=n?n.name||`Plate ${n.index}`:``;h.errors.push(t?`${t}: ${e.message}`:e.message)}}}else{let e=L.staggerEnabled&&!_&&E.length>1,t=e?L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).getTime():Date.now():0,n=0;for(let r of u){let i=r?r.index:A;for(let a=0;a1&&(n.quantity=r),N(n,o,r),e){let e=Math.floor(a/L.staggerGroupSize);if(e>0){let r=e*L.staggerIntervalMinutes*6e4;n.scheduled_time=new Date(t+r).toISOString()}}await Nt.mutateAsync(n)}h.success++}catch(e){h.failed++;let t=Pe?.find(e=>e.id===o)?.name||`Printer ${o}`,n=r?r.name||`Plate ${r.index}`:``,i=n?`${t} (${n})`:t;h.errors.push(`${i}: ${e.message}`)}}}}ye(!1),h.failed===0?(_?e===`edit-queue-item`&&p(`Queue item updated`):h.success===1?p(await ut()?d(`queue.printQueuedWillStartWhenIdle`):te===`model`?`Queued for any ${re}`:d(`queue.printQueued`)):p(await ut()?d(`queue.printQueuedWillStartWhenIdle`):d(`queue.itemsQueued`,{count:h.success})),f.invalidateQueries({queryKey:[`queue`]}),s?.(),o()):h.success===0?p(`Failed: ${h.errors[0]}`,`error`):(p(`${h.success} succeeded, ${h.failed} failed`,`error`),f.invalidateQueries({queryKey:[`queue`]}))},Lt=ve||Pt.isPending,Rt=(0,y.useMemo)(()=>!(Lt||Ne&&(Le||ze==null)||te===`printer`&&E.length===0||!v&&te===`model`&&!re||!v&&te===`model`&&!Sm(Ge,re)||At&&O.size===0||ht||gt||te===`printer`&&E.length===1&&ct),[E.length,te,re,Ge,At,O.size,Lt,ht,gt,ct,v,Ne,Le,ze]),zt=te===`printer`&&E.length>1?1:j,Bt=e===`create`&&At&&jt.length>1,Vt=e=>!Bt||e==null?zt:te===`printer`&&E.length>1?1:Math.max(1,N[e]??1);(0,y.useEffect)(()=>{e===`create`&&L.gcodeInjection&&!Oe?.gcode_snippets&&R(e=>({...e,gcodeInjection:!1}))},[e,Oe?.gcode_snippets,L.gcodeInjection]);let Ht=_?{title:d(`queue.editQueueItem`),icon:Al,submitText:d(`common.save`),submitIcon:Al,loadingText:be.total>1?d(`queue.savingProgress`,{current:be.current,total:be.total}):d(`common.saving`)}:{title:d(`common.print`),icon:Rl,submitText:d(`common.print`),submitIcon:Rl,loadingText:be.total>1?d(`queue.addingProgress`,{current:be.current,total:be.total}):d(`queue.adding`)},Ut=Ht.icon,Wt=Ht.submitIcon,Gt=De&&O.size<=1&&(g||(At?A!==null:!0));(0,y.useEffect)(()=>{(!Gt||et||E.length!==1)&&le(null)},[et,E.length,Gt]);let Kt=!!De&&pt&&E.length===1,qt=te===`model`&&(v||!!re)&&!!ot&&ot.length>0,Jt=(0,y.useMemo)(()=>new Set([`H2D`,`H2DPRO`,`H2C`,`X2D`]),[]),Yt=(0,y.useMemo)(()=>te===`model`?re?Jt.has(re.toUpperCase().replace(/[\s-]/g,``)):!1:!Pe||E.length===0?!1:E.some(e=>Pe.find(t=>t.id===e)?.nozzle_count===2),[te,re,Pe,E,Jt]);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:ve?void 0:o,children:[(0,G.jsx)(zd,{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ut,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:Ht.title})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,disabled:ve,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:It,className:`p-4 space-y-4`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`block text-bambu-gray mb-1`,children:`Print Job`}),(0,G.jsx)(`span`,{className:`text-white font-medium truncate block`,children:r})]}),(()=>{if(!jt.length)return null;let e=EU((A==null?jt[0]:jt.find(e=>e.index===A))?.bed_type);return e?(0,G.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray -mt-2`,title:e.label,children:[(0,G.jsx)(`img`,{src:e.icon,alt:``,className:`w-4 h-4 object-contain flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.label})]}):null})(),(0,G.jsx)(Nke,{plates:jt,isMultiPlate:At,selectedPlates:O,onToggle:e=>{k(t=>{let n=new Set(t);return _?(n.clear(),n.add(e)):n.has(e)?n.delete(e):n.add(e),n})},onSelectAll:_?void 0:()=>k(new Set(jt.map(e=>e.index))),onDeselectAll:_?void 0:()=>k(new Set),multiSelect:!_,quantities:Bt?N:void 0,onQuantityChange:Bt?(e,t)=>P(n=>({...n,[e]:t})):void 0}),v&&(0,G.jsx)(IU,{candidates:S,onReorder:C,plateByFile:w,onPlateChange:(e,t)=>T(n=>({...n,[e]:t}))}),x&&(0,G.jsx)(IU,{candidates:b,readOnly:!0,readOnlyNote:d(`printModal.variants.editNote`),onReorder:()=>{},plateByFile:{},onPlateChange:()=>{}}),!v&&!x&&!a?.length&&(0,G.jsx)(Ike,{printers:Pe||[],selectedPrinterIds:E,onMultiSelect:D,isLoading:Fe,allowMultiple:!0,showInactive:e===`edit-queue-item`,disableBusy:!1,printerMappingResults:Tt.printerResults,filamentReqs:pt?void 0:tt,onAutoConfigurePrinter:Tt.autoConfigurePrinter,onUpdatePrinterConfig:Tt.updatePrinterConfig,assignmentMode:te,onAssignmentModeChange:ne,targetModel:re,onTargetModelChange:ie,targetLocation:ae,onTargetLocationChange:oe,slicedForModel:Ge}),qt&&!pt&&tt&&(0,G.jsx)(NU,{filamentReqs:tt,availableFilaments:ot,overrides:fe,onChange:pe,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t}))}),qt&&pt&&ft.map((e,t)=>{let n=jt.find(t=>t.index===e),r=_t.get(e);return r?(0,G.jsx)(NU,{plateLabel:n?.name||d(`printModal.plateN`,`Plate {{n}}`,{n:e}),showHint:t===0,filamentReqs:r,availableFilaments:nt,overrides:fe,onChange:pe,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t}))},e):null}),Ge&&te===`printer`&&E.length===1&&(()=>{let e=Pe?.find(e=>e.id===E[0]);return e&&e.model&&Ge!==e.model?(0,G.jsxs)(`div`,{className:`p-3 mb-2 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,Ge,`, but printing on `,e.model]})]}):null})(),et&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:`Archive data unavailable. The source file may have been deleted. Filament mapping is disabled.`})]}),gt&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:d(`printModal.plateFilamentsUnreadable`,`The filaments of a selected plate could not be read, so it can't be mapped. Deselect it to queue the others.`)})]}),Gt&&!et&&E.length===1&&(0,G.jsx)(MU,{printerId:De,filamentReqs:tt,manualMappings:z,onManualMappingChange:B,onEstimatedCostChange:le,budgetAvailable:Ne?ze?.budget_available??null:null,quantity:zt,defaultExpanded:!!a?.length||(Oe?.per_printer_mapping_expanded??!1),currencySymbol:je,defaultCostPerKg:Me,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t})),archiveAmsMapping:Ke,nozzleRackChoice:bt,onNozzleRackChoiceChange:xt}),Kt&&!et&&ft.map(e=>{let t=jt.find(t=>t.index===e),n=_t.get(e);return n?(0,G.jsx)(MU,{printerId:De,plateLabel:t?.name||d(`printModal.plateN`,`Plate {{n}}`,{n:e}),filamentReqs:n,manualMappings:vt[e]??{},onManualMappingChange:t=>yt(n=>({...n,[e]:t})),onEstimatedCostChange:t=>de(n=>({...n,[e]:t})),budgetAvailable:Ne?ze?.budget_available??null:null,quantity:Vt(e),defaultExpanded:!1,currencySymbol:je,defaultCostPerKg:Me,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t})),archiveAmsMapping:Ke,nozzleRackChoice:St[e]??{},onNozzleRackChoiceChange:t=>Ct(n=>({...n,[e]:t}))},e):null}),(e===`create`||Ee>0||te===`model`&&re)&&(0,G.jsx)(Rke,{options:F,onChange:I,defaultExpanded:!!a?.length,showDualNozzleOptions:Yt}),Ne&&Re.length>0&&(0,G.jsx)(Bke,{costCenters:Re,selectedCostCenterId:se,onChange:H}),Ne&&!Le&&Re.length===0&&(0,G.jsxs)(`div`,{role:`alert`,className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-500/50 rounded-lg text-sm text-yellow-800 dark:text-yellow-300 flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),d(`printModal.noPrintableCostCenters`)]}),e!==`edit-queue-item`&&!Bt&&(te===`model`||E.length<=1)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`label`,{htmlFor:`printQuantity`,className:`text-sm text-bambu-gray whitespace-nowrap`,children:d(`queue.quantity`,`Quantity`)}),(0,G.jsx)(`input`,{id:`printQuantity`,type:`number`,min:1,max:999,value:j,onChange:e=>M(Math.max(1,Math.min(999,parseInt(e.target.value)||1))),className:`w-20 px-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`}),j>1&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:d(`queue.quantityHint`,`Creates {{count}} queue items`,{count:j})})]}),(0,G.jsx)(zke,{options:L,onChange:R,dateFormat:Oe?.date_format||`system`,timeFormat:Oe?.time_format||`system`,canControlPrinter:m(`printers:control`),showStagger:!_&&te===`printer`&&E.length>1,printerCount:E.length,hasGcodeSnippets:!!Oe?.gcode_snippets}),Pt.isError&&(0,G.jsx)(`div`,{className:`mb-4 p-3 bg-red-100 dark:bg-red-500/20 border border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:Pt.error?.message||`Failed to complete operation`}),te===`printer`&&E.length===1&&ct&&(0,G.jsxs)(`div`,{className:`mb-4 p-3 bg-blue-100 dark:bg-blue-500/20 border border-blue-500/50 rounded-lg text-sm text-blue-700 dark:text-blue-400 flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),d(`printModal.waitingForAmsStatus`,{printer:Pe?.find(e=>e.id===De)?.name??``})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:o,className:`flex-1`,disabled:ve,children:`Cancel`}),(0,G.jsx)(Q,{type:`submit`,disabled:!Rt,className:`flex-1`,children:Lt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),Ht.loadingText]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wt,{className:`w-4 h-4`}),Ht.submitText]})})]})]})]})}),Se&&Se.length>0&&(0,G.jsx)(of,{title:d(`printModal.insufficientFilamentTitle`),message:Mt,confirmText:d(`printModal.printAnyway`),cancelText:d(`common.cancel`),variant:`warning`,onConfirm:()=>{Ce(null),It(void 0,{skipFilamentCheck:!0})},onCancel:()=>Ce(null)})]})}function BU({value:e,titleKey:t=`printers.copyToClipboard`,copiedTitleKey:n=`printers.copied`,className:r=`ml-2 p-1 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,iconClassName:i=`w-3.5 h-3.5`}){let{t:a}=U(),[o,s]=(0,y.useState)(!1);return(0,G.jsx)(`button`,{onClick:async()=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{if(t.select(),!document.execCommand(`copy`))return}finally{document.body.removeChild(t)}}s(!0),setTimeout(()=>s(!1),2e3)}catch{}},className:r,title:a(o?n:t),children:o?(0,G.jsx)(fs,{className:`${i} text-bambu-green`}):(0,G.jsx)(Vs,{className:i})})}function Vke({printer:e,status:t,totalPrintHours:n,onClose:r}){let{t:i}=U();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let a=[];if(a.push({label:i(`printers.model`),value:e.model??`—`}),a.push({label:i(`common.status`),value:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-xs font-medium ${t?.connected?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full ${t?.connected?`bg-bambu-green`:`bg-red-400`}`}),t?.connected?i(`printers.status.available`):i(`printers.status.offline`)]})}),t?.state&&a.push({label:i(`printers.state`),value:i({IDLE:`printers.status.idle`,RUNNING:`printers.status.printing`,PAUSE:`printers.status.paused`,FINISH:`printers.status.finished`,FAILED:`printers.status.error`}[t.state]??`printers.status.unknown`)}),a.push({label:i(`printers.ipAddress`),value:(0,G.jsxs)(`span`,{className:`flex items-center`,children:[(0,G.jsx)(`span`,{className:`font-mono`,children:e.ip_address}),(0,G.jsx)(BU,{value:e.ip_address})]})}),a.push({label:i(`printers.serialNumber`),value:(0,G.jsxs)(`span`,{className:`flex items-center`,children:[(0,G.jsx)(`span`,{className:`font-mono truncate`,children:e.serial_number}),(0,G.jsx)(BU,{value:e.serial_number})]})}),t?.wired_network)a.push({label:i(`printers.networkLabel`,`Network`),value:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ts,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-bambu-green`,children:i(`printers.connection.ethernet`,`Ethernet`)})]})});else if(t?.wifi_signal!=null){let e=Cm(t.wifi_signal);a.push({label:i(`printers.wifiSignalLabel`),value:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(lu,{className:`w-4 h-4 ${e.color}`}),(0,G.jsx)(`span`,{className:e.color,children:i(e.labelKey)}),(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[`(`,t.wifi_signal,` dBm)`]})]})})}return a.push({label:i(`printers.firmware`),value:t?.firmware_version??`—`}),t?.developer_mode!=null&&a.push({label:i(`printers.developerMode`),value:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${t.developer_mode?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:t.developer_mode?i(`printers.enabled`):i(`printers.disabled`)})}),a.push({label:i(`printers.nozzleCount`),value:e.nozzle_count}),a.push({label:i(`printers.autoArchive`),value:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${e.auto_archive?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:e.auto_archive?i(`printers.enabled`):i(`printers.disabled`)})}),n!=null&&n>0&&a.push({label:i(`printers.totalPrintHours`),value:`${Math.round(n)}h`}),e.location&&a.push({label:i(`printers.sort.location`),value:e.location}),a.push({label:i(`printers.addedOn`),value:ap(e.created_at)}),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,role:`dialog`,"aria-modal":`true`,onClick:r,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e.name}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-bambu-dark rounded flex-shrink-0`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsx)(`div`,{className:`flex justify-center mb-4`,children:(0,G.jsx)(`img`,{src:xm(e.model),alt:e.model??e.name,className:`h-24 object-contain`})}),(0,G.jsx)(`div`,{className:`space-y-0`,children:a.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-2.5 border-b border-bambu-dark-tertiary last:border-0`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray whitespace-nowrap`,children:e.label}),(0,G.jsx)(`span`,{className:`text-sm text-white text-right`,children:e.value})]},t))})]})})})}var VU=0,HU=1;function Hke({slotLabel:e,amsId:t,slotId:n,extruderSlots:r,isLoading:i=!1,onConfirm:a,onCancel:o}){let{t:s}=U(),[c,l]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!i&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o,i]);let u=e=>{let i=r[String(e)];return i?.ams_id===t&&i?.slot_id===n},d=[{extruderId:HU,label:s(`printers.ams.feedLeft`),taken:u(HU)},{extruderId:VU,label:s(`printers.ams.feedRight`),taken:u(VU)}],f=d.some(e=>e.extruderId===c&&e.taken);return(0,y.useEffect)(()=>{f&&l(null)},[f]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50`,onClick:i?void 0:o,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:s(`printers.ams.feedTitle`,{slot:e})}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:s(`printers.ams.feedPrompt`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-3 mt-4`,children:d.map(({extruderId:e,label:t,taken:n})=>{let r=c===e;return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:n||i,title:n?s(`printers.ams.feedAlreadyLoaded`):void 0,className:`p-3 rounded-lg border text-sm transition-colors ${n?`border-transparent bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:r?`border-bambu-green/50 bg-bambu-green/10 text-white`:`border-transparent bg-bambu-dark text-white hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:t}),n&&(0,G.jsx)(`div`,{className:`text-xs mt-1`,children:s(`printers.ams.feedAlreadyLoaded`)})]},e)})}),(0,G.jsxs)(`div`,{className:`flex gap-3 mt-6`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:o,className:`flex-1`,disabled:i,children:s(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>c!==null&&a(c),className:`flex-1`,disabled:c===null||i,children:i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),s(`common.loading`)]}):s(`common.confirm`)})]})]})})})}function Uke(e){if(!e||e.length<6)return!1;let t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);return(.299*t+.587*n+.114*r)/255>.6}function UU({trayColor:e,trayType:t,isEmpty:n,emptyKind:r,slotNumber:i}){let a=r===`reset`?`#3d3d3d`:`#666`;return(0,G.jsx)(`div`,{className:`w-3.5 h-3.5 rounded-full mx-auto mb-0.5 border-2 flex items-center justify-center`,style:{backgroundColor:e?`#${e}`:t?`#333`:`transparent`,borderColor:n?a:`rgba(255,255,255,0.1)`,borderStyle:n?`dashed`:`solid`},children:(0,G.jsx)(`span`,{className:`text-[6px] font-bold leading-none select-none`,style:{color:e&&Uke(e)?`#000`:`#fff`},children:i})})}var Wke=240,Gke=440,Kke=[30,60,120,240,480,720,1440],WU=[`scheduled-dryings`],qke={ams_power_required:`printers.drying.powerRequired`,ams_retract_filament:`printers.drying.retractFilament`,ams_blocked:`printers.drying.cannotDryNow`,ams_not_found:`printers.drying.waitingAmsNotFound`,printer_offline:`printers.drying.waitingOffline`,printer_busy:`printers.drying.waitingPrinterBusy`,already_drying:`printers.drying.waitingAlreadyDrying`,interrupted:`printers.drying.waitingInterrupted`};function Jke(e){return e?qke[e]:void 0}function Yke(e){let t=(e??[]).map(e=>Number(e));return t.some(e=>e===1||e===8)?`printers.drying.powerRequired`:t.includes(3)?`printers.drying.retractFilament`:`printers.drying.cannotDryNow`}var GU=[{value:`all`,labelKey:`printers.filter.allStatuses`},{value:`printing`,labelKey:`printers.status.printing`},{value:`paused`,labelKey:`printers.status.paused`},{value:`idle`,labelKey:`printers.status.idle`},{value:`finished`,labelKey:`printers.status.finished`},{value:`error`,labelKey:`printers.status.error`},{value:`offline`,labelKey:`printers.status.offline`}];function Xke(e){return GU.some(t=>t.value===e)}function KU(e){return(e??.02).toFixed(3)}function qU({k:e,reserve:t}){let{t:n}=U(),r=`text-[length:var(--pc-t8,8px)] text-bambu-gray tabular-nums leading-none truncate`;return e?(0,G.jsxs)(`div`,{className:r,title:n(`ams.kFactor`),children:[n(`ams.kFactorShort`),` `,KU(e)]}):t?(0,G.jsx)(`div`,{className:r,"aria-hidden":`true`,children:`\xA0`}):null}function JU({side:e}){let{mode:t}=Id(),{t:n}=U();return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-[length:var(--pc-t10,10px)] font-bold rounded`,style:{backgroundColor:t===`dark`?`#1a4d2e`:`#e7f5e9`,color:`#00ae42`},title:n(e===`L`?`common.left`:`common.right`),children:e})}function YU({inlet:e,title:t}){let{mode:n}=Id();return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-[length:var(--pc-t10,10px)] font-bold rounded`,style:{backgroundColor:n===`dark`?`#1e3a5f`:`#e3f0fb`,color:`#3b82f6`},title:t,children:gp[e]})}function XU(e,t,n,r){let i=n[String(e)];if(i)return{kind:`inlet`,inlet:i};let a=t[String(e)],o=a===void 0?r?void 0:e>=128?e-128:e:a;return o===1?{kind:`nozzle`,side:`L`}:o===0?{kind:`nozzle`,side:`R`}:null}function ZU(e,t){if(!e)return``;if(e.includes(`hardened`))return t(`printers.nozzleHardenedSteel`);if(e.includes(`stainless`))return t(`printers.nozzleStainlessSteel`);if(e.includes(`tungsten`))return t(`printers.nozzleTungstenCarbide`);if(e.length>=4){let n=e.slice(2,4);if(n===`00`)return t(`printers.nozzleStainlessSteel`);if(n===`01`)return t(`printers.nozzleHardenedSteel`);if(n===`05`)return t(`printers.nozzleTungstenCarbide`)}return e===`00`?t(`printers.nozzleStainlessSteel`):e===`01`?t(`printers.nozzleHardenedSteel`):e===`05`?t(`printers.nozzleTungstenCarbide`):e.startsWith(`H`)?t(`printers.nozzleHardenedSteel`):e}function QU(e,t){return e?e.startsWith(`HH`)?t(`printers.nozzleHighFlow`):e.startsWith(`HS`)?t(`printers.nozzleStandardFlow`):``:``}function $U({slot:e,index:t,activeStatus:n,filamentName:r,children:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(`top`),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null),p=!e.nozzle_diameter&&!e.nozzle_type,m=e.stat===1;(0,y.useEffect)(()=>{if(o&&u.current&&d.current){let e=u.current.getBoundingClientRect(),t=d.current.offsetHeight,n=e.top-56,r=window.innerHeight-e.bottom;nn?l(`bottom`):l(`top`)}},[o]);let h=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!0),80)},g=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!1),100)};(0,y.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]);let _=Nf(e.filament_color),v=ZU(e.nozzle_type,a),b=QU(e.nozzle_type,a);return(0,G.jsxs)(`div`,{ref:u,className:`relative`,onMouseEnter:h,onMouseLeave:g,children:[i,o&&(0,G.jsxs)(`div`,{ref:d,className:` + `})]}),document.body)]})}function CH({isOpen:e,onClose:t,tagUid:n,trayUuid:r,printerId:i,amsId:a,trayId:o}){let{t:s}=U(),c=co(),{showToast:l}=qd(),[u,d]=(0,y.useState)(``),f=r||n,{data:p,isLoading:m}=K({queryKey:[`unlinked-spools`],queryFn:Z.getUnlinkedSpools,enabled:e}),h=(0,y.useMemo)(()=>p?p.filter(e=>{if(!u)return!0;let t=u.toLowerCase();return e.filament_name&&e.filament_name.toLowerCase().includes(t)||e.filament_vendor&&e.filament_vendor.toLowerCase().includes(t)||e.filament_material&&e.filament_material.toLowerCase().includes(t)||String(e.id).includes(t)}):[],[p,u]),g=q({mutationFn:e=>Z.linkSpool(e,{spoolTag:f,printerId:i,amsId:a,trayId:o}),onSuccess:()=>{c.invalidateQueries({queryKey:[`unlinked-spools`]}),c.invalidateQueries({queryKey:[`linked-spools`]}),c.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),l(s(`spoolman.linkSuccess`),`success`),t()},onError:e=>{l(e.message||s(`spoolman.linkFailed`),`error`)}});return e?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl shadow-xl w-full max-w-md mx-4 max-h-[80vh] flex flex-col border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-white/10`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Zc,{className:`w-5 h-5 text-bambu-green`}),s(`spoolman.selectSpool`)]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[`AMS `,a,` T`,o,` · Printer #`,i]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-white/10`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:s(`inventory.searchSpools`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark rounded-lg border border-white/10 text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),(r||n)&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-2 font-mono truncate`,title:r||n,children:[`Tag: `,r||n]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-2 min-h-0`,children:m?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):h.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8 text-sm`,children:s(`inventory.noSpoolsMatch`)}):h.map(e=>(0,G.jsxs)(`button`,{onClick:()=>g.mutate(e.id),disabled:g.isPending||!f,className:`w-full flex items-center gap-3 p-3 rounded-lg hover:bg-white/5 transition-colors text-left`,children:[(0,G.jsx)(`span`,{className:`w-6 h-6 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.filament_color_hex)}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white font-medium truncate`,children:e.filament_name||s(`spoolman.spoolId`)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray truncate`,children:[e.filament_vendor?`${e.filament_vendor} · `:``,e.filament_material||`Unknown`,` · #`,e.id]})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.remaining_weight==null?`—`:`${Math.round(e.remaining_weight)}g`})]},e.id))}),(0,G.jsx)(`div`,{className:`p-4 border-t border-white/10 flex justify-end`,children:(0,G.jsx)(Q,{variant:`ghost`,onClick:t,children:s(`inventory.cancel`)||`Cancel`})})]})]}):null}function rke(e,t){if(!t)return!0;let n=t.toLowerCase();return String(e.id).includes(n)||e.material.toLowerCase().includes(n)||(e.brand?.toLowerCase().includes(n)??!1)||(e.color_name?.toLowerCase().includes(n)??!1)||(e.subtype?.toLowerCase().includes(n)??!1)||(e.note?.toLowerCase().includes(n)??!1)||(e.slicer_filament_name?.toLowerCase().includes(n)??!1)||(e.storage_location?.toLowerCase().includes(n)??!1)}function wH(e,t){return t?e.filter(e=>rke(e,t)):e}function TH({isOpen:e,onClose:t,printerId:n,amsId:r,trayId:i,trayInfo:a,spoolmanEnabled:o}){let{t:s}=U(),c=co(),{showToast:l}=qd(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null);(0,y.useEffect)(()=>{p(null),h(null)},[u]);let[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(null);(0,y.useEffect)(()=>{e&&d(!1)},[e]);let{data:T,isLoading:E}=K({queryKey:[`inventory-spools`,`assign-modal`],queryFn:()=>Z.getSpools(!0),enabled:e&&!o}),{data:D}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:e}),{data:O}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),enabled:e}),{data:k,isLoading:A}=K({queryKey:[`spoolman-inventory-spools`,`assign-modal`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:e&&!!o}),{data:j}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e&&!!o}),M=(0,y.useMemo)(()=>j?new Set(j.filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i)).map(e=>e.spoolman_spool_id)):new Set,[j,n,r,i]),N=()=>{Z.refreshPrinterStatus(n).catch(()=>{}),c.invalidateQueries({queryKey:[`printerStatus`,n]})},P=q({mutationFn:e=>Z.assignSpool({spool_id:e,printer_id:n,ams_id:r,tray_id:i}),onSuccess:e=>{c.setQueryData([`spool-assignments`],t=>{let a=(t||[]).filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i));return a.push(e),a}),c.invalidateQueries({queryKey:[`spool-assignments`]}),N(),l(s(e.pending_config?`inventory.assignPendingInsert`:`inventory.assignSuccess`),`success`),S(!1),b(null),w(null),t()},onError:e=>{l(`${s(`inventory.assignFailed`)}: ${e.message}`,`error`)}}),F=q({mutationFn:e=>Z.assignSpoolmanSlot({spoolman_spool_id:e,printer_id:n,ams_id:r,tray_id:i}),onSuccess:()=>{c.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),c.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),N(),l(s(`inventory.assignSuccess`),`success`),t()},onError:e=>{l(`${s(`inventory.assignFailed`)}: ${e.message}`,`error`)}}),I=e=>(e??``).trim().toUpperCase(),L=(e,t)=>{let n=I(e),r=I(t);return!n||!r?`none`:n===r?`exact`:r.includes(n)||n.includes(r)?`partial`:`none`},R=e=>e.split(`@`)[0].trim(),z=(e,t)=>{let n=R(I(e)),r=R(I(t));return!n||!r?!1:n===r};if(!e)return null;let B=new Set((D||[]).filter(e=>!(e.printer_id===n&&e.ams_id===r&&e.tray_id===i)).map(e=>e.spool_id)),V=T?.filter(e=>!e.archived_at&&(u||!B.has(e.id))),ee=V;if(!u){let e=R(I(a?.profile)),t=I(a?.material||a?.type);(e||t)&&(ee=ee?.filter(n=>{let r=R(I(n.slicer_filament_name||n.slicer_filament)),i=I(n.material);return e&&r&&r===e?!0:t&&i?i===t||t.includes(i)||i.includes(t):!r&&!i}))}g&&ee&&(ee=wH(ee,g));let te=()=>{if(m!==null){F.mutate(m);return}if(!f)return;let e=T?.find(e=>e.id===f);if(!e){l(s(`inventory.assignFailed`),`error`);return}if(!O?.disable_filament_warnings&&a){let t=a.material||a.type,n=L(e.material,t),r=e.slicer_filament_name||e.slicer_filament,i=a.profile||a.type,o=z(r,i);if(n!==`exact`){let a;a=n===`none`&&!o?`material_profile`:n===`partial`&&!o?`partial_profile`:n===`none`?`material`:`partial`,b(f),w({type:a,spoolMaterial:e.material||``,trayMaterial:t||``,spoolProfile:r||void 0,trayProfile:i||void 0}),S(!0);return}}P.mutate(f)},ne=()=>{v&&(P.mutate(v),S(!1),b(null))};return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-start sm:items-center justify-center p-4 overflow-y-auto`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-2xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] overflow-hidden flex flex-col my-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:s(`inventory.assignSpool`)})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto`,children:[a&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:[s(`inventory.selectSpool`),`:`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[a.color&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(a.color)}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:a.type||s(`ams.emptySlot`)}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,a.location,`)`]})]})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:s(`inventory.searchSpools`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!o&&(E?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):ee&&ee.length>0?(0,G.jsx)(`div`,{className:`max-h-96 overflow-y-auto grid grid-cols-2 sm:grid-cols-3 gap-2`,children:ee.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{p(e.id),h(null)},title:e.note||void 0,className:`p-2.5 rounded-lg border text-left transition-colors ${f===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-1`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.color_name||``})]}),e.label_weight&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[Math.max(0,Math.round(e.label_weight-e.weight_used)),` / `,e.label_weight,`g`]}),e.note&&(0,G.jsx)(`p`,{className:`text-[10px] text-bambu-gray/70 mt-1 truncate`,title:e.note,children:e.note})]},e.id))}):V&&V.length===0?(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:s(`inventory.noAvailableSpools`)}),T&&(0,G.jsxs)(`p`,{className:`text-[10px] mt-2 opacity-60`,children:[T.length,` fetched · `,T.filter(e=>e.archived_at).length,` archived ·`,` `,T.filter(e=>B.has(e.id)).length,` assigned to other slots`]})]}):(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:s(`inventory.noSpoolsMatch`)}),V&&(0,G.jsxs)(`p`,{className:`text-[10px] mt-2 opacity-60`,children:[V.length,` unassigned spools — `,V.length-(ee?.length??0),` filtered by tray match. Try "Show all spools".`]})]})),o&&(0,G.jsx)(G.Fragment,{children:A?(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`})}):k&&k.filter(e=>!e.archived_at&&!M.has(e.id)).length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide pt-1`,children:s(`inventory.spoolmanSpools`)}),(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto grid grid-cols-2 sm:grid-cols-3 gap-2`,children:wH(k.filter(e=>!e.archived_at&&!M.has(e.id)),g).map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.id),p(null)},title:e.note||void 0,className:`p-2.5 rounded-lg border text-left transition-colors ${m===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-1`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.color_name||``})]}),e.label_weight&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[Math.max(0,Math.round(e.label_weight-e.weight_used)),` / `,e.label_weight,`g`]}),e.note&&(0,G.jsx)(`p`,{className:`text-[10px] text-bambu-gray/70 mt-1 truncate`,title:e.note,children:e.note})]},`spoolman-${e.id}`))})]}):null})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{id:`disable-filtering-toggle`,type:`checkbox`,checked:u,onChange:()=>d(e=>!e),className:`accent-bambu-green w-4 h-4 rounded focus:ring-0 border-bambu-dark-tertiary`}),(0,G.jsx)(`label`,{htmlFor:`disable-filtering-toggle`,className:`text-xs text-bambu-gray select-none cursor-pointer`,children:s(`inventory.showAllSpools`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:s(`common.cancel`)}),(0,G.jsx)(Q,{onClick:te,disabled:!f&&m===null||P.isPending||F.isPending,children:P.isPending||F.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),s(`inventory.assigning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),s(`inventory.assignSpool`)]})})]})]}),P.isError&&(0,G.jsx)(`div`,{className:`mx-4 mb-4 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:P.error.message})]})]}),x&&a&&f&&C&&(()=>{let e=``;return C.type===`material`?e=s(`inventory.assignMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location}):C.type===`partial`?e=s(`inventory.assignPartialMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location}):C.type===`material_profile`?e=`${s(`inventory.assignMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location})}\n\n${s(`inventory.assignProfileMismatchMessage`,{spoolProfile:C.spoolProfile||s(`common.unknown`),trayProfile:C.trayProfile||s(`common.unknown`),location:a.location})}`:C.type===`partial_profile`&&(e=`${s(`inventory.assignPartialMismatchMessage`,{spoolMaterial:C.spoolMaterial,trayMaterial:C.trayMaterial,location:a.location})}\n\n${s(`inventory.assignProfileMismatchMessage`,{spoolProfile:C.spoolProfile||s(`common.unknown`),trayProfile:C.trayProfile||s(`common.unknown`),location:a.location})}`),e=`${e}\n\n${s(`inventory.assignReconfigureNote`)}`,(0,G.jsx)(of,{title:s(`inventory.assignMismatchTitle`),message:e,confirmText:s(`inventory.assignMismatchConfirm`),variant:`warning`,overlayZIndex:`z-[110]`,isLoading:P.isPending,onConfirm:ne,onCancel:()=>{P.isPending||(S(!1),b(null),w(null))}})})()]})}var ike={bambuModelByShortCode:{}},EH={"A1 MINI":[`A1M`],"H2D PRO":[`H2DP`]};function DH(e,t){let n=e.toUpperCase(),r=t.toUpperCase();if(n===r)return!0;let i=EH[r];if(i&&i.includes(n))return!0;let a=EH[n];return!!(a&&a.includes(r))}function ake(e){let t={};for(let[n,r]of Object.entries(e))r in t||(t[r]=n.replace(/^Bambu Lab\s+/,``));return t}function OH(e={}){return{bambuModelByShortCode:ake(e)}}function kH(e){return e.replace(/\s+/g,``).toLowerCase()}function AH(e){return e.replace(/^#\s*/,``).trim()}var oke=`0.4`;function jH(e){let t=e.match(/^(.*?)\s+([\d.]+)\s*nozzle\s*$/i);return t?{stripped:t[1].trim(),nozzle:t[2]}:{stripped:e.trim(),nozzle:null}}function ske(e){let t=e.indexOf(`@BBL `);if(t<0)return null;let{stripped:n,nozzle:r}=jH(e.slice(t+5).trim());return n?{token:n,nozzle:r}:null}function MH(e){let t=AH(e).match(/^Bambu Lab\s+(.+)$/i);if(!t)return null;let{stripped:n,nozzle:r}=jH(t[1]);return n?{model:n,nozzle:r}:null}function cke(e){return e.replace(/\s*\([^)]*\)\s*$/,``).trim()}var lke=.1,uke=2;function NH(e,t){let n=Number.parseFloat(e),r=Number.parseFloat(t);return Number.isNaN(n)||Number.isNaN(r)?!1:n===r}function dke(e){let t=cke(e),n=ske(t);if(n)return n;let r=t.lastIndexOf(`@`);if(r<0)return null;let i=t.slice(r+1).trim(),a=MH(i);if(a)return{token:a.model,nozzle:a.nozzle};let o=i.match(/^([\d.]+)\s*(?:mm)?\s*(?:nozzle)?$/i);if(o){let e=Number.parseFloat(o[1]);if(!Number.isNaN(e)&&e>=lke&&e<=uke)return{token:null,nozzle:o[1]}}return null}function fke(e,t,n){let r=dke(e);if(!r)return`unknown`;let i=MH(t);if(!i)return`unknown`;if(r.token===null)return i.nozzle!==null&&r.nozzle!==null&&!NH(r.nozzle,i.nozzle)?`mismatch`:`unknown`;let a=n[r.token]??r.token;return kH(i.model)!==kH(a)&&!DH(r.token,i.model)||i.nozzle!==null&&!NH(r.nozzle??oke,i.nozzle)?`mismatch`:`match`}function PH(e,t,n,r){if(!n)return`unknown`;let i=e.compatible_printers;if(i&&i.length>0){let e=AH(n);return i.some(t=>AH(t)===e)?`match`:`mismatch`}return fke(e.name,n,r.bambuModelByShortCode)}function pke(e){let t=e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/\s+/g,`\\s+`);return RegExp(`\\b${t}\\b`,`i`)}function FH(e,t){let n=e.indexOf(`@`);if(n>=0){let r=e.slice(n+1).trim(),i=r.match(/^BBL\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(i)return i[1].trim();let a=r.match(/^Bambu Lab\s+(.+?)(?:\s+[\d.]+\s*nozzle)?$/i);if(a){let e=a[1].trim(),n=`Bambu Lab ${e}`;if(t[n])return t[n];let r=n.toLowerCase();for(let[e,n]of Object.entries(t))if(e.toLowerCase()===r)return n;return e}}let r=[],i=new Set;for(let[e,n]of Object.entries(t)){let t=e.replace(/^Bambu Lab\s+/,``),a=t.toLowerCase();i.has(a)||(r.push({token:t,short:n}),i.add(a));let o=n.toLowerCase();i.has(o)||(r.push({token:n,short:n}),i.add(o))}r.sort((e,t)=>t.token.length-e.token.length);for(let{token:t,short:n}of r)if(pke(t).test(e))return n;return null}var IH=[`PLA`,`PETG`,`ABS`,`TPU`,`ASA`,`PC`,`PA`,`PVA`,`HIPS`,`PA-CF`,`PETG-CF`,`PLA-CF`],LH=[`Bambu`,`PolyLite`,`PolyTerra`,`eSUN`,`Overture`,`Fiberon`,`SUNLU`,`Inland`,`Hatchbox`,`Generic`],RH=`Basic.Matte.Silk.Silk+.Tough.Tough+.HF.High Flow.Engineering.CF.GF.Galaxy.Glow.Marble.Metal.Rainbow.Sparkle.Wood.Translucent.Transparent.Clear.Lite.Pro.Plus.Max.Super.Ultra.Flex.Soft.Hard.Strong.Impact.Heat Resistant.UV Resistant.ESD.Conductive.Magnetic.Gradient.Dual Color.Tri Color.Multicolor`.split(`.`),zH=[{name:`Black`,hex:`000000`},{name:`White`,hex:`FFFFFF`},{name:`Gray`,hex:`808080`},{name:`Red`,hex:`FF0000`},{name:`Orange`,hex:`FFA500`},{name:`Yellow`,hex:`FFFF00`},{name:`Green`,hex:`00AE42`},{name:`Blue`,hex:`0066FF`},{name:`Purple`,hex:`8B00FF`},{name:`Pink`,hex:`FF69B4`},{name:`Brown`,hex:`8B4513`},{name:`Silver`,hex:`C0C0C0`},{name:`Clear`,hex:`00000000`}],mke=[{name:`Dark Red`,hex:`8B0000`},{name:`Crimson`,hex:`DC143C`},{name:`Coral`,hex:`FF7F50`},{name:`Salmon`,hex:`FA8072`},{name:`Dark Orange`,hex:`FF8C00`},{name:`Peach`,hex:`FFDAB9`},{name:`Gold`,hex:`FFD700`},{name:`Khaki`,hex:`F0E68C`},{name:`Lemon`,hex:`FFF44F`},{name:`Lime`,hex:`32CD32`},{name:`Forest Green`,hex:`228B22`},{name:`Olive`,hex:`808000`},{name:`Mint`,hex:`98FF98`},{name:`Teal`,hex:`008080`},{name:`Navy`,hex:`000080`},{name:`Sky Blue`,hex:`87CEEB`},{name:`Royal Blue`,hex:`4169E1`},{name:`Cyan`,hex:`00FFFF`},{name:`Turquoise`,hex:`40E0D0`},{name:`Violet`,hex:`EE82EE`},{name:`Magenta`,hex:`FF00FF`},{name:`Indigo`,hex:`4B0082`},{name:`Lavender`,hex:`E6E6FA`},{name:`Plum`,hex:`DDA0DD`},{name:`Hot Pink`,hex:`FF69B4`},{name:`Rose`,hex:`FF007F`},{name:`Blush`,hex:`FFB6C1`},{name:`Chocolate`,hex:`D2691E`},{name:`Tan`,hex:`D2B48C`},{name:`Beige`,hex:`F5F5DC`},{name:`Maroon`,hex:`800000`},{name:`Dark Gray`,hex:`404040`},{name:`Light Gray`,hex:`D3D3D3`},{name:`Charcoal`,hex:`36454F`},{name:`Ivory`,hex:`FFFFF0`},{name:`Bambu Green`,hex:`00AE42`},{name:`Jade White`,hex:`E8E8E8`},{name:`Titan Gray`,hex:`5A5A5A`}],BH=[...zH,...mke],VH=`bambuddy-recent-colors`,HH=[`0.2`,`0.4`,`0.6`,`0.8`];async function UH(e,t){let n=Wp(t),r=Array.from(new Set([...HH,...n])),i=[];for(let t of r)i.push(await Z.getKProfiles(e,t).catch(()=>null));let a=[];for(let e of i)if(e)for(let t of e.profiles)a.push({cali_idx:t.slot_id,filament_id:t.filament_id,setting_id:t.setting_id||``,name:t.name,k_value:parseFloat(t.k_value)||0,n_coef:parseFloat(t.n_coef)||0,extruder_id:t.extruder_id,nozzle_diameter:t.nozzle_diameter,nozzle_id:t.nozzle_id});return a}var hke=[{code:`GFL00`,name:`Bambu PLA Basic`,displayName:`Bambu PLA Basic`,isCustom:!1,allCodes:[`GFL00`],source:`builtin`},{code:`GFL01`,name:`Bambu PLA Matte`,displayName:`Bambu PLA Matte`,isCustom:!1,allCodes:[`GFL01`],source:`builtin`},{code:`GFL05`,name:`Generic PLA`,displayName:`Generic PLA`,isCustom:!1,allCodes:[`GFL05`],source:`builtin`},{code:`GFG00`,name:`Bambu PETG Basic`,displayName:`Bambu PETG Basic`,isCustom:!1,allCodes:[`GFG00`],source:`builtin`},{code:`GFG05`,name:`Generic PETG`,displayName:`Generic PETG`,isCustom:!1,allCodes:[`GFG05`],source:`builtin`},{code:`GFB00`,name:`Bambu ABS Basic`,displayName:`Bambu ABS Basic`,isCustom:!1,allCodes:[`GFB00`],source:`builtin`},{code:`GFB05`,name:`Generic ABS`,displayName:`Generic ABS`,isCustom:!1,allCodes:[`GFB05`],source:`builtin`},{code:`GFA00`,name:`Bambu ASA Basic`,displayName:`Bambu ASA Basic`,isCustom:!1,allCodes:[`GFA00`],source:`builtin`},{code:`GFU00`,name:`Bambu TPU 95A`,displayName:`Bambu TPU 95A`,isCustom:!1,allCodes:[`GFU00`],source:`builtin`},{code:`GFU05`,name:`Generic TPU`,displayName:`Generic TPU`,isCustom:!1,allCodes:[`GFU05`],source:`builtin`},{code:`GFC00`,name:`Bambu PC Basic`,displayName:`Bambu PC Basic`,isCustom:!1,allCodes:[`GFC00`],source:`builtin`},{code:`GFN00`,name:`Bambu PA Basic`,displayName:`Bambu PA Basic`,isCustom:!1,allCodes:[`GFN00`],source:`builtin`},{code:`GFN05`,name:`Generic PA`,displayName:`Generic PA`,isCustom:!1,allCodes:[`GFN05`],source:`builtin`},{code:`GFS00`,name:`Bambu PLA-CF`,displayName:`Bambu PLA-CF`,isCustom:!1,allCodes:[`GFS00`],source:`builtin`},{code:`GFT00`,name:`Bambu PETG-CF`,displayName:`Bambu PETG-CF`,isCustom:!1,allCodes:[`GFT00`],source:`builtin`},{code:`GFNC0`,name:`Bambu PA-CF`,displayName:`Bambu PA-CF`,isCustom:!1,allCodes:[`GFNC0`],source:`builtin`},{code:`GFV00`,name:`Bambu PVA`,displayName:`Bambu PVA`,isCustom:!1,allCodes:[`GFV00`],source:`builtin`}];function WH(e){let t=e.replace(/@.*$/,``).trim();t=t.replace(/\(Custom\)/i,``).trim(),t=t.replace(/^[#*]+\s*/,``).trim();let n=`PLA-CF.PETG-CF.ABS-GF.ASA-CF.PA-CF.PAHT-CF.PA6-CF.PA6-GF.PPA-CF.PPA-GF.PET-CF.PPS-CF.PC-CF.PC-ABS.ABS-GF.PCTG.PETG.PLA.ABS.ASA.PC.PA.TPU.PVA.HIPS.BVOH.PPS.PEEK.PEI`.split(`.`),r=``,i=-1;for(let e of n){let n=t.toUpperCase().indexOf(e.toUpperCase());if(n!==-1){r=e,i=n;break}}let a=``;i>0&&(a=t.substring(0,i).trim(),a=a.replace(/[-_\s]+$/,``));let o=``;i!==-1&&r&&(o=t.substring(i+r.length).trim(),o=o.replace(/^[-_\s]+/,``));let s=``;for(let e of RH)if(o.toLowerCase().includes(e.toLowerCase())){s=e;break}if(!s&&a)for(let e of RH){let t=RegExp(`\\s+${e}$`,`i`);if(t.test(a)){s=e,a=a.replace(t,``).trim();break}}return{brand:a,material:r,variant:s}}function GH(e,t){let n=new Set(LH);for(let t of e){let{brand:e}=WH(t.name);e&&e.length>1&&n.add(e)}if(t)for(let e of t)if(e.filament_vendor&&e.filament_vendor.length>1)n.add(e.filament_vendor);else{let{brand:t}=WH(e.name);t&&t.length>1&&n.add(t)}return Array.from(n).sort((e,t)=>e.localeCompare(t))}function gke(e){let t=e.filter(e=>e.preset_type===`filament`);return t.length===0?[]:t.map(e=>{let t=String(e.id),n=e.filament_type||t,r=Array.from(new Set([t,n]));return{code:t,name:e.name,displayName:e.name,isCustom:!1,allCodes:r,source:`local`}}).sort((e,t)=>e.displayName.localeCompare(t.displayName))}function KH(e,t,n,r,i){let a=[],o=[],s=new Set;for(let n of e)if(n.is_custom){let e=n.name.toUpperCase();(t.size===0||Array.from(t).some(t=>e.includes(t))||!e.includes(`@`))&&(a.push({code:n.setting_id,name:n.name,displayName:`${n.name} (Custom)`,isCustom:!0,allCodes:[n.setting_id],source:i?.has(n.setting_id)?`orca_cloud`:`cloud`}),s.add(n.setting_id))}else o.push({code:n.setting_id,name:n.name,displayName:n.name,isCustom:!1,allCodes:[n.setting_id],source:i?.has(n.setting_id)?`orca_cloud`:`cloud`}),s.add(n.setting_id);let c=n&&n.length>0?gke(n):[],l=[];if(r&&r.length>0)for(let e of r){let t=e.filament_id.startsWith(`GF`)?`GFS`+e.filament_id.slice(2):e.filament_id;s.has(e.filament_id)||s.has(t)||l.push({code:e.filament_id,name:e.name,displayName:e.name,isCustom:!1,allCodes:[e.filament_id,t],source:`builtin`})}let u=[...a,...o,...c,...l];return u.length===0?hke:u.sort((e,t)=>e.displayName.localeCompare(t.displayName))}function qH(e,t){if(!e)return;let n=t.find(t=>t.code===e);if(n||=t.find(t=>t.allCodes.includes(e)),!n){let r=e.toLowerCase();n=t.find(e=>e.code.toLowerCase()===r||e.allCodes.some(e=>e.toLowerCase()===r))}return n}function JH(e,t){let n=t.trim();return!n||e.some(e=>e.toLowerCase()===n.toLowerCase())?e:[...e,n].sort((e,t)=>e.localeCompare(t))}function YH(e,t,n){if(!t)return[];let r=n.get(t.toLowerCase());return!r||r.size===0?[]:e.filter(e=>r.has(e.toLowerCase()))}function XH(){try{let e=localStorage.getItem(VH);if(e)return JSON.parse(e)}catch{}return[]}function ZH(e,t){let n=[e,...t.filter(t=>t.hex.toUpperCase()!==e.hex.toUpperCase())].slice(0,8);try{localStorage.setItem(VH,JSON.stringify(n))}catch{}return n}function QH(e){if(!e)return``;let t=e.split(`_`)[0];return/^GFS/i.test(t)&&(t=t.slice(0,2)+t.slice(3)),t.toUpperCase()}function _ke(e){return!!e&&/^GF[A-Z]99$/i.test(e)}var vke={GFB99:`ABS`,GFC99:`PC`,GFG99:`PETG`,GFL99:`PLA`,GFN99:`PA`,GFP99:`PE`,GFR99:`EVA`,GFS99:`PVA`,GFU99:`TPU`};function yke(e){return e&&vke[e.toUpperCase()]||``}function $H(e){let t=e.trim().toUpperCase();return t===`NYLON`?`PA`:t}function bke(e,t){let n=yke(e);return!!n&&!!t&&$H(n)===$H(t)}function eU(e,t,n){return`${e}:${t}:${n}`}function tU(e,t){return`${e}\u0000${t}`}function xke(e){let[t=``,n=``]=e.split(`\0`);return{model:t,diameter:n}}function nU(e,t){if(!t.material)return!1;let n=QH(t.slicer_filament),r=QH(e.filament_id);if(n&&r&&n===r){if(!_ke(r))return!0;let e=t.brand.trim();if((!e||e.toUpperCase()===`GENERIC`)&&bke(r,t.material))return!0}let i=(e.name||``).replace(/^High Flow[_\s]+/i,``).replace(/^Standard[_\s]+/i,``).replace(/^HF[_\s]+/i,``).replace(/^S[_\s]+/i,``).trim(),a=WH(i);return!(a.material.toUpperCase()!==t.material.toUpperCase()||t.brand&&!(a.brand.toLowerCase().includes(t.brand.toLowerCase())||t.brand.toLowerCase().includes(a.brand.toLowerCase()))||t.subtype&&!(a.variant.toLowerCase().includes(t.subtype.toLowerCase())||t.subtype.toLowerCase().includes(a.variant.toLowerCase())||i.toLowerCase().includes(t.subtype.toLowerCase())))}function rU(){let e=(0,y.useRef)(null),t=(0,y.useCallback)(()=>{e.current!==null&&(clearTimeout(e.current),e.current=null)},[]),n=(0,y.useCallback)((n,r)=>{t(),e.current=setTimeout(()=>{e.current=null,n()},r)},[t]);return(0,y.useEffect)(()=>t,[t]),{schedule:n,cancel:t}}function iU(e){let t=e.includes(`_`)?e.split(`_`)[0]:e;return t.startsWith(`GFS`)?`GF`+t.slice(3):(t.startsWith(`PFUS`)||t.startsWith(`PFSP`),t)}var aU=[`PLA`,`PETG`,`PCTG`,`ABS`,`ASA`,`TPU`,`PC`,`PA`,`NYLON`,`PVA`,`HIPS`,`PP`,`PET`];function oU(e){let t=e.replace(/@.+$/,``).trim(),n=t.toUpperCase(),r=n.match(/\bSUPPORT\s+FOR\s+/);if(r){let e=n.slice(r.index+r[0].length);for(let n of aU)if(RegExp(`\\b${n}\\b`).test(e))return{material:n,brand:t.slice(0,r.index).trim(),variant:`Support`}}for(let e of aU){let r=RegExp(`\\b${e}\\b`,`i`);if(r.test(n)){let n=t.split(r);return{material:e,brand:n[0]?.trim()||``,variant:n[1]?.trim()||``}}}let i=t.split(/\s+/);return i.length>=2?{material:i[1],brand:i[0],variant:i.slice(2).join(` `)}:{material:t,brand:``,variant:``}}function sU(e){return`${e.extruder_id??0}|${e.name}|${e.k_value}`}function cU(e,t){return t===void 0?!1:e.some(e=>(e.extruder_id??0)===t)}function lU(e,t,n){return cU(e,n)?e.find(e=>e.slot_id===t&&(e.extruder_id??0)===n):e.find(e=>e.slot_id===t)}function uU(e,t,n){return t?` \u00b7 ${e.extruder_id===1?n(`common.left`):n(`common.right`)}`:``}function Ske(e){return!e.startsWith(`GF`)&&!e.startsWith(`P1`)}var Cke={white:`FFFFFF`,black:`000000`,red:`FF0000`,green:`00FF00`,blue:`0000FF`,yellow:`FFFF00`,cyan:`00FFFF`,magenta:`FF00FF`,orange:`FFA500`,purple:`800080`,pink:`FFC0CB`,brown:`8B4513`,gray:`808080`,grey:`808080`,"jade white":`FFFEF2`,ivory:`FFFFF0`,beige:`F5F5DC`,cream:`FFFDD0`,silver:`C0C0C0`,gold:`FFD700`,bronze:`CD7F32`,copper:`B87333`,navy:`000080`,teal:`008080`,olive:`808000`,maroon:`800000`,coral:`FF7F50`,salmon:`FA8072`,lime:`32CD32`,mint:`98FF98`,"forest green":`228B22`,"sky blue":`87CEEB`,"royal blue":`4169E1`,turquoise:`40E0D0`,lavender:`E6E6FA`,violet:`EE82EE`,plum:`DDA0DD`,tan:`D2B48C`,chocolate:`D2691E`,charcoal:`36454F`,slate:`708090`,transparent:`000000`,natural:`F5F5DC`,wood:`DEB887`},dU=[{name:`White`,hex:`FFFFFF`},{name:`Black`,hex:`000000`},{name:`Red`,hex:`FF0000`},{name:`Blue`,hex:`0000FF`},{name:`Green`,hex:`00AA00`},{name:`Yellow`,hex:`FFFF00`},{name:`Orange`,hex:`FFA500`},{name:`Gray`,hex:`808080`}],fU=[{name:`Cyan`,hex:`00FFFF`},{name:`Magenta`,hex:`FF00FF`},{name:`Purple`,hex:`800080`},{name:`Pink`,hex:`FFC0CB`},{name:`Brown`,hex:`8B4513`},{name:`Beige`,hex:`F5F5DC`},{name:`Navy`,hex:`000080`},{name:`Teal`,hex:`008080`},{name:`Lime`,hex:`32CD32`},{name:`Gold`,hex:`FFD700`},{name:`Silver`,hex:`C0C0C0`},{name:`Maroon`,hex:`800000`},{name:`Olive`,hex:`808000`},{name:`Coral`,hex:`FF7F50`},{name:`Salmon`,hex:`FA8072`},{name:`Turquoise`,hex:`40E0D0`},{name:`Violet`,hex:`EE82EE`},{name:`Indigo`,hex:`4B0082`},{name:`Chocolate`,hex:`D2691E`},{name:`Tan`,hex:`D2B48C`},{name:`Slate`,hex:`708090`},{name:`Charcoal`,hex:`36454F`},{name:`Ivory`,hex:`FFFFF0`},{name:`Cream`,hex:`FFFDD0`}];function pU(e){return Cke[e.toLowerCase().trim()]||null}function mU({isOpen:e,onClose:t,printerId:n,slotInfo:r,nozzleDiameter:i=`0.4`,printerModel:a,onSuccess:o,fullScreen:s}){let{t:c}=U(),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(null),p=(0,y.useRef)(null);p.current=d;let[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(``),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)(``),{schedule:E}=rU(),{data:D,isLoading:O,isError:k}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),enabled:e,retry:!1}),{data:A}=K({queryKey:[`orcaCloudProfilesForAmsSlot`],queryFn:()=>Z.orcaCloudListProfiles(),enabled:e,retry:!1}),{data:j,isLoading:M}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets(),enabled:e}),{data:N,isLoading:P}=K({queryKey:[`builtinFilaments`],queryFn:()=>Z.getBuiltinFilaments(),enabled:e,staleTime:1/0}),{data:F,isLoading:I}=K({queryKey:[`kprofiles`,n,i],queryFn:()=>Z.getKProfiles(n,i),enabled:e&&!!n}),{data:L}=K({queryKey:[`colorCatalog`],queryFn:()=>Z.getColorCatalog(),enabled:e,staleTime:1/0}),{data:R}=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,enabled:e,staleTime:1/0}),{data:z}=K({queryKey:[`slot-spool-defaults`,n,r.amsId,r.trayId],queryFn:()=>Z.getSlotSpoolDefaults(n,r.amsId,r.trayId),enabled:e,staleTime:0}),B=(0,y.useMemo)(()=>OH(R??{}),[R]),V=(0,y.useMemo)(()=>{if(!a||!R)return null;for(let[e,t]of Object.entries(R))if(t===a)return`${e.startsWith(`Bambu Lab `)?e:`Bambu Lab ${e}`} ${i} nozzle`;return null},[a,R,i]),ee=q({mutationFn:async()=>{if(!l)throw Error(`No filament preset selected`);let e=l.startsWith(`local_`),t=l.startsWith(`builtin_`),a=l.startsWith(`orca_`)?l.replace(`orca_`,``):l,o=!e&&!t?A?.filament.find(e=>e.setting_id===a):void 0,s=!!o,c=o??null,u=e?parseInt(l.replace(`local_`,``),10):null,d=t?l.replace(`builtin_`,``):null,f=e?j?.filament.find(e=>e.id===u):null,h=t?N?.find(e=>e.filament_id===d):null,g=!e&&!t&&!s?D?.filament.find(e=>e.setting_id===l):null;if(!e&&!t&&!s&&!g)throw Error(`Selected preset not found`);if(e&&!f)throw Error(`Selected local preset not found`);if(t&&!h)throw Error(`Selected builtin preset not found`);if(s&&!c)throw Error(`Selected Orca Cloud preset not found`);let _=e?f.name:t?h.name:s?c.name:g.name,v=oU(_),y=p.current?.slot_id??-1,b=m||r.trayColor?.slice(0,6)||`FFFFFF`,x=_.replace(/@.+$/,``).trim(),S,C,w=v.material.toUpperCase(),T={PLA:`GFL99`,"PLA-CF":`GFL98`,"PLA SILK":`GFL96`,"PLA HIGH SPEED":`GFL95`,PETG:`GFG99`,"PETG HF":`GFG96`,"PETG-CF":`GFG98`,PCTG:`GFG97`,ABS:`GFB99`,ASA:`GFB98`,PC:`GFC99`,PA:`GFN99`,"PA-CF":`GFN98`,NYLON:`GFN99`,TPU:`GFU99`,PVA:`GFS99`,HIPS:`GFS98`,PE:`GFP99`,PP:`GFP97`};if(e){let e=(aU.includes(w)?w:f?.filament_type||v.material||``).toUpperCase();S=T[e]||T[e.replace(/[-\s]?CF$/,``)]||T[e.replace(/\+$/,``)]||T[e.split(/[-\s]/)[0]]||``,C=``}else if(s){let e=``;try{let t=(await Z.orcaCloudGetProfile(a)).setting?.filament_id;typeof t==`string`&&t&&(e=t)}catch(e){console.warn(`Failed to fetch Orca Cloud profile for filament_id:`,e)}if(S=e,!S){let e=(aU.includes(w)?w:v.material||``).toUpperCase();S=T[e]||T[e.replace(/[-\s]?CF$/,``)]||T[e.replace(/\+$/,``)]||T[e.split(/[-\s]/)[0]]||``}C=``}else if(t)S=d,C=``;else{if(S=iU(l),C=l,!l.startsWith(`GFS`))try{let e=await Z.getCloudSettingDetail(l),t=e.setting?.filament_id,n=e.filament_id||(typeof t==`string`?t:``);n&&(S=n)}catch(e){console.warn(`Failed to fetch preset detail for filament_id:`,e)}/^(PFUS|PFSP|PFCN)/.test(S)&&(console.warn(`Cloud preset ${l} carries no filament_id in either place; sending no tray_info_idx so the printer keeps a resolvable one.`),S=``)}let E=e&&f?.nozzle_temp_min?f.nozzle_temp_min:190,O=e&&f?.nozzle_temp_max?f.nozzle_temp_max:230;if(!e||t||s||!f?.nozzle_temp_min&&!f?.nozzle_temp_max){let t=(e?aU.includes(w)?w:f?.filament_type||v.material||``:v.material).toUpperCase();t.includes(`PLA`)?(E=190,O=230):t.includes(`PETG`)?(E=220,O=260):t.includes(`ABS`)||t.includes(`ASA`)?(E=240,O=280):t.includes(`TPU`)?(E=200,O=240):t===`PCTG`?(E=220,O=260):t.includes(`PC`)?(E=260,O=300):(t.includes(`PA`)||t.includes(`NYLON`))&&(E=250,O=290)}let k=p.current?.k_value?parseFloat(p.current.k_value):0,M=e?aU.includes(w)?w:f?.filament_type||v.material||`PLA`:s&&aU.includes(w)?w:v.material||`PLA`,P=await Z.configureAmsSlot(n,r.amsId,r.trayId,{tray_info_idx:S,tray_type:M,tray_sub_brands:x,tray_color:b+`FF`,nozzle_temp_min:E,nozzle_temp_max:O,cali_idx:y,nozzle_diameter:i,setting_id:C,kprofile_filament_id:p.current?.filament_id,kprofile_setting_id:p.current?.setting_id||void 0,k_value:k}),F=e?`local_${u}`:t?`builtin_${d}`:l,I=e?`local`:t?`builtin`:s?`orca_cloud`:`cloud`;try{await Z.saveSlotPreset(n,r.amsId,r.trayId,F,x,I)}catch(e){console.warn(`Failed to save slot preset mapping:`,e)}return P},onSuccess:()=>{S(!0),o?.(),E(()=>{S(!1),t()},1500)}}),te=q({mutationFn:async()=>Z.resetAmsSlot(n,r.amsId,r.trayId),onSuccess:()=>{S(!0),o?.(),E(()=>{S(!1),t()},1500)}}),ne=(0,y.useMemo)(()=>{let e=v.toLowerCase(),t=[],n=new Set,i=r.savedPresetId,o=r.trayInfoIdx;if(A?.filament)for(let r of A.filament){let i=`orca_${r.setting_id}`;if(n.add(r.setting_id),n.add(i),!(e&&!r.name.toLowerCase().includes(e))){if(a){let e=FH(r.name,R??{});if(e&&!DH(e,a))continue}t.push({id:i,name:r.name,source:`orca_cloud`,isUser:!0})}}if(D?.filament)for(let r of D.filament){if(n.has(r.setting_id))continue;n.add(r.setting_id);let s=i===r.setting_id||o&&(r.setting_id===o||iU(r.setting_id)===o);if(!(e&&!r.name.toLowerCase().includes(e))){if(!s&&a){let e=FH(r.name,R??{});if(e&&!DH(e,a))continue}t.push({id:r.setting_id,name:r.name,source:`cloud`,isUser:Ske(r.setting_id)})}}if(j?.filament){let n=r.savedPresetId;for(let r of j.filament){let i=`local_${r.id}`;if(!(e&&!r.name.toLowerCase().includes(e))){if(n!==i&&V){let e=null;if(r.compatible_printers)try{let t=JSON.parse(r.compatible_printers);Array.isArray(t)&&(e=t.filter(e=>typeof e==`string`))}catch{e=null}if(PH({name:r.name,compatible_printers:e},`filament`,V,B)===`mismatch`)continue}t.push({id:i,name:r.name,source:`local`,isUser:!1})}}}if(N)for(let r of N){if(n.has(r.filament_id))continue;let i=r.filament_id.startsWith(`GF`)?`GFS`+r.filament_id.slice(2):r.filament_id;n.has(i)||(!e||r.name.toLowerCase().includes(e))&&t.push({id:`builtin_${r.filament_id}`,name:r.name,source:`builtin`,isUser:!1})}return t.sort((e,t)=>{let n={local:0,orca_cloud:1,cloud:2,builtin:3};return e.source===t.source?e.isUser&&!t.isUser?-1:!e.isUser&&t.isUser?1:e.name.localeCompare(t.name):n[e.source]-n[t.source]})},[A?.filament,D?.filament,j?.filament,N,v,a,r.savedPresetId,r.trayInfoIdx,V,B,R]),re=(0,y.useMemo)(()=>{if(!l)return null;let e=null,t=``;if(l.startsWith(`local_`)){let t=parseInt(l.replace(`local_`,``),10);e=j?.filament.find(e=>e.id===t)?.name||null}else if(l.startsWith(`builtin_`)){let n=l.replace(`builtin_`,``);e=N?.find(e=>e.filament_id===n)?.name||null,t=QH(n)}else{let n=l.startsWith(`orca_`)?l.replace(`orca_`,``):l,r=A?.filament.find(e=>e.setting_id===n);if(r)e=r.name;else if(D?.filament){let n=D.filament.find(e=>e.setting_id===l);e=n?.name||null,n&&(t=QH(n.setting_id))}}if(!e)return null;let n=e.replace(/@.+$/,``).trim();n.startsWith(`# `)&&(n=n.slice(2).trim());let r=oU(n);return{fullName:n,material:r.material,brand:r.brand,filamentId:t}},[l,D?.filament,j?.filament,N,A?.filament]),ie=re?.fullName||``,ae=(0,y.useMemo)(()=>{if(!L||!re)return[];let{fullName:e,brand:t}=re,n=e.replace(/^(Bambu\s*(Lab)?|eSUN|Polymaker|Overture|Sunlu|Hatchbox)\s*/i,``).trim();return L.filter(e=>{let r=(e.material||``).toUpperCase(),i=e.manufacturer.toUpperCase();if(!(r===n.toUpperCase()||r.includes(n.toUpperCase())||n.toUpperCase().includes(r)))return!1;if(t){let e=t.toUpperCase();if(!i.includes(e)&&!e.includes(i))return!1}return!0})},[L,re]),oe=(0,y.useMemo)(()=>new Set((F?.profiles??[]).map(e=>e.extruder_id??0)).size>1,[F?.profiles]),se=(0,y.useMemo)(()=>{if(!F?.profiles)return[];if(!re){let e=r.caliIdx;if(e!=null&&e>0){let t=lU(F.profiles,e,r.extruderId);if(t)return[t]}return[]}let{fullName:e,material:t,brand:n,filamentId:i}=re,a=e.toUpperCase(),o=t.toUpperCase(),s=n.toUpperCase()===`GENERIC`?``:n.toUpperCase(),c=i;if(!o||o.length<2)return[];let l=F.profiles.filter(e=>{if(c){let t=QH(e.filament_id);if(t&&t===c)return!0}let t=e.name.toUpperCase();if(s)return!(!t.includes(s)||!t.includes(o));if(t.includes(a)||t.includes(o))return!0;let n={NYLON:[`PA`,`PA-CF`,`PA6`],PA:[`NYLON`]}[o]||[];for(let e of n)if(t.includes(e))return!0;return!1}),u=cU(F.profiles,r.extruderId)?l.filter(e=>(e.extruder_id??0)===r.extruderId):l,d=new Map;for(let e of u){let t=sU(e);d.has(t)||d.set(t,e)}let f=Array.from(d.values()),p=r.caliIdx;if(p!=null&&p>0&&!f.some(e=>e.slot_id===p)){let e=lU(F.profiles,p,r.extruderId);e&&f.unshift(e)}return f},[F?.profiles,re,r.extruderId,r.caliIdx]),H=(0,y.useMemo)(()=>{if(!F?.profiles)return[];let e=new Set(se.map(e=>sU(e))),t=new Map;for(let n of F.profiles){let r=sU(n);e.has(r)||t.has(r)||t.set(r,n)}return Array.from(t.values()).sort((e,t)=>e.name.localeCompare(t.name))},[F?.profiles,se]),ce=se.length>0||H.length>0,le=(0,y.useCallback)(e=>{if(!e){f(null);return}f(se.find(t=>sU(t)===e)||H.find(t=>sU(t)===e)||null)},[se,H]);(0,y.useEffect)(()=>{if(e){if(z?.slicer_filament)u(z.slicer_filament);else if(r.savedPresetId)u(r.savedPresetId);else if(r.trayInfoIdx&&D?.filament){let e=D.filament.find(e=>e.setting_id===r.trayInfoIdx);e||=D.filament.find(e=>iU(e.setting_id)===r.trayInfoIdx),e&&u(e.setting_id)}else if(r.trayInfoIdx&&N?.length){let e=r.trayInfoIdx,t=N.find(t=>t.filament_id===e);t&&u(`builtin_${t.filament_id}`)}if(r.trayColor){let e=r.trayColor.slice(0,6);e&&h(e)}}else u(``),f(null),h(``),_(``),b(``),S(!1),T.current=``},[e,z?.slicer_filament,r.savedPresetId,r.trayInfoIdx,r.trayColor,D?.filament,N]),(0,y.useEffect)(()=>{if(se.length>0){if(z?.cali_idx!=null){let e=lU(se,z.cali_idx,z.extruder??r.extruderId);if(e){f(e);return}}if(r.caliIdx!=null&&r.caliIdx>0){let e=lU(se,r.caliIdx,r.extruderId);if(e){f(e);return}}f(se[0])}else f(null)},[l,se,z?.cali_idx,z?.extruder,r.caliIdx,r.extruderId]);let ue=(0,y.useCallback)(e=>{e.key===`Escape`&&t()},[t]);(0,y.useEffect)(()=>{if(e)return document.addEventListener(`keydown`,ue),()=>document.removeEventListener(`keydown`,ue)},[e,ue]);let de=O&&!k||M||P||I;if((0,y.useEffect)(()=>{if(!de&&l&&l!==T.current){let e=requestAnimationFrame(()=>{let e=document.querySelector(`[class*="fixed inset-0 z-50"]`)?.querySelector(`[data-preset-id="${CSS.escape(l)}"]`);e&&(T.current=l,e.scrollIntoView({block:`nearest`}))});return()=>cancelAnimationFrame(e)}},[l,de]),!e)return null;let fe=l&&!ee.isPending,pe=m||r.trayColor||`FFFFFF`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex ${s?``:`items-center justify-center`}`,children:[!s&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:s?`relative w-full h-full bg-bambu-dark-secondary flex flex-col`:`relative w-full max-w-lg mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-5 h-5 text-bambu-blue`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:c(`configureAmsSlot.title`)}),s&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 ml-4 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white/30`,children:`|`}),r.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(r.trayColor)}),(0,G.jsx)(`span`,{className:`text-white/70`,children:c(`configureAmsSlot.slotLabel`,{ams:yp(r.amsId,r.trayCount),slot:r.trayId+1})}),r.traySubBrands&&(0,G.jsxs)(`span`,{children:[`(`,r.traySubBrands,`)`]})]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 overflow-y-auto ${s?`flex-1 min-h-0`:`space-y-4 max-h-[60vh]`}`,children:[x&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-secondary/95 z-10 flex items-center justify-center rounded-xl`,children:(0,G.jsxs)(`div`,{className:`text-center space-y-3`,children:[(0,G.jsx)(Ss,{className:`w-16 h-16 text-bambu-green mx-auto`}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:c(`configureAmsSlot.slotConfigured`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`configureAmsSlot.settingsSentToPrinter`)})]})}),!s&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:c(`configureAmsSlot.configuringSlot`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:Mf(r.trayColor)}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:c(`configureAmsSlot.slotLabel`,{ams:yp(r.amsId,r.trayCount),slot:r.trayId+1})}),r.traySubBrands&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,r.traySubBrands,`)`]})]})]}),de?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):s?(0,G.jsxs)(`div`,{className:`flex gap-4 h-full`,children:[(0,G.jsxs)(`div`,{className:`w-1/2 flex flex-col min-h-0`,children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.filamentProfile`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.searchPresets`),value:v,onChange:e=>b(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none mb-2 shrink-0`}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto space-y-1`,children:ne.length===0?(0,G.jsx)(`p`,{className:`text-center py-4 text-bambu-gray`,children:D?.filament?.length===0&&!j?.filament?.length?c(`configureAmsSlot.noPresetsAvailable`):c(`configureAmsSlot.noMatchingPresets`)}):ne.map(e=>(0,G.jsx)(`button`,{"data-preset-id":e.id,onClick:()=>u(e.id),className:`group w-full p-2 rounded-lg border text-left transition-colors ${l===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate group-hover:whitespace-normal group-hover:break-all`,title:e.name,children:e.name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.source===`local`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,children:c(`profiles.localProfiles.badge`)}),e.source===`orca_cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:c(`configureAmsSlot.orcaCloud`)}),e.source===`cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-blue/20 text-bambu-blue`,children:c(`configureAmsSlot.bambuCloud`)}),e.source===`builtin`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:c(`configureAmsSlot.builtin`)})]})]})},e.id))})]}),(0,G.jsxs)(`div`,{className:`w-1/2 flex flex-col gap-4 min-h-0 overflow-y-auto`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.kProfileLabel`),ie&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-blue`,children:c(`configureAmsSlot.filteringFor`,{material:ie})})]}),ce?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:d?sU(d):``,onChange:e=>le(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:c(`configureAmsSlot.noKProfile`)}),se.map(e=>(0,G.jsxs)(`option`,{value:sU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c)]},sU(e))),H.length>0&&(0,G.jsx)(`optgroup`,{label:c(`configureAmsSlot.otherKProfiles`),children:H.map(e=>(0,G.jsxs)(`option`,{value:sU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c)]},sU(e)))})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}):l?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:c(`configureAmsSlot.noMatchingKProfiles`)}):(0,G.jsx)(`span`,{className:`inline-block text-xs px-2 py-1 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 border border-amber-300 dark:border-amber-500/30`,children:c(`configureAmsSlot.selectFilamentFirst`)}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-green mt-1`,children:c(`configureAmsSlot.kFromCalibration`,{value:d.k_value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`configureAmsSlot.customColorLabel`)}),ae.length>0&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1.5`,children:c(`configureAmsSlot.presetColors`,{name:re?.fullName})}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:ae.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.hex_color.replace(`#`,``).toUpperCase()),_(e.color_name)},className:`h-7 px-2 rounded-md border-2 transition-all flex items-center gap-1.5 ${m===e.hex_color.replace(`#`,``).toUpperCase()?`border-bambu-green scale-105`:`border-white/20 hover:border-white/40`}`,title:e.color_name,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:e.hex_color}}),(0,G.jsx)(`span`,{className:`text-xs text-white/80 whitespace-nowrap`,children:e.color_name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:[dU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex)),(0,G.jsx)(`button`,{onClick:()=>w(!C),className:`w-7 h-7 rounded-md border-2 border-white/20 hover:border-white/40 flex items-center justify-center text-white/60 hover:text-white/80 transition-all text-xs`,title:c(C?`configureAmsSlot.showLessColors`:`configureAmsSlot.showMoreColors`),children:C?`−`:`+`})]}),C&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:fU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex))}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg border-2 border-white/20 flex-shrink-0`,style:Mf(pe)}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.colorPlaceholder`),value:g,onChange:e=>{let t=e.target.value;_(t);let n=pU(t);if(n)h(n);else{let e=t.replace(/[^0-9A-Fa-f]/g,``).toUpperCase();e.length===6?h(e):e.length===3&&h(e.split(``).map(e=>e+e).join(``))}},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none text-sm`}),m&&(0,G.jsx)(`button`,{onClick:()=>{h(``),_(``)},className:`px-2 py-1 text-xs text-bambu-gray hover:text-white bg-bambu-dark-tertiary rounded`,title:c(`configureAmsSlot.clearCustomColor`),children:c(`configureAmsSlot.clear`)})]}),m&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5`,children:c(`configureAmsSlot.hexLabel`,{hex:m})})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.filamentProfile`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.searchPresets`),value:v,onChange:e=>b(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none mb-2`}),(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1`,children:ne.length===0?(0,G.jsx)(`p`,{className:`text-center py-4 text-bambu-gray`,children:D?.filament?.length===0&&!j?.filament?.length?c(`configureAmsSlot.noPresetsAvailable`):c(`configureAmsSlot.noMatchingPresets`)}):ne.map(e=>(0,G.jsx)(`button`,{"data-preset-id":e.id,onClick:()=>u(e.id),className:`group w-full p-2 rounded-lg border text-left transition-colors ${l===e.id?`bg-bambu-green/20 border-bambu-green`:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate group-hover:whitespace-normal group-hover:break-all`,title:e.name,children:e.name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[e.source===`local`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,children:c(`profiles.localProfiles.badge`)}),e.source===`orca_cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:c(`configureAmsSlot.orcaCloud`)}),e.source===`cloud`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-blue/20 text-bambu-blue`,children:c(`configureAmsSlot.bambuCloud`)}),e.source===`builtin`&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:c(`configureAmsSlot.builtin`)})]})]})},e.id))})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:[c(`configureAmsSlot.kProfileLabel`),ie&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-blue`,children:c(`configureAmsSlot.filteringFor`,{material:ie})})]}),ce?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:d?sU(d):``,onChange:e=>le(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:c(`configureAmsSlot.noKProfile`)}),se.map(e=>(0,G.jsxs)(`option`,{value:sU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c)]},sU(e))),H.length>0&&(0,G.jsx)(`optgroup`,{label:c(`configureAmsSlot.otherKProfiles`),children:H.map(e=>(0,G.jsxs)(`option`,{value:sU(e),children:[e.name,` (K=`,e.k_value,`)`,uU(e,oe,c)]},sU(e)))})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}):l?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:c(`configureAmsSlot.noMatchingKProfiles`)}):(0,G.jsx)(`span`,{className:`inline-block text-xs px-2 py-1 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 border border-amber-300 dark:border-amber-500/30`,children:c(`configureAmsSlot.selectFilamentFirst`)}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-green mt-1`,children:c(`configureAmsSlot.kFromCalibration`,{value:d.k_value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`configureAmsSlot.customColorLabel`)}),ae.length>0&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1.5`,children:c(`configureAmsSlot.presetColors`,{name:re?.fullName})}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:ae.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{h(e.hex_color.replace(`#`,``).toUpperCase()),_(e.color_name)},className:`h-7 px-2 rounded-md border-2 transition-all flex items-center gap-1.5 ${m===e.hex_color.replace(`#`,``).toUpperCase()?`border-bambu-green scale-105`:`border-white/20 hover:border-white/40`}`,title:e.color_name,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:e.hex_color}}),(0,G.jsx)(`span`,{className:`text-xs text-white/80 whitespace-nowrap`,children:e.color_name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:[dU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex)),(0,G.jsx)(`button`,{onClick:()=>w(!C),className:`w-7 h-7 rounded-md border-2 border-white/20 hover:border-white/40 flex items-center justify-center text-white/60 hover:text-white/80 transition-all text-xs`,title:c(C?`configureAmsSlot.showLessColors`:`configureAmsSlot.showMoreColors`),children:C?`−`:`+`})]}),C&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:fU.map(e=>(0,G.jsx)(`button`,{onClick:()=>{h(e.hex),_(e.name)},className:`w-7 h-7 rounded-md border-2 transition-all ${m===e.hex?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:`#${e.hex}`},title:e.name},e.hex))}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg border-2 border-white/20 flex-shrink-0`,style:Mf(pe)}),(0,G.jsx)(`input`,{type:`text`,placeholder:c(`configureAmsSlot.colorPlaceholder`),value:g,onChange:e=>{let t=e.target.value;_(t);let n=pU(t);if(n)h(n);else{let e=t.replace(/[^0-9A-Fa-f]/g,``).toUpperCase();e.length===6?h(e):e.length===3&&h(e.split(``).map(e=>e+e).join(``))}},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder:text-bambu-gray focus:border-bambu-green focus:outline-none text-sm`}),m&&(0,G.jsx)(`button`,{onClick:()=>{h(``),_(``)},className:`px-2 py-1 text-xs text-bambu-gray hover:text-white bg-bambu-dark-tertiary rounded`,title:c(`configureAmsSlot.clearCustomColor`),children:c(`configureAmsSlot.clear`)})]}),m&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5`,children:c(`configureAmsSlot.hexLabel`,{hex:m})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between p-4 border-t border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>te.mutate(),disabled:te.isPending||ee.isPending,className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10`,children:te.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`configureAmsSlot.resetting`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),c(`configureAmsSlot.resetSlot`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:c(`configureAmsSlot.cancel`)}),(0,G.jsx)(Q,{onClick:()=>ee.mutate(),disabled:!fe,children:ee.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`configureAmsSlot.configuring`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),c(`configureAmsSlot.configureSlot`)]})})]})]}),(ee.isError||te.isError)&&(0,G.jsx)(`div`,{className:`mx-4 mb-4 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:ee.error?.message||te.error?.message})]})]})}function hU({className:e=`w-4 h-4`}){return(0,G.jsx)(`svg`,{viewBox:`0 0 1945 1370`,fill:`none`,className:e,"aria-hidden":`true`,children:(0,G.jsxs)(`g`,{transform:`translate(-754.293 -471.685)`,children:[(0,G.jsxs)(`g`,{transform:`translate(0.18191 255.976)`,children:[(0,G.jsx)(`g`,{transform:`matrix(1.05469 0 0 0.241063 -153.484 1120.2)`,children:(0,G.jsx)(`rect`,{x:`922.048`,y:`1195.15`,width:`1721.5`,height:`470.135`,stroke:`currentColor`,strokeOpacity:`0.99`,strokeWidth:`168.84`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,G.jsx)(`g`,{transform:`matrix(0.983656 0 0 1.0767 -62.2035 141.539)`,children:(0,G.jsx)(`path`,{d:`M2741.42,1175.93L895.832,1175.93L1125.16,621.902L2512.09,621.902L2741.42,1175.93Z`,fill:`currentColor`,fillOpacity:`0.05`,stroke:`currentColor`,strokeOpacity:`0.99`,strokeWidth:`125.26`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),(0,G.jsx)(`g`,{transform:`translate(21.1916 0.684817)`,children:(0,G.jsx)(`path`,{d:`M1981.31,567.518C1954.86,567.518 1933.39,546.047 1933.39,519.601C1933.39,493.156 1954.86,471.685 1981.31,471.685L2146.61,471.685C2173.07,471.685 2194.53,493.138 2194.53,519.601L2194.53,688.741C2194.53,715.187 2173.05,736.658 2146.61,736.658C2120.16,736.658 2098.69,715.187 2098.69,688.741L2098.69,567.518L1981.31,567.518ZM2098.69,1252.54C2098.69,1226.1 2120.16,1204.62 2146.61,1204.62C2173.05,1204.62 2194.53,1226.1 2194.53,1252.54L2194.53,1421.68C2194.53,1448.14 2173.07,1469.6 2146.61,1469.6L1981.31,1469.6C1954.86,1469.6 1933.39,1448.13 1933.39,1421.68C1933.39,1395.24 1954.86,1373.76 1981.31,1373.76L2098.69,1373.76L2098.69,1252.54ZM1430.29,1373.76C1456.74,1373.76 1478.21,1395.24 1478.21,1421.68C1478.21,1448.13 1456.74,1469.6 1430.29,1469.6L1264.99,1469.6C1238.53,1469.6 1217.07,1448.14 1217.07,1421.68L1217.07,1252.54C1217.07,1226.1 1238.55,1204.62 1264.99,1204.62C1291.44,1204.62 1312.91,1226.1 1312.91,1252.54L1312.91,1373.76L1430.29,1373.76ZM1312.91,688.741C1312.91,715.187 1291.44,736.658 1264.99,736.658C1238.55,736.658 1217.07,715.187 1217.07,688.741L1217.07,519.601C1217.07,493.138 1238.53,471.685 1264.99,471.685L1430.29,471.685C1456.74,471.685 1478.21,493.156 1478.21,519.601C1478.21,546.047 1456.74,567.518 1430.29,567.518L1312.91,567.518L1312.91,688.741Z`,fill:`currentColor`,fillOpacity:`0.99`})})]})})}function gU({folderId:e,onClose:t,onUploadComplete:n,onFileUploaded:r,autoUpload:i,validateFile:a,accept:o,initialFiles:s}){let{t:c}=U(),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!0),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!0),[S,C]=(0,y.useState)(null),w=(0,y.useRef)(null),T=e=>{e.preventDefault(),f(!0)},E=e=>{e.preventDefault(),f(!1)},D=e=>{e.preventDefault(),f(!1),j(Array.from(e.dataTransfer.files))},O=e=>{e.target.files&&j(Array.from(e.target.files))},k=(e,t)=>{u(n=>n.map(n=>n.file===e?{...n,...t}:n))},A=async i=>{m(!0);for(let t of i)if(t.status===`pending`){k(t.file,{status:`uploading`});try{if(t.isZip){let n=await Z.extractZipFile(t.file,e,h,_,b);k(t.file,{status:n.errors.length>0&&n.extracted===0?`error`:`success`,extractedCount:n.extracted,error:n.errors.length>0?c(`fileManager.zipFilesFailed`,`{{count}} files failed`,{count:n.errors.length}):void 0})}else{let n=await Z.uploadLibraryFile(t.file,e,b);k(t.file,{status:`success`});let i=r?.(n);if(i){C(i),u([]),m(!1);return}}}catch(e){k(t.file,{status:`error`,error:e instanceof Error?e.message:c(`fileManager.uploadFailed`,`Upload failed`)})}}m(!1),n(),u(e=>(e.some(e=>e.status===`error`)||t(),e))},j=e=>{if(C(null),a)for(let t of e){let e=a(t);if(e){C(e);return}}let t=e.map(e=>({file:e,status:`pending`,isZip:e.name.toLowerCase().endsWith(`.zip`),is3mf:e.name.toLowerCase().endsWith(`.3mf`)}));u(e=>[...e,...t]),i&&e.length>0&&A(t)},M=e=>{u(t=>t.filter((t,n)=>n!==e))},N=(0,y.useRef)(!1);(0,y.useEffect)(()=>{N.current||!s||s.length===0||(N.current=!0,j(s))},[]);let P=l.some(e=>e.isZip&&e.status===`pending`),F=l.some(e=>e.file.name.toLowerCase().endsWith(`.stl`)&&e.status===`pending`),I=l.some(e=>e.is3mf&&e.status===`pending`),L=l.filter(e=>e.status===`pending`).length,R=l.length>0&&L===0&&!p;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:c(`fileManager.uploadFiles`)}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{onDragOver:T,onDragLeave:E,onDrop:D,onClick:()=>w.current?.click(),className:`border-2 border-dashed rounded-lg p-8 text-center cursor-pointer transition-colors ${d?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Vu,{className:`w-10 h-10 mx-auto mb-3 ${d?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:c(d?`fileManager.dropFilesHere`:`fileManager.dragDropFiles`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:c(`fileManager.orClickToBrowse`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-2`,children:c(`fileManager.allFileTypesSupported`)})]}),(0,G.jsx)(`input`,{ref:w,type:`file`,multiple:!0,accept:o,className:`hidden`,onChange:O}),P&&(0,G.jsx)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Po,{className:`w-5 h-5 text-blue-600 dark:text-blue-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-blue-700 dark:text-blue-300 font-medium`,children:c(`fileManager.zipFilesDetected`)}),(0,G.jsx)(`p`,{className:`text-xs text-blue-700/80 dark:text-blue-300/70 mt-1`,children:c(`fileManager.zipExtractOptions`)}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h,onChange:e=>g(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.preserveZipStructure`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.createFolderFromZip`)})]})]})]})}),I&&(0,G.jsx)(`div`,{className:`p-3 bg-purple-50 dark:bg-purple-500/10 border border-purple-300 dark:border-purple-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-purple-600 dark:text-purple-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-purple-700 dark:text-purple-300 font-medium`,children:c(`fileManager.threemfDetected`)}),(0,G.jsx)(`p`,{className:`text-xs text-purple-700/80 dark:text-purple-300/70 mt-1`,children:c(`fileManager.threemfExtractionInfo`)})]})]})}),(F||P)&&(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Hc,{className:`w-5 h-5 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-green font-medium`,children:c(`fileManager.stlThumbnailGeneration`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-green/70 mt-1`,children:c(P&&!F?`fileManager.zipMayContainStl`:`fileManager.thumbnailsCanBeGenerated`)}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>x(e.target.checked),className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:c(`fileManager.generateThumbnailsForStl`)})]})]})]})}),l.length>0&&(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-2`,children:l.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-2 bg-bambu-dark rounded-lg`,children:[e.isZip?(0,G.jsx)(Po,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0`}):(0,G.jsx)(pc,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.file.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[(e.file.size/1024/1024).toFixed(2),` MB`,e.isZip&&e.status===`pending`&&(0,G.jsxs)(`span`,{className:`text-blue-700 dark:text-blue-400 ml-2`,children:[`• `,c(`fileManager.willBeExtracted`)]}),e.extractedCount!==void 0&&(0,G.jsxs)(`span`,{className:`text-green-700 dark:text-green-400 ml-2`,children:[`• `,c(`fileManager.filesExtracted`,{count:e.extractedCount})]})]}),e.status===`error`&&e.error&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1 break-words`,children:e.error})]}),e.status===`pending`&&(0,G.jsx)(`button`,{onClick:()=>M(t),className:`p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray`})}),e.status===`uploading`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`}),e.status===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-green-500`}),e.status===`error`&&(0,G.jsx)(`span`,{title:e.error,children:(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-500`})})]},t))}),S&&(0,G.jsx)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300`,children:S})]})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:c(`common.cancel`)}),!R&&(0,G.jsx)(Q,{onClick:()=>A(l),disabled:L===0||p,children:p?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),c(`fileManager.uploading`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),c(`common.upload`),` `,L>0?`(${L})`:``]})})]})]})})}function _U(e){if(!e)return null;let t=[e.brand,e.material,e.subtype].filter(Boolean);return t.length>0?t.join(` `):null}function vU(e,t){let n=[],r=e?.ams_extruder_map,i=!!e?.nozzles?.[1]?.nozzle_diameter||r&&Object.keys(r).length>0||(e?.vt_tray?.length??0)>1;e?.ams?.forEach(e=>{let i=e.tray.length===1;e.tray.forEach(a=>{if(a.tray_type){let o=mp(a.tray_color),s=Mp(e.id,a.id,!1),c=t?.get(s);n.push({type:a.tray_type,color:o,colorName:c?.color_name?.trim()||Df(o,a.tray_sub_brands),amsId:e.id,trayId:a.id,isHt:i,isExternal:!1,label:jp(e.id,a.id,i,!1),globalTrayId:s,trayInfoIdx:a.tray_info_idx||``,traySubBrands:a.tray_sub_brands||``,spoolName:_U(c)??void 0,extruderId:r?.[String(e.id)],remain:a.remain??-1})}})});for(let r of e?.vt_tray??[])if(r.tray_type){let a=mp(r.tray_color),o=r.id??254,s=(e?.vt_tray?.length??0)>1,c=t?.get(o);n.push({type:r.tray_type,color:a,colorName:c?.color_name?.trim()||Df(a,r.tray_sub_brands),amsId:-1,trayId:o-254,isHt:!1,isExternal:!0,label:s?o===254?`Ext-L`:`Ext-R`:`External`,globalTrayId:o,trayInfoIdx:r.tray_info_idx||``,traySubBrands:r.tray_sub_brands||``,spoolName:_U(c)??void 0,extruderId:i?255-o:void 0,remain:r.remain??-1})}return n}function yU(e,t,n,r){let i=vU(t);if(i.length!==0)return SU(xU(e,i,{},n,r,t?.fila_switch?.installed===!0))}function wke(e,t){return(0,y.useMemo)(()=>vU(e,t),[e,t])}function bU(e,t){let n=hp(t);return n?hp(e)===n||wp(e,t):!0}function xU(e,t,n,r,i,a=!1){if(!e?.filaments||e.filaments.length===0)return[];let o=new Set(Object.values(n));return e.filaments.map(e=>{let s=e.slot_id||0;if(s>0&&n[s]!==void 0){let r=n[s],i=t.find(e=>e.globalTrayId===r);if(i){let t=Cp(i.type,e.type),n=bU(i.color,e.color),r;return r=t&&n?`match`:t?`type_only`:`mismatch`,{...e,loaded:i,hasFilament:!0,typeMatch:t,colorMatch:n,status:r,isManual:!0}}}let c=e.tray_info_idx||``,l=t.filter(e=>!o.has(e.globalTrayId));e.nozzle_id!=null&&!a&&(l=l.filter(t=>t.extruderId===e.nozzle_id)),r&&(l=[...l].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let u,d,f,p;if(c){let t=l.filter(e=>e.trayInfoIdx===c);t.length===1?u=t[0]:t.length>1&&(r&&t.sort((e,t)=>Vp(Bp(e,i),Bp(t,i))),d=t.find(t=>Cp(t.type,e.type)&&hp(t.color)===hp(e.color)),d||(f=Ap(t.filter(t=>Cp(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=t.find(t=>Cp(t.type,e.type))))}!u&&!d&&!f&&!p&&(d=l.find(t=>Cp(t.type,e.type)&&hp(t.color)===hp(e.color)),d||(f=Ap(l.filter(t=>Cp(t.type,e.type)),e.color,e=>e.color)),!d&&!f&&(p=l.find(t=>Cp(t.type,e.type))));let m=u||d||f||p||void 0;m&&o.add(m.globalTrayId);let h=!!m,g=h,_=h&&bU(m.color,e.color),v;return v=h?_?`match`:`type_only`:`mismatch`,{...e,loaded:m,hasFilament:h,typeMatch:g,colorMatch:_,status:v,isManual:!1}})}function SU(e){if(e.length===0)return;let t=Math.max(...e.map(e=>e.slot_id||0));if(t<=0)return;let n=Array(t).fill(-1);return e.forEach(e=>{e.slot_id&&e.slot_id>0&&(n[e.slot_id-1]=e.loaded?.globalTrayId??-1)}),n}function CU(e,t,n,r,i,a){let o=wke(t,a),s=t?.fila_switch?.installed===!0,c=(0,y.useMemo)(()=>xU(e,o,n,r,i,s),[e,o,n,r,s,i]);return{loadedFilaments:o,filamentComparison:c,amsMapping:(0,y.useMemo)(()=>o.length===0?void 0:SU(c),[c,o.length]),hasTypeMismatch:c.some(e=>e.status===`mismatch`),hasColorMismatch:c.some(e=>e.status===`type_only`)}}function Tke(e,t,n,r,i){if(!e||e.length===0)return{exactMatches:0,typeOnlyMatches:0,missingTypes:0,totalSlots:0,status:`full`};let a=0,o=0,s=0,c=new Set(Object.values(n));for(let l of e){let e=l.slot_id||0;if(e>0&&n[e]!==void 0){let r=n[e],i=t.find(e=>e.globalTrayId===r);if(i){let e=Cp(i.type,l.type),t=hp(i.color)===hp(l.color)||wp(i.color,l.color);e&&t?a++:e?o++:s++;continue}}let u=t.filter(e=>!c.has(e.globalTrayId));if(l.nozzle_id!=null){let e=u.filter(e=>e.extruderId===l.nozzle_id);e.length>0&&(u=e)}r&&(u=[...u].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let d=u.find(e=>Cp(e.type,l.type)&&hp(e.color)===hp(l.color)),f=d?void 0:Ap(u.filter(e=>Cp(e.type,l.type)),l.color,e=>e.color),p=d||f?void 0:u.find(e=>Cp(e.type,l.type)),m=d??f??p;m&&c.add(m.globalTrayId),d||f?a++:p?o++:s++}let l=e.length,u=`full`;return s>0?u=`missing`:o>0&&(u=`partial`),{exactMatches:a,typeOnlyMatches:o,missingTypes:s,totalSlots:l,status:u}}function Eke(e,t,n,r,i){if(!e?.filaments||e.filaments.length===0)return;let a=vU(t);if(a.length===0)return;let o=new Set(Object.values(n)),s=[];for(let t of e.filaments){let e=t.slot_id||0;if(e>0&&n[e]!==void 0){s.push({slot_id:e,globalTrayId:n[e]});continue}let c=a.filter(e=>!o.has(e.globalTrayId));if(t.nozzle_id!=null){let e=c.filter(e=>e.extruderId===t.nozzle_id);e.length>0&&(c=e)}r&&(c=[...c].sort((e,t)=>Vp(Bp(e,i),Bp(t,i))));let l=c.find(e=>Cp(e.type,t.type)&&hp(e.color)===hp(t.color)),u=l?void 0:Ap(c.filter(e=>Cp(e.type,t.type)),t.color,e=>e.color),d=l||u?void 0:c.find(e=>Cp(e.type,t.type)),f=l??u??d;f&&o.add(f.globalTrayId),s.push({slot_id:e,globalTrayId:f?.globalTrayId??-1})}let c=Math.max(...s.map(e=>e.slot_id||0));if(c<=0)return;let l=Array(c).fill(-1);return s.forEach(e=>{e.slot_id&&e.slot_id>0&&(l[e.slot_id-1]=e.globalTrayId)}),l}var wU={useDefault:!0,manualMappings:{},autoConfigured:!1};function Dke(e,t,n,r,i,a,o,s){let c=Co({queries:e.map(t=>({queryKey:[`printer-status`,t],queryFn:()=>Z.getPrinterStatus(t),enabled:e.length>0,staleTime:5e3}))}),l=(0,y.useMemo)(()=>e.map((e,a)=>{let l=c[a],u=l?.data,d=t?.find(t=>t.id===e)?.name||`Printer ${e}`,f=vU(u),p=i[e]||wU,m=s?.get(e),h=Hp(o,u?.ams_filament_backup),g=yU(n,u,h,m),_=p.useDefault?r:p.manualMappings,v=Eke(n,u,_,h,m),y=Tke(n?.filaments,f,_,h,m);return{printerId:e,printerName:d,status:u,isLoading:l?.isLoading??!1,loadedFilaments:f,autoMapping:g,finalMapping:v,matchStatus:y.status,exactMatches:y.exactMatches,typeOnlyMatches:y.typeOnlyMatches,missingTypes:y.missingTypes,totalSlots:y.totalSlots,config:p,inventoryByTrayId:m}}),[e,c,t,n,i,r,o,s]),u=c.some(e=>e.isLoading),d=(e,t)=>{a(n=>({...n,[e]:{...n[e]||wU,...t}}))},f=e=>{let t=l.find(t=>t.printerId===e);if(!t||!t.status||!n?.filaments)return;let r=yU(n,t.status,Hp(o,t.status?.ams_filament_backup),s?.get(e));if(!r)return;let i={};r.forEach((e,t)=>{e!==-1&&(i[t+1]=e)}),d(e,{useDefault:!1,manualMappings:i,autoConfigured:!0})};return{printerResults:l,isLoading:u,perPrinterConfigs:i,updatePrinterConfig:d,autoConfigureAll:()=>{for(let t of e)f(t)},autoConfigurePrinter:f,getFinalMapping:e=>l.find(t=>t.printerId===e)?.finalMapping,allPrintersReady:l.every(e=>e.matchStatus!==`missing`)}}var TU=`/img/bed`,Oke={"cool plate":{icon:`${TU}/bed_cool.png`,label:`Cool Plate`},"pc plate":{icon:`${TU}/bed_cool.png`,label:`Cool Plate`},"cool plate (supertack)":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"supertack plate":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"bambu cool plate supertack":{icon:`${TU}/bed_cool_supertack.png`,label:`Cool Plate SuperTack`},"engineering plate":{icon:`${TU}/bed_engineering.png`,label:`Engineering Plate`},"high temp plate":{icon:`${TU}/bed_high_templ.png`,label:`High Temp Plate`},"textured pei plate":{icon:`${TU}/bed_pei.png`,label:`Textured PEI Plate`},"pei plate":{icon:`${TU}/bed_pei.png`,label:`PEI Plate`},"smooth pei plate":{icon:`${TU}/bed_pei_cool.png`,label:`Smooth PEI Plate`}};function EU(e){return e?Oke[e.trim().toLowerCase()]??null:null}function kke(e,t){if(t==null)return;let n=e?.slicer_ams_mapping;if(!(!n||typeof n!=`object`)&&n.printer_id===t&&!(!Array.isArray(n.mapping)||n.mapping.length===0))return n.mapping}function Ake(e){let t=e.trim().split(/\s+/);return t.length<=1?e.trim():t.slice(1).join(` `)}function DU(e){let{data:t}=K({queryKey:[`builtin-filaments`],queryFn:()=>Z.getBuiltinFilaments(),staleTime:300*1e3}),{data:n}=K({queryKey:[`filament-id-map`],queryFn:()=>Z.getFilamentIdMap(),staleTime:300*1e3}),r=(0,y.useMemo)(()=>{let e={};for(let n of t||[])n.filament_id&&(e[n.filament_id]=n.name);for(let[t,r]of Object.entries(n||{}))t&&r&&(e[t]=r);return e},[t,n]),i=(0,y.useMemo)(()=>(e||[]).map(e=>{let t=e.tray_info_idx&&r[e.tray_info_idx]||e.type;return{resolvedName:t,materialHint:Ake(t),color:e.color}}),[e,r]),a=Co({queries:i.map(({color:e,materialHint:t})=>({queryKey:[`color-by-material`,e,t],queryFn:()=>Z.getColorByMaterial(e,t),enabled:!!e,staleTime:300*1e3}))});return i.map(({resolvedName:e,color:t},n)=>({resolvedName:e,colorLabel:(a[n]?.data?.color_name??null)||Df(t)}))}var OU=Array.from({length:6},(e,t)=>t+1),jke=0;function kU(e){let t=new Map,n;for(let r of e??[]){if(r.id===jke){n=r;continue}let e=r.id-15;e>=1&&e<=6&&t.set(e,r)}let r=OU.filter(e=>!t.has(e));return r.length===1&&n&&(n.nozzle_diameter||n.nozzle_type)&&t.set(r[0],n),t}function AU(e,t){if(!e||!e.nozzle_diameter&&!e.nozzle_type)return!1;let n=Number.parseFloat(e.nozzle_diameter),r=Number.parseFloat(t.nozzle_diameter);if(!Number.isFinite(n)||!Number.isFinite(r)||Math.abs(n-r)>.005)return!1;let i=(t.volume_type||``).trim().toLowerCase();if(i&&e.nozzle_type){let t=e.nozzle_type.toUpperCase().startsWith(`HH`);if(i.startsWith(`high flow`)!==t)return!1}return!0}function Mke(e,t,n){let r=kU(e);return OU.map(e=>{let i=r.get(e),a=AU(i,t),o;return a||(o=i?n(`printModal.rackWrongNozzle`,{has:`${i.nozzle_diameter||`?`} ${i.nozzle_type||``}`.trim(),needs:`${t.nozzle_diameter} ${t.volume_type}`.trim()}):n(`printModal.rackEmptyPosition`)),{position:e,diameter:i?.nozzle_diameter??``,nozzleType:i?.nozzle_type??``,filamentColor:i?.filament_color??``,eligible:a,reason:o}})}function Nke(e,t,n={}){let r=kU(e),i={},a=new Set,o=[...t.keys()].filter(e=>t.get(e).on_rack).sort((e,t)=>e-t);for(let e of o){let o=n[e];if(o!=null){if(a.has(o)||!AU(r.get(o),t.get(e)))return null;i[e]=o,a.add(o)}}for(let e of o){if(i[e]!=null)continue;let n=t.get(e),o=OU.filter(e=>!a.has(e)&&AU(r.get(e),n));if(o.length===0)return null;let s=jU(n.filament_color),c=(s?o.find(e=>jU(r.get(e)?.filament_color)===s):void 0)??o[0];i[e]=c,a.add(c)}return i}function jU(e){return(e??``).trim().replace(/^#/,``).slice(0,6).toUpperCase()}function MU({printerId:e,filamentReqs:t,manualMappings:n,onManualMappingChange:r,onEstimatedCostChange:i,budgetAvailable:a,quantity:o=1,currencySymbol:s,defaultCostPerKg:c,defaultExpanded:l=!1,forceColorMatch:u,onForceColorMatchChange:d,plateLabel:f,archiveAmsMapping:p,nozzleRackChoice:m,onNozzleRackChoiceChange:h}){let{t:g}=U(),_=co(),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(l),[C,w]=(0,y.useState)(!1),T=(0,y.useRef)([]);(0,y.useEffect)(()=>{w(!1),T.current=[]},[p,f,e]);let E=()=>{if(!p||!t?.filaments)return;if(C){let e={...n};for(let t of T.current)delete e[t];r(e),T.current=[],w(!1);return}let e={...n},i=[];for(let n of t.filaments){let t=n.slot_id-1;n.slot_id>0&&t>=0&&t=0&&(e[n.slot_id]=p[t],i.push(n.slot_id))}r(e),T.current=i,w(!0)},{data:D}=K({queryKey:[`printer-status`,e],queryFn:()=>Z.getPrinterStatus(e),enabled:!!e}),{data:O}=K({queryKey:[`spool-assignments`,e],queryFn:()=>Z.getAssignments(e),enabled:!!e}),{data:k}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:A}=K({queryKey:[`printer-inventory-remain`,e],queryFn:()=>Z.getInventoryRemain(e),enabled:!!e,staleTime:30*1e3,refetchOnMount:`always`}),j=(0,y.useMemo)(()=>{if(!A?.inventory_remain_g)return;let e=new Map;return Object.entries(A.inventory_remain_g).forEach(([t,n])=>{let r=Number(t);Number.isNaN(r)||e.set(r,n)}),e},[A]),M=(0,y.useMemo)(()=>{let e=A?.slot_materials;if(!e?.length)return;let t=new Map;return e.forEach(e=>{e.spool&&t.set(e.global_tray_id,e.spool)}),t.size>0?t:void 0},[A]),{loadedFilaments:N,filamentComparison:P,hasTypeMismatch:F,hasColorMismatch:I}=CU(t,D,n,Hp(k?.prefer_lowest_filament,D?.ams_filament_backup),j,M),L=DU(t?.filaments),R=(0,y.useMemo)(()=>{let e=new Map;for(let t of O||[]){let n=t.ams_id===255,r=Mp(t.ams_id,t.tray_id,n);e.set(r,t.spool?.cost_per_kg??null)}return e},[O]),z=(0,y.useMemo)(()=>{let e=new Map;for(let t of O||[]){let n=t.ams_id===255,r=Mp(t.ams_id,t.tray_id,n),i=t.spool;if(!i){e.set(r,null);continue}e.set(r,Math.max(0,Math.round((i.label_weight??0)-(i.weight_used??0))))}return e},[O]),B=(0,y.useMemo)(()=>{let e=0;for(let t of P){let n=t.loaded?.globalTrayId;if(n==null)continue;let r=R.get(n)??null??c;r>0&&(e+=t.used_grams/1e3*r)}return e},[P,R,c]),V=(0,y.useRef)(i);(0,y.useEffect)(()=>{V.current=i},[i]),(0,y.useEffect)(()=>{V.current?.(B>0?B:null)},[B]);let ee=(0,y.useMemo)(()=>Array.from(R.values()).some(e=>e!=null&&e>0),[R]),te=B*Math.max(1,o),ne=a!=null&&te>a,re=t?.filaments&&t.filaments.length>0,ie=t?.filaments?.some(e=>e.nozzle_id!=null)??!1,ae=(0,y.useMemo)(()=>{let e=new Map;for(let n of t?.filaments??[])n.group_id!=null&&n.group&&e.set(n.group_id,n.group);return e},[t]),oe=(D?.nozzle_rack?.some(e=>e.id>=16)??!1)&&[...ae.values()].some(e=>e.on_rack),se=(0,y.useMemo)(()=>oe?Nke(D?.nozzle_rack,ae,m??{})??m??{}:{},[oe,D?.nozzle_rack,ae,m]),H=(e,t)=>{h&&h({...se,[e]:t})},ce=D?.fila_switch?.installed===!0,le=D?.ams_switch_inlet,ue=e=>ce&&le?.[String(e)]||null,de=(0,y.useMemo)(()=>{if(!ce)return null;let e=new Set;for(let t of P){if(!t.loaded||t.loaded.isExternal)return null;let n=ue(t.loaded.amsId);if(!n)return null;e.add(n)}return P.length<2||e.size!==1?null:[...e][0]},[ce,le,P]);if(!re||!D)return null;let fe=F?`#f97316`:I?`#facc15`:`#00ae42`,pe=(e,t)=>{if(e>0)if(t===``){let t={...n};delete t[e],r(t)}else r({...n,[e]:parseInt(t,10)})};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>S(!x),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,G.jsx)(Os,{className:`w-4 h-4`,fill:fe,stroke:`none`}),(0,G.jsx)(`span`,{children:f?`${g(`printModal.filamentMapping`)} — ${f}`:g(`printModal.filamentMapping`)}),F?(0,G.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:[`(`,g(`printModal.statusTypeNotFound`),`)`]}):I?(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,g(`printModal.statusColorMismatch`),`)`]}):(0,G.jsxs)(`span`,{className:`text-xs text-bambu-green`,children:[`(`,g(`printModal.statusReady`),`)`]}),x?(0,G.jsx)(gs,{className:`w-4 h-4 ml-auto`}):(0,G.jsx)(ps,{className:`w-4 h-4 ml-auto`})]}),x&&(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:g(`printModal.clickToChangeSlot`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[p&&(0,G.jsxs)(`button`,{type:`button`,onClick:E,title:g(`printModal.useArchiveMappingTooltip`),className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border transition-colors ${C?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:g(`printModal.useArchiveMapping`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:async()=>{b(!0);try{await Z.refreshPrinterStatus(e),await new Promise(e=>setTimeout(e,500)),await _.refetchQueries({queryKey:[`printer-status`,e]})}finally{b(!1)}},className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:v,children:[(0,G.jsx)(Hl,{className:`w-3 h-3 ${v?`animate-spin`:``}`}),(0,G.jsx)(`span`,{children:g(`printModal.reRead`)})]})]})]}),de&&(0,G.jsxs)(`div`,{className:`flex items-start gap-1.5 rounded border border-yellow-500/40 bg-yellow-500/10 px-2 py-1.5 text-xs text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:g(`printModal.ftsSameInletHint`,{inlet:de})})]}),P.map((e,t)=>{let n=e.slot_id??0,r=n>0&&d!=null,{resolvedName:i,colorLabel:a}=L[t]??{resolvedName:e.type,colorLabel:Df(e.color)},[o,s]=Of({name:a,hex:e.color},{name:e.loaded?.colorName,hex:e.loaded?.color});return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:oe?`16px minmax(210px, 1.4fr) auto 2fr 16px`:`16px minmax(70px, 1fr) auto 2fr 16px`},children:[(0,G.jsx)(`span`,{title:g(`printModal.requiredTooltip`,{name:i,color:o}),children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,G.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0`,children:[oe&&e.group_id!=null&&e.group?e.group.on_rack?(0,G.jsx)(`select`,{value:se[e.group_id]??``,onChange:t=>H(e.group_id,Number(t.target.value)),disabled:!h,title:g(`printModal.rackPositionTooltip`),"aria-label":g(`printModal.rackPosition`),className:`shrink-0 bg-bambu-dark-tertiary text-white text-[10px] font-bold rounded px-1 py-0.5 border border-bambu-dark-tertiary focus:border-bambu-green outline-none disabled:opacity-60`,children:Mke(D?.nozzle_rack,e.group,g).map(e=>(0,G.jsxs)(`option`,{value:e.position,disabled:!e.eligible,title:e.reason,children:[`R`,e.position,e.diameter?` · ${e.diameter}`:``]},e.position))}):(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:g(`printModal.leftNozzleTooltip`),children:g(`printModal.leftNozzle`)}):ie&&e.nozzle_id!=null?(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-3.5 h-3.5 rounded text-[9px] font-bold leading-none bg-bambu-gray/20 text-bambu-gray shrink-0`,title:e.nozzle_id===1?g(`printModal.leftNozzleTooltip`):g(`printModal.rightNozzleTooltip`),children:e.nozzle_id===1?g(`printModal.leftNozzle`):g(`printModal.rightNozzle`)}):null,(0,G.jsx)(`span`,{className:`truncate min-w-0`,title:i,children:i}),(0,G.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,e.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:e.loaded?.globalTrayId??``,onChange:e=>pe(n,e.target.value),className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${e.status===`match`?`border-bambu-green/50 text-bambu-green`:e.status===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${e.isManual?`ring-1 ring-blue-400/50`:``}`,title:e.isManual?g(`printModal.manuallySelected`):g(`printModal.autoMatched`),children:[(0,G.jsxs)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:[`-- `,g(`printModal.selectSlot`),` --`]}),N.map(e=>{let t=z.get(e.globalTrayId),n=t==null?``:g(`printModal.slotRemainingShort`,{grams:t,defaultValue:` - ${t}g left`}),r=ue(e.amsId),i=r==null?``:` [${gp[r]}]`;return(0,G.jsxs)(`option`,{value:e.globalTrayId,className:`bg-bambu-dark text-white`,children:[e.label,`: `,e.spoolName||e.traySubBrands||e.type,` (`,e.colorName,`)`,n,i]},e.globalTrayId)})]}),e.status===`match`?(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}):e.status===`type_only`?(0,G.jsx)(`span`,{title:o&&s?g(`printModal.sameTypeDifferentColorDetail`,{required:o,loaded:s}):g(`printModal.sameTypeDifferentColor`),children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,G.jsx)(`span`,{title:g(`printModal.filamentTypeNotLoaded`),children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]}),r&&(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u?.[n]??!1,onChange:e=>d(n,e.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,G.jsx)(wl,{className:`w-3 h-3`}),g(`printModal.forceColorMatch`)]})]},t)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[g(`printModal.totalCost`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:B>0||ee?`${s}${B.toFixed(2)}`:`N/A`}),o>1&&B>0&&(0,G.jsx)(`span`,{className:`ml-2`,children:g(`printModal.totalCostForQuantity`,`total: {{cost}}`,{cost:`${s}${te.toFixed(2)}`})})]}),ne&&(0,G.jsx)(`p`,{className:`text-xs text-red-400 mt-2`,children:g(`printModal.insufficientBudget`,`Insufficient budget for this cost center.`)}),F&&(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-2`,children:g(`printModal.requiredTypeNotInPrinter`)})]})]})}function NU({filamentReqs:e,availableFilaments:t,overrides:n,onChange:r,forceColorMatch:i,onForceColorMatchChange:a,plateLabel:o,showHint:s=!0}){let{t:c}=U(),l=DU(e?.filaments),u=(0,y.useMemo)(()=>{let e={};for(let n of t){let t=Sp(n.type);e[t]||(e[t]=[]),e[t].push(n)}return e},[t]),d=e?.filaments;if(!d||d.length===0||t.length===0)return null;let f=(e,t)=>{if(t===``){let t={...n};delete t[e],r(t)}else{let[i,a]=t.split(`|`);r({...n,[e]:{type:i,color:a}})}};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:(0,G.jsx)(`span`,{children:o?`${c(`printModal.filamentOverride`)} — ${o}`:c(`printModal.filamentOverride`)})}),s&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:c(`printModal.filamentOverrideHint`)}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 space-y-2`,children:d.map((e,t)=>{let r=n[e.slot_id],o=!!r,s=u[Sp(e.type)]||[],d=e.nozzle_id==null?s:s.filter(t=>t.extruder_id==null||t.extruder_id===e.nozzle_id),{resolvedName:p,colorLabel:m}=l[t]??{resolvedName:e.type,colorLabel:Df(e.color)};return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:`16px minmax(70px, 1fr) auto 2fr 20px`},children:[(0,G.jsx)(`span`,{title:`${c(`printModal.originalFilament`)}: ${p} - ${m}`,children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:e.color,stroke:e.color})}),(0,G.jsxs)(`span`,{className:`text-white truncate`,children:[p,` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:o?`${r.type}|${r.color}`:``,onChange:t=>f(e.slot_id,t.target.value),disabled:d.length===0,className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${o?`border-blue-500/50 dark:border-blue-400/50 text-blue-700 dark:text-blue-400`:`border-bambu-gray/30 text-bambu-gray`}`,children:[(0,G.jsxs)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:[c(`printModal.originalFilament`),`: `,p,` (`,m,`)`]}),d.map((e,t)=>(0,G.jsxs)(`option`,{value:`${e.type}|${e.color}`,className:`bg-bambu-dark text-white`,children:[e.tray_sub_brands||e.type,` (`,Df(e.color,e.tray_sub_brands),`)`]},`${e.type}-${e.color}-${e.tray_sub_brands}-${t}`))]}),o?(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(e.slot_id,``),className:`text-bambu-gray hover:text-white transition-colors`,title:c(`printModal.resetToOriginal`),children:(0,G.jsx)(Wl,{className:`w-3 h-3`})}):(0,G.jsx)(`span`,{className:`w-3`})]}),(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-1.5 text-xs text-bambu-gray cursor-pointer select-none pl-5`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i?.[e.slot_id]??!1,onChange:t=>a?.(e.slot_id,t.target.checked),className:`accent-bambu-green w-3 h-3`}),(0,G.jsx)(wl,{className:`w-3 h-3`}),c(`printModal.forceColorMatch`)]})]},e.slot_id)})})]})}function Pke({plates:e,isMultiPlate:t,selectedPlates:n,onToggle:r,onSelectAll:i,onDeselectAll:a,multiSelect:o,quantities:s,onQuantityChange:c}){let{t:l}=U();if(!t||e.length<=1)return null;let u=n.size===e.length,d=!!s&&!!c,f=d?e.reduce((e,t)=>n.has(t.index)?e+(s[t.index]??1):e,0):0;return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`Select Plate`,o?`s`:``,` to Print`]}),n.size===0&&(0,G.jsxs)(`span`,{className:`text-xs text-orange-700 dark:text-orange-400 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),`Selection required`]}),o&&i&&a&&(0,G.jsx)(`button`,{type:`button`,onClick:u?a:i,className:`ml-auto text-xs px-2 py-0.5 rounded-full border transition-colors ${u?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-gray`}`,children:u?l(`queue.deselectAll`):l(`queue.selectAllPlates`,{count:e.length})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:e.map(e=>{let t=n.has(e.index);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg border transition-colors ${t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.index),className:`flex items-center gap-2 text-left min-w-0 flex-1`,children:[o&&(t?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`})),e.has_thumbnail&&e.thumbnail_url!=null?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-10 h-10 rounded object-cover bg-bambu-dark-tertiary`}):(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name||`Plate ${e.index}`}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`...`:``):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${lp(e.print_time_seconds)}`]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1 mt-0.5 truncate`,title:t.label,children:[(0,G.jsx)(`img`,{src:t.icon,alt:``,className:`w-3.5 h-3.5 object-contain flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:t.label})]}):null})()]}),!o&&t&&(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green flex-shrink-0`})]}),d&&t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,"aria-hidden":`true`,children:`×`}),(0,G.jsx)(`input`,{type:`number`,min:1,max:999,value:s[e.index]??1,"aria-label":l(`queue.plateQuantityLabel`,{plate:e.name||l(`queue.plateNumber`,{index:e.index})}),onChange:t=>c(e.index,Math.max(1,Math.min(999,parseInt(t.target.value)||1))),className:`w-14 px-1.5 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center focus:outline-none focus:ring-1 focus:ring-bambu-green`})]})]},e.index)})}),d&&f>n.size&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:l(`queue.plateQuantityTotal`,{count:f})})]})}var Fke=new Set([`IDLE`,`FINISH`,`FAILED`]);function Ike({printerResult:e,filamentReqs:t,onUpdateConfig:n}){let r=co(),[i,a]=(0,y.useState)(!1),o=(t,r)=>{if(t<=0)return;let i={...e.config.manualMappings};r===``?delete i[t]:i[t]=parseInt(r,10),n({useDefault:!1,manualMappings:i,autoConfigured:!1})},s=async()=>{a(!0);try{await Z.refreshPrinterStatus(e.printerId),await new Promise(e=>setTimeout(e,500)),await r.refetchQueries({queryKey:[`printer-status`,e.printerId]})}finally{a(!1)}},c=t.map(t=>{let n=t.slot_id||0,i=e.config.manualMappings[n],a,o=!1;if(i!==void 0)a=e.loadedFilaments.find(e=>e.globalTrayId===i),o=!0;else{let n=new Set(Object.values(e.config.manualMappings)),i=r.getQueryData([`settings`]);a=eee(t,e.loadedFilaments,n,Hp(i?.prefer_lowest_filament,e.status?.ams_filament_backup),e.inventoryByTrayId)}let s=`mismatch`;if(a){let e=Cp(a.type,t.type),n=hp(a.color)===hp(t.color)||wp(a.color,t.color);e&&n?s=`match`:e&&(s=`type_only`)}return{req:t,loaded:a,status:s,isManual:o}});return(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom slot mapping`}),(0,G.jsxs)(`button`,{type:`button`,onClick:s,className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,disabled:i,children:[(0,G.jsx)(Hl,{className:`w-3 h-3 ${i?`animate-spin`:``}`}),(0,G.jsx)(`span`,{children:`Re-read`})]})]}),c.map(({req:t,loaded:n,status:r,isManual:i},a)=>(0,G.jsxs)(`div`,{className:`grid items-center gap-2 text-xs`,style:{gridTemplateColumns:`16px minmax(70px, 1fr) auto 2fr 16px`},children:[(0,G.jsx)(`span`,{title:`Required: ${t.type} - ${Df(t.color)}`,children:(0,G.jsx)(Os,{className:`w-3 h-3`,fill:t.color,stroke:t.color})}),(0,G.jsxs)(`span`,{className:`text-white flex items-center gap-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`truncate min-w-0`,title:t.type,children:t.type}),(0,G.jsxs)(`span`,{className:`text-bambu-gray shrink-0 whitespace-nowrap`,children:[`(`,t.used_grams,`g)`]})]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`→`}),(0,G.jsxs)(`select`,{value:n?.globalTrayId??``,onChange:e=>o(t.slot_id||0,e.target.value),className:`flex-1 px-2 py-1 rounded border text-xs bg-bambu-dark-secondary focus:outline-none focus:ring-1 focus:ring-bambu-green ${r===`match`?`border-bambu-green/50 text-bambu-green`:r===`type_only`?`border-yellow-500 dark:border-yellow-400/50 text-yellow-700 dark:text-yellow-400`:`border-orange-500 dark:border-orange-400/50 text-orange-700 dark:text-orange-400`} ${i?`ring-1 ring-blue-400/50`:``}`,title:i?`Manually selected`:`Auto-matched`,children:[(0,G.jsx)(`option`,{value:``,className:`bg-bambu-dark text-bambu-gray`,children:`-- Select slot --`}),Up(e.loadedFilaments,t.nozzle_id).map(e=>(0,G.jsxs)(`option`,{value:e.globalTrayId,className:`bg-bambu-dark text-white`,children:[e.label,`: `,e.traySubBrands||e.type,` (`,e.colorName,`)`]},e.globalTrayId))]}),r===`match`?(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}):r===`type_only`?(0,G.jsx)(`span`,{title:`Same type, different color`,children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`})}):(0,G.jsx)(`span`,{title:`Filament type not loaded`,children:(0,G.jsx)(Lu,{className:`w-3 h-3 text-orange-600 dark:text-orange-400`})})]},a))]})}function Lke({printers:e,selectedPrinterIds:t,onMultiSelect:n,isLoading:r=!1,allowMultiple:i=!1,showInactive:a=!1,disableBusy:o=!1,printerMappingResults:s,filamentReqs:c,onAutoConfigurePrinter:l,onUpdatePrinterConfig:u,assignmentMode:d=`printer`,onAssignmentModeChange:f,targetModel:p,onTargetModelChange:m,targetLocation:h,onTargetLocationChange:g,slicedForModel:_}){let[v,b]=(0,y.useState)(!1),x=a?e:e.filter(e=>e.is_active),S=Co({queries:x.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),staleTime:5e3}))}),C=(0,y.useMemo)(()=>{let e=new Map;return x.forEach((t,n)=>{let r=S[n];r?.data&&e.set(t.id,r.data)}),e},[x,S]),w=e=>{let t=C.get(e);return t?t.connected?!Fke.has(t.state??``):!0:!1},T=e=>{let t=C.get(e);if(!t)return null;if(!t.connected)return`Offline`;let n=t.state;return n?n===`RUNNING`?t.stg_cur_name||`Printing`:n===`PREPARE`?`Preparing`:n===`PAUSE`?`Paused`:n===`IDLE`?`Idle`:n===`FINISH`?`Finished`:n===`FAILED`?`Failed`:n:null},E=(0,y.useMemo)(()=>{if(d!==`printer`||!_||v)return x;let e=x.filter(e=>e.model===_);return e.length>0?e:x},[x,d,_,v]),D=x.length-E.length,O=(0,y.useMemo)(()=>{let e=x.map(e=>e.model).filter(e=>!!e);return[...new Set(e)].sort()},[x]),k=(0,y.useMemo)(()=>{if(!p)return[];let e=x.filter(e=>e.model===p&&e.location).map(e=>e.location).filter(e=>!!e);return[...new Set(e)].sort()},[x,p]),A=f&&m&&O.length>0,j=i&&t.length>1&&s&&c?.filaments&&c.filaments.length>0&&l&&u;if(r)return(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(E.length===0)return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm mb-4`,children:[(0,G.jsx)(ys,{className:`w-4 h-4`}),`No `,a?``:`active `,`printers available`]});let M=e=>{o&&w(e)||(i?t.includes(e)?n(t.filter(t=>t!==e)):n([...t,e]):n([e]))},N=()=>{n((o?E.filter(e=>!w(e.id)):E).map(e=>e.id))},P=()=>{n([])},F=(e,t,n)=>{n.stopPropagation(),!(!l||!u)&&(t?l(e):u(e,{useDefault:!0,manualMappings:{},autoConfigured:!1}))},I=e=>t.includes(e),L=t.length,R=e=>s?.find(t=>t.printerId===e);return(0,G.jsxs)(`div`,{className:`space-y-2 mb-6`,children:[A&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{f(`printer`),m(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${d===`printer`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm`,children:`Specific Printer`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{f(`model`),n([]),m(_&&O.includes(_)?_:null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${d===`model`?`border-bambu-green bg-bambu-green/10 text-white`:`border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray hover:border-bambu-gray`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),(0,G.jsxs)(`span`,{className:`text-sm`,children:[`Any `,(d===`model`?p:null)||_||`Model`]})]})]}),d===`model`&&A&&(0,G.jsxs)(`div`,{className:`space-y-3 mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:[`Target Model`,_&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray/70`,children:[`(sliced for `,_,`)`]})]}),(0,G.jsxs)(`select`,{value:p||``,onChange:e=>{m(e.target.value||null),g&&g(null)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`Select a model...`}),O.map(e=>{let t=Sm(_,e);return(0,G.jsxs)(`option`,{value:e,disabled:!t,children:[e,t?``:` — incompatible with ${_} G-code`]},e)})]})]}),_&&p&&p!==_&&(Sm(_,p)?(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,_,`, but will be dispatched to a `,p,` printer`]})]}):(0,G.jsxs)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-red-600 dark:text-red-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:[`File was sliced for `,_,` and cannot be dispatched to `,p,` printers — select a compatible model`]})]})),p&&k.length>0&&g&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:`Location Filter (optional)`}),(0,G.jsxs)(`select`,{value:h||``,onChange:e=>g(e.target.value||null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`Any location`}),k.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),p&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Scheduler will assign to first available idle `,p,` printer`,h?` in ${h}`:``]})]}),d===`printer`&&i&&E.length>1&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray mb-2`,children:[(0,G.jsx)(`span`,{children:L===0?`Select printers`:`${L} printer${L===1?``:`s`} selected`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[L0&&(0,G.jsx)(`button`,{type:`button`,onClick:P,className:`text-bambu-gray hover:text-white transition-colors`,children:`Clear`})]})]}),d===`printer`&&E.map(e=>{let t=I(e.id),n=R(e.id),r=n&&!n.config.useDefault,a=w(e.id),s=o&&a,d=T(e.id);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>M(e.id),disabled:s,className:`w-full flex items-center gap-3 p-3 rounded-lg border transition-colors ${s?`border-bambu-dark-tertiary bg-bambu-dark opacity-50 cursor-not-allowed`:t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`} ${e.is_active?``:`opacity-60`}`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${s?`bg-bambu-dark-tertiary`:t?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Rl,{className:`w-5 h-5 ${s?`text-bambu-gray/50`:t?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{className:`text-left flex-1`,children:[(0,G.jsxs)(`p`,{className:`font-medium ${s?`text-bambu-gray`:`text-white`}`,children:[e.name,!e.is_active&&(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs ml-2`,children:`(inactive)`})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[e.model||`Unknown model`,` • `,e.ip_address]})]}),d&&(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${a?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-bambu-green/20 text-bambu-green`}`,children:d}),i&&(0,G.jsx)(`div`,{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors ${s?`border-bambu-gray/30`:t?`bg-bambu-green border-bambu-green`:`border-bambu-gray/50`}`,children:t&&(0,G.jsx)(fs,{className:`w-3 h-3 text-white`})})]}),t&&j&&n&&(0,G.jsxs)(`div`,{className:`ml-4 mt-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:r,onChange:t=>F(e.id,t.target.checked,t),className:`w-3.5 h-3.5 rounded border-bambu-gray/30 bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Custom mapping`})]}),(0,G.jsxs)(`span`,{className:`text-xs ml-2 ${n.matchStatus===`full`?`text-bambu-green`:n.matchStatus===`partial`?`text-yellow-700 dark:text-yellow-400`:`text-orange-700 dark:text-orange-400`}`,children:[`(`,n.exactMatches,`/`,n.totalSlots,` matched)`]}),n.isLoading&&(0,G.jsx)(Hl,{className:`w-3 h-3 text-bambu-gray animate-spin`}),r&&(0,G.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),l(e.id)},className:`ml-auto flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-bambu-gray/30 hover:border-bambu-gray hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray hover:text-white`,children:[(0,G.jsx)(Yu,{className:`w-3 h-3`}),`Auto`]})]}),r&&(0,G.jsx)(Ike,{printerResult:n,filamentReqs:c.filaments,onUpdateConfig:t=>u(e.id,t)})]})]},e.id)}),d===`printer`&&D>0&&!v&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>b(!0),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`}),D,` other printer`,D>1?`s`:``,` hidden (different model) —`,(0,G.jsx)(`span`,{className:`underline`,children:`show all`})]}),d===`printer`&&v&&_&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>b(!1),className:`text-xs text-bambu-gray hover:text-white transition-colors mt-2`,children:(0,G.jsxs)(`span`,{className:`underline`,children:[`Show only `,_,` printers`]})}),d===`printer`&&L===0&&(0,G.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Select at least one printer`]}),d===`model`&&!p&&(0,G.jsxs)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Select a target printer model`]})]})}var PU=[`off`,`auto`,`on`],FU={off:`bg-red-500 text-white`,auto:`bg-blue-500 text-white`,on:`bg-bambu-green text-white`},Rke=[`off`,`on`];function zke({options:e,onChange:t,defaultExpanded:n=!1,showDualNozzleOptions:r=!1}){let{t:i}=U(),[a,o]=(0,y.useState)(n),s=[{key:`bed_levelling`,label:i(`settings.defaultBedLevelling`),desc:i(`settings.defaultBedLevellingDesc`),tristate:!0},{key:`flow_cali`,label:i(`settings.defaultFlowCali`),desc:i(`settings.defaultFlowCaliDesc`),tristate:!0},{key:`vibration_cali`,label:i(`settings.defaultVibrationCali`),desc:i(`settings.defaultVibrationCaliDesc`)},{key:`layer_inspect`,label:i(`settings.defaultLayerInspect`),desc:i(`settings.defaultLayerInspectDesc`)},{key:`timelapse`,label:i(`settings.defaultTimelapse`),desc:i(`settings.defaultTimelapseDesc`)},{key:`nozzle_offset_cali`,label:i(`settings.defaultNozzleOffsetCali`),desc:i(`settings.defaultNozzleOffsetCaliDesc`),dualNozzleOnly:!0,tristate:!0}].filter(e=>!e.dualNozzleOnly||r),c=(n,r)=>{t({...e,[n]:r})},l=(n,r)=>{t({...e,[n]:r})},u=n=>{t({...e,preheat_override:n,...n===`off`?{preheat_chamber_target_override:null}:{}})},d=n=>{if(n===``){t({...e,preheat_chamber_target_override:null});return}let r=parseInt(n,10);Number.isNaN(r)||t({...e,preheat_chamber_target_override:Math.max(0,Math.min(65,r))})};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(!a),className:`flex items-center gap-2 text-sm text-bambu-gray hover:text-white transition-colors w-full`,children:[(0,G.jsx)(ru,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:i(`queue.bulkEdit.printOptions`)}),a?(0,G.jsx)(gs,{className:`w-4 h-4 ml-auto`}):(0,G.jsx)(ps,{className:`w-4 h-4 ml-auto`})]}),a&&(0,G.jsxs)(`div`,{className:`mt-2 bg-bambu-dark rounded-lg p-3 space-y-2`,children:[s.map(({key:t,label:n,desc:r,tristate:a})=>a?(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:PU.map(n=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(t,n),className:`px-2.5 py-1 text-xs rounded transition-colors ${e[t]===n?FU[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${n}`)},n))})]},t):(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r})]}),(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:Rke.map(n=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(t,n===`on`),className:`px-2.5 py-1 text-xs rounded transition-colors ${(e[t]?`on`:`off`)===n?FU[n]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${n}`)},n))})]},t)),(0,G.jsxs)(`div`,{className:`pt-2 mt-1 border-t border-bambu-dark-tertiary/60`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(hc,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:i(`settings.preheatTitle`,`Preheat & Heat Soak`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.preheatPerItemDesc`,`Heat the bed and chamber before this print starts. Defaults to the global Settings → Workflow toggle.`)}),(0,G.jsx)(`div`,{className:`flex gap-1.5 mb-2`,children:[`inherit`,`on`,`off`].map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(t),className:`flex-1 px-2 py-1.5 text-xs rounded transition-colors ${e.preheat_override===t?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.preheatOverride_${t}`,t===`inherit`?`Inherit`:t===`on`?`On`:`Off`)},t))}),e.preheat_override!==`off`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray flex-1`,children:i(`settings.preheatTargetOverride`,`Chamber target override (°C, blank = filament default)`)}),(0,G.jsx)(`input`,{type:`number`,min:0,max:65,step:1,value:e.preheat_chamber_target_override??``,onChange:e=>d(e.target.value),placeholder:`—`,className:`w-16 px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-white text-xs text-right focus:outline-none focus:border-bambu-green`})]}),e.preheat_override!==`off`&&(0,G.jsx)(`p`,{className:`text-[11px] text-bambu-gray mt-1`,children:i(`settings.preheatTargetOverrideHelp`,`0 heats the bed and runs the soak without the chamber. Leave blank and a print with no chamber requirement skips preheat entirely.`)})]})]})]})}function Bke({options:e,onChange:t,dateFormat:n=`system`,timeFormat:r=`system`,canControlPrinter:i=!0,showStagger:a=!1,printerCount:o=0,hasGcodeSnippets:s=!1}){let{t:c}=U(),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!0),[h,g]=(0,y.useState)(!0),_=(0,y.useRef)(null),v=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(e.scheduleType!==`scheduled`){v.current=!1;return}if(!v.current){v.current=!0;let i;e.scheduledTime?(i=new Date(e.scheduledTime),isNaN(i.getTime())&&(i=new Date,i.setHours(i.getHours()+1,0,0,0))):(i=new Date,i.setHours(i.getHours()+1,0,0,0),t({...e,scheduledTime:tp(i)})),u(Yf(i,n)),f(Xf(i,r)),m(!0),g(!0)}},[e.scheduleType,e.scheduledTime,n,r,t,e]);let b=n=>{t({...e,scheduleType:n,requireManualStart:n===`queue`?e.requireManualStart:!1})},x=(r,i)=>{let a=$f(r,n),o=ep(i);m(!!a),g(!!o),a&&o&&(a.setHours(o.hours,o.minutes,0,0),a>new Date&&t({...e,scheduledTime:tp(a)}))},S=e=>{u(e),x(e,d)},C=e=>{f(e),x(l,e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:c(`printModal.whenToPrint`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`asap`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`asap`),children:[(0,G.jsx)(js,{className:`w-4 h-4`}),c(`printModal.asap`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`queue`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`queue`),children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),c(`printModal.queue`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex-1 px-2 py-2 rounded-lg border text-sm flex items-center justify-center gap-1.5 transition-colors ${e.scheduleType===`scheduled`?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,onClick:()=>b(`scheduled`),children:[(0,G.jsx)(as,{className:`w-4 h-4`}),c(`printModal.schedule`)]})]})]}),e.scheduleType===`scheduled`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:c(`printModal.dateTime`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 pr-10 bg-bambu-dark border rounded-lg text-white focus:outline-none ${p?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:l,onChange:e=>S(e.target.value),placeholder:qf(n)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{_.current?.showPicker()},className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,title:c(`printModal.openCalendar`),children:(0,G.jsx)(as,{className:`w-4 h-4`})}),(0,G.jsx)(`input`,{ref:_,type:`datetime-local`,className:`absolute top-0 left-0 w-0 h-0 opacity-0 pointer-events-none`,value:e.scheduledTime,onChange:i=>{let a=i.target.value;if(a){let i=new Date(a);isNaN(i.getTime())||(u(Yf(i,n)),f(Xf(i,r)),m(!0),g(!0),t({...e,scheduledTime:a}))}},tabIndex:-1})]}),(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border rounded-lg text-white focus:outline-none ${h?`border-bambu-dark-tertiary focus:border-bambu-green`:`border-red-500`}`,value:d,onChange:e=>C(e.target.value),placeholder:Jf(r)})})]}),(!p||!h)&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:c(`printModal.invalidDateTime`)})]}),e.scheduleType===`queue`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`requireManualStart`,checked:e.requireManualStart,onChange:n=>t({...e,requireManualStart:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`requireManualStart`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Nc,{className:`w-3.5 h-3.5`}),c(`printModal.requireManualStart`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`requirePrevious`,checked:e.requirePreviousSuccess,onChange:n=>t({...e,requirePreviousSuccess:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`requirePrevious`,className:`text-sm text-bambu-gray`,children:c(`printModal.requirePreviousSuccess`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`autoOffAfter`,checked:e.autoOffAfter,onChange:n=>t({...e,autoOffAfter:n.target.checked}),disabled:!i,className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green disabled:opacity-50`}),(0,G.jsxs)(`label`,{htmlFor:`autoOffAfter`,className:`text-sm flex items-center gap-1 ${i?`text-bambu-gray`:`text-bambu-gray/50`}`,children:[(0,G.jsx)(Ll,{className:`w-3.5 h-3.5`}),c(`printModal.autoOffAfter`)]})]}),s&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`gcodeInjection`,checked:e.gcodeInjection,onChange:n=>t({...e,gcodeInjection:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`gcodeInjection`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Fs,{className:`w-3.5 h-3.5`}),c(`printModal.gcodeInjection`,`Inject auto-print G-code`)]})]}),a&&e.scheduleType!==`queue`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`staggerEnabled`,checked:e.staggerEnabled,onChange:n=>t({...e,staggerEnabled:n.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`label`,{htmlFor:`staggerEnabled`,className:`text-sm flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5`}),c(`printModal.staggerPrinterStarts`,`Stagger printer starts`)]})]}),e.staggerEnabled&&(0,G.jsxs)(`div`,{className:`ml-6 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:c(`printModal.staggerGroupSize`,`Group size`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:o,value:e.staggerGroupSize,onChange:n=>t({...e,staggerGroupSize:Math.max(1,parseInt(n.target.value)||1)}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:c(`printModal.staggerInterval`,`Interval (min)`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:60,value:e.staggerIntervalMinutes,onChange:n=>t({...e,staggerIntervalMinutes:Math.max(1,parseInt(n.target.value)||1)}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]})]}),o>0&&(()=>{let t=Math.ceil(o/e.staggerGroupSize),n=o%e.staggerGroupSize,r=(t-1)*e.staggerIntervalMinutes;return(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[c(`printModal.staggerPreview`,`{{printers}} printers → {{groups}} groups of {{size}}, starting every {{interval}} min`,{printers:o,groups:t,size:e.staggerGroupSize,interval:e.staggerIntervalMinutes}),n!==0&&e.staggerGroupSize1?` (${c(`printModal.staggerTotal`,`total: {{minutes}} min`,{minutes:r})})`:``]})})()]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.scheduleType===`asap`?c(`printModal.helpAsap`):e.scheduleType===`scheduled`?c(`printModal.helpSchedule`):c(`printModal.helpQueue`)})]})}function IU({candidates:e,onReorder:t,plateByFile:n,onPlateChange:r,readOnly:i=!1,readOnlyNote:a}){let{t:o}=U(),s=Co({queries:i?[]:e.map(e=>({queryKey:[`library-file-plates`,e.id],queryFn:()=>Z.getLibraryFilePlates(e.id),staleTime:6e4}))}),c=(0,y.useMemo)(()=>{let t={};return e.forEach((e,n)=>{let r=s[n]?.data;r?.is_multi_plate&&r.plates.length>1&&(t[e.id]=r.plates.map(e=>({index:e.index,name:e.name})))}),t},[e,s]),l=(n,r)=>{if(r<0||r>=e.length)return;let i=[...e],[a]=i.splice(n,1);i.splice(r,0,a),t(i)};return(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:o(`printModal.variants.title`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i?a??o(`printModal.variants.help`):o(`printModal.variants.help`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:e.map((t,a)=>{let s=c[t.id],u=t.sliced_for_model;return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary p-2`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray w-5 shrink-0`,children:[a+1,`.`]}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full bg-bambu-green/10 text-bambu-green text-xs shrink-0`,children:u||o(`printModal.variants.unknownModel`)}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate min-w-0 flex-1`,title:t.filename,children:t.filename}),s&&(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-bambu-gray shrink-0`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),(0,G.jsx)(`select`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-1 py-0.5 text-xs text-white`,value:n[t.id]??s[0].index,onChange:e=>r(t.id,Number(e.target.value)),"aria-label":o(`printModal.variants.plateFor`,{filename:t.filename}),children:s.map(e=>(0,G.jsx)(`option`,{value:e.index,children:e.name||o(`printModal.plateN`,{n:e.index})},e.index))})]}),!i&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(a,a-1),disabled:a===0,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":o(`printModal.variants.moveUp`),children:(0,G.jsx)(Ho,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>l(a,a+1),disabled:a===e.length-1,className:`p-1 rounded text-bambu-gray hover:text-white disabled:opacity-30`,"aria-label":o(`printModal.variants.moveDown`),children:(0,G.jsx)(Io,{className:`w-3.5 h-3.5`})})]})]},t.id)})})]})}function Vke({costCenters:e,selectedCostCenterId:t,onChange:n}){let{t:r}=U();if(e.length===0)return null;let i=e.find(e=>e.id===t);return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`label`,{htmlFor:`printCostCenter`,className:`text-sm text-bambu-gray`,children:r(`printModal.costCenter`,`Cost center`)}),(0,G.jsx)(`select`,{id:`printCostCenter`,value:t??``,onChange:e=>n(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:e.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,e.is_private?` (${r(`printModal.personalDefault`,`Personal`)})`:``]},e.id))}),i?.budget_mode===`none`&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`printModal.unlimitedNoBudget`,`Unlimited – no budget limit is set.`)})]})}var LU={bed_levelling:`auto`,flow_cali:`auto`,vibration_cali:!0,layer_inspect:!1,timelapse:!1,nozzle_offset_cali:`auto`,preheat_override:`inherit`,preheat_chamber_target_override:null},RU={scheduleType:`asap`,scheduledTime:``,requireManualStart:!1,requirePreviousSuccess:!1,autoOffAfter:!1,gcodeInjection:!1,staggerEnabled:!1,staggerGroupSize:2,staggerIntervalMinutes:5};function zU({mode:e,archiveId:t,libraryFileId:n,archiveName:r,queueItem:i,initialSelectedPrinterIds:a,onClose:o,onSuccess:s,projectId:c,cleanupLibraryAfterDispatch:l,variantFiles:u}){let{t:d}=U(),f=co(),{showToast:p}=qd(),{hasPermission:m,user:h}=Nd(),g=!!n&&!t,_=e===`edit-queue-item`,v=e===`create`&&(u?.length??0)>1,b=e===`edit-queue-item`&&(i?.variants?.length??0)>1?i.variants.map(e=>({id:e.library_file_id,filename:e.filename,sliced_for_model:e.target_model})):[],x=b.length>0,[S,C]=(0,y.useState)(u??[]),[w,T]=(0,y.useState)({}),[E,D]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.printer_id?[i.printer_id]:a?.length?a:[]),[O,k]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.plate_id!=null?new Set([i.plate_id]):new Set),A=O.size===1?[...O][0]:null,[j,M]=(0,y.useState)(1),[N,P]=(0,y.useState)({}),[F,I]=(0,y.useState)(()=>e===`edit-queue-item`&&i?{bed_levelling:i.bed_levelling??LU.bed_levelling,flow_cali:i.flow_cali??LU.flow_cali,vibration_cali:i.vibration_cali??LU.vibration_cali,layer_inspect:i.layer_inspect??LU.layer_inspect,timelapse:i.timelapse??LU.timelapse,nozzle_offset_cali:i.nozzle_offset_cali??LU.nozzle_offset_cali,preheat_override:i.preheat_override??LU.preheat_override,preheat_chamber_target_override:i.preheat_chamber_target_override??LU.preheat_chamber_target_override}:LU),[L,R]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i){let e=`queue`;i.scheduled_time&&!Rp(i.scheduled_time)&&(e=`scheduled`);let t=``;return i.scheduled_time&&!Rp(i.scheduled_time)&&(t=tp(rp(i.scheduled_time)??new Date)),{scheduleType:e,scheduledTime:t,requireManualStart:i.manual_start,requirePreviousSuccess:i.require_previous_success,autoOffAfter:i.auto_off_after,gcodeInjection:i.gcode_injection??!1,staggerEnabled:!1,staggerGroupSize:RU.staggerGroupSize,staggerIntervalMinutes:RU.staggerIntervalMinutes}}return RU}),[z,B]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.ams_mapping&&Array.isArray(i.ams_mapping)){let e={};return i.ams_mapping.forEach((t,n)=>{t!==-1&&(e[n+1]=t)}),e}return{}}),[V,ee]=(0,y.useState)({}),[te,ne]=(0,y.useState)(()=>v||e===`edit-queue-item`&&i?.target_model?`model`:`printer`),[re,ie]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.target_model?i.target_model:null),[ae,oe]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.target_location?i.target_location:null),[se,H]=(0,y.useState)(()=>e===`edit-queue-item`?i?.cost_center_id??null:null),[ce,le]=(0,y.useState)(i?.estimated_cost??null),[ue,de]=(0,y.useState)({}),[fe,pe]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.filament_overrides){let e={};for(let t of i.filament_overrides)e[t.slot_id]={type:t.type,color:t.color};return e}return{}}),[me,he]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.filament_overrides){let e={};for(let t of i.filament_overrides)e[t.slot_id]=t.force_color_match===!0;return e}return{}}),[ge]=(0,y.useState)(()=>e===`edit-queue-item`&&i?.printer_id?[i.printer_id]:[]),[_e]=(0,y.useState)(()=>e===`edit-queue-item`&&i?i.plate_id:null),[ve,ye]=(0,y.useState)(!1),[be,xe]=(0,y.useState)({current:0,total:0}),[Se,Ce]=(0,y.useState)(null),[we,Te]=(0,y.useState)(new Set),Ee=E.length,De=E.length>0?E[0]:null,{data:Oe}=K({queryKey:[`settings`],queryFn:Z.getSettings}),ke=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!Oe||ke.current||e===`edit-queue-item`||(ke.current=!0,I({bed_levelling:Oe.default_bed_levelling??LU.bed_levelling,flow_cali:Oe.default_flow_cali??LU.flow_cali,vibration_cali:Oe.default_vibration_cali??LU.vibration_cali,layer_inspect:Oe.default_layer_inspect??LU.layer_inspect,timelapse:Oe.default_timelapse??LU.timelapse,nozzle_offset_cali:Oe.default_nozzle_offset_cali??LU.nozzle_offset_cali,preheat_override:LU.preheat_override,preheat_chamber_target_override:LU.preheat_chamber_target_override}))},[Oe,e]);let Ae=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!Oe||Ae.current||e===`edit-queue-item`||(Ae.current=!0,R(e=>({...e,staggerGroupSize:Oe.stagger_group_size??e.staggerGroupSize,staggerIntervalMinutes:Oe.stagger_interval_minutes??e.staggerIntervalMinutes})))},[Oe,e]);let je=Lf(Oe?.currency||`USD`),Me=Oe?.default_filament_cost??0,Ne=Oe?.billing_enabled===!0,{data:Pe,isLoading:Fe}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:Ie,isLoading:Le}=K({queryKey:[`finance`,`cost-centers`,`mine`],queryFn:Z.getMyCostCenters,enabled:!!h&&Ne}),Re=(0,y.useMemo)(()=>(Ie||[]).filter(e=>e.can_print&&e.is_active),[Ie]),ze=(0,y.useMemo)(()=>Re.find(e=>e.id===se)??null,[Re,se]);(0,y.useEffect)(()=>{Re.length!==0&&(se!=null&&Re.some(e=>e.id===se)||H(Re.find(e=>e.is_private)?.id??Re[0].id))},[Re,se]);let Be=Co({queries:E.map(e=>({queryKey:[`printer-inventory-remain`,e],queryFn:()=>Z.getInventoryRemain(e),staleTime:30*1e3,refetchOnMount:`always`,enabled:E.length>0}))}),Ve=(0,y.useMemo)(()=>{let e=new Map;return E.forEach((t,n)=>{let r=Be[n]?.data?.inventory_remain_g;if(!r)return;let i=new Map;Object.entries(r).forEach(([e,t])=>{let n=Number(e);Number.isNaN(n)||i.set(n,t)}),e.set(t,i)}),e},[E,Be]),He=(0,y.useMemo)(()=>{let e=new Map;return E.forEach((t,n)=>{let r=Be[n]?.data?.slot_materials;if(!r)return;let i=new Map;r.forEach(e=>i.set(e.global_tray_id,e)),e.set(t,i)}),e},[E,Be]),{data:Ue}=K({queryKey:[`archive`,t],queryFn:()=>Z.getArchive(t),enabled:!!t&&!g}),{data:We}=K({queryKey:[`library-file`,n],queryFn:()=>Z.getLibraryFile(n),enabled:g&&!!n}),Ge=Ue?.sliced_for_model||We?.sliced_for_model||null,Ke=(0,y.useMemo)(()=>g?void 0:kke(Ue?.extra_data,De),[g,Ue?.extra_data,De]),{data:qe,isError:Je}=K({queryKey:[`archive-plates`,t],queryFn:()=>Z.getArchivePlates(t),enabled:!!t&&!g,retry:!1}),{data:Ye}=K({queryKey:[`library-file-plates`,n],queryFn:()=>Z.getLibraryFilePlates(n),enabled:g&&!!n}),Xe=g?Ye:qe,{data:Ze,isError:Qe}=K({queryKey:[`archive-filaments`,t,A],queryFn:()=>Z.getArchiveFilamentRequirements(t,A??void 0),enabled:!!t&&!g&&(A!==null||!Xe?.is_multi_plate),retry:!1}),{data:$e}=K({queryKey:[`library-file-filaments`,n,A],queryFn:()=>Z.getLibraryFileFilamentRequirements(n,A??void 0),enabled:g&&!!n&&(A!==null||!Xe?.is_multi_plate)}),et=!g&&(Je||Qe),tt=g?$e:Ze,{data:nt}=K({queryKey:[`available-filaments`,re,ae],queryFn:()=>Z.getAvailableFilaments(re,ae??void 0),enabled:te===`model`&&!!re}),rt=(0,y.useMemo)(()=>Array.from(new Set(S.map(e=>e.sliced_for_model).filter(e=>!!e))),[S]),it=Co({queries:v?rt.map(e=>({queryKey:[`available-filaments`,e,ae],queryFn:()=>Z.getAvailableFilaments(e,ae??void 0)})):[]}),at=(0,y.useMemo)(()=>{let e=new Set,t=[];for(let n of it)for(let r of n.data??[]){let n=`${r.type}|${r.color}|${r.tray_info_idx}`;e.has(n)||(e.add(n),t.push(r))}return t},[it]),ot=v?at:nt,{data:st,isLoading:ct}=K({queryKey:[`printer-status`,De],queryFn:()=>Z.getPrinterStatus(De),enabled:!!De}),lt=Hp(Oe?.prefer_lowest_filament,st?.ams_filament_backup),ut=async()=>{if(L.scheduleType!==`asap`||te!==`printer`||E.length===0)return!1;try{return(await Promise.all(E.map(e=>f.fetchQuery({queryKey:[`printer-status`,e],queryFn:()=>Z.getPrinterStatus(e),staleTime:0})))).some(e=>!wm(e))}catch{return!0}},{amsMapping:dt}=CU(tt,st,z,lt,De?Ve.get(De):void 0),ft=(0,y.useMemo)(()=>[...O].sort((e,t)=>e-t),[O]),pt=O.size>1,mt=Co({queries:(pt?ft:[]).map(e=>({queryKey:g?[`library-file-filaments`,n,e]:[`archive-filaments`,t,e],queryFn:()=>g?Z.getLibraryFileFilamentRequirements(n,e):Z.getArchiveFilamentRequirements(t,e),enabled:g?!!n:!!t,retry:!1}))}),ht=mt.some(e=>e.isPending),gt=mt.some(e=>e.isError),_t=(0,y.useMemo)(()=>{let e=new Map;return ft.forEach((t,n)=>{let r=mt[n]?.data;r&&e.set(t,r)}),e},[ft,mt.map(e=>e.dataUpdatedAt).join(`|`)]),[vt,yt]=(0,y.useState)({}),[bt,xt]=(0,y.useState)(()=>{if(e===`edit-queue-item`&&i?.nozzle_rack_choice){let e={};for(let[t,n]of Object.entries(i.nozzle_rack_choice)){let r=Number(t);Number.isInteger(r)&&Number.isInteger(n)&&(e[r]=n)}return e}return{}}),[St,Ct]=(0,y.useState)({}),wt=(0,y.useMemo)(()=>{let e=new Map;if(!pt||!De||E.length!==1)return e;let t=vU(st),n=st?.fila_switch?.installed===!0,r=Ve.get(De);for(let i of ft){let a=_t.get(i);if(!a)continue;let o=xU(a,t,vt[i]??{},lt,r,n);e.set(i,SU(o))}return e},[pt,De,st,Ve,ft,_t,vt,lt,E.length]),Tt=Dke(E,Pe,tt,z,V,ee,Oe?.prefer_lowest_filament,Ve);(0,y.useEffect)(()=>{Xe?.plates&&Xe.plates.length>=1&&O.size===0&&k(new Set([Xe.plates[0].index]))},[Xe,O.size]),(0,y.useEffect)(()=>{if(e===`edit-queue-item`)return;let t=Pe?.filter(e=>e.is_active)||[];t.length===1&&E.length===0&&D([t[0].id])},[e,Pe,E.length]),(0,y.useEffect)(()=>{e===`edit-queue-item`?(JSON.stringify(E.sort())!==JSON.stringify(ge.sort())||A!==_e)&&(B({}),yt({}),ee({}),Te(new Set)):(B({}),yt({}),ee({}),Te(new Set))},[e,E,A,ge,_e]);let[Et,Dt]=(0,y.useState)(re),[Ot,kt]=(0,y.useState)(A);(0,y.useEffect)(()=>{(re!==Et||A!==Ot)&&(Dt(re),kt(A),(e!==`edit-queue-item`||Et!==null)&&(pe({}),he({})))},[re,A,Et,Ot,e]),(0,y.useEffect)(()=>{te!==`model`||re||!Ge||Pe?.some(e=>e.is_active&&e.model===Ge)&&ie(Ge)},[te,re,Ge,Pe]),(0,y.useEffect)(()=>{if(!Oe?.per_printer_mapping_expanded||E.length<=1)return;let e=E.filter(e=>{if(we.has(e))return!1;let t=Tt.printerResults.find(t=>t.printerId===e);return t&&t.status&&!t.isLoading});e.length>0&&(Te(t=>{let n=new Set(t);return e.forEach(e=>n.add(e)),n}),e.forEach(e=>{Tt.autoConfigurePrinter(e)}))},[Oe?.per_printer_mapping_expanded,E,we,Tt]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!ve&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o,ve]);let At=Xe?.is_multi_plate??!1,jt=Xe?.plates??[],Mt=(0,y.useMemo)(()=>{if(!Se||Se.length===0)return``;let e=Se.map(e=>e.pooled?d(`printModal.insufficientFilamentLinePooled`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}):d(`printModal.insufficientFilamentLine`,{printer:e.printerName,slot:e.slotLabel,required:Math.round(e.requiredGrams),remaining:Math.round(e.remainingGrams)}));return[d(`printModal.insufficientFilamentMessage`),...e].join(` +`)},[Se,d]),Nt=q({mutationFn:e=>Z.addToQueue(e)}),Pt=q({mutationFn:e=>Z.updateQueueItem(i.id,e),onSuccess:()=>{f.invalidateQueries({queryKey:[`queue`]}),p(`Queue item updated`),s?.(),o()},onError:e=>{p(e.message||`Failed to update queue item`,`error`)}}),Ft=(e,t)=>{if(pt)return t===null||E.length!==1?void 0:wt.get(t);if(E.length>1){let t=V[e];if(t&&!t.useDefault)return Tt.getFinalMapping(e)}return dt},It=async(i,a)=>{if(i?.preventDefault(),Ne&&ze==null){p(d(`printModal.noPrintableCostCenters`),`error`);return}if(!a?.skipFilamentCheck&&!Oe?.disable_filament_warnings&&!_&&te===`printer`){let e=[],t=pt?ft.map(e=>({plateId:e,reqs:_t.get(e)?.filaments??[]})):[{plateId:A,reqs:tt?.filaments??[]}];if(t.some(e=>e.reqs.length>0)&&He.size>0)for(let n of E){let r=E.length>1?Tt.printerResults.find(e=>e.printerId===n)?.status:st,i=vU(r),a=new Map(i.map(e=>[e.globalTrayId,e.label])),o=He.get(n),s=Pe?.find(e=>e.id===n)?.name??`Printer ${n}`;if(!o||o.size===0)continue;let c=new Map;for(let e of t){let t=Ft(n,e.plateId);t&&e.reqs.forEach(e=>{if(!e.slot_id||e.slot_id<=0)return;let n=t[e.slot_id-1];!Number.isFinite(n)||n<0||c.set(n,(c.get(n)??0)+e.used_grams)})}let l=r?.ams_filament_backup===!0,u=e=>`${e.material_key}#${e.extruder}`,d=new Map,f=new Map,p=new Map;if(l){o.forEach(e=>{let t=u(e);d.set(t,(d.get(t)??0)+e.remaining_g),f.set(t,(f.get(t)??0)+1)});for(let[e,t]of c){let n=o.get(e);if(!n)continue;let r=u(n);p.set(r,(p.get(r)??0)+t)}}for(let[t,n]of c){let r=o.get(t);if(!r)continue;let i=a.get(t)??`Tray ${t}`;if(l){let t=u(r),n=d.get(t)??0,a=p.get(t)??0;if(n>=a)continue;e.push({printerName:s,slotLabel:i,requiredGrams:a,remainingGrams:n,pooled:(f.get(t)??1)>1});continue}r.remaining_g>=n||e.push({printerName:s,slotLabel:i,requiredGrams:n,remainingGrams:r.remaining_g})}}if(e.length>0){Ce(e);return}}if(te===`printer`&&E.length===0){p(`Please select at least one printer`,`error`);return}if(!v&&te===`model`&&!re){p(`Please select a target printer model`,`error`);return}if(!v&&te===`model`&&!Sm(Ge,re)){p(`File was sliced for ${Ge} and cannot be dispatched to ${re} printers`,`error`);return}ye(!0);let u=O.size>1?jt.filter(e=>O.has(e.index)):[null],m=te===`model`?u.length:E.length*u.length;xe({current:0,total:m});let h={success:0,failed:0,errors:[]},y=e=>{let t=[];if(e?.filaments)for(let n of e.filaments){let e=fe[n.slot_id],r=me[n.slot_id]??!1,i=e?.type??n.type,a=e?.color??n.color;(e||r)&&t.push({slot_id:n.slot_id,type:i,color:a,color_name:Df(a),force_color_match:r})}else for(let[e,{type:n,color:r}]of Object.entries(fe)){let i=parseInt(e,10),a=me[i]??!1;t.push({slot_id:i,type:n,color:r,color_name:Df(r),force_color_match:a})}return t.length>0?t:void 0},b=y(tt),x=e=>pt&&e!==null?y(_t.get(e)):b;if(v){try{await Z.addToQueue({variants:S.map(e=>({library_file_id:e.id,plate_id:w[e.id]??null,filament_overrides:b})),target_location:ae,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():void 0,quantity:j,...F,project_id:c??void 0}),p(d(`printModal.variants.queued`,{count:S.length}),`success`),f.invalidateQueries({queryKey:[`queue`]}),s?.(),o()}catch(e){p(e instanceof Error?e.message:String(e),`error`)}finally{ye(!1)}return}let C=u.map((e,t)=>{let n=e?e.index:A;return{plate_id:n,plate_name:e&&e.name||null,quantity_target:Vt(n),sort_order:t}}),T=C.reduce((e,t)=>e+t.quantity_target,0),D=e===`create`&&(u.length>1||T>1)&&(te===`model`||E.length===1),k=null;if(D)try{let e=(r||``).replace(/\.gcode\.3mf$/i,``).replace(/\.3mf$/i,``),i=u.length>1?`${e||`Batch`} · ${u.length} plates`:`${e||`Batch`} ×${T}`;k=(await Z.createBatch({name:i,archive_id:g?void 0:t,library_file_id:g?n:void 0,plates:C})).id}catch{k=null}let M=new Map,N=(e,t,n=1)=>{if(L.scheduleType!==`asap`)return;let r=t===null?`unassigned`:`printer:${t}`,i=(M.get(r)??0)+1;e.insert_at_top=!0,e.insert_position=i,M.set(r,i+n-1)},P=e=>{let t=e!=null&&pt?St[e]:bt;return t&&Object.keys(t).length>0?t:void 0},I=(e,r)=>{let i=r===void 0?A:r,o=i!=null&&pt?ue[i]??null:ce;return{printer_id:te===`printer`?e:null,target_model:te===`model`?re:null,target_location:te===`model`?ae:null,filament_overrides:te===`model`?x(i):void 0,archive_id:g?void 0:t,library_file_id:g?n:void 0,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,skip_filament_check:a?.skipFilamentCheck===!0?!0:void 0,ams_mapping:e?Ft(e,i):void 0,nozzle_rack_choice:e?P(i):void 0,plate_id:i,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():void 0,...F,project_id:c??void 0,cost_center_id:Ne?se:void 0,estimated_cost:Ne&&se!=null?o:void 0,batch_id:k??void 0,cleanup_library_after_dispatch:l}};if(te===`model`){let t=0;for(let n of u){t++,xe({current:t,total:m});let r=n?n.index:A;try{if(e===`edit-queue-item`&&!n){let e={printer_id:null,target_model:re,target_location:ae,filament_overrides:b||null,require_previous_success:L.requirePreviousSuccess,auto_off_after:L.autoOffAfter,gcode_injection:L.gcodeInjection,manual_start:L.scheduleType===`queue`&&L.requireManualStart,ams_mapping:void 0,plate_id:r,scheduled_time:L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).toISOString():null,...F,cost_center_id:Ne?se:void 0,estimated_cost:Ne&&se!=null?ce:void 0};await Pt.mutateAsync(e)}else{let e=I(null,r),t=Vt(r);t>1&&(e.quantity=t),N(e,null,t),await Nt.mutateAsync(e)}h.success++}catch(e){h.failed++;let t=n?n.name||`Plate ${n.index}`:``;h.errors.push(t?`${t}: ${e.message}`:e.message)}}}else{let e=L.staggerEnabled&&!_&&E.length>1,t=e?L.scheduleType===`scheduled`&&L.scheduledTime?new Date(L.scheduledTime).getTime():Date.now():0,n=0;for(let r of u){let i=r?r.index:A;for(let a=0;a1&&(n.quantity=r),N(n,o,r),e){let e=Math.floor(a/L.staggerGroupSize);if(e>0){let r=e*L.staggerIntervalMinutes*6e4;n.scheduled_time=new Date(t+r).toISOString()}}await Nt.mutateAsync(n)}h.success++}catch(e){h.failed++;let t=Pe?.find(e=>e.id===o)?.name||`Printer ${o}`,n=r?r.name||`Plate ${r.index}`:``,i=n?`${t} (${n})`:t;h.errors.push(`${i}: ${e.message}`)}}}}ye(!1),h.failed===0?(_?e===`edit-queue-item`&&p(`Queue item updated`):h.success===1?p(await ut()?d(`queue.printQueuedWillStartWhenIdle`):te===`model`?`Queued for any ${re}`:d(`queue.printQueued`)):p(await ut()?d(`queue.printQueuedWillStartWhenIdle`):d(`queue.itemsQueued`,{count:h.success})),f.invalidateQueries({queryKey:[`queue`]}),s?.(),o()):h.success===0?p(`Failed: ${h.errors[0]}`,`error`):(p(`${h.success} succeeded, ${h.failed} failed`,`error`),f.invalidateQueries({queryKey:[`queue`]}))},Lt=ve||Pt.isPending,Rt=(0,y.useMemo)(()=>!(Lt||Ne&&(Le||ze==null)||te===`printer`&&E.length===0||!v&&te===`model`&&!re||!v&&te===`model`&&!Sm(Ge,re)||At&&O.size===0||ht||gt||te===`printer`&&E.length===1&&ct),[E.length,te,re,Ge,At,O.size,Lt,ht,gt,ct,v,Ne,Le,ze]),zt=te===`printer`&&E.length>1?1:j,Bt=e===`create`&&At&&jt.length>1,Vt=e=>!Bt||e==null?zt:te===`printer`&&E.length>1?1:Math.max(1,N[e]??1);(0,y.useEffect)(()=>{e===`create`&&L.gcodeInjection&&!Oe?.gcode_snippets&&R(e=>({...e,gcodeInjection:!1}))},[e,Oe?.gcode_snippets,L.gcodeInjection]);let Ht=_?{title:d(`queue.editQueueItem`),icon:Al,submitText:d(`common.save`),submitIcon:Al,loadingText:be.total>1?d(`queue.savingProgress`,{current:be.current,total:be.total}):d(`common.saving`)}:{title:d(`common.print`),icon:Rl,submitText:d(`common.print`),submitIcon:Rl,loadingText:be.total>1?d(`queue.addingProgress`,{current:be.current,total:be.total}):d(`queue.adding`)},Ut=Ht.icon,Wt=Ht.submitIcon,Gt=De&&O.size<=1&&(g||(At?A!==null:!0));(0,y.useEffect)(()=>{(!Gt||et||E.length!==1)&&le(null)},[et,E.length,Gt]);let Kt=!!De&&pt&&E.length===1,qt=te===`model`&&(v||!!re)&&!!ot&&ot.length>0,Jt=(0,y.useMemo)(()=>new Set([`H2D`,`H2DPRO`,`H2C`,`X2D`]),[]),Yt=(0,y.useMemo)(()=>te===`model`?re?Jt.has(re.toUpperCase().replace(/[\s-]/g,``)):!1:!Pe||E.length===0?!1:E.some(e=>Pe.find(t=>t.id===e)?.nozzle_count===2),[te,re,Pe,E,Jt]);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:ve?void 0:o,children:[(0,G.jsx)(zd,{className:`w-full max-w-4xl max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ut,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:Ht.title})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,disabled:ve,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:It,className:`p-4 space-y-4`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`block text-bambu-gray mb-1`,children:`Print Job`}),(0,G.jsx)(`span`,{className:`text-white font-medium truncate block`,children:r})]}),(()=>{if(!jt.length)return null;let e=EU((A==null?jt[0]:jt.find(e=>e.index===A))?.bed_type);return e?(0,G.jsxs)(`p`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray -mt-2`,title:e.label,children:[(0,G.jsx)(`img`,{src:e.icon,alt:``,className:`w-4 h-4 object-contain flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.label})]}):null})(),(0,G.jsx)(Pke,{plates:jt,isMultiPlate:At,selectedPlates:O,onToggle:e=>{k(t=>{let n=new Set(t);return _?(n.clear(),n.add(e)):n.has(e)?n.delete(e):n.add(e),n})},onSelectAll:_?void 0:()=>k(new Set(jt.map(e=>e.index))),onDeselectAll:_?void 0:()=>k(new Set),multiSelect:!_,quantities:Bt?N:void 0,onQuantityChange:Bt?(e,t)=>P(n=>({...n,[e]:t})):void 0}),v&&(0,G.jsx)(IU,{candidates:S,onReorder:C,plateByFile:w,onPlateChange:(e,t)=>T(n=>({...n,[e]:t}))}),x&&(0,G.jsx)(IU,{candidates:b,readOnly:!0,readOnlyNote:d(`printModal.variants.editNote`),onReorder:()=>{},plateByFile:{},onPlateChange:()=>{}}),!v&&!x&&!a?.length&&(0,G.jsx)(Lke,{printers:Pe||[],selectedPrinterIds:E,onMultiSelect:D,isLoading:Fe,allowMultiple:!0,showInactive:e===`edit-queue-item`,disableBusy:!1,printerMappingResults:Tt.printerResults,filamentReqs:pt?void 0:tt,onAutoConfigurePrinter:Tt.autoConfigurePrinter,onUpdatePrinterConfig:Tt.updatePrinterConfig,assignmentMode:te,onAssignmentModeChange:ne,targetModel:re,onTargetModelChange:ie,targetLocation:ae,onTargetLocationChange:oe,slicedForModel:Ge}),qt&&!pt&&tt&&(0,G.jsx)(NU,{filamentReqs:tt,availableFilaments:ot,overrides:fe,onChange:pe,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t}))}),qt&&pt&&ft.map((e,t)=>{let n=jt.find(t=>t.index===e),r=_t.get(e);return r?(0,G.jsx)(NU,{plateLabel:n?.name||d(`printModal.plateN`,`Plate {{n}}`,{n:e}),showHint:t===0,filamentReqs:r,availableFilaments:nt,overrides:fe,onChange:pe,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t}))},e):null}),Ge&&te===`printer`&&E.length===1&&(()=>{let e=Pe?.find(e=>e.id===E[0]);return e&&e.model&&Ge!==e.model?(0,G.jsxs)(`div`,{className:`p-3 mb-2 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-yellow-700 dark:text-yellow-400`,children:[`File was sliced for `,Ge,`, but printing on `,e.model]})]}):null})(),et&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:`Archive data unavailable. The source file may have been deleted. Filament mapping is disabled.`})]}),gt&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 mb-2 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 text-orange-600 dark:text-orange-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-orange-700 dark:text-orange-400`,children:d(`printModal.plateFilamentsUnreadable`,`The filaments of a selected plate could not be read, so it can't be mapped. Deselect it to queue the others.`)})]}),Gt&&!et&&E.length===1&&(0,G.jsx)(MU,{printerId:De,filamentReqs:tt,manualMappings:z,onManualMappingChange:B,onEstimatedCostChange:le,budgetAvailable:Ne?ze?.budget_available??null:null,quantity:zt,defaultExpanded:!!a?.length||(Oe?.per_printer_mapping_expanded??!1),currencySymbol:je,defaultCostPerKg:Me,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t})),archiveAmsMapping:Ke,nozzleRackChoice:bt,onNozzleRackChoiceChange:xt}),Kt&&!et&&ft.map(e=>{let t=jt.find(t=>t.index===e),n=_t.get(e);return n?(0,G.jsx)(MU,{printerId:De,plateLabel:t?.name||d(`printModal.plateN`,`Plate {{n}}`,{n:e}),filamentReqs:n,manualMappings:vt[e]??{},onManualMappingChange:t=>yt(n=>({...n,[e]:t})),onEstimatedCostChange:t=>de(n=>({...n,[e]:t})),budgetAvailable:Ne?ze?.budget_available??null:null,quantity:Vt(e),defaultExpanded:!1,currencySymbol:je,defaultCostPerKg:Me,forceColorMatch:me,onForceColorMatchChange:(e,t)=>he(n=>({...n,[e]:t})),archiveAmsMapping:Ke,nozzleRackChoice:St[e]??{},onNozzleRackChoiceChange:t=>Ct(n=>({...n,[e]:t}))},e):null}),(e===`create`||Ee>0||te===`model`&&re)&&(0,G.jsx)(zke,{options:F,onChange:I,defaultExpanded:!!a?.length,showDualNozzleOptions:Yt}),Ne&&Re.length>0&&(0,G.jsx)(Vke,{costCenters:Re,selectedCostCenterId:se,onChange:H}),Ne&&!Le&&Re.length===0&&(0,G.jsxs)(`div`,{role:`alert`,className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-500/50 rounded-lg text-sm text-yellow-800 dark:text-yellow-300 flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),d(`printModal.noPrintableCostCenters`)]}),e!==`edit-queue-item`&&!Bt&&(te===`model`||E.length<=1)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`label`,{htmlFor:`printQuantity`,className:`text-sm text-bambu-gray whitespace-nowrap`,children:d(`queue.quantity`,`Quantity`)}),(0,G.jsx)(`input`,{id:`printQuantity`,type:`number`,min:1,max:999,value:j,onChange:e=>M(Math.max(1,Math.min(999,parseInt(e.target.value)||1))),className:`w-20 px-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`}),j>1&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:d(`queue.quantityHint`,`Creates {{count}} queue items`,{count:j})})]}),(0,G.jsx)(Bke,{options:L,onChange:R,dateFormat:Oe?.date_format||`system`,timeFormat:Oe?.time_format||`system`,canControlPrinter:m(`printers:control`),showStagger:!_&&te===`printer`&&E.length>1,printerCount:E.length,hasGcodeSnippets:!!Oe?.gcode_snippets}),Pt.isError&&(0,G.jsx)(`div`,{className:`mb-4 p-3 bg-red-100 dark:bg-red-500/20 border border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:Pt.error?.message||`Failed to complete operation`}),te===`printer`&&E.length===1&&ct&&(0,G.jsxs)(`div`,{className:`mb-4 p-3 bg-blue-100 dark:bg-blue-500/20 border border-blue-500/50 rounded-lg text-sm text-blue-700 dark:text-blue-400 flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),d(`printModal.waitingForAmsStatus`,{printer:Pe?.find(e=>e.id===De)?.name??``})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:o,className:`flex-1`,disabled:ve,children:`Cancel`}),(0,G.jsx)(Q,{type:`submit`,disabled:!Rt,className:`flex-1`,children:Lt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),Ht.loadingText]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wt,{className:`w-4 h-4`}),Ht.submitText]})})]})]})]})}),Se&&Se.length>0&&(0,G.jsx)(of,{title:d(`printModal.insufficientFilamentTitle`),message:Mt,confirmText:d(`printModal.printAnyway`),cancelText:d(`common.cancel`),variant:`warning`,onConfirm:()=>{Ce(null),It(void 0,{skipFilamentCheck:!0})},onCancel:()=>Ce(null)})]})}function BU({value:e,titleKey:t=`printers.copyToClipboard`,copiedTitleKey:n=`printers.copied`,className:r=`ml-2 p-1 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,iconClassName:i=`w-3.5 h-3.5`}){let{t:a}=U(),[o,s]=(0,y.useState)(!1);return(0,G.jsx)(`button`,{onClick:async()=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{if(t.select(),!document.execCommand(`copy`))return}finally{document.body.removeChild(t)}}s(!0),setTimeout(()=>s(!1),2e3)}catch{}},className:r,title:a(o?n:t),children:o?(0,G.jsx)(fs,{className:`${i} text-bambu-green`}):(0,G.jsx)(Vs,{className:i})})}function Hke({printer:e,status:t,totalPrintHours:n,onClose:r}){let{t:i}=U();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let a=[];if(a.push({label:i(`printers.model`),value:e.model??`—`}),a.push({label:i(`common.status`),value:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-xs font-medium ${t?.connected?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full ${t?.connected?`bg-bambu-green`:`bg-red-400`}`}),t?.connected?i(`printers.status.available`):i(`printers.status.offline`)]})}),t?.state&&a.push({label:i(`printers.state`),value:i({IDLE:`printers.status.idle`,RUNNING:`printers.status.printing`,PAUSE:`printers.status.paused`,FINISH:`printers.status.finished`,FAILED:`printers.status.error`}[t.state]??`printers.status.unknown`)}),a.push({label:i(`printers.ipAddress`),value:(0,G.jsxs)(`span`,{className:`flex items-center`,children:[(0,G.jsx)(`span`,{className:`font-mono`,children:e.ip_address}),(0,G.jsx)(BU,{value:e.ip_address})]})}),a.push({label:i(`printers.serialNumber`),value:(0,G.jsxs)(`span`,{className:`flex items-center`,children:[(0,G.jsx)(`span`,{className:`font-mono truncate`,children:e.serial_number}),(0,G.jsx)(BU,{value:e.serial_number})]})}),t?.wired_network)a.push({label:i(`printers.networkLabel`,`Network`),value:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ts,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-bambu-green`,children:i(`printers.connection.ethernet`,`Ethernet`)})]})});else if(t?.wifi_signal!=null){let e=Cm(t.wifi_signal);a.push({label:i(`printers.wifiSignalLabel`),value:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(lu,{className:`w-4 h-4 ${e.color}`}),(0,G.jsx)(`span`,{className:e.color,children:i(e.labelKey)}),(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[`(`,t.wifi_signal,` dBm)`]})]})})}return a.push({label:i(`printers.firmware`),value:t?.firmware_version??`—`}),t?.developer_mode!=null&&a.push({label:i(`printers.developerMode`),value:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${t.developer_mode?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:t.developer_mode?i(`printers.enabled`):i(`printers.disabled`)})}),a.push({label:i(`printers.nozzleCount`),value:e.nozzle_count}),a.push({label:i(`printers.autoArchive`),value:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${e.auto_archive?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:e.auto_archive?i(`printers.enabled`):i(`printers.disabled`)})}),n!=null&&n>0&&a.push({label:i(`printers.totalPrintHours`),value:`${Math.round(n)}h`}),e.location&&a.push({label:i(`printers.sort.location`),value:e.location}),a.push({label:i(`printers.addedOn`),value:ap(e.created_at)}),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,role:`dialog`,"aria-modal":`true`,onClick:r,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e.name}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-bambu-dark rounded flex-shrink-0`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsx)(`div`,{className:`flex justify-center mb-4`,children:(0,G.jsx)(`img`,{src:xm(e.model),alt:e.model??e.name,className:`h-24 object-contain`})}),(0,G.jsx)(`div`,{className:`space-y-0`,children:a.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-2.5 border-b border-bambu-dark-tertiary last:border-0`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray whitespace-nowrap`,children:e.label}),(0,G.jsx)(`span`,{className:`text-sm text-white text-right`,children:e.value})]},t))})]})})})}var VU=0,HU=1;function Uke({slotLabel:e,amsId:t,slotId:n,extruderSlots:r,isLoading:i=!1,onConfirm:a,onCancel:o}){let{t:s}=U(),[c,l]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!i&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o,i]);let u=e=>{let i=r[String(e)];return i?.ams_id===t&&i?.slot_id===n},d=[{extruderId:HU,label:s(`printers.ams.feedLeft`),taken:u(HU)},{extruderId:VU,label:s(`printers.ams.feedRight`),taken:u(VU)}],f=d.some(e=>e.extruderId===c&&e.taken);return(0,y.useEffect)(()=>{f&&l(null)},[f]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50`,onClick:i?void 0:o,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:s(`printers.ams.feedTitle`,{slot:e})}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:s(`printers.ams.feedPrompt`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-3 mt-4`,children:d.map(({extruderId:e,label:t,taken:n})=>{let r=c===e;return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:n||i,title:n?s(`printers.ams.feedAlreadyLoaded`):void 0,className:`p-3 rounded-lg border text-sm transition-colors ${n?`border-transparent bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:r?`border-bambu-green/50 bg-bambu-green/10 text-white`:`border-transparent bg-bambu-dark text-white hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:t}),n&&(0,G.jsx)(`div`,{className:`text-xs mt-1`,children:s(`printers.ams.feedAlreadyLoaded`)})]},e)})}),(0,G.jsxs)(`div`,{className:`flex gap-3 mt-6`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:o,className:`flex-1`,disabled:i,children:s(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>c!==null&&a(c),className:`flex-1`,disabled:c===null||i,children:i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),s(`common.loading`)]}):s(`common.confirm`)})]})]})})})}function Wke(e){if(!e||e.length<6)return!1;let t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);return(.299*t+.587*n+.114*r)/255>.6}function UU({trayColor:e,trayType:t,isEmpty:n,emptyKind:r,slotNumber:i}){let a=r===`reset`?`#3d3d3d`:`#666`;return(0,G.jsx)(`div`,{className:`w-3.5 h-3.5 rounded-full mx-auto mb-0.5 border-2 flex items-center justify-center`,style:{backgroundColor:e?`#${e}`:t?`#333`:`transparent`,borderColor:n?a:`rgba(255,255,255,0.1)`,borderStyle:n?`dashed`:`solid`},children:(0,G.jsx)(`span`,{className:`text-[6px] font-bold leading-none select-none`,style:{color:e&&Wke(e)?`#000`:`#fff`},children:i})})}var Gke=240,Kke=440,qke=[30,60,120,240,480,720,1440],WU=[`scheduled-dryings`],Jke={ams_power_required:`printers.drying.powerRequired`,ams_retract_filament:`printers.drying.retractFilament`,ams_blocked:`printers.drying.cannotDryNow`,ams_not_found:`printers.drying.waitingAmsNotFound`,printer_offline:`printers.drying.waitingOffline`,printer_busy:`printers.drying.waitingPrinterBusy`,already_drying:`printers.drying.waitingAlreadyDrying`,interrupted:`printers.drying.waitingInterrupted`};function Yke(e){return e?Jke[e]:void 0}function Xke(e){let t=(e??[]).map(e=>Number(e));return t.some(e=>e===1||e===8)?`printers.drying.powerRequired`:t.includes(3)?`printers.drying.retractFilament`:`printers.drying.cannotDryNow`}var GU=[{value:`all`,labelKey:`printers.filter.allStatuses`},{value:`printing`,labelKey:`printers.status.printing`},{value:`paused`,labelKey:`printers.status.paused`},{value:`idle`,labelKey:`printers.status.idle`},{value:`finished`,labelKey:`printers.status.finished`},{value:`error`,labelKey:`printers.status.error`},{value:`offline`,labelKey:`printers.status.offline`}];function Zke(e){return GU.some(t=>t.value===e)}function KU(e){return(e??.02).toFixed(3)}function qU({k:e,reserve:t}){let{t:n}=U(),r=`text-[length:var(--pc-t8,8px)] text-bambu-gray tabular-nums leading-none truncate`;return e?(0,G.jsxs)(`div`,{className:r,title:n(`ams.kFactor`),children:[n(`ams.kFactorShort`),` `,KU(e)]}):t?(0,G.jsx)(`div`,{className:r,"aria-hidden":`true`,children:`\xA0`}):null}function JU({side:e}){let{mode:t}=Id(),{t:n}=U();return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-[length:var(--pc-t10,10px)] font-bold rounded`,style:{backgroundColor:t===`dark`?`#1a4d2e`:`#e7f5e9`,color:`#00ae42`},title:n(e===`L`?`common.left`:`common.right`),children:e})}function YU({inlet:e,title:t}){let{mode:n}=Id();return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-[length:var(--pc-t10,10px)] font-bold rounded`,style:{backgroundColor:n===`dark`?`#1e3a5f`:`#e3f0fb`,color:`#3b82f6`},title:t,children:gp[e]})}function XU(e,t,n,r){let i=n[String(e)];if(i)return{kind:`inlet`,inlet:i};let a=t[String(e)],o=a===void 0?r?void 0:e>=128?e-128:e:a;return o===1?{kind:`nozzle`,side:`L`}:o===0?{kind:`nozzle`,side:`R`}:null}function ZU(e,t){if(!e)return``;if(e.includes(`hardened`))return t(`printers.nozzleHardenedSteel`);if(e.includes(`stainless`))return t(`printers.nozzleStainlessSteel`);if(e.includes(`tungsten`))return t(`printers.nozzleTungstenCarbide`);if(e.length>=4){let n=e.slice(2,4);if(n===`00`)return t(`printers.nozzleStainlessSteel`);if(n===`01`)return t(`printers.nozzleHardenedSteel`);if(n===`05`)return t(`printers.nozzleTungstenCarbide`)}return e===`00`?t(`printers.nozzleStainlessSteel`):e===`01`?t(`printers.nozzleHardenedSteel`):e===`05`?t(`printers.nozzleTungstenCarbide`):e.startsWith(`H`)?t(`printers.nozzleHardenedSteel`):e}function QU(e,t){return e?e.startsWith(`HH`)?t(`printers.nozzleHighFlow`):e.startsWith(`HS`)?t(`printers.nozzleStandardFlow`):``:``}function $U({slot:e,index:t,activeStatus:n,filamentName:r,children:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(`top`),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null),p=!e.nozzle_diameter&&!e.nozzle_type,m=e.stat===1;(0,y.useEffect)(()=>{if(o&&u.current&&d.current){let e=u.current.getBoundingClientRect(),t=d.current.offsetHeight,n=e.top-56,r=window.innerHeight-e.bottom;nn?l(`bottom`):l(`top`)}},[o]);let h=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!0),80)},g=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!1),100)};(0,y.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]);let _=Nf(e.filament_color),v=ZU(e.nozzle_type,a),b=QU(e.nozzle_type,a);return(0,G.jsxs)(`div`,{ref:u,className:`relative`,onMouseEnter:h,onMouseLeave:g,children:[i,o&&(0,G.jsxs)(`div`,{ref:d,className:` absolute left-1/2 -translate-x-1/2 z-50 ${c===`top`?`bottom-full mb-2`:`top-full mt-2`} animate-in fade-in-0 zoom-in-95 duration-150 @@ -4190,7 +4190,7 @@ void main() { border-l-[6px] border-l-transparent border-r-[6px] border-r-transparent ${c===`top`?`top-full border-t-[6px] border-t-bambu-dark-tertiary`:`bottom-full border-b-[6px] border-b-bambu-dark-tertiary`} - `})]})]})}function Zke({leftSlot:e,rightSlot:t,activeNozzle:n,filamentInfo:r,children:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(`top`),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(o&&u.current&&d.current){let e=u.current.getBoundingClientRect(),t=d.current.offsetHeight,n=e.top-56,r=window.innerHeight-e.bottom;nn?l(`bottom`):l(`top`)}},[o]);let p=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!0),80)},m=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!1),100)};if((0,y.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),!e&&!t)return(0,G.jsx)(G.Fragment,{children:i});let h=(e,t)=>{let i=n===t,o=ZU(e.nozzle_type,a),s=QU(e.nozzle_type,a),c=Nf(e.filament_color),l=e.filament_id?r?.[e.filament_id]?.name:void 0;return(0,G.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t10,10px)] font-bold pb-1 border-b border-bambu-dark-tertiary/50 ${i?`text-amber-700 dark:text-amber-400`:`text-bambu-gray`}`,children:a(t===`L`?`common.left`:`common.right`)}),e.nozzle_diameter&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleDiameter`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.nozzle_diameter,` mm`]})]}),o&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleType`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold`,children:o})]}),s&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleFlow`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold`,children:s})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleStatus`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] font-bold px-1.5 py-0.5 rounded ${i?`bg-green-900/50 text-green-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:a(i?`printers.nozzleActive`:`printers.nozzleIdle`)})]}),e.wear!=null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleWear`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.wear,`%`]})]}),t===`R`&&e.max_temp>0&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleMaxTemp`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.max_temp,`°C`]})]}),t===`R`&&e.serial_number&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleSerial`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono`,children:e.serial_number})]}),(c||e.filament_type||e.filament_id)&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleFilament`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[c&&(0,G.jsx)(`div`,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] rounded-sm border border-white/20`,style:{backgroundColor:c}}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold truncate max-w-[100px]`,children:l||e.filament_type||e.filament_id||``})]})]})]})};return(0,G.jsxs)(`div`,{ref:u,className:`relative flex-1`,onMouseEnter:p,onMouseLeave:m,children:[i,o&&(0,G.jsxs)(`div`,{ref:d,className:` + `})]})]})}function Qke({leftSlot:e,rightSlot:t,activeNozzle:n,filamentInfo:r,children:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(`top`),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(o&&u.current&&d.current){let e=u.current.getBoundingClientRect(),t=d.current.offsetHeight,n=e.top-56,r=window.innerHeight-e.bottom;nn?l(`bottom`):l(`top`)}},[o]);let p=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!0),80)},m=()=>{f.current&&clearTimeout(f.current),f.current=setTimeout(()=>s(!1),100)};if((0,y.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),!e&&!t)return(0,G.jsx)(G.Fragment,{children:i});let h=(e,t)=>{let i=n===t,o=ZU(e.nozzle_type,a),s=QU(e.nozzle_type,a),c=Nf(e.filament_color),l=e.filament_id?r?.[e.filament_id]?.name:void 0;return(0,G.jsxs)(`div`,{className:`flex-1 space-y-1.5`,children:[(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t10,10px)] font-bold pb-1 border-b border-bambu-dark-tertiary/50 ${i?`text-amber-700 dark:text-amber-400`:`text-bambu-gray`}`,children:a(t===`L`?`common.left`:`common.right`)}),e.nozzle_diameter&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleDiameter`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.nozzle_diameter,` mm`]})]}),o&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleType`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold`,children:o})]}),s&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleFlow`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold`,children:s})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleStatus`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] font-bold px-1.5 py-0.5 rounded ${i?`bg-green-900/50 text-green-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:a(i?`printers.nozzleActive`:`printers.nozzleIdle`)})]}),e.wear!=null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleWear`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.wear,`%`]})]}),t===`R`&&e.max_temp>0&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleMaxTemp`)}),(0,G.jsxs)(`span`,{className:`text-xs text-white font-semibold`,children:[e.max_temp,`°C`]})]}),t===`R`&&e.serial_number&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleSerial`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono`,children:e.serial_number})]}),(c||e.filament_type||e.filament_id)&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:a(`printers.nozzleFilament`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[c&&(0,G.jsx)(`div`,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] rounded-sm border border-white/20`,style:{backgroundColor:c}}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-semibold truncate max-w-[100px]`,children:l||e.filament_type||e.filament_id||``})]})]})]})};return(0,G.jsxs)(`div`,{ref:u,className:`relative flex-1`,onMouseEnter:p,onMouseLeave:m,children:[i,o&&(0,G.jsxs)(`div`,{ref:d,className:` absolute left-1/2 -translate-x-1/2 z-50 ${c===`top`?`bottom-full mb-2`:`top-full mt-2`} animate-in fade-in-0 zoom-in-95 duration-150 @@ -4199,38 +4199,38 @@ void main() { border-l-[6px] border-l-transparent border-r-[6px] border-r-transparent ${c===`top`?`top-full border-t-[6px] border-t-bambu-dark-tertiary`:`bottom-full border-b-[6px] border-b-bambu-dark-tertiary`} - `})]})]})}function Qke({slots:e,filamentInfo:t}){let{t:n}=U(),r=e.filter(e=>e.id>=2),i=Array.from({length:6},(e,t)=>r.find(e=>e.id===16+t)??{id:-(t+1),nozzle_type:``,nozzle_diameter:``,wear:null,stat:null,max_temp:0,serial_number:``,filament_color:``,filament_id:``,filament_type:``});return(0,G.jsxs)(`div`,{className:`text-center px-2.5 py-1.5 bg-bambu-dark rounded-lg flex-[0_1_auto] flex flex-col justify-center`,children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray mb-1`,children:n(`printers.nozzleRack`)}),(0,G.jsx)(`div`,{className:`flex gap-[3px] justify-center`,children:i.map((e,n)=>{let r=!e.nozzle_diameter&&!e.nozzle_type,i=r?null:Nf(e.filament_color),a=i?Pf(e.filament_color):!1;return(0,G.jsx)($U,{slot:e,index:n,filamentName:e.filament_id?t?.[e.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,children:[(0,G.jsx)(`div`,{className:`w-[var(--pc-i7,28px)] h-[var(--pc-i7,28px)] rounded flex items-center justify-center cursor-default transition-colors border-b-2 ${r?`bg-bambu-dark-tertiary/20 border-bambu-dark-tertiary/20`:`bg-bambu-dark-tertiary/40 border-bambu-dark-tertiary/40`}`,style:i?{backgroundColor:i}:void 0,children:(0,G.jsx)(`span`,{"data-rack-diameter":!0,className:`text-[length:var(--pc-t10,10px)] font-semibold ${r?`text-bambu-gray/30`:a?`text-black/80`:`text-white`}`,style:i&&!a?{textShadow:`0 1px 3px rgba(0,0,0,0.9)`}:void 0,children:r?`—`:e.nozzle_diameter||`?`})}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t8,8px)] leading-none tabular-nums text-bambu-gray/70`,children:n+1})]})},e.id>=0?e.id:`empty-${n}`)})})]})}function $ke({className:e}){return(0,G.jsx)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,G.jsx)(`path`,{d:`M17.8131 0.00538C18.4463 -0.15091 20.3648 3.14642 20.8264 3.84781C25.4187 10.816 35.3089 26.9368 35.9383 34.8694C37.4182 53.5822 11.882 61.3357 2.53721 45.3789C-1.73471 38.0791 0.016 32.2049 3.178 25.0232C6.99221 16.3662 12.6411 7.90372 17.8131 0.00538ZM18.3738 7.24807L17.5881 7.48441C14.4452 12.9431 10.917 18.2341 8.19369 23.9368C4.6808 31.29 1.18317 38.5479 7.69403 45.5657C17.3058 55.9228 34.9847 46.8808 31.4604 32.8681C29.2558 24.0969 22.4207 15.2913 18.3776 7.24807H18.3738Z`,fill:`#C3C2C1`})})}function eAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 35 53`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.3165 0.0038C17.932 -0.14959 19.7971 3.08645 20.2458 3.77481C24.7103 10.6135 34.3251 26.4346 34.937 34.2198C36.3757 52.5848 11.5505 60.1942 2.46584 44.534C-1.68714 37.3735 0.0148 31.6085 3.08879 24.5603C6.79681 16.0605 12.2884 7.75907 17.3165 0.0038ZM17.8615 7.11561L17.0977 7.34755C14.0423 12.7048 10.6124 17.8974 7.96483 23.4941C4.54975 30.7107 1.14949 37.8337 7.47908 44.721C16.8233 54.8856 34.01 46.0117 30.5838 32.2595C28.4405 23.6512 21.7957 15.0093 17.8652 7.11561H17.8615Z`,fill:`#C3C2C1`}),(0,G.jsx)(`path`,{d:`M5.03547 30.112C9.64453 30.4936 11.632 35.7985 16.4154 35.791C19.6339 35.7873 20.2161 33.2283 22.3853 31.6197C31.6776 24.7286 33.5835 37.4894 27.9881 44.4254C18.1878 56.5653 -1.16063 44.6013 5.03917 30.1158L5.03547 30.112Z`,fill:`#1F8FEB`})]})}function tAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.9625 4.48059L4.77216 26.3154L2.08228 40.2175L10.0224 50.8414H23.1594L33.3246 42.1693V30.2455L17.9625 4.48059Z`,fill:`#1F8FEB`}),(0,G.jsx)(`path`,{d:`M17.7948 0.00538C18.4273 -0.15091 20.3438 3.14642 20.8048 3.84781C25.3921 10.816 35.2715 26.9368 35.9001 34.8694C37.3784 53.5822 11.8702 61.3357 2.53562 45.3789C-1.73163 38.0829 0.0134 32.2087 3.1757 25.027C6.98574 16.3662 12.6284 7.90372 17.7948 0.00538ZM18.3549 7.24807L17.57 7.48441C14.4306 12.9431 10.9063 18.2341 8.1859 23.9368C4.67686 31.29 1.18305 38.5479 7.68679 45.5657C17.2881 55.9228 34.9476 46.8808 31.4271 32.8681C29.2249 24.0969 22.3974 15.2913 18.3587 7.24807H18.3549Z`,fill:`#C3C2C1`})]})}function nAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function rAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`8`,width:`3`,height:`4.5`,fill:`#d4a017`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#d4a017`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function iAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:`#c62828`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#c62828`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function aAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`rect`,{x:`9.2`,y:`3.4`,width:`5.6`,height:`8.1`}),(0,G.jsx)(`rect`,{x:`6`,y:`11.5`,width:`12.1`,height:`3.7`}),(0,G.jsx)(`path`,{d:`M 7.3 15.2 L 12.1 19.6 L 16.7 15.2`})]})}function eW({className:e,color:t,isHeating:n}){let r={"text-orange-400":`#fb923c`,"text-blue-400":`#60a5fa`,"text-green-400":`#4ade80`}[t]||`#888`,i=n?{filter:`drop-shadow(0 0 4px ${r}) drop-shadow(0 0 8px ${r})`}:{};return n?(0,G.jsxs)(`svg`,{className:e,style:i,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:r,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:r}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:r,strokeWidth:`1`,fill:`none`})]}):(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:r,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:r,strokeWidth:`1`,fill:`none`})]})}function oAe({state:e,onClick:t}){let{t:n}=U(),r=e!==null,i=`flex items-center justify-center w-[18px] h-[18px] rounded text-[length:var(--pc-t10,10px)] transition-colors `,a;return e===!0?(i+=r?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-500/30 cursor-pointer`:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 cursor-default`,a=n(`printers.amsBackup.titleOn`)):e===!1?(i+=r?`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80 cursor-pointer`:`bg-bambu-dark text-bambu-gray cursor-default`,a=n(`printers.amsBackup.titleOff`)):(i+=`bg-bambu-dark text-bambu-gray/50 cursor-default`,a=n(`printers.amsBackup.titleUnknown`)),(0,G.jsx)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&t(),className:i,title:a,"aria-label":a,children:r?(0,G.jsx)(Ul,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(`span`,{children:`?`})})}function sAe({hidden:e,onClick:t}){let{t:n}=U(),r=n(e?`printers.externalSpool.show`:`printers.externalSpool.hide`);return(0,G.jsx)(`button`,{type:`button`,onClick:t,"aria-pressed":e,className:`flex items-center justify-center w-[18px] h-[18px] rounded transition-colors cursor-pointer ${e?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:r,"aria-label":r,children:e?(0,G.jsx)(ic,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(ac,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})}function tW({humidity:e,goodThreshold:t=40,fairThreshold:n=60,onClick:r,compact:i}){let a=typeof e==`string`?parseInt(e,10):e,o=typeof t==`number`?t:40,s=typeof n==`number`?n:60,c,l;isNaN(a)?(c=`#C3C2C1`,l=`Unknown`):a<=o?(c=`#22a352`,l=`Good`):a<=s?(c=`#d4a017`,l=`Fair`):(c=`#c62828`,l=`Bad`);let u;return u=isNaN(a)||a<=o?$ke:a<=s?eAe:tAe,(0,G.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1 ${r?`cursor-pointer hover:opacity-80 transition-opacity`:``}`,title:`Humidity: ${a}% - ${l}${r?` (click for history)`:``}`,children:[(0,G.jsx)(u,{className:i?`w-2.5 h-3`:`w-3 h-4`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums ${i?`text-[length:var(--pc-t10,10px)]`:`text-xs`}`,style:{color:c},children:[a,`%`]})]})}function nW({temp:e,goodThreshold:t=28,fairThreshold:n=35,onClick:r,compact:i}){let a=typeof t==`number`?t:28,o=typeof n==`number`?n:35,s,c,l;return e<=a?(s=`#22a352`,c=`Good`,l=nAe):e<=o?(s=`#d4a017`,c=`Fair`,l=rAe):(s=`#c62828`,c=`Bad`,l=iAe),(0,G.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1 ${r?`cursor-pointer hover:opacity-80 transition-opacity`:``}`,title:`Temperature: ${e}°C - ${c}${r?` (click for history)`:``}`,children:[(0,G.jsx)(l,{className:i?`w-2.5 h-3`:`w-3 h-4`}),(0,G.jsxs)(`span`,{className:`tabular-nums text-right ${i?`text-[length:var(--pc-t10,10px)] w-8`:`w-12`}`,style:{color:s},children:[e,`°C`]})]})}function rW(e){return e?.tray_type?null:e?.exists===!0?`reset`:e?.exists===!1||e?.state===9||e?.state===10?`physical`:`reset`}var cAe=3e4;function lAe({url:e,printName:t,className:n=`w-20 h-20`,radiusClass:r=`rounded-lg`}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),d=(0,y.useRef)(null),f=(0,y.useMemo)(()=>e?vd(`${e}${e.includes(`?`)?`&`:`?`}v=${encodeURIComponent(t||Date.now().toString())}`):null,[e,t]);return(0,y.useEffect)(()=>{c(!1);let e=d.current;o(!!(e?.complete&&e.naturalWidth>0))},[f]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`${n} flex-shrink-0 ${r} overflow-hidden bg-bambu-dark-tertiary flex items-center justify-center ${f&&a?`cursor-pointer`:``}`,onClick:()=>f&&a&&u(!0),children:f&&!s?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`img`,{ref:d,src:f,alt:i(`printers.printPreview`),className:`w-full h-full object-cover ${a?`block`:`hidden`}`,onLoad:()=>o(!0),onError:()=>c(!0)}),!a&&(0,G.jsx)(Zo,{className:`w-8 h-8 text-bambu-gray`})]}):(0,G.jsx)(Zo,{className:`w-8 h-8 text-bambu-gray`})}),l&&f&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-8`,onClick:()=>u(!1),children:(0,G.jsxs)(`div`,{className:`relative max-w-2xl max-h-full`,children:[(0,G.jsx)(`img`,{src:f,alt:i(`printers.printPreview`),className:`max-w-full max-h-[80vh] rounded-lg shadow-2xl`}),t&&(0,G.jsx)(`p`,{className:`text-white text-center mt-4 text-lg`,children:t})]})})]})}function uAe({printers:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=!1,t=n.getQueryCache().subscribe(()=>{e||(e=!0,requestAnimationFrame(()=>{i(e=>e+1),e=!1}))});return()=>t()},[n]);let{counts:a,nextFinish:o}=(0,y.useMemo)(()=>{let t=0,r=0,i=0,a=0,o=0,s=0,c=0,l=null,u=null,d=0;return e?.forEach(e=>{let f=n.getQueryData([`printerStatus`,e.id]);if(f===void 0)s++;else if(!f.connected)o++;else{let n=f.hms_errors?Fm(f.hms_errors).length:0;switch(n>0&&c++,f.state){case`RUNNING`:t++,f.remaining_time!=null&&f.remaining_time>0&&(u===null||f.remaining_time0||i++;break;default:a++;break}}}),{counts:{printing:t,paused:r,finished:i,idle:a,offline:o,loading:s,error:c,total:e?.length||0},nextFinish:l&&u?{name:l,remainingMin:u,progress:d}:null}},[e,n,r]);return e?.length?(0,G.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-4 gap-y-2 text-bambu-gray`,children:[[{count:a.printing,dot:`bg-bambu-green animate-pulse`,label:t(`printers.status.printing`).toLowerCase()},{count:a.paused,dot:`bg-status-warning`,label:t(`printers.status.paused`,`paused`).toLowerCase()},{count:a.finished,dot:`bg-blue-400`,label:t(`printers.status.finished`,`finished`).toLowerCase()},{count:a.idle,dot:a.idle>0?`bg-bambu-green`:`bg-gray-500`,label:t(`printers.status.available`).toLowerCase()},{count:a.error,dot:`bg-status-error`,label:t(`printers.status.problem`).toLowerCase()},{count:a.offline,dot:`bg-gray-400`,label:t(`printers.status.offline`).toLowerCase()}].map(({count:e,dot:t,label:n})=>e>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${t}`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:e}),` `,n]})]},n)),o&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-px h-4 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,children:[t(`printers.nextAvailable`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:o.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 w-full sm:w-auto`,children:[(0,G.jsx)(`div`,{className:`w-full sm:w-16 bg-bambu-dark-tertiary rounded-full h-1.5`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-1.5 rounded-full transition-all`,style:{width:`${o.progress}%`}})}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[Math.round(o.progress),`%`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,lp(o.remainingMin*60),`)`]})]})]})]})]}):null}function iW({value:e,options:t,onChange:n,fullWidth:r=!1}){let[i,a]=(0,y.useState)(!1),o=t.find(t=>t.value===e)??t[0];return(0,G.jsxs)(`div`,{className:`relative ${r?`w-full min-w-0`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>a(e=>!e),className:`h-8 px-2 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white text-sm font-medium transition-colors hover:bg-bambu-dark-tertiary focus:outline-none focus:border-bambu-green flex items-center justify-between gap-2 ${r?`w-full`:`min-w-28`}`,children:[(0,G.jsx)(`span`,{className:`truncate`,children:o?.label}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?`rotate-180`:``}`})]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>a(!1)}),(0,G.jsx)(`div`,{className:`absolute left-0 top-full z-20 mt-1 min-w-full rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary py-1 shadow-xl`,children:t.map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{n(t.value),a(!1)},className:`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-bambu-dark-tertiary ${t.value===e?`text-bambu-green`:`text-white`}`,children:t.label},t.value))})]})]})}function aW({label:e,icon:t,children:n}){let[r,i]=(0,y.useState)(!1);return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(e=>!e),className:`h-8 w-8 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center justify-center`,"aria-label":e,title:e,children:t}),r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>i(!1)}),(0,G.jsx)(`div`,{className:`absolute right-0 top-full z-20 mt-1 min-w-40 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary p-2 shadow-xl`,children:n})]})]})}function oW({title:e,options:t=[],unit:n,customMin:r,customMax:i,customStep:a=1,widthClass:o=`w-[240px]`,popoverWidth:s=240,popoverHeight:c=280,isPending:l,onClose:u,onSubmit:d,children:f}){let p=(0,y.useRef)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(``);(0,y.useLayoutEffect)(()=>{let e=p.current?.parentElement;if(!e)return;let t=()=>{h(gm({triggerRect:e.getBoundingClientRect(),popoverWidth:s,estimatedHeight:c,horizontalAlign:`center`}))};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[s,c]);let v=n!==void 0,b=()=>{let e=Number(g);Number.isFinite(e)&&d?.(Math.round(Math.min(i??e,Math.max(r??e,e))))};return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{ref:p,className:`hidden`,"aria-hidden":`true`}),(0,At.createPortal)((0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[1000]`,onClick:u}),(0,G.jsxs)(`div`,{className:`fixed z-[1001] flex ${o} flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,style:{top:m?.top??-9999,left:m?.left??-9999,visibility:m?`visible`:`hidden`},onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:e}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),t.length>0&&(0,G.jsx)(`div`,{className:`px-3 py-2.5`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:t.map(e=>(0,G.jsx)(`button`,{type:`button`,disabled:l,onClick:()=>d?.(e.value),className:`h-8 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:e.label},`${e.label}-${e.value}`))})}),f,v&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`form`,{className:`flex gap-1.5 px-3 pt-2.5 pb-3`,onSubmit:e=>{e.preventDefault(),b()},children:[(0,G.jsx)(`input`,{type:`number`,min:r,max:i,step:a,value:g,onChange:e=>_(e.target.value),placeholder:`Custom`,className:`h-8 min-w-0 flex-1 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{type:`submit`,disabled:l||g.trim()===``,className:`h-8 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:`Set`})]})]})]})]}),document.body)]})}var dAe=jm(Em,`C`);function sW({label:e,current:t,target:n,isActive:r,isPending:i,onSubmit:a,options:o=dAe}){let[s,c]=(0,y.useState)(``),l=()=>{let e=Number(s);Number.isFinite(e)&&a(Math.min(320,Math.max(0,Math.round(e))))};return(0,G.jsxs)(`div`,{className:`rounded-lg border p-2 ${r?`border-amber-500/60 dark:border-amber-400/60 bg-amber-50 dark:bg-amber-400/10`:`border-bambu-dark-tertiary bg-bambu-dark`}`,children:[(0,G.jsxs)(`div`,{className:`mb-1.5 flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium ${r?`text-amber-700 dark:text-amber-300`:`text-white`}`,children:e}),(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[Math.round(t??0),`°C`,n===void 0?``:` / ${Math.round(n)}°`]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1`,children:o.map(t=>(0,G.jsx)(`button`,{type:`button`,disabled:i,onClick:()=>a(t.value),className:`h-7 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-1.5 text-[11px] font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:t.label},`${e}-${t.value}`))}),(0,G.jsxs)(`form`,{className:`mt-1.5 flex gap-1`,onSubmit:e=>{e.preventDefault(),l()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:320,step:1,value:s,onChange:e=>c(e.target.value),placeholder:`Custom`,className:`h-7 min-w-0 flex-1 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-1.5 text-[11px] text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{type:`submit`,disabled:i||s.trim()===``,className:`h-7 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-2 text-[11px] font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:`Set`})]})]})}var fAe=[`error`,`printing`,`paused`,`finished`,`idle`,`offline`],cW={error:{labelKey:`printers.status.problem`,dot:`bg-status-error`},printing:{labelKey:`printers.status.printing`,dot:`bg-bambu-green animate-pulse`},paused:{labelKey:`printers.status.paused`,dot:`bg-status-warning`},finished:{labelKey:`printers.status.finished`,dot:`bg-blue-400`},idle:{labelKey:`printers.status.idle`,dot:`bg-bambu-green`},offline:{labelKey:`printers.status.offline`,dot:`bg-gray-400`}};function lW(e){if(!e?.connected)return`offline`;if((e.hms_errors?Fm(e.hms_errors):[]).length>0)return`error`;switch(e.state){case`RUNNING`:return`printing`;case`PAUSE`:return`paused`;case`FINISH`:return`finished`;case`FAILED`:return`finished`;default:return`idle`}}function pAe(e,t){if(t)return t;switch(e){case`RUNNING`:return`Printing`;case`PAUSE`:return`Paused`;case`FINISH`:return`Finished`;case`FAILED`:return`Failed`;case`IDLE`:return`Idle`;default:return e?e.charAt(0)+e.slice(1).toLowerCase():`Idle`}}var mAe=new Set([`X1C`,`X1`,`X1E`,`X2D`,`P1S`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`]),hAe=new Set([`P2S`,`X2D`]);function uW(e){return e?{O1D:`H2D`,O1E:`H2D Pro`,O2D:`H2D Pro`,O1C:`H2C`,O1C2:`H2C`,O1S:`H2S`,"BL-P001":`X1C`,"BL-P002":`X1`,"BL-P003":`X1E`,N6:`X2D`,N9:`A2L`,C11:`P1S`,C12:`P1P`,C13:`P2S`,N2S:`A1`,N1:`A1 Mini`,X1C:`X1C`,X1:`X1`,X1E:`X1E`,X2D:`X2D`,P1S:`P1S`,P1P:`P1P`,P2S:`P2S`,A1:`A1`,"A1 Mini":`A1 Mini`,A2L:`A2L`,H2D:`H2D`,"H2D Pro":`H2D Pro`,H2C:`H2C`,H2S:`H2S`}[e]||e:``}function dW({ams:e,printerId:t,label:n,amsLabels:r,canEdit:i,onSaved:a,children:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(`top`),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null);(0,y.useEffect)(()=>{c&&(p(r?.[e.id]??``),_(null),requestAnimationFrame(()=>{if(x.current&&S.current){let e=x.current.getBoundingClientRect(),t=e.top-56,n=window.innerHeight-e.bottom;d(tt?`bottom`:`top`)}}))},[c,r,e.id]);let w=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!0),80)},T=()=>{C.current&&clearTimeout(C.current),v||(C.current=setTimeout(()=>l(!1),200))};(0,y.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]);let E=async()=>{if(i){h(!0),_(null);try{let n=f.trim();n?await Z.saveAmsLabel(t,e.id,n,e.serial_number):await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}};return(0,G.jsxs)(`div`,{ref:x,className:`relative inline-block`,onMouseEnter:w,onMouseLeave:T,children:[o,c&&(0,G.jsx)(`div`,{ref:S,className:` + `})]})]})}function $ke({slots:e,filamentInfo:t}){let{t:n}=U(),r=e.filter(e=>e.id>=2),i=Array.from({length:6},(e,t)=>r.find(e=>e.id===16+t)??{id:-(t+1),nozzle_type:``,nozzle_diameter:``,wear:null,stat:null,max_temp:0,serial_number:``,filament_color:``,filament_id:``,filament_type:``});return(0,G.jsxs)(`div`,{className:`text-center px-2.5 py-1.5 bg-bambu-dark rounded-lg flex-[0_1_auto] flex flex-col justify-center`,children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray mb-1`,children:n(`printers.nozzleRack`)}),(0,G.jsx)(`div`,{className:`flex gap-[3px] justify-center`,children:i.map((e,n)=>{let r=!e.nozzle_diameter&&!e.nozzle_type,i=r?null:Nf(e.filament_color),a=i?Pf(e.filament_color):!1;return(0,G.jsx)($U,{slot:e,index:n,filamentName:e.filament_id?t?.[e.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,children:[(0,G.jsx)(`div`,{className:`w-[var(--pc-i7,28px)] h-[var(--pc-i7,28px)] rounded flex items-center justify-center cursor-default transition-colors border-b-2 ${r?`bg-bambu-dark-tertiary/20 border-bambu-dark-tertiary/20`:`bg-bambu-dark-tertiary/40 border-bambu-dark-tertiary/40`}`,style:i?{backgroundColor:i}:void 0,children:(0,G.jsx)(`span`,{"data-rack-diameter":!0,className:`text-[length:var(--pc-t10,10px)] font-semibold ${r?`text-bambu-gray/30`:a?`text-black/80`:`text-white`}`,style:i&&!a?{textShadow:`0 1px 3px rgba(0,0,0,0.9)`}:void 0,children:r?`—`:e.nozzle_diameter||`?`})}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t8,8px)] leading-none tabular-nums text-bambu-gray/70`,children:n+1})]})},e.id>=0?e.id:`empty-${n}`)})})]})}function eAe({className:e}){return(0,G.jsx)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,G.jsx)(`path`,{d:`M17.8131 0.00538C18.4463 -0.15091 20.3648 3.14642 20.8264 3.84781C25.4187 10.816 35.3089 26.9368 35.9383 34.8694C37.4182 53.5822 11.882 61.3357 2.53721 45.3789C-1.73471 38.0791 0.016 32.2049 3.178 25.0232C6.99221 16.3662 12.6411 7.90372 17.8131 0.00538ZM18.3738 7.24807L17.5881 7.48441C14.4452 12.9431 10.917 18.2341 8.19369 23.9368C4.6808 31.29 1.18317 38.5479 7.69403 45.5657C17.3058 55.9228 34.9847 46.8808 31.4604 32.8681C29.2558 24.0969 22.4207 15.2913 18.3776 7.24807H18.3738Z`,fill:`#C3C2C1`})})}function tAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 35 53`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.3165 0.0038C17.932 -0.14959 19.7971 3.08645 20.2458 3.77481C24.7103 10.6135 34.3251 26.4346 34.937 34.2198C36.3757 52.5848 11.5505 60.1942 2.46584 44.534C-1.68714 37.3735 0.0148 31.6085 3.08879 24.5603C6.79681 16.0605 12.2884 7.75907 17.3165 0.0038ZM17.8615 7.11561L17.0977 7.34755C14.0423 12.7048 10.6124 17.8974 7.96483 23.4941C4.54975 30.7107 1.14949 37.8337 7.47908 44.721C16.8233 54.8856 34.01 46.0117 30.5838 32.2595C28.4405 23.6512 21.7957 15.0093 17.8652 7.11561H17.8615Z`,fill:`#C3C2C1`}),(0,G.jsx)(`path`,{d:`M5.03547 30.112C9.64453 30.4936 11.632 35.7985 16.4154 35.791C19.6339 35.7873 20.2161 33.2283 22.3853 31.6197C31.6776 24.7286 33.5835 37.4894 27.9881 44.4254C18.1878 56.5653 -1.16063 44.6013 5.03917 30.1158L5.03547 30.112Z`,fill:`#1F8FEB`})]})}function nAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.9625 4.48059L4.77216 26.3154L2.08228 40.2175L10.0224 50.8414H23.1594L33.3246 42.1693V30.2455L17.9625 4.48059Z`,fill:`#1F8FEB`}),(0,G.jsx)(`path`,{d:`M17.7948 0.00538C18.4273 -0.15091 20.3438 3.14642 20.8048 3.84781C25.3921 10.816 35.2715 26.9368 35.9001 34.8694C37.3784 53.5822 11.8702 61.3357 2.53562 45.3789C-1.73163 38.0829 0.0134 32.2087 3.1757 25.027C6.98574 16.3662 12.6284 7.90372 17.7948 0.00538ZM18.3549 7.24807L17.57 7.48441C14.4306 12.9431 10.9063 18.2341 8.1859 23.9368C4.67686 31.29 1.18305 38.5479 7.68679 45.5657C17.2881 55.9228 34.9476 46.8808 31.4271 32.8681C29.2249 24.0969 22.3974 15.2913 18.3587 7.24807H18.3549Z`,fill:`#C3C2C1`})]})}function rAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function iAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`8`,width:`3`,height:`4.5`,fill:`#d4a017`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#d4a017`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function aAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:`#c62828`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#c62828`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function oAe({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`rect`,{x:`9.2`,y:`3.4`,width:`5.6`,height:`8.1`}),(0,G.jsx)(`rect`,{x:`6`,y:`11.5`,width:`12.1`,height:`3.7`}),(0,G.jsx)(`path`,{d:`M 7.3 15.2 L 12.1 19.6 L 16.7 15.2`})]})}function eW({className:e,color:t,isHeating:n}){let r={"text-orange-400":`#fb923c`,"text-blue-400":`#60a5fa`,"text-green-400":`#4ade80`}[t]||`#888`,i=n?{filter:`drop-shadow(0 0 4px ${r}) drop-shadow(0 0 8px ${r})`}:{};return n?(0,G.jsxs)(`svg`,{className:e,style:i,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:r,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:r}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:r,strokeWidth:`1`,fill:`none`})]}):(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:r,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:r,strokeWidth:`1`,fill:`none`})]})}function sAe({state:e,onClick:t}){let{t:n}=U(),r=e!==null,i=`flex items-center justify-center w-[18px] h-[18px] rounded text-[length:var(--pc-t10,10px)] transition-colors `,a;return e===!0?(i+=r?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-500/30 cursor-pointer`:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 cursor-default`,a=n(`printers.amsBackup.titleOn`)):e===!1?(i+=r?`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80 cursor-pointer`:`bg-bambu-dark text-bambu-gray cursor-default`,a=n(`printers.amsBackup.titleOff`)):(i+=`bg-bambu-dark text-bambu-gray/50 cursor-default`,a=n(`printers.amsBackup.titleUnknown`)),(0,G.jsx)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&t(),className:i,title:a,"aria-label":a,children:r?(0,G.jsx)(Ul,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(`span`,{children:`?`})})}function cAe({hidden:e,onClick:t}){let{t:n}=U(),r=n(e?`printers.externalSpool.show`:`printers.externalSpool.hide`);return(0,G.jsx)(`button`,{type:`button`,onClick:t,"aria-pressed":e,className:`flex items-center justify-center w-[18px] h-[18px] rounded transition-colors cursor-pointer ${e?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:r,"aria-label":r,children:e?(0,G.jsx)(ic,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(ac,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})}function tW({humidity:e,goodThreshold:t=40,fairThreshold:n=60,onClick:r,compact:i}){let a=typeof e==`string`?parseInt(e,10):e,o=typeof t==`number`?t:40,s=typeof n==`number`?n:60,c,l;isNaN(a)?(c=`#C3C2C1`,l=`Unknown`):a<=o?(c=`#22a352`,l=`Good`):a<=s?(c=`#d4a017`,l=`Fair`):(c=`#c62828`,l=`Bad`);let u;return u=isNaN(a)||a<=o?eAe:a<=s?tAe:nAe,(0,G.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1 ${r?`cursor-pointer hover:opacity-80 transition-opacity`:``}`,title:`Humidity: ${a}% - ${l}${r?` (click for history)`:``}`,children:[(0,G.jsx)(u,{className:i?`w-2.5 h-3`:`w-3 h-4`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums ${i?`text-[length:var(--pc-t10,10px)]`:`text-xs`}`,style:{color:c},children:[a,`%`]})]})}function nW({temp:e,goodThreshold:t=28,fairThreshold:n=35,onClick:r,compact:i}){let a=typeof t==`number`?t:28,o=typeof n==`number`?n:35,s,c,l;return e<=a?(s=`#22a352`,c=`Good`,l=rAe):e<=o?(s=`#d4a017`,c=`Fair`,l=iAe):(s=`#c62828`,c=`Bad`,l=aAe),(0,G.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1 ${r?`cursor-pointer hover:opacity-80 transition-opacity`:``}`,title:`Temperature: ${e}°C - ${c}${r?` (click for history)`:``}`,children:[(0,G.jsx)(l,{className:i?`w-2.5 h-3`:`w-3 h-4`}),(0,G.jsxs)(`span`,{className:`tabular-nums text-right ${i?`text-[length:var(--pc-t10,10px)] w-8`:`w-12`}`,style:{color:s},children:[e,`°C`]})]})}function rW(e){return e?.tray_type?null:e?.exists===!0?`reset`:e?.exists===!1||e?.state===9||e?.state===10?`physical`:`reset`}var lAe=3e4;function uAe({url:e,printName:t,className:n=`w-20 h-20`,radiusClass:r=`rounded-lg`}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),d=(0,y.useRef)(null),f=(0,y.useMemo)(()=>e?vd(`${e}${e.includes(`?`)?`&`:`?`}v=${encodeURIComponent(t||Date.now().toString())}`):null,[e,t]);return(0,y.useEffect)(()=>{c(!1);let e=d.current;o(!!(e?.complete&&e.naturalWidth>0))},[f]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`${n} flex-shrink-0 ${r} overflow-hidden bg-bambu-dark-tertiary flex items-center justify-center ${f&&a?`cursor-pointer`:``}`,onClick:()=>f&&a&&u(!0),children:f&&!s?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`img`,{ref:d,src:f,alt:i(`printers.printPreview`),className:`w-full h-full object-cover ${a?`block`:`hidden`}`,onLoad:()=>o(!0),onError:()=>c(!0)}),!a&&(0,G.jsx)(Zo,{className:`w-8 h-8 text-bambu-gray`})]}):(0,G.jsx)(Zo,{className:`w-8 h-8 text-bambu-gray`})}),l&&f&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-8`,onClick:()=>u(!1),children:(0,G.jsxs)(`div`,{className:`relative max-w-2xl max-h-full`,children:[(0,G.jsx)(`img`,{src:f,alt:i(`printers.printPreview`),className:`max-w-full max-h-[80vh] rounded-lg shadow-2xl`}),t&&(0,G.jsx)(`p`,{className:`text-white text-center mt-4 text-lg`,children:t})]})})]})}function dAe({printers:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=!1,t=n.getQueryCache().subscribe(()=>{e||(e=!0,requestAnimationFrame(()=>{i(e=>e+1),e=!1}))});return()=>t()},[n]);let{counts:a,nextFinish:o}=(0,y.useMemo)(()=>{let t=0,r=0,i=0,a=0,o=0,s=0,c=0,l=null,u=null,d=0;return e?.forEach(e=>{let f=n.getQueryData([`printerStatus`,e.id]);if(f===void 0)s++;else if(!f.connected)o++;else{let n=f.hms_errors?Fm(f.hms_errors).length:0;switch(n>0&&c++,f.state){case`RUNNING`:t++,f.remaining_time!=null&&f.remaining_time>0&&(u===null||f.remaining_time0||i++;break;default:a++;break}}}),{counts:{printing:t,paused:r,finished:i,idle:a,offline:o,loading:s,error:c,total:e?.length||0},nextFinish:l&&u?{name:l,remainingMin:u,progress:d}:null}},[e,n,r]);return e?.length?(0,G.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-4 gap-y-2 text-bambu-gray`,children:[[{count:a.printing,dot:`bg-bambu-green animate-pulse`,label:t(`printers.status.printing`).toLowerCase()},{count:a.paused,dot:`bg-status-warning`,label:t(`printers.status.paused`,`paused`).toLowerCase()},{count:a.finished,dot:`bg-blue-400`,label:t(`printers.status.finished`,`finished`).toLowerCase()},{count:a.idle,dot:a.idle>0?`bg-bambu-green`:`bg-gray-500`,label:t(`printers.status.available`).toLowerCase()},{count:a.error,dot:`bg-status-error`,label:t(`printers.status.problem`).toLowerCase()},{count:a.offline,dot:`bg-gray-400`,label:t(`printers.status.offline`).toLowerCase()}].map(({count:e,dot:t,label:n})=>e>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${t}`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:e}),` `,n]})]},n)),o&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-px h-4 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,children:[t(`printers.nextAvailable`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:o.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 w-full sm:w-auto`,children:[(0,G.jsx)(`div`,{className:`w-full sm:w-16 bg-bambu-dark-tertiary rounded-full h-1.5`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-1.5 rounded-full transition-all`,style:{width:`${o.progress}%`}})}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[Math.round(o.progress),`%`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,lp(o.remainingMin*60),`)`]})]})]})]})]}):null}function iW({value:e,options:t,onChange:n,fullWidth:r=!1}){let[i,a]=(0,y.useState)(!1),o=t.find(t=>t.value===e)??t[0];return(0,G.jsxs)(`div`,{className:`relative ${r?`w-full min-w-0`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>a(e=>!e),className:`h-8 px-2 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white text-sm font-medium transition-colors hover:bg-bambu-dark-tertiary focus:outline-none focus:border-bambu-green flex items-center justify-between gap-2 ${r?`w-full`:`min-w-28`}`,children:[(0,G.jsx)(`span`,{className:`truncate`,children:o?.label}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?`rotate-180`:``}`})]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>a(!1)}),(0,G.jsx)(`div`,{className:`absolute left-0 top-full z-20 mt-1 min-w-full rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary py-1 shadow-xl`,children:t.map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{n(t.value),a(!1)},className:`w-full px-3 py-2 text-left text-sm transition-colors hover:bg-bambu-dark-tertiary ${t.value===e?`text-bambu-green`:`text-white`}`,children:t.label},t.value))})]})]})}function aW({label:e,icon:t,children:n}){let[r,i]=(0,y.useState)(!1);return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(e=>!e),className:`h-8 w-8 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center justify-center`,"aria-label":e,title:e,children:t}),r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>i(!1)}),(0,G.jsx)(`div`,{className:`absolute right-0 top-full z-20 mt-1 min-w-40 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary p-2 shadow-xl`,children:n})]})]})}function oW({title:e,options:t=[],unit:n,customMin:r,customMax:i,customStep:a=1,widthClass:o=`w-[240px]`,popoverWidth:s=240,popoverHeight:c=280,isPending:l,onClose:u,onSubmit:d,children:f}){let p=(0,y.useRef)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(``);(0,y.useLayoutEffect)(()=>{let e=p.current?.parentElement;if(!e)return;let t=()=>{h(gm({triggerRect:e.getBoundingClientRect(),popoverWidth:s,estimatedHeight:c,horizontalAlign:`center`}))};return t(),window.addEventListener(`resize`,t),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,t),window.removeEventListener(`scroll`,t,!0)}},[s,c]);let v=n!==void 0,b=()=>{let e=Number(g);Number.isFinite(e)&&d?.(Math.round(Math.min(i??e,Math.max(r??e,e))))};return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{ref:p,className:`hidden`,"aria-hidden":`true`}),(0,At.createPortal)((0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[1000]`,onClick:u}),(0,G.jsxs)(`div`,{className:`fixed z-[1001] flex ${o} flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,style:{top:m?.top??-9999,left:m?.left??-9999,visibility:m?`visible`:`hidden`},onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:e}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),t.length>0&&(0,G.jsx)(`div`,{className:`px-3 py-2.5`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:t.map(e=>(0,G.jsx)(`button`,{type:`button`,disabled:l,onClick:()=>d?.(e.value),className:`h-8 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:e.label},`${e.label}-${e.value}`))})}),f,v&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`form`,{className:`flex gap-1.5 px-3 pt-2.5 pb-3`,onSubmit:e=>{e.preventDefault(),b()},children:[(0,G.jsx)(`input`,{type:`number`,min:r,max:i,step:a,value:g,onChange:e=>_(e.target.value),placeholder:`Custom`,className:`h-8 min-w-0 flex-1 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{type:`submit`,disabled:l||g.trim()===``,className:`h-8 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:`Set`})]})]})]})]}),document.body)]})}var fAe=jm(Em,`C`);function sW({label:e,current:t,target:n,isActive:r,isPending:i,onSubmit:a,options:o=fAe}){let[s,c]=(0,y.useState)(``),l=()=>{let e=Number(s);Number.isFinite(e)&&a(Math.min(320,Math.max(0,Math.round(e))))};return(0,G.jsxs)(`div`,{className:`rounded-lg border p-2 ${r?`border-amber-500/60 dark:border-amber-400/60 bg-amber-50 dark:bg-amber-400/10`:`border-bambu-dark-tertiary bg-bambu-dark`}`,children:[(0,G.jsxs)(`div`,{className:`mb-1.5 flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium ${r?`text-amber-700 dark:text-amber-300`:`text-white`}`,children:e}),(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[Math.round(t??0),`°C`,n===void 0?``:` / ${Math.round(n)}°`]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1`,children:o.map(t=>(0,G.jsx)(`button`,{type:`button`,disabled:i,onClick:()=>a(t.value),className:`h-7 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-1.5 text-[11px] font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:t.label},`${e}-${t.value}`))}),(0,G.jsxs)(`form`,{className:`mt-1.5 flex gap-1`,onSubmit:e=>{e.preventDefault(),l()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:320,step:1,value:s,onChange:e=>c(e.target.value),placeholder:`Custom`,className:`h-7 min-w-0 flex-1 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-1.5 text-[11px] text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{type:`submit`,disabled:i||s.trim()===``,className:`h-7 rounded-md border border-bambu-dark-tertiary bg-bambu-dark-secondary px-2 text-[11px] font-medium text-white transition-colors hover:bg-bambu-dark-tertiary disabled:cursor-not-allowed disabled:opacity-50`,children:`Set`})]})]})}var pAe=[`error`,`printing`,`paused`,`finished`,`idle`,`offline`],cW={error:{labelKey:`printers.status.problem`,dot:`bg-status-error`},printing:{labelKey:`printers.status.printing`,dot:`bg-bambu-green animate-pulse`},paused:{labelKey:`printers.status.paused`,dot:`bg-status-warning`},finished:{labelKey:`printers.status.finished`,dot:`bg-blue-400`},idle:{labelKey:`printers.status.idle`,dot:`bg-bambu-green`},offline:{labelKey:`printers.status.offline`,dot:`bg-gray-400`}};function lW(e){if(!e?.connected)return`offline`;if((e.hms_errors?Fm(e.hms_errors):[]).length>0)return`error`;switch(e.state){case`RUNNING`:return`printing`;case`PAUSE`:return`paused`;case`FINISH`:return`finished`;case`FAILED`:return`finished`;default:return`idle`}}function mAe(e,t){if(t)return t;switch(e){case`RUNNING`:return`Printing`;case`PAUSE`:return`Paused`;case`FINISH`:return`Finished`;case`FAILED`:return`Failed`;case`IDLE`:return`Idle`;default:return e?e.charAt(0)+e.slice(1).toLowerCase():`Idle`}}var hAe=new Set([`X1C`,`X1`,`X1E`,`X2D`,`P1S`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`]),gAe=new Set([`P2S`,`X2D`]);function uW(e){return e?{O1D:`H2D`,O1E:`H2D Pro`,O2D:`H2D Pro`,O1C:`H2C`,O1C2:`H2C`,O1S:`H2S`,"BL-P001":`X1C`,"BL-P002":`X1`,"BL-P003":`X1E`,N6:`X2D`,N9:`A2L`,C11:`P1S`,C12:`P1P`,C13:`P2S`,N2S:`A1`,N1:`A1 Mini`,X1C:`X1C`,X1:`X1`,X1E:`X1E`,X2D:`X2D`,P1S:`P1S`,P1P:`P1P`,P2S:`P2S`,A1:`A1`,"A1 Mini":`A1 Mini`,A2L:`A2L`,H2D:`H2D`,"H2D Pro":`H2D Pro`,H2C:`H2C`,H2S:`H2S`}[e]||e:``}function dW({ams:e,printerId:t,label:n,amsLabels:r,canEdit:i,onSaved:a,children:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(`top`),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(null),C=(0,y.useRef)(null);(0,y.useEffect)(()=>{c&&(p(r?.[e.id]??``),_(null),requestAnimationFrame(()=>{if(x.current&&S.current){let e=x.current.getBoundingClientRect(),t=e.top-56,n=window.innerHeight-e.bottom;d(tt?`bottom`:`top`)}}))},[c,r,e.id]);let w=()=>{C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!0),80)},T=()=>{C.current&&clearTimeout(C.current),v||(C.current=setTimeout(()=>l(!1),200))};(0,y.useEffect)(()=>()=>{C.current&&clearTimeout(C.current)},[]);let E=async()=>{if(i){h(!0),_(null);try{let n=f.trim();n?await Z.saveAmsLabel(t,e.id,n,e.serial_number):await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}};return(0,G.jsxs)(`div`,{ref:x,className:`relative inline-block`,onMouseEnter:w,onMouseLeave:T,children:[o,c&&(0,G.jsx)(`div`,{ref:S,className:` absolute left-0 z-50 ${u===`top`?`bottom-full mb-2`:`top-full mt-2`} animate-in fade-in-0 zoom-in-95 duration-150 - `,style:{maxWidth:`calc(100vw - 24px)`},onMouseEnter:w,onMouseLeave:T,children:(0,G.jsxs)(`div`,{className:`w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl overflow-hidden backdrop-blur-sm p-2.5 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.serialNumber`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono truncate`,children:e.serial_number||`—`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.firmwareVersion`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono truncate`,children:e.sw_ver||`—`})]}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.friendlyName`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary/50`})]}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>i&&p(e.target.value),onKeyDown:e=>e.key===`Enter`&&E(),onFocus:()=>b(!0),onBlur:()=>{b(!1),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!1),200)},placeholder:i?s(`printers.amsPopup.friendlyNamePlaceholder`):r?.[e.id]||`—`,disabled:!i,title:i?void 0:s(`printers.amsPopup.noEditPermission`),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-xs text-white placeholder-bambu-gray/60 focus:outline-none focus:border-bambu-green disabled:opacity-50 disabled:cursor-not-allowed`,maxLength:100}),i&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[g&&(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t10,10px)] text-red-700 dark:text-red-400 break-words`,children:g}),(0,G.jsxs)(`div`,{className:`flex gap-1 justify-end`,children:[(0,G.jsx)(`button`,{onClick:E,disabled:m,className:`px-2 py-0.5 text-[length:var(--pc-t10,10px)] bg-bambu-green text-white rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:s(`printers.amsPopup.save`)}),r?.[e.id]&&(0,G.jsx)(`button`,{onClick:async()=>{if(i){h(!0),_(null);try{await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}},disabled:m,className:`px-2 py-0.5 text-[length:var(--pc-t10,10px)] bg-bambu-dark-tertiary text-bambu-gray rounded hover:bg-bambu-dark-tertiary/70 disabled:opacity-50`,children:s(`printers.amsPopup.clear`)})]})]})]})]})})]})}var fW={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}},pW={1:1,2:1,3:1.2,4:1.4};function gAe(e){let t=pW[e]??1,n=e=>`${Math.round(e*t*10)/10}px`;return{"--pc-t8":n(8),"--pc-t9":n(9),"--pc-t10":n(10),"--pc-t11":n(11),"--pc-i2":n(8),"--pc-i25":n(10),"--pc-i3":n(12),"--pc-i35":n(14),"--pc-i4":n(16),"--pc-i5":n(20),"--pc-i7":n(28)}}function _Ae({printerId:e,dryingActive:t,timeFormat:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),{data:o=[]}=K({queryKey:WU,queryFn:()=>Z.listScheduledDryings(),refetchInterval:3e4});(0,y.useEffect)(()=>{t&&i.invalidateQueries({queryKey:WU})},[t,i]);let s=q({mutationFn:e=>Z.cancelScheduledDrying(e),onSuccess:()=>i.invalidateQueries({queryKey:WU}),onError:e=>a(e.message||r(`printers.drying.scheduleFailed`),`error`)}),c=o.filter(t=>t.printer_id===e&&(t.status===`pending`||t.status===`failed`));return c.length===0?null:(0,G.jsx)(`div`,{className:`mt-2 space-y-1`,children:c.map(e=>{let t=e.status===`failed`,i=Jke(e.waiting_reason);return(0,G.jsxs)(`div`,{"data-testid":t?`scheduled-drying-failed`:`scheduled-drying-pending`,className:`flex items-center justify-between px-2 py-1 rounded-lg text-[length:var(--pc-t11,11px)] ${t?`bg-red-500/10 border border-red-500/30`:`bg-amber-500/10 border border-amber-500/30`}`,children:[(0,G.jsx)(`span`,{className:t?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`,children:t?r(`printers.drying.scheduleFailedReason`,{reason:e.error_message||r(`printers.drying.scheduleFailedUnknown`)}):(0,G.jsxs)(G.Fragment,{children:[e.start_after?r(`printers.drying.scheduledFor`,{time:op(e.start_after,n)}):r(`printers.drying.scheduledAsap`),i&&(0,G.jsx)(`span`,{className:`ml-1 opacity-80`,children:r(i)})]})}),(0,G.jsx)(`button`,{onClick:()=>s.mutate(e.id),disabled:s.isPending,title:r(t?`printers.drying.dismissFailed`:`printers.drying.cancelScheduled`),className:`text-bambu-gray hover:text-red-400 transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]},e.id)})})}function mW({printer:e,hideIfDisconnected:t,maintenanceInfo:n,viewMode:r=`expanded`,cardSize:i=2,amsThresholds:a,spoolmanEnabled:o=!1,linkedSpools:s,spoolmanUrl:c,spoolmanSyncMode:l,onGetAssignment:u,onUnassignSpool:d,spoolmanSpools:f,spoolmanSlotAssignments:p,spoolmanLoading:m=!1,onUnassignSpoolmanSpool:h,timeFormat:g=`system`,cameraViewMode:_=`window`,onOpenEmbeddedCamera:v,onSelectCameraViewMode:b,checkPrinterFirmware:x=!0,dryingPresets:S=fW,requirePlateClear:C=!1,selectionMode:w=!1,isSelected:T=!1,onToggleSelect:E,onOpenCompactCard:D,nozzleTempPresets:O=Em,bedTempPresets:k=Dm,chamberTempPresets:A=Om,fanSpeedPresets:j=km,aiDetectionEnabled:M=!1,aiDetection:N,aiLastError:P=null}){let{t:F}=U(),I=co(),L=or(),{showToast:R}=qd(),{hasPermission:z}=Nd(),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!0),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(!1),[_e,ve]=(0,y.useState)(!1),[ye,be]=(0,y.useState)(!1),[xe,Se]=(0,y.useState)(()=>Eee(e.id)),Ce=(0,y.useCallback)(()=>{Se(t=>{let n=!t;return Dee(e.id,n),n})},[e.id]),[we,Te]=(0,y.useState)(!1),[Ee,De]=(0,y.useState)(!1),[Oe,ke]=(0,y.useState)(null),[Ae,je]=(0,y.useState)(null),[Me,Ne]=(0,y.useState)(null),[Pe,Fe]=(0,y.useState)(null),[Ie,Le]=(0,y.useState)(10),[Re,ze]=(0,y.useState)(!1),[Be,Ve]=(0,y.useState)(!1),[He,Ue]=(0,y.useState)(!1),[We,Ge]=(0,y.useState)(!1),[Ke,qe]=(0,y.useState)(!1),Je=(0,y.useCallback)(()=>Ge(!1),[]),[Ye,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(null),[$e,et]=(0,y.useState)(`n3f`),[tt,nt]=(0,y.useState)(`PLA`),[rt,it]=(0,y.useState)(50),[at,ot]=(0,y.useState)(4),[st,ct]=(0,y.useState)(!1),[lt,ut]=(0,y.useState)(`now`),[dt,ft]=(0,y.useState)(120),[pt,mt]=(0,y.useState)(``),[ht,gt]=(0,y.useState)(null),[_t,vt]=(0,y.useState)(null),yt=(0,y.useCallback)((e,t)=>{let n=wee(e.tray.find(e=>e.tray_type)?.tray_type,S),r=S[n]??fW.PLA,i=e.module_type;nt(n),it(r[i]||r.n3f),ot(i===`n3s`?r.n3s_hours:r.n3f_hours),ct(!1),ut(`now`),ft(120),mt(``),et(e.module_type),Qe(e.id),vt(t)},[S]);(0,y.useLayoutEffect)(()=>{if(Ze===null||!_t)return;let e=()=>{gt(gm({triggerRect:_t.getBoundingClientRect(),popoverWidth:Wke,estimatedHeight:Gke,horizontalAlign:`center`}))};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[Ze,_t]);let bt=(0,y.useRef)(null),xt=(0,y.useRef)(!1),[St,Ct]=(0,y.useState)(null),[wt,Tt]=(0,y.useState)(!1),[Et,Dt]=(0,y.useState)(!1),Ot=(0,y.useRef)(null),[kt,At]=(0,y.useState)(null),jt=(0,y.useRef)(0),[Mt,Nt]=(0,y.useState)(null),[Pt,Ft]=(0,y.useState)(null),[It,Lt]=(0,y.useState)(null),[Rt,zt]=(0,y.useState)(null),[Bt,Vt]=(0,y.useState)(null),[Ht,Ut]=(0,y.useState)(!1),[Wt,Gt]=(0,y.useState)(null),[Kt,qt]=(0,y.useState)(!1),[Jt,Yt]=(0,y.useState)(!1),[Xt,Zt]=(0,y.useState)(null),[Qt,$t]=(0,y.useState)(!1),[en,tn]=(0,y.useState)(!1),{data:W}=K({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:3e4}),{data:nn}=K({queryKey:[`firmwareUpdate`,e.id],queryFn:()=>Ed.checkPrinterUpdate(e.id),staleTime:300*1e3,refetchInterval:300*1e3,enabled:x&&z(`firmware:read`)}),rn=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_info_idx&&e.add(n.tray_info_idx);for(let t of W?.vt_tray??[])t.tray_info_idx&&e.add(t.tray_info_idx);if(W?.nozzle_rack)for(let t of W.nozzle_rack)t.filament_id&&e.add(t.filament_id);return Array.from(e)},[W?.ams,W?.vt_tray,W?.nozzle_rack]),an=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_type&&e.add(n.tray_type.toUpperCase());for(let t of W?.vt_tray??[])t.tray_type&&e.add(t.tray_type.toUpperCase());return e},[W?.ams,W?.vt_tray]),on=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}`)}return e},[W?.ams,W?.vt_tray]),sn=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}:${n.tray_info_idx||``}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}:${t.tray_info_idx||``}`)}return e},[W?.ams,W?.vt_tray]),{data:cn}=K({queryKey:[`filamentInfo`,rn],queryFn:()=>Z.getFilamentInfo(rn),enabled:rn.length>0,staleTime:300*1e3}),{data:ln}=K({queryKey:[`slotPresets`,e.id],queryFn:()=>Z.getSlotPresets(e.id),staleTime:120*1e3}),un=W?.state===`RUNNING`||W?.state===`PAUSE`?W?.current_archive_id??null:null,{data:dn}=K({queryKey:[`archive-plates`,un],queryFn:()=>Z.getArchivePlates(un),enabled:un!=null,staleTime:300*1e3}),fn=!dn?.is_multi_plate||W?.current_plate_id==null?null:dn.plates.find(e=>e.index===W.current_plate_id)?.name||F(`printers.plateNumber`,`Plate {{number}}`,{number:W.current_plate_id}),{data:pn,refetch:mn}=K({queryKey:[`amsLabels`,e.id],queryFn:()=>Z.getAmsLabels(e.id),staleTime:300*1e3}),[hn,gn]=(0,y.useState)(null);(0,y.useEffect)(()=>{W?.wifi_signal!=null&&gn(W.wifi_signal)},[W?.wifi_signal]);let _n=W?.wifi_signal??hn,vn=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{W?.connected!==void 0&&(vn.current=W.connected)},[W?.connected]);let yn=W?.connected??vn.current,bn=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0&&(bn.current=W.ams_extruder_map)},[W?.ams_extruder_map]);let xn=W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0?W.ams_extruder_map:bn.current,Sn=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_switch_inlet&&Object.keys(W.ams_switch_inlet).length>0&&(Sn.current=W.ams_switch_inlet)},[W?.ams_switch_inlet]);let Cn=W?.fila_switch?.installed===!0,wn=W?.ams_switch_inlet&&Object.keys(W.ams_switch_inlet).length>0?W.ams_switch_inlet:Sn.current,Tn=(0,y.useRef)([]);(0,y.useEffect)(()=>{W?.ams&&W.ams.length>0&&(Tn.current=W.ams)},[W?.ams]);let En=W?.ams&&W.ams.length>0?W.ams:Tn.current,Dn=En.some(e=>e.tray.some(e=>e.k))||(W?.vt_tray??[]).some(e=>e.k);(0,y.useEffect)(()=>{if(!St)return;let e=En.find(e=>e.id===St.amsId);e&&(e.dry_time>0||e.dry_status>0)&&Ct(null)},[St,En]),(0,y.useEffect)(()=>{if(!St)return;let e=setTimeout(()=>{Ct(null),R(F(`printers.drying.toastNotStarted`),`error`)},cAe);return()=>clearTimeout(e)},[St,R,F]);let On=(0,y.useRef)(void 0),kn=W?.tray_now;kn!==void 0&&kn!==255?On.current=kn:kn===255&&(On.current=void 0);let An=kn!==void 0&&kn!==255?kn:On.current,jn=W?.expected_tray??null,Mn=W?.previous_tray??null,Nn=e=>{if(e===null)return null;if(e===254)return F(`printers.expectedSlot.external`);if(e>=128&&e<=135)return pn?.[e]||yp(e,1);let t=Math.floor(e/4),n=e%4;return F(`printers.expectedSlot.label`,{ams:pn?.[t]||yp(t,4),slot:n+1})},Pn=W?.state===`PAUSE`?{expectedSlotLabel:Nn(jn),ranOutSlotLabel:Nn(Mn)}:null,{data:Fn}=K({queryKey:[`smartPlugByPrinter`,e.id],queryFn:()=>Z.getSmartPlugByPrinter(e.id)}),{data:In}=K({queryKey:[`scriptPlugsByPrinter`,e.id],queryFn:()=>Z.getScriptPlugsByPrinter(e.id)}),{data:Ln}=K({queryKey:[`smartPlugStatus`,Fn?.id],queryFn:()=>Fn?Z.getSmartPlugStatus(Fn.id):null,enabled:!!Fn,refetchInterval:1e4}),{data:Rn}=K({queryKey:[`queue`,e.id,`pending`],queryFn:()=>Z.getQueue(e.id,`pending`)}),zn=(0,y.useMemo)(()=>Rn?.length?Tm(Rn,an,on,sn).length:0,[Rn,an,on,sn]),{data:Bn}=K({queryKey:[`queue`,e.id,`printing`],queryFn:()=>Z.getQueue(e.id,`printing`),enabled:W?.state===`RUNNING`}),{data:Vn}=K({queryKey:[`currentPrintUser`,e.id],queryFn:()=>Z.getCurrentPrintUser(e.id),enabled:W?.state===`RUNNING`}),Hn=Bn?.[0]?.created_by_username||Vn?.username,{data:Un}=K({queryKey:[`archives`,e.id,`last`],queryFn:()=>Z.getArchives(e.id,1,0),enabled:W?.connected&&W?.state!==`RUNNING`}),Wn=Un?.[0],Gn=W?.state===`RUNNING`||W?.state===`PAUSE`,Kn=C&&W?.awaiting_plate_clear===!0,qn=Kn&&!Gn,Jn=W?.current_print&&Gn?vee(W.subtask_name||W.current_print||null,W.gcode_file,F,fn):null,[Yn,Xn]=(0,y.useState)(null);(0,y.useEffect)(()=>{Jn?Xn({name:Jn,coverUrl:W?.cover_url??null}):Kn||Xn(null)},[Jn,Kn,W?.cover_url]);let Zn=!C||!W?.connected?null:Gn?{label:F(`printers.plateStatus.inUse`),className:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`}:W.awaiting_plate_clear?{label:F(`printers.plateStatus.notCleared`),className:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`}:{label:F(`printers.plateStatus.cleared`),className:`bg-status-ok/20 text-status-ok`},Qn=Zn?(0,G.jsx)(`span`,{className:`inline-flex flex-shrink-0 items-center rounded-full px-2 py-0.5 text-[length:var(--pc-t10,10px)] font-medium ${Zn.className}`,children:Zn.label}):null,$n=t&&yn===!1,er=q({mutationFn:t=>Z.deletePrinter(e.id,t.deleteArchives),onSuccess:()=>{I.invalidateQueries({queryKey:[`printers`]}),I.invalidateQueries({queryKey:[`archives`]}),I.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>R(e.message||F(`printers.toast.failedToDelete`),`error`)}),tr=q({mutationFn:()=>Z.connectPrinter(e.id),onSuccess:()=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),nr=q({mutationFn:()=>Z.refreshPrinterStatus(e.id),onSuccess:()=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),R(F(`printers.forceRefreshSuccess`),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),rr=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{R(F(`spoolman.unlinkSuccess`)||e?.message,`success`),I.invalidateQueries({queryKey:[`linked-spools`]}),I.invalidateQueries({queryKey:[`unlinked-spools`]}),I.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})},onError:e=>{R(e.message||F(`spoolman.unlinkFailed`),`error`)}}),ir=q({mutationFn:({amsId:t,temp:n,duration:r,filament:i,rotateTray:a})=>Z.startDrying(e.id,t,n,r,i,a),onSuccess:(t,{amsId:n})=>{Qe(null),Ct({amsId:n}),R(F(`printers.drying.toastCommandSent`),`success`),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),ar=q({mutationFn:t=>Z.createScheduledDrying({printer_id:e.id,ams_id:t.amsId,temp:t.temp,duration_hours:t.duration,filament:t.filament,rotate_tray:t.rotateTray,start_after:t.startAfter}),onSuccess:()=>{I.invalidateQueries({queryKey:WU}),Qe(null)},onError:e=>R(e.message||F(`printers.drying.scheduleFailed`),`error`)}),sr=q({mutationFn:t=>Z.stopDrying(e.id,t),onSuccess:()=>{Ct(null),R(F(`printers.drying.toastStopped`),`success`),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),cr=q({mutationFn:t=>Z.setAmsFilamentBackup(e.id,t),onSuccess:(t,n)=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),I.invalidateQueries({queryKey:[`printer-status`,e.id]}),R(F(n?`printers.amsBackup.toastEnabled`:`printers.amsBackup.toastDisabled`),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),lr=q({mutationFn:e=>Fn?Z.controlSmartPlug(Fn.id,e):Promise.reject(`No plug`),onSuccess:()=>{I.invalidateQueries({queryKey:[`smartPlugStatus`,Fn?.id]})}}),ur=q({mutationFn:e=>Fn?Z.updateSmartPlug(Fn.id,{auto_off:e}):Promise.reject(`No plug`),onSuccess:()=>{I.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.id]}),I.invalidateQueries({queryKey:[`smart-plugs`]})}}),dr=q({mutationFn:({id:e,action:t})=>Z.controlSmartPlug(e,t),onSuccess:()=>{R(F(`printers.toast.scriptTriggered`))},onError:e=>R(e.message||F(`printers.toast.failedToRunScript`),`error`)}),fr=q({mutationFn:()=>Z.stopPrint(e.id),onSuccess:()=>{R(F(`printers.toast.printStopped`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToStopPrint`),`error`)}),pr=q({mutationFn:()=>Z.pausePrint(e.id),onSuccess:()=>{R(F(`printers.toast.printPaused`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToPausePrint`),`error`)}),mr=q({mutationFn:()=>Z.resumePrint(e.id),onSuccess:()=>{R(F(`printers.toast.printResumed`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToResumePrint`),`error`)}),hr=q({mutationFn:()=>Z.clearPlate(e.id),onSuccess:()=>{R(F(`queue.clearPlateSuccess`)),I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,awaiting_plate_clear:!1}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),I.invalidateQueries({queryKey:[`queue`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),gr=(0,G.jsxs)(`button`,{type:`button`,onClick:()=>hr.mutate(),disabled:hr.isPending||!z(`printers:clear_plate`),className:`mt-2 w-full inline-flex items-center justify-center gap-2 px-3 py-1.5 rounded-lg bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-400/40 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs font-medium disabled:opacity-50`,title:z(`printers:clear_plate`)?F(`printers.plateStatus.markCleared`):F(`printers.permission.noControl`),children:[hr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):(0,G.jsx)(hU,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.plateStatus.markCleared`)]}),_r=q({mutationFn:({target:t,nozzle:n})=>Z.setNozzleTemperature(e.id,t,n),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),vr=q({mutationFn:t=>Z.setBedTemperature(e.id,t),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),yr=q({mutationFn:t=>Z.setChamberTemperature(e.id,t),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),br=q({mutationFn:({fan:t,speed:n})=>Z.setFanSpeed(e.id,t,n),onMutate:async({fan:t,speed:n})=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let r=I.getQueryData([`printerStatus`,e.id]),i={part:`cooling_fan_speed`,aux:`big_fan1_speed`,aux2:`left_aux_fan_speed`,chamber:`big_fan2_speed`}[t];return I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,[i]:n}),{previousStatus:r}},onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),xr=q({mutationFn:t=>Z.selectExtruder(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,active_extruder:t}),{previousStatus:n}},onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),Sr=q({mutationFn:t=>Z.setChamberLight(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,chamber_light:t})),{previousStatus:n}},onSuccess:(e,t)=>{R(`Chamber light ${t?`on`:`off`}`)},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToControlChamberLight`),`error`)}}),Cr=q({mutationFn:t=>Z.setPrintSpeed(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,speed_level:t})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSetSpeed`),`error`)}}),wr=q({mutationFn:t=>Z.setAirductMode(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,airduct_mode:t===`cooling`?0:1})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),Tr=q({mutationFn:({distance:t})=>Z.bedJog(e.id,t),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Er=q({mutationFn:({x:t,y:n})=>Z.xyJog(e.id,t,n),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Dr=q({mutationFn:t=>Z.extruderJog(e.id,t),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Or=q({mutationFn:t=>Z.homeAxes(e.id,t),onSuccess:()=>{R(F(`printers.bedJog.homingStarted`))},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),kr=q({mutationFn:t=>Z.updatePrinter(e.id,{plate_detection_enabled:t}),onSuccess:()=>{I.invalidateQueries({queryKey:[`printers`]}),R(kr.variables?F(`printers.toast.plateCheckEnabled`):F(`printers.toast.plateCheckDisabled`))},onError:e=>R(e.message||F(`printers.toast.failedToUpdateSetting`),`error`)}),Ar=q({mutationFn:t=>Z.updatePrinter(e.id,{is_active:t}),onSuccess:(t,n)=>{I.invalidateQueries({queryKey:[`printers`]}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),R(F(n?`printers.maintenance.toastExited`:`printers.maintenance.toastEntered`,{name:e.name}),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToUpdateSetting`),`error`)}),[jr,Mr]=(0,y.useState)(!1),Nr=()=>{W?.state===`RUNNING`||W?.state===`PAUSE`?Mr(!0):Ar.mutate(!1)},Pr=(W?.state===`RUNNING`||W?.state===`PAUSE`)&&(W?.printable_objects_count??0)>=2,{data:Fr}=K({queryKey:[`printableObjects`,e.id],queryFn:()=>Z.getPrintableObjects(e.id),enabled:Be||Pr,refetchInterval:Be?5e3:Pr?3e4:!1}),[Ir,Lr]=(0,y.useState)(null),Rr=(0,y.useRef)(!1),zr=(0,y.useRef)(null),Br=(0,y.useRef)(!1),Vr=q({mutationFn:({amsId:t,slotId:n})=>Z.refreshAmsSlot(e.id,t,n),onMutate:({amsId:e,slotId:t})=>{zr.current&&clearTimeout(zr.current),Rr.current=!1,Br.current=!1,Lr({amsId:e,slotId:t}),setTimeout(()=>{Br.current=!0},2e3),zr.current=setTimeout(()=>{Lr(null)},3e4)},onSuccess:e=>{R(e.message||F(`printers.toast.rfidRereadInitiated`))},onError:e=>{R(e.message||F(`printers.toast.failedToRereadRfid`),`error`),zr.current&&clearTimeout(zr.current),Lr(null)}}),Hr=q({mutationFn:({trayId:t,extruderId:n})=>Z.loadAmsTray(e.id,t,n),onSuccess:e=>{Gr(null),R(e.message||F(`printers.toast.loadInitiated`))},onError:e=>{Gr(null),R(e.message||F(`printers.toast.failedToLoad`),`error`)}}),Ur=q({mutationFn:({trayId:t})=>Z.unloadAms(e.id,t),onSuccess:e=>{R(e.message||F(`printers.toast.unloadInitiated`))},onError:e=>{R(e.message||F(`printers.toast.failedToUnload`),`error`)}}),[Wr,Gr]=(0,y.useState)(null),Kr=!!W?.fila_switch?.installed,qr=(e,t,n)=>{if(!Kr||e===255||e>=128){Hr.mutate({trayId:n});return}if(!W?.fila_switch?.ready){R(F(`printers.ams.switchNotReady`),`warning`);return}Gr({trayId:n,amsId:e,slotId:t,slotLabel:jp(e,t,!1,!1)})},[Jr,Yr]=(0,y.useState)(null),[Xr,Zr]=(0,y.useState)(null),Qr=async()=>{try{Yr(await Z.getPlateReferences(e.id))}catch{}},$r=()=>{kr.mutate(!e.plate_detection_enabled)},ei=async()=>{qt(!0),Gt(null);let t=W?.chamber_light===!1;tn(t),t&&(await Z.setChamberLight(e.id,!0),await new Promise(e=>setTimeout(e,2500)));try{Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0})),Qr()}catch(n){R(n instanceof Error?n.message:F(`printers.toast.failedToCheckPlate`),`error`),t&&(await Z.setChamberLight(e.id,!1),tn(!1))}finally{qt(!1)}},ti=(0,y.useCallback)(async()=>{Gt(null),en&&(await Z.setChamberLight(e.id,!1),tn(!1))},[en,e.id]),ni=async t=>{Yt(!0);try{let n=await Z.calibratePlateDetection(e.id,{label:t});n.success?(R(n.message||F(`printers.toast.calibrationSaved`),`success`),Qr(),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))):R(n.message||F(`printers.toast.calibrationFailed`),`error`)}catch(e){R(e instanceof Error?e.message:F(`printers.toast.calibrationFailed`),`error`)}finally{Yt(!1)}},ri=async(t,n)=>{try{await Z.updatePlateReferenceLabel(e.id,t,n),Zr(null),Qr()}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToUpdateLabel`),`error`)}},ii=async t=>{try{await Z.deletePlateReference(e.id,t),R(F(`printers.toast.referenceDeleted`),`success`),Qr(),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToDeleteReference`),`error`)}},ai=async()=>{if(Xt){$t(!0);try{await Z.updatePrinter(e.id,{plate_detection_roi:Xt}),R(F(`printers.toast.detectionAreaSaved`),`success`),Zt(null),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToSaveDetectionArea`),`error`)}finally{$t(!1)}}};(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Wt&&ti()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Wt,ti]);let oi=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!Ir)return;let e=W?.ams_status_main??0;return e!==0&&(Rr.current=!0,oi.current&&=(clearTimeout(oi.current),null)),Rr.current&&e===0&&(Br.current?(zr.current&&clearTimeout(zr.current),Lr(null)):oi.current||=setTimeout(()=>{zr.current&&clearTimeout(zr.current),Lr(null)},2e3)),()=>{oi.current&&clearTimeout(oi.current)}},[W?.ams_status_main,Ir]),(0,y.useEffect)(()=>{if(!B)return;let e=e=>{let t=e.target;Ot.current?.contains(t)||V(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[B]),$n)return null;let si=gAe(i),ci=()=>{switch(i){case 1:return`w-10 h-10`;case 2:return`w-14 h-14`;case 3:return`w-16 h-16`;case 4:return`w-20 h-20`;default:return`w-14 h-14`}},li=()=>{switch(i){case 1:return`text-base truncate`;case 2:return`text-lg`;case 3:return`text-xl`;case 4:return`text-2xl`;default:return`text-lg`}},ui=()=>{switch(i){case 1:return`mb-2`;case 2:return`mb-4`;case 3:return`mb-5`;case 4:return`mb-6`;default:return`mb-4`}},di=z(`library:upload`)&&z(`queue:create`),fi=!wm(W),pi=e=>{e.preventDefault(),jt.current++,jt.current===1&&Tt(!0)},mi=e=>{e.preventDefault(),e.dataTransfer.dropEffect=di?`copy`:`none`},hi=e=>{e.preventDefault(),jt.current--,jt.current===0&&Tt(!1)},gi=async t=>{if(t.preventDefault(),jt.current=0,Tt(!1),!di)return;let n=Array.from(t.dataTransfer.files)[0];if(!n)return;let r=n.name.toLowerCase();if(!r.endsWith(`.gcode`)&&!r.includes(`.gcode.`)){R(F(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`),`error`);return}Dt(!0);try{let t=await Z.uploadLibraryFile(n,null),r=t.metadata?.sliced_for_model,i=uW(e.model);if(r&&i&&r.toLowerCase()!==i.toLowerCase()){await Z.deleteLibraryFile(t.id).catch(()=>{}),R(F(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:r,printerModel:i}),`error`);return}Xe({id:t.id,filename:t.filename})}catch{R(F(`common.uploadFailed`,`Upload failed`),`error`)}finally{Dt(!1)}},_i=t=>{r!==`compact`||w||t.target.closest(`button, a, input, select, textarea, [role="button"]`)||D?.(e.id)},vi=`!h-8 !min-h-8 !w-8 !px-0 !py-0`,yi=t=>{t===`embedded`&&v?v(e.id,e.name):vm(e.id)},bi=[{mode:`window`,icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),label:F(`settings.newWindow`),title:F(`settings.cameraWindowDescription`)},{mode:`embedded`,icon:(0,G.jsx)(Ml,{className:`w-4 h-4`}),label:F(`settings.embeddedOverlay`),title:F(`settings.cameraOverlayDescription`)}].map(({mode:e,icon:t,label:n,title:r})=>({icon:t,label:e===_?`${n} ✓`:n,title:r,onClick:()=>{b?.(e),yi(e)}})),xi=({amsId:e,slotId:t,loadTrayId:n,isRefreshing:r,includeRfid:i=!0})=>{let a=W?.state===`RUNNING`,o=e>=128&&e!==255?void 0:n;return(0,G.jsxs)(G.Fragment,{children:[i&&(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:n=>{n.stopPropagation(),!(a||!z(`printers:ams_rfid`))&&Vr.mutate({amsId:e,slotId:t})},disabled:a||r||!z(`printers:ams_rfid`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:ams_rfid`)?void 0:F(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(Hl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] ${r?`animate-spin`:``}`}),F(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:r=>{r.stopPropagation(),!(a||!z(`printers:control`))&&qr(e,t,n)},disabled:a||!z(`printers:control`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:control`)?void 0:F(`printers.permission.noControl`),children:[(0,G.jsx)(rl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!z(`printers:control`))&&Ur.mutate({trayId:o})},disabled:a||!z(`printers:control`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:control`)?void 0:F(`printers.permission.noControl`),children:[(0,G.jsx)(il,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.ams.unload`)]})]})},Si=(0,G.jsxs)(`div`,{ref:Ot,className:`relative flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>V(!B),title:F(`common.more`,`More`),className:vi,children:(0,G.jsx)($s,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),B&&(0,G.jsxs)(`div`,{className:`absolute left-0 bottom-full mb-2 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,onClick:()=>{z(`printers:update`)&&(ae(!0),V(!1))},title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:[(0,G.jsx)(Al,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Ge(!0),V(!1)},children:[(0,G.jsx)(Wc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.printerInformation`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,disabled:Ar.isPending||!z(`printers:update`),onClick:()=>{z(`printers:update`)&&(V(!1),e.is_active===!1?Ar.mutate(!0):Nr())},title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),e.is_active===!1?F(`printers.maintenance.menuExit`):F(`printers.maintenance.menuEnter`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{tr.mutate(),V(!1)},children:[(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.reconnect`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 disabled:opacity-50`,disabled:nr.isPending,onClick:()=>{nr.mutate(),V(!1)},children:[(0,G.jsx)(Gl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] ${nr.isPending?`animate-spin`:``}`}),F(`printers.forceRefresh`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{ce(!0),V(!1)},children:[(0,G.jsx)(Ou,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.mqttDebug`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{qe(!0),V(!1)},children:[(0,G.jsx)(Su,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`diagnostic.runButton`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:delete`)?`text-red-700 dark:text-red-400 hover:bg-bambu-dark-tertiary`:`text-red-700/50 dark:text-red-400/50 cursor-not-allowed`}`,onClick:()=>{z(`printers:delete`)&&(te(!0),V(!1))},title:z(`printers:delete`)?void 0:F(`printers.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.delete`)]})]})]});return(0,G.jsxs)(zd,{id:`printer-card-${e.id}`,className:`relative flex h-full flex-col ${T?`ring-2 ring-bambu-green`:``} ${w||r===`compact`?`cursor-pointer`:``}`,style:si,onClick:_i,onDragEnter:pi,onDragOver:mi,onDragLeave:hi,onDrop:gi,children:[w&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-20 flex items-start p-2`,onClick:t=>{t.stopPropagation(),E?.(e.id)},children:T?(0,G.jsx)(vu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-bambu-green`}):(0,G.jsx)(bu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-bambu-gray`})}),(wt||Et)&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 rounded-xl border-2 border-dashed flex items-center justify-center transition-colors ${Et?`bg-bambu-green/10 border-bambu-green/50`:di?`bg-bambu-green/10 border-bambu-green`:`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/50`}`,children:(0,G.jsx)(`div`,{className:`text-center`,children:Et?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:F(`common.uploading`,`Uploading...`)})]}):di?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Rl,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:F(fi?`printers.dropToQueue`:`printers.dropToPrint`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nd,{className:`w-8 h-8 mx-auto mb-2 text-red-600 dark:text-red-400`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-red-700 dark:text-red-400`,children:z(`library:upload`)?F(`fileManager.noPermissionAddToQueue`):F(`fileManager.noPermissionUpload`)})]})})}),(0,G.jsxs)(Vd,{className:`${i>=3?`p-5`:``} flex flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:ui(),children:[(0,G.jsx)(`div`,{className:`flex items-start justify-between gap-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`img`,{src:xm(e.model),alt:e.model||F(`common.printer`),className:`object-contain rounded-lg flex-shrink-0 ${ci()}`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white ${li()}`,children:e.name}),r===`compact`&&(()=>{let e=W?.connected&&W.hms_errors?Fm(W.hms_errors):[],t=e.some(e=>e.severity<=2),n=e.length>0,r=W?.connected?t?`bg-status-error`:n?`bg-status-warning`:`bg-status-ok`:`bg-status-error`,i=W?.connected?n?`${e.length} HMS ${e.length===1?`error`:`errors`}`:F(`printers.connection.connected`):F(`printers.connection.offline`);return(0,G.jsx)(`div`,{className:`w-[var(--pc-i2,0.5rem)] h-[var(--pc-i2,0.5rem)] rounded-full flex-shrink-0 ${r}`,title:i})})()]}),r===`compact`&&qn&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>hr.mutate(),disabled:hr.isPending||!z(`printers:clear_plate`),"aria-label":F(`printers.plateStatus.markCleared`),className:`inline-flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-md bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-400/40 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors disabled:opacity-50`,title:z(`printers:clear_plate`)?F(`printers.plateStatus.markCleared`):F(`printers.permission.noControl`),children:hr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):(0,G.jsx)(hU,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[e.model||`Unknown Model`,r===`expanded`&&Wp(W).length>0&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-bambu-gray`,title:W?.nozzles?.[0]?.nozzle_type||`Nozzle`,children:[`• `,Wp(W).join(` / `),`mm`]}),r===`expanded`&&n&&n.total_print_hours>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] inline-block mr-1`}),Math.round(n.total_print_hours),`h`]})]})]})]})}),r===`expanded`&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[e.is_active===!1?(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,title:F(`printers.maintenance.subtitle`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.maintenance.pillLabel`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs ${W?.connected?`bg-status-ok/20 text-status-ok`:`bg-status-error/20 text-status-error`}`,children:[W?.connected?(0,G.jsx)(Zc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(Bu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),W?.connected?F(`printers.connection.connected`):F(`printers.connection.offline`)]}),e.is_active!==!1&&!W?.connected&&(0,G.jsxs)(`button`,{onClick:()=>qe(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:F(`diagnostic.runButton`),children:[(0,G.jsx)(Su,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`diagnostic.runButton`)]}),W?.connected&&W?.wired_network&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-status-ok/20 text-status-ok`,title:F(`printers.connection.ethernet`,`Ethernet`),children:[(0,G.jsx)(ts,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.connection.ethernet`,`Ethernet`)]}),W?.connected&&!W?.wired_network&&_n!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs ${_n>=-50||_n>=-60?`bg-status-ok/20 text-status-ok`:_n>=-70?`bg-status-warning/20 text-status-warning`:_n>=-80?`bg-orange-500/20 text-orange-600`:`bg-status-error/20 text-status-error`}`,title:`WiFi: ${_n} dBm - ${F(Cm(_n).labelKey)}`,children:[(0,G.jsx)(lu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),_n,`dBm`]}),W?.connected&&(()=>{let e=W.hms_errors?Fm(W.hms_errors):[];return(0,G.jsxs)(`button`,{onClick:()=>ge(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${e.length>0?e.some(e=>e.severity<=2)?`bg-status-error/20 text-status-error`:`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:F(`printers.clickToViewHmsErrors`),children:[(0,G.jsx)(Lu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),e.length>0?e.length:`OK`]})})(),M&&(()=>{let e=AT(N),t=e===`failure`?`bg-status-error/20 text-status-error`:e===`warning`?`bg-status-warning/20 text-status-warning`:e===`safe`?`bg-status-ok/20 text-status-ok`:e===`error`?`bg-amber-500/20 text-amber-600 dark:text-amber-400`:`bg-bambu-dark-tertiary text-bambu-gray`,n=e===`error`?F(`printers.aiDetection.tooltipError`,{reason:N?.error??F(`printers.aiDetection.error`)}):e===`unknown`?F(`printers.aiDetection.tooltipUnknown`):N?F(`printers.aiDetection.tooltip`,{status:F(`printers.aiDetection.${e}`),score:N.score.toFixed(3)}):F(`printers.aiDetection.tooltipIdle`),r=e===`error`?ic:Yl;return(0,G.jsxs)(`button`,{onClick:()=>ve(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${t}`,title:n,children:[(0,G.jsx)(r,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.aiDetection.${e}`)]})})(),n&&(0,G.jsxs)(`button`,{onClick:()=>L(`/maintenance`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${n.due_count>0?`bg-status-error/20 text-status-error`:n.warning_count>0?`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:n.due_count>0||n.warning_count>0?`${n.due_count>0?`${n.due_count} maintenance due`:``}${n.due_count>0&&n.warning_count>0?`, `:``}${n.warning_count>0?`${n.warning_count} due soon`:``} - Click to view`:F(`printers.maintenanceUpToDate`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),n.due_count>0||n.warning_count>0?n.due_count+n.warning_count:`OK`]}),zn>0&&(0,G.jsxs)(`button`,{onClick:()=>L(`/queue`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 hover:opacity-80 transition-opacity`,title:F(`printers.queue.inQueue`,{count:zn}),children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),zn]}),x&&nn?.current_version&&nn?.latest_version?(0,G.jsxs)(`button`,{onClick:()=>Ut(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs hover:opacity-80 transition-opacity ${nn.update_available?`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`:`bg-status-ok/20 text-status-ok`}`,title:nn.update_available?F(`printers.firmwareUpdateAvailable`,{current:nn.current_version,latest:nn.latest_version}):F(`printers.firmwareUpToDate`,{version:nn.current_version}),children:[nn.update_available?(0,G.jsx)(Xs,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(xs,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),nn.current_version]}):W?.firmware_version?(0,G.jsx)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-bambu-dark-tertiary/50 text-bambu-gray`,children:W.firmware_version}):null,W?.connected&&[`X1C`,`X1`,`X1E`,`X2D`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`].includes(e.model??``)&&(0,G.jsx)(`span`,{className:`flex items-center px-2 py-1 rounded-full text-xs ${W.door_open?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-status-ok/20 text-status-ok`}`,title:W.door_open?F(`printers.door.open`):F(`printers.door.closed`),children:W.door_open?(0,G.jsx)(Ys,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(Js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]})})]}),ee&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(zd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-red-100 dark:bg-red-500/20`,children:(0,G.jsx)(Lu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:F(`printers.confirm.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:F(`printers.confirm.deleteMessage`,{name:e.name})})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ne,onChange:e=>re(e.target.checked),className:`mt-0.5 w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] rounded border-bambu-gray bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:F(`printers.deleteArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:F(ne?`printers.confirm.deleteArchivesNote`:`printers.confirm.keepArchivesNote`)})]})]})}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{te(!1),re(!0)},children:F(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>{er.mutate({deleteArchives:ne}),te(!1),re(!0)},children:`Delete`})]})]})})}),e.is_active===!1?(0,G.jsx)(G.Fragment,{children:r===`compact`?(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-2 px-2 py-1.5 rounded-full bg-amber-50 dark:bg-amber-500/15 border border-amber-300 dark:border-amber-500/30`,children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t11,11px)] text-amber-700 dark:text-amber-400 font-medium truncate`,children:F(`printers.maintenance.pillLabel`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`p-3 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-[10px] flex items-center gap-3`,children:[(0,G.jsx)(td,{className:`w-6 h-6 text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400 font-medium`,children:F(`printers.maintenance.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:F(`printers.maintenance.subtitle`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,disabled:Ar.isPending||!z(`printers:update`),onClick:()=>Ar.mutate(!0),title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:F(`printers.maintenance.exitButton`)})]})]})}):W?.connected&&(0,G.jsxs)(G.Fragment,{children:[r===`compact`?(()=>{let e=W.hms_errors?Fm(W.hms_errors):[],t=W.state===`FAILED`||e.length>0,n=W.state===`RUNNING`||W.state===`PAUSE`?Math.max(0,Math.min(100,W.progress||0)):qn||t?100:0,r=W.state===`RUNNING`||W.state===`PAUSE`,i=t?`bg-status-error`:W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`,a=r&&W.remaining_time!=null&&W.remaining_time>0,o=r&&W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`relative mt-2 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${i} h-1.5 rounded-full transition-all`,style:{width:`${n}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 text-right text-[length:var(--pc-t11,11px)] leading-none ${r?`text-white`:`text-bambu-gray`}`,children:r?`${Math.round(n)}%`:`---%`})]}),(0,G.jsxs)(`div`,{className:`mt-1 flex min-h-[14px] items-center gap-2 overflow-hidden text-[length:var(--pc-t11,11px)] leading-none text-bambu-gray`,children:[a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),lp(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`shrink-0 font-medium text-bambu-green`,title:F(`printers.estimatedCompletion`),children:[`ETA `,cp(W.remaining_time,g,F)]})]}),o&&(0,G.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 truncate`,children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] shrink-0`}),W.layer_num,`/`,W.total_layers]})]})]})})():(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(()=>{let t=!!(W.current_print&&(W.state===`RUNNING`||W.state===`PAUSE`)),n=!t&&Kn&&Yn,r=t?Jn:n?Yn.name:null,i=t?W.cover_url:n?Yn.coverUrl:null,a=t?W.progress||0:n?100:0,o=W.printable_objects_count??0,s=t&&o!==1&&z(`printers:control`);return(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded-[10px] relative overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>Ve(!0),disabled:!s,className:`absolute top-2 right-2 p-1.5 rounded transition-colors z-10 ${s?`text-bambu-gray hover:text-white hover:bg-white/10`:`text-bambu-gray/30 cursor-not-allowed`}`,title:z(`printers:control`)?F(t?o===1?`printers.skipObjects.requiresMultiple`:`printers.skipObjects.tooltip`:`printers.skipObjects.onlyWhilePrinting`):F(`printers.permission.noControl`),children:[(0,G.jsx)(yT,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),Fr&&Fr.skipped_count>0&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[16px] h-4 px-1 flex items-center justify-center text-[length:var(--pc-t10,10px)] font-bold bg-red-500 text-white rounded-full`,children:Fr.skipped_count})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsx)(lAe,{url:i,printName:r||void 0,className:`w-24 h-24 max-[520px]:w-20 max-[520px]:h-20`}),(0,G.jsxs)(`div`,{className:`flex h-24 max-[520px]:h-20 min-w-0 flex-1 flex-col justify-between pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-h-[18px] items-center gap-2 pr-8`,children:[(0,G.jsx)(`p`,{className:`min-w-0 truncate text-sm text-bambu-gray`,children:pAe(W.state,W.stg_cur_name)}),Qn]}),(0,G.jsx)(`p`,{className:`min-h-[18px] truncate pr-8 text-sm ${r?`text-white`:`text-bambu-gray/70`}`,children:r||F(`printers.noActiveJob`,`No active job`)}),(0,G.jsxs)(`div`,{className:`flex h-3 items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`:n?`bg-bambu-green`:`bg-bambu-dark-tertiary`} h-1.5 rounded-full transition-all`,style:{width:`${a}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 pr-1 text-right text-[length:var(--pc-t11,11px)] leading-none ${t||n?`text-white`:`text-bambu-gray`}`,children:t||n?`${Math.round(a)}%`:`---%`})]}),(0,G.jsx)(`div`,{className:`flex min-h-[16px] items-center gap-2 text-xs text-bambu-gray`,children:t?(0,G.jsxs)(G.Fragment,{children:[W.remaining_time!=null&&W.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),lp(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:F(`printers.estimatedCompletion`),children:[`ETA `,cp(W.remaining_time,g,F)]})]}),W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),W.layer_num,`/`,W.total_layers]}),Hn&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:`Started by ${Hn}`,children:[(0,G.jsx)(Hu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),Hn]})]}):Wn?(0,G.jsxs)(`p`,{className:`truncate`,title:Wn.print_name||Wn.filename,children:[`Last: `,Wn.print_name||Wn.filename,Wn.completed_at&&(0,G.jsxs)(`span`,{className:`ml-1 text-bambu-gray/60`,children:[`• `,ap(Wn.completed_at,{month:`short`,day:`numeric`})]})]}):(0,G.jsx)(`span`,{children:F(`printers.readyToPrint`)})})]})]}),(0,G.jsx)(rce,{printerId:e.id,printerModel:e.model,loadedFilamentTypes:an,loadedFilaments:on,loadedVariants:sn,variant:`panelExtension`})]})})()]}),W.temperatures&&r===`expanded`&&(()=>{let t=W.temperatures.nozzle_heating||W.temperatures.nozzle_2_heating||!1,n=W.temperatures.bed_heating||!1,r=W.temperatures.chamber_heating||!1,i=e.nozzle_count===2||W.temperatures.nozzle_2!==void 0,a=(()=>{let e=[`nozzle`];return W.temperatures.nozzle_2!==void 0&&e.push(`nozzle_2`),e.push(`bed`),W.temperatures.chamber!==void 0&&e.push(`chamber`),e})(),o=W.active_extruder===1?`L`:`R`,s=W.nozzle_rack?.find(e=>e.id===1),c=W.nozzle_rack?.find(e=>e.id===0),l=c||s,u=W.connected&&z(`printers:control`),d=u?void 0:F(`printers.permission.noControl`),f=`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,p=mAe.has(e.model??``),m=hAe.has(e.model??``),h=F(m?`printers.fans.exhaust`:`printers.fans.chamber`),g=p&&(!m||W.exhaust_fan_present),_=[{key:`part`,label:F(`printers.fans.partCooling`),value:W.cooling_fan_speed??0,Icon:oc,activeClass:`text-cyan-600 dark:text-cyan-400`},...W.left_aux_fan_speed==null?[]:[{key:`aux2`,label:F(`printers.fans.leftAuxiliary`),value:W.left_aux_fan_speed,Icon:$u,activeClass:`text-indigo-600 dark:text-indigo-400`}],{key:`aux`,label:F(`printers.fans.auxiliary`),value:W.big_fan1_speed??0,Icon:$u,activeClass:`text-blue-600 dark:text-blue-400`},...g?[{key:`chamber`,label:h,value:W.big_fan2_speed??0,Icon:No,activeClass:`text-green-600 dark:text-green-400`}]:[]];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`mt-2 flex items-stretch gap-1.5 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:f,title:d,onClick:()=>u&&Fe(Pe===`nozzle-temp`?null:`nozzle-temp`),children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`nozzle`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-orange-400`,isHeating:t}),W.temperatures.nozzle_2===void 0?l?(0,G.jsx)($U,{slot:l,index:0,activeStatus:!0,filamentName:l.filament_id?cn?.[l.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`cursor-default`,children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:`L / R`}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`° / `,Math.round(W.temperatures.nozzle_2||0),`°`]})]}),Pe===`nozzle-temp`&&(i?(0,G.jsx)(oW,{title:`Set Nozzle Temperatures`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:260,isPending:_r.isPending,onClose:()=>Fe(null),children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 px-3 py-2.5`,children:[(0,G.jsx)(sW,{label:`Left Temp`,current:W.temperatures.nozzle,target:W.temperatures.nozzle_target,isActive:o===`L`,isPending:_r.isPending,onSubmit:e=>_r.mutate({target:e,nozzle:1}),options:jm(O,`C`)}),(0,G.jsx)(sW,{label:`Right Temp`,current:W.temperatures.nozzle_2,target:W.temperatures.nozzle_2_target,isActive:o===`R`,isPending:_r.isPending,onSubmit:e=>_r.mutate({target:e,nozzle:0}),options:jm(O,`C`)})]})}):(0,G.jsx)(oW,{title:`Set Nozzle Temperature`,unit:`°C`,customMin:0,customMax:320,isPending:_r.isPending,options:jm(O,`C`),onClose:()=>Fe(null),onSubmit:e=>_r.mutate({target:e,nozzle:W.active_extruder??0})}))]}),(0,G.jsxs)(`div`,{className:f,title:d,onClick:()=>u&&Fe(Pe===`bed-temp`?null:`bed-temp`),children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`bed`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-blue-400`,isHeating:n}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.bed`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.bed||0),`°C`]}),Pe===`bed-temp`&&(0,G.jsx)(oW,{title:`Set Bed Temperature`,unit:`°C`,customMin:0,customMax:140,isPending:vr.isPending,options:jm(k,`C`),onClose:()=>Fe(null),onSubmit:e=>vr.mutate(e)})]}),W.temperatures.chamber!==void 0&&(()=>{let e=W.supports_chamber_heater===!0;return(0,G.jsxs)(`div`,{className:e?f:`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center`,title:e?d:void 0,onClick:e?()=>u&&Fe(Pe===`chamber-temp`?null:`chamber-temp`):void 0,children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`chamber`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-green-400`,isHeating:r}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.chamber`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.chamber||0),`°C`]}),e&&Pe===`chamber-temp`&&(0,G.jsx)(oW,{title:`Set Chamber Temperature`,unit:`°C`,customMin:0,customMax:65,isPending:yr.isPending,options:jm(A,`C`),onClose:()=>Fe(null),onSubmit:e=>yr.mutate(e)})]})})(),i&&(0,G.jsx)(Zke,{leftSlot:s,rightSlot:c,activeNozzle:o,filamentInfo:cn,children:(0,G.jsxs)(`div`,{className:`relative text-center px-3 py-1.5 bg-bambu-dark rounded-lg h-full flex flex-col justify-center items-center transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:u?F(`printers.activeNozzle`,{nozzle:F(o===`L`?`common.left`:`common.right`)}):d,onClick:()=>u&&Fe(Pe===`nozzle-select`?null:`nozzle-select`),children:[(0,G.jsx)(aAe,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5 text-amber-600 dark:text-amber-400`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t11,11px)] font-bold ${o===`L`?`text-amber-700 dark:text-amber-400`:`text-gray-500`}`,children:[`L`,s?.nozzle_diameter?` ${s.nozzle_diameter}`:``]}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t11,11px)] font-bold ${o===`R`?`text-amber-700 dark:text-amber-400`:`text-gray-500`}`,children:[`R`,c?.nozzle_diameter?` ${c.nozzle_diameter}`:``]})]}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),Pe===`nozzle-select`&&(0,G.jsx)(oW,{title:`Set Nozzle Selection`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:140,isPending:xr.isPending,options:[{label:`Left`,value:1},{label:`Right`,value:0}],onClose:()=>Fe(null),onSubmit:e=>xr.mutate(e)})]})}),W.nozzle_rack&&W.nozzle_rack.some(e=>e.id>=2)&&(0,G.jsx)(Qke,{slots:W.nozzle_rack,filamentInfo:cn})]}),(0,G.jsx)(`div`,{className:`mt-2 flex items-center gap-1.5`,children:_.map(({key:e,label:t,value:n,Icon:r,activeClass:i})=>{let a=n>0;return(0,G.jsxs)(`div`,{className:`relative px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 min-w-0 flex items-center justify-center gap-1 transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:u?t:d,onClick:()=>u&&Fe(Pe===`fan-${e}`?null:`fan-${e}`),children:[(0,G.jsx)(r,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] shrink-0 ${a?i:`text-bambu-gray/50`}`}),(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t10,10px)] leading-none ${a?`text-white`:`text-bambu-gray/50`}`,children:[n,`%`]}),Pe===`fan-${e}`&&(0,G.jsx)(oW,{title:`Set ${t} Speed`,unit:`%`,customMin:0,customMax:100,isPending:br.isPending,options:jm(j,`%`),onClose:()=>Fe(null),onSubmit:t=>br.mutate({fan:e,speed:t})})]},e)})})]})})(),r===`expanded`&&qn&&gr,r===`expanded`&&(()=>{let t=W.state===`RUNNING`,n=W.state===`PAUSE`,r=t||n,i=fr.isPending||pr.isPending||mr.isPending,a=`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed opacity-50`,o=`flex h-8 w-8 items-center justify-center rounded-lg text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,s=`flex h-8 w-20 items-center justify-center gap-1 px-2 rounded-lg text-xs font-medium transition-colors`;return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.controls`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-x-2 gap-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 min-w-0`,children:[(0,G.jsx)(`button`,{onClick:()=>Sr.mutate(!W.chamber_light),disabled:!W.connected||Sr.isPending||!z(`printers:control`),className:`${o} ${W.chamber_light?`bg-yellow-50 dark:bg-yellow-500/10 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:control`)?W.chamber_light?F(`printers.chamberLightOff`):F(`printers.chamberLightOn`):F(`printers.permission.noControl`),children:(0,G.jsx)(vT,{on:W.chamber_light??!1,className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),[`P2S`,`X2D`,`H2D`,`H2C`,`H2S`].includes(e.model??``)&&(()=>{let t=W.airduct_mode===1,n=t?hc:gu,r=t?`text-orange-600 dark:text-orange-400`:`text-sky-600 dark:text-sky-400`,i=t?`bg-orange-50 dark:bg-orange-500/10 text-orange-700 dark:text-orange-400 hover:bg-orange-500/20`:`bg-sky-50 dark:bg-sky-500/10 text-sky-700 dark:text-sky-400 hover:bg-sky-500/20`;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>je(Ae===e.id?null:e.id),disabled:!z(`printers:control`),className:`${o} ${i}`,title:`${F(`printers.airduct.title`)}: ${F(t?`printers.airduct.heating`:`printers.airduct.cooling`)}`,children:(0,G.jsx)(n,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] ${r}`})}),Ae===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>je(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:`cooling`,label:F(`printers.airduct.cooling`),modeId:0},{mode:`heating`,label:F(`printers.airduct.heating`),modeId:1}].map(({mode:e,label:t,modeId:n})=>(0,G.jsxs)(`button`,{onClick:()=>{wr.mutate(e),je(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors flex items-center gap-2 ${W.airduct_mode===n?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e===`heating`?(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(gu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),t]},e))})]})]})})(),(()=>{let t=z(`printers:control`),n=r||!t,i=`flex h-8 w-8 items-center justify-center rounded bg-indigo-100 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 transition-colors hover:bg-indigo-200 dark:hover:bg-indigo-500/30 disabled:cursor-not-allowed disabled:opacity-50`,a=e=>{let t=e*Ie*1;Tr.mutate({distance:t})},s=(e,t)=>{Er.mutate({x:e,y:t})},c=e=>{Dr.mutate(e)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>Ne(Me===e.id?null:e.id),disabled:n,className:`${o} ${n?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-400 hover:bg-indigo-500/20`}`,title:F(t?r?`printers.bedJog.disabledWhilePrinting`:`printers.bedJog.title`:`printers.permission.noControl`),children:(0,G.jsx)(yl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),Me===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>Ne(null)}),(0,G.jsxs)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 flex w-[216px] flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:F(`printers.bedJog.title`)}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-start gap-1.5 bg-yellow-500/10 px-3 py-2 text-[length:var(--pc-t11,11px)] leading-snug text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),(0,G.jsx)(`span`,{children:F(`printers.bedJog.limitWarning`)})]}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex justify-center px-3 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-1`,children:[(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,Ie),disabled:Er.isPending,className:i,"aria-label":`Move Y forward`,children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(-Ie,0),disabled:Er.isPending,className:i,"aria-label":`Move X left`,children:(0,G.jsx)(Lo,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>{Ne(null),Or.mutate(`all`)},disabled:Or.isPending,className:i,"aria-label":F(`printers.bedJog.homeZ`),children:(0,G.jsx)(Bc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>s(Ie,0),disabled:Er.isPending,className:i,"aria-label":`Move X right`,children:(0,G.jsx)(zo,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,-Ie),disabled:Er.isPending,className:i,"aria-label":`Move Y back`,children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(-1),disabled:Tr.isPending,className:i,"aria-label":F(`printers.bedJog.up`),children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(Jc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>a(1),disabled:Tr.isPending,className:i,"aria-label":F(`printers.bedJog.down`),children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>c(-Ie),disabled:Dr.isPending,className:i,"aria-label":`Retract filament`,children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold leading-none`,children:`E`})}),(0,G.jsx)(`button`,{onClick:()=>c(Ie),disabled:Dr.isPending,className:i,"aria-label":`Extrude filament`,children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]})]})}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 pt-2.5 pb-3`,children:[(0,G.jsx)(`div`,{className:`mb-1 text-[length:var(--pc-t9,9px)] uppercase tracking-wider text-bambu-gray/70`,children:F(`printers.bedJog.step`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[1,10,50].map(e=>(0,G.jsx)(`button`,{onClick:()=>Le(e),className:`flex-1 px-1 py-1 rounded text-[length:var(--pc-t10,10px)] transition-colors ${Ie===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:e},e))})]})]})]})]})})(),(0,G.jsxs)(`div`,{className:`inline-flex rounded-lg ${e.plate_detection_enabled?`ring-1 ring-green-500`:``}`,children:[(0,G.jsx)(`button`,{onClick:$r,disabled:!W.connected||kr.isPending||!z(`printers:update`),className:`${o} rounded-r-none ${e.plate_detection_enabled?`bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:update`)?e.plate_detection_enabled?F(`printers.plateDetection.enabledClick`):F(`printers.plateDetection.disabledClick`):F(`printers.plateDetection.noPermission`),children:kr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] animate-spin`}):(0,G.jsx)(Xl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:ei,disabled:!W.connected||Kt||!z(`printers:update`),className:`flex h-8 w-8 items-center justify-center rounded-r-lg border-l border-bambu-dark-tertiary transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${e.plate_detection_enabled?`bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:update`)?F(`printers.plateDetection.manageCalibration`):F(`printers.plateDetection.noPermission`),children:Kt?(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] animate-spin`}):(0,G.jsx)(ps,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{"data-testid":`speed-control`,onClick:()=>ke(Oe===e.id?null:e.id),disabled:!r||!z(`printers:control`),className:`${o} ${r?`bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-400 hover:bg-amber-500/20`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:r?F(`printers.speed.title`):void 0,children:(0,G.jsx)(Tc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),Oe===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>ke(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:1,label:F(`printers.speed.silent`)},{mode:2,label:F(`printers.speed.standard`)},{mode:3,label:F(`printers.speed.sport`)},{mode:4,label:F(`printers.speed.ludicrous`)}].map(({mode:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{Cr.mutate(e),ke(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors ${W.speed_level===e?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:t},e))})]})]})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-2 flex-shrink-0`,children:[(()=>{let e=!r||i||!z(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>n?ze(!0):De(!0),disabled:e,className:` + `,style:{maxWidth:`calc(100vw - 24px)`},onMouseEnter:w,onMouseLeave:T,children:(0,G.jsxs)(`div`,{className:`w-52 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl overflow-hidden backdrop-blur-sm p-2.5 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.serialNumber`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono truncate`,children:e.serial_number||`—`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] tracking-wide text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.firmwareVersion`)}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-white font-mono truncate`,children:e.sw_ver||`—`})]}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray font-medium shrink-0`,children:s(`printers.amsPopup.friendlyName`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary/50`})]}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>i&&p(e.target.value),onKeyDown:e=>e.key===`Enter`&&E(),onFocus:()=>b(!0),onBlur:()=>{b(!1),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>l(!1),200)},placeholder:i?s(`printers.amsPopup.friendlyNamePlaceholder`):r?.[e.id]||`—`,disabled:!i,title:i?void 0:s(`printers.amsPopup.noEditPermission`),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-xs text-white placeholder-bambu-gray/60 focus:outline-none focus:border-bambu-green disabled:opacity-50 disabled:cursor-not-allowed`,maxLength:100}),i&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[g&&(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t10,10px)] text-red-700 dark:text-red-400 break-words`,children:g}),(0,G.jsxs)(`div`,{className:`flex gap-1 justify-end`,children:[(0,G.jsx)(`button`,{onClick:E,disabled:m,className:`px-2 py-0.5 text-[length:var(--pc-t10,10px)] bg-bambu-green text-white rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:s(`printers.amsPopup.save`)}),r?.[e.id]&&(0,G.jsx)(`button`,{onClick:async()=>{if(i){h(!0),_(null);try{await Z.deleteAmsLabel(t,e.id,e.serial_number),a(),l(!1)}catch(e){_(e instanceof Error?e.message:String(e))}finally{h(!1)}}},disabled:m,className:`px-2 py-0.5 text-[length:var(--pc-t10,10px)] bg-bambu-dark-tertiary text-bambu-gray rounded hover:bg-bambu-dark-tertiary/70 disabled:opacity-50`,children:s(`printers.amsPopup.clear`)})]})]})]})]})})]})}var fW={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}},pW={1:1,2:1,3:1.2,4:1.4};function _Ae(e){let t=pW[e]??1,n=e=>`${Math.round(e*t*10)/10}px`;return{"--pc-t8":n(8),"--pc-t9":n(9),"--pc-t10":n(10),"--pc-t11":n(11),"--pc-i2":n(8),"--pc-i25":n(10),"--pc-i3":n(12),"--pc-i35":n(14),"--pc-i4":n(16),"--pc-i5":n(20),"--pc-i7":n(28)}}function vAe({printerId:e,dryingActive:t,timeFormat:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),{data:o=[]}=K({queryKey:WU,queryFn:()=>Z.listScheduledDryings(),refetchInterval:3e4});(0,y.useEffect)(()=>{t&&i.invalidateQueries({queryKey:WU})},[t,i]);let s=q({mutationFn:e=>Z.cancelScheduledDrying(e),onSuccess:()=>i.invalidateQueries({queryKey:WU}),onError:e=>a(e.message||r(`printers.drying.scheduleFailed`),`error`)}),c=o.filter(t=>t.printer_id===e&&(t.status===`pending`||t.status===`failed`));return c.length===0?null:(0,G.jsx)(`div`,{className:`mt-2 space-y-1`,children:c.map(e=>{let t=e.status===`failed`,i=Yke(e.waiting_reason);return(0,G.jsxs)(`div`,{"data-testid":t?`scheduled-drying-failed`:`scheduled-drying-pending`,className:`flex items-center justify-between px-2 py-1 rounded-lg text-[length:var(--pc-t11,11px)] ${t?`bg-red-500/10 border border-red-500/30`:`bg-amber-500/10 border border-amber-500/30`}`,children:[(0,G.jsx)(`span`,{className:t?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`,children:t?r(`printers.drying.scheduleFailedReason`,{reason:e.error_message||r(`printers.drying.scheduleFailedUnknown`)}):(0,G.jsxs)(G.Fragment,{children:[e.start_after?r(`printers.drying.scheduledFor`,{time:op(e.start_after,n)}):r(`printers.drying.scheduledAsap`),i&&(0,G.jsx)(`span`,{className:`ml-1 opacity-80`,children:r(i)})]})}),(0,G.jsx)(`button`,{onClick:()=>s.mutate(e.id),disabled:s.isPending,title:r(t?`printers.drying.dismissFailed`:`printers.drying.cancelScheduled`),className:`text-bambu-gray hover:text-red-400 transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]},e.id)})})}function mW({printer:e,hideIfDisconnected:t,maintenanceInfo:n,viewMode:r=`expanded`,cardSize:i=2,amsThresholds:a,spoolmanEnabled:o=!1,linkedSpools:s,spoolmanUrl:c,spoolmanSyncMode:l,onGetAssignment:u,onUnassignSpool:d,spoolmanSpools:f,spoolmanSlotAssignments:p,spoolmanLoading:m=!1,onUnassignSpoolmanSpool:h,timeFormat:g=`system`,cameraViewMode:_=`window`,onOpenEmbeddedCamera:v,onSelectCameraViewMode:b,checkPrinterFirmware:x=!0,dryingPresets:S=fW,requirePlateClear:C=!1,selectionMode:w=!1,isSelected:T=!1,onToggleSelect:E,onOpenCompactCard:D,nozzleTempPresets:O=Em,bedTempPresets:k=Dm,chamberTempPresets:A=Om,fanSpeedPresets:j=km,aiDetectionEnabled:M=!1,aiDetection:N,aiLastError:P=null}){let{t:F}=U(),I=co(),L=or(),{showToast:R}=qd(),{hasPermission:z}=Nd(),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!0),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(!1),[_e,ve]=(0,y.useState)(!1),[ye,be]=(0,y.useState)(!1),[xe,Se]=(0,y.useState)(()=>Eee(e.id)),Ce=(0,y.useCallback)(()=>{Se(t=>{let n=!t;return Dee(e.id,n),n})},[e.id]),[we,Te]=(0,y.useState)(!1),[Ee,De]=(0,y.useState)(!1),[Oe,ke]=(0,y.useState)(null),[Ae,je]=(0,y.useState)(null),[Me,Ne]=(0,y.useState)(null),[Pe,Fe]=(0,y.useState)(null),[Ie,Le]=(0,y.useState)(10),[Re,ze]=(0,y.useState)(!1),[Be,Ve]=(0,y.useState)(!1),[He,Ue]=(0,y.useState)(!1),[We,Ge]=(0,y.useState)(!1),[Ke,qe]=(0,y.useState)(!1),Je=(0,y.useCallback)(()=>Ge(!1),[]),[Ye,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(null),[$e,et]=(0,y.useState)(`n3f`),[tt,nt]=(0,y.useState)(`PLA`),[rt,it]=(0,y.useState)(50),[at,ot]=(0,y.useState)(4),[st,ct]=(0,y.useState)(!1),[lt,ut]=(0,y.useState)(`now`),[dt,ft]=(0,y.useState)(120),[pt,mt]=(0,y.useState)(``),[ht,gt]=(0,y.useState)(null),[_t,vt]=(0,y.useState)(null),yt=(0,y.useCallback)((e,t)=>{let n=wee(e.tray.find(e=>e.tray_type)?.tray_type,S),r=S[n]??fW.PLA,i=e.module_type;nt(n),it(r[i]||r.n3f),ot(i===`n3s`?r.n3s_hours:r.n3f_hours),ct(!1),ut(`now`),ft(120),mt(``),et(e.module_type),Qe(e.id),vt(t)},[S]);(0,y.useLayoutEffect)(()=>{if(Ze===null||!_t)return;let e=()=>{gt(gm({triggerRect:_t.getBoundingClientRect(),popoverWidth:Gke,estimatedHeight:Kke,horizontalAlign:`center`}))};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[Ze,_t]);let bt=(0,y.useRef)(null),xt=(0,y.useRef)(!1),[St,Ct]=(0,y.useState)(null),[wt,Tt]=(0,y.useState)(!1),[Et,Dt]=(0,y.useState)(!1),Ot=(0,y.useRef)(null),[kt,At]=(0,y.useState)(null),jt=(0,y.useRef)(0),[Mt,Nt]=(0,y.useState)(null),[Pt,Ft]=(0,y.useState)(null),[It,Lt]=(0,y.useState)(null),[Rt,zt]=(0,y.useState)(null),[Bt,Vt]=(0,y.useState)(null),[Ht,Ut]=(0,y.useState)(!1),[Wt,Gt]=(0,y.useState)(null),[Kt,qt]=(0,y.useState)(!1),[Jt,Yt]=(0,y.useState)(!1),[Xt,Zt]=(0,y.useState)(null),[Qt,$t]=(0,y.useState)(!1),[en,tn]=(0,y.useState)(!1),{data:W}=K({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:3e4}),{data:nn}=K({queryKey:[`firmwareUpdate`,e.id],queryFn:()=>Ed.checkPrinterUpdate(e.id),staleTime:300*1e3,refetchInterval:300*1e3,enabled:x&&z(`firmware:read`)}),rn=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_info_idx&&e.add(n.tray_info_idx);for(let t of W?.vt_tray??[])t.tray_info_idx&&e.add(t.tray_info_idx);if(W?.nozzle_rack)for(let t of W.nozzle_rack)t.filament_id&&e.add(t.filament_id);return Array.from(e)},[W?.ams,W?.vt_tray,W?.nozzle_rack]),an=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams)for(let t of W.ams)for(let n of t.tray||[])n.tray_type&&e.add(n.tray_type.toUpperCase());for(let t of W?.vt_tray??[])t.tray_type&&e.add(t.tray_type.toUpperCase());return e},[W?.ams,W?.vt_tray]),on=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}`)}return e},[W?.ams,W?.vt_tray]),sn=(0,y.useMemo)(()=>{let e=new Set;if(W?.ams){for(let t of W.ams)for(let n of t.tray||[])if(n.tray_type&&n.tray_color){let t=n.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${n.tray_type.toUpperCase()}:${t}:${n.tray_info_idx||``}`)}}for(let t of W?.vt_tray??[])if(t.tray_type&&t.tray_color){let n=t.tray_color.replace(`#`,``).toLowerCase().slice(0,6);e.add(`${t.tray_type.toUpperCase()}:${n}:${t.tray_info_idx||``}`)}return e},[W?.ams,W?.vt_tray]),{data:cn}=K({queryKey:[`filamentInfo`,rn],queryFn:()=>Z.getFilamentInfo(rn),enabled:rn.length>0,staleTime:300*1e3}),{data:ln}=K({queryKey:[`slotPresets`,e.id],queryFn:()=>Z.getSlotPresets(e.id),staleTime:120*1e3}),un=W?.state===`RUNNING`||W?.state===`PAUSE`?W?.current_archive_id??null:null,{data:dn}=K({queryKey:[`archive-plates`,un],queryFn:()=>Z.getArchivePlates(un),enabled:un!=null,staleTime:300*1e3}),fn=!dn?.is_multi_plate||W?.current_plate_id==null?null:dn.plates.find(e=>e.index===W.current_plate_id)?.name||F(`printers.plateNumber`,`Plate {{number}}`,{number:W.current_plate_id}),{data:pn,refetch:mn}=K({queryKey:[`amsLabels`,e.id],queryFn:()=>Z.getAmsLabels(e.id),staleTime:300*1e3}),[hn,gn]=(0,y.useState)(null);(0,y.useEffect)(()=>{W?.wifi_signal!=null&&gn(W.wifi_signal)},[W?.wifi_signal]);let _n=W?.wifi_signal??hn,vn=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{W?.connected!==void 0&&(vn.current=W.connected)},[W?.connected]);let yn=W?.connected??vn.current,bn=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0&&(bn.current=W.ams_extruder_map)},[W?.ams_extruder_map]);let xn=W?.ams_extruder_map&&Object.keys(W.ams_extruder_map).length>0?W.ams_extruder_map:bn.current,Sn=(0,y.useRef)({});(0,y.useEffect)(()=>{W?.ams_switch_inlet&&Object.keys(W.ams_switch_inlet).length>0&&(Sn.current=W.ams_switch_inlet)},[W?.ams_switch_inlet]);let Cn=W?.fila_switch?.installed===!0,wn=W?.ams_switch_inlet&&Object.keys(W.ams_switch_inlet).length>0?W.ams_switch_inlet:Sn.current,Tn=(0,y.useRef)([]);(0,y.useEffect)(()=>{W?.ams&&W.ams.length>0&&(Tn.current=W.ams)},[W?.ams]);let En=W?.ams&&W.ams.length>0?W.ams:Tn.current,Dn=En.some(e=>e.tray.some(e=>e.k))||(W?.vt_tray??[]).some(e=>e.k);(0,y.useEffect)(()=>{if(!St)return;let e=En.find(e=>e.id===St.amsId);e&&(e.dry_time>0||e.dry_status>0)&&Ct(null)},[St,En]),(0,y.useEffect)(()=>{if(!St)return;let e=setTimeout(()=>{Ct(null),R(F(`printers.drying.toastNotStarted`),`error`)},lAe);return()=>clearTimeout(e)},[St,R,F]);let On=(0,y.useRef)(void 0),kn=W?.tray_now;kn!==void 0&&kn!==255?On.current=kn:kn===255&&(On.current=void 0);let An=kn!==void 0&&kn!==255?kn:On.current,jn=W?.expected_tray??null,Mn=W?.previous_tray??null,Nn=e=>{if(e===null)return null;if(e===254)return F(`printers.expectedSlot.external`);if(e>=128&&e<=135)return pn?.[e]||yp(e,1);let t=Math.floor(e/4),n=e%4;return F(`printers.expectedSlot.label`,{ams:pn?.[t]||yp(t,4),slot:n+1})},Pn=W?.state===`PAUSE`?{expectedSlotLabel:Nn(jn),ranOutSlotLabel:Nn(Mn)}:null,{data:Fn}=K({queryKey:[`smartPlugByPrinter`,e.id],queryFn:()=>Z.getSmartPlugByPrinter(e.id)}),{data:In}=K({queryKey:[`scriptPlugsByPrinter`,e.id],queryFn:()=>Z.getScriptPlugsByPrinter(e.id)}),{data:Ln}=K({queryKey:[`smartPlugStatus`,Fn?.id],queryFn:()=>Fn?Z.getSmartPlugStatus(Fn.id):null,enabled:!!Fn,refetchInterval:1e4}),{data:Rn}=K({queryKey:[`queue`,e.id,`pending`],queryFn:()=>Z.getQueue(e.id,`pending`)}),zn=(0,y.useMemo)(()=>Rn?.length?Tm(Rn,an,on,sn).length:0,[Rn,an,on,sn]),{data:Bn}=K({queryKey:[`queue`,e.id,`printing`],queryFn:()=>Z.getQueue(e.id,`printing`),enabled:W?.state===`RUNNING`}),{data:Vn}=K({queryKey:[`currentPrintUser`,e.id],queryFn:()=>Z.getCurrentPrintUser(e.id),enabled:W?.state===`RUNNING`}),Hn=Bn?.[0]?.created_by_username||Vn?.username,{data:Un}=K({queryKey:[`archives`,e.id,`last`],queryFn:()=>Z.getArchives(e.id,1,0),enabled:W?.connected&&W?.state!==`RUNNING`}),Wn=Un?.[0],Gn=W?.state===`RUNNING`||W?.state===`PAUSE`,Kn=C&&W?.awaiting_plate_clear===!0,qn=Kn&&!Gn,Jn=W?.current_print&&Gn?vee(W.subtask_name||W.current_print||null,W.gcode_file,F,fn):null,[Yn,Xn]=(0,y.useState)(null);(0,y.useEffect)(()=>{Jn?Xn({name:Jn,coverUrl:W?.cover_url??null}):Kn||Xn(null)},[Jn,Kn,W?.cover_url]);let Zn=!C||!W?.connected?null:Gn?{label:F(`printers.plateStatus.inUse`),className:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`}:W.awaiting_plate_clear?{label:F(`printers.plateStatus.notCleared`),className:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`}:{label:F(`printers.plateStatus.cleared`),className:`bg-status-ok/20 text-status-ok`},Qn=Zn?(0,G.jsx)(`span`,{className:`inline-flex flex-shrink-0 items-center rounded-full px-2 py-0.5 text-[length:var(--pc-t10,10px)] font-medium ${Zn.className}`,children:Zn.label}):null,$n=t&&yn===!1,er=q({mutationFn:t=>Z.deletePrinter(e.id,t.deleteArchives),onSuccess:()=>{I.invalidateQueries({queryKey:[`printers`]}),I.invalidateQueries({queryKey:[`archives`]}),I.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>R(e.message||F(`printers.toast.failedToDelete`),`error`)}),tr=q({mutationFn:()=>Z.connectPrinter(e.id),onSuccess:()=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),nr=q({mutationFn:()=>Z.refreshPrinterStatus(e.id),onSuccess:()=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),R(F(`printers.forceRefreshSuccess`),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),rr=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{R(F(`spoolman.unlinkSuccess`)||e?.message,`success`),I.invalidateQueries({queryKey:[`linked-spools`]}),I.invalidateQueries({queryKey:[`unlinked-spools`]}),I.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})},onError:e=>{R(e.message||F(`spoolman.unlinkFailed`),`error`)}}),ir=q({mutationFn:({amsId:t,temp:n,duration:r,filament:i,rotateTray:a})=>Z.startDrying(e.id,t,n,r,i,a),onSuccess:(t,{amsId:n})=>{Qe(null),Ct({amsId:n}),R(F(`printers.drying.toastCommandSent`),`success`),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),ar=q({mutationFn:t=>Z.createScheduledDrying({printer_id:e.id,ams_id:t.amsId,temp:t.temp,duration_hours:t.duration,filament:t.filament,rotate_tray:t.rotateTray,start_after:t.startAfter}),onSuccess:()=>{I.invalidateQueries({queryKey:WU}),Qe(null)},onError:e=>R(e.message||F(`printers.drying.scheduleFailed`),`error`)}),sr=q({mutationFn:t=>Z.stopDrying(e.id,t),onSuccess:()=>{Ct(null),R(F(`printers.drying.toastStopped`),`success`),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),cr=q({mutationFn:t=>Z.setAmsFilamentBackup(e.id,t),onSuccess:(t,n)=>{I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),I.invalidateQueries({queryKey:[`printer-status`,e.id]}),R(F(n?`printers.amsBackup.toastEnabled`:`printers.amsBackup.toastDisabled`),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),lr=q({mutationFn:e=>Fn?Z.controlSmartPlug(Fn.id,e):Promise.reject(`No plug`),onSuccess:()=>{I.invalidateQueries({queryKey:[`smartPlugStatus`,Fn?.id]})}}),ur=q({mutationFn:e=>Fn?Z.updateSmartPlug(Fn.id,{auto_off:e}):Promise.reject(`No plug`),onSuccess:()=>{I.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.id]}),I.invalidateQueries({queryKey:[`smart-plugs`]})}}),dr=q({mutationFn:({id:e,action:t})=>Z.controlSmartPlug(e,t),onSuccess:()=>{R(F(`printers.toast.scriptTriggered`))},onError:e=>R(e.message||F(`printers.toast.failedToRunScript`),`error`)}),fr=q({mutationFn:()=>Z.stopPrint(e.id),onSuccess:()=>{R(F(`printers.toast.printStopped`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToStopPrint`),`error`)}),pr=q({mutationFn:()=>Z.pausePrint(e.id),onSuccess:()=>{R(F(`printers.toast.printPaused`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToPausePrint`),`error`)}),mr=q({mutationFn:()=>Z.resumePrint(e.id),onSuccess:()=>{R(F(`printers.toast.printResumed`)),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToResumePrint`),`error`)}),hr=q({mutationFn:()=>Z.clearPlate(e.id),onSuccess:()=>{R(F(`queue.clearPlateSuccess`)),I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,awaiting_plate_clear:!1}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),I.invalidateQueries({queryKey:[`queue`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),gr=(0,G.jsxs)(`button`,{type:`button`,onClick:()=>hr.mutate(),disabled:hr.isPending||!z(`printers:clear_plate`),className:`mt-2 w-full inline-flex items-center justify-center gap-2 px-3 py-1.5 rounded-lg bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-400/40 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs font-medium disabled:opacity-50`,title:z(`printers:clear_plate`)?F(`printers.plateStatus.markCleared`):F(`printers.permission.noControl`),children:[hr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):(0,G.jsx)(hU,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.plateStatus.markCleared`)]}),_r=q({mutationFn:({target:t,nozzle:n})=>Z.setNozzleTemperature(e.id,t,n),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),vr=q({mutationFn:t=>Z.setBedTemperature(e.id,t),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),yr=q({mutationFn:t=>Z.setChamberTemperature(e.id,t),onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),br=q({mutationFn:({fan:t,speed:n})=>Z.setFanSpeed(e.id,t,n),onMutate:async({fan:t,speed:n})=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let r=I.getQueryData([`printerStatus`,e.id]),i={part:`cooling_fan_speed`,aux:`big_fan1_speed`,aux2:`left_aux_fan_speed`,chamber:`big_fan2_speed`}[t];return I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,[i]:n}),{previousStatus:r}},onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),xr=q({mutationFn:t=>Z.selectExtruder(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>e&&{...e,active_extruder:t}),{previousStatus:n}},onSuccess:t=>{Fe(null),R(t.message),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),Sr=q({mutationFn:t=>Z.setChamberLight(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,chamber_light:t})),{previousStatus:n}},onSuccess:(e,t)=>{R(`Chamber light ${t?`on`:`off`}`)},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToControlChamberLight`),`error`)}}),Cr=q({mutationFn:t=>Z.setPrintSpeed(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,speed_level:t})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSetSpeed`),`error`)}}),wr=q({mutationFn:t=>Z.setAirductMode(e.id,t),onMutate:async t=>{await I.cancelQueries({queryKey:[`printerStatus`,e.id]});let n=I.getQueryData([`printerStatus`,e.id]);return I.setQueryData([`printerStatus`,e.id],e=>({...e,airduct_mode:t===`cooling`?0:1})),{previousStatus:n}},onError:(t,n,r)=>{r?.previousStatus&&I.setQueryData([`printerStatus`,e.id],r.previousStatus),R(t.message||F(`printers.toast.failedToSendCommand`),`error`)}}),Tr=q({mutationFn:({distance:t})=>Z.bedJog(e.id,t),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Er=q({mutationFn:({x:t,y:n})=>Z.xyJog(e.id,t,n),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Dr=q({mutationFn:t=>Z.extruderJog(e.id,t),onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),Or=q({mutationFn:t=>Z.homeAxes(e.id,t),onSuccess:()=>{R(F(`printers.bedJog.homingStarted`))},onError:e=>R(e.message||F(`printers.toast.failedToSendCommand`),`error`)}),kr=q({mutationFn:t=>Z.updatePrinter(e.id,{plate_detection_enabled:t}),onSuccess:()=>{I.invalidateQueries({queryKey:[`printers`]}),R(kr.variables?F(`printers.toast.plateCheckEnabled`):F(`printers.toast.plateCheckDisabled`))},onError:e=>R(e.message||F(`printers.toast.failedToUpdateSetting`),`error`)}),Ar=q({mutationFn:t=>Z.updatePrinter(e.id,{is_active:t}),onSuccess:(t,n)=>{I.invalidateQueries({queryKey:[`printers`]}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]}),R(F(n?`printers.maintenance.toastExited`:`printers.maintenance.toastEntered`,{name:e.name}),`success`)},onError:e=>R(e.message||F(`printers.toast.failedToUpdateSetting`),`error`)}),[jr,Mr]=(0,y.useState)(!1),Nr=()=>{W?.state===`RUNNING`||W?.state===`PAUSE`?Mr(!0):Ar.mutate(!1)},Pr=(W?.state===`RUNNING`||W?.state===`PAUSE`)&&(W?.printable_objects_count??0)>=2,{data:Fr}=K({queryKey:[`printableObjects`,e.id],queryFn:()=>Z.getPrintableObjects(e.id),enabled:Be||Pr,refetchInterval:Be?5e3:Pr?3e4:!1}),[Ir,Lr]=(0,y.useState)(null),Rr=(0,y.useRef)(!1),zr=(0,y.useRef)(null),Br=(0,y.useRef)(!1),Vr=q({mutationFn:({amsId:t,slotId:n})=>Z.refreshAmsSlot(e.id,t,n),onMutate:({amsId:e,slotId:t})=>{zr.current&&clearTimeout(zr.current),Rr.current=!1,Br.current=!1,Lr({amsId:e,slotId:t}),setTimeout(()=>{Br.current=!0},2e3),zr.current=setTimeout(()=>{Lr(null)},3e4)},onSuccess:e=>{R(e.message||F(`printers.toast.rfidRereadInitiated`))},onError:e=>{R(e.message||F(`printers.toast.failedToRereadRfid`),`error`),zr.current&&clearTimeout(zr.current),Lr(null)}}),Hr=q({mutationFn:({trayId:t,extruderId:n})=>Z.loadAmsTray(e.id,t,n),onSuccess:e=>{Gr(null),R(e.message||F(`printers.toast.loadInitiated`))},onError:e=>{Gr(null),R(e.message||F(`printers.toast.failedToLoad`),`error`)}}),Ur=q({mutationFn:({trayId:t})=>Z.unloadAms(e.id,t),onSuccess:e=>{R(e.message||F(`printers.toast.unloadInitiated`))},onError:e=>{R(e.message||F(`printers.toast.failedToUnload`),`error`)}}),[Wr,Gr]=(0,y.useState)(null),Kr=!!W?.fila_switch?.installed,qr=(e,t,n)=>{if(!Kr||e===255||e>=128){Hr.mutate({trayId:n});return}if(!W?.fila_switch?.ready){R(F(`printers.ams.switchNotReady`),`warning`);return}Gr({trayId:n,amsId:e,slotId:t,slotLabel:jp(e,t,!1,!1)})},[Jr,Yr]=(0,y.useState)(null),[Xr,Zr]=(0,y.useState)(null),Qr=async()=>{try{Yr(await Z.getPlateReferences(e.id))}catch{}},$r=()=>{kr.mutate(!e.plate_detection_enabled)},ei=async()=>{qt(!0),Gt(null);let t=W?.chamber_light===!1;tn(t),t&&(await Z.setChamberLight(e.id,!0),await new Promise(e=>setTimeout(e,2500)));try{Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0})),Qr()}catch(n){R(n instanceof Error?n.message:F(`printers.toast.failedToCheckPlate`),`error`),t&&(await Z.setChamberLight(e.id,!1),tn(!1))}finally{qt(!1)}},ti=(0,y.useCallback)(async()=>{Gt(null),en&&(await Z.setChamberLight(e.id,!1),tn(!1))},[en,e.id]),ni=async t=>{Yt(!0);try{let n=await Z.calibratePlateDetection(e.id,{label:t});n.success?(R(n.message||F(`printers.toast.calibrationSaved`),`success`),Qr(),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))):R(n.message||F(`printers.toast.calibrationFailed`),`error`)}catch(e){R(e instanceof Error?e.message:F(`printers.toast.calibrationFailed`),`error`)}finally{Yt(!1)}},ri=async(t,n)=>{try{await Z.updatePlateReferenceLabel(e.id,t,n),Zr(null),Qr()}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToUpdateLabel`),`error`)}},ii=async t=>{try{await Z.deletePlateReference(e.id,t),R(F(`printers.toast.referenceDeleted`),`success`),Qr(),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToDeleteReference`),`error`)}},ai=async()=>{if(Xt){$t(!0);try{await Z.updatePrinter(e.id,{plate_detection_roi:Xt}),R(F(`printers.toast.detectionAreaSaved`),`success`),Zt(null),Gt(await Z.checkPlateEmpty(e.id,{includeDebugImage:!0}))}catch(e){R(e instanceof Error?e.message:F(`printers.toast.failedToSaveDetectionArea`),`error`)}finally{$t(!1)}}};(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Wt&&ti()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Wt,ti]);let oi=(0,y.useRef)(null);if((0,y.useEffect)(()=>{if(!Ir)return;let e=W?.ams_status_main??0;return e!==0&&(Rr.current=!0,oi.current&&=(clearTimeout(oi.current),null)),Rr.current&&e===0&&(Br.current?(zr.current&&clearTimeout(zr.current),Lr(null)):oi.current||=setTimeout(()=>{zr.current&&clearTimeout(zr.current),Lr(null)},2e3)),()=>{oi.current&&clearTimeout(oi.current)}},[W?.ams_status_main,Ir]),(0,y.useEffect)(()=>{if(!B)return;let e=e=>{let t=e.target;Ot.current?.contains(t)||V(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[B]),$n)return null;let si=_Ae(i),ci=()=>{switch(i){case 1:return`w-10 h-10`;case 2:return`w-14 h-14`;case 3:return`w-16 h-16`;case 4:return`w-20 h-20`;default:return`w-14 h-14`}},li=()=>{switch(i){case 1:return`text-base truncate`;case 2:return`text-lg`;case 3:return`text-xl`;case 4:return`text-2xl`;default:return`text-lg`}},ui=()=>{switch(i){case 1:return`mb-2`;case 2:return`mb-4`;case 3:return`mb-5`;case 4:return`mb-6`;default:return`mb-4`}},di=z(`library:upload`)&&z(`queue:create`),fi=!wm(W),pi=e=>{e.preventDefault(),jt.current++,jt.current===1&&Tt(!0)},mi=e=>{e.preventDefault(),e.dataTransfer.dropEffect=di?`copy`:`none`},hi=e=>{e.preventDefault(),jt.current--,jt.current===0&&Tt(!1)},gi=async t=>{if(t.preventDefault(),jt.current=0,Tt(!1),!di)return;let n=Array.from(t.dataTransfer.files)[0];if(!n)return;let r=n.name.toLowerCase();if(!r.endsWith(`.gcode`)&&!r.includes(`.gcode.`)){R(F(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`),`error`);return}Dt(!0);try{let t=await Z.uploadLibraryFile(n,null),r=t.metadata?.sliced_for_model,i=uW(e.model);if(r&&i&&r.toLowerCase()!==i.toLowerCase()){await Z.deleteLibraryFile(t.id).catch(()=>{}),R(F(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:r,printerModel:i}),`error`);return}Xe({id:t.id,filename:t.filename})}catch{R(F(`common.uploadFailed`,`Upload failed`),`error`)}finally{Dt(!1)}},_i=t=>{r!==`compact`||w||t.target.closest(`button, a, input, select, textarea, [role="button"]`)||D?.(e.id)},vi=`!h-8 !min-h-8 !w-8 !px-0 !py-0`,yi=t=>{t===`embedded`&&v?v(e.id,e.name):vm(e.id)},bi=[{mode:`window`,icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),label:F(`settings.newWindow`),title:F(`settings.cameraWindowDescription`)},{mode:`embedded`,icon:(0,G.jsx)(Ml,{className:`w-4 h-4`}),label:F(`settings.embeddedOverlay`),title:F(`settings.cameraOverlayDescription`)}].map(({mode:e,icon:t,label:n,title:r})=>({icon:t,label:e===_?`${n} ✓`:n,title:r,onClick:()=>{b?.(e),yi(e)}})),xi=({amsId:e,slotId:t,loadTrayId:n,isRefreshing:r,includeRfid:i=!0})=>{let a=W?.state===`RUNNING`,o=e>=128&&e!==255?void 0:n;return(0,G.jsxs)(G.Fragment,{children:[i&&(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:ams_rfid`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:n=>{n.stopPropagation(),!(a||!z(`printers:ams_rfid`))&&Vr.mutate({amsId:e,slotId:t})},disabled:a||r||!z(`printers:ams_rfid`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:ams_rfid`)?void 0:F(`printers.permission.noAmsRfid`),children:[(0,G.jsx)(Hl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] ${r?`animate-spin`:``}`}),F(`printers.rfid.reread`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:r=>{r.stopPropagation(),!(a||!z(`printers:control`))&&qr(e,t,n)},disabled:a||!z(`printers:control`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:control`)?void 0:F(`printers.permission.noControl`),children:[(0,G.jsx)(rl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.ams.load`)]}),(0,G.jsxs)(`button`,{className:`w-full px-2 py-1.5 text-left text-xs flex items-center gap-2 rounded transition-colors ${z(`printers:control`)?`text-white hover:bg-bambu-dark-tertiary`:`text-bambu-gray/50 cursor-not-allowed`}`,onClick:e=>{e.stopPropagation(),!(a||!z(`printers:control`))&&Ur.mutate({trayId:o})},disabled:a||!z(`printers:control`),title:a?F(`printers.bedJog.disabledWhilePrinting`):z(`printers:control`)?void 0:F(`printers.permission.noControl`),children:[(0,G.jsx)(il,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.ams.unload`)]})]})},Si=(0,G.jsxs)(`div`,{ref:Ot,className:`relative flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>V(!B),title:F(`common.more`,`More`),className:vi,children:(0,G.jsx)($s,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),B&&(0,G.jsxs)(`div`,{className:`absolute left-0 bottom-full mb-2 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,onClick:()=>{z(`printers:update`)&&(ae(!0),V(!1))},title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:[(0,G.jsx)(Al,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{Ge(!0),V(!1)},children:[(0,G.jsx)(Wc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.printerInformation`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:update`)?`hover:bg-bambu-dark-tertiary`:`opacity-50 cursor-not-allowed`}`,disabled:Ar.isPending||!z(`printers:update`),onClick:()=>{z(`printers:update`)&&(V(!1),e.is_active===!1?Ar.mutate(!0):Nr())},title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),e.is_active===!1?F(`printers.maintenance.menuExit`):F(`printers.maintenance.menuEnter`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{tr.mutate(),V(!1)},children:[(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.reconnect`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 disabled:opacity-50`,disabled:nr.isPending,onClick:()=>{nr.mutate(),V(!1)},children:[(0,G.jsx)(Gl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] ${nr.isPending?`animate-spin`:``}`}),F(`printers.forceRefresh`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{ce(!0),V(!1)},children:[(0,G.jsx)(Ou,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`printers.mqttDebug`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2`,onClick:()=>{qe(!0),V(!1)},children:[(0,G.jsx)(Su,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`diagnostic.runButton`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-sm flex items-center gap-2 ${z(`printers:delete`)?`text-red-700 dark:text-red-400 hover:bg-bambu-dark-tertiary`:`text-red-700/50 dark:text-red-400/50 cursor-not-allowed`}`,onClick:()=>{z(`printers:delete`)&&(te(!0),V(!1))},title:z(`printers:delete`)?void 0:F(`printers.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.delete`)]})]})]});return(0,G.jsxs)(zd,{id:`printer-card-${e.id}`,className:`relative flex h-full flex-col ${T?`ring-2 ring-bambu-green`:``} ${w||r===`compact`?`cursor-pointer`:``}`,style:si,onClick:_i,onDragEnter:pi,onDragOver:mi,onDragLeave:hi,onDrop:gi,children:[w&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-20 flex items-start p-2`,onClick:t=>{t.stopPropagation(),E?.(e.id)},children:T?(0,G.jsx)(vu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-bambu-green`}):(0,G.jsx)(bu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-bambu-gray`})}),(wt||Et)&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 rounded-xl border-2 border-dashed flex items-center justify-center transition-colors ${Et?`bg-bambu-green/10 border-bambu-green/50`:di?`bg-bambu-green/10 border-bambu-green`:`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/50`}`,children:(0,G.jsx)(`div`,{className:`text-center`,children:Et?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:F(`common.uploading`,`Uploading...`)})]}):di?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Rl,{className:`w-8 h-8 mx-auto mb-2 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-bambu-green`,children:F(fi?`printers.dropToQueue`:`printers.dropToPrint`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nd,{className:`w-8 h-8 mx-auto mb-2 text-red-600 dark:text-red-400`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-red-700 dark:text-red-400`,children:z(`library:upload`)?F(`fileManager.noPermissionAddToQueue`):F(`fileManager.noPermissionUpload`)})]})})}),(0,G.jsxs)(Vd,{className:`${i>=3?`p-5`:``} flex flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:ui(),children:[(0,G.jsx)(`div`,{className:`flex items-start justify-between gap-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`img`,{src:xm(e.model),alt:e.model||F(`common.printer`),className:`object-contain rounded-lg flex-shrink-0 ${ci()}`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white ${li()}`,children:e.name}),r===`compact`&&(()=>{let e=W?.connected&&W.hms_errors?Fm(W.hms_errors):[],t=e.some(e=>e.severity<=2),n=e.length>0,r=W?.connected?t?`bg-status-error`:n?`bg-status-warning`:`bg-status-ok`:`bg-status-error`,i=W?.connected?n?`${e.length} HMS ${e.length===1?`error`:`errors`}`:F(`printers.connection.connected`):F(`printers.connection.offline`);return(0,G.jsx)(`div`,{className:`w-[var(--pc-i2,0.5rem)] h-[var(--pc-i2,0.5rem)] rounded-full flex-shrink-0 ${r}`,title:i})})()]}),r===`compact`&&qn&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>hr.mutate(),disabled:hr.isPending||!z(`printers:clear_plate`),"aria-label":F(`printers.plateStatus.markCleared`),className:`inline-flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-md bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-400/40 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors disabled:opacity-50`,title:z(`printers:clear_plate`)?F(`printers.plateStatus.markCleared`):F(`printers.permission.noControl`),children:hr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):(0,G.jsx)(hU,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[e.model||`Unknown Model`,r===`expanded`&&Wp(W).length>0&&(0,G.jsxs)(`span`,{className:`ml-1.5 text-bambu-gray`,title:W?.nozzles?.[0]?.nozzle_type||`Nozzle`,children:[`• `,Wp(W).join(` / `),`mm`]}),r===`expanded`&&n&&n.total_print_hours>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] inline-block mr-1`}),Math.round(n.total_print_hours),`h`]})]})]})]})}),r===`expanded`&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[e.is_active===!1?(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,title:F(`printers.maintenance.subtitle`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.maintenance.pillLabel`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs ${W?.connected?`bg-status-ok/20 text-status-ok`:`bg-status-error/20 text-status-error`}`,children:[W?.connected?(0,G.jsx)(Zc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(Bu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),W?.connected?F(`printers.connection.connected`):F(`printers.connection.offline`)]}),e.is_active!==!1&&!W?.connected&&(0,G.jsxs)(`button`,{onClick:()=>qe(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:F(`diagnostic.runButton`),children:[(0,G.jsx)(Su,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`diagnostic.runButton`)]}),W?.connected&&W?.wired_network&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-status-ok/20 text-status-ok`,title:F(`printers.connection.ethernet`,`Ethernet`),children:[(0,G.jsx)(ts,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.connection.ethernet`,`Ethernet`)]}),W?.connected&&!W?.wired_network&&_n!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs ${_n>=-50||_n>=-60?`bg-status-ok/20 text-status-ok`:_n>=-70?`bg-status-warning/20 text-status-warning`:_n>=-80?`bg-orange-500/20 text-orange-600`:`bg-status-error/20 text-status-error`}`,title:`WiFi: ${_n} dBm - ${F(Cm(_n).labelKey)}`,children:[(0,G.jsx)(lu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),_n,`dBm`]}),W?.connected&&(()=>{let e=W.hms_errors?Fm(W.hms_errors):[];return(0,G.jsxs)(`button`,{onClick:()=>ge(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${e.length>0?e.some(e=>e.severity<=2)?`bg-status-error/20 text-status-error`:`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:F(`printers.clickToViewHmsErrors`),children:[(0,G.jsx)(Lu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),e.length>0?e.length:`OK`]})})(),M&&(()=>{let e=AT(N),t=e===`failure`?`bg-status-error/20 text-status-error`:e===`warning`?`bg-status-warning/20 text-status-warning`:e===`safe`?`bg-status-ok/20 text-status-ok`:e===`error`?`bg-amber-500/20 text-amber-600 dark:text-amber-400`:`bg-bambu-dark-tertiary text-bambu-gray`,n=e===`error`?F(`printers.aiDetection.tooltipError`,{reason:N?.error??F(`printers.aiDetection.error`)}):e===`unknown`?F(`printers.aiDetection.tooltipUnknown`):N?F(`printers.aiDetection.tooltip`,{status:F(`printers.aiDetection.${e}`),score:N.score.toFixed(3)}):F(`printers.aiDetection.tooltipIdle`),r=e===`error`?ic:Yl;return(0,G.jsxs)(`button`,{onClick:()=>ve(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${t}`,title:n,children:[(0,G.jsx)(r,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.aiDetection.${e}`)]})})(),n&&(0,G.jsxs)(`button`,{onClick:()=>L(`/maintenance`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs cursor-pointer hover:opacity-80 transition-opacity ${n.due_count>0?`bg-status-error/20 text-status-error`:n.warning_count>0?`bg-status-warning/20 text-status-warning`:`bg-status-ok/20 text-status-ok`}`,title:n.due_count>0||n.warning_count>0?`${n.due_count>0?`${n.due_count} maintenance due`:``}${n.due_count>0&&n.warning_count>0?`, `:``}${n.warning_count>0?`${n.warning_count} due soon`:``} - Click to view`:F(`printers.maintenanceUpToDate`),children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),n.due_count>0||n.warning_count>0?n.due_count+n.warning_count:`OK`]}),zn>0&&(0,G.jsxs)(`button`,{onClick:()=>L(`/queue`),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 hover:opacity-80 transition-opacity`,title:F(`printers.queue.inQueue`,{count:zn}),children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),zn]}),x&&nn?.current_version&&nn?.latest_version?(0,G.jsxs)(`button`,{onClick:()=>Ut(!0),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs hover:opacity-80 transition-opacity ${nn.update_available?`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`:`bg-status-ok/20 text-status-ok`}`,title:nn.update_available?F(`printers.firmwareUpdateAvailable`,{current:nn.current_version,latest:nn.latest_version}):F(`printers.firmwareUpToDate`,{version:nn.current_version}),children:[nn.update_available?(0,G.jsx)(Xs,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(xs,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),nn.current_version]}):W?.firmware_version?(0,G.jsx)(`span`,{className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs bg-bambu-dark-tertiary/50 text-bambu-gray`,children:W.firmware_version}):null,W?.connected&&[`X1C`,`X1`,`X1E`,`X2D`,`P2S`,`H2D`,`H2D Pro`,`H2C`,`H2S`].includes(e.model??``)&&(0,G.jsx)(`span`,{className:`flex items-center px-2 py-1 rounded-full text-xs ${W.door_open?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-status-ok/20 text-status-ok`}`,title:W.door_open?F(`printers.door.open`):F(`printers.door.closed`),children:W.door_open?(0,G.jsx)(Ys,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(Js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]})})]}),ee&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(zd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-red-100 dark:bg-red-500/20`,children:(0,G.jsx)(Lu,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:F(`printers.confirm.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:F(`printers.confirm.deleteMessage`,{name:e.name})})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ne,onChange:e=>re(e.target.checked),className:`mt-0.5 w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] rounded border-bambu-gray bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:F(`printers.deleteArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:F(ne?`printers.confirm.deleteArchivesNote`:`printers.confirm.keepArchivesNote`)})]})]})}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{te(!1),re(!0)},children:F(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>{er.mutate({deleteArchives:ne}),te(!1),re(!0)},children:`Delete`})]})]})})}),e.is_active===!1?(0,G.jsx)(G.Fragment,{children:r===`compact`?(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-2 px-2 py-1.5 rounded-full bg-amber-50 dark:bg-amber-500/15 border border-amber-300 dark:border-amber-500/30`,children:[(0,G.jsx)(td,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t11,11px)] text-amber-700 dark:text-amber-400 font-medium truncate`,children:F(`printers.maintenance.pillLabel`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`p-3 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-[10px] flex items-center gap-3`,children:[(0,G.jsx)(td,{className:`w-6 h-6 text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400 font-medium`,children:F(`printers.maintenance.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:F(`printers.maintenance.subtitle`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,disabled:Ar.isPending||!z(`printers:update`),onClick:()=>Ar.mutate(!0),title:z(`printers:update`)?void 0:F(`printers.permission.noEdit`),children:F(`printers.maintenance.exitButton`)})]})]})}):W?.connected&&(0,G.jsxs)(G.Fragment,{children:[r===`compact`?(()=>{let e=W.hms_errors?Fm(W.hms_errors):[],t=W.state===`FAILED`||e.length>0,n=W.state===`RUNNING`||W.state===`PAUSE`?Math.max(0,Math.min(100,W.progress||0)):qn||t?100:0,r=W.state===`RUNNING`||W.state===`PAUSE`,i=t?`bg-status-error`:W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`,a=r&&W.remaining_time!=null&&W.remaining_time>0,o=r&&W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`relative mt-2 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${i} h-1.5 rounded-full transition-all`,style:{width:`${n}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 text-right text-[length:var(--pc-t11,11px)] leading-none ${r?`text-white`:`text-bambu-gray`}`,children:r?`${Math.round(n)}%`:`---%`})]}),(0,G.jsxs)(`div`,{className:`mt-1 flex min-h-[14px] items-center gap-2 overflow-hidden text-[length:var(--pc-t11,11px)] leading-none text-bambu-gray`,children:[a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),lp(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`shrink-0 font-medium text-bambu-green`,title:F(`printers.estimatedCompletion`),children:[`ETA `,cp(W.remaining_time,g,F)]})]}),o&&(0,G.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1 truncate`,children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] shrink-0`}),W.layer_num,`/`,W.total_layers]})]})]})})():(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.status.title`,`Status`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(()=>{let t=!!(W.current_print&&(W.state===`RUNNING`||W.state===`PAUSE`)),n=!t&&Kn&&Yn,r=t?Jn:n?Yn.name:null,i=t?W.cover_url:n?Yn.coverUrl:null,a=t?W.progress||0:n?100:0,o=W.printable_objects_count??0,s=t&&o!==1&&z(`printers:control`);return(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded-[10px] relative overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>Ve(!0),disabled:!s,className:`absolute top-2 right-2 p-1.5 rounded transition-colors z-10 ${s?`text-bambu-gray hover:text-white hover:bg-white/10`:`text-bambu-gray/30 cursor-not-allowed`}`,title:z(`printers:control`)?F(t?o===1?`printers.skipObjects.requiresMultiple`:`printers.skipObjects.tooltip`:`printers.skipObjects.onlyWhilePrinting`):F(`printers.permission.noControl`),children:[(0,G.jsx)(yT,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),Fr&&Fr.skipped_count>0&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[16px] h-4 px-1 flex items-center justify-center text-[length:var(--pc-t10,10px)] font-bold bg-red-500 text-white rounded-full`,children:Fr.skipped_count})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsx)(uAe,{url:i,printName:r||void 0,className:`w-24 h-24 max-[520px]:w-20 max-[520px]:h-20`}),(0,G.jsxs)(`div`,{className:`flex h-24 max-[520px]:h-20 min-w-0 flex-1 flex-col justify-between pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-h-[18px] items-center gap-2 pr-8`,children:[(0,G.jsx)(`p`,{className:`min-w-0 truncate text-sm text-bambu-gray`,children:mAe(W.state,W.stg_cur_name)}),Qn]}),(0,G.jsx)(`p`,{className:`min-h-[18px] truncate pr-8 text-sm ${r?`text-white`:`text-bambu-gray/70`}`,children:r||F(`printers.noActiveJob`,`No active job`)}),(0,G.jsxs)(`div`,{className:`flex h-3 items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`h-1.5 min-w-0 flex-1 rounded-full bg-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`${t?W.state===`PAUSE`?`bg-status-warning`:`bg-bambu-green`:n?`bg-bambu-green`:`bg-bambu-dark-tertiary`} h-1.5 rounded-full transition-all`,style:{width:`${a}%`}})}),(0,G.jsx)(`span`,{className:`w-9 shrink-0 pr-1 text-right text-[length:var(--pc-t11,11px)] leading-none ${t||n?`text-white`:`text-bambu-gray`}`,children:t||n?`${Math.round(a)}%`:`---%`})]}),(0,G.jsx)(`div`,{className:`flex min-h-[16px] items-center gap-2 text-xs text-bambu-gray`,children:t?(0,G.jsxs)(G.Fragment,{children:[W.remaining_time!=null&&W.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),lp(W.remaining_time*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:F(`printers.estimatedCompletion`),children:[`ETA `,cp(W.remaining_time,g,F)]})]}),W.layer_num!=null&&W.total_layers!=null&&W.total_layers>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),W.layer_num,`/`,W.total_layers]}),Hn&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:`Started by ${Hn}`,children:[(0,G.jsx)(Hu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),Hn]})]}):Wn?(0,G.jsxs)(`p`,{className:`truncate`,title:Wn.print_name||Wn.filename,children:[`Last: `,Wn.print_name||Wn.filename,Wn.completed_at&&(0,G.jsxs)(`span`,{className:`ml-1 text-bambu-gray/60`,children:[`• `,ap(Wn.completed_at,{month:`short`,day:`numeric`})]})]}):(0,G.jsx)(`span`,{children:F(`printers.readyToPrint`)})})]})]}),(0,G.jsx)(rce,{printerId:e.id,printerModel:e.model,loadedFilamentTypes:an,loadedFilaments:on,loadedVariants:sn,variant:`panelExtension`})]})})()]}),W.temperatures&&r===`expanded`&&(()=>{let t=W.temperatures.nozzle_heating||W.temperatures.nozzle_2_heating||!1,n=W.temperatures.bed_heating||!1,r=W.temperatures.chamber_heating||!1,i=e.nozzle_count===2||W.temperatures.nozzle_2!==void 0,a=(()=>{let e=[`nozzle`];return W.temperatures.nozzle_2!==void 0&&e.push(`nozzle_2`),e.push(`bed`),W.temperatures.chamber!==void 0&&e.push(`chamber`),e})(),o=W.active_extruder===1?`L`:`R`,s=W.nozzle_rack?.find(e=>e.id===1),c=W.nozzle_rack?.find(e=>e.id===0),l=c||s,u=W.connected&&z(`printers:control`),d=u?void 0:F(`printers.permission.noControl`),f=`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,p=hAe.has(e.model??``),m=gAe.has(e.model??``),h=F(m?`printers.fans.exhaust`:`printers.fans.chamber`),g=p&&(!m||W.exhaust_fan_present),_=[{key:`part`,label:F(`printers.fans.partCooling`),value:W.cooling_fan_speed??0,Icon:oc,activeClass:`text-cyan-600 dark:text-cyan-400`},...W.left_aux_fan_speed==null?[]:[{key:`aux2`,label:F(`printers.fans.leftAuxiliary`),value:W.left_aux_fan_speed,Icon:$u,activeClass:`text-indigo-600 dark:text-indigo-400`}],{key:`aux`,label:F(`printers.fans.auxiliary`),value:W.big_fan1_speed??0,Icon:$u,activeClass:`text-blue-600 dark:text-blue-400`},...g?[{key:`chamber`,label:h,value:W.big_fan2_speed??0,Icon:No,activeClass:`text-green-600 dark:text-green-400`}]:[]];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`mt-2 flex items-stretch gap-1.5 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:f,title:d,onClick:()=>u&&Fe(Pe===`nozzle-temp`?null:`nozzle-temp`),children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`nozzle`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-orange-400`,isHeating:t}),W.temperatures.nozzle_2===void 0?l?(0,G.jsx)($U,{slot:l,index:0,activeStatus:!0,filamentName:l.filament_id?cn?.[l.filament_id]?.name:void 0,children:(0,G.jsxs)(`div`,{className:`cursor-default`,children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`°C`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:`L / R`}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.nozzle||0),`° / `,Math.round(W.temperatures.nozzle_2||0),`°`]})]}),Pe===`nozzle-temp`&&(i?(0,G.jsx)(oW,{title:`Set Nozzle Temperatures`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:260,isPending:_r.isPending,onClose:()=>Fe(null),children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 px-3 py-2.5`,children:[(0,G.jsx)(sW,{label:`Left Temp`,current:W.temperatures.nozzle,target:W.temperatures.nozzle_target,isActive:o===`L`,isPending:_r.isPending,onSubmit:e=>_r.mutate({target:e,nozzle:1}),options:jm(O,`C`)}),(0,G.jsx)(sW,{label:`Right Temp`,current:W.temperatures.nozzle_2,target:W.temperatures.nozzle_2_target,isActive:o===`R`,isPending:_r.isPending,onSubmit:e=>_r.mutate({target:e,nozzle:0}),options:jm(O,`C`)})]})}):(0,G.jsx)(oW,{title:`Set Nozzle Temperature`,unit:`°C`,customMin:0,customMax:320,isPending:_r.isPending,options:jm(O,`C`),onClose:()=>Fe(null),onSubmit:e=>_r.mutate({target:e,nozzle:W.active_extruder??0})}))]}),(0,G.jsxs)(`div`,{className:f,title:d,onClick:()=>u&&Fe(Pe===`bed-temp`?null:`bed-temp`),children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`bed`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-blue-400`,isHeating:n}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.bed`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.bed||0),`°C`]}),Pe===`bed-temp`&&(0,G.jsx)(oW,{title:`Set Bed Temperature`,unit:`°C`,customMin:0,customMax:140,isPending:vr.isPending,options:jm(k,`C`),onClose:()=>Fe(null),onSubmit:e=>vr.mutate(e)})]}),W.temperatures.chamber!==void 0&&(()=>{let e=W.supports_chamber_heater===!0;return(0,G.jsxs)(`div`,{className:e?f:`relative text-center px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 flex flex-col justify-center items-center`,title:e?d:void 0,onClick:e?()=>u&&Fe(Pe===`chamber-temp`?null:`chamber-temp`):void 0,children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-0.5 right-0.5 p-0.5 rounded text-bambu-gray hover:text-white hover:bg-white/10 transition-colors`,title:F(`printers.heaterHistory.openLabel`,`View heater history`),onClick:e=>{e.stopPropagation(),Ft({initialKind:`chamber`,availableKinds:a})},children:(0,G.jsx)(ls,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`})}),(0,G.jsx)(eW,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5`,color:`text-green-400`,isHeating:r}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.chamber`)}),(0,G.jsxs)(`p`,{className:`text-[length:var(--pc-t11,11px)] text-white`,children:[Math.round(W.temperatures.chamber||0),`°C`]}),e&&Pe===`chamber-temp`&&(0,G.jsx)(oW,{title:`Set Chamber Temperature`,unit:`°C`,customMin:0,customMax:65,isPending:yr.isPending,options:jm(A,`C`),onClose:()=>Fe(null),onSubmit:e=>yr.mutate(e)})]})})(),i&&(0,G.jsx)(Qke,{leftSlot:s,rightSlot:c,activeNozzle:o,filamentInfo:cn,children:(0,G.jsxs)(`div`,{className:`relative text-center px-3 py-1.5 bg-bambu-dark rounded-lg h-full flex flex-col justify-center items-center transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:u?F(`printers.activeNozzle`,{nozzle:F(o===`L`?`common.left`:`common.right`)}):d,onClick:()=>u&&Fe(Pe===`nozzle-select`?null:`nozzle-select`),children:[(0,G.jsx)(oAe,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] mb-0.5 text-amber-600 dark:text-amber-400`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t11,11px)] font-bold ${o===`L`?`text-amber-700 dark:text-amber-400`:`text-gray-500`}`,children:[`L`,s?.nozzle_diameter?` ${s.nozzle_diameter}`:``]}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t11,11px)] font-bold ${o===`R`?`text-amber-700 dark:text-amber-400`:`text-gray-500`}`,children:[`R`,c?.nozzle_diameter?` ${c.nozzle_diameter}`:``]})]}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t9,9px)] text-bambu-gray`,children:F(`printers.temperatures.nozzle`)}),Pe===`nozzle-select`&&(0,G.jsx)(oW,{title:`Set Nozzle Selection`,widthClass:`w-[300px]`,popoverWidth:300,popoverHeight:140,isPending:xr.isPending,options:[{label:`Left`,value:1},{label:`Right`,value:0}],onClose:()=>Fe(null),onSubmit:e=>xr.mutate(e)})]})}),W.nozzle_rack&&W.nozzle_rack.some(e=>e.id>=2)&&(0,G.jsx)($ke,{slots:W.nozzle_rack,filamentInfo:cn})]}),(0,G.jsx)(`div`,{className:`mt-2 flex items-center gap-1.5`,children:_.map(({key:e,label:t,value:n,Icon:r,activeClass:i})=>{let a=n>0;return(0,G.jsxs)(`div`,{className:`relative px-2 py-1.5 bg-bambu-dark rounded-lg flex-1 min-w-0 flex items-center justify-center gap-1 transition-colors ${u?`cursor-pointer hover:bg-bambu-dark-tertiary`:`cursor-default opacity-80`}`,title:u?t:d,onClick:()=>u&&Fe(Pe===`fan-${e}`?null:`fan-${e}`),children:[(0,G.jsx)(r,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] shrink-0 ${a?i:`text-bambu-gray/50`}`}),(0,G.jsxs)(`span`,{className:`text-[length:var(--pc-t10,10px)] leading-none ${a?`text-white`:`text-bambu-gray/50`}`,children:[n,`%`]}),Pe===`fan-${e}`&&(0,G.jsx)(oW,{title:`Set ${t} Speed`,unit:`%`,customMin:0,customMax:100,isPending:br.isPending,options:jm(j,`%`),onClose:()=>Fe(null),onSubmit:t=>br.mutate({fan:e,speed:t})})]},e)})})]})})(),r===`expanded`&&qn&&gr,r===`expanded`&&(()=>{let t=W.state===`RUNNING`,n=W.state===`PAUSE`,r=t||n,i=fr.isPending||pr.isPending||mr.isPending,a=`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed opacity-50`,o=`flex h-8 w-8 items-center justify-center rounded-lg text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,s=`flex h-8 w-20 items-center justify-center gap-1 px-2 rounded-lg text-xs font-medium transition-colors`;return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.controls`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-x-2 gap-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 min-w-0`,children:[(0,G.jsx)(`button`,{onClick:()=>Sr.mutate(!W.chamber_light),disabled:!W.connected||Sr.isPending||!z(`printers:control`),className:`${o} ${W.chamber_light?`bg-yellow-50 dark:bg-yellow-500/10 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:control`)?W.chamber_light?F(`printers.chamberLightOff`):F(`printers.chamberLightOn`):F(`printers.permission.noControl`),children:(0,G.jsx)(vT,{on:W.chamber_light??!1,className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),[`P2S`,`X2D`,`H2D`,`H2C`,`H2S`].includes(e.model??``)&&(()=>{let t=W.airduct_mode===1,n=t?hc:gu,r=t?`text-orange-600 dark:text-orange-400`:`text-sky-600 dark:text-sky-400`,i=t?`bg-orange-50 dark:bg-orange-500/10 text-orange-700 dark:text-orange-400 hover:bg-orange-500/20`:`bg-sky-50 dark:bg-sky-500/10 text-sky-700 dark:text-sky-400 hover:bg-sky-500/20`;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>je(Ae===e.id?null:e.id),disabled:!z(`printers:control`),className:`${o} ${i}`,title:`${F(`printers.airduct.title`)}: ${F(t?`printers.airduct.heating`:`printers.airduct.cooling`)}`,children:(0,G.jsx)(n,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] ${r}`})}),Ae===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>je(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:`cooling`,label:F(`printers.airduct.cooling`),modeId:0},{mode:`heating`,label:F(`printers.airduct.heating`),modeId:1}].map(({mode:e,label:t,modeId:n})=>(0,G.jsxs)(`button`,{onClick:()=>{wr.mutate(e),je(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors flex items-center gap-2 ${W.airduct_mode===n?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:[e===`heating`?(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(gu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),t]},e))})]})]})})(),(()=>{let t=z(`printers:control`),n=r||!t,i=`flex h-8 w-8 items-center justify-center rounded bg-indigo-100 dark:bg-indigo-500/15 text-indigo-700 dark:text-indigo-300 transition-colors hover:bg-indigo-200 dark:hover:bg-indigo-500/30 disabled:cursor-not-allowed disabled:opacity-50`,a=e=>{let t=e*Ie*1;Tr.mutate({distance:t})},s=(e,t)=>{Er.mutate({x:e,y:t})},c=e=>{Dr.mutate(e)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>Ne(Me===e.id?null:e.id),disabled:n,className:`${o} ${n?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-indigo-50 dark:bg-indigo-500/10 text-indigo-700 dark:text-indigo-400 hover:bg-indigo-500/20`}`,title:F(t?r?`printers.bedJog.disabledWhilePrinting`:`printers.bedJog.title`:`printers.permission.noControl`),children:(0,G.jsx)(yl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),Me===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>Ne(null)}),(0,G.jsxs)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 flex w-[216px] flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-2xl`,children:[(0,G.jsx)(`div`,{className:`shrink-0 px-3 py-2.5 text-center text-sm font-medium text-white`,children:F(`printers.bedJog.title`)}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-start gap-1.5 bg-yellow-500/10 px-3 py-2 text-[length:var(--pc-t11,11px)] leading-snug text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),(0,G.jsx)(`span`,{children:F(`printers.bedJog.limitWarning`)})]}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex justify-center px-3 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-1`,children:[(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,Ie),disabled:Er.isPending,className:i,"aria-label":`Move Y forward`,children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(-Ie,0),disabled:Er.isPending,className:i,"aria-label":`Move X left`,children:(0,G.jsx)(Lo,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>{Ne(null),Or.mutate(`all`)},disabled:Or.isPending,className:i,"aria-label":F(`printers.bedJog.homeZ`),children:(0,G.jsx)(Bc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>s(Ie,0),disabled:Er.isPending,className:i,"aria-label":`Move X right`,children:(0,G.jsx)(zo,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{}),(0,G.jsx)(`button`,{onClick:()=>s(0,-Ie),disabled:Er.isPending,className:i,"aria-label":`Move Y back`,children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(-1),disabled:Tr.isPending,className:i,"aria-label":F(`printers.bedJog.up`),children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(Jc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>a(1),disabled:Tr.isPending,className:i,"aria-label":F(`printers.bedJog.down`),children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>c(-Ie),disabled:Dr.isPending,className:i,"aria-label":`Retract filament`,children:(0,G.jsx)(Ho,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center text-bambu-gray/80`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold leading-none`,children:`E`})}),(0,G.jsx)(`button`,{onClick:()=>c(Ie),disabled:Dr.isPending,className:i,"aria-label":`Extrude filament`,children:(0,G.jsx)(Io,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]})]})}),(0,G.jsx)(`div`,{className:`h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 pt-2.5 pb-3`,children:[(0,G.jsx)(`div`,{className:`mb-1 text-[length:var(--pc-t9,9px)] uppercase tracking-wider text-bambu-gray/70`,children:F(`printers.bedJog.step`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[1,10,50].map(e=>(0,G.jsx)(`button`,{onClick:()=>Le(e),className:`flex-1 px-1 py-1 rounded text-[length:var(--pc-t10,10px)] transition-colors ${Ie===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:e},e))})]})]})]})]})})(),(0,G.jsxs)(`div`,{className:`inline-flex rounded-lg ${e.plate_detection_enabled?`ring-1 ring-green-500`:``}`,children:[(0,G.jsx)(`button`,{onClick:$r,disabled:!W.connected||kr.isPending||!z(`printers:update`),className:`${o} rounded-r-none ${e.plate_detection_enabled?`bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:update`)?e.plate_detection_enabled?F(`printers.plateDetection.enabledClick`):F(`printers.plateDetection.disabledClick`):F(`printers.plateDetection.noPermission`),children:kr.isPending?(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] animate-spin`}):(0,G.jsx)(Xl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:ei,disabled:!W.connected||Kt||!z(`printers:update`),className:`flex h-8 w-8 items-center justify-center rounded-r-lg border-l border-bambu-dark-tertiary transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${e.plate_detection_enabled?`bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 hover:bg-green-500/20`:`bg-bambu-dark text-bambu-gray/50 hover:bg-bambu-dark-tertiary hover:text-white`}`,title:z(`printers:update`)?F(`printers.plateDetection.manageCalibration`):F(`printers.plateDetection.noPermission`),children:Kt?(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] animate-spin`}):(0,G.jsx)(ps,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{"data-testid":`speed-control`,onClick:()=>ke(Oe===e.id?null:e.id),disabled:!r||!z(`printers:control`),className:`${o} ${r?`bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-400 hover:bg-amber-500/20`:`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`}`,title:r?F(`printers.speed.title`):void 0,children:(0,G.jsx)(Tc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),Oe===e.id&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40`,onClick:()=>ke(null)}),(0,G.jsx)(`div`,{className:`absolute bottom-full left-0 mb-1 z-50 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg py-1 min-w-[130px]`,children:[{mode:1,label:F(`printers.speed.silent`)},{mode:2,label:F(`printers.speed.standard`)},{mode:3,label:F(`printers.speed.sport`)},{mode:4,label:F(`printers.speed.ludicrous`)}].map(({mode:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{Cr.mutate(e),ke(null)},className:`w-full text-left px-3 py-1.5 text-xs transition-colors ${W.speed_level===e?`text-bambu-green bg-bambu-green/10`:`text-white hover:bg-bambu-dark-tertiary`}`,children:t},e))})]})]})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-2 flex-shrink-0`,children:[(()=>{let e=!r||i||!z(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>n?ze(!0):De(!0),disabled:e,className:` ${s} ${e?a:n?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30`} `,title:z(`printers:control`)?F(n?`printers.resume`:`printers.pause`):F(`printers.permission.noControl`),children:[n?(0,G.jsx)(Nl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}):(0,G.jsx)(Dl,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(n?`printers.resume`:`printers.pause`)]})})(),(()=>{let e=!r||i||!z(`printers:control`);return(0,G.jsxs)(`button`,{onClick:()=>Te(!0),disabled:e,className:` ${s} ${e?a:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 hover:bg-red-500/30`} - `,title:z(`printers:control`)?F(`printers.stop`):F(`printers.permission.noControl`),children:[(0,G.jsx)(bu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.stop`)]})})()]})]})]})})(),(En?.length>0||W.vt_tray.length>0)&&r===`expanded`&&(()=>{let t=En.filter(e=>e.tray.length>1),n=En.filter(e=>e.tray.length===1),r=En.length>0&&W.vt_tray.length>0,g=!(r&&xe),_=e.nozzle_count===2||W?.temperatures?.nozzle_2!==void 0,v=pW[i]??1,y=e=>`${Math.round(e*v*1e3)/1e3}rem`,b=`3.5rem`,x={minWidth:b},S={minWidth:b,maxWidth:y(7.25)},C=e=>({gridTemplateColumns:`repeat(${e}, minmax(${b}, 1fr))`}),w=(W.state===`RUNNING`||W.state===`PAUSE`)&&Array.isArray(W.ams_mapping)?W.ams_mapping:[],T=e=>{let t=Math.max(1,e),n=`calc(${t} * ${b} + ${Math.max(0,t-1)} * 0.25rem + 1rem)`;return{flex:`1 1 ${n}`,minWidth:n}};return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.filaments`)}),(0,G.jsx)(oAe,{state:W.ams_filament_backup,onClick:()=>be(!0)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`}),r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(sAe,{hidden:xe,onClick:Ce}),(0,G.jsx)(`div`,{className:`w-3 h-[2px] bg-bambu-dark-tertiary`})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.map(t=>{let n=XU(t.id,xn,wn,Cn);return(0,G.jsxs)(`div`,{style:T(4),className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex w-full min-h-7 items-center justify-between gap-2 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,G.jsx)(dW,{ams:t,printerId:e.id,label:yp(t.id,t.tray.length),amsLabels:pn,canEdit:z(`printers:update`),onSaved:mn,children:(0,G.jsx)(`span`,{className:`block truncate text-[length:var(--pc-t10,10px)] text-white font-medium cursor-default select-none`,children:pn?.[t.id]||yp(t.id,t.tray.length)})}),n?.kind===`inlet`?(0,G.jsx)(YU,{inlet:n.inlet,title:F(`printers.amsSwitchInletTooltip`,{inlet:n.inlet,side:gp[n.inlet]})}):_&&n?.kind===`nozzle`?(0,G.jsx)(JU,{side:n.side}):null]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[t.humidity!=null&&(0,G.jsx)(tW,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`humidity`}),compact:!0}),t.temp!=null&&(0,G.jsx)(`div`,{className:`mr-1`,children:(0,G.jsx)(nW,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`temperature`}),compact:!0})}),(W.supports_drying||W.drying_screen_only)&&(t.module_type===`n3f`||t.module_type===`n3s`)&&z(`printers:control`)&&(0,G.jsx)(`button`,{disabled:W.drying_screen_only||!!(t.dry_sf_reason?.length&&t.dry_time===0),onClick:e=>{t.dry_time>0?sr.mutate(t.id):Ze===t.id?Qe(null):yt(t,e.currentTarget)},className:`ml-1 flex items-center gap-0.5 px-1 py-0.5 rounded text-[length:var(--pc-t9,9px)] transition-colors ${t.dry_time>0?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:W.drying_screen_only||t.dry_sf_reason?.length?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:W.drying_screen_only?F(`printers.drying.screenOnly`):t.dry_time>0?F(`printers.drying.stop`):t.dry_sf_reason?.length?F(Yke(t.dry_sf_reason)):F(`printers.drying.start`),children:(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-amber-50 dark:bg-amber-500/10 px-2 py-1 text-[length:var(--pc-t9,9px)]`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400 font-medium`,children:F(`printers.drying.active`)}),t.dry_filament&&(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70`,children:t.dry_target_temp==null?t.dry_filament:F(`printers.drying.targetSummary`,{filament:t.dry_filament,temp:t.dry_target_temp})}),(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70`,children:F(`printers.drying.timeRemaining`,{time:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`})}),!W.drying_screen_only&&(0,G.jsx)(`button`,{onClick:()=>sr.mutate(t.id),disabled:sr.isPending,className:`ml-auto text-amber-700 dark:text-amber-400 hover:text-amber-900 dark:hover:text-amber-300 transition-colors disabled:opacity-50`,title:F(`printers.drying.stop`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsx)(`div`,{className:`grid w-full gap-1`,style:C(4),children:[0,1,2,3].map(n=>{let r=t.tray[n]||t.tray.find(e=>e.id===n),i=r?.tray_type&&r.remain>=0,a=!r?.tray_type,g=rW(r),_=t.id*4+n,v=An===_,y=jn!==null&&jn===_,b=Mn!==null&&Mn===_,S=r?.tray_info_idx?cn?.[r.tray_info_idx]:null,C=ln?.[_],T=qp(C?.preset_id,r?.tray_info_idx)?C?.preset_name:void 0,E=(r?.tray_uuid||r?.tag_uid||Lp(e.serial_number,t.id,n))?.toUpperCase(),D=E?s?.[E]:void 0,O=Pp(D),k=o&&!m?p?.find(r=>r.printer_id===e.id&&r.ams_id===t.id&&r.tray_id===n):void 0,A=k?f?.find(e=>e.id===k.spoolman_spool_id):void 0,j=A&&(A.label_weight??0)>0?Math.round(Math.max(0,(A.label_weight??0)-A.weight_used)/(A.label_weight??1)*100):null,M=u?.(e.id,t.id,n),N=(()=>{let e=M?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),P=N===0&&i&&r.remain>0?null:N,I=O??j??P??(i?r.remain:null),L=O!==null||j!==null?`spoolman`:P===null?i?`ams`:void 0:`inventory`,R=r?.tray_type?{vendor:Kp(r)?`Bambu Lab`:`Generic`,profile:T||(A?[A.brand,A.slicer_filament_name?.split(`@`)[0].trim()||A.material].filter(Boolean).join(` `).trim():null)||M?.spool?.slicer_filament_name||S?.name||r.tray_sub_brands||r.tray_type,colorName:Df(r.tray_color||``,r.tray_sub_brands),colorHex:r.tray_color||null,kFactor:KU(r.k),fillLevel:I,trayUuid:r.tray_uuid||null,tagUid:r.tag_uid||null,fillSource:L}:null,B=Ir?.amsId===t.id&&Ir?.slotId===n,V=w.indexOf(_),ee=V>=0?`P${V+1}`:null,te=(0,G.jsxs)(`div`,{className:`relative w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${a?`opacity-50`:``} ${y?`ring-2 ring-amber-400 ring-offset-1 ring-offset-bambu-dark animate-pulse`:b?`ring-2 ring-red-500/60 ring-offset-1 ring-offset-bambu-dark`:v?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[y&&(0,G.jsx)(`span`,{"aria-label":F(`printers.expectedSlot.ariaLabel`,{n:n+1}),title:F(`printers.expectedSlot.title`),className:`absolute top-0.5 left-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-amber-400 rounded pointer-events-none leading-none`,children:`↓`}),ee&&(0,G.jsx)(`span`,{"aria-label":F(`printers.activeJobSlot.ariaLabel`,{n:V+1}),title:F(`printers.activeJobSlot.title`,{n:V+1}),className:`absolute top-0.5 right-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-bambu-green rounded pointer-events-none leading-none`,children:ee}),(0,G.jsx)(UU,{trayColor:r?.tray_color,trayType:r?.tray_type,isEmpty:a,emptyKind:g,slotNumber:n+1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] text-white font-bold truncate`,children:r?.tray_type||F(g===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:R?r?.k:null,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:I!==null&&I>=0&&!a&&r&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${I}%`,backgroundColor:Np(I)}})})]});return(0,G.jsxs)(`div`,{className:`relative group w-full`,style:x,children:[B&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-green animate-spin`})}),R?(0,G.jsx)(SH,{data:R,actions:xi({amsId:t.id,slotId:n,loadTrayId:t.id*4+n,isRefreshing:B}),spoolman:{enabled:o,linkedSpoolId:k?.spoolman_spool_id??(E?s?.[E]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!k&&!M?()=>{let r=(R.trayUuid||R.tagUid||Lp(e.serial_number,t.id,n)).toUpperCase();Lt({tagUid:R.tagUid||r,trayUuid:R.trayUuid||``,printerId:e.id,amsId:t.id,trayId:n})}:void 0,onUnlinkSpool:D?.id?()=>rr.mutate(D.id):void 0},inventory:(()=>{if(o){if(m)return;let i=k,a=A;return{assignedSpool:a?{id:a.id,material:a.material,subtype:a.subtype,brand:a.brand??null,color_name:a.color_name??null,rgba:a.rgba??null,extra_colors:a.extra_colors??null,effect_type:a.effect_type??null,remainingWeightGrams:a.label_weight?Math.max(0,Math.round(a.label_weight-a.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:r?.tray_type||R.profile,material:r?.tray_type??void 0,profile:R.profile,color:R.colorHex||``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),onUnassignSpool:a&&!Kp(r)?()=>h?.(a.id):void 0,isAssigned:!!i||Kp(r)}}let i=u?.(e.id,t.id,n);return{assignedSpool:i?.spool?{id:i.spool.id,material:i.spool.material,subtype:i.spool.subtype,brand:i.spool.brand,color_name:i.spool.color_name,rgba:i.spool.rgba??null,extra_colors:i.spool.extra_colors??null,effect_type:i.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(i.spool.label_weight-i.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:r?.tray_type||R.profile,material:r?.tray_type??void 0,profile:R.profile,color:R.colorHex||``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),onUnassignSpool:i&&!Kp(r)?()=>d?.(e.id,t.id,n):void 0,isAssigned:!!i||Kp(r)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:n,trayCount:t.tray.length,trayType:r?.tray_type||void 0,trayColor:r?.tray_color||void 0,traySubBrands:r?.tray_sub_brands||void 0,trayInfoIdx:r?.tray_info_idx||void 0,extruderId:vp(t.id,r?.id??0,xn,wn),caliIdx:r?.cali_idx,savedPresetId:C?.preset_id})},children:te}):(0,G.jsx)(CH,{kind:g??void 0,actions:xi({amsId:t.id,slotId:n,loadTrayId:t.id*4+n,isRefreshing:B}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:n,trayCount:t.tray.length,extruderId:vp(t.id,r?.id??0,xn,wn)})},onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),children:te})]},n)})})]},t.id)}),n.map(t=>{let n=XU(t.id,xn,wn,Cn),r=t.tray[0],i=r?.tray_type&&r.remain>=0,g=!r?.tray_type,v=rW(r),x=Mp(t.id,r?.id??0,!1),C=An===x,T=jn!==null&&jn===x,E=Mn!==null&&Mn===x,D=r?.tray_info_idx?cn?.[r.tray_info_idx]:null,O=ln?.[x],k=qp(O?.preset_id,r?.tray_info_idx)?O?.preset_name:void 0,A=r?.id??0,j=(r?.tray_uuid||r?.tag_uid||Lp(e.serial_number,t.id,A))?.toUpperCase(),M=j?s?.[j]:void 0,N=Pp(M),P=u?.(e.id,t.id,A),I=(()=>{let e=P?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),L=I===0&&i&&r.remain>0?null:I,R=o&&!m?p?.find(n=>n.printer_id===e.id&&n.ams_id===t.id&&n.tray_id===A):void 0,B=R?f?.find(e=>e.id===R.spoolman_spool_id):void 0,V=B&&(B.label_weight??0)>0?Math.round(Math.max(0,(B.label_weight??0)-B.weight_used)/(B.label_weight??1)*100):null,ee=N??V??L??(i?r.remain:null),te=N!==null||V!==null?`spoolman`:L===null?i?`ams`:void 0:`inventory`,ne=r?.tray_type?{vendor:Kp(r)?`Bambu Lab`:`Generic`,profile:k||(B?[B.brand,B.slicer_filament_name?.split(`@`)[0].trim()||B.material].filter(Boolean).join(` `).trim():null)||P?.spool?.slicer_filament_name||D?.name||r.tray_sub_brands||r.tray_type,colorName:Df(r.tray_color||``,r.tray_sub_brands),colorHex:r.tray_color||null,kFactor:KU(r.k),fillLevel:ee,trayUuid:r.tray_uuid||null,tagUid:r.tag_uid||null,fillSource:te}:null,re=Ir?.amsId===t.id&&Ir?.slotId===A,ie=w.indexOf(x),ae=ie>=0?`P${ie+1}`:null,oe=(0,G.jsxs)(`div`,{className:`relative w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${g?`opacity-50`:``} ${T?`ring-2 ring-amber-400 ring-offset-1 ring-offset-bambu-dark animate-pulse`:E?`ring-2 ring-red-500/60 ring-offset-1 ring-offset-bambu-dark`:C?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[T&&(0,G.jsx)(`span`,{"aria-label":F(`printers.expectedSlot.ariaLabel`,{n:1}),title:F(`printers.expectedSlot.title`),className:`absolute top-0.5 left-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-amber-400 rounded pointer-events-none leading-none`,children:`↓`}),ae&&(0,G.jsx)(`span`,{"aria-label":F(`printers.activeJobSlot.ariaLabel`,{n:ie+1}),title:F(`printers.activeJobSlot.title`,{n:ie+1}),className:`absolute top-0.5 right-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-bambu-green rounded pointer-events-none leading-none`,children:ae}),(0,G.jsx)(UU,{trayColor:r?.tray_color,trayType:r?.tray_type,isEmpty:g,emptyKind:v,slotNumber:1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] text-white font-bold truncate`,children:r?.tray_type||F(v===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:ne?r?.k:null,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:ee!==null&&ee>=0&&!g&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${ee}%`,backgroundColor:Np(ee)}})})]}),se=y(11);return(0,G.jsxs)(`div`,{style:{flex:`1 1 ${se}`,minWidth:se,maxWidth:`calc(4 * ${b} + 3 * 0.25rem + 1rem)`},className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex w-full min-h-7 items-center gap-1.5 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,G.jsx)(dW,{ams:t,printerId:e.id,label:yp(t.id,t.tray.length),amsLabels:pn,canEdit:z(`printers:update`),onSaved:mn,children:(0,G.jsx)(`span`,{className:`block truncate text-[length:var(--pc-t10,10px)] text-white font-medium cursor-default select-none`,children:pn?.[t.id]||yp(t.id,t.tray.length)})}),n?.kind===`inlet`?(0,G.jsx)(YU,{inlet:n.inlet,title:F(`printers.amsSwitchInletTooltip`,{inlet:n.inlet,side:gp[n.inlet]})}):_&&n?.kind===`nozzle`?(0,G.jsx)(JU,{side:n.side}):null]}),(W.supports_drying||W.drying_screen_only)&&(t.module_type===`n3f`||t.module_type===`n3s`)&&z(`printers:control`)&&(0,G.jsx)(`div`,{className:`relative ml-auto`,children:(0,G.jsx)(`button`,{disabled:W.drying_screen_only,onClick:e=>{t.dry_time>0?sr.mutate(t.id):Ze===t.id?Qe(null):yt(t,e.currentTarget)},className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[length:var(--pc-t9,9px)] transition-colors ${t.dry_time>0?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:W.drying_screen_only?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:W.drying_screen_only?F(`printers.drying.screenOnly`):t.dry_time>0?F(`printers.drying.stop`):F(`printers.drying.start`),children:(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 overflow-hidden whitespace-nowrap rounded-lg bg-amber-50 dark:bg-amber-500/10 px-2 py-1 text-[length:var(--pc-t9,9px)]`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),t.dry_filament&&(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70 text-[length:var(--pc-t8,8px)] truncate`,children:t.dry_target_temp==null?t.dry_filament:F(`printers.drying.targetSummary`,{filament:t.dry_filament,temp:t.dry_target_temp})}),(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70 text-[length:var(--pc-t8,8px)] truncate`,children:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`}),!W.drying_screen_only&&(0,G.jsx)(`button`,{onClick:()=>sr.mutate(t.id),disabled:sr.isPending,className:`ml-auto text-amber-700 dark:text-amber-400 hover:text-amber-900 dark:hover:text-amber-300 transition-colors disabled:opacity-50 shrink-0`,title:F(`printers.drying.stop`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-1.5 max-[550px]:flex-col max-[550px]:items-start`,children:[(0,G.jsxs)(`div`,{className:`relative group flex-1`,style:S,children:[re&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-green animate-spin`})}),ne?(0,G.jsx)(SH,{data:ne,actions:xi({amsId:t.id,slotId:A,loadTrayId:t.id*4+A,isRefreshing:re}),spoolman:{enabled:o,linkedSpoolId:R?.spoolman_spool_id??(j?s?.[j]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!R&&!P?()=>{let n=(ne.trayUuid||ne.tagUid||Lp(e.serial_number,t.id,A)).toUpperCase();Lt({tagUid:ne.tagUid||n,trayUuid:ne.trayUuid||``,printerId:e.id,amsId:t.id,trayId:A})}:void 0,onUnlinkSpool:M?.id?()=>rr.mutate(M.id):void 0},inventory:(()=>{if(o){if(m)return;let n=R,i=B;return{assignedSpool:i?{id:i.id,material:i.material,subtype:i.subtype,brand:i.brand??null,color_name:i.color_name??null,rgba:i.rgba??null,extra_colors:i.extra_colors??null,effect_type:i.effect_type??null,remainingWeightGrams:i.label_weight?Math.max(0,Math.round(i.label_weight-i.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:r?.tray_type||ne.profile,material:r?.tray_type??void 0,profile:ne.profile,color:ne.colorHex||``,location:yp(t.id,t.tray.length)}}),onUnassignSpool:i&&!Kp(r)?()=>h?.(i.id):void 0,isAssigned:!!n||Kp(r)}}let n=u?.(e.id,t.id,A);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,subtype:n.spool.subtype,brand:n.spool.brand,color_name:n.spool.color_name,rgba:n.spool.rgba??null,extra_colors:n.spool.extra_colors??null,effect_type:n.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:r?.tray_type||ne.profile,material:r?.tray_type??void 0,profile:ne.profile,color:ne.colorHex||``,location:yp(t.id,t.tray.length)}}),onUnassignSpool:n&&!Kp(r)?()=>d?.(e.id,t.id,A):void 0,isAssigned:!!n||Kp(r)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:A,trayCount:t.tray.length,trayType:r?.tray_type||void 0,trayColor:r?.tray_color||void 0,traySubBrands:r?.tray_sub_brands||void 0,trayInfoIdx:r?.tray_info_idx||void 0,extruderId:vp(t.id,r?.id??0,xn,wn),caliIdx:r?.cali_idx,savedPresetId:O?.preset_id})},children:oe}):(0,G.jsx)(CH,{kind:v??void 0,actions:xi({amsId:t.id,slotId:A,loadTrayId:t.id*4+A,isRefreshing:re}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:A,trayCount:t.tray.length,extruderId:vp(t.id,r?.id??0,xn,wn)})},onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:``,material:void 0,profile:``,color:``,location:yp(t.id,t.tray.length)}}),children:oe})]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex flex-col justify-center gap-1 shrink-0 max-[550px]:w-full`,children:[t.temp!=null&&(0,G.jsx)(nW,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`temperature`}),compact:!0}),t.humidity!=null&&(0,G.jsx)(tW,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`humidity`}),compact:!0})]})]})]},t.id)}),W.vt_tray.length>0&&g&&(0,G.jsxs)(`div`,{style:T(W.vt_tray.length),className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsx)(`div`,{className:`flex w-full min-h-7 items-center gap-1.5 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:(0,G.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-[length:var(--pc-t10,10px)] text-white font-medium`,children:F(`printers.external`)})}),(0,G.jsx)(`div`,{className:`grid w-full gap-1`,style:C(W.vt_tray.length>1?2:1),children:[...W.vt_tray].sort((e,t)=>(e.id??254)-(t.id??254)).map(t=>{let n=t.id??254,r=_&&An===254?n===254&&W.active_extruder===1||n===255&&W.active_extruder===0:An===n,i=n-254,a=_?F(n===254?`printers.extL`:`printers.extR`):``,g=t.tray_info_idx?cn?.[t.tray_info_idx]:null,v=ln?.[1020+i],y=qp(v?.preset_id,t.tray_info_idx)?v?.preset_name:void 0,b=(t.tray_uuid||t.tag_uid||Lp(e.serial_number,255,i))?.toUpperCase(),S=b?s?.[b]:void 0,C=Pp(S),w=u?.(e.id,255,i),T=(()=>{let e=w?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),E=t.tray_type&&t.remain>=0,D=T===0&&E&&t.remain>0?null:T,O=o&&!m?p?.find(t=>t.printer_id===e.id&&t.ams_id===255&&t.tray_id===i):void 0,k=O?f?.find(e=>e.id===O.spoolman_spool_id):void 0,A=k&&(k.label_weight??0)>0?Math.round(Math.max(0,(k.label_weight??0)-k.weight_used)/(k.label_weight??1)*100):null,j=C??A??D??(E?t.remain:null),M=C!==null||A!==null?`spoolman`:D===null?E?`ams`:void 0:`inventory`,N={vendor:Kp(t)?`Bambu Lab`:`Generic`,profile:y||(k?[k.brand,k.slicer_filament_name?.split(`@`)[0].trim()||k.material].filter(Boolean).join(` `).trim():null)||w?.spool?.slicer_filament_name||g?.name||t.tray_sub_brands||t.tray_type||`Unknown`,colorName:Df(t.tray_color||``,t.tray_sub_brands),colorHex:t.tray_color||null,kFactor:KU(t.k),fillLevel:j,trayUuid:t.tray_uuid||null,tagUid:t.tag_uid||null,fillSource:M},P=!t.tray_type,I=rW(t),L=(0,G.jsxs)(`div`,{className:`w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${P?`opacity-50`:``} ${r?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[(0,G.jsx)(UU,{trayColor:t.tray_color,trayType:t.tray_type,isEmpty:P,emptyKind:I,slotNumber:_?n===254?`L`:`R`:i+1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] font-bold truncate ${P?`text-white/40`:`text-white`}`,children:t.tray_type||F(`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:P?null:t.k,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:j!==null&&j>=0&&!P&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${j}%`,backgroundColor:Np(j)}})})]});return(0,G.jsx)(`div`,{className:`relative group w-full`,style:x,children:P?(0,G.jsx)(CH,{kind:I??void 0,actions:xi({amsId:255,slotId:i,loadTrayId:n,includeRfid:!1}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:255,trayId:i,trayCount:1,extruderId:_?+(n===254):void 0})},onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`External Slot ${i+1}`}}),children:L}):(0,G.jsx)(SH,{data:N,actions:xi({amsId:255,slotId:i,loadTrayId:n,includeRfid:!1}),spoolman:{enabled:o,linkedSpoolId:O?.spoolman_spool_id??(b?s?.[b]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!O&&!w?()=>{let t=(N.trayUuid||N.tagUid||Lp(e.serial_number,255,i)).toUpperCase();Lt({tagUid:N.tagUid||t,trayUuid:N.trayUuid||``,printerId:e.id,amsId:255,trayId:i})}:void 0,onUnlinkSpool:S?.id?()=>rr.mutate(S.id):void 0},inventory:(()=>{if(o){if(m)return;let n=O,r=k;return{assignedSpool:r?{id:r.id,material:r.material,subtype:r.subtype,brand:r.brand??null,color_name:r.color_name??null,rgba:r.rgba??null,extra_colors:r.extra_colors??null,effect_type:r.effect_type??null,remainingWeightGrams:r.label_weight?Math.max(0,Math.round(r.label_weight-r.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:a||F(`printers.external`)}}),onUnassignSpool:r&&!Kp(t)?()=>h?.(r.id):void 0,isAssigned:!!n||Kp(t)}}let n=u?.(e.id,255,i);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,subtype:n.spool.subtype,brand:n.spool.brand,color_name:n.spool.color_name,rgba:n.spool.rgba??null,extra_colors:n.spool.extra_colors??null,effect_type:n.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:a||F(`printers.external`)}}),onUnassignSpool:n&&!Kp(t)?()=>d?.(e.id,255,i):void 0,isAssigned:!!n||Kp(t)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:255,trayId:i,trayCount:1,trayType:t.tray_type||void 0,trayColor:t.tray_color||void 0,traySubBrands:t.tray_sub_brands||void 0,trayInfoIdx:t.tray_info_idx||void 0,extruderId:_?+(n===254):void 0,caliIdx:t.cali_idx,savedPresetId:v?.preset_id})},children:L})},n)})})]})]})]})})()]}),e.is_active!==!1&&!W?.connected&&r===`expanded`&&qn&&gr,r===`expanded`&&(0,G.jsxs)(`div`,{className:`mt-auto`,children:[Fn&&(0,G.jsxs)(`div`,{className:`pt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.power`,`Power`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-[10px] bg-bambu-dark p-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0 pl-1`,children:[(0,G.jsx)(id,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:Fn.name}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray text-[length:var(--pc-t10,10px)] font-medium flex-shrink-0`,title:F(`smartPlugs.power`),children:Ln?.energy?.power!==null&&Ln?.energy?.power!==void 0?`${Math.round(Ln.energy.power)}W`:`--`})]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>ur.mutate(!Fn.auto_off),disabled:ur.isPending||Fn.auto_off_executed||!z(`smart_plugs:control`),title:z(`smart_plugs:control`)?Fn.auto_off_executed?F(`printers.autoOffExecuted`):F(`printers.autoOffAfterPrint`):F(`printers.permission.noSmartPlugControl`),className:`flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-xs font-bold transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${z(`smart_plugs:control`)?Fn.auto_off||Fn.auto_off_executed?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/80`:`bg-bambu-dark-tertiary/50 text-bambu-gray/50`}`,children:(0,G.jsx)(js,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>{Ln?.state===`ON`?fe(!0):ue(!0)},disabled:lr.isPending||!z(`smart_plugs:control`),className:`flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-xs transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${z(`smart_plugs:control`)?Ln?.state===`ON`?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/80`:`bg-bambu-dark-tertiary/50 text-bambu-gray/50`}`,title:z(`smart_plugs:control`)?Ln?.state===`ON`?`Turn off`:`Turn on`:F(`printers.permission.noSmartPlugControl`),children:(0,G.jsx)(id,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]})]}),In&&In.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,G.jsx)(Bc,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] text-blue-600 dark:text-blue-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`HA:`}),(0,G.jsx)(`div`,{className:`h-[2px] w-5 bg-bambu-dark-tertiary/50`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:In.map(e=>{let t=e.ha_entity_id?.startsWith(`script.`);return(0,G.jsxs)(`button`,{onClick:()=>{t?dr.mutate({id:e.id,action:`on`}):me(e)},disabled:dr.isPending,title:`${t?`Run`:`Toggle`} ${e.ha_entity_id}`,className:`px-2 py-0.5 text-xs bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-500/30 rounded transition-colors flex items-center gap-1`,children:[(0,G.jsx)(Nl,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`}),e.name]},e.id)})})]})]}),(0,G.jsx)(ice,{printerId:e.id}),(0,G.jsxs)(`div`,{className:`pt-4`,children:[(0,G.jsx)(`div`,{className:`mb-3 h-[2px] bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[Si,(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`flex items-center flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>yi(_),disabled:!W?.connected||!z(`camera:view`),title:z(`camera:view`)?F(_===`embedded`?`printers.openCameraOverlay`:`printers.openCameraWindow`):F(`printers.permission.noCamera`),className:`${vi} !rounded-r-none`,children:(0,G.jsx)(Gu,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();At({x:t.left,y:t.bottom+4})},disabled:!W?.connected||!z(`camera:view`),title:z(`camera:view`)?F(`settings.cameraViewMode`):F(`printers.permission.noCamera`),"aria-label":F(`settings.cameraViewMode`),className:`!h-8 !min-h-8 !w-6 !px-0 !py-0 !rounded-l-none border-l border-bambu-dark`,children:(0,G.jsx)(ps,{className:`w-3 h-3`})})]}),kt&&(0,G.jsx)(kT,{x:kt.x,y:kt.y,items:bi,onClose:()=>At(null)}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>se(!0),disabled:!z(`printers:files`),title:z(`printers:files`)?F(`printers.browseFiles`):F(`printers.permission.noFiles`),className:vi,children:(0,G.jsx)(Pc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>Ue(!0),disabled:!z(`library:upload`)||!z(`queue:create`),title:z(`library:upload`)?z(`queue:create`)?F(`common.print`):F(`fileManager.noPermissionAddToQueue`):F(`fileManager.noPermissionUpload`),className:`!h-8 !min-h-8 !px-2 !py-0 !bg-bambu-green hover:!bg-bambu-green/80 !text-white`,children:[(0,G.jsx)(Rl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.print`)]})]})]})]})]}),(0,G.jsx)(_Ae,{printerId:e.id,dryingActive:En.some(e=>(e.dry_time??0)>0),timeFormat:g})]}),oe&&(0,G.jsx)(zse,{printerId:e.id,printerName:e.name,onClose:()=>se(!1)}),He&&(0,G.jsx)(gU,{folderId:null,onClose:()=>Ue(!1),onUploadComplete:()=>{},autoUpload:!0,accept:`.gcode,.3mf`,validateFile:e=>{let t=e.name.toLowerCase();if(!t.endsWith(`.gcode`)&&!t.includes(`.gcode.`))return F(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`)},onFileUploaded:t=>{let n=t.metadata?.sliced_for_model,r=uW(e.model);if(n&&r&&n.toLowerCase()!==r.toLowerCase())return Z.deleteLibraryFile(t.id).catch(()=>{}),F(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:n,printerModel:r});Xe({id:t.id,filename:t.filename})}}),Ye&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:Ye.id,archiveName:Ye.filename,initialSelectedPrinterIds:[e.id],onClose:()=>Xe(null),onSuccess:()=>Xe(null),cleanupLibraryAfterDispatch:!0}),H&&(0,G.jsx)(ece,{printerId:e.id,printerName:e.name,onClose:()=>ce(!1)}),Ke&&(0,G.jsx)(Xp,{printerId:e.id,printerName:e.name,onClose:()=>qe(!1)}),We&&(0,G.jsx)(Vke,{printer:e,status:W,totalPrintHours:n?.total_print_hours,onClose:Je}),Wt&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:()=>ti(),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-w-lg w-full`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Wt.needs_calibration?(0,G.jsx)(Xl,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-blue-500`}):Wt.is_empty?(0,G.jsx)(xs,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-green-500`}):(0,G.jsx)(Ds,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-yellow-500`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`Build Plate Check`}),Wt.reference_count!==void 0&&Wt.max_references&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark-tertiary px-2 py-1 rounded`,children:[Wt.reference_count,`/`,Wt.max_references,` refs`]})]}),(0,G.jsx)(`button`,{onClick:()=>ti(),className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)]`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[Wt.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-blue-100 dark:bg-blue-500/20 border border-blue-300 dark:border-blue-500/50`,children:[(0,G.jsx)(`p`,{className:`font-medium text-blue-700 dark:text-blue-400`,children:F(`printers.plateDetection.calibrationRequired`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,dangerouslySetInnerHTML:{__html:F(`printers.plateDetection.calibrationInstructions`)}})]}),(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray space-y-2`,children:[(0,G.jsx)(`p`,{children:F(`printers.plateDetection.calibrationDescription`)}),(0,G.jsx)(`p`,{dangerouslySetInnerHTML:{__html:F(`printers.plateDetection.calibrationTip`)}})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg ${Wt.is_empty?`bg-green-100 dark:bg-green-500/20 border border-green-300 dark:border-green-500/50`:`bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-500/50`}`,children:[(0,G.jsx)(`p`,{className:`font-medium ${Wt.is_empty?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`}`,children:Wt.is_empty?F(`printers.plateDetection.plateEmpty`):F(`printers.plateDetection.objectsDetected`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:[F(`printers.plateDetection.confidence`),`: `,Math.round(Wt.confidence*100),`% | `,F(`printers.plateDetection.difference`),`: `,Wt.difference_percent.toFixed(1),`%`]})]}),Wt.debug_image_url&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:F(`printers.plateDetection.analysisPreview`)}),(0,G.jsx)(`img`,{src:Wt.debug_image_url,alt:F(`printers.plateDetection.analysisPreview`),className:`w-full rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:F(`printers.plateDetection.analysisLegend`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:Wt.message})]}),Jr&&Jr.references.length>0&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white shrink-0`,children:F(`printers.plateDetection.savedReferences`,{count:Jr.references.length,max:Jr.max_references})}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-5 gap-2`,children:Jr.references.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getPlateReferenceThumbnailUrl(e.id,t.index),alt:t.label||`Reference ${t.index+1}`,className:`w-full aspect-video object-cover rounded border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{onClick:()=>ii(t.index),className:`absolute top-1 right-1 p-0.5 bg-red-500/80 rounded can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`,title:F(`printers.plateDetection.deleteReference`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-white`})}),Xr?.index===t.index?(0,G.jsx)(`input`,{type:`text`,value:Xr.label,onChange:e=>Zr({...Xr,label:e.target.value}),onBlur:()=>ri(t.index,Xr.label),onKeyDown:e=>{e.key===`Enter`&&ri(t.index,Xr.label),e.key===`Escape`&&Zr(null)},className:`w-full mt-1 px-1 py-0.5 text-xs bg-bambu-dark-tertiary border border-bambu-green rounded text-white`,autoFocus:!0,placeholder:F(`printers.plateDetection.labelPlaceholder`)}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate cursor-pointer hover:text-white`,onClick:()=>Zr({index:t.index,label:t.label}),title:t.label?F(`printers.plateDetection.clickToEdit`,{label:t.label}):F(`printers.plateDetection.clickToAddLabel`),children:t.label||(0,G.jsx)(`span`,{className:`italic opacity-50`,children:F(`printers.noLabel`)})}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray/60`,children:t.timestamp?rp(t.timestamp)?.toLocaleDateString()??``:``})]},t.index))})]}),!Wt.needs_calibration&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white shrink-0`,children:F(`printers.roi.title`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),Xt?(0,G.jsxs)(`div`,{className:`flex gap-1`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>Zt(null),disabled:Qt,children:F(`common.cancel`)}),(0,G.jsx)(Q,{size:`sm`,onClick:ai,disabled:Qt,children:Qt?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):F(`common.save`)})]}):(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>Zt(Wt.roi||{x:.15,y:.35,w:.7,h:.55}),children:[(0,G.jsx)(Al,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] mr-1`}),F(`common.edit`)]})]}),Xt?(0,G.jsxs)(`div`,{className:`space-y-3 bg-bambu-dark-tertiary/50 p-3 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.xStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:Xt.x,onChange:e=>Zt({...Xt,x:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.x*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.yStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:Xt.y,onChange:e=>Zt({...Xt,y:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.y*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.width`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:Xt.w,onChange:e=>Zt({...Xt,w:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.w*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.height`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:Xt.h,onChange:e=>Zt({...Xt,h:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.h*100),`%`]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.instruction`)})]}):(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Current: X=`,Math.round((Wt.roi?.x||.15)*100),`%, Y=`,Math.round((Wt.roi?.y||.35)*100),`%, W=`,Math.round((Wt.roi?.w||.7)*100),`%, H=`,Math.round((Wt.roi?.h||.55)*100),`%`]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end gap-2 p-4`,children:Wt.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>ti(),children:F(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>ni(),disabled:Jt,children:Jt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] mr-2 animate-spin`}),`Calibrating...`]}):`Calibrate Empty Plate`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>ni(),disabled:Jt,children:Jt?`Adding...`:`Add Reference (${Jr?.references.length||0}/${Jr?.max_references||5})`}),(0,G.jsx)(Q,{onClick:()=>ti(),children:`Close`})]})})]})}),le&&Fn&&(0,G.jsx)(of,{title:F(`printers.confirm.powerOnTitle`),message:F(`printers.confirm.powerOnMessage`,{name:e.name}),confirmText:F(`printers.confirm.powerOnButton`),variant:`default`,onConfirm:()=>{lr.mutate(`on`),ue(!1)},onCancel:()=>ue(!1)}),jr&&(0,G.jsx)(of,{title:F(`printers.maintenance.confirmMidPrintTitle`),message:F(`printers.maintenance.confirmMidPrintMessage`,{name:e.name}),confirmText:F(`printers.maintenance.menuEnter`),variant:`danger`,onConfirm:()=>{Ar.mutate(!1),Mr(!1)},onCancel:()=>Mr(!1)}),de&&Fn&&(0,G.jsx)(of,{title:F(`printers.confirm.powerOffTitle`),message:W?.state===`RUNNING`?F(`printers.confirm.powerOffWarning`,{name:e.name}):F(`printers.confirm.powerOffMessage`,{name:e.name}),confirmText:F(`printers.confirm.powerOffButton`),variant:`danger`,onConfirm:()=>{lr.mutate(`off`),fe(!1)},onCancel:()=>fe(!1)}),pe&&(0,G.jsx)(of,{title:F(`printers.confirm.haToggleTitle`,{name:pe.name}),message:W?.state===`RUNNING`?F(`printers.confirm.haToggleWarning`,{name:e.name,entity:pe.ha_entity_id||pe.name}):F(`printers.confirm.haToggleMessage`,{entity:pe.ha_entity_id||pe.name}),confirmText:F(`printers.confirm.haToggleButton`),variant:W?.state===`RUNNING`?`danger`:`default`,onConfirm:()=>{dr.mutate({id:pe.id,action:`toggle`}),me(null)},onCancel:()=>me(null)}),we&&(0,G.jsx)(of,{title:F(`printers.confirm.stopTitle`),message:F(`printers.confirm.stopMessage`,{name:e.name}),confirmText:F(`printers.confirm.stopButton`),variant:`danger`,onConfirm:()=>{fr.mutate(),Te(!1)},onCancel:()=>Te(!1)}),Ee&&(0,G.jsx)(of,{title:F(`printers.confirm.pauseTitle`),message:F(`printers.confirm.pauseMessage`,{name:e.name}),confirmText:F(`printers.confirm.pauseButton`),variant:`default`,onConfirm:()=>{pr.mutate(),De(!1)},onCancel:()=>De(!1)}),Re&&(0,G.jsx)(of,{title:F(`printers.confirm.resumeTitle`),message:F(`printers.confirm.resumeMessage`,{name:e.name}),confirmText:F(`printers.confirm.resumeButton`),variant:`default`,onConfirm:()=>{mr.mutate(),ze(!1)},onCancel:()=>ze(!1)}),(0,G.jsx)(bT,{printerId:e.id,isOpen:Be,onClose:()=>Ve(!1)}),he&&(0,G.jsx)(Nee,{printerName:e.name,errors:W?.hms_errors||[],onClose:()=>ge(!1),printerId:e.id,hasPermission:z,runoutGuidance:Pn}),_e&&(0,G.jsx)(nce,{printerName:e.name,detection:N,lastError:P,onClose:()=>ve(!1)}),ye&&W&&(0,G.jsx)(WOe,{isOpen:ye,state:W.ams_filament_backup,amsUnits:W.ams,amsExtruderMap:W.ams_extruder_map,isDualNozzle:e.nozzle_count===2||W?.temperatures?.nozzle_2!==void 0,canToggle:z(`printers:control`),pending:cr.isPending,onToggle:e=>cr.mutate(e),onClose:()=>be(!1)}),Mt&&(0,G.jsx)(BOe,{isOpen:!!Mt,onClose:()=>Nt(null),printerId:e.id,printerName:e.name,amsId:Mt.amsId,amsLabel:Mt.amsLabel,initialMode:Mt.mode,thresholds:a}),Pt&&(0,G.jsx)(KOe,{isOpen:!!Pt,onClose:()=>Ft(null),printerId:e.id,printerName:e.name,initialKind:Pt.initialKind,availableKinds:Pt.availableKinds}),It&&(0,G.jsx)(wH,{isOpen:!!It,onClose:()=>Lt(null),tagUid:It.tagUid,trayUuid:It.trayUuid,printerId:It.printerId,amsId:It.amsId,trayId:It.trayId}),Rt&&(0,G.jsx)(EH,{isOpen:!!Rt,onClose:()=>zt(null),printerId:Rt.printerId,amsId:Rt.amsId,trayId:Rt.trayId,trayInfo:Rt.trayInfo,spoolmanEnabled:!!o}),Bt&&(0,G.jsx)(mU,{isOpen:!!Bt,onClose:()=>Vt(null),printerId:e.id,slotInfo:Bt,printerModel:uW(e.model)||void 0,nozzleDiameter:Gp(W,Bt.amsId),onSuccess:()=>{I.invalidateQueries({queryKey:[`slotPresets`,e.id]}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),Wr&&(0,G.jsx)(Hke,{slotLabel:Wr.slotLabel,amsId:Wr.amsId,slotId:Wr.slotId,extruderSlots:W?.extruder_slots??{},isLoading:Hr.isPending,onConfirm:e=>Hr.mutate({trayId:Wr.trayId,extruderId:e}),onCancel:()=>Gr(null)}),ie&&(0,G.jsx)(bAe,{printer:e,onClose:()=>ae(!1)}),Ht&&nn&&(0,G.jsx)(yAe,{printer:e,firmwareInfo:nn,onClose:()=>Ut(!1)}),Ze!==null&&ht&&(()=>{let e=$e===`n3s`?85:65,t=e+10;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[100]`,"data-testid":`drying-popover-backdrop`,onMouseDown:()=>{xt.current=bt.current!==null&&document.activeElement===bt.current},onClick:()=>{if(xt.current){xt.current=!1;return}Qe(null)}}),(0,G.jsxs)(`div`,{className:`fixed z-[101] flex flex-col w-[240px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl overflow-hidden`,style:{left:ht.left,...ht.placement===`above`?{bottom:`calc(100dvh - ${ht.anchorY}px)`,maxHeight:`${ht.anchorY-8}px`}:{top:ht.top,maxHeight:`calc(100dvh - ${ht.top}px - 8px)`}},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`shrink-0 flex items-center justify-center gap-2 px-3 py-2.5`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium text-center`,children:F(`printers.drying.start`)})]}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 py-2.5 space-y-2.5 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium mb-1 block`,children:F(`printers.filaments`)}),(0,G.jsx)(iW,{value:tt,options:Object.keys(S).map(e=>({value:e,label:e})),onChange:e=>{nt(e);let t=S[e];t&&(it(t[$e===`n3s`?`n3s`:`n3f`]),ot($e===`n3s`?t.n3s_hours:t.n3f_hours))},fullWidth:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium`,children:F(`printers.drying.temperature`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:45,max:e,value:rt,onChange:t=>it(Math.min(e,Math.max(45,Number(t.target.value)||45))),className:`w-12 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[length:var(--pc-t11,11px)] text-center focus:outline-none focus:border-bambu-green [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:`°C`})]})]}),(0,G.jsx)(`input`,{type:`range`,min:35,max:t,value:rt,onChange:t=>it(Math.min(e,Math.max(45,Number(t.target.value)))),className:`w-full h-1 accent-bambu-green cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[length:var(--pc-t9,9px)] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`45°C`}),(0,G.jsxs)(`span`,{children:[e,`°C`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium`,children:F(`printers.drying.duration`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:at,onChange:e=>ot(Math.min(24,Math.max(1,Number(e.target.value)||1))),className:`w-10 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[length:var(--pc-t11,11px)] text-center focus:outline-none focus:border-bambu-green [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:F(`printers.drying.hours`)})]})]}),(0,G.jsx)(`input`,{type:`range`,min:1,max:24,value:at,onChange:e=>ot(Number(e.target.value)),className:`w-full h-1 accent-bambu-green cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[length:var(--pc-t9,9px)] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`1h`}),(0,G.jsx)(`span`,{children:`24h`})]})]}),(()=>{let e=((Ze===null?void 0:En.find(e=>e.id===Ze))?.tray??[]).some(e=>e.state===11),t=st&&!e;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>ct(e=>!e),"aria-pressed":t,disabled:e,title:e?F(`printers.drying.rotateUnavailableReason`):void 0,className:`h-8 w-full rounded-lg border px-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${t?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary disabled:hover:bg-bambu-dark`}`,children:F(`printers.drying.rotateTray`)})})(),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-[10px] text-white/70 font-medium mb-1 block`,children:F(`printers.drying.startMode`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,children:[`now`,`delay`,`at_time`].map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>ut(e),className:`py-1 rounded-lg border text-[10px] font-medium transition-colors ${lt===e?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:F(e===`now`?`printers.drying.modeNow`:e===`delay`?`printers.drying.modeDelay`:`printers.drying.modeAtTime`)},e))}),lt===`delay`&&(0,G.jsx)(`div`,{className:`mt-1.5 grid grid-cols-4 gap-1`,children:Kke.map(e=>(0,G.jsx)(`button`,{type:`button`,"aria-pressed":dt===e,onClick:()=>ft(e),className:`py-1 rounded-lg border text-[10px] font-medium transition-colors ${dt===e?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:fp(e/60)},e))}),lt===`at_time`&&(0,G.jsx)(`input`,{ref:bt,type:`datetime-local`,"data-testid":`drying-start-at`,value:pt,onChange:e=>mt(e.target.value),className:`mt-1.5 w-full px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[11px] focus:outline-none focus:border-bambu-green [color-scheme:dark]`})]})]}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`shrink-0 px-3 pt-2.5 pb-3`,children:(0,G.jsx)(`button`,{onClick:()=>{if(Ze!==null){let e=(En.find(e=>e.id===Ze)?.tray??[]).some(e=>e.state===11),t=st&&!e;if(lt===`now`)ir.mutate({amsId:Ze,temp:rt,duration:at,filament:tt,rotateTray:t});else{let e=Tee(lt,dt,pt);e&&ar.mutate({amsId:Ze,temp:rt,duration:at,filament:tt,rotateTray:t,startAfter:e})}}},disabled:ir.isPending||ar.isPending||lt===`at_time`&&!pt,"data-testid":`drying-start-confirm`,className:`w-full py-1.5 bg-bambu-green hover:bg-bambu-green/80 text-white text-xs font-medium rounded-lg transition-colors disabled:opacity-50`,children:lt===`now`?ir.isPending?F(`printers.drying.startingDrying`):F(`printers.drying.start`):F(`printers.drying.schedule`)})})]}),(0,G.jsx)(`div`,{className:`fixed z-[102] w-2.5 h-2.5 rotate-45 bg-bambu-dark-secondary border-bambu-dark-tertiary pointer-events-none`,style:{left:ht.left+ht.arrowLeft-5,top:ht.anchorY-5,...ht.placement===`above`?{borderRightWidth:1,borderBottomWidth:1}:{borderLeftWidth:1,borderTopWidth:1}}})]})})()]})}function vAe({onClose:e,onAdd:t,existingSerials:n}){let{t:r}=U(),[i,a]=(0,y.useState)({name:``,serial_number:``,ip_address:``,access_code:``,model:``,location:``,auto_archive:!0}),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)([]),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)({scanned:0,total:0}),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(null);(0,y.useEffect)(()=>{Sd.getInfo().then(e=>{h(e.is_docker),e.subnets.length>0&&(_(e.subnets),b(e.subnets[0]))}).catch(()=>{});try{let e=localStorage.getItem(`bambuddy.discovery.customSubnet`);e&&S(e)}catch{}},[]);let N=c.filter(e=>!n.includes(e.serial)),P=async e=>{e.preventDefault(),A(!0);try{let e=await Z.diagnoseConnection({ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0});if(e.checks.some(e=>e.status===`fail`)){M(e);return}}catch{}finally{A(!1)}t(i)},F=async()=>{d(``),l([]),s(!0),p(!1),E({scanned:0,total:0});let e=C?x.trim():v,t=m||C;if(t&&C)try{localStorage.setItem(`bambuddy.discovery.customSubnet`,e)}catch{}try{if(t){await Sd.startSubnetScan(e);let t=setInterval(async()=>{try{let e=await Sd.getScanStatus();E({scanned:e.scanned,total:e.total}),l(await Sd.getDiscoveredPrinters()),e.running||(clearInterval(t),s(!1),p(!0))}catch(e){console.error(`Failed to get scan status:`,e)}},500)}else{await Sd.startDiscovery(10);let e=setInterval(async()=>{try{l(await Sd.getDiscoveredPrinters())}catch(e){console.error(`Failed to get discovered printers:`,e)}},1e3);setTimeout(async()=>{clearInterval(e);try{await Sd.stopDiscovery()}catch{}s(!1),p(!0);try{l(await Sd.getDiscoveredPrinters())}catch(e){console.error(`Failed to get final discovered printers:`,e)}},1e4)}}catch(e){console.error(`Failed to start discovery:`,e),d(e instanceof Error?e.message:r(`printers.discovery.failedToStart`)),s(!1),p(!0)}},I=e=>{let t=e.serial.startsWith(`unknown-`)?``:e.serial;a({...i,name:e.name||``,serial_number:t,ip_address:e.ip_address,model:uW(e.model)}),l([])};return(0,y.useEffect)(()=>()=>{Sd.stopDiscovery().catch(()=>{}),Sd.stopSubnetScan().catch(()=>{})},[]),(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:e,children:(0,G.jsx)(zd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:r(`printers.addPrinter`)}),(0,G.jsxs)(`div`,{className:`mb-4 pb-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.discovery.subnetToScan`)}),g.length>0?(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:C?`__custom__`:v,onChange:e=>{e.target.value===`__custom__`?w(!0):(w(!1),b(e.target.value))},disabled:o,children:[g.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:`__custom__`,children:r(`printers.discovery.customSubnetOption`)})]}):(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:v,onChange:e=>b(e.target.value),placeholder:`192.168.1.0/24`,disabled:o}),C&&(0,G.jsx)(`input`,{type:`text`,"aria-label":r(`printers.discovery.customSubnetLabel`),className:`mt-2 w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:x,onChange:e=>S(e.target.value),placeholder:`10.1.1.0/24`,disabled:o}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(m?`printers.discovery.dockerNote`:`printers.discovery.customSubnetNote`)})]}),(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:F,disabled:o,className:`w-full`,children:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(m||C)&&T.total>0?r(`printers.discovery.scanProgress`,{scanned:T.scanned,total:T.total}):r(`printers.discovery.scanning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ql,{className:`w-4 h-4`}),r(m||C?`printers.discovery.scanSubnet`:`printers.discovery.discoverNetwork`)]})}),u&&(0,G.jsx)(`div`,{className:`mt-2 text-sm text-red-700 dark:text-red-400`,children:u}),N.length>0&&(0,G.jsx)(`div`,{className:`mt-3 space-y-2 max-h-40 overflow-y-auto`,children:N.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-2 bg-bambu-dark rounded-lg hover:bg-bambu-dark-secondary cursor-pointer transition-colors`,onClick:()=>I(e),children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`font-medium text-white text-sm truncate`,children:e.name||e.serial}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[uW(e.model)||r(`printers.discovery.unknown`),` • `,e.ip_address,e.serial.startsWith(`unknown-`)&&(0,G.jsxs)(`span`,{className:`text-yellow-500`,children:[` • `,r(`printers.discovery.serialRequired`)]})]})]}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray -rotate-90 flex-shrink-0 ml-2`})]},e.serial))}),o&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.scanningSubnet`:`printers.discovery.scanningNetwork`)}),f&&!o&&c.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.noPrintersFoundSubnet`:`printers.discovery.noPrintersFoundNetwork`)}),f&&!o&&c.length>0&&N.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(`printers.discovery.allConfigured`)})]}),(0,G.jsxs)(`form`,{onSubmit:P,className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.name,onChange:e=>a({...i,name:e.target.value}),placeholder:r(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.ip_address,onChange:e=>a({...i,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.serial_number,onChange:e=>a({...i,serial_number:e.target.value}),placeholder:`01P00A000000000`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.access_code,onChange:e=>a({...i,access_code:e.target.value}),placeholder:r(`printers.modal.fromPrinterSettings`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.modelOptional`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.model||``,onChange:e=>a({...i,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:r(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.locationGroup`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.location||``,onChange:e=>a({...i,location:e.target.value}),placeholder:r(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`auto_archive`,checked:i.auto_archive,onChange:e=>a({...i,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`auto_archive`,className:`text-sm text-bambu-gray`,children:r(`printers.modal.autoArchiveLabel`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),disabled:!i.ip_address.trim(),className:`w-full flex items-center justify-center gap-2 px-3 py-2 text-sm text-bambu-gray hover:text-white disabled:opacity-40 disabled:cursor-not-allowed border border-bambu-dark-tertiary rounded-lg transition-colors`,children:[(0,G.jsx)(Su,{className:`w-4 h-4`}),r(`diagnostic.runButton`)]}),j?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-300`,children:r(`printers.addPreflight.warning`)})]}),(0,G.jsx)(Yp,{result:j}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>M(null),className:`flex-1`,children:r(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:()=>t(i),className:`flex-1`,children:r(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:k,className:`flex-1`,children:r(k?`printers.addPreflight.checking`:`printers.addPrinter`)})]})]})]})})}),D&&(0,G.jsx)(Xp,{connection:{ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0},printerName:i.name||null,onClose:()=>O(!1)})]})}function yAe({printer:e,firmwareInfo:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),{hasPermission:o}=Nd(),s=o(`firmware:update`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(t.update_available?t.latest_version:null),{data:g,isLoading:_}=K({queryKey:[`firmwarePrepare`,e.id,m],queryFn:()=>Ed.prepareUpload(e.id,m??void 0),staleTime:3e4,enabled:!!m&&s&&!u}),v=q({mutationFn:()=>Ed.startUpload(e.id,m??void 0),onSuccess:()=>{d(!0);let t=setInterval(async()=>{try{let n=await Ed.getUploadStatus(e.id);l(n),(n.status===`complete`||n.status===`error`)&&(clearInterval(t),p(null),d(!1),n.status===`complete`&&(a(r(`printers.firmwareModal.uploadedToast`),`success`),i.invalidateQueries({queryKey:[`firmwareUpdate`,e.id]})))}catch{}},2e3);p(t)},onError:e=>{a(r(`printers.firmwareModal.uploadFailed`,{error:e.message}),`error`),d(!1)}});return(0,y.useEffect)(()=>()=>{f&&clearInterval(f)},[f]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(zd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full ${t.update_available?`bg-orange-100 dark:bg-orange-500/20`:`bg-status-ok/20`}`,children:t.update_available?(0,G.jsx)(Xs,{className:`w-5 h-5 text-orange-600 dark:text-orange-400`}):(0,G.jsx)(xs,{className:`w-5 h-5 text-status-ok`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t.update_available?r(`printers.firmwareModal.title`):r(`printers.firmwareModal.titleUpToDate`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e.name})]})]}),(()=>{let e=m?t.available_versions?.find(e=>e.version===m):null,n=m??t.latest_version,i=e?.release_notes??t.release_notes,a=!!n&&n!==t.current_version;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.currentVersion`)}),(0,G.jsx)(`span`,{className:`font-mono ${a?`text-white`:`text-status-ok`}`,children:t.current_version||r(`common.unknown`)})]}),a&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm mt-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.latestVersion`)}),(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400 font-mono`,children:n})]}),i&&(0,G.jsxs)(`details`,{className:`mt-3 text-sm`,open:!a,children:[(0,G.jsx)(`summary`,{className:`cursor-pointer hover:underline ${a?`text-orange-700 dark:text-orange-400`:`text-status-ok`}`,children:r(`printers.firmwareModal.releaseNotes`)}),(0,G.jsx)(`div`,{className:`mt-2 text-bambu-gray text-xs max-h-40 overflow-y-auto whitespace-pre-wrap`,children:i})]},n??`none`)]})})(),t.available_versions&&t.available_versions.length>0&&!u&&c?.status!==`complete`&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mb-2`,children:r(`printers.firmwareModal.availableVersions`)}),(0,G.jsx)(`div`,{className:`max-h-56 overflow-y-auto border border-bambu-dark-tertiary rounded-lg divide-y divide-bambu-dark-tertiary`,children:t.available_versions.map(e=>{let n=t.current_version===e.version,i=m===e.version,a=t.current_version?_ee(e.version,t.current_version):0,o=r(n?`printers.firmwareModal.currentBadge`:a>0?`printers.firmwareModal.newerBadge`:`printers.firmwareModal.olderBadge`),c=n?`text-bambu-gray`:a>0?`text-orange-700 dark:text-orange-400`:`text-blue-700 dark:text-blue-400`;return(0,G.jsxs)(`button`,{type:`button`,disabled:!e.file_available||!s||n,onClick:()=>h(e.version),className:`w-full text-left px-3 py-2 text-sm flex items-center justify-between gap-2 transition-colors ${i?`bg-orange-50 dark:bg-orange-500/10`:`hover:bg-bambu-dark`} ${!e.file_available||!s||n?`opacity-60 cursor-not-allowed`:`cursor-pointer`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-mono text-white`,children:e.version}),(0,G.jsx)(`span`,{className:`text-xs ${c}`,children:o})]}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${n?`bg-blue-50 dark:bg-blue-500/15 text-blue-700 dark:text-blue-400 border border-blue-300 dark:border-blue-500/30`:e.file_available?`bg-bambu-green/15 text-bambu-green border border-bambu-green/30`:`bg-bambu-gray/10 text-bambu-gray border border-bambu-gray/30`}`,children:n?r(`printers.firmwareModal.installed`):e.file_available?r(`printers.firmwareModal.usable`):r(`printers.firmwareModal.unavailable`)})]},e.version)})})]}),m?_?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm mb-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`printers.firmwareModal.checkingPrereqs`)]}):g&&!u&&!c?(0,G.jsx)(`div`,{className:`mb-4`,children:g.can_proceed?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-green text-sm`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),r(`printers.firmwareModal.sdCardReady`)]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:g.errors.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 flex-shrink-0`}),e]},t))})}):null:null,(u||c)&&c&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray capitalize`,children:c.status}),(0,G.jsxs)(`span`,{className:`text-white`,children:[c.progress,`%`]})]}),(0,G.jsx)(`div`,{className:`w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`h-2 rounded-full transition-all ${c.status===`error`?`bg-status-error`:c.status===`complete`?`bg-status-ok`:`bg-orange-500`} ${c.status===`uploading`?`animate-pulse`:``}`,style:{width:`${c.progress}%`}})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:c.message}),c.error&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:c.error})]}),c?.status===`complete`&&(0,G.jsxs)(`div`,{className:`bg-bambu-green/10 border border-bambu-green/30 rounded-lg p-3 mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-green font-medium mb-2`,children:r(`printers.firmwareModal.uploadedSuccess`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`printers.firmwareModal.applyInstructions`)}),(0,G.jsxs)(`ol`,{className:`text-xs text-bambu-gray mt-1 list-decimal list-inside space-y-1`,children:[(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step1`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step2`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step3`)}}),(0,G.jsx)(`li`,{children:r(`printers.firmwareModal.step4`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,children:c?.status===`complete`?r(`printers.firmwareModal.done`):r(`common.cancel`)}),g?.can_proceed&&!u&&c?.status!==`complete`&&s&&(0,G.jsx)(Q,{onClick:()=>{l(null),v.mutate()},disabled:v.isPending,children:v.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}),r(`printers.firmwareModal.starting`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),r(`printers.firmwareModal.uploadFirmware`)]})})]})]})})})}function bAe({printer:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)({name:e.name,ip_address:e.ip_address,access_code:``,model:e.model||``,location:e.location||``,auto_archive:e.auto_archive,is_active:e.is_active}),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=q({mutationFn:t=>Z.updatePrinter(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`printers`]}),r.invalidateQueries({queryKey:[`printerStatus`,e.id]}),t()},onError:e=>i(e.message||n(`printers.toast.failedToUpdate`),`error`)});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let f=()=>{let e={name:a.name,ip_address:a.ip_address,model:a.model||void 0,location:a.location||void 0,auto_archive:a.auto_archive,is_active:a.is_active};a.access_code&&(e.access_code=a.access_code),d.mutate(e)};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:t,children:(0,G.jsx)(zd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:n(`printers.editPrinter`)}),(0,G.jsxs)(`form`,{onSubmit:async t=>{t.preventDefault(),c(!0);try{let t=await Z.diagnoseConnection({ip_address:a.ip_address.trim(),serial_number:e.serial_number,access_code:a.access_code||void 0});if(t.checks.some(e=>e.status===`fail`)){u(t);return}}catch{}finally{c(!1)}f()},className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.name,onChange:e=>o({...a,name:e.target.value}),placeholder:n(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.ip_address,onChange:e=>o({...a,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,disabled:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray cursor-not-allowed`,value:e.serial_number}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.serialCannotBeChanged`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.access_code,onChange:e=>o({...a,access_code:e.target.value}),placeholder:n(`printers.accessCodePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.model`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.model,onChange:e=>o({...a,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:n(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Location / Group`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.location,onChange:e=>o({...a,location:e.target.value}),placeholder:n(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`edit_auto_archive`,checked:a.auto_archive,onChange:e=>o({...a,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`edit_auto_archive`,className:`text-sm text-bambu-gray`,children:n(`printers.modal.autoArchiveLabel`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`edit_maintenance_mode`,checked:!a.is_active,onChange:e=>o({...a,is_active:!e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-amber-400 focus:ring-amber-400`}),(0,G.jsxs)(`label`,{htmlFor:`edit_maintenance_mode`,className:`text-sm text-bambu-gray flex items-center gap-1.5`,children:[(0,G.jsx)(td,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),n(`printers.maintenance.editFieldLabel`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1 ml-6`,children:n(`printers.maintenance.editFieldHelp`)})]}),l?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-300`,children:n(`printers.addPreflight.warning`)})]}),(0,G.jsx)(Yp,{result:l}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>u(null),className:`flex-1`,children:n(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:f,className:`flex-1`,disabled:d.isPending,children:n(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-4`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,className:`flex-1`,disabled:d.isPending||s,children:s?n(`printers.addPreflight.checking`):d.isPending?n(`common.saving`):n(`printers.modal.saveChanges`)})]})]})]})})})}function xAe(e){let{data:t}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:3e4});return!t?.connected}function SAe({printer:e,plug:t,onPowerOn:n,isPowering:r}){let i=xAe(e.id),{data:a}=K({queryKey:[`smartPlugStatus`,t.id],queryFn:()=>Z.getSmartPlugStatus(t.id),refetchInterval:1e4});return i?(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 hover:bg-gray-100 dark:hover:bg-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:e.name}),a&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded ${a.state===`ON`?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:a.state||`?`})]}),(0,G.jsxs)(`button`,{onClick:()=>n(t.id),disabled:r||a?.state===`ON`,className:`px-2 py-1 text-xs rounded transition-colors flex items-center gap-1 ${a?.state===`ON`?`bg-bambu-green/20 text-bambu-green cursor-default`:`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green hover:text-white`}`,children:[(0,G.jsx)(Ll,{className:`w-3 h-3`}),r?`...`:`On`]})]}):null}function CAe(){let{t:e}=U(),{resolvedMode:t,darkAccent:n,lightAccent:r}=Id(),i={green:`bg-green-500 text-white hover:bg-green-400 border-green-400/60`,teal:`bg-teal-500 text-white hover:bg-teal-400 border-teal-400/60`,blue:`bg-blue-500 text-white hover:bg-blue-400 border-blue-400/60`,orange:`bg-orange-500 text-white hover:bg-orange-400 border-orange-400/60`,purple:`bg-purple-500 text-white hover:bg-purple-400 border-purple-400/60`,red:`bg-red-500 text-white hover:bg-red-400 border-red-400/60`}[t===`dark`?n:r],[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(()=>localStorage.getItem(`hideDisconnectedPrinters`)===`true`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(()=>localStorage.getItem(`printerSortBy`)||`name`),[h,g]=(0,y.useState)(()=>localStorage.getItem(`printerSortAsc`)!==`false`),[_,v]=(0,y.useState)(()=>{let e=localStorage.getItem(`printerCardSize`);return e?parseInt(e,10):2}),[b,x]=(0,y.useState)(()=>localStorage.getItem(`printerPageView`)===`camwall`?`camwall`:`cards`),[S,C]=(0,y.useState)(()=>{let e=parseInt(localStorage.getItem(`camWallMaxLive`)||``,10);return Number.isFinite(e)&&e>0?e:4}),[w,T]=(0,y.useState)(()=>{let e=parseInt(localStorage.getItem(`camWallSnapshotSec`)||``,10);return Number.isFinite(e)&&e>0?e:8}),[E,D]=(0,y.useState)(()=>{let e=localStorage.getItem(`camWallStatusMode`);return e===`off`||e===`compact`||e===`full`?e:`full`}),O=_===1?`compact`:`expanded`,[k,A]=(0,y.useState)(null),j=(0,y.useCallback)(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let t=document.getElementById(`printer-card-${e}`);if(!t)return;let n=document.querySelector(`header`)?.getBoundingClientRect().height??56,r=t.getBoundingClientRect().top+window.scrollY-n-16;window.scrollTo({top:Math.max(0,r),behavior:`smooth`})})})},[]),M=(0,y.useCallback)(e=>{A(e),v(2),localStorage.setItem(`printerCardSize`,`2`),j(e)},[j]),N=(0,y.useCallback)(()=>{let e=k;A(null),v(1),localStorage.setItem(`printerCardSize`,`1`),e!=null&&j(e)},[k,j]),[P,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(()=>{let e=localStorage.getItem(`printerStatusFilter`);return Xke(e)?e:`all`}),[R,z]=(0,y.useState)(()=>localStorage.getItem(`printerLocationFilter`)||`all`),[B,V]=(0,y.useState)(0),[ee,te]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`printerCollapsedSections`);return e?JSON.parse(e):{}}catch{return{}}}),ne=co(),{showToast:re}=qd(),{hasPermission:ie}=Nd(),[ae,oe]=(0,y.useState)(()=>xee()),[se,H]=(0,y.useState)(()=>{let e=localStorage.getItem(`openEmbeddedCameras`);if(e)try{let t=JSON.parse(e);return new Map(t.map(e=>[e.id,e]))}catch{return new Map}return new Map});(0,y.useEffect)(()=>{let e=Array.from(se.values());e.length>0?localStorage.setItem(`openEmbeddedCameras`,JSON.stringify(e)):localStorage.removeItem(`openEmbeddedCameras`)},[se]);let{data:ce,isLoading:le}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:ue}=K({queryKey:[`ui-preferences`],queryFn:Z.getUiPreferences}),de=(0,y.useMemo)(()=>Am(ue?.nozzle_temp_presets,Em,0,320),[ue?.nozzle_temp_presets]),fe=(0,y.useMemo)(()=>Am(ue?.bed_temp_presets,Dm,0,140),[ue?.bed_temp_presets]),pe=(0,y.useMemo)(()=>Am(ue?.chamber_temp_presets,Om,0,65),[ue?.chamber_temp_presets]),me=(0,y.useMemo)(()=>Am(ue?.fan_speed_presets,km,0,100),[ue?.fan_speed_presets]),he=(0,y.useMemo)(()=>{if(ue?.drying_presets)try{let e=JSON.parse(ue.drying_presets);if(typeof e==`object`&&e&&Object.keys(e).length>0)return{...fW,...e}}catch{}return fW},[ue?.drying_presets]),ge=ae??(ue?.camera_view_mode===`embedded`?`embedded`:`window`),_e=(0,y.useCallback)(e=>{See(e),oe(e),ie(`settings:update`)&&Z.updateSettings({camera_view_mode:e}).then(()=>ne.invalidateQueries({queryKey:[`ui-preferences`]})).catch(e=>console.warn(`Could not save camera view mode as the default:`,e))},[ie,ne]),{data:ve}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:ye}=K({queryKey:[`maintenanceOverview`],queryFn:Z.getMaintenanceOverview,staleTime:60*1e3}),{data:be}=K({queryKey:[`obico-printer-status`],queryFn:Z.getObicoPrinterStatus,refetchInterval:1e4}),xe=(0,y.useCallback)(e=>be?.enabled===!0&&(be.monitored_printers===null||be.monitored_printers.includes(e)),[be]),{data:Se}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,staleTime:60*1e3}),Ce=Se?.enabled&&Se?.connected,{data:we}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,enabled:!!Ce,staleTime:60*1e3}),Te=we?.spoolman_sync_mode,{data:Ee}=K({queryKey:[`unlinked-spools`],queryFn:Z.getUnlinkedSpools,enabled:!!Ce,staleTime:30*1e3}),De=Ee&&Ee.length>0,{data:Oe}=K({queryKey:[`linked-spools`],queryFn:Z.getLinkedSpools,enabled:!!Ce,staleTime:30*1e3}),ke=Oe?.linked,{data:Ae}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:ie(`inventory:view_assignments`),staleTime:30*1e3}),je=q({mutationFn:({printerId:e,amsId:t,trayId:n})=>Z.unassignSpool(e,t,n),onSuccess:()=>{ne.invalidateQueries({queryKey:[`spool-assignments`]})}}),{data:Me,isLoading:Ne}=K({queryKey:[`spoolman-inventory-spools`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:!!Ce,staleTime:30*1e3}),{data:Pe,isLoading:Fe}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:!!Ce,staleTime:30*1e3}),Ie=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{ne.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),ne.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})}}),Le=(e,t,n)=>Ae?.find(r=>r.printer_id===e&&r.ams_id===Number(t)&&r.tray_id===Number(n)),Re=ye?.reduce((e,t)=>(e[t.printer_id]={due_count:t.due_count,warning_count:t.warning_count,total_print_hours:t.total_print_hours},e),{})||{},ze=ve?.reduce((e,t)=>(t.printer_id&&(e[t.printer_id]=t),e),{})||{},Be=q({mutationFn:Z.createPrinter,onSuccess:()=>{ne.invalidateQueries({queryKey:[`printers`]}),ne.invalidateQueries({queryKey:[`maintenanceOverview`]}),o(!1)},onError:t=>{if(t instanceof sd&&t.code===`printer_connection_failed`){re(e(`printers.toast.connectionFailedNotAdded`),`error`);return}re(t.message||e(`printers.toast.failedToAdd`),`error`)}}),Ve=q({mutationFn:e=>Z.controlSmartPlug(e,`on`),onSuccess:()=>{ne.invalidateQueries({queryKey:[`smart-plugs`]}),f(null)},onError:()=>{f(null)}}),[He,Ue]=(0,y.useState)(new Set),[We,Ge]=(0,y.useState)(!1),[Ke,qe]=(0,y.useState)(null),[Je,Ye]=(0,y.useState)(!1),Xe=We||He.size>0,Ze=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Qe=(0,y.useCallback)(()=>{Ue(new Set),Ge(!1)},[]);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Xe&&Qe()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Xe,Qe]);let $e=(0,y.useCallback)(async t=>{Ye(!0);let n=Array.from(He).filter(e=>{let n=ne.getQueryData([`printerStatus`,e]);if(t===`clearPlate`)return!!n?.awaiting_plate_clear;if(!n?.connected)return!1;switch(t){case`stop`:return n.state===`RUNNING`||n.state===`PAUSE`;case`pause`:return n.state===`RUNNING`;case`resume`:return n.state===`PAUSE`;case`clearHMS`:return n.hms_errors&&Fm(n.hms_errors).length>0;default:return!1}});if(n.length===0){re(e(`printers.bulk.noneApplicable`),`error`),Ye(!1),qe(null);return}let r={stop:Z.stopPrint,pause:Z.pausePrint,resume:Z.resumePrint,clearPlate:Z.clearPlate,clearHMS:Z.clearHMSErrors}[t],i=await Promise.allSettled(n.map(e=>r(e))),a=i.filter(e=>e.status===`fulfilled`).length,o=i.filter(e=>e.status===`rejected`).length;o===0?re(e(`printers.bulk.success`,{action:e(`printers.bulk.actions.${t}`),count:a})):re(e(`printers.bulk.partial`,{succeeded:a,failed:o}),`error`),n.forEach(e=>{ne.invalidateQueries({queryKey:[`printerStatus`,e]})}),Ye(!1),qe(null)},[He,ne,re,e]),et=(0,y.useCallback)(e=>{e===`stop`||e===`pause`||e===`clearPlate`?qe(e):$e(e)},[$e]),tt=()=>{let e=!s;c(e),localStorage.setItem(`hideDisconnectedPrinters`,String(e))},nt=e=>{m(e),localStorage.setItem(`printerSortBy`,e)},rt=e=>{L(e),localStorage.setItem(`printerStatusFilter`,e)},it=e=>{z(e),localStorage.setItem(`printerLocationFilter`,e)},at=()=>{let e=!h;g(e),localStorage.setItem(`printerSortAsc`,String(e))},ot=()=>{switch(_){case 1:return`grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5`;case 2:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`;case 3:return`grid-cols-1 lg:grid-cols-2`;case 4:return`grid-cols-1`;default:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`}},st=[`S`,`M`,`L`,`XL`];(0,y.useEffect)(()=>ne.getQueryCache().subscribe(e=>{e.type===`updated`&&Array.isArray(e.query.queryKey)&&e.query.queryKey[0]===`printerStatus`&&V(e=>e+1)}),[ne]);let ct=(0,y.useMemo)(()=>{if(!ce)return[];let e=ce;if(P.trim()){let t=P.trim().toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||(e.model||``).toLowerCase().includes(t)||(e.location||``).toLowerCase().includes(t)||(e.serial_number||``).toLowerCase().includes(t))}return R!==`all`&&(e=e.filter(e=>(e.location||``)===R)),I!==`all`&&(e=e.filter(e=>{let t=ne.getQueryData([`printerStatus`,e.id]);if(!t?.connected)return I===`offline`;let n=t.hms_errors?Fm(t.hms_errors):[];switch(I){case`printing`:return t.state===`RUNNING`;case`paused`:return t.state===`PAUSE`;case`finished`:return t.state===`FINISH`;case`error`:return t.state===`FAILED`||n.length>0;case`idle`:return t.state!==`RUNNING`&&t.state!==`PAUSE`&&t.state!==`FINISH`&&t.state!==`FAILED`&&n.length===0;case`offline`:return!1;default:return!0}})),e},[ce,P,I,R,ne,B]),lt=(0,y.useMemo)(()=>ce?[...new Set(ce.map(e=>e.location||``).filter(Boolean))].sort():[],[ce]);(0,y.useEffect)(()=>{!ce||R===`all`||lt.includes(R)||(z(`all`),localStorage.setItem(`printerLocationFilter`,`all`))},[ce,lt,R]);let ut=(0,y.useMemo)(()=>{let e=[...ct];switch(p){case`name`:e.sort((e,t)=>e.name.localeCompare(t.name));break;case`model`:e.sort((e,t)=>(e.model||``).localeCompare(t.model||``));break;case`location`:e.sort((e,t)=>{let n=e.location||``,r=t.location||``;return!n&&r?1:n&&!r?-1:n.localeCompare(r)||e.name.localeCompare(t.name)});break;case`status`:e.sort((e,t)=>{let n=ne.getQueryData([`printerStatus`,e.id]),r=ne.getQueryData([`printerStatus`,t.id]),i=e=>e?.connected?(e.hms_errors?Fm(e.hms_errors):[]).length>0?0:e.state===`RUNNING`?1:2:3;return i(n)-i(r)});break;case`eta`:e.sort((e,t)=>{let n=ne.getQueryData([`printerStatus`,e.id]),r=ne.getQueryData([`printerStatus`,t.id]),i=e=>e?.connected?e.state===`RUNNING`&&e.remaining_time!=null&&e.remaining_time>0?0:e.state===`RUNNING`?1:2:3,a=i(n),o=i(r);if(a!==o)return a-o;if(a===0){let e=(n.remaining_time??0)-(r.remaining_time??0);if(e!==0)return e}return e.name.localeCompare(t.name)});break}return h||e.reverse(),e},[ct,p,h,ne]),dt=(0,y.useCallback)(()=>{Ue(new Set(ut.map(e=>e.id))),Ge(!0)},[ut]),ft=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.forEach(t=>{lW(ne.getQueryData([`printerStatus`,t.id]))===e&&n.add(t.id)}),n}),Ge(!0)},[ut,ne]),pt=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.filter(t=>(t.location||``)===e).forEach(e=>n.add(e.id)),n}),Ge(!0)},[ut]),mt=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.filter(t=>(t.model||`Unknown`)===e).forEach(e=>n.add(e.id)),n}),Ge(!0)},[ut]),ht=(0,y.useCallback)(e=>{te(t=>{let n={...t,[e]:!t[e]};try{localStorage.setItem(`printerCollapsedSections`,JSON.stringify(n))}catch{}return n})},[]),gt=(0,y.useMemo)(()=>{if(p===`name`||p===`eta`)return null;let e={};return p===`location`?ut.forEach(t=>{let n=t.location||`Ungrouped`;e[n]||(e[n]=[]),e[n].push(t)}):p===`model`?ut.forEach(t=>{let n=t.model||`Unknown`;e[n]||(e[n]=[]),e[n].push(t)}):p===`status`&&ut.forEach(t=>{let n=lW(ne.getQueryData([`printerStatus`,t.id]));e[n]||(e[n]=[]),e[n].push(t)}),e},[p,ut,ne,B]),_t=(0,y.useRef)(null),vt=(0,y.useRef)(null),yt=(0,y.useRef)(0),[bt,xt]=(0,y.useState)(!1),St=(0,y.useCallback)(()=>{let e=_t.current;if(!e)return;let t=vt.current?.offsetWidth;t&&(yt.current=t);let n=yt.current>0&&e.clientWidthe===n?e:n)},[]),Ct=Object.keys(ze).length;(0,y.useLayoutEffect)(()=>{St();let e=_t.current;if(!e)return;if(typeof ResizeObserver>`u`)return window.addEventListener(`resize`,St),()=>window.removeEventListener(`resize`,St);let t=new ResizeObserver(()=>St());return t.observe(e),window.addEventListener(`resize`,St),()=>{t.disconnect(),window.removeEventListener(`resize`,St)}},[St,ce?.length,lt.length,s,Ct]);let wt=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[ce&&ce.length>0&&(0,G.jsx)(iW,{value:I,onChange:rt,fullWidth:t,options:GU.map(t=>({value:t.value,label:e(t.labelKey)}))}),ce&&ce.length>0&<.length>0&&(0,G.jsx)(iW,{value:R,onChange:it,fullWidth:t,options:[{value:`all`,label:e(`printers.filter.allLocations`)},...lt.map(e=>({value:e,label:e}))]}),(0,G.jsx)(`button`,{type:`button`,onClick:tt,"aria-pressed":s,className:`h-8 px-2 rounded-lg border text-sm font-medium transition-colors ${t?`w-full`:``} ${s?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:e(`printers.hideOffline`)})]}),Tt=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 ${t?`w-full`:``}`,children:[(0,G.jsx)(iW,{value:p,onChange:nt,fullWidth:t,options:[{value:`name`,label:e(`printers.sort.name`)},{value:`status`,label:e(`printers.sort.status`)},{value:`model`,label:e(`printers.sort.model`)},{value:`location`,label:e(`printers.sort.location`)},{value:`eta`,label:e(`printers.sort.eta`)}]}),(0,G.jsx)(`button`,{onClick:at,className:`h-8 shrink-0 px-2 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center justify-center`,title:e(h?`printers.sort.descending`:`printers.sort.ascending`),children:h?(0,G.jsx)(Ho,{className:`w-4 h-4 text-white`}):(0,G.jsx)(Io,{className:`w-4 h-4 text-white`})})]}),(0,G.jsxs)(`div`,{className:`flex h-8 items-center bg-bambu-dark rounded-lg border border-bambu-dark-tertiary ${t?`w-full`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(`cards`),localStorage.setItem(`printerPageView`,`cards`)},className:`flex h-full items-center gap-1 rounded-l-lg px-2 text-xs font-medium transition-colors ${t?`flex-1 justify-center`:``} ${b===`cards`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.pageView.cards`),"aria-pressed":b===`cards`,children:[(0,G.jsx)(Yc,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.cards`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(`camwall`),localStorage.setItem(`printerPageView`,`camwall`)},className:`flex h-full items-center gap-1 rounded-r-lg px-2 text-xs font-medium transition-colors ${t?`flex-1 justify-center`:``} ${b===`camwall`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.pageView.camWall`),"aria-pressed":b===`camwall`,disabled:!ie(`camera:view`),children:[(0,G.jsx)(hl,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.camWall`)})]})]}),b===`camwall`&&ie(`camera:view`)&&(0,G.jsxs)(Ai,{to:`/camwall`,className:`flex h-8 items-center gap-1 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary ${t?`w-full justify-center`:``}`,title:e(`printers.pageView.openCamWallPage`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.openCamWallPage`)})]}),(0,G.jsx)(`div`,{className:`flex h-8 items-center bg-bambu-dark rounded-lg border border-bambu-dark-tertiary ${b===`camwall`?`opacity-40 pointer-events-none`:``} ${t?`w-full`:``}`,children:st.map((n,r)=>{let i=r+1,a=_===i;return(0,G.jsx)(`button`,{onClick:()=>{A(null),v(i),localStorage.setItem(`printerCardSize`,String(i))},className:`h-full px-2 text-xs font-medium transition-colors ${t?`flex-1`:``} ${r===0?`rounded-l-lg`:``} ${r===st.length-1?`rounded-r-lg`:``} ${a?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(n===`S`?`printers.cardSize.small`:n===`M`?`printers.cardSize.medium`:n===`L`?`printers.cardSize.large`:`printers.cardSize.extraLarge`),children:n},n)})})]}),Et=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:()=>{Xe?Qe():Ge(!0)},className:`h-8 px-2 rounded-lg border transition-colors ${t?`w-full justify-center gap-1.5 text-sm font-medium flex items-center`:``} ${Xe?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.bulk.select`),disabled:!ie(`printers:control`),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),t&&(0,G.jsx)(`span`,{children:e(`printers.bulk.select`)})]}),s&&Object.keys(ze).length>0&&(0,G.jsxs)(`div`,{className:`relative ${t?`w-full`:``}`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(!l),className:`h-8 flex items-center gap-1.5 px-2 text-sm rounded-lg border transition-colors ${t?`w-full justify-between bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary hover:text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Ll,{className:`w-4 h-4`}),e(`printers.powerOn`)]}),(0,G.jsx)(ps,{className:`w-3 h-3 transition-transform ${l?`rotate-180`:``}`})]}),l&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>u(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 mt-2 w-56 bg-white dark:bg-bambu-dark-secondary border border-gray-200 dark:border-bambu-dark-tertiary rounded-lg shadow-lg z-20 py-1`,children:[(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-gray-500 dark:text-bambu-gray border-b border-gray-200 dark:border-bambu-dark-tertiary`,children:e(`printers.offlinePrintersWithPlugs`)}),ce?.filter(e=>ze[e.id]).map(e=>(0,G.jsx)(SAe,{printer:e,plug:ze[e.id],onPowerOn:e=>{f(e),Ve.mutate(e)},isPowering:d===ze[e.id]?.id},e.id)),ce?.filter(e=>ze[e.id]).length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:`No printers with smart plugs`})]})]})]}),(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!ie(`printers:create`),title:ie(`printers:create`)?void 0:e(`printers.permission.noAdd`),className:`!h-8 !min-h-8 px-2 py-0 ${t?`w-full`:``}`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]});return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Rl,{className:`w-7 h-7 text-bambu-green`}),e(`printers.title`)]}),(0,G.jsx)(uAe,{printers:ce})]}),(0,G.jsxs)(`div`,{ref:_t,className:`relative flex items-center gap-2`,children:[ce&&ce.length>0&&(0,G.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50`}),(0,G.jsx)(`input`,{type:`search`,name:`printer-search`,autoComplete:`off`,"data-1p-ignore":!0,"data-lpignore":`true`,value:P,onChange:e=>F(e.target.value),placeholder:e(`printers.search`),"aria-label":e(`printers.search`),className:`w-full h-8 pl-9 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),P&&(0,G.jsx)(`button`,{type:`button`,"aria-label":e(`common.clear`),onClick:()=>F(``),className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{ref:vt,"aria-hidden":bt,inert:bt,className:`${bt?`absolute -left-[9999px] top-0 flex w-max pointer-events-none opacity-0`:`flex`} ml-auto items-center justify-end gap-2 flex-nowrap [&>*]:shrink-0`,children:[(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:wt()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Tt()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Et()})]}),bt&&(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-1`,children:[(0,G.jsx)(aW,{label:e(`printers.toolbar.filters`,`Filters`),icon:(0,G.jsx)(wc,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:wt(!0)})}),(0,G.jsx)(aW,{label:e(`printers.toolbar.view`,`View`),icon:(0,G.jsx)(fu,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Tt(!0)})}),(0,G.jsx)(aW,{label:e(`printers.toolbar.actions`,`Actions`),icon:(0,G.jsx)(ec,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Et(!0)})})]})]})]}),le?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`common.loading`)}):ce?.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`printers.noPrintersConfigured`)}),(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!ie(`printers:create`),title:ie(`printers:create`)?void 0:e(`printers.permission.noAdd`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]})}):ut.length===0&&(P.trim()||I!==`all`||R!==`all`)?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`text-center py-12`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`printers.noSearchResults`)})})}):b===`camwall`?(0,G.jsx)(OT,{printers:ut,maxLive:S,snapshotIntervalSec:w,onTileClick:(e,t)=>{ge===`embedded`?H(n=>new Map(n).set(e,{id:e,name:t})):vm(e)},statusMode:E,onChangeMaxLive:e=>{C(e),localStorage.setItem(`camWallMaxLive`,String(e))},onChangeSnapshotIntervalSec:e=>{T(e),localStorage.setItem(`camWallSnapshotSec`,String(e))},onChangeStatusMode:e=>{D(e),localStorage.setItem(`camWallStatusMode`,e)}}):gt?(0,G.jsx)(`div`,{className:`space-y-6`,children:(()=>{let e=p===`status`?fAe.filter(e=>gt[e]?.length>0):Object.keys(gt);return h?e:[...e].reverse()})().map(t=>{let n=gt[t],r=`${p}:${t}`,i=!ee[r],a=p===`status`&&cW[t]?.dot||`bg-bambu-green`,o=p===`status`?e(cW[t]?.labelKey||t):t;return(0,G.jsx)($p,{open:i,onToggle:()=>ht(r),summaryClassName:`py-1`,summary:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${a}`}),o,(0,G.jsxs)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:[`(`,n.length,`)`]}),Xe&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),p===`location`?pt(t===`Ungrouped`?``:t):p===`status`?ft(t):p===`model`&&mt(t)},className:`text-xs text-bambu-green hover:text-bambu-green-light transition-colors ml-1`,children:e(`printers.bulk.selectAll`)})]}),children:(0,G.jsx)(`div`,{className:`grid gap-4 ${_>=3?`gap-6`:``} ${ot()}`,children:n.map(e=>(0,G.jsx)(mW,{printer:e,hideIfDisconnected:s,maintenanceInfo:Re[e.id],viewMode:O,cardSize:_,amsThresholds:ue?{humidityGood:Number(ue.ams_humidity_good)||40,humidityFair:Number(ue.ams_humidity_fair)||60,tempGood:Number(ue.ams_temp_good)||28,tempFair:Number(ue.ams_temp_fair)||35}:void 0,spoolmanEnabled:Ce,hasUnlinkedSpools:De,linkedSpools:ke,spoolmanUrl:Se?.url,spoolmanSyncMode:Te,onGetAssignment:Le,onUnassignSpool:(e,t,n)=>je.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:Me,spoolmanSlotAssignments:Pe,spoolmanLoading:Ne||Fe,onUnassignSpoolmanSpool:e=>Ie.mutate(e),timeFormat:ue?.time_format||`system`,cameraViewMode:ge,onOpenEmbeddedCamera:(e,t)=>H(n=>new Map(n).set(e,{id:e,name:t})),onSelectCameraViewMode:_e,checkPrinterFirmware:ue?.check_printer_firmware!==!1,dryingPresets:he,nozzleTempPresets:de,bedTempPresets:fe,chamberTempPresets:pe,fanSpeedPresets:me,requirePlateClear:ue?.require_plate_clear===!0,selectionMode:Xe,isSelected:He.has(e.id),onToggleSelect:Ze,onOpenCompactCard:M,aiDetectionEnabled:xe(e.id),aiDetection:be?.enabled?be.per_printer[String(e.id)]:void 0,aiLastError:be?.last_error??null},e.id))})},t)})}):(0,G.jsx)(`div`,{className:`grid gap-4 ${_>=3?`gap-6`:``} ${ot()}`,children:ut.map(e=>(0,G.jsx)(mW,{printer:e,hideIfDisconnected:s,maintenanceInfo:Re[e.id],viewMode:O,cardSize:_,spoolmanEnabled:Ce,hasUnlinkedSpools:De,linkedSpools:ke,spoolmanUrl:Se?.url,spoolmanSyncMode:Te,onGetAssignment:Le,onUnassignSpool:(e,t,n)=>je.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:Me,spoolmanSlotAssignments:Pe,spoolmanLoading:Ne||Fe,onUnassignSpoolmanSpool:e=>Ie.mutate(e),amsThresholds:ue?{humidityGood:Number(ue.ams_humidity_good)||40,humidityFair:Number(ue.ams_humidity_fair)||60,tempGood:Number(ue.ams_temp_good)||28,tempFair:Number(ue.ams_temp_fair)||35}:void 0,timeFormat:ue?.time_format||`system`,cameraViewMode:ge,onOpenEmbeddedCamera:(e,t)=>H(n=>new Map(n).set(e,{id:e,name:t})),onSelectCameraViewMode:_e,checkPrinterFirmware:ue?.check_printer_firmware!==!1,dryingPresets:he,nozzleTempPresets:de,bedTempPresets:fe,chamberTempPresets:pe,fanSpeedPresets:me,requirePlateClear:ue?.require_plate_clear===!0,selectionMode:Xe,isSelected:He.has(e.id),onToggleSelect:Ze,onOpenCompactCard:M,aiDetectionEnabled:xe(e.id),aiDetection:be?.enabled?be.per_printer[String(e.id)]:void 0,aiLastError:be?.last_error??null},e.id))}),_===2&&k!=null&&(0,G.jsxs)(`button`,{type:`button`,onClick:N,className:`fixed bottom-5 left-1/2 z-40 inline-flex -translate-x-1/2 items-center gap-2 rounded-full border px-4 py-2 text-sm font-medium shadow-xl transition-colors ${i}`,title:e(`common.back`,`Back`),children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),e(`common.back`,`Back`)]}),a&&(0,G.jsx)(vAe,{onClose:()=>o(!1),onAdd:e=>Be.mutate(e),existingSerials:ce?.map(e=>e.serial_number)||[]}),Xe&&ce&&(0,G.jsx)(Fee,{selectedIds:He,printers:ce,onClose:Qe,onSelectAll:dt,onSelectByLocation:pt,onSelectByState:ft,onAction:et,actionPending:Je}),Ke===`stop`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.stopTitle`,{count:He.size}),message:e(`printers.bulk.confirm.stopMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.stopButton`),variant:`danger`,isLoading:Je,onConfirm:()=>$e(`stop`),onCancel:()=>qe(null)}),Ke===`pause`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.pauseTitle`,{count:He.size}),message:e(`printers.bulk.confirm.pauseMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.pauseButton`),isLoading:Je,onConfirm:()=>$e(`pause`),onCancel:()=>qe(null)}),Ke===`clearPlate`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.clearPlateTitle`,{count:He.size}),message:e(`printers.bulk.confirm.clearPlateMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.clearPlateButton`),isLoading:Je,onConfirm:()=>$e(`clearPlate`),onCancel:()=>qe(null)}),Array.from(se.values()).map((e,t)=>(0,G.jsx)(qse,{printerId:e.id,printerName:e.name,viewerIndex:t,onClose:()=>H(t=>{let n=new Map(t);return n.delete(e.id),n})},e.id))]})}function wAe({title:e,message:t,subtitle:n,closeText:r,variant:i=`error`,onClose:a}){let{t:o}=U(),s=r??o(`common.close`);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-[120]`,onClick:a,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-dark ${i===`warning`?`text-yellow-600 dark:text-yellow-400`:`text-red-600 dark:text-red-400`}`,children:(0,G.jsx)(Lu,{className:`w-6 h-6`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-1`,children:e}),n&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2 truncate`,children:n}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm whitespace-pre-line break-words`,children:t})]})]}),(0,G.jsx)(`div`,{className:`flex mt-6`,children:(0,G.jsx)(Q,{onClick:a,className:`flex-1`,children:s})})]})})})}var hW=(0,y.createContext)(null),TAe=1500,EAe=1e3,gW=e=>`slice-job-${e}`;function _W(e){try{return decodeURIComponent(e)}catch{return e}}function DAe(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}function OAe({children:e}){let{t}=U(),{showToast:n,showPersistentToast:r,dismissToast:i}=qd(),a=co(),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(null),u=(0,y.useRef)([]);u.current=o;let d=(0,y.useRef)(new Map),f=(0,y.useRef)(new Map),p=(0,y.useRef)(new Map),m=(0,y.useRef)(new Set),h=(0,y.useCallback)(e=>{let n=d.current.get(e.id);if(n==null)return;let i=(Date.now()-n)/1e3,a=f.current.get(e.id)??`pending`,o=DAe(i),s=p.current.get(e.id)??null,c=s&&s.stage&&s.total_percent>0;if(a===`running`&&c){let n=_W(e.sourceName),i=s.stage,a=Math.min(100,Math.max(0,Math.round(s.total_percent))),c=typeof s.multi_plate_index==`number`&&typeof s.multi_plate_count==`number`&&s.multi_plate_count>1?t(`slice.runningWithProgressMultiPlate`,`Plate {{plateIndex}} of {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{plateIndex:s.multi_plate_index,plateCount:s.multi_plate_count,name:n,stage:i,percent:a,elapsed:o}):t(`slice.runningWithProgress`,`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:n,stage:i,percent:a,elapsed:o});r(gW(e.id),c,`loading`);return}let l=a===`pending`?`slice.queuedToast`:`slice.runningToast`,u=a===`pending`?`Queued: {{name}} — {{elapsed}}`:`Slicing {{name}} — {{elapsed}}`;r(gW(e.id),t(l,u,{name:_W(e.sourceName),elapsed:o}),`loading`)},[r,t]),g=(0,y.useCallback)((e,t,n)=>{s(r=>r.some(t=>t.id===e)?r:[...r,{id:e,kind:t,sourceName:n}]),m.current.delete(e),d.current.set(e,Date.now()),f.current.set(e,`pending`),p.current.set(e,null),h({id:e,kind:t,sourceName:n})},[h]),_=(0,y.useCallback)((e,r)=>{m.current.has(e.id)||(m.current.add(e.id),s(t=>t.filter(t=>t.id!==e.id)),d.current.delete(e.id),f.current.delete(e.id),p.current.delete(e.id),i(gW(e.id)),r.status===`completed`?(n(t(`slice.completedToast`,`Sliced {{name}}`,{name:_W(e.sourceName)}),`success`),r.result&&`external_write_fallback`in r.result&&r.result.external_write_fallback&&n(t(`slice.externalWriteFallbackToast`,`Saved to the internal library: the external folder could not be written to`),`warning`)):r.status===`failed`&&l({name:_W(e.sourceName),detail:r.error_detail||t(`slice.failed`)}),a.invalidateQueries({queryKey:[`library-files`]}),a.invalidateQueries({queryKey:[`archives`]}))},[i,a,n,t]);return(0,y.useEffect)(()=>{if(o.length===0)return;let e=!1,t=!1,n=setInterval(async()=>{if(!(e||t)){t=!0;try{let t=[...u.current];for(let n of t)try{let t=await Z.getSliceJob(n.id);if(e)return;f.current.set(n.id,t.status),t.progress&&p.current.set(n.id,t.progress),(t.status===`completed`||t.status===`failed`)&&_(n,t)}catch{}}finally{t=!1}}},TAe);return()=>{e=!0,clearInterval(n)}},[o.length,_]),(0,y.useEffect)(()=>{if(o.length===0)return;let e=setInterval(()=>{for(let e of u.current)h(e)},EAe);return()=>clearInterval(e)},[o.length,h]),(0,G.jsxs)(hW.Provider,{value:{trackJob:g,activeJobs:o},children:[e,c&&(0,G.jsx)(wAe,{title:t(`slice.failedTitle`),subtitle:c.name,message:c.detail,onClose:()=>l(null)})]})}function vW(){let e=(0,y.useContext)(hW);if(!e)throw Error(`useSliceJobTracker must be used inside SliceJobTrackerProvider`);return e}var yW=1024;function kAe(){let[e,t]=(0,y.useState)(()=>typeof window<`u`?window.innerWidth>=yW:!1);return(0,y.useEffect)(()=>{let e=window.matchMedia(`(min-width: ${yW}px)`),n=e=>{t(e.matches)};return t(e.matches),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function bW({plates:e,onSelect:t,onClose:n}){let{t:r}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`w-full max-w-3xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:r(`archives.platePicker.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`archives.platePicker.hint`)})]}),(0,G.jsx)(`button`,{onClick:n,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>t(e.index),className:`flex items-center gap-2 p-2 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray transition-colors text-left`,children:[e.has_thumbnail&&e.thumbnail_url!=null?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-12 h-12 rounded object-cover bg-bambu-dark-tertiary flex-shrink-0`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center flex-shrink-0`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name?`${r(`archives.platePicker.plateLabel`,{index:e.index})} — ${e.name}`:r(`archives.platePicker.plateLabel`,{index:e.index})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`…`:``):e.object_count!=null&&e.object_count>0?r(`archives.platePicker.objectCount`,{count:e.object_count}):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${lp(e.print_time_seconds)}`]})]})]},e.index))})})]})})}var xW=e=>typeof e==`object`&&!!e&&`enumKey`in e,SW=`enum:`;function CW(e){if(typeof e==`number`)return e;if(typeof e==`boolean`)return+!!e;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function wW(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(e===`1`||e===`true`)return!0;if(e===`0`||e===`false`)return!1}function AAe(e,t){return{get:n=>{let r=e[n];if((r===void 0||r===``)&&(r=t[n]?.default),Array.isArray(r)&&(r=r[0]),typeof r==`boolean`||typeof r==`number`||typeof r==`string`)return r},has:e=>e in t}}var jAe=[`->`,`||`,`&&`,`==`,`!=`,`<=`,`>=`,`(`,`)`,`,`,`<`,`>`,`!`];function MAe(e){let t=[],n=0;for(;ne.startsWith(t,n));if(a){t.push({kind:`op`,value:a}),n+=a.length;continue}let o=/^[A-Za-z_][A-Za-z0-9_]*(::[A-Za-z_][A-Za-z0-9_]*)*/.exec(e.slice(n));if(o){t.push({kind:`id`,value:o[0]}),n+=o[0].length;continue}return}return t}var NAe=new Set([`opt_bool`,`opt_int`,`opt_float`,`opt_float_nullable`,`opt_int_nullable`,`opt_bool_nullable`,`opt_enum`,`opt_string`,`option`,`has`]),PAe=class e{tokens=[];pos=0;cfg;locals;schema;resolving;memo;constructor(e,t,n,r,i){this.cfg=e,this.locals=t,this.schema=n,this.resolving=r,this.memo=i}evaluate(e){let t=MAe(e);if(!t||t.length===0)return;this.tokens=t,this.pos=0;let n=this.parseOr();if(this.pos===this.tokens.length)return n}peek(){return this.tokens[this.pos]}eatOp(e){let t=this.peek();return t&&t.kind===`op`&&t.value===e?(this.pos+=1,!0):!1}parseOr(){let e=this.parseAnd();for(;this.eatOp(`||`);){let t=this.parseAnd(),n=wW(e),r=wW(t);e=n===!0||r===!0?!0:n===void 0||r===void 0?void 0:n||r}return e}parseAnd(){let e=this.parseComparison();for(;this.eatOp(`&&`);){let t=this.parseComparison(),n=wW(e),r=wW(t);e=n===!1||r===!1?!1:n===void 0||r===void 0?void 0:n&&r}return e}parseComparison(){let e=this.parseUnary();for(let t of[`==`,`!=`,`<=`,`>=`,`<`,`>`])if(this.eatOp(t))return FAe(e,this.parseUnary(),t,this.schema);return e}parseUnary(){if(this.eatOp(`!`)){let e=wW(this.parseUnary());return e===void 0?void 0:!e}return this.parsePrimary()}parsePrimary(){let e=this.peek();if(!e)return;if(e.kind===`num`||e.kind===`str`)return this.pos+=1,e.value;if(e.kind===`op`&&e.value===`(`){this.pos+=1;let e=this.parseOr();return this.eatOp(`)`)?e:void 0}if(e.kind!==`id`)return;if(this.pos+=1,e.value===`true`)return!0;if(e.value===`false`)return!1;if(e.value===`config`)return this.parseConfigAccess();let t=this.locals[e.value];return t===void 0?`${SW}${e.value}`:this.resolveLocal(e.value,t)}parseConfigAccess(){if(!this.eatOp(`->`))return;let e=this.peek();if(!e||e.kind!==`id`||!NAe.has(e.value))return;if(this.pos+=1,this.eatOp(`<`)){let e=1;for(;e>0;){let t=this.peek();if(!t)return;this.pos+=1,t.kind===`op`&&t.value===`<`&&(e+=1),t.kind===`op`&&t.value===`>`&&--e}}if(!this.eatOp(`(`))return;let t=this.peek();if(!t||t.kind!==`str`)return;this.pos+=1;let n=t.value;for(;this.eatOp(`,`);){let e=0;for(;;){let t=this.peek();if(!t)return;if(t.kind===`op`&&t.value===`(`&&(e+=1),t.kind===`op`&&t.value===`)`){if(e===0)break;--e}if(t.kind===`op`&&t.value===`,`&&e===0)break;this.pos+=1}}if(!this.eatOp(`)`))return;if(this.eatOp(`->`)){let e=this.peek();if(!e||e.kind!==`id`)return;this.pos+=1}if(e.value===`has`)return this.cfg.has(n);let r=this.cfg.get(n);return this.schema[n]?.enum_values?{enumKey:n,value:typeof r==`string`?r:void 0}:r}resolveLocal(t,n){let r=this.memo.get(t);if(r!==void 0||this.memo.has(t))return r;if(this.resolving.has(t))return;this.resolving.add(t);let i=new e(this.cfg,this.locals,this.schema,this.resolving,this.memo).evaluate(n);return this.resolving.delete(t),this.memo.set(t,i),i}};function FAe(e,t,n,r){let i=typeof e==`string`&&e.startsWith(SW)?e:typeof t==`string`&&t.startsWith(SW)?t:void 0;if(i!==void 0){if(n!==`==`&&n!==`!=`)return;let a=i===e?t:e;if(!xW(a))return;let o=r[a.enumKey]?.enum_values;if(!o||a.value===void 0)return;let s=IAe(i.slice(5)).filter(e=>o.includes(e));if(s.length!==1)return;let c=s[0]===a.value;return n===`==`?c:!c}let a=xW(e)?e.value:e,o=xW(t)?t.value:t;if(n===`==`||n===`!=`){if(a===void 0||o===void 0)return;let e=typeof a==`string`||typeof o==`string`?String(a)===String(o):CW(a)===CW(o);return n===`==`?e:!e}let s=CW(a),c=CW(o);if(!(s===void 0||c===void 0)){if(n===`<`)return s`)return s>c;if(n===`>=`)return s>=c}}function IAe(e){let t=e.includes(`::`)?e.slice(e.lastIndexOf(`::`)+2):e,n=[t,/^[a-z]+([A-Z].*)$/.exec(t)?.[1]].filter(e=>!!e),r=new Set;for(let e of n){let t=e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).toLowerCase();r.add(t),r.add(t.replace(/_/g,` `)),r.add(t.replace(/_/g,``))}return[...r]}function LAe(e,t,n){let r=AAe(e,t),i=new Map,a=new Set;for(let e of n.rules){let o=RAe(e.enable_if);if(o&&wW(new PAe(r,n.locals,t,new Set,i).evaluate(o))===!1)for(let t of e.fields)a.add(t)}return a}function RAe(e){let t=0;for(let n=0;nzAe.has(e.type);function TW(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function VAe(e){let t=e.sidetext;if(!(!t||t.includes(`->`)||t.includes(`::`)))return t}function EW(e,t){let n=t===void 0?e.default:t;return n===void 0?``:Array.isArray(n)?n.map(String).join(`, `):typeof n==`boolean`?n?`1`:`0`:String(n)}function DW(e,t){if(BAe(e))return(Array.isArray(t)?t.map(String):String(t).split(`,`)).map(e=>e.trim()).filter(e=>e!==``);if(e.type===`coBool`)return typeof t==`boolean`?t?`1`:`0`:t===`1`||t===`true`||t===1?`1`:`0`;let n=String(t).trim();return e.type===`coPercent`?n.endsWith(`%`)?n:`${n}%`:n}function HAe(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=t[r];e&&(n[r]=DW(e,i))}return n}function OW(e,t,n){if(t===void 0||t===``)return!1;let r=t=>{let n=DW(e,Array.isArray(t)?t.map(String).join(`, `):t);return Array.isArray(n)?n.join(`, `):n},i=r(t),a=n===void 0?e.default:n;return a===void 0?i!==``:i!==r(a)}var UAe=new Set([`support_filament`,`support_interface_filament`,`outer_wall_filament_id`,`inner_wall_filament_id`,`top_surface_filament_id`,`bottom_surface_filament_id`,`internal_solid_filament_id`,`sparse_infill_filament_id`]),WAe=[`simple`,`advanced`,`expert`],kW={simple:0,advanced:1,expert:2,develop:3};function GAe({values:e,onChange:t,disabled:n=!1,sourceOverrides:r=[],sourceSelected:i,onToggleSource:a,filamentChoices:o,presetValues:s,presetValuesResolved:c=!0,presetValuesReason:l}){let{t:u}=U(),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(`simple`),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(``);(0,y.useEffect)(()=>{let e=!1;return Promise.all([Pt(()=>import(`./process-schema-CzfeynAH.js`),[]),Pt(()=>import(`./process-ui-tree-BWrKRLV6.js`),[]),Pt(()=>import(`./process-toggle-rules-DDBax3G5.js`),[])]).then(([t,n,r])=>{e||f({schema:t.default??t,tree:n.default??n,toggles:r.default??r})}),()=>{e=!0}},[]);let b=(0,y.useMemo)(()=>{let t={...s??{}};for(let e of r)i?.has(e.key)&&(t[e.key]=e.value);for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&(t[n]=r);return t},[s,r,i,e]),x=(0,y.useMemo)(()=>d?LAe(b,d.schema,d.toggles):new Set,[d,b]),S=(0,y.useMemo)(()=>new Map(r.map(e=>[e.key,e])),[r]),C=(0,y.useMemo)(()=>r.filter(e=>!e.printer_coupled&&!e.preset_defining),[r]),w=(0,y.useMemo)(()=>r.filter(e=>i?.has(e.key)).length,[r,i]),T=(0,y.useMemo)(()=>d?r.filter(e=>!d.schema[e.key]):[],[d,r]),E=e=>{if(!d)return;let n={};for(let[t,r]of Object.entries(e))d.schema[t]&&OW(d.schema[t],r,s?.[t])&&(n[t]=r);t(e,HAe(n,d.schema))},D=(t,n)=>{let r={...e};n===void 0?delete r[t]:r[t]=n,E(r)},O=(0,y.useMemo)(()=>{if(!d)return[];let e=e=>e.toLowerCase().replace(/[_\s]+/g,` `).trim(),t=e(_),n=e=>kW[d.schema[e]?.mode??`expert`]<=kW[p],r=(n,r,i)=>{if(!t)return!0;let a=d.schema[n];return[n,a?.label??``,a?.tooltip??``,r,i].some(n=>e(n).includes(t))};return d.tree.map(e=>({...e,groups:e.groups.map(t=>({...t,options:t.options.filter(i=>n(i)&&r(i,t.group,e.page))})).filter(e=>e.options.length>0)})).filter(e=>e.groups.length>0)},[d,p,_]),k=(0,y.useMemo)(()=>O.length===0||_.trim()?null:O.find(e=>e.page===h)??O[0],[O,h,_]),A=(0,y.useMemo)(()=>d?Object.keys(e).filter(t=>d.schema[t]&&OW(d.schema[t],e[t],s?.[t])).length:0,[d,e,s]);if(!d)return(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),u(`slicerSettings.loading`,`Loading slicer settings...`)]});let j=k?[k]:O;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:WAe.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(e),disabled:n,className:`px-2.5 py-1 text-xs capitalize transition-colors ${p===e?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:u(`slicerSettings.mode.${e}`,e)},e))}),(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[10rem]`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),disabled:n,placeholder:u(`slicerSettings.searchPlaceholder`,`Search settings`),className:`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark pl-7 pr-2 py-1 text-xs text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none disabled:opacity-40`})]}),A>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>E({}),disabled:n,className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white`,children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),u(`slicerSettings.resetAll`,`Reset {{count}}`,{count:A})]})]}),!c&&(0,G.jsx)(`p`,{className:`rounded border border-amber-300 bg-amber-50 px-2 py-1 text-[0.7rem] text-amber-800 dark:border-amber-700/40 dark:bg-amber-900/20 dark:text-amber-200`,children:l===`sidecar_outdated`?u(`slicerSettings.presetValuesOutdatedSidecar`,`Showing slicer defaults: your slicer sidecar is older than this feature and can't report a preset's values. Update the sidecar image to see them. Anything you don't change still uses the preset.`):l===`not_configured`?u(`slicerSettings.presetValuesNotConfigured`,`Showing slicer defaults: no slicer sidecar is configured, so a preset's values can't be read. Anything you don't change still uses the preset.`):l===`sidecar_unavailable`?u(`slicerSettings.presetValuesSidecarUnavailable`,`Showing slicer defaults: the slicer sidecar did not answer, so a preset's values can't be read. Anything you don't change still uses the preset.`):u(`slicerSettings.presetValuesUnavailable`,`Showing slicer defaults: the picked preset's own values could not be read. Anything you don't change still uses the preset.`)}),r.length>0&&a&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary px-2 py-1.5 text-[0.7rem] text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1`,children:u(`slicerSettings.fromFileSummary`,`The designer changed {{count}} process settings in this file. Only the ones you tick are used.`,{count:r.length})}),(0,G.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>C.forEach(e=>a(e.key,!0)),title:u(`slicerSettings.fromFileUseAllHint`,`Ticks the settings that carry across printers. The ones tuned for the designer's own printer, and the ones that define the preset you picked, stay off.`),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:u(`slicerSettings.fromFileUseAll`,`Use the designer's settings`)}),w>0&&(0,G.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>r.forEach(e=>a(e.key,!1)),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:u(`slicerSettings.fromFileClear`,`Clear {{count}}`,{count:w})})]}),!_.trim()&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:O.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(e.page),disabled:n,className:`px-2 py-1 text-xs rounded transition-colors ${k?.page===e.page?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,children:e.page},e.page))}),j.length===0?(0,G.jsx)(`p`,{className:`py-6 text-center text-xs text-bambu-gray`,children:u(`slicerSettings.noMatches`,`No settings match this search.`)}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 max-h-[22rem] lg:max-h-[58vh] overflow-y-auto pr-1`,children:[j.map(t=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[_.trim()&&(0,G.jsx)(`p`,{className:`text-[0.7rem] uppercase tracking-wide text-bambu-gray/70`,children:t.page}),t.groups.map(r=>(0,G.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:r.group}),r.options.map(t=>(0,G.jsx)(KAe,{optionKey:t,option:d.schema[t],value:e[t],onChange:e=>D(t,e),disabled:n||x.has(t),disabledBySlicer:x.has(t),formDisabled:n,source:S.get(t),sourceOn:i?.has(t)??!1,onToggleSource:a,filamentChoices:UAe.has(t)?o:void 0,presetValue:s?.[t]},t))]},`${t.page}:${r.group}`))]},t.page)),T.length>0&&!_.trim()&&(0,G.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:u(`slicerSettings.otherFromFile`,`Other settings from this file`)}),T.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-xs cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i?.has(e.key)??!1,disabled:n||!a,onChange:t=>a?.(e.key,t.target.checked),className:`shrink-0 cursor-pointer disabled:opacity-40`}),(0,G.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[(0,G.jsx)(`span`,{className:`font-mono text-bambu-gray`,children:e.key}),(0,G.jsx)(`span`,{className:`ml-1.5 text-white`,children:AW(e.value)})]}),(e.printer_coupled||e.preset_defining)&&(0,G.jsx)(`span`,{className:`shrink-0 rounded bg-amber-100 px-1 py-0.5 text-[10px] text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`,children:e.printer_coupled?u(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):u(`slicerSettings.fromFileOverridesPreset`,`overrides preset`)})]},e.key))]})]})]})}function KAe({optionKey:e,option:t,value:n,onChange:r,disabled:i,disabledBySlicer:a,formDisabled:o,source:s,sourceOn:c=!1,onToggleSource:l,filamentChoices:u,presetValue:d}){let{t:f}=U(),p=OW(t,n,d),m=VAe(t),h=n===void 0?c&&s?AW(s.value):EW(t,d):String(n);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 group`,title:t.tooltip,children:[(0,G.jsxs)(`label`,{htmlFor:`slicer-opt-${e}`,className:`flex min-w-0 flex-1 items-center gap-1 text-xs ${a?`text-bambu-gray/40`:`text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`truncate`,title:t.label||e,children:t.label||e}),p&&(0,G.jsx)(`span`,{className:`shrink-0 text-bambu-green`,"aria-hidden":`true`,children:`•`}),s&&(0,G.jsx)(`span`,{className:`shrink-0 rounded px-1 py-0.5 text-[10px] ${s.printer_coupled||s.preset_defining?`bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`:`bg-bambu-green/15 text-bambu-green`}`,title:s.printer_coupled?f(`slicerSettings.fromFilePrinterCoupledHint`,`Tuned for the printer this file was designed for -- may be wrong or out of range on yours.`):s.preset_defining?f(`slicerSettings.fromFileOverridesPresetHint`,`The file sets this to {{value}} where the preset you picked uses {{preset}}. Tick it only if the file should win.`,{value:AW(s.value),preset:EW(t,d)}):f(`slicerSettings.fromFileHint`,`The designer changed this in the source file. Its value is {{value}}.`,{value:AW(s.value)}),children:s.printer_coupled?f(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):s.preset_defining?f(`slicerSettings.fromFileOverridesPreset`,`overrides preset`):f(`slicerSettings.fromFile`,`from file`)})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`flex w-3 shrink-0 justify-center`,children:s&&l&&(0,G.jsx)(`input`,{type:`checkbox`,checked:c,disabled:o,onChange:t=>l(e,t.target.checked),"aria-label":f(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),title:f(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),className:`w-3 h-3 cursor-pointer disabled:opacity-40`})}),(0,G.jsx)(`div`,{className:`w-40`,children:(0,G.jsx)(qAe,{id:`slicer-opt-${e}`,option:t,current:h,onChange:r,disabled:i,filamentChoices:u})}),(0,G.jsx)(`span`,{className:`w-16 shrink-0 whitespace-nowrap text-[0.65rem] text-bambu-gray/60`,children:m??``}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>r(void 0),disabled:i||!p,"aria-label":f(`slicerSettings.resetOption`,`Reset to default`),className:`p-0.5 transition-opacity ${p?`text-bambu-gray hover:text-white`:`opacity-0 pointer-events-none`}`,children:(0,G.jsx)(Wl,{className:`w-3 h-3`})})]})]})}function AW(e){return Array.isArray(e)?e.map(e=>String(e)).join(`, `):e==null?``:String(e)}function qAe({id:e,option:t,current:n,onChange:r,disabled:i,filamentChoices:a}){let{t:o}=U(),s=`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark px-1.5 py-0.5 text-xs text-white focus:border-bambu-green focus:outline-none disabled:opacity-40`;if(a&&a.length>0){let t=a.find(e=>String(e.index)===n);return(0,G.jsxs)(`div`,{className:`relative w-full`,children:[(0,G.jsxs)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:i,className:`${s} w-full cursor-pointer appearance-none pr-5`,title:t?.label,children:[(0,G.jsx)(`option`,{value:`0`,children:o(`slicerSettings.filamentDefault`,`Default`)}),a.map(e=>(0,G.jsxs)(`option`,{value:String(e.index),children:[e.index,`: `,e.label]},e.index))]}),(0,G.jsx)(ps,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]})}return t.type===`coBool`?(0,G.jsx)(`input`,{id:e,type:`checkbox`,checked:n===`1`||n===`true`,onChange:e=>r(e.target.checked),disabled:i,className:`w-3.5 h-3.5 cursor-pointer disabled:opacity-40`}):t.type===`coEnum`&&t.enum_values?(0,G.jsxs)(`div`,{className:`relative w-full`,children:[(0,G.jsx)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:i,className:`${s} w-full cursor-pointer appearance-none pr-5`,children:t.enum_values.map((e,n)=>(0,G.jsx)(`option`,{value:e,children:t.enum_labels?.[n]??e},e))}),(0,G.jsx)(ps,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]}):t.type===`coInt`||t.type===`coFloat`||t.type===`coPercent`?(0,G.jsx)(`input`,{id:e,type:`number`,value:n.replace(`%`,``),min:TW(t.min),max:TW(t.max),step:t.type===`coInt`?1:`any`,onChange:e=>r(e.target.value),disabled:i,className:s}):(0,G.jsx)(`input`,{id:e,type:`text`,value:n,onChange:e=>r(e.target.value),disabled:i,className:s})}var jW=[`local`,`orca_cloud`,`cloud`,`standard`],JAe={local:1.75,orca_cloud:1.5,cloud:1,standard:.5};function MW(e,t){for(let n of jW){let r=e[n][t];if(r.length>0)return{source:r[0].source,id:r[0].id}}return null}function NW(e,t,n){return t?e[t.source][n].find(e=>e.id===t.id)??null:null}function PW(e,t,n){if(!n)return null;for(let r of jW){let i=e[r][t].find(e=>e.name===n);if(i)return{source:i.source,id:i.id}}return null}function YAe(e,t,n,r){let i=PW(e,`process`,r);if(i){let r=NW(e,i,`process`);if(r&&FH(r,`process`,t,n)!==`mismatch`)return i}for(let r of[`match`,`unknown`])for(let i of jW){let a=QAe(e[i].process.filter(e=>FH(e,`process`,t,n)===r));if(a)return{source:a.source,id:a.id}}return MW(e,`process`)}var XAe=.2,ZAe=/^\s*([\d.]+)\s*mm\b/i;function QAe(e){let t=null,n=1/0,r=-1/0;for(let i of e){let e=ZAe.exec(i.name),a=e?Number.parseFloat(e[1]):NaN,o=Number.isFinite(a)&&a>0,s=o?Math.abs(a-XAe):1/0;(t==null||sr)&&(t=i,n=s,r=o?a:-1/0)}return t}function FW(e,t){let n=t.trim().toUpperCase(),r=(e.filament_type??``).trim().toUpperCase();return!!n&&!!r&&n!==r}function $Ae(e,t,n,r){let i=t.type.trim().toUpperCase(),a=hp(t.color),o=null,s=null,c=null;for(let l of jW)for(let u of e[l].filament){let e=0,d=(u.filament_type??``).trim().toUpperCase(),f=hp(u.filament_colour??``);i&&d&&i===d&&(e+=10),a&&f&&(f===a?e+=5:wp(u.filament_colour??``,t.color)&&(e+=2)),e+=JAe[l];let p={source:u.source,id:u.id};FW(u,i)?(c==null||e>c.score)&&(c={ref:p,score:e}):FH(u,`filament`,n,r)===`mismatch`?(s==null||e>s.score)&&(s={ref:p,score:e}):(o==null||e>o.score)&&(o={ref:p,score:e})}return o==null?s==null?c==null?MW(e,`filament`):c.ref:s.ref:o.ref}function IW(e){return e?`${e.source}:${e.id}`:``}function eje(e){if(!e)return null;let t=e.indexOf(`:`);if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n!==`orca_cloud`&&n!==`cloud`&&n!==`local`&&n!==`standard`?null:{source:n,id:r}}function tje({requestId:e,sourceName:t}){let{t:n}=U(),{showPersistentToast:r,dismissToast:i}=qd(),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(null),l=t;try{l=decodeURIComponent(t)}catch{}(0,y.useEffect)(()=>{let e=Date.now(),t=setInterval(()=>o(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[]),(0,y.useEffect)(()=>{let t=!1,n=setInterval(async()=>{if(t)return;let n=await Z.getPreviewSliceProgress(e);!t&&n&&c(n)},1e3);return()=>{t=!0,clearInterval(n)}},[e]);let u=`slice-preview-${e}`;(0,y.useEffect)(()=>{let e=s&&s.stage&&s.total_percent>0,t=nje(a);return e?r(u,n(`slice.previewWithProgress`,`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:l,stage:s.stage,percent:Math.min(100,Math.max(0,Math.round(s.total_percent))),elapsed:t}),`loading`):r(u,n(`slice.previewToast`,{name:l,elapsed:t}),`loading`),()=>{i(u)}},[a,s,l,r,i,n,u]);let d=s?.stage,f=s?.total_percent,p=d&&typeof f==`number`&&f>0?`${d} (${Math.min(100,Math.max(0,Math.round(f)))}%)`:n(`slice.analyzingPlateFilaments`);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 text-bambu-gray text-sm py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),p,(0,G.jsxs)(`span`,{className:`text-xs tabular-nums`,children:[a,`s`]})]}),a>=5&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/70 pl-6`,children:n(`slice.analyzingPlateFilamentsHint`,`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`)})]})}function nje(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}var rje=`#00AE42`;function LW(e){let t=(e||``).trim();return/^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(t)?t.slice(0,7).toUpperCase():rje}function RW({source:e,onClose:t}){let{t:n}=U(),{trackJob:r}=vW(),i=co(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)([]),d=(0,y.useRef)(new Set),[f,p]=(0,y.useState)([]),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(new Set),[j,M]=(0,y.useState)({}),[N,P]=(0,y.useState)({}),[F,I]=(0,y.useState)(!1),L=kAe(),R=L||F,z=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines(),staleTime:6e4}),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(``),{showToast:ne}=qd(),re=q({mutationFn:e=>Z.createSlicerPipeline(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`slicer-pipelines`]}),ne(n(`slice.pipelines.toast.saved`,`Pipeline saved`),`success`),V(!1),te(``)},onError:e=>{ne(e.message||n(`slice.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),ie=K({queryKey:[`slicePlates`,e.kind,e.id],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFilePlates(e.id):Z.getArchivePlates(e.id),staleTime:6e4}),ae=!!ie.data?.is_multi_plate&&(ie.data?.plates?.length??0)>1,oe=ae&&g==null,se=g??1,H=(0,y.useMemo)(()=>{let t=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`;return`${e.kind}-${e.id}-p${se}-${t}`},[e.kind,e.id,se]),ce=K({queryKey:[`sliceFilamentReqs`,e.kind,e.id,se],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFileFilamentRequirements(e.id,se,H,!0):Z.getArchiveFilamentRequirements(e.id,se,H,!0),enabled:!oe,staleTime:6e4}),le=(0,y.useMemo)(()=>{let e=ce.data?.filaments??[],t=e.length>0?e:[{slot_id:1,type:``,color:``,used_grams:0,used_meters:0}];return v?t.map(e=>({...e,used_in_plate:!0})):t},[v,ce.data]),ue=K({queryKey:[`slicerPresets`],queryFn:()=>Z.getSlicerPresets(),staleTime:6e4,enabled:!ie.isLoading&&!oe}),[de,fe]=(0,y.useState)(!1),pe=async()=>{if(!de){fe(!0);try{let e=await Z.getSlicerPresets({refresh:!0});i.setQueryData([`slicerPresets`],e)}catch{i.invalidateQueries({queryKey:[`slicerPresets`]})}finally{fe(!1)}}},me=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,staleTime:1/0}),he=(0,y.useMemo)(()=>!ue.data||!a?null:NW(ue.data,a,`printer`)?.name??null,[ue.data,a]),ge=(0,y.useMemo)(()=>kH(me.data??{}),[me.data]),_e=K({queryKey:[`slicer-preset-values`,s?.source,s?.id],queryFn:()=>Z.getSlicerPresetValues(s),enabled:s!=null,staleTime:5*6e4}),ve=_e.data?.values,ye=_e.data?.resolved??_e.isLoading,be=_e.data?.reason??(_e.isError?`sidecar_unavailable`:void 0),xe=(0,y.useMemo)(()=>{let e=ue.data;return le.map((t,r)=>{let i=l[r]??null,a=e&&i?NW(e,i,`filament`):null;return{index:r+1,label:a?.name||t.type||n(`slice.filamentSlotUnset`,`not set`),color:t.color||void 0}})},[le,l,ue.data,n]),Se=ie.data?.embedded_printer??null,Ce=(0,y.useMemo)(()=>ie.data?.design_overrides??[],[ie.data]),we=ie.data?.embedded_process??null,Te=(0,y.useMemo)(()=>{if(!Se||!we||!he)return!1;let e=e=>e.replace(/^#\s*/,``).trim().toLowerCase();return e(he)===e(Se)},[Se,we,he]);(0,y.useEffect)(()=>{Te||w(!1)},[Te]),(0,y.useEffect)(()=>{A(C?new Set(Ce.map(e=>e.key)):new Set)},[Ce,C]),(0,y.useEffect)(()=>{let e=ue.data;e&&(a??o(PW(e,`printer`,Se)??MW(e,`printer`)))},[ue.data,Se]),(0,y.useEffect)(()=>{let e=ue.data;e&&c(t=>{if(t){let n=NW(e,t,`process`);if(n&&FH(n,`process`,he,ge)!==`mismatch`)return t}return YAe(e,he,ge,we)})},[ue.data,he,ge,we]),(0,y.useEffect)(()=>{let e=ue.data;e&&u(t=>le.map((n,r)=>{let i=t[r]??null;if(i){let t=NW(e,i,`filament`),a=t&&!d.current.has(r)&&FW(t,n.type);if(t&&!a&&FH(t,`filament`,he,ge)!==`mismatch`)return i}return $Ae(e,{type:n.type,color:n.color},he,ge)}))},[ue.data,le,he,ge]),(0,y.useEffect)(()=>{p(e=>e.length===le.length?e:(d.current=new Set,le.map(()=>null)))},[le]);let Ee=q({mutationFn:async t=>{let n=De(t);return e.kind===`libraryFile`?Z.sliceLibraryFile(e.id,n):Z.sliceArchive(e.id,n)},onSuccess:n=>{r(n.job_id,e.kind,e.filename),t()},onError:e=>{h(e instanceof Error?e.message:String(e))}});function De(e){if(!a||!s||l.length===0||l.some(e=>e==null))throw Error(n(`slice.allPresetsRequired`));return{printer_preset:a,process_preset:s,filament_preset:l[0],filament_presets:l,filament_colours:le.map((e,t)=>f[t]??e.color??``),...e==null?{}:{plate:e},...x==null?{}:{bed_type:x},...C&&Te?{use_embedded_settings:!0}:{},...!C&&Ce.length>0?{design_overrides:[...k]}:{},...!C&&Object.keys(j).length>0?{process_overrides:N}:{},...T?{auto_orient:!0}:{},...D?{auto_arrange:!0}:{}}}let Oe=a!=null&&s!=null&&ce.isSuccess&&l.length>0&&l.every(e=>e!=null),ke=Ee.isPending,Ae=ie.data?.plates?.length??0,je=ae&&Ae>1&&!oe;return oe&&ie.data?(0,G.jsx)(bW,{plates:ie.data.plates,onSelect:e=>_(e),onClose:t}):(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:()=>{ke||t()},children:(0,G.jsxs)(`div`,{className:`w-full max-w-xl lg:max-w-5xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`h3`,{className:`text-white font-medium flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-4 h-4`}),n(`slice.title`)]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate`,title:e.filename,children:[e.filename,g==null?``:` • ${n(`archives.platePicker.plateLabel`,{index:g})}`]})]}),(0,G.jsx)(`button`,{onClick:t,disabled:ke,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors disabled:opacity-50`,"aria-label":n(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(ie.isLoading||ue.isLoading)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.loadingPresets`)]}),ue.isError&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400`,role:`alert`,children:n(`slice.presetsLoadFailed`,`Failed to load presets. Open Settings → Profiles to import them, or sign in to Bambu Cloud.`)}),ue.data&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,G.jsx)(zW,{status:ue.data.cloud_status,cloudName:`bambu`}),(0,G.jsx)(zW,{status:ue.data.orca_cloud_status,cloudName:`orca`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:pe,disabled:de||ke,className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/40 disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,title:n(`slice.refreshPresetsTitle`),"aria-label":n(`slice.refreshPresets`),children:[(0,G.jsx)(Hl,{className:`w-3.5 h-3.5 ${de?`animate-spin`:``}`}),n(`slice.refreshPresets`)]})]}),(0,G.jsxs)(`div`,{className:`lg:grid lg:grid-cols-[minmax(0,20rem)_minmax(0,1fr)] lg:gap-5 lg:items-start`,children:[(0,G.jsxs)(`div`,{className:`space-y-4 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 px-2 py-1.5 rounded-md bg-bambu-dark/40 border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-medium text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`}),` `,n(`slice.pipelines.label`,`Pipeline`)]}),(0,G.jsxs)(`select`,{value:``,disabled:ke||(z.data?.pipelines.length??0)===0,onChange:e=>{let t=parseInt(e.target.value,10);if(Number.isNaN(t))return;let r=z.data?.pipelines.find(e=>e.id===t);r&&(o(r.printer_preset),c(r.process_preset),S(r.bed_type),u(e=>{let t=e.length>0?[...e]:r.filament_presets.map(()=>null);for(let e=0;e(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),B?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-1 min-w-[16ch]`,children:[(0,G.jsx)(`input`,{autoFocus:!0,value:ee,onChange:e=>te(e.target.value),placeholder:n(`slice.pipelines.namePlaceholder`,`Pipeline name`),"aria-label":n(`slice.pipelines.nameAria`,`New pipeline name`),className:`flex-1 text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{let e=ee.trim();if(!e||!a||!s)return;let t=l.filter(e=>e!==null);t.length!==0&&re.mutate({name:e,printer_preset:a,process_preset:s,filament_presets:t,bed_type:x})},disabled:re.isPending||!ee.trim(),className:`text-xs px-2 py-1 bg-bambu-green hover:bg-bambu-green/80 text-white rounded disabled:opacity-50`,children:re.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):n(`common.save`,`Save`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{V(!1),te(``)},className:`text-xs px-2 py-1 text-bambu-gray hover:text-white`,children:n(`common.cancel`,`Cancel`)})]}):(0,G.jsx)(`button`,{type:`button`,onClick:()=>{te(``),V(!0)},disabled:ke||!a||!s||l.length===0||l.some(e=>e===null),className:`text-xs px-2 py-1 bg-bambu-green/20 hover:bg-bambu-green/30 text-bambu-green border border-bambu-green/40 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:n(`slice.pipelines.saveTitle`,`Save the current four-slot selection as a reusable pipeline`),children:n(`slice.pipelines.saveButton`,`Save as pipeline`)})]}),(0,G.jsx)(BW,{label:n(`slice.printer`),slot:`printer`,data:ue.data,value:a,onChange:o,disabled:ke||C}),Te&&(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>w(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.useEmbedded`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.useEmbeddedHint`)})]})]}),(0,G.jsx)(BW,{label:n(`slice.process`),slot:`process`,data:ue.data,value:s,onChange:c,disabled:ke||C,selectedPrinterName:he,compatIndex:ge}),(0,G.jsx)(aje,{value:x,onChange:S,disabled:ke||C}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:T,onChange:e=>E(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.autoOrient`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.autoOrientHint`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D,onChange:e=>O(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.autoArrange`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.autoArrangeHint`)})]})]})]}),ce.isLoading?(0,G.jsx)(tje,{requestId:H,sourceName:e.filename}):le.map((e,t)=>{let r=e.used_in_plate!==!1,i=le.length>1?n(`slice.filamentSlot`,{index:t+1,type:e.type}):n(`slice.filament`);return(0,G.jsx)(BW,{label:r?i:`${i} ${n(`slice.notUsedByPlate`)}`,slot:`filament`,data:ue.data,value:l[t]??null,onChange:e=>{d.current.add(t),u(n=>{let r=n.length===le.length?[...n]:le.map((e,t)=>n[t]??null);return r[t]=e,r})},disabled:ke||!r||C,swatchColor:f[t]??e.color,swatchColorLabel:n(`slice.filamentColour`),onSwatchColorChange:e=>p(n=>{let r=n.length===le.length?[...n]:le.map((e,t)=>n[t]??null);return r[t]=e,r}),selectedPrinterName:he,compatIndex:ge},`filament-${t}`)})]}),(0,G.jsx)(`div`,{className:`mt-4 lg:mt-0 min-w-0`,children:(0,G.jsxs)(`div`,{className:`rounded border border-bambu-dark-tertiary p-3 ${C?`opacity-60`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>I(e=>!e),"aria-expanded":R,disabled:L,className:`flex w-full items-center justify-between gap-2 text-left lg:cursor-default`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[n(`slice.processSettings`,`Process settings`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:C?n(`slice.processSettingsEmbedded`,`Not used while "Use the file's built-in settings" is on -- the file's own settings drive this slice.`):n(`slice.processSettingsHint`,`Adjust the picked preset for this slice. Anything you don't touch stays as the preset defines it.`)})]}),(0,G.jsx)(`span`,{className:`shrink-0 text-xs text-bambu-gray`,children:C?n(`slice.processSettingsInactive`,`Inactive`):Object.keys(N).length>0?n(`slice.processSettingsChanged`,`{{count}} changed`,{count:Object.keys(N).length}):n(`slice.processSettingsUnchanged`,`Preset defaults`)})]}),R&&(0,G.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3`,children:(0,G.jsx)(GAe,{values:j,onChange:(e,t)=>{M(e),P(t)},disabled:ke||C,filamentChoices:xe,presetValues:ve,presetValuesResolved:ye,presetValuesReason:be,sourceOverrides:Ce,sourceSelected:k,onToggleSource:(e,t)=>A(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})})})]})})]})]}),m&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400 bg-red-900/20 border border-red-900/40 rounded p-2`,role:`alert`,children:m})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex justify-end gap-2 px-4 py-3 border-t border-bambu-dark-tertiary/40`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:t,disabled:ke,className:`px-3 py-1.5 text-sm rounded-md border border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray transition-colors disabled:opacity-50`,children:n(`common.cancel`)}),je&&(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mr-auto text-sm text-bambu-gray cursor-pointer select-none`,title:n(`slice.actionAllTitle`,{count:Ae}),children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:v,onChange:e=>b(e.target.checked),disabled:ke,className:`cursor-pointer`}),n(`slice.allPlatesToggle`,{count:Ae})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{h(null);let e=v?0:g;Ee.mutate(e)},disabled:!Oe||ke,className:`px-3 py-1.5 text-sm rounded-md bg-bambu-green hover:bg-bambu-green/90 text-bambu-dark font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2`,children:ke?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.enqueuing`)]}):v?n(`slice.actionAll`,{count:Ae}):n(`slice.action`)})]})]})})}function zW({status:e,cloudName:t=`bambu`}){let{t:n}=U();if(e===`ok`||e===`not_authenticated`)return null;let r=t===`orca`?{expired:{key:`slice.orcaCloud.expired`,fallback:`Orca Cloud session expired — sign in again to refresh your Orca presets.`},unreachable:{key:`slice.orcaCloud.unreachable`,fallback:`Orca Cloud is unreachable right now. Other presets still work.`}}:{expired:{key:`slice.cloud.expired`,fallback:`Bambu Cloud session expired — sign in again to refresh your cloud presets.`},unreachable:{key:`slice.cloud.unreachable`,fallback:`Bambu Cloud is unreachable right now. Local and standard presets still work.`}},{tone:i,icon:a}={expired:{tone:`border-amber-300 dark:border-amber-700/40 bg-amber-50 dark:bg-amber-900/20 text-amber-800 dark:text-amber-200`,icon:Ms},unreachable:{tone:`border-bambu-dark-tertiary/40 bg-bambu-dark text-bambu-gray`,icon:Ms}}[e],{key:o,fallback:s}=r[e];return(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs rounded-md border p-2 ${i}`,role:`status`,children:[(0,G.jsx)(a,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{children:n(o,s)})]})}var ije=[{value:`Cool Plate`,labelKey:`slice.bedType.coolPlate`,fallback:`Cool Plate`},{value:`Cool Plate (SuperTack)`,labelKey:`slice.bedType.coolPlateSuperTack`,fallback:`Cool Plate SuperTack`},{value:`Engineering Plate`,labelKey:`slice.bedType.engineering`,fallback:`Engineering Plate`},{value:`High Temp Plate`,labelKey:`slice.bedType.highTemp`,fallback:`High Temp Plate`},{value:`Textured PEI Plate`,labelKey:`slice.bedType.texturedPEI`,fallback:`Textured PEI Plate`},{value:`Smooth PEI Plate`,labelKey:`slice.bedType.smoothPEI`,fallback:`Smooth PEI Plate`}];function aje({value:e,onChange:t,disabled:n}){let{t:r}=U();return(0,G.jsxs)(`label`,{className:`block`,children:[(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:r(`slice.bedType.label`)}),(0,G.jsxs)(`select`,{value:e??``,onChange:e=>t(e.target.value===``?null:e.target.value),disabled:n,className:`flex-1 min-w-0 px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:r(`slice.bedType.auto`)}),ije.map(e=>(0,G.jsx)(`option`,{value:e.value,children:r(e.labelKey,e.fallback)},e.value))]})]})}function BW({label:e,slot:t,data:n,value:r,onChange:i,disabled:a,swatchColor:o,onSwatchColorChange:s,swatchColorLabel:c,selectedPrinterName:l,compatIndex:u}){let{t:d}=U(),[f,p]=(0,y.useState)(!1),m=(0,y.useId)(),h=`${m}-colour`,{sections:g,otherEntries:_}=(0,y.useMemo)(()=>{let e=[{key:`local`,label:`slice.tier.local`,fallback:`Imported`},{key:`orca_cloud`,label:`slice.tier.orcaCloud`,fallback:`Orca Cloud`},{key:`cloud`,label:`slice.tier.cloud`,fallback:`Bambu Cloud`},{key:`standard`,label:`slice.tier.standard`,fallback:`Standard`}],r=t!==`printer`,i=[],a=[],o=[];for(let{key:s,label:c,fallback:f}of e){let e=n[s][t];if(e.length>0&&a.push({tierLabel:d(c,f),entries:e}),!r){e.length>0&&i.push({tierLabel:d(c,f),entries:e});continue}let p=[];for(let n of e)FH(n,t,l??null,u??rke)===`mismatch`?o.push(n):p.push(n);p.length>0&&i.push({tierLabel:d(c,f),entries:p})}return i.length===0&&o.length>0?{sections:a,otherEntries:[]}:{sections:i,otherEntries:o}},[n,t,d,l,u]),v=IW(r),b=(0,y.useMemo)(()=>f?_:_.filter(e=>`${e.source}:${e.id}`===v),[f,_,v]),x=_.length-b.length,S=g.reduce((e,t)=>e+t.entries.length,0)+b.length;return(0,G.jsxs)(`div`,{className:`block`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray mb-1`,children:[!s&&o&&(0,G.jsx)(`span`,{className:`inline-block w-3 h-3 rounded-full border border-bambu-dark-tertiary`,style:{backgroundColor:o},"aria-hidden":!0}),(0,G.jsx)(`label`,{htmlFor:m,children:e}),(x>0||f)&&(0,G.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 font-normal`,children:[x>0&&(0,G.jsx)(`span`,{className:`text-bambu-gray/60`,children:d(`slice.presetsHidden`,`{{count}} hidden`,{count:x})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>p(e=>!e),disabled:a,className:`text-bambu-green hover:underline disabled:opacity-50 disabled:no-underline`,children:f?d(`slice.showFewerPresets`,`Show fewer`):d(`slice.showAllPresets`,`Show all`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsxs)(`select`,{id:m,value:IW(r),onChange:e=>i(eje(e.target.value)),disabled:a||S===0,className:`w-full px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:d(S===0?`slice.noPresetsForSlot`:`slice.selectPreset`)}),g.map(e=>(0,G.jsx)(`optgroup`,{label:e.tierLabel,children:e.entries.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))},e.tierLabel)),b.length>0&&(0,G.jsx)(`optgroup`,{label:d(`slice.otherPrinters`),children:b.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))})]}),s&&(0,G.jsxs)(`label`,{htmlFor:h,title:c,className:`flex items-center gap-2 px-2.5 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-sm ${a?`opacity-50 cursor-not-allowed`:`cursor-pointer hover:border-bambu-gray transition-colors`}`,children:[(0,G.jsx)(`input`,{id:h,type:`color`,value:LW(o),onChange:e=>s(e.target.value.toUpperCase()),disabled:a,"aria-label":c,style:{backgroundColor:LW(o)},className:`slice-colour-swatch w-4 h-4 shrink-0 rounded-full border border-bambu-dark-tertiary p-0 disabled:cursor-not-allowed enabled:cursor-pointer`}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-white tracking-tight`,children:LW(o)})]})]})]})}function VW({source:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(1),{trackJob:d}=vW(),{data:f,isLoading:p}=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines()}),{data:m}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),{data:h}=K({queryKey:[`app-settings`],queryFn:()=>Z.getSettings()}),g=h?.pipeline_max_copies??50,_={kind:e.kind,id:e.id},v=q({mutationFn:e=>Z.checkPipelineEligibility(e,_)}),b=q({mutationFn:({pipelineId:e,force:t})=>Z.runPipeline(e,_,t,l),onSuccess:a=>{r.invalidateQueries({queryKey:[`slicer-pipelines`]}),r.invalidateQueries({queryKey:[`pipeline-runs`]}),a.slice_job_id&&d(a.slice_job_id,e.kind,e.filename),i(n(`library.runWithPipeline.toast.started`,`Pipeline run started`),`success`),t()},onError:e=>{i(e.message||n(`library.runWithPipeline.toast.failed`,`Could not start run`),`error`)}}),x=f?.pipelines??[],S=(m??[]).reduce((e,t)=>(e[t.id]=t,e),{});return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/60 flex items-center justify-center p-4`,onClick:t,role:`dialog`,"aria-modal":`true`,"aria-label":n(`library.runWithPipeline.modalTitle`,`Run with pipeline`),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl w-full max-w-md max-h-[80vh] flex flex-col overflow-hidden`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Nl,{className:`w-4 h-4 text-bambu-green`}),a&&s?n(`library.runWithPipeline.confirmTitle`,`Confirm run`):n(`library.runWithPipeline.modalTitle`,`Run with pipeline`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:t,"aria-label":n(`common.close`,`Close`),className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-3`,children:a&&s?(0,G.jsx)(sje,{pipeline:a,report:s,source:e,onBack:()=>{o(null),c(null)},onConfirm:()=>{a&&b.mutate({pipelineId:a.id,force:!0})},running:b.isPending}):(0,G.jsx)(oje,{source:e,pipelines:x,printerById:S,loading:p||v.isPending,onPick:async e=>{if(!(e.target_printer_id||e.target_kind===`printer_class`&&e.target_model_class)){i(n(`library.runWithPipeline.noTargetMessage`,`This pipeline has no target printer set. Open it in Settings to pick one.`),`error`);return}o(e);try{let t=await v.mutateAsync(e.id);c(t),t.ok&&b.mutate({pipelineId:e.id,force:!1})}catch{o(null)}},copies:l,maxCopies:g,onCopiesChange:u})})]})})}function oje({source:e,pipelines:t,printerById:n,loading:r,onPick:i,copies:a,maxCopies:o,onCopiesChange:s}){let{t:c}=U();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[c(`library.runWithPipeline.sourceHint`,`Source`),`:`,` `,(0,G.jsx)(`span`,{className:`text-white`,children:e.filename})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-xs text-bambu-gray`,htmlFor:`run-pipeline-copies`,children:[c(`library.runWithPipeline.copies`,`Copies`),`:`]}),(0,G.jsx)(`input`,{id:`run-pipeline-copies`,type:`number`,min:1,max:o,value:a,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||s(Math.max(1,Math.min(o,t)))},"aria-label":c(`library.runWithPipeline.copies`,`Copies`),className:`w-20 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:c(`library.runWithPipeline.copiesHint`,`max {{n}}`,{n:o})})]}),r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`library.runWithPipeline.loading`,`Loading…`)]}),!r&&t.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`library.runWithPipeline.empty`,`No pipelines saved yet. Open the Slice dialog and click "Save as pipeline" to create one.`)}),!r&&t.length>0&&(0,G.jsx)(`ul`,{className:`space-y-1.5`,"aria-label":c(`library.runWithPipeline.pipelineListAria`,`Available pipelines`),children:t.map(e=>{let t=e.target_kind===`printer_class`,r=e.target_printer_id?n[e.target_printer_id]?.name:null,a=t&&e.target_model_class?c(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}):null;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(e),disabled:!(e.target_printer_id||t&&e.target_model_class),className:`w-full text-left px-3 py-2 rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 hover:bg-bambu-dark-tertiary disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),a?(0,G.jsx)(`span`,{children:a}):r?(0,G.jsx)(`span`,{children:r}):(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:c(`library.runWithPipeline.noTarget`,`No target printer set`)})]})]})},e.id)})})]})}function sje({pipeline:e,report:t,source:n,onBack:r,onConfirm:i,running:a}){let{t:o}=U();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[(0,G.jsxs)(`p`,{children:[o(`library.runWithPipeline.confirmIntro`,`Pre-flight found issues with this run`),`:`]}),(0,G.jsxs)(`p`,{className:`mt-1`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.sourceHint`,`Source`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:n.filename})]}),(0,G.jsxs)(`p`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.pipelineHint`,`Pipeline`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:e.name})]}),t.target_printer_name&&(0,G.jsxs)(`p`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.targetHint`,`Target`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:t.target_printer_name})]})]}),(0,G.jsx)(`ul`,{className:`space-y-1.5`,children:t.issues.map((e,t)=>(0,G.jsxs)(`li`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:(0,G.jsx)(cje,{issue:e})})]},t))}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:r,disabled:a,className:`px-3 py-1.5 text-xs text-bambu-gray hover:text-white`,children:o(`common.back`,`Back`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:i,disabled:a,className:`px-3 py-1.5 text-xs bg-amber-500 hover:bg-amber-600 text-white rounded disabled:opacity-50 flex items-center gap-1`,children:[a?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(Nl,{className:`w-3 h-3`}),o(`library.runWithPipeline.runAnyway`,`Run anyway`)]})]})]})}function cje({issue:e}){let{t}=U();switch(e.kind){case`printer_not_set`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerNotSet`,`No target printer set on this pipeline.`)});case`printer_not_found`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerNotFound`,`Target printer no longer exists.`)});case`printer_disabled`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerDisabled`,`Target printer is disabled.`)});case`printer_offline`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerOffline`,`Target printer is offline.`)});case`filament_type_mismatch`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentType`,`Filament slot {{slot}}: expected {{expected}}, AMS has {{actual}}`,{slot:(e.slot_index??0)+1,expected:e.expected??`?`,actual:e.actual??`?`})});case`filament_color_mismatch`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentColor`,`Filament slot {{slot}}: colour differs (expected {{expected}}, AMS has {{actual}})`,{slot:(e.slot_index??0)+1,expected:e.expected??`?`,actual:e.actual??`?`})});case`ams_slot_missing`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.amsSlotMissing`,`AMS slot {{slot}} not available on this printer`,{slot:(e.slot_index??0)+1})});case`filament_unverified`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentUnverified`,`Filament slot {{slot}} comes from a cloud / standard preset and could not be statically verified.`,{slot:(e.slot_index??0)+1})});default:return(0,G.jsx)(G.Fragment,{children:e.kind})}}function HW(e,t){return e??t??`bambu_studio`}var UW={bambu_studio:[`3mf`],orcaslicer:[`3mf`,`stl`,`step`,`stp`]};function WW(e){return UW[e]??UW.bambu_studio}var GW=[`3mf`,`stl`];function lje(e,t){let n=(e||``).toLowerCase();return WW(t).includes(n)}function uje(e,t){let n=e.toLowerCase();return n.endsWith(`.gcode`)||n.endsWith(`.gcode.3mf`)?!1:WW(t).some(e=>n.endsWith(`.${e}`))}function dje(e){let t=e.toLowerCase();return t.endsWith(`.gcode`)||t.endsWith(`.gcode.3mf`)?!1:GW.some(e=>t.endsWith(`.${e}`))}function fje(){let e=navigator.userAgent.toLowerCase(),t=navigator.platform?.toLowerCase()||``;return e.includes(`win`)||t.includes(`win`)?`windows`:e.includes(`mac`)||t.includes(`mac`)?`macos`:e.includes(`linux`)||t.includes(`linux`)?`linux`:`unknown`}function KW(e,t=`bambu_studio`){let n,r=encodeURIComponent(e);n=t===`orcaslicer`?`orcaslicer://open?file=${r}`:fje()===`macos`?`bambustudioopen://${r}`:`bambustudio://open?file=${r}`;let i=document.createElement(`a`);i.href=n,i.style.display=`none`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}function pje(e){let t=(e||``).toLowerCase();return GW.includes(t)}var mje=[[`projects`],[`project`],[`project-archives`],[`project-timeline`],[`project-file-progress`]];function hje(e){return Promise.all(mje.map(t=>e.invalidateQueries({queryKey:[...t]})))}function qW(e){return Promise.all([e.invalidateQueries({queryKey:[`archives`]}),hje(e)])}function gje(e,t){if(t===void 0)return e;let n=new Set([t]),r=!0;for(;r;){r=!1;for(let t of e)t.parent_id!==null&&n.has(t.parent_id)&&!n.has(t.id)&&(n.add(t.id),r=!0)}return e.filter(e=>!n.has(e.id))}function JW(e,t){return e.filter(e=>e.status!==`archived`||e.id===t)}function YW({onFiles:e,onRejected:t,extensions:n,disabled:r=!1}){let[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(e),s=(0,y.useRef)(t),c=(0,y.useRef)(n);(0,y.useEffect)(()=>{o.current=e},[e]),(0,y.useEffect)(()=>{s.current=t},[t]),(0,y.useEffect)(()=>{c.current=n},[n]);let l=(0,y.useCallback)(e=>{r||(e.preventDefault(),e.dataTransfer.types.includes(`Files`)&&a(!0))},[r]),u=(0,y.useCallback)(e=>{r||(e.preventDefault(),e.dataTransfer.types.includes(`Files`)&&a(!0))},[r]),d=(0,y.useCallback)(e=>{if(r)return;e.preventDefault();let t=e.currentTarget,n=e.relatedTarget;(!n||!t.contains(n))&&a(!1)},[r]),f=(0,y.useCallback)(e=>{if(r)return;e.preventDefault(),a(!1);let t=Array.from(e.dataTransfer.files);if(t.length===0)return;let n=c.current,i=n&&n.length>0?t.filter(e=>n.some(t=>e.name.toLowerCase().endsWith(t))):t;i.length>0?o.current(i):s.current?.()},[r]);return(0,y.useEffect)(()=>{if(!i)return;let e=()=>a(!1),t=t=>{t.key===`Escape`&&e()};return document.addEventListener(`drop`,e),document.addEventListener(`dragend`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`drop`,e),document.removeEventListener(`dragend`,e),document.removeEventListener(`keydown`,t)}},[i]),{isDraggingOver:i,dragHandlers:{onDragOver:l,onDragEnter:u,onDragLeave:d,onDrop:f}}}function _je({onClose:e,initialFiles:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(()=>t?.filter(e=>e.name.endsWith(`.3mf`)).map(e=>({file:e,status:`pending`}))||[]),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null);(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]);let f=q({mutationFn:e=>Z.uploadArchivesBulk(e),onSuccess:e=>{d(e),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archiveStats`]}),s(t=>t.map(t=>{let n=e.results.find(e=>e.filename===t.file.name),r=e.errors.find(e=>e.filename===t.file.name);return n?{...t,status:`success`,archiveId:n.id}:r?{...t,status:`error`,error:r.error}:t})),e.failed===0?i(`${e.uploaded} file${e.uploaded===1?``:`s`} uploaded`):e.uploaded===0?i(`Failed to upload ${e.failed} file${e.failed===1?``:`s`}`,`error`):i(`${e.uploaded} uploaded, ${e.failed} failed`,`warning`)},onError:()=>{s(e=>e.map(e=>({...e,status:`error`,error:`Upload failed`}))),i(`Upload failed`,`error`)}}),p=(0,y.useCallback)(e=>{e.preventDefault(),l(!0)},[]),m=(0,y.useCallback)(e=>{e.preventDefault(),l(!1)},[]),h=(0,y.useCallback)(e=>{e.preventDefault(),l(!1);let t=Array.from(e.dataTransfer.files).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))])},[]),g=(0,y.useCallback)(e=>{let t=Array.from(e.target.files||[]).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))]),a.current&&(a.current.value=``)},[]),_=(0,y.useCallback)(e=>{s(t=>t.filter((t,n)=>n!==e))},[]),v=()=>{if(o.length===0)return;let e=o.filter(e=>e.status===`pending`);e.length!==0&&(s(e=>e.map(e=>e.status===`pending`?{...e,status:`uploading`}:e)),f.mutate(e.map(e=>e.file)))},b=o.filter(e=>e.status===`pending`).length,x=f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-2xl max-h-[90vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:n(`uploadModal.title`)}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`border-2 border-dashed rounded-lg p-8 text-center transition-colors ${c?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,onDragOver:p,onDragLeave:m,onDrop:h,children:[(0,G.jsx)(Vu,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:n(`uploadModal.dragDrop`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mb-4`,children:n(`uploadModal.or`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>a.current?.click(),disabled:x,children:n(`uploadModal.browseFiles`)}),(0,G.jsx)(`input`,{ref:a,type:`file`,accept:`.3mf`,multiple:!0,className:`hidden`,onChange:g})]})}),(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`uploadModal.extractionInfo`)})}),o.length>0&&(0,G.jsx)(`div`,{className:`px-4 pb-4 max-h-60 overflow-y-auto`,children:(0,G.jsx)(`div`,{className:`space-y-2`,children:o.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(pc,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`flex-1 text-white text-sm truncate`,children:e.file.name}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[(e.file.size/(1024*1024)).toFixed(1),` MB`]}),e.status===`pending`&&(0,G.jsx)(`button`,{onClick:()=>_(t),className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,disabled:x,children:(0,G.jsx)(nd,{className:`w-4 h-4`})}),e.status===`uploading`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`}),e.status===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green`}),e.status===`error`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-red-700 dark:text-red-400`,children:e.error}),(0,G.jsx)(ys,{className:`w-4 h-4 text-red-600 dark:text-red-400`})]})]},`${e.file.name}-${t}`))})}),u&&(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`div`,{className:`p-3 bg-bambu-dark rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsx)(`span`,{className:`text-bambu-green`,children:u.uploaded}),` `,n(`uploadModal.uploaded`),u.failed>0&&(0,G.jsxs)(G.Fragment,{children:[`, `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:u.failed}),` `,n(`uploadModal.failed`)]})]})})}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:n(u?`common.close`:`common.cancel`)}),!u&&(0,G.jsx)(Q,{onClick:v,disabled:b===0||x,className:`flex-1`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`uploadModal.uploading`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`uploadModal.upload`),` `,b>0&&`(${b})`]})})]})]})})})}var vje=365;function yje({onClose:e,initialDays:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(t??vje),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(a);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>u(a),300);return()=>window.clearTimeout(e)},[a]);let d=K({queryKey:[`archive-purge-preview`,l,s],queryFn:()=>Z.previewArchivePurge(l,s),enabled:l>=1}),f=q({mutationFn:()=>Z.executeArchivePurge(a,s),onSuccess:t=>{i(n(`archivePurge.toast.success`,{count:t.deleted}),`success`),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archive-stats`]}),e()},onError:e=>i(e.message||n(`archivePurge.toast.failed`),`error`)});(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&!f.isPending&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,f.isPending]);let p=d.data,m=p?.count??0,h=p?.total_bytes??0,g=m>0&&!f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-lg w-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),n(`archivePurge.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-gray-400 hover:text-gray-600 dark:hover:text-gray-200`,"aria-label":n(`common.close`),disabled:f.isPending,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`archive-purge-days`,className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:n(`archivePurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`input`,{id:`archive-purge-days`,type:`number`,min:1,max:3650,value:a,onChange:e=>o(Math.max(1,Math.min(3650,parseInt(e.target.value||`0`,10)||0))),className:`w-24 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.days`)})]})]}),(0,G.jsxs)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/30 p-3`,children:[(0,G.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-gray-600 dark:text-gray-300 mb-2`,children:n(`archivePurge.effectsTitle`)}),(0,G.jsxs)(`ul`,{className:`text-xs text-gray-700 dark:text-gray-300 space-y-1 list-disc pl-4`,children:[(0,G.jsx)(`li`,{children:n(`archivePurge.effect1`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect2`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect3`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect4`)})]})]}),(0,G.jsx)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 p-3`,children:d.isLoading||d.isFetching?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,n(`archivePurge.previewLoading`)]}):d.isError?(0,G.jsx)(`div`,{className:`text-sm text-red-600 dark:text-red-400`,children:d.error?.message??n(`archivePurge.previewFailed`)}):(0,G.jsxs)(`div`,{className:`text-sm text-gray-900 dark:text-gray-100`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:n(`archivePurge.previewSummary`,{count:m,size:Gd(h)})}),p?.sample_filenames&&p.sample_filenames.length>0&&(0,G.jsxs)(`ul`,{className:`mt-2 text-xs text-gray-600 dark:text-gray-400 space-y-0.5 list-disc pl-4`,children:[p.sample_filenames.map(e=>(0,G.jsx)(`li`,{className:`truncate`,children:e},e)),m>p.sample_filenames.length&&(0,G.jsx)(`li`,{className:`list-none italic text-gray-500`,children:n(`archivePurge.andMore`,{count:m-p.sample_filenames.length})})]})]})}),(0,G.jsxs)(`label`,{className:`flex gap-2 items-start rounded border border-gray-200 dark:border-gray-700 px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked),disabled:f.isPending,className:`mt-0.5 shrink-0`}),(0,G.jsxs)(`span`,{className:`text-xs text-gray-700 dark:text-gray-300`,children:[(0,G.jsx)(`span`,{className:`font-medium block mb-0.5`,children:n(`archivePurge.purgeStatsLabel`)}),(0,G.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:n(`archivePurge.purgeStatsHint`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-start text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded px-3 py-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`archivePurge.warning`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-gray-200 dark:border-gray-700`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:f.isPending,children:n(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,disabled:!g,onClick:()=>f.mutate(),children:f.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}),n(`archivePurge.purging`)]}):n(`archivePurge.confirmCta`,{count:m})})]})]})})}function bje(e){if(!e||e<=0)return`—`;let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`}function xje(e){if(!e)return`—`;let t=rp(e);return t?t.toLocaleString():`—`}function XW({archiveId:e}){let{t}=U(),{data:n,isLoading:r}=K({queryKey:[`archive-runs`,e],queryFn:()=>Z.getArchiveRuns(e)});if(r)return(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-gray animate-spin`})});let i=n?.items||[];return i.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:t(`archives.runLog.empty`)}):(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.date`)}),(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.status`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.duration`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.filament`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 font-medium`,children:t(`archives.runLog.col.cost`)})]})}),(0,G.jsx)(`tbody`,{children:i.map(e=>{let n=e.status===`completed`?`text-bambu-green`:e.status===`failed`?`text-red-700 dark:text-red-400`:`text-bambu-gray`;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/40 last:border-0`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-bambu-gray-light`,children:xje(e.started_at||e.created_at)}),(0,G.jsxs)(`td`,{className:`py-1.5 pr-2 font-medium ${n}`,children:[t(`archives.runLog.status.${e.status}`,{defaultValue:e.status}),e.failure_reason&&(0,G.jsx)(`span`,{className:`block text-[10px] text-bambu-gray font-normal`,children:t(`editArchive.failureReasons.${e.failure_reason}`,{defaultValue:e.failure_reason})})]}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:bje(e.duration_seconds)}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:e.filament_used_grams==null?`—`:`${e.filament_used_grams.toFixed(1)} g`}),(0,G.jsx)(`td`,{className:`py-1.5 text-right text-bambu-gray-light`,children:e.cost==null?`—`:e.cost.toFixed(2)})]},e.id)})})]})})}var ZW=[`adhesionFailure`,`spaghettiDetached`,`layerShift`,`cloggedNozzle`,`filamentRunout`,`warping`,`stringing`,`underExtrusion`,`powerFailure`,`userCancelled`,`noStatusUpdate`,`other`],Sje=[`completed`,`failed`,`aborted`,`printing`],QW=1e5;function $W({archive:e,onClose:t,existingTags:n=[]}){let{t:r}=U();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let i=co(),[a,o]=(0,y.useState)(e.print_name||``),[s,c]=(0,y.useState)(e.printer_id),[l,u]=(0,y.useState)(e.project_id??null),[d,f]=(0,y.useState)(e.notes||``),[p,m]=(0,y.useState)(e.tags||``),[h,g]=(0,y.useState)(()=>{let t=e.failure_reason||``;return t?ZW.includes(t)?t:ZW.find(e=>r(`editArchive.failureReasons.${e}`)===t)||t:``}),_=h&&!ZW.includes(h)?h:null,[v,b]=(0,y.useState)(e.status),[x,S]=(0,y.useState)(e.quantity??1),[C,w]=(0,y.useState)(e.filament_used_grams==null?``:String(e.filament_used_grams)),[T,E]=(0,y.useState)(e.photos||[]),[D,O]=(0,y.useState)(e.external_url||``),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),N=(0,y.useRef)(null),P=(0,y.useRef)(null),F=(0,y.useRef)(null),{data:I}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:L}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:e=>[...e].sort((e,t)=>e.name.localeCompare(t.name))}),R=(0,y.useMemo)(()=>JW(L??[],e.project_id),[L,e.project_id]),{data:z}=K({queryKey:[`tags`],queryFn:Z.getTags,enabled:n.length===0}),B=n.length>0?n:z?.map(e=>e.name)||[],V=p.split(`,`).map(e=>e.trim()).filter(Boolean),ee=p.includes(`,`)?p.substring(p.lastIndexOf(`,`)+1).trim().toLowerCase():p.trim().toLowerCase(),te=B.filter(e=>!V.includes(e)&&(ee===``||e.toLowerCase().includes(ee))),ne=e=>{let t;t=ee&&!B.includes(ee)?p.includes(`,`)?p.substring(0,p.lastIndexOf(`,`)).split(`,`).map(e=>e.trim()).filter(Boolean):[]:V,t.includes(e)||m([...t,e].join(`, `)),F.current!==null&&clearTimeout(F.current),N.current?.focus()},re=e=>{m(V.filter(t=>t!==e).join(`, `))},ie=q({mutationFn:t=>Z.updateArchive(e.id,t),onSuccess:()=>{qW(i),i.invalidateQueries({queryKey:[`archive-runs`,e.id]}),t()}}),ae=async t=>{let n=t.target.files?.[0];if(n){A(!0);try{E((await Z.uploadArchivePhoto(e.id,n)).photos),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to upload photo:`,e)}finally{A(!1),P.current&&(P.current.value=``)}}},oe=async t=>{try{E((await Z.deleteArchivePhoto(e.id,t)).photos||[]),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to delete photo:`,e)}};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`editArchive.title`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n={print_name:a||void 0,printer_id:s,project_id:l,notes:d||void 0,tags:p||void 0,quantity:x,external_url:D||null};v!==e.status&&(n.status=v);let r=C.trim(),i=r===``?null:Number(r),o=i!==null&&!Number.isFinite(i),c=i===null?null:Math.min(Math.max(i,0),QW),u=e.filament_used_grams??null;!o&&c!==u&&(n.filament_used_grams=c),v===`failed`||v===`aborted`?n.failure_reason=h||void 0:(e.status===`failed`||e.status===`aborted`)&&(n.failure_reason=null),ie.mutate(n)},className:`p-6 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`archives.runLog.title`)}),(0,G.jsx)(XW,{archiveId:e.id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.name`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`editArchive.namePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.printer`)}),(0,G.jsxs)(`select`,{value:s??``,onChange:e=>c(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noPrinter`)}),I?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(_c,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.project`)]}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noProject`)}),R.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Fc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.itemsPrinted`)]}),(0,G.jsx)(`input`,{type:`number`,min:1,value:x,onChange:e=>S(Math.max(1,parseInt(e.target.value)||1)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.itemsPrintedHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,htmlFor:`archive-filament-grams`,children:[(0,G.jsx)(Xu,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.filamentUsed`)]}),(0,G.jsx)(`input`,{id:`archive-filament-grams`,type:`text`,inputMode:`decimal`,value:C,onChange:e=>{let t=e.target.value.replace(`,`,`.`);(t===``||/^\d*\.?\d*$/.test(t))&&w(t)},onBlur:()=>w(e=>{let t=Number(e);return e===``||!Number.isFinite(t)?``:String(Math.min(t,QW))}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`editArchive.filamentUsedPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.filamentUsedHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.notes`)}),(0,G.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none resize-none`,placeholder:r(`editArchive.notesPlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Zc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.externalLink`)]}),(0,G.jsx)(`input`,{type:`url`,value:D,onChange:e=>O(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`https://printables.com/model/...`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.externalLinkHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.tags`)}),V.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:V.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 bg-bambu-dark-tertiary rounded text-sm text-white`,children:[(0,G.jsx)(Eu,{className:`w-3 h-3`}),e,(0,G.jsx)(`button`,{type:`button`,onClick:()=>re(e),className:`ml-0.5 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{ref:N,type:`text`,value:p,onChange:e=>m(e.target.value),onFocus:()=>{F.current!==null&&clearTimeout(F.current),M(!0)},onBlur:()=>{F.current=window.setTimeout(()=>M(!1),200)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:V.length>0?r(`editArchive.addMoreTags`):r(`editArchive.tagsPlaceholder`)}),j&&te.length>0&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-10 max-h-40 overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`p-2 text-xs text-bambu-gray border-b border-bambu-dark-tertiary`,children:[ee?r(`editArchive.matchingTags`,{query:ee}):r(`editArchive.existingTags`),` `,r(`editArchive.clickToAdd`)]}),(0,G.jsx)(`div`,{className:`p-2 flex flex-wrap gap-1.5`,children:te.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>ne(e),className:`px-2 py-0.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded text-sm text-bambu-gray hover:text-white transition-colors`,children:e},e))})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.status`)}),(0,G.jsx)(`select`,{value:v,onChange:e=>{b(e.target.value),e.target.value===`completed`&&g(``)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:Sje.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.statuses.${e}`)},e))})]}),(v===`failed`||v===`aborted`)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`failure-reason-select`,className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.failureReason`)}),(0,G.jsxs)(`select`,{id:`failure-reason-select`,value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.selectReason`)}),ZW.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.failureReasons.${e}`)},e)),_&&(0,G.jsx)(`option`,{value:_,children:_})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(ss,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.photos`)]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:[T.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e.id,t),alt:r(`editArchive.printResult`),className:`w-20 h-20 object-cover rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>oe(t),className:`absolute -top-1 -right-1 p-1 bg-red-500 rounded-full can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`,children:(0,G.jsx)(Pu,{className:`w-3 h-3 text-white`})})]},t)),(0,G.jsxs)(`label`,{className:`w-20 h-20 flex items-center justify-center border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green transition-colors`,children:[(0,G.jsx)(`input`,{ref:P,type:`file`,accept:`image/jpeg,image/png,image/webp`,onChange:ae,className:`hidden`,disabled:k}),k?(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-gray animate-spin`}):(0,G.jsx)(Fl,{className:`w-6 h-6 text-bambu-gray`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`editArchive.photosHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:ie.isPending,className:`flex-1`,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),ie.isPending?r(`common.saving`):r(`common.save`)]})]})]})]})})}function eG({archiveId:e,archiveName:t,onClose:n}){let{t:r}=U();return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-2xl max-h-[85vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,title:t||``,children:r(`archives.runLog.modalTitle`,{name:t||r(`archives.runLog.modalTitleFallback`)})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-6 overflow-y-auto flex-1`,children:(0,G.jsx)(XW,{archiveId:e})})]})})}function tG({isOpen:e,onClose:t,columns:n,defaultColumns:r,onSave:i}){let{t:a}=U(),[o,s]=(0,y.useState)(n),[c,l]=(0,y.useState)(null),u=(0,y.useRef)(null);if((0,y.useEffect)(()=>{e&&s(n.map(e=>({...e})))},[e,n]),(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let d=e=>{s(t=>t.map((t,n)=>n===e?{...t,visible:!t.visible}:t))},f=(e,t)=>{t<0||t>=o.length||s(n=>{let r=[...n],[i]=r.splice(e,1);return r.splice(t,0,i),r})},p=(e,t)=>{u.current=t,l(t),e.dataTransfer.effectAllowed=`move`},m=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`;let n=u.current;n!==null&&n!==t&&(f(n,t),u.current=t,l(t))},h=e=>{e.preventDefault()},g=()=>{u.current=null,l(null)},_=()=>{s(r.map(e=>({...e})))},v=()=>{i(o),t()},b=o.filter(e=>e.visible).length;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsx)(zd,{className:`w-full max-w-md max-h-[80vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6 flex flex-col min-h-0`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:a(`inventory.configureColumns`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:[a(`inventory.configureColumnsDesc`),(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray/60`,children:[`(`,b,` `,a(`inventory.of`),` `,o.length,` `,a(`inventory.visible`),`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-1 overflow-y-auto flex-1 min-h-0 pr-1`,children:o.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg border transition-colors ${c===t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-tertiary/50`} ${e.visible?``:`opacity-50`}`,draggable:!0,onDragStart:e=>p(e,t),onDragOver:e=>m(e,t),onDrop:h,onDragEnd:g,children:[(0,G.jsx)(`div`,{className:`cursor-grab text-bambu-gray/50 hover:text-bambu-gray`,children:(0,G.jsx)(jc,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`flex-1 font-medium text-sm text-white`,children:e.label}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>f(t,t-1),disabled:t===0,className:`p-1 rounded text-bambu-gray hover:bg-bambu-dark-secondary disabled:opacity-30 disabled:cursor-not-allowed`,title:a(`inventory.moveUp`),children:(0,G.jsx)(gs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>f(t,t+1),disabled:t===o.length-1,className:`p-1 rounded text-bambu-gray hover:bg-bambu-dark-secondary disabled:opacity-30 disabled:cursor-not-allowed`,title:a(`inventory.moveDown`),children:(0,G.jsx)(ps,{className:`w-4 h-4`})})]}),(0,G.jsx)(`button`,{onClick:()=>d(t),className:`p-1.5 rounded transition-colors ${e.visible?`text-bambu-green hover:bg-bambu-green/10`:`text-bambu-gray/50 hover:bg-bambu-dark-secondary`}`,title:e.visible?a(`inventory.hideColumn`):a(`inventory.showColumn`),children:e.visible?(0,G.jsx)(ac,{className:`w-4 h-4`}):(0,G.jsx)(ic,{className:`w-4 h-4`})})]},e.id))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:_,className:`mr-auto`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),a(`inventory.reset`)]}),(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:a(`inventory.cancel`)}),(0,G.jsx)(Q,{onClick:v,children:a(`inventory.applyChanges`)})]})]})})})}function Cje({selectedIds:e,existingTags:t,onClose:n}){let r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(`add`);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let d=q({mutationFn:async()=>{let t=Array.from(s),n=0;for(let r of e)try{let e=await Z.getArchive(r),i=e.tags?e.tags.split(`,`).map(e=>e.trim()).filter(Boolean):[],a;a=l===`add`?[...new Set([...i,...t])]:i.filter(e=>!s.has(e)),await Z.updateArchive(r,{tags:a.join(`, `)}),n++}catch(e){throw console.error(`Failed to update archive ${r}:`,e),Error(`Failed on archive ${r}: ${e instanceof Error?e.message:`Unknown error`}`)}return{count:n,mode:l,tags:t}},onSuccess:({count:e,mode:t,tags:a})=>{r.invalidateQueries({queryKey:[`archives`]}),i(`${t===`add`?`Added`:`Removed`} ${a.length} tag${a.length===1?``:`s`} ${t===`add`?`to`:`from`} ${e} archive${e===1?``:`s`}`),n()},onError:e=>{i(e.message||`Failed to update tags`,`error`)}}),f=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},p=()=>{a.trim()&&!s.has(a.trim())&&(c(e=>new Set([...e,a.trim()])),o(``))};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:l===`add`?`Add Tags`:`Remove Tags`})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[l===`add`?`Add`:`Remove`,` tags for `,e.length,` selected archive`,e.length===1?``:`s`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:l===`add`?`primary`:`secondary`,onClick:()=>u(`add`),children:`Add Tags`}),(0,G.jsx)(Q,{size:`sm`,variant:l===`remove`?`primary`:`secondary`,onClick:()=>u(`remove`),children:`Remove Tags`})]}),l===`add`&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:`Enter new tag...`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),p())}}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:p,disabled:!a.trim(),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})})]}),t.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:`Existing tags:`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.map(e=>(0,G.jsx)(`button`,{onClick:()=>f(e),className:`px-2 py-1 rounded text-sm transition-colors ${s.has(e)?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray-light hover:bg-bambu-dark`}`,children:e},e))})]}),s.size>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:[`Tags to `,l===`add`?`add`:`remove`,`:`]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Array.from(s).map(e=>(0,G.jsxs)(`span`,{className:`px-2 py-1 rounded text-sm flex items-center gap-1 ${l===`add`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[e,(0,G.jsx)(`button`,{onClick:()=>f(e),className:`hover:opacity-70`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,className:`flex-1`,children:`Cancel`}),(0,G.jsx)(Q,{onClick:()=>d.mutate(),disabled:s.size===0||d.isPending,className:`flex-1`,children:d.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),`Processing...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),l===`add`?`Add Tags`:`Remove Tags`]})})]})]})})})}function wje({selectedIds:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(``),{data:s,isLoading:c}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects()}),l=(0,y.useMemo)(()=>s?JW([...s].sort((e,t)=>e.name.localeCompare(t.name))):void 0,[s]),u=a.trim().toLowerCase(),d=u?l?.filter(e=>e.name.toLowerCase().includes(u)):l,f=(l?.length??0)>5;(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let p=()=>qW(r),m=q({mutationFn:async t=>(await Z.addArchivesToProject(t,e),t),onSuccess:n=>{let r=s?.find(e=>e.id===n);p(),i(`Added ${e.length} archive${e.length===1?``:`s`} to "${r?.name}"`),t()},onError:()=>{i(`Failed to assign project`,`error`)}}),h=q({mutationFn:async()=>{for(let t of e)await Z.updateArchive(t,{project_id:null});return e.length},onSuccess:e=>{p(),i(`Removed ${e} archive${e===1?``:`s`} from project`),t()},onError:()=>{i(`Failed to remove from project`,`error`)}}),g=m.isPending||h.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-md max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(_c,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:`Assign to Project`})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,disabled:g,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-3 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Assign `,e.length,` selected archive`,e.length===1?``:`s`,` to a project`]}),c?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-gray`})}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>h.mutate(),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center shrink-0`,children:(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:`Remove from project`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray truncate`,children:`Clear project assignment`})]}),h.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]}),l&&l.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`or assign to`}),(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`})]}),f&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`archives.menu.searchProjects`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray text-sm focus:border-bambu-green focus:outline-none`})]}),d?.map(e=>(0,G.jsxs)(`button`,{onClick:()=>m.mutate(e.id),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full flex items-center justify-center shrink-0`,style:{backgroundColor:e.color?`${e.color}20`:`rgb(var(--bambu-green) / 0.2)`},children:(0,G.jsx)(_c,{className:`w-4 h-4`,style:{color:e.color||`rgb(var(--bambu-green))`}})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray truncate`,children:[e.archive_count,` archive`,e.archive_count===1?``:`s`,e.status&&` • ${e.status}`]})]}),m.isPending&&m.variables===e.id&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]},e.id)),(!l||l.length===0)&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-4`,children:`No projects yet. Create one from the Projects page.`}),l&&l.length>0&&d?.length===0&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray text-sm py-4`,children:`—`})]})]}),(0,G.jsx)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary shrink-0`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`flex-1`,disabled:g,children:`Cancel`})})]})})})}function Tje(e,t){return new Date(e,t+1,0).getDate()}function Eje(e,t){return new Date(e,t,1).getDay()}var Dje=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],Oje=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function kje({archives:e,onArchiveClick:t,highlightedArchiveId:n}){let r=new Date,[i,a]=(0,y.useState)(r.getMonth()),[o,s]=(0,y.useState)(r.getFullYear()),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),f=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||[];i.push(e),t.set(r,i)}),t},[e]),p=Tje(o,i),m=Eje(o,i),h=()=>{i===0?(a(11),s(o-1)):a(i-1)},g=()=>{i===11?(a(0),s(o+1)):a(i+1)},_=()=>{a(r.getMonth()),s(r.getFullYear())},v=[];for(let e=0;e{e!==c&&d(null),l(e)};return(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`button`,{onClick:h,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(hs,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[Dje[i],` `,o]}),(0,G.jsx)(`button`,{onClick:_,className:`px-2 py-1 text-xs bg-bambu-dark-tertiary hover:bg-bambu-green/20 text-bambu-gray hover:text-white rounded transition-colors`,children:`Today`})]}),(0,G.jsx)(`button`,{onClick:g,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(ms,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1 mb-1`,children:Oje.map(e=>(0,G.jsx)(`div`,{className:`text-center text-xs text-bambu-gray py-2`,children:e},e))}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1`,children:v.map((e,t)=>{if(e===null)return(0,G.jsx)(`div`,{className:`aspect-square`},`empty-${t}`);let n=`${o}-${String(i+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,a=f.get(n)||[],s=a.length>0,l=e===r.getDate()&&i===r.getMonth()&&o===r.getFullYear(),u=n===c,d=a.filter(e=>e.status===`completed`).length,p=a.filter(e=>e.status===`failed`).length;return(0,G.jsxs)(`button`,{onClick:()=>x(u?null:n),className:`aspect-square rounded-lg p-1 flex flex-col items-center justify-center transition-colors relative ${u?`bg-bambu-green text-white`:l?`bg-bambu-green/20 text-white ring-2 ring-bambu-green`:s?`bg-bambu-dark-tertiary hover:bg-bambu-dark-tertiary/70 text-white`:`hover:bg-bambu-dark-tertiary/50 text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium ${l&&!u?`text-bambu-green`:``}`,children:e}),s&&(0,G.jsxs)(`div`,{className:`absolute bottom-1 left-1/2 -translate-x-1/2 flex items-center gap-1`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${p>0&&d===0?`bg-red-400`:p>0?`bg-yellow-400`:`bg-green-400`}`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:a.length})]})]},e)})}),(0,G.jsx)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 text-center`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-white`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Prints this month`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-green-700 dark:text-green-400`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`completed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Successful`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-red-700 dark:text-red-400`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`failed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Failed`})]})]})})]}),(0,G.jsx)(`div`,{className:`lg:w-80 bg-bambu-dark rounded-xl p-4`,children:c?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:new Date(c+`T12:00:00`).toLocaleDateString(`en-US`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}),b.length>0?(0,G.jsx)(`div`,{className:`calendar-scroll space-y-2 max-h-96 overflow-y-auto`,children:b.map(e=>{let r=e.id===u||e.id===n;return(0,G.jsxs)(`button`,{onClick:()=>{d(e.id),t?.(e)},className:`w-full flex items-center gap-3 p-2 rounded-lg transition-colors text-left ${r?``:`hover:bg-bambu-dark-tertiary`}`,style:r?{outline:`4px solid #facc15`,outlineOffset:`2px`}:void 0,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:``,className:`w-12 h-12 rounded object-cover`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`3MF`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.print_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:e.status===`failed`?`text-red-700 dark:text-red-400`:`text-green-700 dark:text-green-400`,children:e.status===`failed`?`Failed`:`Completed`}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex gap-0.5`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e}},t))})]})]})]},e.id)})}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`No prints on this day`})]}):(0,G.jsx)(`div`,{className:`text-center py-8`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`Select a day to see prints`})})})]})}function nG({archiveId:e,archiveName:t,onClose:n}){let r=Z.getArchiveQRCodeUrl(e,300);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`QR Code`}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 flex flex-col items-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 text-center truncate max-w-full`,children:t}),(0,G.jsx)(`div`,{className:`bg-white p-4 rounded-lg mb-4`,children:(0,G.jsx)(`img`,{src:r,alt:`QR Code`,className:`w-64 h-64`})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4 text-center`,children:`Scan to open this archive`}),(0,G.jsxs)(Q,{onClick:()=>{let e=document.createElement(`a`);e.href=r,e.download=`${t}_qrcode.png`,e.click()},className:`w-full`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download QR Code`]})]})]})})}function rG({archiveId:e,archiveName:t,photos:n,onClose:r,onDelete:i}){let[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r(),e.key===`ArrowLeft`&&o(e=>Math.max(0,e-1)),e.key===`ArrowRight`&&o(e=>Math.min(n.length-1,e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,n.length]),(0,y.useEffect)(()=>{a>=n.length&&o(Math.max(0,n.length-1))},[n.length,a]),n.length===0)return r(),null;let l=n[a],u=Z.getArchivePhotoUrl(e,l);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-50`,onClick:r,children:[(0,G.jsxs)(`div`,{className:`relative w-full h-full flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 bg-black/50`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Photo `,a+1,` of `,n.length]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{let e=document.createElement(`a`);e.href=u,e.download=`${t}_photo_${a+1}.jpg`,e.click()},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download`]}),i&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{i&&c(!0)},className:`text-red-400 hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:r,className:`p-2 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-6 h-6`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-h-0 flex items-center justify-center p-4 relative overflow-hidden`,children:[a>0&&(0,G.jsx)(`button`,{onClick:()=>o(e=>e-1),className:`absolute left-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(hs,{className:`w-8 h-8 text-white`})}),(0,G.jsx)(`img`,{src:u,alt:`Photo ${a+1}`,className:`max-w-full max-h-full object-contain rounded-lg`,style:{maxHeight:`calc(100vh - 200px)`}}),ao(e=>e+1),className:`absolute right-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(ms,{className:`w-8 h-8 text-white`})})]}),n.length>1&&(0,G.jsx)(`div`,{className:`flex justify-center gap-2 p-4 bg-black/50`,children:n.map((t,n)=>(0,G.jsx)(`button`,{onClick:()=>o(n),className:`w-16 h-16 rounded-lg overflow-hidden border-2 transition-colors ${n===a?`border-bambu-green`:`border-transparent hover:border-bambu-gray`}`,children:(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e,t),alt:`Thumbnail ${n+1}`,className:`w-full h-full object-cover`})},t))})]}),s&&(0,G.jsx)(of,{title:`Delete Photo`,message:`Delete this photo? This cannot be undone.`,confirmText:`Delete`,variant:`danger`,onConfirm:()=>{i?.(l),c(!1)},onCancel:()=>c(!1)})]})}function iG(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`?null:OG(BigInt.prototype.toString),CG=typeof Symbol>`u`?null:OG(Symbol.prototype.toString),wG=OG(Object.prototype.hasOwnProperty),TG=OG(Object.prototype.toString),EG=OG(RegExp.prototype.test),DG=Uje(TypeError);function OG(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return dG(e,t,n)}}function Uje(e){return function(){return fG(e,[...arguments])}}function kG(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_G;if(oG&&oG(e,null),!gG(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Fje(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Wje(e){for(let t=0;t/g),Zje=cG(/\${[\w\W]*/g),Qje=cG(/^data-[\-\w.\u00B7-\uFFFF]+$/),$je=cG(/^aria-[\-\w]+$/),VG=cG(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),eMe=cG(/^(?:\w+script|data):/i),tMe=cG(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nMe=cG(/^html$/i),rMe=cG(/^[a-z][.\w]*(-[.\w]+)+$/i),HG=cG(/<[/\w!]/g),UG=cG(/<[/\w]/g),iMe=cG(/<\/no(script|embed|frames)/i),aMe=cG(/\/>/i),WG={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},oMe=function(){return typeof window>`u`?null:window},sMe=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},GG=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},KG=function(e,t,n,r){return wG(e,t)&&gG(e[t])?kG(r.base?AG(r.base):{},e[t],r.transform):n};function qG(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:oMe(),t=e=>qG(e);if(t.version=`3.4.13`,t.removed=[],!e||!e.document||e.document.nodeType!==WG.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=jG(d,`cloneNode`),p=jG(d,`remove`),m=jG(d,`nextSibling`),h=jG(d,`childNodes`),g=jG(d,`parentNode`),_=jG(d,`shadowRoot`),v=jG(d,`attributes`),y=o&&o.prototype?jG(o.prototype,`nodeType`):null,b=o&&o.prototype?jG(o.prototype,`nodeName`):null,x=o&&o.prototype?jG(o.prototype,`ownerDocument`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let S,C=``,w,T=!1,E=0,D=function(){if(E>0)throw DG(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},O=function(e){D(),E++;try{return S.createHTML(e)}finally{E--}},k=function(e){D(),E++;try{return S.createScriptURL(e)}finally{E--}},A=function(){return T||=(w=sMe(u,i),!0),w},j=n,M=j.implementation,N=j.createNodeIterator,P=j.createDocumentFragment,F=j.getElementsByTagName,I=r.importNode,L=GG();t.isSupported=typeof aG==`function`&&typeof g==`function`&&M&&M.createHTMLDocument!==void 0;let R=Yje,z=Xje,B=Zje,V=Qje,ee=$je,te=eMe,ne=tMe,re=rMe,ie=VG,ae=null,oe=kG({},[...MG,...NG,...PG,...FG,...IG]),se=null,H=kG({},[...LG,...RG,...zG,...BG]),ce=Object.seal(lG(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),le=null,ue=null,de=Object.seal(lG(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),fe=!0,pe=!0,me=!1,he=!0,ge=!1,_e=!0,ve=!1,ye=!1,be=null,xe=null,Se=!1,Ce=!1,we=!1,Te=!1,Ee=!0,De=!1,Oe=`user-content-`,ke=!0,Ae=!1,je={},Me=null,Ne=kG({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Pe=null,Fe=kG({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ie=null,Le=kG({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Re=`http://www.w3.org/1998/Math/MathML`,ze=`http://www.w3.org/2000/svg`,Be=`http://www.w3.org/1999/xhtml`,Ve=Be,He=!1,Ue=null,We=kG({},[Re,ze,Be],vG),Ge=sG([`mi`,`mo`,`mn`,`ms`,`mtext`]),Ke=kG({},Ge),qe=sG([`annotation-xml`]),Je=kG({},qe),Ye=kG({},[`title`,`style`,`font`,`a`,`script`]),Xe=null,Ze=[`application/xhtml+xml`,`text/html`],Qe=null,$e=null,et=n.createElement(`form`),U=function(e){return e instanceof RegExp||e instanceof Function},tt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if($e&&$e===e)return;(!e||typeof e!=`object`)&&(e={}),e=AG(e),Xe=Ze.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Qe=Xe===`application/xhtml+xml`?vG:_G,ae=KG(e,`ALLOWED_TAGS`,oe,{transform:Qe}),se=KG(e,`ALLOWED_ATTR`,H,{transform:Qe}),Ue=KG(e,`ALLOWED_NAMESPACES`,We,{transform:vG}),Ie=KG(e,`ADD_URI_SAFE_ATTR`,Le,{transform:Qe,base:Le}),Pe=KG(e,`ADD_DATA_URI_TAGS`,Fe,{transform:Qe,base:Fe}),Me=KG(e,`FORBID_CONTENTS`,Ne,{transform:Qe}),le=KG(e,`FORBID_TAGS`,AG({}),{transform:Qe}),ue=KG(e,`FORBID_ATTR`,AG({}),{transform:Qe}),je=wG(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?AG(e.USE_PROFILES):e.USE_PROFILES:!1,fe=e.ALLOW_ARIA_ATTR!==!1,pe=e.ALLOW_DATA_ATTR!==!1,me=e.ALLOW_UNKNOWN_PROTOCOLS||!1,he=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ge=e.SAFE_FOR_TEMPLATES||!1,_e=e.SAFE_FOR_XML!==!1,ve=e.WHOLE_DOCUMENT||!1,Ce=e.RETURN_DOM||!1,we=e.RETURN_DOM_FRAGMENT||!1,Te=e.RETURN_TRUSTED_TYPE||!1,Se=e.FORCE_BODY||!1,Ee=e.SANITIZE_DOM!==!1,De=e.SANITIZE_NAMED_PROPS||!1,ke=e.KEEP_CONTENT!==!1,Ae=e.IN_PLACE||!1,ie=Kje(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:VG,Ve=typeof e.NAMESPACE==`string`?e.NAMESPACE:Be,Ke=wG(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?AG(e.MATHML_TEXT_INTEGRATION_POINTS):kG({},Ge),Je=wG(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?AG(e.HTML_INTEGRATION_POINTS):kG({},qe);let t=wG(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?AG(e.CUSTOM_ELEMENT_HANDLING):lG(null);if(ce=lG(null),wG(t,`tagNameCheck`)&&U(t.tagNameCheck)&&(ce.tagNameCheck=t.tagNameCheck),wG(t,`attributeNameCheck`)&&U(t.attributeNameCheck)&&(ce.attributeNameCheck=t.attributeNameCheck),wG(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(ce.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),cG(ce),ge&&(pe=!1),we&&(Ce=!0),je&&(ae=kG({},IG),se=lG(null),je.html===!0&&(kG(ae,MG),kG(se,LG)),je.svg===!0&&(kG(ae,NG),kG(se,RG),kG(se,BG)),je.svgFilters===!0&&(kG(ae,PG),kG(se,RG),kG(se,BG)),je.mathMl===!0&&(kG(ae,FG),kG(se,zG),kG(se,BG))),de.tagCheck=null,de.attributeCheck=null,wG(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?de.tagCheck=e.ADD_TAGS:gG(e.ADD_TAGS)&&(ae===oe&&(ae=AG(ae)),kG(ae,e.ADD_TAGS,Qe))),wG(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?de.attributeCheck=e.ADD_ATTR:gG(e.ADD_ATTR)&&(se===H&&(se=AG(se)),kG(se,e.ADD_ATTR,Qe))),wG(e,`ADD_URI_SAFE_ATTR`)&&gG(e.ADD_URI_SAFE_ATTR)&&kG(Ie,e.ADD_URI_SAFE_ATTR,Qe),wG(e,`FORBID_CONTENTS`)&&gG(e.FORBID_CONTENTS)&&(Me===Ne&&(Me=AG(Me)),kG(Me,e.FORBID_CONTENTS,Qe)),wG(e,`ADD_FORBID_CONTENTS`)&&gG(e.ADD_FORBID_CONTENTS)&&(Me===Ne&&(Me=AG(Me)),kG(Me,e.ADD_FORBID_CONTENTS,Qe)),ke&&(ae[`#text`]=!0),ve&&kG(ae,[`html`,`head`,`body`]),ae.table&&(kG(ae,[`tbody`]),delete le.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw DG(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw DG(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=S;S=e.TRUSTED_TYPES_POLICY;try{C=O(``)}catch(e){throw S=t,e}}else e.TRUSTED_TYPES_POLICY===null?(S=void 0,C=``):(S===void 0&&(S=A()),S&&typeof C==`string`&&(C=O(``)));sG&&sG(e),$e=e},nt=kG({},[...NG,...PG,...qje]),rt=kG({},[...FG,...Jje]),it=function(e,t,n){return t.namespaceURI===Be?e===`svg`:t.namespaceURI===Re?e===`svg`&&(n===`annotation-xml`||Ke[n]):!!nt[e]},at=function(e,t,n){return t.namespaceURI===Be?e===`math`:t.namespaceURI===ze?e===`math`&&Je[n]:!!rt[e]},ot=function(e,t,n){return t.namespaceURI===ze&&!Je[n]||t.namespaceURI===Re&&!Ke[n]?!1:!rt[e]&&(Ye[e]||!nt[e])},st=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ve,tagName:`template`});let n=_G(e.tagName),r=_G(t.tagName);return Ue[e.namespaceURI]?e.namespaceURI===ze?it(n,t,r):e.namespaceURI===Re?at(n,t,r):e.namespaceURI===Be?ot(n,t,r):!!(Xe===`application/xhtml+xml`&&Ue[e.namespaceURI]):!1},ct=function(e){hG(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw DG(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},lt=function(e){ft(e);let t=h(e);if(t){let e=[];pG(t,t=>{hG(e,t)}),pG(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},ut=function(e,n){try{hG(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{hG(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(Ce||we)try{ct(n)}catch{}else try{n.setAttribute(e,``)}catch{}},dt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||se[Qe(i)]))try{e.removeAttribute(i)}catch{}}},ft=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===WG.element&&dt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},pt=function(e){if(!_e)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=y?y(e):e.nodeType;if(n===WG.processingInstruction||n===WG.comment&&EG(UG,e.data)){try{p(e)}catch{}continue}if(n===WG.element){let t=e,n=Qe(b?b(e):e.nodeName);try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&n!==`label`&&n!==`output`&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},mt=function(e){let t=null,r=null;if(Se)e=``+e;else{let t=yG(e,/^[\r\n\t ]+/);r=t&&t[0]}Xe===`application/xhtml+xml`&&Ve===Be&&(e=``+e+``);let i=S?O(e):e;if(Ve===Be)try{t=new l().parseFromString(i,Xe)}catch{}if(!t||!t.documentElement){t=M.createDocument(Ve,`template`,null);try{t.documentElement.innerHTML=He?C:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ve===Be?F.call(t,ve?`html`:`body`)[0]:ve?t.documentElement:a},ht=function(e){let t=x?x(e):e.ownerDocument;return N.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},gt=function(e){return e=bG(e,R,` `),e=bG(e,z,` `),e=bG(e,B,` `),e},_t=function(e){e.normalize();let t=x?x(e):e.ownerDocument,n=N.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=gt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&pG(i,e=>{yt(e.content)&&_t(e.content)})},vt=function(e){let t=b?b(e):null;return typeof t!=`string`||Qe(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},yt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===WG.documentFragment}catch{return!1}},bt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function xt(e,n,r){e.length!==0&&pG(e,e=>{e.call(t,n,r,$e)})}let St=function(e,t){return!!(_e&&e.hasChildNodes()&&!bt(e.firstElementChild)&&EG(HG,e.textContent)&&EG(HG,e.innerHTML)||_e&&e.namespaceURI===Be&&t===`style`&&bt(e.firstElementChild)||e.nodeType===WG.processingInstruction||_e&&e.nodeType===WG.comment&&EG(UG,e.data))},Ct=function(e,t,n){if(!le[t]&&Ot(t)&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,t)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(t)))return!1;if(ke&&!Me[t]){let t=g(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return ct(e),!0},wt=function(e,t,n,r){return e.length===0?t:t===n||t===r?AG(t):t},Tt=function(e,n){if(xt(L.beforeSanitizeElements,e,null),e!==n&&g(e)===null)return Ae&&ft(e),!0;if(vt(e))return ct(e),!0;let r=Qe(b?b(e):e.nodeName);if(ae=wt(L.uponSanitizeElement,ae,oe,be),xt(L.uponSanitizeElement,e,{tagName:r,allowedTags:ae}),e!==n&&g(e)===null)return Ae&&ft(e),!0;if(St(e,r))return ct(e),!0;if(le[r]||!(de.tagCheck instanceof Function&&de.tagCheck(r))&&!ae[r]){let t=Ct(e,r,n);return t===!1&&xt(L.afterSanitizeElements,e,null),t}if((y?y(e):e.nodeType)===WG.element&&!st(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&EG(iMe,e.innerHTML))return ct(e),!0;if(ge&&e.nodeType===WG.text){let n=gt(e.textContent);e.textContent!==n&&(hG(t.removed,{element:e.cloneNode()}),e.textContent=n)}return xt(L.afterSanitizeElements,e,null),!1},Et=function(e,t,r){if(ue[t]||_e&&t===`patchsrc`||_e&&t===`for`&&e!==`label`&&e!==`output`||Ee&&(t===`id`||t===`name`)&&(r in n||r in et))return!1;let i=se[t]||de.attributeCheck instanceof Function&&de.attributeCheck(t,e);if(!(pe&&EG(V,t))&&!(fe&&EG(ee,t))){if(!i){if(!(Ot(e)&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,e)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(e))&&(ce.attributeNameCheck instanceof RegExp&&EG(ce.attributeNameCheck,t)||ce.attributeNameCheck instanceof Function&&ce.attributeNameCheck(t,e))||t===`is`&&ce.allowCustomizedBuiltInElements&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,r)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(r))))return!1}else if(!Ie[t]&&!EG(ie,bG(r,ne,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&xG(r,`data:`)===0&&Pe[e])&&!(me&&!EG(te,bG(r,ne,``)))&&r)return!1}return!0},Dt=kG({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ot=function(e){return!Dt[_G(e)]&&EG(re,e)},kt=function(e,t,n,r){if(S&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return O(r);case`TrustedScriptURL`:return k(r)}return r},At=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),vt(e)?ct(e):mG(t.removed)}catch{ut(n,e)}},jt=function(e){xt(L.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||vt(e))return;se=wt(L.uponSanitizeAttribute,se,H,xe);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:se,forceKeepAttr:void 0},r=t.length,i=Qe(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Qe(o),u=c,d=o===`value`?u:Bje(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,xt(L.uponSanitizeAttribute,e,n),d=n.attrValue,De&&(l===`id`||l===`name`)&&xG(d,Oe)!==0&&(ut(o,e),d=Oe+d),_e&&EG(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ut(o,e);continue}if(l===`attributename`&&yG(d,`href`)){ut(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){ut(o,e);continue}if(!he&&EG(aMe,d)){ut(o,e);continue}if(ge&&(d=gt(d)),!Et(i,l,d)){ut(o,e);continue}d=kt(i,l,s,d),d!==u&&At(e,o,s,d)}}xt(L.afterSanitizeAttributes,e,null)},Mt=function(e){let t=null,n=ht(e);for(xt(L.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(xt(L.uponSanitizeShadowNode,t,null),Tt(t,e),jt(t),yt(t.content)&&Mt(t.content),(y?y(t):t.nodeType)===WG.element){let e=_(t);yt(e)&&(Nt(e),Mt(e))}xt(L.afterSanitizeShadowDOM,e,null)},Nt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Mt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===WG.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Qe(e)===`template`){let e=n.content;yt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);yt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(He=!e,He&&(e=``),typeof e!=`string`&&!bt(e)&&(e=Gje(e),typeof e!=`string`))throw DG(`dirty is not a string, aborting`);if(!t.isSupported)return e;ye?(ae=be,se=xe):tt(n),(L.uponSanitizeElement.length>0||L.uponSanitizeAttribute.length>0)&&(ae=AG(ae)),L.uponSanitizeAttribute.length>0&&(se=AG(se)),t.removed=[];let c=Ae&&typeof e!=`string`&&bt(e);if(c){pt(e);let t=b?b(e):e.nodeName;if(typeof t==`string`){let n=Qe(t);if(!ae[n]||le[n])throw lt(e),DG(`root node is forbidden and cannot be sanitized in-place`)}if(vt(e))throw lt(e),DG(`root node is clobbered and cannot be sanitized in-place`);try{Nt(e)}catch(t){throw lt(e),t}}else if(bt(e))i=mt(``),a=i.ownerDocument.importNode(e,!0),a.nodeType===WG.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Nt(a);else{if(!Ce&&!ge&&!ve&&e.indexOf(`<`)===-1)return S&&Te?O(e):e;if(i=mt(e),!i)return Ce?null:Te?C:``}i&&Se&&ct(i.firstChild);let l=c?e:i;try{let e=ht(l);for(;o=e.nextNode();)Tt(o,l),jt(o),yt(o.content)&&Mt(o.content)}catch(n){throw c&&(lt(e),pG(t.removed,e=>{e.element&&ft(e.element)})),n}if(c)return pG(t.removed,e=>{e.element&&ft(e.element)}),ge&&_t(e),e;if(Ce){if(ge&&_t(i),we)for(s=P.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(se.shadowroot||se.shadowrootmode)&&(s=I.call(r,s,!0)),s}let u=ve?i.outerHTML:i.innerHTML;return ve&&ae[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&EG(nMe,i.ownerDocument.doctype.name)&&(u=` -`+u),ge&&(u=gt(u)),S&&Te?O(u):u},t.setConfig=function(){tt(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),ye=!0,be=ae,xe=se},t.clearConfig=function(){$e=null,ye=!1,be=null,xe=null,S=w,C=``},t.isValidAttribute=function(e,t,n){return $e||tt({}),Et(Qe(e),Qe(t),n)},t.addHook=function(e,t){typeof t==`function`&&wG(L,e)&&hG(L[e],t)},t.removeHook=function(e,t){if(wG(L,e)){if(t!==void 0){let n=Rje(L[e],t);return n===-1?void 0:zje(L[e],n,1)[0]}return mG(L[e])}},t.removeHooks=function(e){wG(L,e)&&(L[e]=[])},t.removeAllHooks=function(){L=GG()},t}var JG=qG(),YG=Object.defineProperty,cMe=(e,t)=>{let n={};for(var r in e)YG(n,r,{get:e[r],enumerable:!0});return t||YG(n,Symbol.toStringTag,{value:`Module`}),n};function XG(e){this.content=e}XG.prototype={constructor:XG,find:function(e){for(var t=0;t>1}},XG.from=function(e){if(e instanceof XG)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new XG(t)};function ZG(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i=56320&&e<57344}function eK(e){return e>=55296&&e<56320}var tK=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;te&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);at)for(let e=0,a=0;at&&((an)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?rK(t+1,i):rK(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;ethis.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),n}};aK.none=[];var oK=class extends Error{},sK=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=lK(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(cK(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(tK.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};sK.empty=new sK(tK.empty,0,0);function cK(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(cK(a.content,t-i-1,n-i-1)))}function lK(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=lK(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function lMe(e,t,n){if(n.openStart>e.depth)throw new oK(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new oK(`Inconsistent open depths`);return uK(e,t,n,0)}function uK(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function mK(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(pK(e.nodeAfter,r),a++));for(let e=a;ei&&fK(e,t,i+1),o=r.depth>i&&fK(n,r,i+1),s=[];return mK(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(dK(a,o),pK(hK(a,gK(e,t,n,r,i+1)),s)):(a&&pK(hK(a,_K(e,t,i+1)),s),mK(t,n,i,s),o&&pK(hK(o,_K(n,r,i+1)),s)),mK(r,null,i,s),new tK(s)}function _K(e,t,n){let r=[];return mK(null,e,n,r),e.depth>n&&pK(hK(fK(e,t,n+1),_K(e,t,n+1)),r),mK(t,null,n,r),new tK(r)}function uMe(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(tK.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var vK=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new bK(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=yK.get(t);if(r)for(let e=0;ee&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),SK(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=tK.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;ee.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=tK.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};xK.prototype.text=void 0;var mMe=class e extends xK{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):SK(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function SK(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var CK=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new hMe(t,n);if(r.next==null)return e.empty;let i=wK(r);r.next&&r.err(`Unexpected trailing text`);let a=SMe(xMe(i));return CMe(a,r),a}matchType(e){for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n`+e.indexOf(t.next[n].next);return r}).join(` -`)}};CK.empty=new CK(!0);var hMe=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function wK(e){let t=[];do t.push(gMe(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function gMe(e){let t=[];do t.push(_Me(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function _Me(e){let t=bMe(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=vMe(e,t);else break;return t}function TK(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function vMe(e,t){let n=TK(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:TK(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function yMe(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function bMe(e){if(e.eat(`(`)){let t=wK(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=yMe(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function xMe(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new CK(r.indexOf(e.length-1)>-1);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:kK(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new xK(this,this.computeAttrs(e),tK.from(t),aK.setFrom(n))}createChecked(e=null,t,n){return t=tK.from(t),this.checkContent(t),new xK(this,this.computeAttrs(e),t,aK.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=tK.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(tK.empty,!0);return i?new xK(this,e,t.append(i),aK.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function wMe(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var TMe=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?wMe(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},NK=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=jK(e,r.attrs),this.excluded=null;let i=OK(this.attrs);this.instance=i?new aK(this,i):null}create(e=null){return!e&&this.instance?this.instance:new aK(this,kK(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t-1}},PK=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=XG.from(e.nodes),t.marks=XG.from(e.marks||{}),this.nodes=MK.compile(this.spec.nodes,this),this.marks=NK.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=CK.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?FK(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:FK(this,n.split(` `))}this.nodeFromJSON=e=>xK.fromJSON(this,e),this.markFromJSON=e=>aK.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof MK))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new mMe(n,n.defaultAttrs,e,aK.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function FK(e,t){let n=[];for(let r=0;r-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function EMe(e){return e.tag!=null}function DMe(e){return e.style!=null}var IK=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(EMe(e))this.tags.push(e);else if(DMe(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new WK(this,t,!1);return n.addAll(e,aK.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new WK(this,t,!0);return n.addAll(e,aK.none,t.from,t.to),sK.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r{n(e=GK(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=GK(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},LK={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},OMe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},RK={ol:!0,ul:!0},zK=1,BK=2,VK=4;function HK(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?zK:0)|(t===`full`?BK:0)}var UK=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=aK.none,this.match=i||(a&VK?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(tK.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&zK)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=tK.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(tK.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!LK.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},WK=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=HK(null,t.preserveWhitespace,0)|(n?VK:0);i=r?new UK(r.type,r.attrs,aK.none,!0,t.topMatch||r.type.contentMatch,a):n?new UK(null,null,aK.none,!0,null,a):new UK(e.schema.topNodeType,null,aK.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&BK?`full`:this.localPreserveWS||(r.options&zK)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,` -`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e(a.type?a.type.allowsMarkType(t.type):KK(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new UK(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=zK);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function kMe(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&RK.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function AMe(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function GK(e){let t={};for(let n in e)t[n]=e[n];return t}function KK(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,a=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&ZK(YK(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:ZK(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=JK(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return JK(e.marks)}};function JK(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function YK(e){return e.document||window.document}var XK=new WeakMap;function jMe(e){let t=XK.get(e);return t===void 0&&XK.set(e,t=MMe(e)),t}function MMe(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;iu)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=ZK(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var QK=65535,$K=2**16;function NMe(e,t){return e+t*$K}function eq(e){return e&QK}function PMe(e){return(e-(e&QK))/$K}var FMe=1,IMe=2,tq=4,nq=8,rq=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&nq)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&tq)>0}},iq=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=eq(e);if(!this.inverted)for(let e=0;ee)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:NMe(o/3,e-s),f=e==s?IMe:e==u?FMe:tq;return(t<0?e!=s:e!=u)&&(f|=nq),new rq(a,f,d)}r+=l-c}return n?e+r:new rq(e+r,0,null)}touches(e,t){let n=0,r=eq(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;te)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;nn&&t!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return cq.fromReplace(e,this.from,this.to,i)}invert(){return new dq(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};sq.jsonID(`addMark`,uq);var dq=class e extends sq{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new sK(lq(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return cq.fromReplace(e,this.from,this.to,n)}invert(){return new uq(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};sq.jsonID(`removeMark`,dq);var fq=class e extends sq{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return cq.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return cq.fromReplace(e,this.pos,this.pos+1,new sK(tK.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;rr.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,sK.fromJSON(t,n.slice),n.insert,!!n.structure)}};sq.jsonID(`replaceAround`,hq);function gq(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function LMe(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;ee.step(t)),a.forEach(t=>e.step(t))}function RMe(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof NK){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;ee.step(new dq(t.from,t.to,t.style)))}function _q(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t=0;t--)e.step(o[t])}function zMe(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function vq(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(nn;e--)t||r.index(e)>0?(t=!0,u=tK.from(r.node(e).copy(u)),d++):c--;let f=tK.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=tK.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new hq(i,a,i,a,new sK(r,0,0),n.length,!0))}function WMe(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&GMe(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Sq(e,t,n,a),_q(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new hq(c,l,c+1,l-1,new sK(tK.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&xq(e,t,n,a),!1}})}function xq(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Sq(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(` -`))}})}function GMe(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function KMe(e,t,n,r,i){let a=e.doc.nodeAt(t);if(!a)throw RangeError(`No node at given position`);n||=a.type;let o=n.create(r,null,i||a.marks);if(a.isLeaf)return e.replaceWith(t,t+a.nodeSize,o);if(!n.validContent(a.content))throw RangeError(`Invalid content for node type `+n.name);e.step(new hq(t,t+a.nodeSize,t+1,t+a.nodeSize-1,new sK(tK.from(o),0,0),1,!0))}function Cq(e,t,n=1,r){let i=e.resolve(t),a=i.depth-n,o=r&&r[r.length-1]||i.parent;if(a<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let e=i.depth-1,t=n-2;e>a;e--,t--){let n=i.node(e),a=i.index(e);if(n.type.spec.isolating)return!1;let o=n.content.cutByIndex(a,n.childCount),s=r&&r[t+1];s&&(o=o.replaceChild(0,s.type.create(s.attrs)));let c=r&&r[t]||n;if(!n.canReplace(a+1,n.childCount)||!c.type.validContent(o))return!1}let s=i.indexAfter(a),c=r&&r[0];return i.node(a).canReplaceWith(s,s,c?c.type:i.node(a+1).type)}function qMe(e,t,n=1,r){let i=e.doc.resolve(t),a=tK.empty,o=tK.empty;for(let e=i.depth,t=i.depth-n,s=n-1;e>t;e--,s--){a=tK.from(i.node(e).copy(a));let t=r&&r[s];o=tK.from(t?t.type.create(t.attrs,o):i.node(e).copy(o))}e.step(new mq(t,t,new sK(a.append(o),n,n),!0))}function wq(e,t){let n=e.resolve(t),r=n.index();return Tq(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function JMe(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i0?(i=r.node(e+1),o++,a=r.node(e).maybeChild(o)):(i=r.node(e).maybeChild(o-1),a=r.node(e+1)),i&&!i.isTextblock&&Tq(i,a)&&r.node(e).canReplace(o,o+1))return t;if(e==0)break;t=n<0?r.before(e):r.after(e)}}function YMe(e,t,n){let r=null,{linebreakReplacement:i}=e.doc.type.schema,a=e.doc.resolve(t-n),o=a.node().type;if(i&&o.inlineContent){let e=o.whitespace==`pre`,t=!!o.contentMatch.matchType(i);e&&!t?r=!1:!e&&t&&(r=!0)}let s=e.steps.length;if(r===!1){let r=e.doc.resolve(t+n);Sq(e,r.node(),r.before(),s)}o.inlineContent&&_q(e,t+n-1,o,a.node().contentMatchAt(a.index()),r==null);let c=e.mapping.slice(s),l=c.map(t-n);if(e.step(new mq(l,c.map(t+n,-1),sK.empty,!0)),r===!0){let t=e.doc.resolve(l);xq(e,t.node(),t.before(),e.steps.length)}return e}function XMe(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let e=r.depth-1;e>=0;e--){let t=r.index(e);if(r.node(e).canReplaceWith(t,t,n))return r.before(e+1);if(t>0)return null}if(r.parentOffset==r.parent.content.size)for(let e=r.depth-1;e>=0;e--){let t=r.indexAfter(e);if(r.node(e).canReplaceWith(t,t,n))return r.after(e+1);if(t=0;t--){let n=t==r.depth?0:r.pos<=(r.start(t+1)+r.end(t+1))/2?-1:1,a=r.index(t)+ +(n>0),o=r.node(t),s=!1;if(e==1)s=o.canReplace(a,a,i);else{let e=o.contentMatchAt(a).findWrapping(i.firstChild.type);s=e&&o.canReplaceWith(a,a,e[0])}if(s)return n==0?r.pos:n<0?r.before(t+1):r.after(t+1)}return null}function Oq(e,t,n=t,r=sK.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),a=e.resolve(n);return kq(i,a,r)?new mq(t,n,r):new ZMe(i,a,r).fit()}function kq(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}var ZMe=class{constructor(e,t,n){this.$from=e,this.$to=t,this.unplaced=n,this.frontier=[],this.placed=tK.empty;for(let t=0;t<=e.depth;t++){let n=e.node(t);this.frontier.push({type:n.type,match:n.contentMatchAt(e.indexAfter(t))})}for(let t=e.depth;t>0;t--)this.placed=tK.from(e.node(t).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,a=n.depth,o=r.depth;for(;a&&o&&i.childCount==1;)i=i.firstChild.content,a--,o--;let s=new sK(i,a,o);return e>-1?new hq(n.pos,e,this.$to.pos,this.$to.end(),s,t):s.size||n.pos!=this.$to.pos?new mq(n.pos,r.pos,s):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=t==1?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=Mq(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let i=e.firstChild;for(let e=this.depth;e>=0;e--){let{type:a,match:o}=this.frontier[e],s,c=null;if(t==1&&(i?o.matchType(i.type)||(c=o.fillBefore(tK.from(i),!1)):r&&a.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:e,parent:r,inject:c};if(t==2&&i&&(s=o.findWrapping(i.type)))return{sliceDepth:n,frontierDepth:e,parent:r,wrap:s};if(r&&o.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced;return Fq(e,-1)<=t?!1:(this.unplaced.size>1&&Fq(e,1)>n&&n++,this.unplaced=new sK(e,t+1,n),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Mq(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new sK(Aq(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new sK(Aq(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:i}){for(;this.depth>t;)this.closeFrontierNode();if(i)for(let e=0;e1||s==0||e.content.size)&&(u=t,l.push(Nq(e.mark(d.allowedMarks(e.marks)),c==1?s:0,c==o.childCount?f:-1)))}let p=c==o.childCount;p||(f=-1),this.placed=jq(this.placed,t,tK.from(l)),this.frontier[t].match=u,p&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let e=0,t=o;e1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){scan:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t=0;n--){let{match:t,type:r}=this.frontier[n],i=Pq(e,n,r,t,!0);if(!i||i.childCount)continue scan}return{depth:t,fit:a,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=jq(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=jq(this.placed,this.depth,tK.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(tK.empty,!0);e.childCount&&(this.placed=jq(this.placed,this.frontier.length,e))}};function Aq(e,t,n){return t==0?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Aq(e.firstChild.content,t-1,n)))}function jq(e,t,n){return t==0?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(jq(e.lastChild.content,t-1,n)))}function Mq(e,t){for(let n=0;n1&&(r=r.replaceChild(0,Nq(r.firstChild,t-1,r.childCount==1?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(tK.empty,!0)))),e.copy(r)}function Pq(e,t,n,r,i){let a=e.node(t),o=i?e.indexAfter(t):e.index(t);if(o==a.childCount&&!n.compatibleContent(a.type))return null;let s=r.fillBefore(a.content,!0,o);return s&&!QMe(n,a.content,o)?s:null}function QMe(e,t,n){for(let r=n;r0;e--,t--){let n=i.node(e).type.spec;if(n.defining||n.definingAsContext||n.isolating)break;o.indexOf(e)>-1?s=e:i.before(e)==t&&o.splice(1,0,-e)}let c=o.indexOf(s),l=[],u=r.openStart;for(let e=r.content,t=0;;t++){let n=e.firstChild;if(l.push(n),t==r.openStart)break;e=n.content}for(let e=u-1;e>=0;e--){let t=l[e],n=$Me(t.type);if(n&&!t.sameMarkup(i.node(Math.abs(s)-1)))u=e;else if(n||!t.type.isTextblock)break}for(let t=r.openStart;t>=0;t--){let s=(t+u+1)%(r.openStart+1),d=l[s];if(d)for(let t=0;t=0&&(e.replace(t,n,r),!(e.steps.length>d));s--){let e=o[s];e<0||(t=i.before(e),n=a.after(e))}}function Iq(e,t,n,r,i){if(tr){let t=i.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(tK.empty,!0))}return e}function tNe(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=XMe(e.doc,t,r.type);i!=null&&(t=n=i)}e.replaceRange(t,n,new sK(tK.from(r),0,0))}function nNe(e,t,n){let r=e.doc.resolve(t),i=e.doc.resolve(n);if(r.parent.isTextblock&&i.parent.isTextblock&&r.start()!=i.start()&&r.parentOffset==0&&i.parentOffset==0){let a=r.sharedDepth(n),o=!1;for(let e=r.depth;e>a;e--)r.node(e).type.spec.isolating&&(o=!0);for(let e=i.depth;e>a;e--)i.node(e).type.spec.isolating&&(o=!0);if(!o){for(let e=r.depth;e>0&&t==r.start(e);e--)t=r.before(e);for(let e=i.depth;e>0&&n==i.start(e);e--)n=i.before(e);r=e.doc.resolve(t),i=e.doc.resolve(n)}}let a=Lq(r,i);for(let t=0;t0&&(o||r.node(n-1).canReplace(r.index(n-1),i.indexAfter(n-1))))return e.delete(r.before(n),i.after(n))}for(let a=1;a<=r.depth&&a<=i.depth;a++)if(t-r.start(a)==r.depth-a&&n>r.end(a)&&i.end(a)-n!=i.depth-a&&r.start(a-1)==i.start(a-1)&&r.node(a-1).canReplace(r.index(a-1),i.index(a-1)))return e.delete(r.before(a),n);e.delete(t,n)}function Lq(e,t){let n=[],r=Math.min(e.depth,t.depth);for(let i=r;i>=0;i--){let r=e.start(i);if(rt.pos+(t.depth-i)||e.node(i).type.spec.isolating||t.node(i).type.spec.isolating)break;(r==t.start(i)||i==e.depth&&i==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&i&&t.start(i-1)==r-1)&&n.push(i)}return n}var Rq=class e extends sq{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return cq.fail(`No node at attribute step's position`);let n=Object.create(null);for(let e in t.attrs)n[e]=t.attrs[e];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return cq.fromReplace(e,this.pos,this.pos+1,new sK(tK.from(r),0,+!t.isLeaf))}getMap(){return iq.empty}invert(t){return new e(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.attr,this.value)}toJSON(){return{stepType:`attr`,pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!=`number`||typeof n.attr!=`string`)throw RangeError(`Invalid input for AttrStep.fromJSON`);return new e(n.pos,n.attr,n.value)}};sq.jsonID(`attr`,Rq);var zq=class e extends sq{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let n in e.attrs)t[n]=e.attrs[n];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return cq.ok(n)}getMap(){return iq.empty}invert(t){return new e(this.attr,t.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:`docAttr`,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!=`string`)throw RangeError(`Invalid input for DocAttrStep.fromJSON`);return new e(n.attr,n.value)}};sq.jsonID(`docAttr`,zq);var Bq=class extends Error{};Bq=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},Bq.prototype=Object.create(Error.prototype),Bq.prototype.constructor=Bq,Bq.prototype.name=`TransformError`;var Vq=class{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new aq}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new Bq(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,t=-1e9;for(let n=0;n{e=Math.min(e,i),t=Math.max(t,a)})}return e==1e9?null:{from:e,to:t}}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=sK.empty){let r=Oq(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new sK(tK.from(n),0,0))}delete(e,t){return this.replace(e,t,sK.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return eNe(this,e,t,n),this}replaceRangeWith(e,t,n){return tNe(this,e,t,n),this}deleteRange(e,t){return nNe(this,e,t),this}lift(e,t){return BMe(this,e,t),this}join(e,t=1){return YMe(this,e,t),this}wrap(e,t){return UMe(this,e,t),this}setBlockType(e,t=e,n,r=null){return WMe(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return KMe(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new Rq(e,t,n)),this}setDocAttribute(e,t){return this.step(new zq(e,t)),this}addNodeMark(e,t){return this.step(new fq(e,t)),this}removeNodeMark(e,t){let n=this.doc.nodeAt(e);if(!n)throw RangeError(`No node at position `+e);if(t instanceof aK)t.isInSet(n.marks)&&this.step(new pq(e,t));else{let r=n.marks,i,a=[];for(;i=t.isInSet(r);)a.push(new pq(e,i)),r=i.removeFromSet(r);for(let e=a.length-1;e>=0;e--)this.step(a[e])}return this}split(e,t=1,n){return qMe(this,e,t,n),this}addMark(e,t,n){return LMe(this,e,t,n),this}removeMark(e,t,n){return RMe(this,e,t,n),this}clearIncompatible(e,t,n){return _q(this,e,t,n),this}},Hq=Object.create(null),Uq=class{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new rNe(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;r--){let i=t<0?Xq(e.node(0),e.node(r),e.before(r+1),e.index(r),t,n):Xq(e.node(0),e.node(r),e.after(r+1),e.index(r)+1,t,n);if(i)return i}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new Yq(e.node(0))}static atStart(e){return Xq(e,e,0,0,1)||new Yq(e)}static atEnd(e){return Xq(e,e,e.content.size,e.childCount,-1)||new Yq(e)}static fromJSON(e,t){if(!t||!t.type)throw RangeError(`Invalid input for Selection.fromJSON`);let n=Hq[t.type];if(!n)throw RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Hq)throw RangeError(`Duplicate use of selection JSON ID `+e);return Hq[e]=t,t.prototype.jsonID=e,t}getBookmark(){return Kq.between(this.$anchor,this.$head).getBookmark()}};Uq.prototype.visible=!0;var rNe=class{constructor(e,t){this.$from=e,this.$to=t}},Wq=!1;function Gq(e){!Wq&&!e.parent.inlineContent&&(Wq=!0,console.warn(`TextSelection endpoint not pointing into a node with inline content (`+e.parent.type.name+`)`))}var Kq=class e extends Uq{constructor(e,t=e){Gq(e),Gq(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let r=t.resolve(n.map(this.head));if(!r.parent.inlineContent)return Uq.near(r);let i=t.resolve(n.map(this.anchor));return new e(i.parent.inlineContent?i:r,r)}replace(e,t=sK.empty){if(super.replace(e,t),t==sK.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(t){return t instanceof e&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new qq(this.anchor,this.head)}toJSON(){return{type:`text`,anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!=`number`||typeof n.head!=`number`)throw RangeError(`Invalid input for TextSelection.fromJSON`);return new e(t.resolve(n.anchor),t.resolve(n.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(t,n,r){let i=t.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let e=Uq.findFrom(n,r,!0)||Uq.findFrom(n,-r,!0);if(e)n=e.$head;else return Uq.near(n,r)}return t.parent.inlineContent||(i==0?t=n:(t=(Uq.findFrom(t,-r,!0)||Uq.findFrom(t,r,!0)).$anchor,t.pos0?0:1);i>0?o=0;o+=i){let r=t.child(o);if(!r.isAtom){let t=Xq(e,r,n+i,i<0?r.childCount:0,i,a);if(t)return t}else if(!a&&Jq.isSelectable(r))return Jq.create(e,n-(i<0?r.nodeSize:0));n+=r.nodeSize*i}return null}function Zq(e,t,n){let r=e.steps.length-1;if(r{o??=r}),e.setSelection(Uq.near(e.doc.resolve(o),n))}var Qq=1,$q=2,eJ=4,oNe=class extends Vq{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=$q,this}ensureMarks(e){return aK.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&$q)>0}addStep(e,t){super.addStep(e,t),this.updated&=-3,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||aK.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(t==null)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(n??=t,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),!this.selection.empty&&this.selection.to==t+e.length&&this.setSelection(Uq.near(this.selection.$to)),this}}setMeta(e,t){return this.meta[typeof e==`string`?e:e.key]=t,this}getMeta(e){return this.meta[typeof e==`string`?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=eJ,this}get scrolledIntoView(){return(this.updated&eJ)>0}};function tJ(e,t){return!t||!e?e:e.bind(t)}var nJ=class{constructor(e,t,n){this.name=e,this.init=tJ(t.init,n),this.apply=tJ(t.apply,n)}},sNe=[new nJ(`doc`,{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new nJ(`selection`,{init(e,t){return e.selection||Uq.atStart(t.doc)},apply(e){return e.selection}}),new nJ(`storedMarks`,{init(e){return e.storedMarks||null},apply(e,t,n,r){return r.selection.$cursor?e.storedMarks:null}}),new nJ(`scrollToSelection`,{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}})],rJ=class{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=sNe.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw RangeError(`Adding different instances of a keyed plugin (`+e.key+`)`);this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new nJ(e.key,e.spec.state,e))})}},iJ=class e{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;ne.toJSON())),e&&typeof e==`object`)for(let n in e){if(n==`doc`||n==`selection`)throw RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(t,n,r){if(!n)throw RangeError(`Invalid input for EditorState.fromJSON`);if(!t.schema)throw RangeError(`Required config field 'schema' missing`);let i=new rJ(t.schema,t.plugins),a=new e(i);return i.fields.forEach(e=>{if(e.name==`doc`)a.doc=xK.fromJSON(t.schema,n.doc);else if(e.name==`selection`)a.selection=Uq.fromJSON(a.doc,n.selection);else if(e.name==`storedMarks`)n.storedMarks&&(a.storedMarks=n.storedMarks.map(t.schema.markFromJSON));else{if(r)for(let i in r){let o=r[i],s=o.spec.state;if(o.key==e.name&&s&&s.fromJSON&&Object.prototype.hasOwnProperty.call(n,i)){a[e.name]=s.fromJSON.call(o,t,n[i],a);return}}a[e.name]=e.init(t,a)}}),a}};function aJ(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):r==`handleDOMEvents`&&(i=aJ(i,t,{})),n[r]=i}return n}var oJ=class{constructor(e){this.spec=e,this.props={},e.props&&aJ(e.props,this,this.props),this.key=e.key?e.key.key:cJ(`plugin`)}getState(e){return e[this.key]}},sJ=Object.create(null);function cJ(e){return e in sJ?e+`$`+ ++sJ[e]:(sJ[e]=0,e+`$`)}var lJ=class{constructor(e=`key`){this.key=cJ(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}},uJ=(e,t)=>e.selection.empty?!1:(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function dJ(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`backward`,e):n.parentOffset>0)?null:n}var fJ=(e,t,n)=>{let r=dJ(e,n);if(!r)return!1;let i=gJ(r);if(!i){let n=r.blockRange(),i=n&&vq(n);return i==null?!1:(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let a=i.nodeBefore;if(EJ(e,i,t,-1))return!0;if(r.parent.content.size==0&&(mJ(a,`end`)||Jq.isSelectable(a)))for(let n=r.depth;;n--){let o=Oq(e.doc,r.before(n),r.after(n),sK.empty);if(o&&o.slice.size1)break}return a.isAtom&&i.depth==r.depth-1?(t&&t(e.tr.delete(i.pos-a.nodeSize,i.pos).scrollIntoView()),!0):!1},cNe=(e,t,n)=>{let r=dJ(e,n);if(!r)return!1;let i=gJ(r);return i?pJ(e,i,t):!1},lNe=(e,t,n)=>{let r=_J(e,n);if(!r)return!1;let i=bJ(r);return i?pJ(e,i,t):!1};function pJ(e,t,n){let r=t.nodeBefore,i=t.pos-1;for(;!r.isTextblock;i--){if(r.type.spec.isolating)return!1;let e=r.lastChild;if(!e)return!1;r=e}let a=t.nodeAfter,o=t.pos+1;for(;!a.isTextblock;o++){if(a.type.spec.isolating)return!1;let e=a.firstChild;if(!e)return!1;a=e}let s=Oq(e.doc,i,o,sK.empty);if(!s||s.from!=i||s instanceof mq&&s.slice.size>=o-i)return!1;if(n){let t=e.tr.step(s);t.setSelection(Kq.create(t.doc,i)),n(t.scrollIntoView())}return!0}function mJ(e,t,n=!1){for(let r=e;r;r=t==`start`?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}var hJ=(e,t,n)=>{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`backward`,e):r.parentOffset>0)return!1;a=gJ(r)}let o=a&&a.nodeBefore;return!o||!Jq.isSelectable(o)?!1:(t&&t(e.tr.setSelection(Jq.create(e.doc,a.pos-o.nodeSize)).scrollIntoView()),!0)};function gJ(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function _J(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`forward`,e):n.parentOffset{let r=_J(e,n);if(!r)return!1;let i=bJ(r);if(!i)return!1;let a=i.nodeAfter;if(EJ(e,i,t,1))return!0;if(r.parent.content.size==0&&(mJ(a,`start`)||Jq.isSelectable(a))){let n=Oq(e.doc,r.before(),r.after(),sK.empty);if(n&&n.slice.size{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`forward`,e):r.parentOffset=0;t--){let n=e.node(t);if(e.index(t)+1{let n=e.selection,r=n instanceof Jq,i;if(r){if(n.node.isTextblock||!wq(e.doc,n.from))return!1;i=n.from}else if(i=Eq(e.doc,n.from,-1),i==null)return!1;if(t){let n=e.tr.join(i);r&&n.setSelection(Jq.create(n.doc,i-e.doc.resolve(i).nodeBefore.nodeSize)),t(n.scrollIntoView())}return!0},dNe=(e,t)=>{let n=e.selection,r;if(n instanceof Jq){if(n.node.isTextblock||!wq(e.doc,n.to))return!1;r=n.to}else if(r=Eq(e.doc,n.to,1),r==null)return!1;return t&&t(e.tr.join(r).scrollIntoView()),!0},fNe=(e,t)=>{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),a=i&&vq(i);return a==null?!1:(t&&t(e.tr.lift(i,a).scrollIntoView()),!0)},xJ=(e,t)=>{let{$head:n,$anchor:r}=e.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(t&&t(e.tr.insertText(` -`).scrollIntoView()),!0)};function SJ(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),a=n.indexAfter(-1),o=SJ(i.contentMatchAt(a));if(!o||!i.canReplaceWith(a,a,o))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,o.createAndFill());i.setSelection(Uq.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0},wJ=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof Yq||r.parent.inlineContent||i.parent.inlineContent)return!1;let a=SJ(i.parent.contentMatchAt(i.indexAfter()));if(!a||!a.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(Cq(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&vq(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)};function pNe(e){return(t,n)=>{if(t.selection instanceof Jq&&t.selection.node.isBlock){let{$from:e}=t.selection;return!e.parentOffset||!Cq(t.doc,e.pos)?!1:(n&&n(t.tr.split(e.pos).scrollIntoView()),!0)}if(!t.selection.$from.depth)return!1;let r=t.tr;!t.selection.empty&&(t.selection instanceof Kq||t.selection instanceof Yq)&&r.deleteSelection();let{$from:i}=r.selection,a=r.steps.length,o=[],s,c,l=!1,u=!1;for(let t=i.depth;;t--)if(i.node(t).isBlock){l=i.end(t)==i.pos+(i.depth-t),u=i.start(t)==i.pos-(i.depth-t),c=SJ(i.node(t-1).contentMatchAt(i.indexAfter(t-1)));let n=e&&e(i.parent,l,i);o.unshift(n||(l&&c?{type:c}:null)),s=t;break}else{if(t==1)return!1;o.unshift(null)}let d=i.pos,f=Cq(r.doc,d,o.length,o);if(f||=(o[0]=c?{type:c}:null,Cq(r.doc,d,o.length,o)),!f)return!1;if(r.split(d,o.length,o),!l&&u&&i.node(s).type!=c){let e=r.mapping.slice(a),t=e.map(i.before(s)),n=r.doc.resolve(t);c&&i.node(s-1).canReplaceWith(n.index(),n.index()+1,c)&&r.setNodeMarkup(e.map(i.before(s)),c)}return n&&n(r.scrollIntoView()),!0}}var mNe=pNe(),hNe=(e,t)=>{let{$from:n,to:r}=e.selection,i,a=n.sharedDepth(r);return a==0?!1:(i=n.before(a),t&&t(e.tr.setSelection(Jq.create(e.doc,i))),!0)},gNe=(e,t)=>(t&&t(e.tr.setSelection(new Yq(e.doc))),!0);function _Ne(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,a=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(a-1,a)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(a,a+1)||!(i.isTextblock||wq(e.doc,t.pos))?!1:(n&&n(e.tr.join(t.pos).scrollIntoView()),!0)}function EJ(e,t,n,r){let i=t.nodeBefore,a=t.nodeAfter,o,s,c=i.type.spec.isolating||a.type.spec.isolating;if(!c&&_Ne(e,t,n))return!0;let l=!c&&t.parent.canReplace(t.index(),t.index()+1);if(l&&(o=(s=i.contentMatchAt(i.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=tK.empty;for(let e=o.length-1;e>=0;e--)s=tK.from(o[e].create(null,s));s=tK.from(i.copy(s));let c=e.tr.step(new hq(t.pos-1,r,t.pos,r,new sK(s,1,0),o.length,!0)),l=c.doc.resolve(r+2*o.length);l.nodeAfter&&l.nodeAfter.type==i.type&&wq(c.doc,l.pos)&&c.join(l.pos),n(c.scrollIntoView())}return!0}let u=a.type.spec.isolating||r>0&&c?null:Uq.findFrom(t,1),d=u&&u.$from.blockRange(u.$to),f=d&&vq(d);if(f!=null&&f>=t.depth)return n&&n(e.tr.lift(d,f).scrollIntoView()),!0;if(l&&mJ(a,`start`,!0)&&mJ(i,`end`)){let r=i,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,c=1;for(;!s.isTextblock;s=s.firstChild)c++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=tK.empty;for(let e=o.length-1;e>=0;e--)r=tK.from(o[e].copy(r));n(e.tr.step(new hq(t.pos-o.length,t.pos+a.nodeSize,t.pos+c,t.pos+a.nodeSize-c,new sK(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function DJ(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,a=i.depth;for(;i.node(a).isInline;){if(!a)return!1;a--}return i.node(a).isTextblock?(n&&n(t.tr.setSelection(Kq.create(t.doc,e<0?i.start(a):i.end(a)))),!0):!1}}var OJ=DJ(-1),kJ=DJ(1);function vNe(e,t=null){return function(n,r){let{$from:i,$to:a}=n.selection,o=i.blockRange(a),s=o&&yq(o,e,t);return s?(r&&r(n.tr.wrap(o,s).scrollIntoView()),!0):!1}}function AJ(e,t=null){return function(n,r){let i=!1;for(let r=0;r{if(i)return!1;if(!(!r.isTextblock||r.hasMarkup(e,t)))if(r.type==e)i=!0;else{let t=n.doc.resolve(a),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&t.startIndex==0){if(t.$from.index(t.depth-1)==0)return!1;let e=o.resolve(t.start-2);a=new bK(e,e,t.depth),t.endIndex=0;e--)a=tK.from(n[e].type.create(n[e].attrs,a));e.step(new hq(t.start-(r?2:0),t.end,t.start,t.end,new sK(a,0,0),n.length,!0));let o=0;for(let e=0;et.childCount>0&&t.firstChild.type==e);return a?n?r.node(a.depth-1).type==e?wNe(t,n,e,a):TNe(t,n,a):!0:!1}}function wNe(e,t,n,r){let i=e.tr,a=r.end,o=r.$to.end(r.depth);aa;t--)e-=i.child(t).nodeSize,r.delete(e-1,e+1);let a=r.doc.resolve(n.start),o=a.nodeAfter;if(r.mapping.map(n.end)!=n.start+a.nodeAfter.nodeSize)return!1;let s=n.startIndex==0,c=n.endIndex==i.childCount,l=a.node(-1),u=a.index(-1);if(!l.canReplace(u+ +!s,u+1,o.content.append(c?tK.empty:tK.from(i))))return!1;let d=a.pos,f=d+o.nodeSize;return r.step(new hq(d-+!!s,f+ +!!c,d+1,f-1,new sK((s?tK.empty:tK.from(i.copy(tK.empty))).append(c?tK.empty:tK.from(i.copy(tK.empty))),+!s,+!c),+!s)),t(r.scrollIntoView()),!0}function ENe(e){return function(t,n){let{$from:r,$to:i}=t.selection,a=r.blockRange(i,t=>t.childCount>0&&t.firstChild.type==e);if(!a)return!1;let o=a.startIndex;if(o==0)return!1;let s=a.parent,c=s.child(o-1);if(c.type!=e)return!1;if(n){let r=c.lastChild&&c.lastChild.type==s.type,i=tK.from(r?e.create():null),o=new sK(tK.from(e.create(null,tK.from(s.type.create(null,i)))),r?3:1,0),l=a.start,u=a.end;n(t.tr.step(new hq(l-(r?3:1),u,l,u,o,1,!0)).scrollIntoView())}return!0}}var FJ=function(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t},IJ=function(e){let t=e.assignedSlot||e.parentNode;return t&&t.nodeType==11?t.host:t},LJ=null,RJ=function(e,t,n){let r=LJ||=document.createRange();return r.setEnd(e,n??e.nodeValue.length),r.setStart(e,t||0),r},DNe=function(){LJ=null},zJ=function(e,t,n,r){return n&&(BJ(e,t,n,r,-1)||BJ(e,t,n,r,1))},ONe=/^(img|br|input|textarea|hr)$/i;function BJ(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:VJ(e))){let n=e.parentNode;if(!n||n.nodeType!=1||HJ(e)||ONe.test(e.nodeName)||e.contentEditable==`false`)return!1;t=FJ(e)+(i<0?0:1),e=n}else if(e.nodeType==1){let n=e.childNodes[t+(i<0?-1:0)];if(n.nodeType==1&&n.contentEditable==`false`)if(n.pmViewDesc?.ignoreForSelection)t+=i;else return!1;else e=n,t=i<0?VJ(e):0}else return!1}}function VJ(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function kNe(e,t){for(;;){if(e.nodeType==3&&t)return e;if(e.nodeType==1&&t>0){if(e.contentEditable==`false`)return null;e=e.childNodes[t-1],t=VJ(e)}else if(e.parentNode&&!HJ(e))t=FJ(e),e=e.parentNode;else return null}}function ANe(e,t){for(;;){if(e.nodeType==3&&t2),aY=iY||(GJ?/Mac/.test(GJ.platform):!1),oY=GJ?/Win/.test(GJ.platform):!1,sY=/Android \d/.test(qJ),cY=!!KJ&&`webkitFontSmoothing`in KJ.documentElement.style,PNe=cY?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function FNe(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function lY(e,t){return typeof e==`number`?e:e[t]}function INe(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function uY(e,t,n){if(!_Y(t)&&t.left==0)return;let r=e.someProp(`scrollThreshold`)||0,i=e.someProp(`scrollMargin`)||5,a=e.dom.ownerDocument;for(let o=n||e.dom;o;){if(o.nodeType!=1){o=IJ(o);continue}let e=o,n=e==a.body,s=n?FNe(a):INe(e),c=0,l=0;if(t.tops.bottom-lY(r,`bottom`)&&(l=t.bottom-t.top>s.bottom-s.top?t.top+lY(i,`top`)-s.top:t.bottom-s.bottom+lY(i,`bottom`)),t.lefts.right-lY(r,`right`)&&(c=t.right-s.right+lY(i,`right`)),c||l)if(n)a.defaultView.scrollBy(c,l);else{let n=e.scrollLeft,r=e.scrollTop;l&&(e.scrollTop+=l),c&&(e.scrollLeft+=c);let i=e.scrollLeft-n,a=e.scrollTop-r;t={left:t.left-i,top:t.top-a,right:t.right-i,bottom:t.bottom-a}}let u=n?`fixed`:getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(u))break;o=u==`absolute`?o.offsetParent:IJ(o)}}function LNe(e){let t=e.dom.getBoundingClientRect(),n=Math.max(0,t.top),r,i;for(let a=(t.left+t.right)/2,o=n+1;o=n-20){r=t,i=s.top;break}}return{refDOM:r,refTop:i,stack:dY(e.dom)}}function dY(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=IJ(r));return t}function RNe({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;fY(n,r==0?0:r-t)}function fY(e,t){for(let n=0;n=s){o=Math.max(p.bottom,o),s=Math.min(p.top,s);let e=p.left>t.left?p.left-t.left:p.right=(p.left+p.right)/2));continue}}else p.top>t.top&&!c&&p.left<=t.left&&p.right>=t.left&&(c=u,l={left:Math.max(p.left,Math.min(p.right,t.left)),top:p.top});!n&&(t.left>=p.right&&t.top>=p.top||t.left>=p.left&&t.top>=p.bottom)&&(a=d+1)}}return!n&&c&&(n=c,i=l,r=0),n&&n.nodeType==3?BNe(n,i):!n||r&&n.nodeType==1?{node:e,offset:a}:mY(n,i)}function BNe(e,t){let n=e.nodeValue.length,r=document.createRange(),i;for(let a=0;a=(n.left+n.right)/2)};break}}return r.detach(),i||{node:e,offset:0}}function hY(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function VNe(e,t){let n=e.parentNode;return n&&/^li$/i.test(n.nodeName)&&t.left(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,a)}function UNe(e,t,n,r){let i=-1;for(let n=t,a=!1;n!=e.dom;){let t=e.docView.nearestDesc(n,!0),o;if(!t)return null;if(t.dom.nodeType==1&&(t.node.isBlock&&t.parent||!t.contentDOM)&&((o=t.dom.getBoundingClientRect()).width||o.height)&&(t.node.isBlock&&t.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(t.dom.nodeName)&&(!a&&o.left>r.left||o.top>r.top?i=t.posBefore:(!a&&o.right-1?i:e.docView.posFromDOM(t,n,-1)}function gY(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let n;cY&&i&&r.nodeType==1&&(n=r.childNodes[i-1]).nodeType==1&&n.contentEditable==`false`&&n.getBoundingClientRect().top>=t.top&&i--,r==e.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&t.top>r.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!=`BR`)&&(s=UNe(e,r,i,t))}s??=HNe(e,o,t);let c=e.docView.nearestDesc(o,!0);return{pos:s,inside:c?c.posAtStart-c.border:-1}}function _Y(e){return e.top=0&&i==r.nodeValue.length?(e--,a=1):n<0?e--:t++,bY(vY(RJ(r,e,t),a),a<0)}if(!e.state.doc.resolve(t-(a||0)).parent.inlineContent){if(a==null&&i&&(n<0||i==VJ(r))){let e=r.childNodes[i-1];if(e.nodeType==1)return xY(e.getBoundingClientRect(),!1)}if(a==null&&i=0)}if(a==null&&i&&(n<0||i==VJ(r))){let e=r.childNodes[i-1],t=e.nodeType==3?RJ(e,VJ(e)-+!o):e.nodeType==1&&(e.nodeName!=`BR`||!e.nextSibling)?e:null;if(t)return bY(vY(t,1),!1)}if(a==null&&i=0)}function bY(e,t){if(e.width==0)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function xY(e,t){if(e.height==0)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function SY(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}function KNe(e,t,n){let r=t.selection,i=n==`up`?r.$from:r.$to;return SY(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,n==`up`?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=yY(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(e.nodeType==1)t=e.getClientRects();else if(e.nodeType==3)t=RJ(e,0,e.nodeValue.length).getClientRects();else continue;for(let e=0;ei.top+1&&(n==`up`?r.top-i.top>(i.bottom-r.top)*2:i.bottom-r.bottom>(r.bottom-i.top)*2))return!1}}return!0})}var qNe=/[\u0590-\u08ac]/;function JNe(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,a=!i,o=i==r.parent.content.size,s=e.domSelection();return s?!qNe.test(r.parent.textContent)||!s.modify?n==`left`||n==`backward`?a:o:SY(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:a,anchorOffset:o}=e.domSelectionRange(),c=s.caretBidiLevel;s.modify(`move`,n,`character`);let l=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:u,focusOffset:d}=e.domSelectionRange(),f=u&&!l.contains(u.nodeType==1?u:u.parentNode)||t==u&&i==d;try{s.collapse(a,o),t&&(t!=a||i!=o)&&s.extend&&s.extend(t,i)}catch{}return c!=null&&(s.caretBidiLevel=c),f}):r.pos==r.start()||r.pos==r.end()}var CY=null,wY=null,TY=!1;function YNe(e,t,n){return CY==t&&wY==n?TY:(CY=t,wY=n,TY=n==`up`||n==`down`?KNe(e,t,n):JNe(e,t,n))}var EY=0,DY=1,OY=2,kY=3,AY=class{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=EY,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(e){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tFJ(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(t==0)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(r==null&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return r??n>0?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i=this.getDesc(r),a;if(i&&(!t||i.node))if(n&&(a=i.nodeDOM)&&!(a.nodeType==1?a.contains(e.nodeType==1?e:e.parentNode):a==e))n=!1;else return i}}getDesc(e){let t=e.pmViewDesc;for(let e=t;e;e=e.parent)if(e==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||i instanceof IY){r=e-t;break}t=a}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let e;n&&!(e=this.children[n-1]).size&&e instanceof jY&&e.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,!(!e||e.dom.parentNode==this.contentDOM);n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?FJ(e.dom)+1:0}}else{let e,r=!0;for(;e=n=i&&t<=s-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=a;for(let t=o;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=FJ(n.dom)+1;break}e-=n.size}r==-1&&(r=0)}if(r>-1&&(s>t||o==this.children.length-1)){t=s;for(let e=o+1;es&&at){let e=o;o=s,s=e}let n=document.createRange();n.setEnd(s.node,s.offset),n.setStart(o.node,o.offset),c.removeAllRanges(),c.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&e.type!=`selection`}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r=n:en){let r=n+i.border,o=a-i.border;if(e>=r&&t<=o){this.dirty=e==n||t==a?OY:DY,e==r&&t==o&&(i.contentLost||i.dom.parentNode!=this.contentDOM)?i.dirty=kY:i.markDirty(e-r,t-r);return}else i.dirty=i.dom==i.contentDOM&&i.dom.parentNode==this.contentDOM&&!i.children.length?OY:kY}n=a}this.dirty=OY}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=e==1?OY:DY;t.dirty{if(!i)return r;if(i.parent)return i.parent.posBeforeChild(i)})),!t.type.spec.raw){if(a.nodeType!=1){let e=document.createElement(`span`);e.appendChild(a),a=e}a.hasAttribute(`contenteditable`)||(a.contentEditable=`false`),a.classList.add(`ProseMirror-widget`)}super(e,[],a,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return this.dirty==EY&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return t?t(e):!1}ignoreMutation(e){return e.type!=`selection`||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}},XNe=class extends AY{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e==this.textDOM?this.posAtStart+t:this.posAtStart+(t?this.size:0)}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type===`characterData`&&e.target.nodeValue==e.oldValue}},MY=class e extends AY{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(t,n,r,i){let a=i.nodeViews[n.type.name],o=a&&a(n,i,r);return(!o||!o.dom)&&(o=qK.renderSpec(document,n.type.spec.toDOM(n,r),null,n.attrs)),new e(t,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&kY||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=kY&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),this.dirty!=EY){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty0&&(a=GY(a,0,t,r));for(let e=0;e{if(!c)return o;if(c.parent)return c.parent.posBeforeChild(c)},r,i),u=l&&l.dom,d=l&&l.contentDOM;if(n.isText){if(!u)u=document.createTextNode(n.text);else if(u.nodeType!=3)throw RangeError(`Text must be rendered as a DOM text node`)}else if(!u){let e=qK.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs);({dom:u,contentDOM:d}=e)}!d&&!n.isText&&u.nodeName!=`BR`&&(u.hasAttribute(`contenteditable`)||(u.contentEditable=`false`),n.type.spec.draggable&&(u.draggable=!0));let f=u;return u=HY(u,r,n),l?c=new ZNe(t,n,r,i,u,d||null,f,l):n.isText?new FY(t,n,r,i,u,f):new e(t,n,r,i,u,d||null,f)}parseRule(e){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace==`pre`&&(t.preserveWhitespace=`full`),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let e=this.children.length-1;e>=0;e--){let n=this.children[e];if(this.dom.contains(n.dom.parentNode)){t.contentElement=n.dom.parentNode;break}}if(!t.contentElement){let n=e&&e.find(t=>t.nodeType==1&&e.indexOf(t.parentNode)<0&&this.dom.contains(t));n?t.contentElement=n:t.getContent=()=>tK.empty}}return t}matchesNode(e,t,n){return this.dirty==EY&&e.eq(this.node)&&UY(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return+!this.node.isLeaf}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,a=i&&i.pos>-1?i:null,o=i&&i.pos<0,s=new $Ne(this,a&&a.node,e);nPe(this.node,this.innerDeco,(t,i,a)=>{t.spec.marks?s.syncToMarks(t.spec.marks,n,e,i):t.type.side>=0&&!a&&s.syncToMarks(i==this.node.childCount?aK.none:this.node.child(i).marks,n,e,i),s.placeWidget(t,e,r)},(t,a,c,l)=>{s.syncToMarks(t.marks,n,e,l);let u;s.findNodeMatch(t,a,c,l)||o&&e.state.selection.from>r&&e.state.selection.to-1&&s.updateNodeAt(t,a,c,u,e)||s.updateNextNode(t,a,c,e,l,r)||s.addNode(t,a,c,e,r),r+=t.nodeSize}),s.syncToMarks([],n,e,0),this.node.isTextblock&&s.addTextblockHacks(),s.destroyRest(),(s.changed||this.dirty==OY)&&(a&&this.protectLocalComposition(e,a),LY(this.contentDOM,this.children,e),iY&&rPe(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof Kq)||nt+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,a=iPe(this.node.content,e,n-t,r-t);return a<0?null:{node:i,pos:a,text:e}}else return{node:i,pos:-1,text:``}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&=void 0}let a=new XNe(this,i,t,r);e.input.compositionNodes.push(a),this.children=GY(this.children,n,n+r.length,e,a)}update(e,t,n,r){return this.dirty==kY||!e.sameMarkup(this.node)?!1:(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=EY}updateOuterDeco(e){if(UY(e,this.outerDeco))return;let t=this.nodeDOM.nodeType!=1,n=this.dom;this.dom=VY(this.dom,this.nodeDOM,BY(this.outerDeco,this.node,t),BY(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute(`draggable`))}get domAtom(){return this.node.isAtom}};function PY(e,t,n,r,i){HY(r,t,e);let a=new NY(void 0,e,t,n,r,r,r);return a.contentDOM&&a.updateChildren(i,0),a}var FY=class e extends NY{constructor(e,t,n,r,i,a){super(e,t,n,r,i,null,a)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return this.dirty==kY||this.dirty!=EY&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(t),(this.dirty!=EY||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=EY,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return e.type!=`characterData`&&e.type!=`selection`}slice(t,n,r){let i=this.node.cut(t,n),a=document.createTextNode(i.text);return new e(this.parent,i,this.outerDeco,this.innerDeco,a,a)}markDirty(e,t){super.markDirty(e,t),this.dom!=this.nodeDOM&&(e==0||t==this.nodeDOM.nodeValue.length)&&(this.dirty=kY)}get domAtom(){return!1}isText(e){return this.node.text==e}},IY=class extends AY{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==EY&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName==`IMG`}},ZNe=class extends NY{constructor(e,t,n,r,i,a,o,s){super(e,t,n,r,i,a,o),this.spec=s}update(e,t,n,r){if(this.dirty==kY)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}else if(!this.contentDOM&&!e.isLeaf)return!1;else return super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}};function LY(e,t,n){let r=e.firstChild,i=!1;for(let a=0;a>1,o=Math.min(a,e.length);for(;i-1)i>this.index&&(this.changed=!0,this.destroyBetween(this.index,i)),this.top=this.top.children[this.index];else{let r=MY.create(this.top,e[a],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,a++}}findNodeMatch(e,t,n,r){let i=-1,a;if(r>=this.preMatch.index&&(a=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&a.matchesNode(e,t,n))i=this.top.children.indexOf(a,this.index);else for(let r=this.index,a=Math.min(this.top.children.length,r+5);r0;){let s;for(;;)if(r){let e=n.children[r-1];if(e instanceof MY)n=e,r=e.children.length;else{s=e,r--;break}}else if(n==t)break outer;else r=n.parent.children.indexOf(n),n=n.parent;let c=s.node;if(c){if(c!=e.child(i-1))break;--i,a.set(s,i),o.push(s)}}return{index:i,matched:a,matches:o.reverse()}}function tPe(e,t){return e.type.side-t.type.side}function nPe(e,t,n,r){let i=t.locals(e),a=0;if(i.length==0){for(let n=0;na;)s.push(i[o++]);let m=a+f.nodeSize;if(f.isText){let e=m;o!e.inline):s.slice();r(f,h,t.forChild(a,f),p),a=m}}function rPe(e){if(e.nodeName==`UL`||e.nodeName==`OL`){let t=e.style.cssText;e.style.cssText=t+`; list-style: square !important`,window.getComputedStyle(e).listStyle,e.style.cssText=t}}function iPe(e,t,n,r){for(let i=0,a=0;i=n){if(a>=r&&c.slice(r-t.length-s,r-s)==t)return r-t.length;let e=s=0&&e+t.length+s>=n)return s+e;if(n==r&&c.length>=r+t.length-s&&c.slice(r-s,r-s+t.length)==t)return r}}return-1}function GY(e,t,n,r,i){let a=[];for(let o=0,s=0;o=n||u<=t?a.push(c):(ln&&a.push(c.slice(n-l,c.size,r)))}return a}function KY(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),a=i&&i.size==0,o=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let s=r.resolve(o),c,l;if(UJ(n)){for(c=o;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&Jq.isSelectable(e)&&i.parent&&!(e.isInline&&jNe(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;l=new Jq(o==e?s:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=o,i=o;for(let r=0;r{(n.anchorNode!=r||n.anchorOffset!=i)&&(t.removeEventListener(`selectionchange`,e.input.hideSelectionGuard),setTimeout(()=>{(!qY(e)||e.state.selection.visible)&&e.dom.classList.remove(`ProseMirror-hideselection`)},20))})}function oPe(e){let t=e.domSelection();if(!t)return;let n=e.cursorWrapper.dom,r=n.nodeName==`IMG`;r?t.collapse(n.parentNode,FJ(n)+1):t.collapse(n,0),!r&&!e.state.selection.visible&&ZJ&&QJ<=11&&(n.disabled=!0,n.disabled=!1)}function $Y(e,t){if(t instanceof Jq){let n=e.docView.descAt(t.from);n!=e.lastSelectedViewDesc&&(eX(e),n&&n.selectNode(),e.lastSelectedViewDesc=n)}else eX(e)}function eX(e){e.lastSelectedViewDesc&&=(e.lastSelectedViewDesc.parent&&e.lastSelectedViewDesc.deselectNode(),void 0)}function tX(e,t,n,r){return e.someProp(`createSelectionBetween`,r=>r(e,t,n))||Kq.between(t,n,r)}function nX(e){return e.editable&&!e.hasFocus()?!1:rX(e)}function rX(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(t.anchorNode.nodeType==3?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(t.focusNode.nodeType==3?t.focusNode.parentNode:t.focusNode))}catch{return!1}}function sPe(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return zJ(t.node,t.offset,n.anchorNode,n.anchorOffset)}function iX(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),a=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return a&&Uq.findFrom(a,t)}function aX(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function oX(e,t,n){let r=e.state.selection;if(r instanceof Kq){if(n.indexOf(`s`)>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let a=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return aX(e,new Kq(r.$anchor,a))}else if(!r.empty)return!1;else if(e.endOfTextblock(t>0?`forward`:`backward`)){let n=iX(e.state,t);return n&&n instanceof Jq?aX(e,n):!1}else if(!(aY&&n.indexOf(`m`)>-1)){let n=r.$head,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter,a;if(!i||i.isText)return!1;let o=t<0?n.pos-i.nodeSize:n.pos;return i.isAtom||(a=e.docView.descAt(o))&&!a.contentDOM?Jq.isSelectable(i)?aX(e,new Jq(t<0?e.state.doc.resolve(n.pos-i.nodeSize):n)):cY?aX(e,new Kq(e.state.doc.resolve(t<0?o:o+i.nodeSize))):!1:!1}}else if(r instanceof Jq&&r.node.isInline)return aX(e,new Kq(t>0?r.$to:r.$from));else{let n=iX(e.state,t);return n?aX(e,n):!1}}function sX(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function cX(e,t){let n=e.pmViewDesc;return n&&n.size==0&&(t<0||e.nextSibling||e.nodeName!=`BR`)}function lX(e,t){return t<0?cPe(e):lPe(e)}function cPe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,a,o=!1;for($J&&n.nodeType==1&&r0){if(n.nodeType!=1)break;{let e=n.childNodes[r-1];if(cX(e,-1))i=n,a=--r;else if(e.nodeType==3)n=e,r=n.nodeValue.length;else break}}else if(uX(n))break;else{let t=n.previousSibling;for(;t&&cX(t,-1);)i=n.parentNode,a=FJ(t),t=t.previousSibling;if(t)n=t,r=sX(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}o?dX(e,n,r):i&&dX(e,i,a)}function lPe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i=sX(n),a,o;for(;;)if(r{e.state==i&&JY(e)},50)}function fX(e,t){let n=e.state.doc.resolve(t);if(!(tY||oY)&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i1)return n.leftr.top&&i1)return n.left>r.left?`ltr`:`rtl`}}return getComputedStyle(e.dom).direction==`rtl`?`rtl`:`ltr`}function pX(e,t,n){let r=e.state.selection;if(r instanceof Kq&&!r.empty||n.indexOf(`s`)>-1||aY&&n.indexOf(`m`)>-1)return!1;let{$from:i,$to:a}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?`up`:`down`)){let n=iX(e.state,t);if(n&&n instanceof Jq)return aX(e,n)}if(!i.parent.inlineContent){let n=t<0?i:a,o=r instanceof Yq?Uq.near(n,t):Uq.findFrom(n,t);return o?aX(e,o):!1}return!1}function mX(e,t){if(!(e.state.selection instanceof Kq))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?`forward`:`backward`))return!0;let a=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(a&&!a.isText){let r=e.state.tr;return t<0?r.delete(n.pos-a.nodeSize,n.pos):r.delete(n.pos,n.pos+a.nodeSize),e.dispatch(r),!0}return!1}function hX(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function fPe(e){if(!rY||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&t.nodeType==1&&n==0&&t.firstChild&&t.firstChild.contentEditable==`false`){let n=t.firstChild;hX(e,n,`true`),setTimeout(()=>hX(e,n,`false`),20)}return!1}function pPe(e){let t=``;return e.ctrlKey&&(t+=`c`),e.metaKey&&(t+=`m`),e.altKey&&(t+=`a`),e.shiftKey&&(t+=`s`),t}function mPe(e,t){let n=t.keyCode,r=pPe(t);if(n==8||aY&&n==72&&r==`c`)return mX(e,-1)||lX(e,-1);if(n==46&&!t.shiftKey||aY&&n==68&&r==`c`)return mX(e,1)||lX(e,1);if(n==13||n==27)return!0;if(n==37||aY&&n==66&&r==`c`){let t=n==37?fX(e,e.state.selection.from)==`ltr`?-1:1:-1;return oX(e,t,r)||lX(e,t)}else if(n==39||aY&&n==70&&r==`c`){let t=n==39?fX(e,e.state.selection.from)==`ltr`?1:-1:1;return oX(e,t,r)||lX(e,t)}else if(n==38||aY&&n==80&&r==`c`)return pX(e,-1,r)||lX(e,-1);else if(n==40||aY&&n==78&&r==`c`)return fPe(e)||pX(e,1,r)||lX(e,1);else if(r==(aY?`m`:`c`)&&(n==66||n==73||n==89||n==90))return!0;return!1}function gX(e,t){e.someProp(`transformCopied`,n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:a}=t;for(;i>1&&a>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,a--;let e=r.firstChild;n.push(e.type.name,e.attrs==e.type.defaultAttrs?null:e.attrs),r=e.content}let o=e.someProp(`clipboardSerializer`)||qK.fromSchema(e.state.schema),s=wX(),c=s.createElement(`div`);c.appendChild(o.serializeFragment(r,{document:s}));let l=c.firstChild,u,d=0;for(;l&&l.nodeType==1&&(u=CX[l.nodeName.toLowerCase()]);){for(let e=u.length-1;e>=0;e--){let t=s.createElement(u[e]);for(;c.firstChild;)t.appendChild(c.firstChild);c.appendChild(t),d++}l=c.firstChild}return l&&l.nodeType==1&&l.setAttribute(`data-pm-slice`,`${i} ${a}${d?` -${d}`:``} ${JSON.stringify(n)}`),{dom:c,text:e.someProp(`clipboardTextSerializer`,n=>n(t,e))||t.content.textBetween(0,t.content.size,` + `,title:z(`printers:control`)?F(`printers.stop`):F(`printers.permission.noControl`),children:[(0,G.jsx)(bu,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`}),F(`printers.stop`)]})})()]})]})]})})(),(En?.length>0||W.vt_tray.length>0)&&r===`expanded`&&(()=>{let t=En.filter(e=>e.tray.length>1),n=En.filter(e=>e.tray.length===1),r=En.length>0&&W.vt_tray.length>0,g=!(r&&xe),_=e.nozzle_count===2||W?.temperatures?.nozzle_2!==void 0,v=pW[i]??1,y=e=>`${Math.round(e*v*1e3)/1e3}rem`,b=`3.5rem`,x={minWidth:b},S={minWidth:b,maxWidth:y(7.25)},C=e=>({gridTemplateColumns:`repeat(${e}, minmax(${b}, 1fr))`}),w=(W.state===`RUNNING`||W.state===`PAUSE`)&&Array.isArray(W.ams_mapping)?W.ams_mapping:[],T=e=>{let t=Math.max(1,e),n=`calc(${t} * ${b} + ${Math.max(0,t-1)} * 0.25rem + 1rem)`;return{flex:`1 1 ${n}`,minWidth:n}};return(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.filaments`)}),(0,G.jsx)(sAe,{state:W.ams_filament_backup,onClick:()=>be(!0)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`}),r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(cAe,{hidden:xe,onClick:Ce}),(0,G.jsx)(`div`,{className:`w-3 h-[2px] bg-bambu-dark-tertiary`})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.map(t=>{let n=XU(t.id,xn,wn,Cn);return(0,G.jsxs)(`div`,{style:T(4),className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex w-full min-h-7 items-center justify-between gap-2 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,G.jsx)(dW,{ams:t,printerId:e.id,label:yp(t.id,t.tray.length),amsLabels:pn,canEdit:z(`printers:update`),onSaved:mn,children:(0,G.jsx)(`span`,{className:`block truncate text-[length:var(--pc-t10,10px)] text-white font-medium cursor-default select-none`,children:pn?.[t.id]||yp(t.id,t.tray.length)})}),n?.kind===`inlet`?(0,G.jsx)(YU,{inlet:n.inlet,title:F(`printers.amsSwitchInletTooltip`,{inlet:n.inlet,side:gp[n.inlet]})}):_&&n?.kind===`nozzle`?(0,G.jsx)(JU,{side:n.side}):null]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[t.humidity!=null&&(0,G.jsx)(tW,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`humidity`}),compact:!0}),t.temp!=null&&(0,G.jsx)(`div`,{className:`mr-1`,children:(0,G.jsx)(nW,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`temperature`}),compact:!0})}),(W.supports_drying||W.drying_screen_only)&&(t.module_type===`n3f`||t.module_type===`n3s`)&&z(`printers:control`)&&(0,G.jsx)(`button`,{disabled:W.drying_screen_only||!!(t.dry_sf_reason?.length&&t.dry_time===0),onClick:e=>{t.dry_time>0?sr.mutate(t.id):Ze===t.id?Qe(null):yt(t,e.currentTarget)},className:`ml-1 flex items-center gap-0.5 px-1 py-0.5 rounded text-[length:var(--pc-t9,9px)] transition-colors ${t.dry_time>0?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:W.drying_screen_only||t.dry_sf_reason?.length?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:W.drying_screen_only?F(`printers.drying.screenOnly`):t.dry_time>0?F(`printers.drying.stop`):t.dry_sf_reason?.length?F(Xke(t.dry_sf_reason)):F(`printers.drying.start`),children:(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg bg-amber-50 dark:bg-amber-500/10 px-2 py-1 text-[length:var(--pc-t9,9px)]`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400 font-medium`,children:F(`printers.drying.active`)}),t.dry_filament&&(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70`,children:t.dry_target_temp==null?t.dry_filament:F(`printers.drying.targetSummary`,{filament:t.dry_filament,temp:t.dry_target_temp})}),(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70`,children:F(`printers.drying.timeRemaining`,{time:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`})}),!W.drying_screen_only&&(0,G.jsx)(`button`,{onClick:()=>sr.mutate(t.id),disabled:sr.isPending,className:`ml-auto text-amber-700 dark:text-amber-400 hover:text-amber-900 dark:hover:text-amber-300 transition-colors disabled:opacity-50`,title:F(`printers.drying.stop`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsx)(`div`,{className:`grid w-full gap-1`,style:C(4),children:[0,1,2,3].map(n=>{let r=t.tray[n]||t.tray.find(e=>e.id===n),i=r?.tray_type&&r.remain>=0,a=!r?.tray_type,g=rW(r),_=t.id*4+n,v=An===_,y=jn!==null&&jn===_,b=Mn!==null&&Mn===_,S=r?.tray_info_idx?cn?.[r.tray_info_idx]:null,C=ln?.[_],T=qp(C?.preset_id,r?.tray_info_idx)?C?.preset_name:void 0,E=(r?.tray_uuid||r?.tag_uid||Lp(e.serial_number,t.id,n))?.toUpperCase(),D=E?s?.[E]:void 0,O=Pp(D),k=o&&!m?p?.find(r=>r.printer_id===e.id&&r.ams_id===t.id&&r.tray_id===n):void 0,A=k?f?.find(e=>e.id===k.spoolman_spool_id):void 0,j=A&&(A.label_weight??0)>0?Math.round(Math.max(0,(A.label_weight??0)-A.weight_used)/(A.label_weight??1)*100):null,M=u?.(e.id,t.id,n),N=(()=>{let e=M?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),P=N===0&&i&&r.remain>0?null:N,I=O??j??P??(i?r.remain:null),L=O!==null||j!==null?`spoolman`:P===null?i?`ams`:void 0:`inventory`,R=r?.tray_type?{vendor:Kp(r)?`Bambu Lab`:`Generic`,profile:T||(A?[A.brand,A.slicer_filament_name?.split(`@`)[0].trim()||A.material].filter(Boolean).join(` `).trim():null)||M?.spool?.slicer_filament_name||S?.name||r.tray_sub_brands||r.tray_type,colorName:Df(r.tray_color||``,r.tray_sub_brands),colorHex:r.tray_color||null,kFactor:KU(r.k),fillLevel:I,trayUuid:r.tray_uuid||null,tagUid:r.tag_uid||null,fillSource:L}:null,B=Ir?.amsId===t.id&&Ir?.slotId===n,V=w.indexOf(_),ee=V>=0?`P${V+1}`:null,te=(0,G.jsxs)(`div`,{className:`relative w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${a?`opacity-50`:``} ${y?`ring-2 ring-amber-400 ring-offset-1 ring-offset-bambu-dark animate-pulse`:b?`ring-2 ring-red-500/60 ring-offset-1 ring-offset-bambu-dark`:v?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[y&&(0,G.jsx)(`span`,{"aria-label":F(`printers.expectedSlot.ariaLabel`,{n:n+1}),title:F(`printers.expectedSlot.title`),className:`absolute top-0.5 left-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-amber-400 rounded pointer-events-none leading-none`,children:`↓`}),ee&&(0,G.jsx)(`span`,{"aria-label":F(`printers.activeJobSlot.ariaLabel`,{n:V+1}),title:F(`printers.activeJobSlot.title`,{n:V+1}),className:`absolute top-0.5 right-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-bambu-green rounded pointer-events-none leading-none`,children:ee}),(0,G.jsx)(UU,{trayColor:r?.tray_color,trayType:r?.tray_type,isEmpty:a,emptyKind:g,slotNumber:n+1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] text-white font-bold truncate`,children:r?.tray_type||F(g===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:R?r?.k:null,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:I!==null&&I>=0&&!a&&r&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${I}%`,backgroundColor:Np(I)}})})]});return(0,G.jsxs)(`div`,{className:`relative group w-full`,style:x,children:[B&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-green animate-spin`})}),R?(0,G.jsx)(xH,{data:R,actions:xi({amsId:t.id,slotId:n,loadTrayId:t.id*4+n,isRefreshing:B}),spoolman:{enabled:o,linkedSpoolId:k?.spoolman_spool_id??(E?s?.[E]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!k&&!M?()=>{let r=(R.trayUuid||R.tagUid||Lp(e.serial_number,t.id,n)).toUpperCase();Lt({tagUid:R.tagUid||r,trayUuid:R.trayUuid||``,printerId:e.id,amsId:t.id,trayId:n})}:void 0,onUnlinkSpool:D?.id?()=>rr.mutate(D.id):void 0},inventory:(()=>{if(o){if(m)return;let i=k,a=A;return{assignedSpool:a?{id:a.id,material:a.material,subtype:a.subtype,brand:a.brand??null,color_name:a.color_name??null,rgba:a.rgba??null,extra_colors:a.extra_colors??null,effect_type:a.effect_type??null,remainingWeightGrams:a.label_weight?Math.max(0,Math.round(a.label_weight-a.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:r?.tray_type||R.profile,material:r?.tray_type??void 0,profile:R.profile,color:R.colorHex||``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),onUnassignSpool:a&&!Kp(r)?()=>h?.(a.id):void 0,isAssigned:!!i||Kp(r)}}let i=u?.(e.id,t.id,n);return{assignedSpool:i?.spool?{id:i.spool.id,material:i.spool.material,subtype:i.spool.subtype,brand:i.spool.brand,color_name:i.spool.color_name,rgba:i.spool.rgba??null,extra_colors:i.spool.extra_colors??null,effect_type:i.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(i.spool.label_weight-i.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:r?.tray_type||R.profile,material:r?.tray_type??void 0,profile:R.profile,color:R.colorHex||``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),onUnassignSpool:i&&!Kp(r)?()=>d?.(e.id,t.id,n):void 0,isAssigned:!!i||Kp(r)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:n,trayCount:t.tray.length,trayType:r?.tray_type||void 0,trayColor:r?.tray_color||void 0,traySubBrands:r?.tray_sub_brands||void 0,trayInfoIdx:r?.tray_info_idx||void 0,extruderId:vp(t.id,r?.id??0,xn,wn),caliIdx:r?.cali_idx,savedPresetId:C?.preset_id})},children:te}):(0,G.jsx)(SH,{kind:g??void 0,actions:xi({amsId:t.id,slotId:n,loadTrayId:t.id*4+n,isRefreshing:B}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:n,trayCount:t.tray.length,extruderId:vp(t.id,r?.id??0,xn,wn)})},onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:n,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`${yp(t.id,t.tray.length)} Slot ${n+1}`}}),children:te})]},n)})})]},t.id)}),n.map(t=>{let n=XU(t.id,xn,wn,Cn),r=t.tray[0],i=r?.tray_type&&r.remain>=0,g=!r?.tray_type,v=rW(r),x=Mp(t.id,r?.id??0,!1),C=An===x,T=jn!==null&&jn===x,E=Mn!==null&&Mn===x,D=r?.tray_info_idx?cn?.[r.tray_info_idx]:null,O=ln?.[x],k=qp(O?.preset_id,r?.tray_info_idx)?O?.preset_name:void 0,A=r?.id??0,j=(r?.tray_uuid||r?.tag_uid||Lp(e.serial_number,t.id,A))?.toUpperCase(),M=j?s?.[j]:void 0,N=Pp(M),P=u?.(e.id,t.id,A),I=(()=>{let e=P?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),L=I===0&&i&&r.remain>0?null:I,R=o&&!m?p?.find(n=>n.printer_id===e.id&&n.ams_id===t.id&&n.tray_id===A):void 0,B=R?f?.find(e=>e.id===R.spoolman_spool_id):void 0,V=B&&(B.label_weight??0)>0?Math.round(Math.max(0,(B.label_weight??0)-B.weight_used)/(B.label_weight??1)*100):null,ee=N??V??L??(i?r.remain:null),te=N!==null||V!==null?`spoolman`:L===null?i?`ams`:void 0:`inventory`,ne=r?.tray_type?{vendor:Kp(r)?`Bambu Lab`:`Generic`,profile:k||(B?[B.brand,B.slicer_filament_name?.split(`@`)[0].trim()||B.material].filter(Boolean).join(` `).trim():null)||P?.spool?.slicer_filament_name||D?.name||r.tray_sub_brands||r.tray_type,colorName:Df(r.tray_color||``,r.tray_sub_brands),colorHex:r.tray_color||null,kFactor:KU(r.k),fillLevel:ee,trayUuid:r.tray_uuid||null,tagUid:r.tag_uid||null,fillSource:te}:null,re=Ir?.amsId===t.id&&Ir?.slotId===A,ie=w.indexOf(x),ae=ie>=0?`P${ie+1}`:null,oe=(0,G.jsxs)(`div`,{className:`relative w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${g?`opacity-50`:``} ${T?`ring-2 ring-amber-400 ring-offset-1 ring-offset-bambu-dark animate-pulse`:E?`ring-2 ring-red-500/60 ring-offset-1 ring-offset-bambu-dark`:C?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[T&&(0,G.jsx)(`span`,{"aria-label":F(`printers.expectedSlot.ariaLabel`,{n:1}),title:F(`printers.expectedSlot.title`),className:`absolute top-0.5 left-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-amber-400 rounded pointer-events-none leading-none`,children:`↓`}),ae&&(0,G.jsx)(`span`,{"aria-label":F(`printers.activeJobSlot.ariaLabel`,{n:ie+1}),title:F(`printers.activeJobSlot.title`,{n:ie+1}),className:`absolute top-0.5 right-0.5 px-1 py-px text-[length:var(--pc-t8,8px)] font-bold text-bambu-dark bg-bambu-green rounded pointer-events-none leading-none`,children:ae}),(0,G.jsx)(UU,{trayColor:r?.tray_color,trayType:r?.tray_type,isEmpty:g,emptyKind:v,slotNumber:1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] text-white font-bold truncate`,children:r?.tray_type||F(v===`reset`?`ams.slotUnconfigured`:`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:ne?r?.k:null,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:ee!==null&&ee>=0&&!g&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${ee}%`,backgroundColor:Np(ee)}})})]}),se=y(11);return(0,G.jsxs)(`div`,{style:{flex:`1 1 ${se}`,minWidth:se,maxWidth:`calc(4 * ${b} + 3 * 0.25rem + 1rem)`},className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex w-full min-h-7 items-center gap-1.5 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,G.jsx)(dW,{ams:t,printerId:e.id,label:yp(t.id,t.tray.length),amsLabels:pn,canEdit:z(`printers:update`),onSaved:mn,children:(0,G.jsx)(`span`,{className:`block truncate text-[length:var(--pc-t10,10px)] text-white font-medium cursor-default select-none`,children:pn?.[t.id]||yp(t.id,t.tray.length)})}),n?.kind===`inlet`?(0,G.jsx)(YU,{inlet:n.inlet,title:F(`printers.amsSwitchInletTooltip`,{inlet:n.inlet,side:gp[n.inlet]})}):_&&n?.kind===`nozzle`?(0,G.jsx)(JU,{side:n.side}):null]}),(W.supports_drying||W.drying_screen_only)&&(t.module_type===`n3f`||t.module_type===`n3s`)&&z(`printers:control`)&&(0,G.jsx)(`div`,{className:`relative ml-auto`,children:(0,G.jsx)(`button`,{disabled:W.drying_screen_only,onClick:e=>{t.dry_time>0?sr.mutate(t.id):Ze===t.id?Qe(null):yt(t,e.currentTarget)},className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[length:var(--pc-t9,9px)] transition-colors ${t.dry_time>0?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:W.drying_screen_only?`bg-bambu-dark text-bambu-gray/50 cursor-not-allowed`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark/80`}`,title:W.drying_screen_only?F(`printers.drying.screenOnly`):t.dry_time>0?F(`printers.drying.stop`):F(`printers.drying.start`),children:(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})})]}),t.dry_time>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 overflow-hidden whitespace-nowrap rounded-lg bg-amber-50 dark:bg-amber-500/10 px-2 py-1 text-[length:var(--pc-t9,9px)]`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-amber-600 dark:text-amber-400 shrink-0`}),t.dry_filament&&(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70 text-[length:var(--pc-t8,8px)] truncate`,children:t.dry_target_temp==null?t.dry_filament:F(`printers.drying.targetSummary`,{filament:t.dry_filament,temp:t.dry_target_temp})}),(0,G.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/70 text-[length:var(--pc-t8,8px)] truncate`,children:t.dry_time>=60?`${Math.floor(t.dry_time/60)}h ${t.dry_time%60}m`:`${t.dry_time}m`}),!W.drying_screen_only&&(0,G.jsx)(`button`,{onClick:()=>sr.mutate(t.id),disabled:sr.isPending,className:`ml-auto text-amber-700 dark:text-amber-400 hover:text-amber-900 dark:hover:text-amber-300 transition-colors disabled:opacity-50 shrink-0`,title:F(`printers.drying.stop`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)]`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-1.5 max-[550px]:flex-col max-[550px]:items-start`,children:[(0,G.jsxs)(`div`,{className:`relative group flex-1`,style:S,children:[re&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-dark-tertiary/80 rounded flex items-center justify-center z-20`,children:(0,G.jsx)(Hl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-green animate-spin`})}),ne?(0,G.jsx)(xH,{data:ne,actions:xi({amsId:t.id,slotId:A,loadTrayId:t.id*4+A,isRefreshing:re}),spoolman:{enabled:o,linkedSpoolId:R?.spoolman_spool_id??(j?s?.[j]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!R&&!P?()=>{let n=(ne.trayUuid||ne.tagUid||Lp(e.serial_number,t.id,A)).toUpperCase();Lt({tagUid:ne.tagUid||n,trayUuid:ne.trayUuid||``,printerId:e.id,amsId:t.id,trayId:A})}:void 0,onUnlinkSpool:M?.id?()=>rr.mutate(M.id):void 0},inventory:(()=>{if(o){if(m)return;let n=R,i=B;return{assignedSpool:i?{id:i.id,material:i.material,subtype:i.subtype,brand:i.brand??null,color_name:i.color_name??null,rgba:i.rgba??null,extra_colors:i.extra_colors??null,effect_type:i.effect_type??null,remainingWeightGrams:i.label_weight?Math.max(0,Math.round(i.label_weight-i.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:r?.tray_type||ne.profile,material:r?.tray_type??void 0,profile:ne.profile,color:ne.colorHex||``,location:yp(t.id,t.tray.length)}}),onUnassignSpool:i&&!Kp(r)?()=>h?.(i.id):void 0,isAssigned:!!n||Kp(r)}}let n=u?.(e.id,t.id,A);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,subtype:n.spool.subtype,brand:n.spool.brand,color_name:n.spool.color_name,rgba:n.spool.rgba??null,extra_colors:n.spool.extra_colors??null,effect_type:n.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:r?.tray_type||ne.profile,material:r?.tray_type??void 0,profile:ne.profile,color:ne.colorHex||``,location:yp(t.id,t.tray.length)}}),onUnassignSpool:n&&!Kp(r)?()=>d?.(e.id,t.id,A):void 0,isAssigned:!!n||Kp(r)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:A,trayCount:t.tray.length,trayType:r?.tray_type||void 0,trayColor:r?.tray_color||void 0,traySubBrands:r?.tray_sub_brands||void 0,trayInfoIdx:r?.tray_info_idx||void 0,extruderId:vp(t.id,r?.id??0,xn,wn),caliIdx:r?.cali_idx,savedPresetId:O?.preset_id})},children:oe}):(0,G.jsx)(SH,{kind:v??void 0,actions:xi({amsId:t.id,slotId:A,loadTrayId:t.id*4+A,isRefreshing:re}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:t.id,trayId:A,trayCount:t.tray.length,extruderId:vp(t.id,r?.id??0,xn,wn)})},onAssignSpool:()=>zt({printerId:e.id,amsId:t.id,trayId:A,trayInfo:{type:``,material:void 0,profile:``,color:``,location:yp(t.id,t.tray.length)}}),children:oe})]}),(t.humidity!=null||t.temp!=null)&&(0,G.jsxs)(`div`,{className:`flex flex-col justify-center gap-1 shrink-0 max-[550px]:w-full`,children:[t.temp!=null&&(0,G.jsx)(nW,{temp:t.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`temperature`}),compact:!0}),t.humidity!=null&&(0,G.jsx)(tW,{humidity:t.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair,onClick:()=>Nt({amsId:t.id,amsLabel:yp(t.id,t.tray.length),mode:`humidity`}),compact:!0})]})]})]},t.id)}),W.vt_tray.length>0&&g&&(0,G.jsxs)(`div`,{style:T(W.vt_tray.length),className:`min-w-0 p-2 bg-bambu-dark rounded-[10px] space-y-1`,children:[(0,G.jsx)(`div`,{className:`flex w-full min-h-7 items-center gap-1.5 rounded-lg bg-bambu-dark-secondary px-2 py-1`,children:(0,G.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-[length:var(--pc-t10,10px)] text-white font-medium`,children:F(`printers.external`)})}),(0,G.jsx)(`div`,{className:`grid w-full gap-1`,style:C(W.vt_tray.length>1?2:1),children:[...W.vt_tray].sort((e,t)=>(e.id??254)-(t.id??254)).map(t=>{let n=t.id??254,r=_&&An===254?n===254&&W.active_extruder===1||n===255&&W.active_extruder===0:An===n,i=n-254,a=_?F(n===254?`printers.extL`:`printers.extR`):``,g=t.tray_info_idx?cn?.[t.tray_info_idx]:null,v=ln?.[1020+i],y=qp(v?.preset_id,t.tray_info_idx)?v?.preset_name:void 0,b=(t.tray_uuid||t.tag_uid||Lp(e.serial_number,255,i))?.toUpperCase(),S=b?s?.[b]:void 0,C=Pp(S),w=u?.(e.id,255,i),T=(()=>{let e=w?.spool;return e&&e.label_weight>0&&e.weight_used!=null?Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100):null})(),E=t.tray_type&&t.remain>=0,D=T===0&&E&&t.remain>0?null:T,O=o&&!m?p?.find(t=>t.printer_id===e.id&&t.ams_id===255&&t.tray_id===i):void 0,k=O?f?.find(e=>e.id===O.spoolman_spool_id):void 0,A=k&&(k.label_weight??0)>0?Math.round(Math.max(0,(k.label_weight??0)-k.weight_used)/(k.label_weight??1)*100):null,j=C??A??D??(E?t.remain:null),M=C!==null||A!==null?`spoolman`:D===null?E?`ams`:void 0:`inventory`,N={vendor:Kp(t)?`Bambu Lab`:`Generic`,profile:y||(k?[k.brand,k.slicer_filament_name?.split(`@`)[0].trim()||k.material].filter(Boolean).join(` `).trim():null)||w?.spool?.slicer_filament_name||g?.name||t.tray_sub_brands||t.tray_type||`Unknown`,colorName:Df(t.tray_color||``,t.tray_sub_brands),colorHex:t.tray_color||null,kFactor:KU(t.k),fillLevel:j,trayUuid:t.tray_uuid||null,tagUid:t.tag_uid||null,fillSource:M},P=!t.tray_type,I=rW(t),L=(0,G.jsxs)(`div`,{className:`w-full bg-bambu-dark-secondary rounded-lg p-1 text-center ${P?`opacity-50`:``} ${r?`ring-2 ring-bambu-green ring-offset-1 ring-offset-bambu-dark`:``}`,children:[(0,G.jsx)(UU,{trayColor:t.tray_color,trayType:t.tray_type,isEmpty:P,emptyKind:I,slotNumber:_?n===254?`L`:`R`:i+1}),(0,G.jsx)(`div`,{className:`text-[length:var(--pc-t9,9px)] font-bold truncate ${P?`text-white/40`:`text-white`}`,children:t.tray_type||F(`ams.slotEmpty`)}),(0,G.jsx)(qU,{k:P?null:t.k,reserve:Dn}),(0,G.jsx)(`div`,{className:`mt-1 h-1.5 bg-black/30 rounded-full overflow-hidden`,children:j!==null&&j>=0&&!P&&(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${j}%`,backgroundColor:Np(j)}})})]});return(0,G.jsx)(`div`,{className:`relative group w-full`,style:x,children:P?(0,G.jsx)(SH,{kind:I??void 0,actions:xi({amsId:255,slotId:i,loadTrayId:n,includeRfid:!1}),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:255,trayId:i,trayCount:1,extruderId:_?+(n===254):void 0})},onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:``,material:void 0,profile:``,color:``,location:`External Slot ${i+1}`}}),children:L}):(0,G.jsx)(xH,{data:N,actions:xi({amsId:255,slotId:i,loadTrayId:n,includeRfid:!1}),spoolman:{enabled:o,linkedSpoolId:O?.spoolman_spool_id??(b?s?.[b]?.id:void 0),spoolmanUrl:c,syncMode:l,onLinkSpool:o&&!O&&!w?()=>{let t=(N.trayUuid||N.tagUid||Lp(e.serial_number,255,i)).toUpperCase();Lt({tagUid:N.tagUid||t,trayUuid:N.trayUuid||``,printerId:e.id,amsId:255,trayId:i})}:void 0,onUnlinkSpool:S?.id?()=>rr.mutate(S.id):void 0},inventory:(()=>{if(o){if(m)return;let n=O,r=k;return{assignedSpool:r?{id:r.id,material:r.material,subtype:r.subtype,brand:r.brand??null,color_name:r.color_name??null,rgba:r.rgba??null,extra_colors:r.extra_colors??null,effect_type:r.effect_type??null,remainingWeightGrams:r.label_weight?Math.max(0,Math.round(r.label_weight-r.weight_used)):void 0}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:a||F(`printers.external`)}}),onUnassignSpool:r&&!Kp(t)?()=>h?.(r.id):void 0,isAssigned:!!n||Kp(t)}}let n=u?.(e.id,255,i);return{assignedSpool:n?.spool?{id:n.spool.id,material:n.spool.material,subtype:n.spool.subtype,brand:n.spool.brand,color_name:n.spool.color_name,rgba:n.spool.rgba??null,extra_colors:n.spool.extra_colors??null,effect_type:n.spool.effect_type??null,remainingWeightGrams:Math.max(0,Math.round(n.spool.label_weight-n.spool.weight_used))}:null,onAssignSpool:()=>zt({printerId:e.id,amsId:255,trayId:i,trayInfo:{type:t.tray_type||N.profile,material:t.tray_type??void 0,profile:N.profile,color:N.colorHex||``,location:a||F(`printers.external`)}}),onUnassignSpool:n&&!Kp(t)?()=>d?.(e.id,255,i):void 0,isAssigned:!!n||Kp(t)}})(),configureSlot:{enabled:z(`printers:control`),onConfigure:()=>Vt({amsId:255,trayId:i,trayCount:1,trayType:t.tray_type||void 0,trayColor:t.tray_color||void 0,traySubBrands:t.tray_sub_brands||void 0,trayInfoIdx:t.tray_info_idx||void 0,extruderId:_?+(n===254):void 0,caliIdx:t.cali_idx,savedPresetId:v?.preset_id})},children:L})},n)})})]})]})]})})()]}),e.is_active!==!1&&!W?.connected&&r===`expanded`&&qn&&gr,r===`expanded`&&(0,G.jsxs)(`div`,{className:`mt-auto`,children:[Fn&&(0,G.jsxs)(`div`,{className:`pt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] uppercase tracking-wider text-bambu-gray font-medium`,children:F(`printers.power`,`Power`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-[10px] bg-bambu-dark p-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0 pl-1`,children:[(0,G.jsx)(id,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:Fn.name}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray text-[length:var(--pc-t10,10px)] font-medium flex-shrink-0`,title:F(`smartPlugs.power`),children:Ln?.energy?.power!==null&&Ln?.energy?.power!==void 0?`${Math.round(Ln.energy.power)}W`:`--`})]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>ur.mutate(!Fn.auto_off),disabled:ur.isPending||Fn.auto_off_executed||!z(`smart_plugs:control`),title:z(`smart_plugs:control`)?Fn.auto_off_executed?F(`printers.autoOffExecuted`):F(`printers.autoOffAfterPrint`):F(`printers.permission.noSmartPlugControl`),className:`flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-xs font-bold transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${z(`smart_plugs:control`)?Fn.auto_off||Fn.auto_off_executed?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/80`:`bg-bambu-dark-tertiary/50 text-bambu-gray/50`}`,children:(0,G.jsx)(js,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(`button`,{onClick:()=>{Ln?.state===`ON`?fe(!0):ue(!0)},disabled:lr.isPending||!z(`smart_plugs:control`),className:`flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg text-xs transition-colors disabled:opacity-50 disabled:cursor-not-allowed ${z(`smart_plugs:control`)?Ln?.state===`ON`?`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/80`:`bg-bambu-dark-tertiary/50 text-bambu-gray/50`}`,title:z(`smart_plugs:control`)?Ln?.state===`ON`?`Turn off`:`Turn on`:F(`printers.permission.noSmartPlugControl`),children:(0,G.jsx)(id,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})})]})]}),In&&In.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,G.jsx)(Bc,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] text-blue-600 dark:text-blue-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`HA:`}),(0,G.jsx)(`div`,{className:`h-[2px] w-5 bg-bambu-dark-tertiary/50`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:In.map(e=>{let t=e.ha_entity_id?.startsWith(`script.`);return(0,G.jsxs)(`button`,{onClick:()=>{t?dr.mutate({id:e.id,action:`on`}):me(e)},disabled:dr.isPending,title:`${t?`Run`:`Toggle`} ${e.ha_entity_id}`,className:`px-2 py-0.5 text-xs bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-500/30 rounded transition-colors flex items-center gap-1`,children:[(0,G.jsx)(Nl,{className:`w-[var(--pc-i25,0.625rem)] h-[var(--pc-i25,0.625rem)]`}),e.name]},e.id)})})]})]}),(0,G.jsx)(ice,{printerId:e.id}),(0,G.jsxs)(`div`,{className:`pt-4`,children:[(0,G.jsx)(`div`,{className:`mb-3 h-[2px] bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[Si,(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`flex items-center flex-shrink-0`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>yi(_),disabled:!W?.connected||!z(`camera:view`),title:z(`camera:view`)?F(_===`embedded`?`printers.openCameraOverlay`:`printers.openCameraWindow`):F(`printers.permission.noCamera`),className:`${vi} !rounded-r-none`,children:(0,G.jsx)(Gu,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();At({x:t.left,y:t.bottom+4})},disabled:!W?.connected||!z(`camera:view`),title:z(`camera:view`)?F(`settings.cameraViewMode`):F(`printers.permission.noCamera`),"aria-label":F(`settings.cameraViewMode`),className:`!h-8 !min-h-8 !w-6 !px-0 !py-0 !rounded-l-none border-l border-bambu-dark`,children:(0,G.jsx)(ps,{className:`w-3 h-3`})})]}),kt&&(0,G.jsx)(kT,{x:kt.x,y:kt.y,items:bi,onClose:()=>At(null)}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>se(!0),disabled:!z(`printers:files`),title:z(`printers:files`)?F(`printers.browseFiles`):F(`printers.permission.noFiles`),className:vi,children:(0,G.jsx)(Pc,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`})}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>Ue(!0),disabled:!z(`library:upload`)||!z(`queue:create`),title:z(`library:upload`)?z(`queue:create`)?F(`common.print`):F(`fileManager.noPermissionAddToQueue`):F(`fileManager.noPermissionUpload`),className:`!h-8 !min-h-8 !px-2 !py-0 !bg-bambu-green hover:!bg-bambu-green/80 !text-white`,children:[(0,G.jsx)(Rl,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)]`}),F(`common.print`)]})]})]})]})]}),(0,G.jsx)(vAe,{printerId:e.id,dryingActive:En.some(e=>(e.dry_time??0)>0),timeFormat:g})]}),oe&&(0,G.jsx)(zse,{printerId:e.id,printerName:e.name,onClose:()=>se(!1)}),He&&(0,G.jsx)(gU,{folderId:null,onClose:()=>Ue(!1),onUploadComplete:()=>{},autoUpload:!0,accept:`.gcode,.3mf`,validateFile:e=>{let t=e.name.toLowerCase();if(!t.endsWith(`.gcode`)&&!t.includes(`.gcode.`))return F(`printers.dropNotPrintable`,`Only .gcode and .gcode.3mf files can be printed`)},onFileUploaded:t=>{let n=t.metadata?.sliced_for_model,r=uW(e.model);if(n&&r&&n.toLowerCase()!==r.toLowerCase())return Z.deleteLibraryFile(t.id).catch(()=>{}),F(`printers.incompatibleFile`,`This file was sliced for {{slicedFor}}, but this printer is a {{printerModel}}`,{slicedFor:n,printerModel:r});Xe({id:t.id,filename:t.filename})}}),Ye&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:Ye.id,archiveName:Ye.filename,initialSelectedPrinterIds:[e.id],onClose:()=>Xe(null),onSuccess:()=>Xe(null),cleanupLibraryAfterDispatch:!0}),H&&(0,G.jsx)(ece,{printerId:e.id,printerName:e.name,onClose:()=>ce(!1)}),Ke&&(0,G.jsx)(Xp,{printerId:e.id,printerName:e.name,onClose:()=>qe(!1)}),We&&(0,G.jsx)(Hke,{printer:e,status:W,totalPrintHours:n?.total_print_hours,onClose:Je}),Wt&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:()=>ti(),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-w-lg w-full`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Wt.needs_calibration?(0,G.jsx)(Xl,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-blue-500`}):Wt.is_empty?(0,G.jsx)(xs,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-green-500`}):(0,G.jsx)(Ds,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)] text-yellow-500`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`Build Plate Check`}),Wt.reference_count!==void 0&&Wt.max_references&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark-tertiary px-2 py-1 rounded`,children:[Wt.reference_count,`/`,Wt.max_references,` refs`]})]}),(0,G.jsx)(`button`,{onClick:()=>ti(),className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-[var(--pc-i5,1.25rem)] h-[var(--pc-i5,1.25rem)]`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[Wt.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-blue-100 dark:bg-blue-500/20 border border-blue-300 dark:border-blue-500/50`,children:[(0,G.jsx)(`p`,{className:`font-medium text-blue-700 dark:text-blue-400`,children:F(`printers.plateDetection.calibrationRequired`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,dangerouslySetInnerHTML:{__html:F(`printers.plateDetection.calibrationInstructions`)}})]}),(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray space-y-2`,children:[(0,G.jsx)(`p`,{children:F(`printers.plateDetection.calibrationDescription`)}),(0,G.jsx)(`p`,{dangerouslySetInnerHTML:{__html:F(`printers.plateDetection.calibrationTip`)}})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 rounded-lg ${Wt.is_empty?`bg-green-100 dark:bg-green-500/20 border border-green-300 dark:border-green-500/50`:`bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-500/50`}`,children:[(0,G.jsx)(`p`,{className:`font-medium ${Wt.is_empty?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`}`,children:Wt.is_empty?F(`printers.plateDetection.plateEmpty`):F(`printers.plateDetection.objectsDetected`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:[F(`printers.plateDetection.confidence`),`: `,Math.round(Wt.confidence*100),`% | `,F(`printers.plateDetection.difference`),`: `,Wt.difference_percent.toFixed(1),`%`]})]}),Wt.debug_image_url&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:F(`printers.plateDetection.analysisPreview`)}),(0,G.jsx)(`img`,{src:Wt.debug_image_url,alt:F(`printers.plateDetection.analysisPreview`),className:`w-full rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:F(`printers.plateDetection.analysisLegend`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:Wt.message})]}),Jr&&Jr.references.length>0&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white shrink-0`,children:F(`printers.plateDetection.savedReferences`,{count:Jr.references.length,max:Jr.max_references})}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-5 gap-2`,children:Jr.references.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getPlateReferenceThumbnailUrl(e.id,t.index),alt:t.label||`Reference ${t.index+1}`,className:`w-full aspect-video object-cover rounded border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{onClick:()=>ii(t.index),className:`absolute top-1 right-1 p-0.5 bg-red-500/80 rounded can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`,title:F(`printers.plateDetection.deleteReference`),children:(0,G.jsx)(nd,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] text-white`})}),Xr?.index===t.index?(0,G.jsx)(`input`,{type:`text`,value:Xr.label,onChange:e=>Zr({...Xr,label:e.target.value}),onBlur:()=>ri(t.index,Xr.label),onKeyDown:e=>{e.key===`Enter`&&ri(t.index,Xr.label),e.key===`Escape`&&Zr(null)},className:`w-full mt-1 px-1 py-0.5 text-xs bg-bambu-dark-tertiary border border-bambu-green rounded text-white`,autoFocus:!0,placeholder:F(`printers.plateDetection.labelPlaceholder`)}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate cursor-pointer hover:text-white`,onClick:()=>Zr({index:t.index,label:t.label}),title:t.label?F(`printers.plateDetection.clickToEdit`,{label:t.label}):F(`printers.plateDetection.clickToAddLabel`),children:t.label||(0,G.jsx)(`span`,{className:`italic opacity-50`,children:F(`printers.noLabel`)})}),(0,G.jsx)(`p`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray/60`,children:t.timestamp?rp(t.timestamp)?.toLocaleDateString()??``:``})]},t.index))})]}),!Wt.needs_calibration&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white shrink-0`,children:F(`printers.roi.title`)}),(0,G.jsx)(`div`,{className:`flex-1 h-[2px] bg-bambu-dark-tertiary`})]}),Xt?(0,G.jsxs)(`div`,{className:`flex gap-1`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>Zt(null),disabled:Qt,children:F(`common.cancel`)}),(0,G.jsx)(Q,{size:`sm`,onClick:ai,disabled:Qt,children:Qt?(0,G.jsx)(Y,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] animate-spin`}):F(`common.save`)})]}):(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>Zt(Wt.roi||{x:.15,y:.35,w:.7,h:.55}),children:[(0,G.jsx)(Al,{className:`w-[var(--pc-i3,0.75rem)] h-[var(--pc-i3,0.75rem)] mr-1`}),F(`common.edit`)]})]}),Xt?(0,G.jsxs)(`div`,{className:`space-y-3 bg-bambu-dark-tertiary/50 p-3 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.xStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:Xt.x,onChange:e=>Zt({...Xt,x:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.x*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.yStart`)}),(0,G.jsx)(`input`,{type:`range`,min:`0`,max:`0.9`,step:`0.01`,value:Xt.y,onChange:e=>Zt({...Xt,y:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.y*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.width`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:Xt.w,onChange:e=>Zt({...Xt,w:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.w*100),`%`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:F(`printers.height`)}),(0,G.jsx)(`input`,{type:`range`,min:`0.1`,max:`1`,step:`0.01`,value:Xt.h,onChange:e=>Zt({...Xt,h:parseFloat(e.target.value)}),className:`w-full h-1.5 bg-bambu-dark-tertiary rounded-lg cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[Math.round(Xt.h*100),`%`]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:F(`printers.roi.instruction`)})]}):(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[`Current: X=`,Math.round((Wt.roi?.x||.15)*100),`%, Y=`,Math.round((Wt.roi?.y||.35)*100),`%, W=`,Math.round((Wt.roi?.w||.7)*100),`%, H=`,Math.round((Wt.roi?.h||.55)*100),`%`]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end gap-2 p-4`,children:Wt.needs_calibration?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>ti(),children:F(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>ni(),disabled:Jt,children:Jt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-[var(--pc-i4,1rem)] h-[var(--pc-i4,1rem)] mr-2 animate-spin`}),`Calibrating...`]}):`Calibrate Empty Plate`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>ni(),disabled:Jt,children:Jt?`Adding...`:`Add Reference (${Jr?.references.length||0}/${Jr?.max_references||5})`}),(0,G.jsx)(Q,{onClick:()=>ti(),children:`Close`})]})})]})}),le&&Fn&&(0,G.jsx)(of,{title:F(`printers.confirm.powerOnTitle`),message:F(`printers.confirm.powerOnMessage`,{name:e.name}),confirmText:F(`printers.confirm.powerOnButton`),variant:`default`,onConfirm:()=>{lr.mutate(`on`),ue(!1)},onCancel:()=>ue(!1)}),jr&&(0,G.jsx)(of,{title:F(`printers.maintenance.confirmMidPrintTitle`),message:F(`printers.maintenance.confirmMidPrintMessage`,{name:e.name}),confirmText:F(`printers.maintenance.menuEnter`),variant:`danger`,onConfirm:()=>{Ar.mutate(!1),Mr(!1)},onCancel:()=>Mr(!1)}),de&&Fn&&(0,G.jsx)(of,{title:F(`printers.confirm.powerOffTitle`),message:W?.state===`RUNNING`?F(`printers.confirm.powerOffWarning`,{name:e.name}):F(`printers.confirm.powerOffMessage`,{name:e.name}),confirmText:F(`printers.confirm.powerOffButton`),variant:`danger`,onConfirm:()=>{lr.mutate(`off`),fe(!1)},onCancel:()=>fe(!1)}),pe&&(0,G.jsx)(of,{title:F(`printers.confirm.haToggleTitle`,{name:pe.name}),message:W?.state===`RUNNING`?F(`printers.confirm.haToggleWarning`,{name:e.name,entity:pe.ha_entity_id||pe.name}):F(`printers.confirm.haToggleMessage`,{entity:pe.ha_entity_id||pe.name}),confirmText:F(`printers.confirm.haToggleButton`),variant:W?.state===`RUNNING`?`danger`:`default`,onConfirm:()=>{dr.mutate({id:pe.id,action:`toggle`}),me(null)},onCancel:()=>me(null)}),we&&(0,G.jsx)(of,{title:F(`printers.confirm.stopTitle`),message:F(`printers.confirm.stopMessage`,{name:e.name}),confirmText:F(`printers.confirm.stopButton`),variant:`danger`,onConfirm:()=>{fr.mutate(),Te(!1)},onCancel:()=>Te(!1)}),Ee&&(0,G.jsx)(of,{title:F(`printers.confirm.pauseTitle`),message:F(`printers.confirm.pauseMessage`,{name:e.name}),confirmText:F(`printers.confirm.pauseButton`),variant:`default`,onConfirm:()=>{pr.mutate(),De(!1)},onCancel:()=>De(!1)}),Re&&(0,G.jsx)(of,{title:F(`printers.confirm.resumeTitle`),message:F(`printers.confirm.resumeMessage`,{name:e.name}),confirmText:F(`printers.confirm.resumeButton`),variant:`default`,onConfirm:()=>{mr.mutate(),ze(!1)},onCancel:()=>ze(!1)}),(0,G.jsx)(bT,{printerId:e.id,isOpen:Be,onClose:()=>Ve(!1)}),he&&(0,G.jsx)(Nee,{printerName:e.name,errors:W?.hms_errors||[],onClose:()=>ge(!1),printerId:e.id,hasPermission:z,runoutGuidance:Pn}),_e&&(0,G.jsx)(nce,{printerName:e.name,detection:N,lastError:P,onClose:()=>ve(!1)}),ye&&W&&(0,G.jsx)(GOe,{isOpen:ye,state:W.ams_filament_backup,amsUnits:W.ams,amsExtruderMap:W.ams_extruder_map,isDualNozzle:e.nozzle_count===2||W?.temperatures?.nozzle_2!==void 0,canToggle:z(`printers:control`),pending:cr.isPending,onToggle:e=>cr.mutate(e),onClose:()=>be(!1)}),Mt&&(0,G.jsx)(VOe,{isOpen:!!Mt,onClose:()=>Nt(null),printerId:e.id,printerName:e.name,amsId:Mt.amsId,amsLabel:Mt.amsLabel,initialMode:Mt.mode,thresholds:a}),Pt&&(0,G.jsx)(qOe,{isOpen:!!Pt,onClose:()=>Ft(null),printerId:e.id,printerName:e.name,initialKind:Pt.initialKind,availableKinds:Pt.availableKinds}),It&&(0,G.jsx)(CH,{isOpen:!!It,onClose:()=>Lt(null),tagUid:It.tagUid,trayUuid:It.trayUuid,printerId:It.printerId,amsId:It.amsId,trayId:It.trayId}),Rt&&(0,G.jsx)(TH,{isOpen:!!Rt,onClose:()=>zt(null),printerId:Rt.printerId,amsId:Rt.amsId,trayId:Rt.trayId,trayInfo:Rt.trayInfo,spoolmanEnabled:!!o}),Bt&&(0,G.jsx)(mU,{isOpen:!!Bt,onClose:()=>Vt(null),printerId:e.id,slotInfo:Bt,printerModel:uW(e.model)||void 0,nozzleDiameter:Gp(W,Bt.amsId),onSuccess:()=>{I.invalidateQueries({queryKey:[`slotPresets`,e.id]}),I.invalidateQueries({queryKey:[`printerStatus`,e.id]})}}),Wr&&(0,G.jsx)(Uke,{slotLabel:Wr.slotLabel,amsId:Wr.amsId,slotId:Wr.slotId,extruderSlots:W?.extruder_slots??{},isLoading:Hr.isPending,onConfirm:e=>Hr.mutate({trayId:Wr.trayId,extruderId:e}),onCancel:()=>Gr(null)}),ie&&(0,G.jsx)(xAe,{printer:e,onClose:()=>ae(!1)}),Ht&&nn&&(0,G.jsx)(bAe,{printer:e,firmwareInfo:nn,onClose:()=>Ut(!1)}),Ze!==null&&ht&&(()=>{let e=$e===`n3s`?85:65,t=e+10;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[100]`,"data-testid":`drying-popover-backdrop`,onMouseDown:()=>{xt.current=bt.current!==null&&document.activeElement===bt.current},onClick:()=>{if(xt.current){xt.current=!1;return}Qe(null)}}),(0,G.jsxs)(`div`,{className:`fixed z-[101] flex flex-col w-[240px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl overflow-hidden`,style:{left:ht.left,...ht.placement===`above`?{bottom:`calc(100dvh - ${ht.anchorY}px)`,maxHeight:`${ht.anchorY-8}px`}:{top:ht.top,maxHeight:`calc(100dvh - ${ht.top}px - 8px)`}},onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`shrink-0 flex items-center justify-center gap-2 px-3 py-2.5`,children:[(0,G.jsx)(hc,{className:`w-[var(--pc-i35,0.875rem)] h-[var(--pc-i35,0.875rem)] text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium text-center`,children:F(`printers.drying.start`)})]}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`px-3 py-2.5 space-y-2.5 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium mb-1 block`,children:F(`printers.filaments`)}),(0,G.jsx)(iW,{value:tt,options:Object.keys(S).map(e=>({value:e,label:e})),onChange:e=>{nt(e);let t=S[e];t&&(it(t[$e===`n3s`?`n3s`:`n3f`]),ot($e===`n3s`?t.n3s_hours:t.n3f_hours))},fullWidth:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium`,children:F(`printers.drying.temperature`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:45,max:e,value:rt,onChange:t=>it(Math.min(e,Math.max(45,Number(t.target.value)||45))),className:`w-12 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[length:var(--pc-t11,11px)] text-center focus:outline-none focus:border-bambu-green [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:`°C`})]})]}),(0,G.jsx)(`input`,{type:`range`,min:35,max:t,value:rt,onChange:t=>it(Math.min(e,Math.max(45,Number(t.target.value)))),className:`w-full h-1 accent-bambu-green cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[length:var(--pc-t9,9px)] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`45°C`}),(0,G.jsxs)(`span`,{children:[e,`°C`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-[length:var(--pc-t10,10px)] text-white/70 font-medium`,children:F(`printers.drying.duration`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:at,onChange:e=>ot(Math.min(24,Math.max(1,Number(e.target.value)||1))),className:`w-10 px-1 py-0.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[length:var(--pc-t11,11px)] text-center focus:outline-none focus:border-bambu-green [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-[length:var(--pc-t10,10px)] text-bambu-gray`,children:F(`printers.drying.hours`)})]})]}),(0,G.jsx)(`input`,{type:`range`,min:1,max:24,value:at,onChange:e=>ot(Number(e.target.value)),className:`w-full h-1 accent-bambu-green cursor-pointer`}),(0,G.jsxs)(`div`,{className:`flex justify-between text-[length:var(--pc-t9,9px)] text-bambu-gray/50 mt-0.5`,children:[(0,G.jsx)(`span`,{children:`1h`}),(0,G.jsx)(`span`,{children:`24h`})]})]}),(()=>{let e=((Ze===null?void 0:En.find(e=>e.id===Ze))?.tray??[]).some(e=>e.state===11),t=st&&!e;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>ct(e=>!e),"aria-pressed":t,disabled:e,title:e?F(`printers.drying.rotateUnavailableReason`):void 0,className:`h-8 w-full rounded-lg border px-2 text-sm font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${t?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary disabled:hover:bg-bambu-dark`}`,children:F(`printers.drying.rotateTray`)})})(),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-[10px] text-white/70 font-medium mb-1 block`,children:F(`printers.drying.startMode`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,children:[`now`,`delay`,`at_time`].map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>ut(e),className:`py-1 rounded-lg border text-[10px] font-medium transition-colors ${lt===e?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:F(e===`now`?`printers.drying.modeNow`:e===`delay`?`printers.drying.modeDelay`:`printers.drying.modeAtTime`)},e))}),lt===`delay`&&(0,G.jsx)(`div`,{className:`mt-1.5 grid grid-cols-4 gap-1`,children:qke.map(e=>(0,G.jsx)(`button`,{type:`button`,"aria-pressed":dt===e,onClick:()=>ft(e),className:`py-1 rounded-lg border text-[10px] font-medium transition-colors ${dt===e?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:fp(e/60)},e))}),lt===`at_time`&&(0,G.jsx)(`input`,{ref:bt,type:`datetime-local`,"data-testid":`drying-start-at`,value:pt,onChange:e=>mt(e.target.value),className:`mt-1.5 w-full px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-[11px] focus:outline-none focus:border-bambu-green [color-scheme:dark]`})]})]}),(0,G.jsx)(`div`,{className:`shrink-0 h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`shrink-0 px-3 pt-2.5 pb-3`,children:(0,G.jsx)(`button`,{onClick:()=>{if(Ze!==null){let e=(En.find(e=>e.id===Ze)?.tray??[]).some(e=>e.state===11),t=st&&!e;if(lt===`now`)ir.mutate({amsId:Ze,temp:rt,duration:at,filament:tt,rotateTray:t});else{let e=Tee(lt,dt,pt);e&&ar.mutate({amsId:Ze,temp:rt,duration:at,filament:tt,rotateTray:t,startAfter:e})}}},disabled:ir.isPending||ar.isPending||lt===`at_time`&&!pt,"data-testid":`drying-start-confirm`,className:`w-full py-1.5 bg-bambu-green hover:bg-bambu-green/80 text-white text-xs font-medium rounded-lg transition-colors disabled:opacity-50`,children:lt===`now`?ir.isPending?F(`printers.drying.startingDrying`):F(`printers.drying.start`):F(`printers.drying.schedule`)})})]}),(0,G.jsx)(`div`,{className:`fixed z-[102] w-2.5 h-2.5 rotate-45 bg-bambu-dark-secondary border-bambu-dark-tertiary pointer-events-none`,style:{left:ht.left+ht.arrowLeft-5,top:ht.anchorY-5,...ht.placement===`above`?{borderRightWidth:1,borderBottomWidth:1}:{borderLeftWidth:1,borderTopWidth:1}}})]})})()]})}function yAe({onClose:e,onAdd:t,existingSerials:n}){let{t:r}=U(),[i,a]=(0,y.useState)({name:``,serial_number:``,ip_address:``,access_code:``,model:``,location:``,auto_archive:!0}),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)([]),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)({scanned:0,total:0}),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(null);(0,y.useEffect)(()=>{Sd.getInfo().then(e=>{h(e.is_docker),e.subnets.length>0&&(_(e.subnets),b(e.subnets[0]))}).catch(()=>{});try{let e=localStorage.getItem(`bambuddy.discovery.customSubnet`);e&&S(e)}catch{}},[]);let N=c.filter(e=>!n.includes(e.serial)),P=async e=>{e.preventDefault(),A(!0);try{let e=await Z.diagnoseConnection({ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0});if(e.checks.some(e=>e.status===`fail`)){M(e);return}}catch{}finally{A(!1)}t(i)},F=async()=>{d(``),l([]),s(!0),p(!1),E({scanned:0,total:0});let e=C?x.trim():v,t=m||C;if(t&&C)try{localStorage.setItem(`bambuddy.discovery.customSubnet`,e)}catch{}try{if(t){await Sd.startSubnetScan(e);let t=setInterval(async()=>{try{let e=await Sd.getScanStatus();E({scanned:e.scanned,total:e.total}),l(await Sd.getDiscoveredPrinters()),e.running||(clearInterval(t),s(!1),p(!0))}catch(e){console.error(`Failed to get scan status:`,e)}},500)}else{await Sd.startDiscovery(10);let e=setInterval(async()=>{try{l(await Sd.getDiscoveredPrinters())}catch(e){console.error(`Failed to get discovered printers:`,e)}},1e3);setTimeout(async()=>{clearInterval(e);try{await Sd.stopDiscovery()}catch{}s(!1),p(!0);try{l(await Sd.getDiscoveredPrinters())}catch(e){console.error(`Failed to get final discovered printers:`,e)}},1e4)}}catch(e){console.error(`Failed to start discovery:`,e),d(e instanceof Error?e.message:r(`printers.discovery.failedToStart`)),s(!1),p(!0)}},I=e=>{let t=e.serial.startsWith(`unknown-`)?``:e.serial;a({...i,name:e.name||``,serial_number:t,ip_address:e.ip_address,model:uW(e.model)}),l([])};return(0,y.useEffect)(()=>()=>{Sd.stopDiscovery().catch(()=>{}),Sd.stopSubnetScan().catch(()=>{})},[]),(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:e,children:(0,G.jsx)(zd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:r(`printers.addPrinter`)}),(0,G.jsxs)(`div`,{className:`mb-4 pb-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.discovery.subnetToScan`)}),g.length>0?(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:C?`__custom__`:v,onChange:e=>{e.target.value===`__custom__`?w(!0):(w(!1),b(e.target.value))},disabled:o,children:[g.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:`__custom__`,children:r(`printers.discovery.customSubnetOption`)})]}):(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:v,onChange:e=>b(e.target.value),placeholder:`192.168.1.0/24`,disabled:o}),C&&(0,G.jsx)(`input`,{type:`text`,"aria-label":r(`printers.discovery.customSubnetLabel`),className:`mt-2 w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:x,onChange:e=>S(e.target.value),placeholder:`10.1.1.0/24`,disabled:o}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(m?`printers.discovery.dockerNote`:`printers.discovery.customSubnetNote`)})]}),(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:F,disabled:o,className:`w-full`,children:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(m||C)&&T.total>0?r(`printers.discovery.scanProgress`,{scanned:T.scanned,total:T.total}):r(`printers.discovery.scanning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ql,{className:`w-4 h-4`}),r(m||C?`printers.discovery.scanSubnet`:`printers.discovery.discoverNetwork`)]})}),u&&(0,G.jsx)(`div`,{className:`mt-2 text-sm text-red-700 dark:text-red-400`,children:u}),N.length>0&&(0,G.jsx)(`div`,{className:`mt-3 space-y-2 max-h-40 overflow-y-auto`,children:N.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-2 bg-bambu-dark rounded-lg hover:bg-bambu-dark-secondary cursor-pointer transition-colors`,onClick:()=>I(e),children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`font-medium text-white text-sm truncate`,children:e.name||e.serial}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[uW(e.model)||r(`printers.discovery.unknown`),` • `,e.ip_address,e.serial.startsWith(`unknown-`)&&(0,G.jsxs)(`span`,{className:`text-yellow-500`,children:[` • `,r(`printers.discovery.serialRequired`)]})]})]}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray -rotate-90 flex-shrink-0 ml-2`})]},e.serial))}),o&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.scanningSubnet`:`printers.discovery.scanningNetwork`)}),f&&!o&&c.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(m||C?`printers.discovery.noPrintersFoundSubnet`:`printers.discovery.noPrintersFoundNetwork`)}),f&&!o&&c.length>0&&N.length===0&&(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray text-center`,children:r(`printers.discovery.allConfigured`)})]}),(0,G.jsxs)(`form`,{onSubmit:P,className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.name,onChange:e=>a({...i,name:e.target.value}),placeholder:r(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.ip_address,onChange:e=>a({...i,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.serial_number,onChange:e=>a({...i,serial_number:e.target.value}),placeholder:`01P00A000000000`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.access_code,onChange:e=>a({...i,access_code:e.target.value}),placeholder:r(`printers.modal.fromPrinterSettings`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.modelOptional`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.model||``,onChange:e=>a({...i,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:r(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`printers.modal.locationGroup`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:i.location||``,onChange:e=>a({...i,location:e.target.value}),placeholder:r(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`auto_archive`,checked:i.auto_archive,onChange:e=>a({...i,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`auto_archive`,className:`text-sm text-bambu-gray`,children:r(`printers.modal.autoArchiveLabel`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>O(!0),disabled:!i.ip_address.trim(),className:`w-full flex items-center justify-center gap-2 px-3 py-2 text-sm text-bambu-gray hover:text-white disabled:opacity-40 disabled:cursor-not-allowed border border-bambu-dark-tertiary rounded-lg transition-colors`,children:[(0,G.jsx)(Su,{className:`w-4 h-4`}),r(`diagnostic.runButton`)]}),j?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-300`,children:r(`printers.addPreflight.warning`)})]}),(0,G.jsx)(Yp,{result:j}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>M(null),className:`flex-1`,children:r(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:()=>t(i),className:`flex-1`,children:r(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:k,className:`flex-1`,children:r(k?`printers.addPreflight.checking`:`printers.addPrinter`)})]})]})]})})}),D&&(0,G.jsx)(Xp,{connection:{ip_address:i.ip_address.trim(),serial_number:i.serial_number.trim()||void 0,access_code:i.access_code||void 0},printerName:i.name||null,onClose:()=>O(!1)})]})}function bAe({printer:e,firmwareInfo:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),{hasPermission:o}=Nd(),s=o(`firmware:update`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(t.update_available?t.latest_version:null),{data:g,isLoading:_}=K({queryKey:[`firmwarePrepare`,e.id,m],queryFn:()=>Ed.prepareUpload(e.id,m??void 0),staleTime:3e4,enabled:!!m&&s&&!u}),v=q({mutationFn:()=>Ed.startUpload(e.id,m??void 0),onSuccess:()=>{d(!0);let t=setInterval(async()=>{try{let n=await Ed.getUploadStatus(e.id);l(n),(n.status===`complete`||n.status===`error`)&&(clearInterval(t),p(null),d(!1),n.status===`complete`&&(a(r(`printers.firmwareModal.uploadedToast`),`success`),i.invalidateQueries({queryKey:[`firmwareUpdate`,e.id]})))}catch{}},2e3);p(t)},onError:e=>{a(r(`printers.firmwareModal.uploadFailed`,{error:e.message}),`error`),d(!1)}});return(0,y.useEffect)(()=>()=>{f&&clearInterval(f)},[f]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsx)(zd,{className:`w-full max-w-md mx-4`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full ${t.update_available?`bg-orange-100 dark:bg-orange-500/20`:`bg-status-ok/20`}`,children:t.update_available?(0,G.jsx)(Xs,{className:`w-5 h-5 text-orange-600 dark:text-orange-400`}):(0,G.jsx)(xs,{className:`w-5 h-5 text-status-ok`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t.update_available?r(`printers.firmwareModal.title`):r(`printers.firmwareModal.titleUpToDate`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e.name})]})]}),(()=>{let e=m?t.available_versions?.find(e=>e.version===m):null,n=m??t.latest_version,i=e?.release_notes??t.release_notes,a=!!n&&n!==t.current_version;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3 mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.currentVersion`)}),(0,G.jsx)(`span`,{className:`font-mono ${a?`text-white`:`text-status-ok`}`,children:t.current_version||r(`common.unknown`)})]}),a&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm mt-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:r(`printers.firmwareModal.latestVersion`)}),(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400 font-mono`,children:n})]}),i&&(0,G.jsxs)(`details`,{className:`mt-3 text-sm`,open:!a,children:[(0,G.jsx)(`summary`,{className:`cursor-pointer hover:underline ${a?`text-orange-700 dark:text-orange-400`:`text-status-ok`}`,children:r(`printers.firmwareModal.releaseNotes`)}),(0,G.jsx)(`div`,{className:`mt-2 text-bambu-gray text-xs max-h-40 overflow-y-auto whitespace-pre-wrap`,children:i})]},n??`none`)]})})(),t.available_versions&&t.available_versions.length>0&&!u&&c?.status!==`complete`&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mb-2`,children:r(`printers.firmwareModal.availableVersions`)}),(0,G.jsx)(`div`,{className:`max-h-56 overflow-y-auto border border-bambu-dark-tertiary rounded-lg divide-y divide-bambu-dark-tertiary`,children:t.available_versions.map(e=>{let n=t.current_version===e.version,i=m===e.version,a=t.current_version?_ee(e.version,t.current_version):0,o=r(n?`printers.firmwareModal.currentBadge`:a>0?`printers.firmwareModal.newerBadge`:`printers.firmwareModal.olderBadge`),c=n?`text-bambu-gray`:a>0?`text-orange-700 dark:text-orange-400`:`text-blue-700 dark:text-blue-400`;return(0,G.jsxs)(`button`,{type:`button`,disabled:!e.file_available||!s||n,onClick:()=>h(e.version),className:`w-full text-left px-3 py-2 text-sm flex items-center justify-between gap-2 transition-colors ${i?`bg-orange-50 dark:bg-orange-500/10`:`hover:bg-bambu-dark`} ${!e.file_available||!s||n?`opacity-60 cursor-not-allowed`:`cursor-pointer`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-mono text-white`,children:e.version}),(0,G.jsx)(`span`,{className:`text-xs ${c}`,children:o})]}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full ${n?`bg-blue-50 dark:bg-blue-500/15 text-blue-700 dark:text-blue-400 border border-blue-300 dark:border-blue-500/30`:e.file_available?`bg-bambu-green/15 text-bambu-green border border-bambu-green/30`:`bg-bambu-gray/10 text-bambu-gray border border-bambu-gray/30`}`,children:n?r(`printers.firmwareModal.installed`):e.file_available?r(`printers.firmwareModal.usable`):r(`printers.firmwareModal.unavailable`)})]},e.version)})})]}),m?_?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm mb-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`printers.firmwareModal.checkingPrereqs`)]}):g&&!u&&!c?(0,G.jsx)(`div`,{className:`mb-4`,children:g.can_proceed?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-green text-sm`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),r(`printers.firmwareModal.sdCardReady`)]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:g.errors.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 flex-shrink-0`}),e]},t))})}):null:null,(u||c)&&c&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray capitalize`,children:c.status}),(0,G.jsxs)(`span`,{className:`text-white`,children:[c.progress,`%`]})]}),(0,G.jsx)(`div`,{className:`w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`h-2 rounded-full transition-all ${c.status===`error`?`bg-status-error`:c.status===`complete`?`bg-status-ok`:`bg-orange-500`} ${c.status===`uploading`?`animate-pulse`:``}`,style:{width:`${c.progress}%`}})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:c.message}),c.error&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:c.error})]}),c?.status===`complete`&&(0,G.jsxs)(`div`,{className:`bg-bambu-green/10 border border-bambu-green/30 rounded-lg p-3 mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-green font-medium mb-2`,children:r(`printers.firmwareModal.uploadedSuccess`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`printers.firmwareModal.applyInstructions`)}),(0,G.jsxs)(`ol`,{className:`text-xs text-bambu-gray mt-1 list-decimal list-inside space-y-1`,children:[(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step1`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step2`)}}),(0,G.jsx)(`li`,{dangerouslySetInnerHTML:{__html:r(`printers.firmwareModal.step3`)}}),(0,G.jsx)(`li`,{children:r(`printers.firmwareModal.step4`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,children:c?.status===`complete`?r(`printers.firmwareModal.done`):r(`common.cancel`)}),g?.can_proceed&&!u&&c?.status!==`complete`&&s&&(0,G.jsx)(Q,{onClick:()=>{l(null),v.mutate()},disabled:v.isPending,children:v.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}),r(`printers.firmwareModal.starting`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),r(`printers.firmwareModal.uploadFirmware`)]})})]})]})})})}function xAe({printer:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)({name:e.name,ip_address:e.ip_address,access_code:``,model:e.model||``,location:e.location||``,auto_archive:e.auto_archive,is_active:e.is_active}),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),d=q({mutationFn:t=>Z.updatePrinter(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`printers`]}),r.invalidateQueries({queryKey:[`printerStatus`,e.id]}),t()},onError:e=>i(e.message||n(`printers.toast.failedToUpdate`),`error`)});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let f=()=>{let e={name:a.name,ip_address:a.ip_address,model:a.model||void 0,location:a.location||void 0,auto_archive:a.auto_archive,is_active:a.is_active};a.access_code&&(e.access_code=a.access_code),d.mutate(e)};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-start sm:items-center justify-center z-50 p-4 overflow-y-auto`,onClick:t,children:(0,G.jsx)(zd,{className:`w-full max-w-md my-auto max-h-[calc(100vh-2rem)] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold mb-4`,children:n(`printers.editPrinter`)}),(0,G.jsxs)(`form`,{onSubmit:async t=>{t.preventDefault(),c(!0);try{let t=await Z.diagnoseConnection({ip_address:a.ip_address.trim(),serial_number:e.serial_number,access_code:a.access_code||void 0});if(t.checks.some(e=>e.status===`fail`)){u(t);return}}catch{}finally{c(!1)}f()},className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.name`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.name,onChange:e=>o({...a,name:e.target.value}),placeholder:n(`printers.modal.myPrinter`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.ipAddress`)}),(0,G.jsx)(`input`,{type:`text`,required:!0,pattern:`(\\d{1,3}(\\.\\d{1,3}){3}|[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*)`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.ip_address,onChange:e=>o({...a,ip_address:e.target.value}),placeholder:`192.168.1.100 or printer.local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.serialNumber`)}),(0,G.jsx)(`input`,{type:`text`,disabled:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray cursor-not-allowed`,value:e.serial_number}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.serialCannotBeChanged`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.accessCode`)}),(0,G.jsx)(`input`,{type:`password`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.access_code,onChange:e=>o({...a,access_code:e.target.value}),placeholder:n(`printers.accessCodePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`printers.model`)}),(0,G.jsxs)(`select`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.model,onChange:e=>o({...a,model:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:n(`printers.modal.selectModel`)}),(0,G.jsxs)(`optgroup`,{label:`A1 Series`,children:[(0,G.jsx)(`option`,{value:`A1`,children:`A1`}),(0,G.jsx)(`option`,{value:`A1 Mini`,children:`A1 Mini`})]}),(0,G.jsx)(`optgroup`,{label:`A2 Series`,children:(0,G.jsx)(`option`,{value:`A2L`,children:`A2L`})}),(0,G.jsxs)(`optgroup`,{label:`H2 Series`,children:[(0,G.jsx)(`option`,{value:`H2C`,children:`H2C`}),(0,G.jsx)(`option`,{value:`H2D`,children:`H2D`}),(0,G.jsx)(`option`,{value:`H2D Pro`,children:`H2D Pro`}),(0,G.jsx)(`option`,{value:`H2S`,children:`H2S`})]}),(0,G.jsxs)(`optgroup`,{label:`P Series`,children:[(0,G.jsx)(`option`,{value:`P1P`,children:`P1P`}),(0,G.jsx)(`option`,{value:`P1S`,children:`P1S`}),(0,G.jsx)(`option`,{value:`P2S`,children:`P2S`})]}),(0,G.jsxs)(`optgroup`,{label:`X1 Series`,children:[(0,G.jsx)(`option`,{value:`X1`,children:`X1`}),(0,G.jsx)(`option`,{value:`X1C`,children:`X1 Carbon`}),(0,G.jsx)(`option`,{value:`X1E`,children:`X1E`})]}),(0,G.jsx)(`optgroup`,{label:`X2 Series`,children:(0,G.jsx)(`option`,{value:`X2D`,children:`X2D`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Location / Group`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:a.location,onChange:e=>o({...a,location:e.target.value}),placeholder:n(`printers.modal.locationPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`printers.locationHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`edit_auto_archive`,checked:a.auto_archive,onChange:e=>o({...a,auto_archive:e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`edit_auto_archive`,className:`text-sm text-bambu-gray`,children:n(`printers.modal.autoArchiveLabel`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,id:`edit_maintenance_mode`,checked:!a.is_active,onChange:e=>o({...a,is_active:!e.target.checked}),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-amber-400 focus:ring-amber-400`}),(0,G.jsxs)(`label`,{htmlFor:`edit_maintenance_mode`,className:`text-sm text-bambu-gray flex items-center gap-1.5`,children:[(0,G.jsx)(td,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),n(`printers.maintenance.editFieldLabel`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1 ml-6`,children:n(`printers.maintenance.editFieldHelp`)})]}),l?(0,G.jsxs)(`div`,{className:`rounded-lg bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-300`,children:n(`printers.addPreflight.warning`)})]}),(0,G.jsx)(Yp,{result:l}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>u(null),className:`flex-1`,children:n(`printers.addPreflight.back`)}),(0,G.jsx)(Q,{type:`button`,onClick:f,className:`flex-1`,disabled:d.isPending,children:n(`printers.addPreflight.saveAnyway`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3 pt-4`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,className:`flex-1`,disabled:d.isPending||s,children:s?n(`printers.addPreflight.checking`):d.isPending?n(`common.saving`):n(`printers.modal.saveChanges`)})]})]})]})})})}function SAe(e){let{data:t}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:3e4});return!t?.connected}function CAe({printer:e,plug:t,onPowerOn:n,isPowering:r}){let i=SAe(e.id),{data:a}=K({queryKey:[`smartPlugStatus`,t.id],queryFn:()=>Z.getSmartPlugStatus(t.id),refetchInterval:1e4});return i?(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 hover:bg-gray-100 dark:hover:bg-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:e.name}),a&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded ${a.state===`ON`?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:a.state||`?`})]}),(0,G.jsxs)(`button`,{onClick:()=>n(t.id),disabled:r||a?.state===`ON`,className:`px-2 py-1 text-xs rounded transition-colors flex items-center gap-1 ${a?.state===`ON`?`bg-bambu-green/20 text-bambu-green cursor-default`:`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green hover:text-white`}`,children:[(0,G.jsx)(Ll,{className:`w-3 h-3`}),r?`...`:`On`]})]}):null}function wAe(){let{t:e}=U(),{resolvedMode:t,darkAccent:n,lightAccent:r}=Id(),i={green:`bg-green-500 text-white hover:bg-green-400 border-green-400/60`,teal:`bg-teal-500 text-white hover:bg-teal-400 border-teal-400/60`,blue:`bg-blue-500 text-white hover:bg-blue-400 border-blue-400/60`,orange:`bg-orange-500 text-white hover:bg-orange-400 border-orange-400/60`,purple:`bg-purple-500 text-white hover:bg-purple-400 border-purple-400/60`,red:`bg-red-500 text-white hover:bg-red-400 border-red-400/60`}[t===`dark`?n:r],[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(()=>localStorage.getItem(`hideDisconnectedPrinters`)===`true`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(()=>localStorage.getItem(`printerSortBy`)||`name`),[h,g]=(0,y.useState)(()=>localStorage.getItem(`printerSortAsc`)!==`false`),[_,v]=(0,y.useState)(()=>{let e=localStorage.getItem(`printerCardSize`);return e?parseInt(e,10):2}),[b,x]=(0,y.useState)(()=>localStorage.getItem(`printerPageView`)===`camwall`?`camwall`:`cards`),[S,C]=(0,y.useState)(()=>{let e=parseInt(localStorage.getItem(`camWallMaxLive`)||``,10);return Number.isFinite(e)&&e>0?e:4}),[w,T]=(0,y.useState)(()=>{let e=parseInt(localStorage.getItem(`camWallSnapshotSec`)||``,10);return Number.isFinite(e)&&e>0?e:8}),[E,D]=(0,y.useState)(()=>{let e=localStorage.getItem(`camWallStatusMode`);return e===`off`||e===`compact`||e===`full`?e:`full`}),O=_===1?`compact`:`expanded`,[k,A]=(0,y.useState)(null),j=(0,y.useCallback)(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{let t=document.getElementById(`printer-card-${e}`);if(!t)return;let n=document.querySelector(`header`)?.getBoundingClientRect().height??56,r=t.getBoundingClientRect().top+window.scrollY-n-16;window.scrollTo({top:Math.max(0,r),behavior:`smooth`})})})},[]),M=(0,y.useCallback)(e=>{A(e),v(2),localStorage.setItem(`printerCardSize`,`2`),j(e)},[j]),N=(0,y.useCallback)(()=>{let e=k;A(null),v(1),localStorage.setItem(`printerCardSize`,`1`),e!=null&&j(e)},[k,j]),[P,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(()=>{let e=localStorage.getItem(`printerStatusFilter`);return Zke(e)?e:`all`}),[R,z]=(0,y.useState)(()=>localStorage.getItem(`printerLocationFilter`)||`all`),[B,V]=(0,y.useState)(0),[ee,te]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`printerCollapsedSections`);return e?JSON.parse(e):{}}catch{return{}}}),ne=co(),{showToast:re}=qd(),{hasPermission:ie}=Nd(),[ae,oe]=(0,y.useState)(()=>xee()),[se,H]=(0,y.useState)(()=>{let e=localStorage.getItem(`openEmbeddedCameras`);if(e)try{let t=JSON.parse(e);return new Map(t.map(e=>[e.id,e]))}catch{return new Map}return new Map});(0,y.useEffect)(()=>{let e=Array.from(se.values());e.length>0?localStorage.setItem(`openEmbeddedCameras`,JSON.stringify(e)):localStorage.removeItem(`openEmbeddedCameras`)},[se]);let{data:ce,isLoading:le}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:ue}=K({queryKey:[`ui-preferences`],queryFn:Z.getUiPreferences}),de=(0,y.useMemo)(()=>Am(ue?.nozzle_temp_presets,Em,0,320),[ue?.nozzle_temp_presets]),fe=(0,y.useMemo)(()=>Am(ue?.bed_temp_presets,Dm,0,140),[ue?.bed_temp_presets]),pe=(0,y.useMemo)(()=>Am(ue?.chamber_temp_presets,Om,0,65),[ue?.chamber_temp_presets]),me=(0,y.useMemo)(()=>Am(ue?.fan_speed_presets,km,0,100),[ue?.fan_speed_presets]),he=(0,y.useMemo)(()=>{if(ue?.drying_presets)try{let e=JSON.parse(ue.drying_presets);if(typeof e==`object`&&e&&Object.keys(e).length>0)return{...fW,...e}}catch{}return fW},[ue?.drying_presets]),ge=ae??(ue?.camera_view_mode===`embedded`?`embedded`:`window`),_e=(0,y.useCallback)(e=>{See(e),oe(e),ie(`settings:update`)&&Z.updateSettings({camera_view_mode:e}).then(()=>ne.invalidateQueries({queryKey:[`ui-preferences`]})).catch(e=>console.warn(`Could not save camera view mode as the default:`,e))},[ie,ne]),{data:ve}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:ye}=K({queryKey:[`maintenanceOverview`],queryFn:Z.getMaintenanceOverview,staleTime:60*1e3}),{data:be}=K({queryKey:[`obico-printer-status`],queryFn:Z.getObicoPrinterStatus,refetchInterval:1e4}),xe=(0,y.useCallback)(e=>be?.enabled===!0&&(be.monitored_printers===null||be.monitored_printers.includes(e)),[be]),{data:Se}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,staleTime:60*1e3}),Ce=Se?.enabled&&Se?.connected,{data:we}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,enabled:!!Ce,staleTime:60*1e3}),Te=we?.spoolman_sync_mode,{data:Ee}=K({queryKey:[`unlinked-spools`],queryFn:Z.getUnlinkedSpools,enabled:!!Ce,staleTime:30*1e3}),De=Ee&&Ee.length>0,{data:Oe}=K({queryKey:[`linked-spools`],queryFn:Z.getLinkedSpools,enabled:!!Ce,staleTime:30*1e3}),ke=Oe?.linked,{data:Ae}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:ie(`inventory:view_assignments`),staleTime:30*1e3}),je=q({mutationFn:({printerId:e,amsId:t,trayId:n})=>Z.unassignSpool(e,t,n),onSuccess:()=>{ne.invalidateQueries({queryKey:[`spool-assignments`]})}}),{data:Me,isLoading:Ne}=K({queryKey:[`spoolman-inventory-spools`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:!!Ce,staleTime:30*1e3}),{data:Pe,isLoading:Fe}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:!!Ce,staleTime:30*1e3}),Ie=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{ne.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),ne.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})}}),Le=(e,t,n)=>Ae?.find(r=>r.printer_id===e&&r.ams_id===Number(t)&&r.tray_id===Number(n)),Re=ye?.reduce((e,t)=>(e[t.printer_id]={due_count:t.due_count,warning_count:t.warning_count,total_print_hours:t.total_print_hours},e),{})||{},ze=ve?.reduce((e,t)=>(t.printer_id&&(e[t.printer_id]=t),e),{})||{},Be=q({mutationFn:Z.createPrinter,onSuccess:()=>{ne.invalidateQueries({queryKey:[`printers`]}),ne.invalidateQueries({queryKey:[`maintenanceOverview`]}),o(!1)},onError:t=>{if(t instanceof sd&&t.code===`printer_connection_failed`){re(e(`printers.toast.connectionFailedNotAdded`),`error`);return}re(t.message||e(`printers.toast.failedToAdd`),`error`)}}),Ve=q({mutationFn:e=>Z.controlSmartPlug(e,`on`),onSuccess:()=>{ne.invalidateQueries({queryKey:[`smart-plugs`]}),f(null)},onError:()=>{f(null)}}),[He,Ue]=(0,y.useState)(new Set),[We,Ge]=(0,y.useState)(!1),[Ke,qe]=(0,y.useState)(null),[Je,Ye]=(0,y.useState)(!1),Xe=We||He.size>0,Ze=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Qe=(0,y.useCallback)(()=>{Ue(new Set),Ge(!1)},[]);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&Xe&&Qe()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Xe,Qe]);let $e=(0,y.useCallback)(async t=>{Ye(!0);let n=Array.from(He).filter(e=>{let n=ne.getQueryData([`printerStatus`,e]);if(t===`clearPlate`)return!!n?.awaiting_plate_clear;if(!n?.connected)return!1;switch(t){case`stop`:return n.state===`RUNNING`||n.state===`PAUSE`;case`pause`:return n.state===`RUNNING`;case`resume`:return n.state===`PAUSE`;case`clearHMS`:return n.hms_errors&&Fm(n.hms_errors).length>0;default:return!1}});if(n.length===0){re(e(`printers.bulk.noneApplicable`),`error`),Ye(!1),qe(null);return}let r={stop:Z.stopPrint,pause:Z.pausePrint,resume:Z.resumePrint,clearPlate:Z.clearPlate,clearHMS:Z.clearHMSErrors}[t],i=await Promise.allSettled(n.map(e=>r(e))),a=i.filter(e=>e.status===`fulfilled`).length,o=i.filter(e=>e.status===`rejected`).length;o===0?re(e(`printers.bulk.success`,{action:e(`printers.bulk.actions.${t}`),count:a})):re(e(`printers.bulk.partial`,{succeeded:a,failed:o}),`error`),n.forEach(e=>{ne.invalidateQueries({queryKey:[`printerStatus`,e]})}),Ye(!1),qe(null)},[He,ne,re,e]),et=(0,y.useCallback)(e=>{e===`stop`||e===`pause`||e===`clearPlate`?qe(e):$e(e)},[$e]),tt=()=>{let e=!s;c(e),localStorage.setItem(`hideDisconnectedPrinters`,String(e))},nt=e=>{m(e),localStorage.setItem(`printerSortBy`,e)},rt=e=>{L(e),localStorage.setItem(`printerStatusFilter`,e)},it=e=>{z(e),localStorage.setItem(`printerLocationFilter`,e)},at=()=>{let e=!h;g(e),localStorage.setItem(`printerSortAsc`,String(e))},ot=()=>{switch(_){case 1:return`grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5`;case 2:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`;case 3:return`grid-cols-1 lg:grid-cols-2`;case 4:return`grid-cols-1`;default:return`grid-cols-1 md:grid-cols-2 xl:grid-cols-3`}},st=[`S`,`M`,`L`,`XL`];(0,y.useEffect)(()=>ne.getQueryCache().subscribe(e=>{e.type===`updated`&&Array.isArray(e.query.queryKey)&&e.query.queryKey[0]===`printerStatus`&&V(e=>e+1)}),[ne]);let ct=(0,y.useMemo)(()=>{if(!ce)return[];let e=ce;if(P.trim()){let t=P.trim().toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||(e.model||``).toLowerCase().includes(t)||(e.location||``).toLowerCase().includes(t)||(e.serial_number||``).toLowerCase().includes(t))}return R!==`all`&&(e=e.filter(e=>(e.location||``)===R)),I!==`all`&&(e=e.filter(e=>{let t=ne.getQueryData([`printerStatus`,e.id]);if(!t?.connected)return I===`offline`;let n=t.hms_errors?Fm(t.hms_errors):[];switch(I){case`printing`:return t.state===`RUNNING`;case`paused`:return t.state===`PAUSE`;case`finished`:return t.state===`FINISH`;case`error`:return t.state===`FAILED`||n.length>0;case`idle`:return t.state!==`RUNNING`&&t.state!==`PAUSE`&&t.state!==`FINISH`&&t.state!==`FAILED`&&n.length===0;case`offline`:return!1;default:return!0}})),e},[ce,P,I,R,ne,B]),lt=(0,y.useMemo)(()=>ce?[...new Set(ce.map(e=>e.location||``).filter(Boolean))].sort():[],[ce]);(0,y.useEffect)(()=>{!ce||R===`all`||lt.includes(R)||(z(`all`),localStorage.setItem(`printerLocationFilter`,`all`))},[ce,lt,R]);let ut=(0,y.useMemo)(()=>{let e=[...ct];switch(p){case`name`:e.sort((e,t)=>e.name.localeCompare(t.name));break;case`model`:e.sort((e,t)=>(e.model||``).localeCompare(t.model||``));break;case`location`:e.sort((e,t)=>{let n=e.location||``,r=t.location||``;return!n&&r?1:n&&!r?-1:n.localeCompare(r)||e.name.localeCompare(t.name)});break;case`status`:e.sort((e,t)=>{let n=ne.getQueryData([`printerStatus`,e.id]),r=ne.getQueryData([`printerStatus`,t.id]),i=e=>e?.connected?(e.hms_errors?Fm(e.hms_errors):[]).length>0?0:e.state===`RUNNING`?1:2:3;return i(n)-i(r)});break;case`eta`:e.sort((e,t)=>{let n=ne.getQueryData([`printerStatus`,e.id]),r=ne.getQueryData([`printerStatus`,t.id]),i=e=>e?.connected?e.state===`RUNNING`&&e.remaining_time!=null&&e.remaining_time>0?0:e.state===`RUNNING`?1:2:3,a=i(n),o=i(r);if(a!==o)return a-o;if(a===0){let e=(n.remaining_time??0)-(r.remaining_time??0);if(e!==0)return e}return e.name.localeCompare(t.name)});break}return h||e.reverse(),e},[ct,p,h,ne]),dt=(0,y.useCallback)(()=>{Ue(new Set(ut.map(e=>e.id))),Ge(!0)},[ut]),ft=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.forEach(t=>{lW(ne.getQueryData([`printerStatus`,t.id]))===e&&n.add(t.id)}),n}),Ge(!0)},[ut,ne]),pt=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.filter(t=>(t.location||``)===e).forEach(e=>n.add(e.id)),n}),Ge(!0)},[ut]),mt=(0,y.useCallback)(e=>{Ue(t=>{let n=new Set(t);return ut.filter(t=>(t.model||`Unknown`)===e).forEach(e=>n.add(e.id)),n}),Ge(!0)},[ut]),ht=(0,y.useCallback)(e=>{te(t=>{let n={...t,[e]:!t[e]};try{localStorage.setItem(`printerCollapsedSections`,JSON.stringify(n))}catch{}return n})},[]),gt=(0,y.useMemo)(()=>{if(p===`name`||p===`eta`)return null;let e={};return p===`location`?ut.forEach(t=>{let n=t.location||`Ungrouped`;e[n]||(e[n]=[]),e[n].push(t)}):p===`model`?ut.forEach(t=>{let n=t.model||`Unknown`;e[n]||(e[n]=[]),e[n].push(t)}):p===`status`&&ut.forEach(t=>{let n=lW(ne.getQueryData([`printerStatus`,t.id]));e[n]||(e[n]=[]),e[n].push(t)}),e},[p,ut,ne,B]),_t=(0,y.useRef)(null),vt=(0,y.useRef)(null),yt=(0,y.useRef)(0),[bt,xt]=(0,y.useState)(!1),St=(0,y.useCallback)(()=>{let e=_t.current;if(!e)return;let t=vt.current?.offsetWidth;t&&(yt.current=t);let n=yt.current>0&&e.clientWidthe===n?e:n)},[]),Ct=Object.keys(ze).length;(0,y.useLayoutEffect)(()=>{St();let e=_t.current;if(!e)return;if(typeof ResizeObserver>`u`)return window.addEventListener(`resize`,St),()=>window.removeEventListener(`resize`,St);let t=new ResizeObserver(()=>St());return t.observe(e),window.addEventListener(`resize`,St),()=>{t.disconnect(),window.removeEventListener(`resize`,St)}},[St,ce?.length,lt.length,s,Ct]);let wt=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[ce&&ce.length>0&&(0,G.jsx)(iW,{value:I,onChange:rt,fullWidth:t,options:GU.map(t=>({value:t.value,label:e(t.labelKey)}))}),ce&&ce.length>0&<.length>0&&(0,G.jsx)(iW,{value:R,onChange:it,fullWidth:t,options:[{value:`all`,label:e(`printers.filter.allLocations`)},...lt.map(e=>({value:e,label:e}))]}),(0,G.jsx)(`button`,{type:`button`,onClick:tt,"aria-pressed":s,className:`h-8 px-2 rounded-lg border text-sm font-medium transition-colors ${t?`w-full`:``} ${s?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:e(`printers.hideOffline`)})]}),Tt=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1 ${t?`w-full`:``}`,children:[(0,G.jsx)(iW,{value:p,onChange:nt,fullWidth:t,options:[{value:`name`,label:e(`printers.sort.name`)},{value:`status`,label:e(`printers.sort.status`)},{value:`model`,label:e(`printers.sort.model`)},{value:`location`,label:e(`printers.sort.location`)},{value:`eta`,label:e(`printers.sort.eta`)}]}),(0,G.jsx)(`button`,{onClick:at,className:`h-8 shrink-0 px-2 rounded-lg border bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center justify-center`,title:e(h?`printers.sort.descending`:`printers.sort.ascending`),children:h?(0,G.jsx)(Ho,{className:`w-4 h-4 text-white`}):(0,G.jsx)(Io,{className:`w-4 h-4 text-white`})})]}),(0,G.jsxs)(`div`,{className:`flex h-8 items-center bg-bambu-dark rounded-lg border border-bambu-dark-tertiary ${t?`w-full`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(`cards`),localStorage.setItem(`printerPageView`,`cards`)},className:`flex h-full items-center gap-1 rounded-l-lg px-2 text-xs font-medium transition-colors ${t?`flex-1 justify-center`:``} ${b===`cards`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.pageView.cards`),"aria-pressed":b===`cards`,children:[(0,G.jsx)(Yc,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.cards`)})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(`camwall`),localStorage.setItem(`printerPageView`,`camwall`)},className:`flex h-full items-center gap-1 rounded-r-lg px-2 text-xs font-medium transition-colors ${t?`flex-1 justify-center`:``} ${b===`camwall`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.pageView.camWall`),"aria-pressed":b===`camwall`,disabled:!ie(`camera:view`),children:[(0,G.jsx)(hl,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.camWall`)})]})]}),b===`camwall`&&ie(`camera:view`)&&(0,G.jsxs)(Ai,{to:`/camwall`,className:`flex h-8 items-center gap-1 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-2 text-xs font-medium text-white transition-colors hover:bg-bambu-dark-tertiary ${t?`w-full justify-center`:``}`,title:e(`printers.pageView.openCamWallPage`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),t&&(0,G.jsx)(`span`,{children:e(`printers.pageView.openCamWallPage`)})]}),(0,G.jsx)(`div`,{className:`flex h-8 items-center bg-bambu-dark rounded-lg border border-bambu-dark-tertiary ${b===`camwall`?`opacity-40 pointer-events-none`:``} ${t?`w-full`:``}`,children:st.map((n,r)=>{let i=r+1,a=_===i;return(0,G.jsx)(`button`,{onClick:()=>{A(null),v(i),localStorage.setItem(`printerCardSize`,String(i))},className:`h-full px-2 text-xs font-medium transition-colors ${t?`flex-1`:``} ${r===0?`rounded-l-lg`:``} ${r===st.length-1?`rounded-r-lg`:``} ${a?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,title:e(n===`S`?`printers.cardSize.small`:n===`M`?`printers.cardSize.medium`:n===`L`?`printers.cardSize.large`:`printers.cardSize.extraLarge`),children:n},n)})})]}),Et=(t=!1)=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:()=>{Xe?Qe():Ge(!0)},className:`h-8 px-2 rounded-lg border transition-colors ${t?`w-full justify-center gap-1.5 text-sm font-medium flex items-center`:``} ${Xe?`bg-bambu-green border-bambu-green text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,title:e(`printers.bulk.select`),disabled:!ie(`printers:control`),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),t&&(0,G.jsx)(`span`,{children:e(`printers.bulk.select`)})]}),s&&Object.keys(ze).length>0&&(0,G.jsxs)(`div`,{className:`relative ${t?`w-full`:``}`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(!l),className:`h-8 flex items-center gap-1.5 px-2 text-sm rounded-lg border transition-colors ${t?`w-full justify-between bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary hover:text-white`:`bg-bambu-dark border-bambu-dark-tertiary text-white hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Ll,{className:`w-4 h-4`}),e(`printers.powerOn`)]}),(0,G.jsx)(ps,{className:`w-3 h-3 transition-transform ${l?`rotate-180`:``}`})]}),l&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>u(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 mt-2 w-56 bg-white dark:bg-bambu-dark-secondary border border-gray-200 dark:border-bambu-dark-tertiary rounded-lg shadow-lg z-20 py-1`,children:[(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-gray-500 dark:text-bambu-gray border-b border-gray-200 dark:border-bambu-dark-tertiary`,children:e(`printers.offlinePrintersWithPlugs`)}),ce?.filter(e=>ze[e.id]).map(e=>(0,G.jsx)(CAe,{printer:e,plug:ze[e.id],onPowerOn:e=>{f(e),Ve.mutate(e)},isPowering:d===ze[e.id]?.id},e.id)),ce?.filter(e=>ze[e.id]).length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:`No printers with smart plugs`})]})]})]}),(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!ie(`printers:create`),title:ie(`printers:create`)?void 0:e(`printers.permission.noAdd`),className:`!h-8 !min-h-8 px-2 py-0 ${t?`w-full`:``}`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]});return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Rl,{className:`w-7 h-7 text-bambu-green`}),e(`printers.title`)]}),(0,G.jsx)(dAe,{printers:ce})]}),(0,G.jsxs)(`div`,{ref:_t,className:`relative flex items-center gap-2`,children:[ce&&ce.length>0&&(0,G.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50`}),(0,G.jsx)(`input`,{type:`search`,name:`printer-search`,autoComplete:`off`,"data-1p-ignore":!0,"data-lpignore":`true`,value:P,onChange:e=>F(e.target.value),placeholder:e(`printers.search`),"aria-label":e(`printers.search`),className:`w-full h-8 pl-9 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),P&&(0,G.jsx)(`button`,{type:`button`,"aria-label":e(`common.clear`),onClick:()=>F(``),className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{ref:vt,"aria-hidden":bt,inert:bt,className:`${bt?`absolute -left-[9999px] top-0 flex w-max pointer-events-none opacity-0`:`flex`} ml-auto items-center justify-end gap-2 flex-nowrap [&>*]:shrink-0`,children:[(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:wt()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Tt()}),(0,G.jsx)(`div`,{className:`h-6 w-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:Et()})]}),bt&&(0,G.jsxs)(`div`,{className:`ml-auto flex items-center justify-end gap-1`,children:[(0,G.jsx)(aW,{label:e(`printers.toolbar.filters`,`Filters`),icon:(0,G.jsx)(wc,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:wt(!0)})}),(0,G.jsx)(aW,{label:e(`printers.toolbar.view`,`View`),icon:(0,G.jsx)(fu,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Tt(!0)})}),(0,G.jsx)(aW,{label:e(`printers.toolbar.actions`,`Actions`),icon:(0,G.jsx)(ec,{className:`w-4 h-4`}),children:(0,G.jsx)(`div`,{className:`flex w-48 flex-col gap-2`,children:Et(!0)})})]})]})]}),le?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`common.loading`)}):ce?.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`printers.noPrintersConfigured`)}),(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!ie(`printers:create`),title:ie(`printers:create`)?void 0:e(`printers.permission.noAdd`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`printers.addPrinter`)]})]})}):ut.length===0&&(P.trim()||I!==`all`||R!==`all`)?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`text-center py-12`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`printers.noSearchResults`)})})}):b===`camwall`?(0,G.jsx)(OT,{printers:ut,maxLive:S,snapshotIntervalSec:w,onTileClick:(e,t)=>{ge===`embedded`?H(n=>new Map(n).set(e,{id:e,name:t})):vm(e)},statusMode:E,onChangeMaxLive:e=>{C(e),localStorage.setItem(`camWallMaxLive`,String(e))},onChangeSnapshotIntervalSec:e=>{T(e),localStorage.setItem(`camWallSnapshotSec`,String(e))},onChangeStatusMode:e=>{D(e),localStorage.setItem(`camWallStatusMode`,e)}}):gt?(0,G.jsx)(`div`,{className:`space-y-6`,children:(()=>{let e=p===`status`?pAe.filter(e=>gt[e]?.length>0):Object.keys(gt);return h?e:[...e].reverse()})().map(t=>{let n=gt[t],r=`${p}:${t}`,i=!ee[r],a=p===`status`&&cW[t]?.dot||`bg-bambu-green`,o=p===`status`?e(cW[t]?.labelKey||t):t;return(0,G.jsx)($p,{open:i,onToggle:()=>ht(r),summaryClassName:`py-1`,summary:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${a}`}),o,(0,G.jsxs)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:[`(`,n.length,`)`]}),Xe&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),p===`location`?pt(t===`Ungrouped`?``:t):p===`status`?ft(t):p===`model`&&mt(t)},className:`text-xs text-bambu-green hover:text-bambu-green-light transition-colors ml-1`,children:e(`printers.bulk.selectAll`)})]}),children:(0,G.jsx)(`div`,{className:`grid gap-4 ${_>=3?`gap-6`:``} ${ot()}`,children:n.map(e=>(0,G.jsx)(mW,{printer:e,hideIfDisconnected:s,maintenanceInfo:Re[e.id],viewMode:O,cardSize:_,amsThresholds:ue?{humidityGood:Number(ue.ams_humidity_good)||40,humidityFair:Number(ue.ams_humidity_fair)||60,tempGood:Number(ue.ams_temp_good)||28,tempFair:Number(ue.ams_temp_fair)||35}:void 0,spoolmanEnabled:Ce,hasUnlinkedSpools:De,linkedSpools:ke,spoolmanUrl:Se?.url,spoolmanSyncMode:Te,onGetAssignment:Le,onUnassignSpool:(e,t,n)=>je.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:Me,spoolmanSlotAssignments:Pe,spoolmanLoading:Ne||Fe,onUnassignSpoolmanSpool:e=>Ie.mutate(e),timeFormat:ue?.time_format||`system`,cameraViewMode:ge,onOpenEmbeddedCamera:(e,t)=>H(n=>new Map(n).set(e,{id:e,name:t})),onSelectCameraViewMode:_e,checkPrinterFirmware:ue?.check_printer_firmware!==!1,dryingPresets:he,nozzleTempPresets:de,bedTempPresets:fe,chamberTempPresets:pe,fanSpeedPresets:me,requirePlateClear:ue?.require_plate_clear===!0,selectionMode:Xe,isSelected:He.has(e.id),onToggleSelect:Ze,onOpenCompactCard:M,aiDetectionEnabled:xe(e.id),aiDetection:be?.enabled?be.per_printer[String(e.id)]:void 0,aiLastError:be?.last_error??null},e.id))})},t)})}):(0,G.jsx)(`div`,{className:`grid gap-4 ${_>=3?`gap-6`:``} ${ot()}`,children:ut.map(e=>(0,G.jsx)(mW,{printer:e,hideIfDisconnected:s,maintenanceInfo:Re[e.id],viewMode:O,cardSize:_,spoolmanEnabled:Ce,hasUnlinkedSpools:De,linkedSpools:ke,spoolmanUrl:Se?.url,spoolmanSyncMode:Te,onGetAssignment:Le,onUnassignSpool:(e,t,n)=>je.mutate({printerId:e,amsId:t,trayId:n}),spoolmanSpools:Me,spoolmanSlotAssignments:Pe,spoolmanLoading:Ne||Fe,onUnassignSpoolmanSpool:e=>Ie.mutate(e),amsThresholds:ue?{humidityGood:Number(ue.ams_humidity_good)||40,humidityFair:Number(ue.ams_humidity_fair)||60,tempGood:Number(ue.ams_temp_good)||28,tempFair:Number(ue.ams_temp_fair)||35}:void 0,timeFormat:ue?.time_format||`system`,cameraViewMode:ge,onOpenEmbeddedCamera:(e,t)=>H(n=>new Map(n).set(e,{id:e,name:t})),onSelectCameraViewMode:_e,checkPrinterFirmware:ue?.check_printer_firmware!==!1,dryingPresets:he,nozzleTempPresets:de,bedTempPresets:fe,chamberTempPresets:pe,fanSpeedPresets:me,requirePlateClear:ue?.require_plate_clear===!0,selectionMode:Xe,isSelected:He.has(e.id),onToggleSelect:Ze,onOpenCompactCard:M,aiDetectionEnabled:xe(e.id),aiDetection:be?.enabled?be.per_printer[String(e.id)]:void 0,aiLastError:be?.last_error??null},e.id))}),_===2&&k!=null&&(0,G.jsxs)(`button`,{type:`button`,onClick:N,className:`fixed bottom-5 left-1/2 z-40 inline-flex -translate-x-1/2 items-center gap-2 rounded-full border px-4 py-2 text-sm font-medium shadow-xl transition-colors ${i}`,title:e(`common.back`,`Back`),children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),e(`common.back`,`Back`)]}),a&&(0,G.jsx)(yAe,{onClose:()=>o(!1),onAdd:e=>Be.mutate(e),existingSerials:ce?.map(e=>e.serial_number)||[]}),Xe&&ce&&(0,G.jsx)(Fee,{selectedIds:He,printers:ce,onClose:Qe,onSelectAll:dt,onSelectByLocation:pt,onSelectByState:ft,onAction:et,actionPending:Je}),Ke===`stop`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.stopTitle`,{count:He.size}),message:e(`printers.bulk.confirm.stopMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.stopButton`),variant:`danger`,isLoading:Je,onConfirm:()=>$e(`stop`),onCancel:()=>qe(null)}),Ke===`pause`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.pauseTitle`,{count:He.size}),message:e(`printers.bulk.confirm.pauseMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.pauseButton`),isLoading:Je,onConfirm:()=>$e(`pause`),onCancel:()=>qe(null)}),Ke===`clearPlate`&&(0,G.jsx)(of,{title:e(`printers.bulk.confirm.clearPlateTitle`,{count:He.size}),message:e(`printers.bulk.confirm.clearPlateMessage`,{count:He.size}),confirmText:e(`printers.bulk.confirm.clearPlateButton`),isLoading:Je,onConfirm:()=>$e(`clearPlate`),onCancel:()=>qe(null)}),Array.from(se.values()).map((e,t)=>(0,G.jsx)(qse,{printerId:e.id,printerName:e.name,viewerIndex:t,onClose:()=>H(t=>{let n=new Map(t);return n.delete(e.id),n})},e.id))]})}function TAe({title:e,message:t,subtitle:n,closeText:r,variant:i=`error`,onClose:a}){let{t:o}=U(),s=r??o(`common.close`);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-[120]`,onClick:a,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-dark ${i===`warning`?`text-yellow-600 dark:text-yellow-400`:`text-red-600 dark:text-red-400`}`,children:(0,G.jsx)(Lu,{className:`w-6 h-6`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-1`,children:e}),n&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2 truncate`,children:n}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm whitespace-pre-line break-words`,children:t})]})]}),(0,G.jsx)(`div`,{className:`flex mt-6`,children:(0,G.jsx)(Q,{onClick:a,className:`flex-1`,children:s})})]})})})}var hW=(0,y.createContext)(null),EAe=1500,DAe=1e3,gW=e=>`slice-job-${e}`;function _W(e){try{return decodeURIComponent(e)}catch{return e}}function OAe(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}function kAe({children:e}){let{t}=U(),{showToast:n,showPersistentToast:r,dismissToast:i}=qd(),a=co(),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(null),u=(0,y.useRef)([]);u.current=o;let d=(0,y.useRef)(new Map),f=(0,y.useRef)(new Map),p=(0,y.useRef)(new Map),m=(0,y.useRef)(new Set),h=(0,y.useCallback)(e=>{let n=d.current.get(e.id);if(n==null)return;let i=(Date.now()-n)/1e3,a=f.current.get(e.id)??`pending`,o=OAe(i),s=p.current.get(e.id)??null,c=s&&s.stage&&s.total_percent>0;if(a===`running`&&c){let n=_W(e.sourceName),i=s.stage,a=Math.min(100,Math.max(0,Math.round(s.total_percent))),c=typeof s.multi_plate_index==`number`&&typeof s.multi_plate_count==`number`&&s.multi_plate_count>1?t(`slice.runningWithProgressMultiPlate`,`Plate {{plateIndex}} of {{plateCount}} • {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{plateIndex:s.multi_plate_index,plateCount:s.multi_plate_count,name:n,stage:i,percent:a,elapsed:o}):t(`slice.runningWithProgress`,`{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:n,stage:i,percent:a,elapsed:o});r(gW(e.id),c,`loading`);return}let l=a===`pending`?`slice.queuedToast`:`slice.runningToast`,u=a===`pending`?`Queued: {{name}} — {{elapsed}}`:`Slicing {{name}} — {{elapsed}}`;r(gW(e.id),t(l,u,{name:_W(e.sourceName),elapsed:o}),`loading`)},[r,t]),g=(0,y.useCallback)((e,t,n)=>{s(r=>r.some(t=>t.id===e)?r:[...r,{id:e,kind:t,sourceName:n}]),m.current.delete(e),d.current.set(e,Date.now()),f.current.set(e,`pending`),p.current.set(e,null),h({id:e,kind:t,sourceName:n})},[h]),_=(0,y.useCallback)((e,r)=>{m.current.has(e.id)||(m.current.add(e.id),s(t=>t.filter(t=>t.id!==e.id)),d.current.delete(e.id),f.current.delete(e.id),p.current.delete(e.id),i(gW(e.id)),r.status===`completed`?(n(t(`slice.completedToast`,`Sliced {{name}}`,{name:_W(e.sourceName)}),`success`),r.result&&`external_write_fallback`in r.result&&r.result.external_write_fallback&&n(t(`slice.externalWriteFallbackToast`,`Saved to the internal library: the external folder could not be written to`),`warning`)):r.status===`failed`&&l({name:_W(e.sourceName),detail:r.error_detail||t(`slice.failed`)}),a.invalidateQueries({queryKey:[`library-files`]}),a.invalidateQueries({queryKey:[`archives`]}))},[i,a,n,t]);return(0,y.useEffect)(()=>{if(o.length===0)return;let e=!1,t=!1,n=setInterval(async()=>{if(!(e||t)){t=!0;try{let t=[...u.current];for(let n of t)try{let t=await Z.getSliceJob(n.id);if(e)return;f.current.set(n.id,t.status),t.progress&&p.current.set(n.id,t.progress),(t.status===`completed`||t.status===`failed`)&&_(n,t)}catch{}}finally{t=!1}}},EAe);return()=>{e=!0,clearInterval(n)}},[o.length,_]),(0,y.useEffect)(()=>{if(o.length===0)return;let e=setInterval(()=>{for(let e of u.current)h(e)},DAe);return()=>clearInterval(e)},[o.length,h]),(0,G.jsxs)(hW.Provider,{value:{trackJob:g,activeJobs:o},children:[e,c&&(0,G.jsx)(TAe,{title:t(`slice.failedTitle`),subtitle:c.name,message:c.detail,onClose:()=>l(null)})]})}function vW(){let e=(0,y.useContext)(hW);if(!e)throw Error(`useSliceJobTracker must be used inside SliceJobTrackerProvider`);return e}var yW=1024;function AAe(){let[e,t]=(0,y.useState)(()=>typeof window<`u`?window.innerWidth>=yW:!1);return(0,y.useEffect)(()=>{let e=window.matchMedia(`(min-width: ${yW}px)`),n=e=>{t(e.matches)};return t(e.matches),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function bW({plates:e,onSelect:t,onClose:n}){let{t:r}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`w-full max-w-3xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:r(`archives.platePicker.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`archives.platePicker.hint`)})]}),(0,G.jsx)(`button`,{onClick:n,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>t(e.index),className:`flex items-center gap-2 p-2 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray transition-colors text-left`,children:[e.has_thumbnail&&e.thumbnail_url!=null?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`w-12 h-12 rounded object-cover bg-bambu-dark-tertiary flex-shrink-0`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center flex-shrink-0`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium truncate`,children:e.name?`${r(`archives.platePicker.plateLabel`,{index:e.index})} — ${e.name}`:r(`archives.platePicker.plateLabel`,{index:e.index})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray truncate`,children:[e.objects.length>0?e.objects.slice(0,3).join(`, `)+(e.objects.length>3?`…`:``):e.object_count!=null&&e.object_count>0?r(`archives.platePicker.objectCount`,{count:e.object_count}):`${e.filaments.length} filament${e.filaments.length===1?``:`s`}`,e.print_time_seconds==null?``:` • ${lp(e.print_time_seconds)}`]})]})]},e.index))})})]})})}var xW=e=>typeof e==`object`&&!!e&&`enumKey`in e,SW=`enum:`;function CW(e){if(typeof e==`number`)return e;if(typeof e==`boolean`)return+!!e;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function wW(e){if(typeof e==`boolean`)return e;if(typeof e==`number`)return e!==0;if(e===`1`||e===`true`)return!0;if(e===`0`||e===`false`)return!1}function jAe(e,t){return{get:n=>{let r=e[n];if((r===void 0||r===``)&&(r=t[n]?.default),Array.isArray(r)&&(r=r[0]),typeof r==`boolean`||typeof r==`number`||typeof r==`string`)return r},has:e=>e in t}}var MAe=[`->`,`||`,`&&`,`==`,`!=`,`<=`,`>=`,`(`,`)`,`,`,`<`,`>`,`!`];function NAe(e){let t=[],n=0;for(;ne.startsWith(t,n));if(a){t.push({kind:`op`,value:a}),n+=a.length;continue}let o=/^[A-Za-z_][A-Za-z0-9_]*(::[A-Za-z_][A-Za-z0-9_]*)*/.exec(e.slice(n));if(o){t.push({kind:`id`,value:o[0]}),n+=o[0].length;continue}return}return t}var PAe=new Set([`opt_bool`,`opt_int`,`opt_float`,`opt_float_nullable`,`opt_int_nullable`,`opt_bool_nullable`,`opt_enum`,`opt_string`,`option`,`has`]),FAe=class e{tokens=[];pos=0;cfg;locals;schema;resolving;memo;constructor(e,t,n,r,i){this.cfg=e,this.locals=t,this.schema=n,this.resolving=r,this.memo=i}evaluate(e){let t=NAe(e);if(!t||t.length===0)return;this.tokens=t,this.pos=0;let n=this.parseOr();if(this.pos===this.tokens.length)return n}peek(){return this.tokens[this.pos]}eatOp(e){let t=this.peek();return t&&t.kind===`op`&&t.value===e?(this.pos+=1,!0):!1}parseOr(){let e=this.parseAnd();for(;this.eatOp(`||`);){let t=this.parseAnd(),n=wW(e),r=wW(t);e=n===!0||r===!0?!0:n===void 0||r===void 0?void 0:n||r}return e}parseAnd(){let e=this.parseComparison();for(;this.eatOp(`&&`);){let t=this.parseComparison(),n=wW(e),r=wW(t);e=n===!1||r===!1?!1:n===void 0||r===void 0?void 0:n&&r}return e}parseComparison(){let e=this.parseUnary();for(let t of[`==`,`!=`,`<=`,`>=`,`<`,`>`])if(this.eatOp(t))return IAe(e,this.parseUnary(),t,this.schema);return e}parseUnary(){if(this.eatOp(`!`)){let e=wW(this.parseUnary());return e===void 0?void 0:!e}return this.parsePrimary()}parsePrimary(){let e=this.peek();if(!e)return;if(e.kind===`num`||e.kind===`str`)return this.pos+=1,e.value;if(e.kind===`op`&&e.value===`(`){this.pos+=1;let e=this.parseOr();return this.eatOp(`)`)?e:void 0}if(e.kind!==`id`)return;if(this.pos+=1,e.value===`true`)return!0;if(e.value===`false`)return!1;if(e.value===`config`)return this.parseConfigAccess();let t=this.locals[e.value];return t===void 0?`${SW}${e.value}`:this.resolveLocal(e.value,t)}parseConfigAccess(){if(!this.eatOp(`->`))return;let e=this.peek();if(!e||e.kind!==`id`||!PAe.has(e.value))return;if(this.pos+=1,this.eatOp(`<`)){let e=1;for(;e>0;){let t=this.peek();if(!t)return;this.pos+=1,t.kind===`op`&&t.value===`<`&&(e+=1),t.kind===`op`&&t.value===`>`&&--e}}if(!this.eatOp(`(`))return;let t=this.peek();if(!t||t.kind!==`str`)return;this.pos+=1;let n=t.value;for(;this.eatOp(`,`);){let e=0;for(;;){let t=this.peek();if(!t)return;if(t.kind===`op`&&t.value===`(`&&(e+=1),t.kind===`op`&&t.value===`)`){if(e===0)break;--e}if(t.kind===`op`&&t.value===`,`&&e===0)break;this.pos+=1}}if(!this.eatOp(`)`))return;if(this.eatOp(`->`)){let e=this.peek();if(!e||e.kind!==`id`)return;this.pos+=1}if(e.value===`has`)return this.cfg.has(n);let r=this.cfg.get(n);return this.schema[n]?.enum_values?{enumKey:n,value:typeof r==`string`?r:void 0}:r}resolveLocal(t,n){let r=this.memo.get(t);if(r!==void 0||this.memo.has(t))return r;if(this.resolving.has(t))return;this.resolving.add(t);let i=new e(this.cfg,this.locals,this.schema,this.resolving,this.memo).evaluate(n);return this.resolving.delete(t),this.memo.set(t,i),i}};function IAe(e,t,n,r){let i=typeof e==`string`&&e.startsWith(SW)?e:typeof t==`string`&&t.startsWith(SW)?t:void 0;if(i!==void 0){if(n!==`==`&&n!==`!=`)return;let a=i===e?t:e;if(!xW(a))return;let o=r[a.enumKey]?.enum_values;if(!o||a.value===void 0)return;let s=LAe(i.slice(5)).filter(e=>o.includes(e));if(s.length!==1)return;let c=s[0]===a.value;return n===`==`?c:!c}let a=xW(e)?e.value:e,o=xW(t)?t.value:t;if(n===`==`||n===`!=`){if(a===void 0||o===void 0)return;let e=typeof a==`string`||typeof o==`string`?String(a)===String(o):CW(a)===CW(o);return n===`==`?e:!e}let s=CW(a),c=CW(o);if(!(s===void 0||c===void 0)){if(n===`<`)return s`)return s>c;if(n===`>=`)return s>=c}}function LAe(e){let t=e.includes(`::`)?e.slice(e.lastIndexOf(`::`)+2):e,n=[t,/^[a-z]+([A-Z].*)$/.exec(t)?.[1]].filter(e=>!!e),r=new Set;for(let e of n){let t=e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).toLowerCase();r.add(t),r.add(t.replace(/_/g,` `)),r.add(t.replace(/_/g,``))}return[...r]}function RAe(e,t,n){let r=jAe(e,t),i=new Map,a=new Set;for(let e of n.rules){let o=zAe(e.enable_if);if(o&&wW(new FAe(r,n.locals,t,new Set,i).evaluate(o))===!1)for(let t of e.fields)a.add(t)}return a}function zAe(e){let t=0;for(let n=0;nBAe.has(e.type);function TW(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`)return;let t=Number.parseFloat(e);return Number.isFinite(t)?t:void 0}function HAe(e){let t=e.sidetext;if(!(!t||t.includes(`->`)||t.includes(`::`)))return t}function EW(e,t){let n=t===void 0?e.default:t;return n===void 0?``:Array.isArray(n)?n.map(String).join(`, `):typeof n==`boolean`?n?`1`:`0`:String(n)}function DW(e,t){if(VAe(e))return(Array.isArray(t)?t.map(String):String(t).split(`,`)).map(e=>e.trim()).filter(e=>e!==``);if(e.type===`coBool`)return typeof t==`boolean`?t?`1`:`0`:t===`1`||t===`true`||t===1?`1`:`0`;let n=String(t).trim();return e.type===`coPercent`?n.endsWith(`%`)?n:`${n}%`:n}function UAe(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=t[r];e&&(n[r]=DW(e,i))}return n}function OW(e,t,n){if(t===void 0||t===``)return!1;let r=t=>{let n=DW(e,Array.isArray(t)?t.map(String).join(`, `):t);return Array.isArray(n)?n.join(`, `):n},i=r(t),a=n===void 0?e.default:n;return a===void 0?i!==``:i!==r(a)}var WAe=new Set([`support_filament`,`support_interface_filament`,`outer_wall_filament_id`,`inner_wall_filament_id`,`top_surface_filament_id`,`bottom_surface_filament_id`,`internal_solid_filament_id`,`sparse_infill_filament_id`]),GAe=[`simple`,`advanced`,`expert`],kW={simple:0,advanced:1,expert:2,develop:3};function KAe({values:e,onChange:t,disabled:n=!1,sourceOverrides:r=[],sourceSelected:i,onToggleSource:a,filamentChoices:o,presetValues:s,presetValuesResolved:c=!0,presetValuesReason:l}){let{t:u}=U(),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(`simple`),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(``);(0,y.useEffect)(()=>{let e=!1;return Promise.all([Pt(()=>import(`./process-schema-CzfeynAH.js`),[]),Pt(()=>import(`./process-ui-tree-BWrKRLV6.js`),[]),Pt(()=>import(`./process-toggle-rules-DDBax3G5.js`),[])]).then(([t,n,r])=>{e||f({schema:t.default??t,tree:n.default??n,toggles:r.default??r})}),()=>{e=!0}},[]);let b=(0,y.useMemo)(()=>{let t={...s??{}};for(let e of r)i?.has(e.key)&&(t[e.key]=e.value);for(let[n,r]of Object.entries(e))r!==void 0&&r!==``&&(t[n]=r);return t},[s,r,i,e]),x=(0,y.useMemo)(()=>d?RAe(b,d.schema,d.toggles):new Set,[d,b]),S=(0,y.useMemo)(()=>new Map(r.map(e=>[e.key,e])),[r]),C=(0,y.useMemo)(()=>r.filter(e=>!e.printer_coupled&&!e.preset_defining),[r]),w=(0,y.useMemo)(()=>r.filter(e=>i?.has(e.key)).length,[r,i]),T=(0,y.useMemo)(()=>d?r.filter(e=>!d.schema[e.key]):[],[d,r]),E=e=>{if(!d)return;let n={};for(let[t,r]of Object.entries(e))d.schema[t]&&OW(d.schema[t],r,s?.[t])&&(n[t]=r);t(e,UAe(n,d.schema))},D=(t,n)=>{let r={...e};n===void 0?delete r[t]:r[t]=n,E(r)},O=(0,y.useMemo)(()=>{if(!d)return[];let e=e=>e.toLowerCase().replace(/[_\s]+/g,` `).trim(),t=e(_),n=e=>kW[d.schema[e]?.mode??`expert`]<=kW[p],r=(n,r,i)=>{if(!t)return!0;let a=d.schema[n];return[n,a?.label??``,a?.tooltip??``,r,i].some(n=>e(n).includes(t))};return d.tree.map(e=>({...e,groups:e.groups.map(t=>({...t,options:t.options.filter(i=>n(i)&&r(i,t.group,e.page))})).filter(e=>e.options.length>0)})).filter(e=>e.groups.length>0)},[d,p,_]),k=(0,y.useMemo)(()=>O.length===0||_.trim()?null:O.find(e=>e.page===h)??O[0],[O,h,_]),A=(0,y.useMemo)(()=>d?Object.keys(e).filter(t=>d.schema[t]&&OW(d.schema[t],e[t],s?.[t])).length:0,[d,e,s]);if(!d)return(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-8 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),u(`slicerSettings.loading`,`Loading slicer settings...`)]});let j=k?[k]:O;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:GAe.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(e),disabled:n,className:`px-2.5 py-1 text-xs capitalize transition-colors ${p===e?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:u(`slicerSettings.mode.${e}`,e)},e))}),(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[10rem]`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),disabled:n,placeholder:u(`slicerSettings.searchPlaceholder`,`Search settings`),className:`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark pl-7 pr-2 py-1 text-xs text-white placeholder:text-bambu-gray/60 focus:border-bambu-green focus:outline-none disabled:opacity-40`})]}),A>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>E({}),disabled:n,className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-white`,children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),u(`slicerSettings.resetAll`,`Reset {{count}}`,{count:A})]})]}),!c&&(0,G.jsx)(`p`,{className:`rounded border border-amber-300 bg-amber-50 px-2 py-1 text-[0.7rem] text-amber-800 dark:border-amber-700/40 dark:bg-amber-900/20 dark:text-amber-200`,children:l===`sidecar_outdated`?u(`slicerSettings.presetValuesOutdatedSidecar`,`Showing slicer defaults: your slicer sidecar is older than this feature and can't report a preset's values. Update the sidecar image to see them. Anything you don't change still uses the preset.`):l===`not_configured`?u(`slicerSettings.presetValuesNotConfigured`,`Showing slicer defaults: no slicer sidecar is configured, so a preset's values can't be read. Anything you don't change still uses the preset.`):l===`sidecar_unavailable`?u(`slicerSettings.presetValuesSidecarUnavailable`,`Showing slicer defaults: the slicer sidecar did not answer, so a preset's values can't be read. Anything you don't change still uses the preset.`):u(`slicerSettings.presetValuesUnavailable`,`Showing slicer defaults: the picked preset's own values could not be read. Anything you don't change still uses the preset.`)}),r.length>0&&a&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded border border-bambu-dark-tertiary px-2 py-1.5 text-[0.7rem] text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`min-w-0 flex-1`,children:u(`slicerSettings.fromFileSummary`,`The designer changed {{count}} process settings in this file. Only the ones you tick are used.`,{count:r.length})}),(0,G.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>C.forEach(e=>a(e.key,!0)),title:u(`slicerSettings.fromFileUseAllHint`,`Ticks the settings that carry across printers. The ones tuned for the designer's own printer, and the ones that define the preset you picked, stay off.`),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:u(`slicerSettings.fromFileUseAll`,`Use the designer's settings`)}),w>0&&(0,G.jsx)(`button`,{type:`button`,disabled:n,onClick:()=>r.forEach(e=>a(e.key,!1)),className:`shrink-0 rounded border border-bambu-dark-tertiary px-1.5 py-0.5 hover:text-white disabled:opacity-40`,children:u(`slicerSettings.fromFileClear`,`Clear {{count}}`,{count:w})})]}),!_.trim()&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:O.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(e.page),disabled:n,className:`px-2 py-1 text-xs rounded transition-colors ${k?.page===e.page?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,children:e.page},e.page))}),j.length===0?(0,G.jsx)(`p`,{className:`py-6 text-center text-xs text-bambu-gray`,children:u(`slicerSettings.noMatches`,`No settings match this search.`)}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 max-h-[22rem] lg:max-h-[58vh] overflow-y-auto pr-1`,children:[j.map(t=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[_.trim()&&(0,G.jsx)(`p`,{className:`text-[0.7rem] uppercase tracking-wide text-bambu-gray/70`,children:t.page}),t.groups.map(r=>(0,G.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:r.group}),r.options.map(t=>(0,G.jsx)(qAe,{optionKey:t,option:d.schema[t],value:e[t],onChange:e=>D(t,e),disabled:n||x.has(t),disabledBySlicer:x.has(t),formDisabled:n,source:S.get(t),sourceOn:i?.has(t)??!1,onToggleSource:a,filamentChoices:WAe.has(t)?o:void 0,presetValue:s?.[t]},t))]},`${t.page}:${r.group}`))]},t.page)),T.length>0&&!_.trim()&&(0,G.jsxs)(`fieldset`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`legend`,{className:`mb-1 text-xs font-medium text-white`,children:u(`slicerSettings.otherFromFile`,`Other settings from this file`)}),T.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-xs cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i?.has(e.key)??!1,disabled:n||!a,onChange:t=>a?.(e.key,t.target.checked),className:`shrink-0 cursor-pointer disabled:opacity-40`}),(0,G.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[(0,G.jsx)(`span`,{className:`font-mono text-bambu-gray`,children:e.key}),(0,G.jsx)(`span`,{className:`ml-1.5 text-white`,children:AW(e.value)})]}),(e.printer_coupled||e.preset_defining)&&(0,G.jsx)(`span`,{className:`shrink-0 rounded bg-amber-100 px-1 py-0.5 text-[10px] text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`,children:e.printer_coupled?u(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):u(`slicerSettings.fromFileOverridesPreset`,`overrides preset`)})]},e.key))]})]})]})}function qAe({optionKey:e,option:t,value:n,onChange:r,disabled:i,disabledBySlicer:a,formDisabled:o,source:s,sourceOn:c=!1,onToggleSource:l,filamentChoices:u,presetValue:d}){let{t:f}=U(),p=OW(t,n,d),m=HAe(t),h=n===void 0?c&&s?AW(s.value):EW(t,d):String(n);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 group`,title:t.tooltip,children:[(0,G.jsxs)(`label`,{htmlFor:`slicer-opt-${e}`,className:`flex min-w-0 flex-1 items-center gap-1 text-xs ${a?`text-bambu-gray/40`:`text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`truncate`,title:t.label||e,children:t.label||e}),p&&(0,G.jsx)(`span`,{className:`shrink-0 text-bambu-green`,"aria-hidden":`true`,children:`•`}),s&&(0,G.jsx)(`span`,{className:`shrink-0 rounded px-1 py-0.5 text-[10px] ${s.printer_coupled||s.preset_defining?`bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400`:`bg-bambu-green/15 text-bambu-green`}`,title:s.printer_coupled?f(`slicerSettings.fromFilePrinterCoupledHint`,`Tuned for the printer this file was designed for -- may be wrong or out of range on yours.`):s.preset_defining?f(`slicerSettings.fromFileOverridesPresetHint`,`The file sets this to {{value}} where the preset you picked uses {{preset}}. Tick it only if the file should win.`,{value:AW(s.value),preset:EW(t,d)}):f(`slicerSettings.fromFileHint`,`The designer changed this in the source file. Its value is {{value}}.`,{value:AW(s.value)}),children:s.printer_coupled?f(`slicerSettings.fromFilePrinterCoupled`,`designer's printer`):s.preset_defining?f(`slicerSettings.fromFileOverridesPreset`,`overrides preset`):f(`slicerSettings.fromFile`,`from file`)})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`flex w-3 shrink-0 justify-center`,children:s&&l&&(0,G.jsx)(`input`,{type:`checkbox`,checked:c,disabled:o,onChange:t=>l(e,t.target.checked),"aria-label":f(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),title:f(`slicerSettings.useFromFile`,`Use the source file's value for {{option}}`,{option:t.label||e}),className:`w-3 h-3 cursor-pointer disabled:opacity-40`})}),(0,G.jsx)(`div`,{className:`w-40`,children:(0,G.jsx)(JAe,{id:`slicer-opt-${e}`,option:t,current:h,onChange:r,disabled:i,filamentChoices:u})}),(0,G.jsx)(`span`,{className:`w-16 shrink-0 whitespace-nowrap text-[0.65rem] text-bambu-gray/60`,children:m??``}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>r(void 0),disabled:i||!p,"aria-label":f(`slicerSettings.resetOption`,`Reset to default`),className:`p-0.5 transition-opacity ${p?`text-bambu-gray hover:text-white`:`opacity-0 pointer-events-none`}`,children:(0,G.jsx)(Wl,{className:`w-3 h-3`})})]})]})}function AW(e){return Array.isArray(e)?e.map(e=>String(e)).join(`, `):e==null?``:String(e)}function JAe({id:e,option:t,current:n,onChange:r,disabled:i,filamentChoices:a}){let{t:o}=U(),s=`w-full rounded border border-bambu-dark-tertiary bg-bambu-dark px-1.5 py-0.5 text-xs text-white focus:border-bambu-green focus:outline-none disabled:opacity-40`;if(a&&a.length>0){let t=a.find(e=>String(e.index)===n);return(0,G.jsxs)(`div`,{className:`relative w-full`,children:[(0,G.jsxs)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:i,className:`${s} w-full cursor-pointer appearance-none pr-5`,title:t?.label,children:[(0,G.jsx)(`option`,{value:`0`,children:o(`slicerSettings.filamentDefault`,`Default`)}),a.map(e=>(0,G.jsxs)(`option`,{value:String(e.index),children:[e.index,`: `,e.label]},e.index))]}),(0,G.jsx)(ps,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]})}return t.type===`coBool`?(0,G.jsx)(`input`,{id:e,type:`checkbox`,checked:n===`1`||n===`true`,onChange:e=>r(e.target.checked),disabled:i,className:`w-3.5 h-3.5 cursor-pointer disabled:opacity-40`}):t.type===`coEnum`&&t.enum_values?(0,G.jsxs)(`div`,{className:`relative w-full`,children:[(0,G.jsx)(`select`,{id:e,value:n,onChange:e=>r(e.target.value),disabled:i,className:`${s} w-full cursor-pointer appearance-none pr-5`,children:t.enum_values.map((e,n)=>(0,G.jsx)(`option`,{value:e,children:t.enum_labels?.[n]??e},e))}),(0,G.jsx)(ps,{className:`pointer-events-none absolute right-1.5 top-1/2 h-3 w-3 -translate-y-1/2 text-bambu-gray`})]}):t.type===`coInt`||t.type===`coFloat`||t.type===`coPercent`?(0,G.jsx)(`input`,{id:e,type:`number`,value:n.replace(`%`,``),min:TW(t.min),max:TW(t.max),step:t.type===`coInt`?1:`any`,onChange:e=>r(e.target.value),disabled:i,className:s}):(0,G.jsx)(`input`,{id:e,type:`text`,value:n,onChange:e=>r(e.target.value),disabled:i,className:s})}var jW=[`local`,`orca_cloud`,`cloud`,`standard`],YAe={local:1.75,orca_cloud:1.5,cloud:1,standard:.5};function MW(e,t){for(let n of jW){let r=e[n][t];if(r.length>0)return{source:r[0].source,id:r[0].id}}return null}function NW(e,t,n){return t?e[t.source][n].find(e=>e.id===t.id)??null:null}function PW(e,t,n){if(!n)return null;for(let r of jW){let i=e[r][t].find(e=>e.name===n);if(i)return{source:i.source,id:i.id}}return null}function XAe(e,t,n,r){let i=PW(e,`process`,r);if(i){let r=NW(e,i,`process`);if(r&&PH(r,`process`,t,n)!==`mismatch`)return i}for(let r of[`match`,`unknown`])for(let i of jW){let a=$Ae(e[i].process.filter(e=>PH(e,`process`,t,n)===r));if(a)return{source:a.source,id:a.id}}return MW(e,`process`)}var ZAe=.2,QAe=/^\s*([\d.]+)\s*mm\b/i;function $Ae(e){let t=null,n=1/0,r=-1/0;for(let i of e){let e=QAe.exec(i.name),a=e?Number.parseFloat(e[1]):NaN,o=Number.isFinite(a)&&a>0,s=o?Math.abs(a-ZAe):1/0;(t==null||sr)&&(t=i,n=s,r=o?a:-1/0)}return t}function FW(e,t){let n=t.trim().toUpperCase(),r=(e.filament_type??``).trim().toUpperCase();return!!n&&!!r&&n!==r}function eje(e,t,n,r){let i=t.type.trim().toUpperCase(),a=hp(t.color),o=null,s=null,c=null;for(let l of jW)for(let u of e[l].filament){let e=0,d=(u.filament_type??``).trim().toUpperCase(),f=hp(u.filament_colour??``);i&&d&&i===d&&(e+=10),a&&f&&(f===a?e+=5:wp(u.filament_colour??``,t.color)&&(e+=2)),e+=YAe[l];let p={source:u.source,id:u.id};FW(u,i)?(c==null||e>c.score)&&(c={ref:p,score:e}):PH(u,`filament`,n,r)===`mismatch`?(s==null||e>s.score)&&(s={ref:p,score:e}):(o==null||e>o.score)&&(o={ref:p,score:e})}return o==null?s==null?c==null?MW(e,`filament`):c.ref:s.ref:o.ref}function IW(e){return e?`${e.source}:${e.id}`:``}function tje(e){if(!e)return null;let t=e.indexOf(`:`);if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n!==`orca_cloud`&&n!==`cloud`&&n!==`local`&&n!==`standard`?null:{source:n,id:r}}function nje({requestId:e,sourceName:t}){let{t:n}=U(),{showPersistentToast:r,dismissToast:i}=qd(),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(null),l=t;try{l=decodeURIComponent(t)}catch{}(0,y.useEffect)(()=>{let e=Date.now(),t=setInterval(()=>o(Math.floor((Date.now()-e)/1e3)),1e3);return()=>clearInterval(t)},[]),(0,y.useEffect)(()=>{let t=!1,n=setInterval(async()=>{if(t)return;let n=await Z.getPreviewSliceProgress(e);!t&&n&&c(n)},1e3);return()=>{t=!0,clearInterval(n)}},[e]);let u=`slice-preview-${e}`;(0,y.useEffect)(()=>{let e=s&&s.stage&&s.total_percent>0,t=rje(a);return e?r(u,n(`slice.previewWithProgress`,`Analyzing {{name}} — {{stage}} ({{percent}}%) — {{elapsed}}`,{name:l,stage:s.stage,percent:Math.min(100,Math.max(0,Math.round(s.total_percent))),elapsed:t}),`loading`):r(u,n(`slice.previewToast`,{name:l,elapsed:t}),`loading`),()=>{i(u)}},[a,s,l,r,i,n,u]);let d=s?.stage,f=s?.total_percent,p=d&&typeof f==`number`&&f>0?`${d} (${Math.min(100,Math.max(0,Math.round(f)))}%)`:n(`slice.analyzingPlateFilaments`);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 text-bambu-gray text-sm py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),p,(0,G.jsxs)(`span`,{className:`text-xs tabular-nums`,children:[a,`s`]})]}),a>=5&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/70 pl-6`,children:n(`slice.analyzingPlateFilamentsHint`,`Running a preview slice to discover which AMS slots this plate uses. Cached after — re-opening is instant.`)})]})}function rje(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m`}var ije=`#00AE42`;function LW(e){let t=(e||``).trim();return/^#[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/.test(t)?t.slice(0,7).toUpperCase():ije}function RW({source:e,onClose:t}){let{t:n}=U(),{trackJob:r}=vW(),i=co(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)([]),d=(0,y.useRef)(new Set),[f,p]=(0,y.useState)([]),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(new Set),[j,M]=(0,y.useState)({}),[N,P]=(0,y.useState)({}),[F,I]=(0,y.useState)(!1),L=AAe(),R=L||F,z=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines(),staleTime:6e4}),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(``),{showToast:ne}=qd(),re=q({mutationFn:e=>Z.createSlicerPipeline(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`slicer-pipelines`]}),ne(n(`slice.pipelines.toast.saved`,`Pipeline saved`),`success`),V(!1),te(``)},onError:e=>{ne(e.message||n(`slice.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),ie=K({queryKey:[`slicePlates`,e.kind,e.id],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFilePlates(e.id):Z.getArchivePlates(e.id),staleTime:6e4}),ae=!!ie.data?.is_multi_plate&&(ie.data?.plates?.length??0)>1,oe=ae&&g==null,se=g??1,H=(0,y.useMemo)(()=>{let t=typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`;return`${e.kind}-${e.id}-p${se}-${t}`},[e.kind,e.id,se]),ce=K({queryKey:[`sliceFilamentReqs`,e.kind,e.id,se],queryFn:async()=>e.kind===`libraryFile`?Z.getLibraryFileFilamentRequirements(e.id,se,H,!0):Z.getArchiveFilamentRequirements(e.id,se,H,!0),enabled:!oe,staleTime:6e4}),le=(0,y.useMemo)(()=>{let e=ce.data?.filaments??[],t=e.length>0?e:[{slot_id:1,type:``,color:``,used_grams:0,used_meters:0}];return v?t.map(e=>({...e,used_in_plate:!0})):t},[v,ce.data]),ue=K({queryKey:[`slicerPresets`],queryFn:()=>Z.getSlicerPresets(),staleTime:6e4,enabled:!ie.isLoading&&!oe}),[de,fe]=(0,y.useState)(!1),pe=async()=>{if(!de){fe(!0);try{let e=await Z.getSlicerPresets({refresh:!0});i.setQueryData([`slicerPresets`],e)}catch{i.invalidateQueries({queryKey:[`slicerPresets`]})}finally{fe(!1)}}},me=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,staleTime:1/0}),he=(0,y.useMemo)(()=>!ue.data||!a?null:NW(ue.data,a,`printer`)?.name??null,[ue.data,a]),ge=(0,y.useMemo)(()=>OH(me.data??{}),[me.data]),_e=K({queryKey:[`slicer-preset-values`,s?.source,s?.id],queryFn:()=>Z.getSlicerPresetValues(s),enabled:s!=null,staleTime:5*6e4}),ve=_e.data?.values,ye=_e.data?.resolved??_e.isLoading,be=_e.data?.reason??(_e.isError?`sidecar_unavailable`:void 0),xe=(0,y.useMemo)(()=>{let e=ue.data;return le.map((t,r)=>{let i=l[r]??null,a=e&&i?NW(e,i,`filament`):null;return{index:r+1,label:a?.name||t.type||n(`slice.filamentSlotUnset`,`not set`),color:t.color||void 0}})},[le,l,ue.data,n]),Se=ie.data?.embedded_printer??null,Ce=(0,y.useMemo)(()=>ie.data?.design_overrides??[],[ie.data]),we=ie.data?.embedded_process??null,Te=(0,y.useMemo)(()=>{if(!Se||!we||!he)return!1;let e=e=>e.replace(/^#\s*/,``).trim().toLowerCase();return e(he)===e(Se)},[Se,we,he]);(0,y.useEffect)(()=>{Te||w(!1)},[Te]),(0,y.useEffect)(()=>{A(C?new Set(Ce.map(e=>e.key)):new Set)},[Ce,C]),(0,y.useEffect)(()=>{let e=ue.data;e&&(a??o(PW(e,`printer`,Se)??MW(e,`printer`)))},[ue.data,Se]),(0,y.useEffect)(()=>{let e=ue.data;e&&c(t=>{if(t){let n=NW(e,t,`process`);if(n&&PH(n,`process`,he,ge)!==`mismatch`)return t}return XAe(e,he,ge,we)})},[ue.data,he,ge,we]),(0,y.useEffect)(()=>{let e=ue.data;e&&u(t=>le.map((n,r)=>{let i=t[r]??null;if(i){let t=NW(e,i,`filament`),a=t&&!d.current.has(r)&&FW(t,n.type);if(t&&!a&&PH(t,`filament`,he,ge)!==`mismatch`)return i}return eje(e,{type:n.type,color:n.color},he,ge)}))},[ue.data,le,he,ge]),(0,y.useEffect)(()=>{p(e=>e.length===le.length?e:(d.current=new Set,le.map(()=>null)))},[le]);let Ee=q({mutationFn:async t=>{let n=De(t);return e.kind===`libraryFile`?Z.sliceLibraryFile(e.id,n):Z.sliceArchive(e.id,n)},onSuccess:n=>{r(n.job_id,e.kind,e.filename),t()},onError:e=>{h(e instanceof Error?e.message:String(e))}});function De(e){if(!a||!s||l.length===0||l.some(e=>e==null))throw Error(n(`slice.allPresetsRequired`));return{printer_preset:a,process_preset:s,filament_preset:l[0],filament_presets:l,filament_colours:le.map((e,t)=>f[t]??e.color??``),...e==null?{}:{plate:e},...x==null?{}:{bed_type:x},...C&&Te?{use_embedded_settings:!0}:{},...!C&&Ce.length>0?{design_overrides:[...k]}:{},...!C&&Object.keys(j).length>0?{process_overrides:N}:{},...T?{auto_orient:!0}:{},...D?{auto_arrange:!0}:{}}}let Oe=a!=null&&s!=null&&ce.isSuccess&&l.length>0&&l.every(e=>e!=null),ke=Ee.isPending,Ae=ie.data?.plates?.length??0,je=ae&&Ae>1&&!oe;return oe&&ie.data?(0,G.jsx)(bW,{plates:ie.data.plates,onSelect:e=>_(e),onClose:t}):(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,onClick:()=>{ke||t()},children:(0,G.jsxs)(`div`,{className:`w-full max-w-xl lg:max-w-5xl max-h-[85vh] flex flex-col rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary/60`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-start justify-between gap-3 px-4 pt-4 pb-3 border-b border-bambu-dark-tertiary/40`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`h3`,{className:`text-white font-medium flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-4 h-4`}),n(`slice.title`)]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 truncate`,title:e.filename,children:[e.filename,g==null?``:` • ${n(`archives.platePicker.plateLabel`,{index:g})}`]})]}),(0,G.jsx)(`button`,{onClick:t,disabled:ke,className:`flex-shrink-0 text-bambu-gray hover:text-white transition-colors disabled:opacity-50`,"aria-label":n(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(ie.isLoading||ue.isLoading)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.loadingPresets`)]}),ue.isError&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400`,role:`alert`,children:n(`slice.presetsLoadFailed`,`Failed to load presets. Open Settings → Profiles to import them, or sign in to Bambu Cloud.`)}),ue.data&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,G.jsx)(zW,{status:ue.data.cloud_status,cloudName:`bambu`}),(0,G.jsx)(zW,{status:ue.data.orca_cloud_status,cloudName:`orca`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:pe,disabled:de||ke,className:`flex-shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-md text-xs text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary/40 disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,title:n(`slice.refreshPresetsTitle`),"aria-label":n(`slice.refreshPresets`),children:[(0,G.jsx)(Hl,{className:`w-3.5 h-3.5 ${de?`animate-spin`:``}`}),n(`slice.refreshPresets`)]})]}),(0,G.jsxs)(`div`,{className:`lg:grid lg:grid-cols-[minmax(0,20rem)_minmax(0,1fr)] lg:gap-5 lg:items-start`,children:[(0,G.jsxs)(`div`,{className:`space-y-4 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 px-2 py-1.5 rounded-md bg-bambu-dark/40 border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-medium text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`}),` `,n(`slice.pipelines.label`,`Pipeline`)]}),(0,G.jsxs)(`select`,{value:``,disabled:ke||(z.data?.pipelines.length??0)===0,onChange:e=>{let t=parseInt(e.target.value,10);if(Number.isNaN(t))return;let r=z.data?.pipelines.find(e=>e.id===t);r&&(o(r.printer_preset),c(r.process_preset),S(r.bed_type),u(e=>{let t=e.length>0?[...e]:r.filament_presets.map(()=>null);for(let e=0;e(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),B?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-1 min-w-[16ch]`,children:[(0,G.jsx)(`input`,{autoFocus:!0,value:ee,onChange:e=>te(e.target.value),placeholder:n(`slice.pipelines.namePlaceholder`,`Pipeline name`),"aria-label":n(`slice.pipelines.nameAria`,`New pipeline name`),className:`flex-1 text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{let e=ee.trim();if(!e||!a||!s)return;let t=l.filter(e=>e!==null);t.length!==0&&re.mutate({name:e,printer_preset:a,process_preset:s,filament_presets:t,bed_type:x})},disabled:re.isPending||!ee.trim(),className:`text-xs px-2 py-1 bg-bambu-green hover:bg-bambu-green/80 text-white rounded disabled:opacity-50`,children:re.isPending?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):n(`common.save`,`Save`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{V(!1),te(``)},className:`text-xs px-2 py-1 text-bambu-gray hover:text-white`,children:n(`common.cancel`,`Cancel`)})]}):(0,G.jsx)(`button`,{type:`button`,onClick:()=>{te(``),V(!0)},disabled:ke||!a||!s||l.length===0||l.some(e=>e===null),className:`text-xs px-2 py-1 bg-bambu-green/20 hover:bg-bambu-green/30 text-bambu-green border border-bambu-green/40 rounded disabled:opacity-50 disabled:cursor-not-allowed`,title:n(`slice.pipelines.saveTitle`,`Save the current four-slot selection as a reusable pipeline`),children:n(`slice.pipelines.saveButton`,`Save as pipeline`)})]}),(0,G.jsx)(BW,{label:n(`slice.printer`),slot:`printer`,data:ue.data,value:a,onChange:o,disabled:ke||C}),Te&&(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>w(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.useEmbedded`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.useEmbeddedHint`)})]})]}),(0,G.jsx)(BW,{label:n(`slice.process`),slot:`process`,data:ue.data,value:s,onChange:c,disabled:ke||C,selectedPrinterName:he,compatIndex:ge}),(0,G.jsx)(oje,{value:x,onChange:S,disabled:ke||C}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:T,onChange:e=>E(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.autoOrient`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.autoOrientHint`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-bambu-gray cursor-pointer select-none`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D,onChange:e=>O(e.target.checked),disabled:ke,className:`mt-0.5 cursor-pointer`}),(0,G.jsxs)(`span`,{children:[n(`slice.autoArrange`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:n(`slice.autoArrangeHint`)})]})]})]}),ce.isLoading?(0,G.jsx)(nje,{requestId:H,sourceName:e.filename}):le.map((e,t)=>{let r=e.used_in_plate!==!1,i=le.length>1?n(`slice.filamentSlot`,{index:t+1,type:e.type}):n(`slice.filament`);return(0,G.jsx)(BW,{label:r?i:`${i} ${n(`slice.notUsedByPlate`)}`,slot:`filament`,data:ue.data,value:l[t]??null,onChange:e=>{d.current.add(t),u(n=>{let r=n.length===le.length?[...n]:le.map((e,t)=>n[t]??null);return r[t]=e,r})},disabled:ke||!r||C,swatchColor:f[t]??e.color,swatchColorLabel:n(`slice.filamentColour`),onSwatchColorChange:e=>p(n=>{let r=n.length===le.length?[...n]:le.map((e,t)=>n[t]??null);return r[t]=e,r}),selectedPrinterName:he,compatIndex:ge},`filament-${t}`)})]}),(0,G.jsx)(`div`,{className:`mt-4 lg:mt-0 min-w-0`,children:(0,G.jsxs)(`div`,{className:`rounded border border-bambu-dark-tertiary p-3 ${C?`opacity-60`:``}`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>I(e=>!e),"aria-expanded":R,disabled:L,className:`flex w-full items-center justify-between gap-2 text-left lg:cursor-default`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[n(`slice.processSettings`,`Process settings`),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray/70`,children:C?n(`slice.processSettingsEmbedded`,`Not used while "Use the file's built-in settings" is on -- the file's own settings drive this slice.`):n(`slice.processSettingsHint`,`Adjust the picked preset for this slice. Anything you don't touch stays as the preset defines it.`)})]}),(0,G.jsx)(`span`,{className:`shrink-0 text-xs text-bambu-gray`,children:C?n(`slice.processSettingsInactive`,`Inactive`):Object.keys(N).length>0?n(`slice.processSettingsChanged`,`{{count}} changed`,{count:Object.keys(N).length}):n(`slice.processSettingsUnchanged`,`Preset defaults`)})]}),R&&(0,G.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3`,children:(0,G.jsx)(KAe,{values:j,onChange:(e,t)=>{M(e),P(t)},disabled:ke||C,filamentChoices:xe,presetValues:ve,presetValuesResolved:ye,presetValuesReason:be,sourceOverrides:Ce,sourceSelected:k,onToggleSource:(e,t)=>A(n=>{let r=new Set(n);return t?r.add(e):r.delete(e),r})})})]})})]})]}),m&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400 bg-red-900/20 border border-red-900/40 rounded p-2`,role:`alert`,children:m})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex justify-end gap-2 px-4 py-3 border-t border-bambu-dark-tertiary/40`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:t,disabled:ke,className:`px-3 py-1.5 text-sm rounded-md border border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray transition-colors disabled:opacity-50`,children:n(`common.cancel`)}),je&&(0,G.jsxs)(`label`,{className:`flex items-center gap-2 mr-auto text-sm text-bambu-gray cursor-pointer select-none`,title:n(`slice.actionAllTitle`,{count:Ae}),children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:v,onChange:e=>b(e.target.checked),disabled:ke,className:`cursor-pointer`}),n(`slice.allPlatesToggle`,{count:Ae})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{h(null);let e=v?0:g;Ee.mutate(e)},disabled:!Oe||ke,className:`px-3 py-1.5 text-sm rounded-md bg-bambu-green hover:bg-bambu-green/90 text-bambu-dark font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2`,children:ke?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`slice.enqueuing`)]}):v?n(`slice.actionAll`,{count:Ae}):n(`slice.action`)})]})]})})}function zW({status:e,cloudName:t=`bambu`}){let{t:n}=U();if(e===`ok`||e===`not_authenticated`)return null;let r=t===`orca`?{expired:{key:`slice.orcaCloud.expired`,fallback:`Orca Cloud session expired — sign in again to refresh your Orca presets.`},unreachable:{key:`slice.orcaCloud.unreachable`,fallback:`Orca Cloud is unreachable right now. Other presets still work.`}}:{expired:{key:`slice.cloud.expired`,fallback:`Bambu Cloud session expired — sign in again to refresh your cloud presets.`},unreachable:{key:`slice.cloud.unreachable`,fallback:`Bambu Cloud is unreachable right now. Local and standard presets still work.`}},{tone:i,icon:a}={expired:{tone:`border-amber-300 dark:border-amber-700/40 bg-amber-50 dark:bg-amber-900/20 text-amber-800 dark:text-amber-200`,icon:Ms},unreachable:{tone:`border-bambu-dark-tertiary/40 bg-bambu-dark text-bambu-gray`,icon:Ms}}[e],{key:o,fallback:s}=r[e];return(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs rounded-md border p-2 ${i}`,role:`status`,children:[(0,G.jsx)(a,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{children:n(o,s)})]})}var aje=[{value:`Cool Plate`,labelKey:`slice.bedType.coolPlate`,fallback:`Cool Plate`},{value:`Cool Plate (SuperTack)`,labelKey:`slice.bedType.coolPlateSuperTack`,fallback:`Cool Plate SuperTack`},{value:`Engineering Plate`,labelKey:`slice.bedType.engineering`,fallback:`Engineering Plate`},{value:`High Temp Plate`,labelKey:`slice.bedType.highTemp`,fallback:`High Temp Plate`},{value:`Textured PEI Plate`,labelKey:`slice.bedType.texturedPEI`,fallback:`Textured PEI Plate`},{value:`Smooth PEI Plate`,labelKey:`slice.bedType.smoothPEI`,fallback:`Smooth PEI Plate`}];function oje({value:e,onChange:t,disabled:n}){let{t:r}=U();return(0,G.jsxs)(`label`,{className:`block`,children:[(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:r(`slice.bedType.label`)}),(0,G.jsxs)(`select`,{value:e??``,onChange:e=>t(e.target.value===``?null:e.target.value),disabled:n,className:`flex-1 min-w-0 px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:r(`slice.bedType.auto`)}),aje.map(e=>(0,G.jsx)(`option`,{value:e.value,children:r(e.labelKey,e.fallback)},e.value))]})]})}function BW({label:e,slot:t,data:n,value:r,onChange:i,disabled:a,swatchColor:o,onSwatchColorChange:s,swatchColorLabel:c,selectedPrinterName:l,compatIndex:u}){let{t:d}=U(),[f,p]=(0,y.useState)(!1),m=(0,y.useId)(),h=`${m}-colour`,{sections:g,otherEntries:_}=(0,y.useMemo)(()=>{let e=[{key:`local`,label:`slice.tier.local`,fallback:`Imported`},{key:`orca_cloud`,label:`slice.tier.orcaCloud`,fallback:`Orca Cloud`},{key:`cloud`,label:`slice.tier.cloud`,fallback:`Bambu Cloud`},{key:`standard`,label:`slice.tier.standard`,fallback:`Standard`}],r=t!==`printer`,i=[],a=[],o=[];for(let{key:s,label:c,fallback:f}of e){let e=n[s][t];if(e.length>0&&a.push({tierLabel:d(c,f),entries:e}),!r){e.length>0&&i.push({tierLabel:d(c,f),entries:e});continue}let p=[];for(let n of e)PH(n,t,l??null,u??ike)===`mismatch`?o.push(n):p.push(n);p.length>0&&i.push({tierLabel:d(c,f),entries:p})}return i.length===0&&o.length>0?{sections:a,otherEntries:[]}:{sections:i,otherEntries:o}},[n,t,d,l,u]),v=IW(r),b=(0,y.useMemo)(()=>f?_:_.filter(e=>`${e.source}:${e.id}`===v),[f,_,v]),x=_.length-b.length,S=g.reduce((e,t)=>e+t.entries.length,0)+b.length;return(0,G.jsxs)(`div`,{className:`block`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray mb-1`,children:[!s&&o&&(0,G.jsx)(`span`,{className:`inline-block w-3 h-3 rounded-full border border-bambu-dark-tertiary`,style:{backgroundColor:o},"aria-hidden":!0}),(0,G.jsx)(`label`,{htmlFor:m,children:e}),(x>0||f)&&(0,G.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5 font-normal`,children:[x>0&&(0,G.jsx)(`span`,{className:`text-bambu-gray/60`,children:d(`slice.presetsHidden`,`{{count}} hidden`,{count:x})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>p(e=>!e),disabled:a,className:`text-bambu-green hover:underline disabled:opacity-50 disabled:no-underline`,children:f?d(`slice.showFewerPresets`,`Show fewer`):d(`slice.showAllPresets`,`Show all`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,G.jsxs)(`select`,{id:m,value:IW(r),onChange:e=>i(tje(e.target.value)),disabled:a||S===0,className:`w-full px-3 py-2 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-white text-sm focus:outline-none focus:border-bambu-gray disabled:opacity-50`,children:[(0,G.jsx)(`option`,{value:``,children:d(S===0?`slice.noPresetsForSlot`:`slice.selectPreset`)}),g.map(e=>(0,G.jsx)(`optgroup`,{label:e.tierLabel,children:e.entries.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))},e.tierLabel)),b.length>0&&(0,G.jsx)(`optgroup`,{label:d(`slice.otherPrinters`),children:b.map(e=>(0,G.jsx)(`option`,{value:`${e.source}:${e.id}`,children:e.name},`${e.source}:${e.id}`))})]}),s&&(0,G.jsxs)(`label`,{htmlFor:h,title:c,className:`flex items-center gap-2 px-2.5 rounded-md bg-bambu-dark border border-bambu-dark-tertiary text-sm ${a?`opacity-50 cursor-not-allowed`:`cursor-pointer hover:border-bambu-gray transition-colors`}`,children:[(0,G.jsx)(`input`,{id:h,type:`color`,value:LW(o),onChange:e=>s(e.target.value.toUpperCase()),disabled:a,"aria-label":c,style:{backgroundColor:LW(o)},className:`slice-colour-swatch w-4 h-4 shrink-0 rounded-full border border-bambu-dark-tertiary p-0 disabled:cursor-not-allowed enabled:cursor-pointer`}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-white tracking-tight`,children:LW(o)})]})]})]})}function VW({source:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(1),{trackJob:d}=vW(),{data:f,isLoading:p}=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines()}),{data:m}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),{data:h}=K({queryKey:[`app-settings`],queryFn:()=>Z.getSettings()}),g=h?.pipeline_max_copies??50,_={kind:e.kind,id:e.id},v=q({mutationFn:e=>Z.checkPipelineEligibility(e,_)}),b=q({mutationFn:({pipelineId:e,force:t})=>Z.runPipeline(e,_,t,l),onSuccess:a=>{r.invalidateQueries({queryKey:[`slicer-pipelines`]}),r.invalidateQueries({queryKey:[`pipeline-runs`]}),a.slice_job_id&&d(a.slice_job_id,e.kind,e.filename),i(n(`library.runWithPipeline.toast.started`,`Pipeline run started`),`success`),t()},onError:e=>{i(e.message||n(`library.runWithPipeline.toast.failed`,`Could not start run`),`error`)}}),x=f?.pipelines??[],S=(m??[]).reduce((e,t)=>(e[t.id]=t,e),{});return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/60 flex items-center justify-center p-4`,onClick:t,role:`dialog`,"aria-modal":`true`,"aria-label":n(`library.runWithPipeline.modalTitle`,`Run with pipeline`),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl w-full max-w-md max-h-[80vh] flex flex-col overflow-hidden`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Nl,{className:`w-4 h-4 text-bambu-green`}),a&&s?n(`library.runWithPipeline.confirmTitle`,`Confirm run`):n(`library.runWithPipeline.modalTitle`,`Run with pipeline`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:t,"aria-label":n(`common.close`,`Close`),className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-3`,children:a&&s?(0,G.jsx)(cje,{pipeline:a,report:s,source:e,onBack:()=>{o(null),c(null)},onConfirm:()=>{a&&b.mutate({pipelineId:a.id,force:!0})},running:b.isPending}):(0,G.jsx)(sje,{source:e,pipelines:x,printerById:S,loading:p||v.isPending,onPick:async e=>{if(!(e.target_printer_id||e.target_kind===`printer_class`&&e.target_model_class)){i(n(`library.runWithPipeline.noTargetMessage`,`This pipeline has no target printer set. Open it in Settings to pick one.`),`error`);return}o(e);try{let t=await v.mutateAsync(e.id);c(t),t.ok&&b.mutate({pipelineId:e.id,force:!1})}catch{o(null)}},copies:l,maxCopies:g,onCopiesChange:u})})]})})}function sje({source:e,pipelines:t,printerById:n,loading:r,onPick:i,copies:a,maxCopies:o,onCopiesChange:s}){let{t:c}=U();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[c(`library.runWithPipeline.sourceHint`,`Source`),`:`,` `,(0,G.jsx)(`span`,{className:`text-white`,children:e.filename})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-xs text-bambu-gray`,htmlFor:`run-pipeline-copies`,children:[c(`library.runWithPipeline.copies`,`Copies`),`:`]}),(0,G.jsx)(`input`,{id:`run-pipeline-copies`,type:`number`,min:1,max:o,value:a,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||s(Math.max(1,Math.min(o,t)))},"aria-label":c(`library.runWithPipeline.copies`,`Copies`),className:`w-20 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:c(`library.runWithPipeline.copiesHint`,`max {{n}}`,{n:o})})]}),r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),c(`library.runWithPipeline.loading`,`Loading…`)]}),!r&&t.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:c(`library.runWithPipeline.empty`,`No pipelines saved yet. Open the Slice dialog and click "Save as pipeline" to create one.`)}),!r&&t.length>0&&(0,G.jsx)(`ul`,{className:`space-y-1.5`,"aria-label":c(`library.runWithPipeline.pipelineListAria`,`Available pipelines`),children:t.map(e=>{let t=e.target_kind===`printer_class`,r=e.target_printer_id?n[e.target_printer_id]?.name:null,a=t&&e.target_model_class?c(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}):null;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(e),disabled:!(e.target_printer_id||t&&e.target_model_class),className:`w-full text-left px-3 py-2 rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 hover:bg-bambu-dark-tertiary disabled:opacity-50 disabled:cursor-not-allowed transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),a?(0,G.jsx)(`span`,{children:a}):r?(0,G.jsx)(`span`,{children:r}):(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:c(`library.runWithPipeline.noTarget`,`No target printer set`)})]})]})},e.id)})})]})}function cje({pipeline:e,report:t,source:n,onBack:r,onConfirm:i,running:a}){let{t:o}=U();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[(0,G.jsxs)(`p`,{children:[o(`library.runWithPipeline.confirmIntro`,`Pre-flight found issues with this run`),`:`]}),(0,G.jsxs)(`p`,{className:`mt-1`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.sourceHint`,`Source`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:n.filename})]}),(0,G.jsxs)(`p`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.pipelineHint`,`Pipeline`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:e.name})]}),t.target_printer_name&&(0,G.jsxs)(`p`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[o(`library.runWithPipeline.targetHint`,`Target`),`: `]}),(0,G.jsx)(`span`,{className:`text-white`,children:t.target_printer_name})]})]}),(0,G.jsx)(`ul`,{className:`space-y-1.5`,children:t.issues.map((e,t)=>(0,G.jsxs)(`li`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:(0,G.jsx)(lje,{issue:e})})]},t))}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:r,disabled:a,className:`px-3 py-1.5 text-xs text-bambu-gray hover:text-white`,children:o(`common.back`,`Back`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:i,disabled:a,className:`px-3 py-1.5 text-xs bg-amber-500 hover:bg-amber-600 text-white rounded disabled:opacity-50 flex items-center gap-1`,children:[a?(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}):(0,G.jsx)(Nl,{className:`w-3 h-3`}),o(`library.runWithPipeline.runAnyway`,`Run anyway`)]})]})]})}function lje({issue:e}){let{t}=U();switch(e.kind){case`printer_not_set`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerNotSet`,`No target printer set on this pipeline.`)});case`printer_not_found`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerNotFound`,`Target printer no longer exists.`)});case`printer_disabled`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerDisabled`,`Target printer is disabled.`)});case`printer_offline`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.printerOffline`,`Target printer is offline.`)});case`filament_type_mismatch`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentType`,`Filament slot {{slot}}: expected {{expected}}, AMS has {{actual}}`,{slot:(e.slot_index??0)+1,expected:e.expected??`?`,actual:e.actual??`?`})});case`filament_color_mismatch`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentColor`,`Filament slot {{slot}}: colour differs (expected {{expected}}, AMS has {{actual}})`,{slot:(e.slot_index??0)+1,expected:e.expected??`?`,actual:e.actual??`?`})});case`ams_slot_missing`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.amsSlotMissing`,`AMS slot {{slot}} not available on this printer`,{slot:(e.slot_index??0)+1})});case`filament_unverified`:return(0,G.jsx)(G.Fragment,{children:t(`library.runWithPipeline.issue.filamentUnverified`,`Filament slot {{slot}} comes from a cloud / standard preset and could not be statically verified.`,{slot:(e.slot_index??0)+1})});default:return(0,G.jsx)(G.Fragment,{children:e.kind})}}function HW(e,t){return e??t??`bambu_studio`}var UW={bambu_studio:[`3mf`],orcaslicer:[`3mf`,`stl`,`step`,`stp`]};function WW(e){return UW[e]??UW.bambu_studio}var GW=[`3mf`,`stl`];function uje(e,t){let n=(e||``).toLowerCase();return WW(t).includes(n)}function dje(e,t){let n=e.toLowerCase();return n.endsWith(`.gcode`)||n.endsWith(`.gcode.3mf`)?!1:WW(t).some(e=>n.endsWith(`.${e}`))}function fje(e){let t=e.toLowerCase();return t.endsWith(`.gcode`)||t.endsWith(`.gcode.3mf`)?!1:GW.some(e=>t.endsWith(`.${e}`))}function pje(){let e=navigator.userAgent.toLowerCase(),t=navigator.platform?.toLowerCase()||``;return e.includes(`win`)||t.includes(`win`)?`windows`:e.includes(`mac`)||t.includes(`mac`)?`macos`:e.includes(`linux`)||t.includes(`linux`)?`linux`:`unknown`}function KW(e,t=`bambu_studio`){let n,r=encodeURIComponent(e);n=t===`orcaslicer`?`orcaslicer://open?file=${r}`:pje()===`macos`?`bambustudioopen://${r}`:`bambustudio://open?file=${r}`;let i=document.createElement(`a`);i.href=n,i.style.display=`none`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}function mje(e){let t=(e||``).toLowerCase();return GW.includes(t)}var hje=[[`projects`],[`project`],[`project-archives`],[`project-timeline`],[`project-file-progress`]];function gje(e){return Promise.all(hje.map(t=>e.invalidateQueries({queryKey:[...t]})))}function qW(e){return Promise.all([e.invalidateQueries({queryKey:[`archives`]}),gje(e)])}function _je(e,t){if(t===void 0)return e;let n=new Set([t]),r=!0;for(;r;){r=!1;for(let t of e)t.parent_id!==null&&n.has(t.parent_id)&&!n.has(t.id)&&(n.add(t.id),r=!0)}return e.filter(e=>!n.has(e.id))}function JW(e,t){return e.filter(e=>e.status!==`archived`||e.id===t)}function YW({onFiles:e,onRejected:t,extensions:n,disabled:r=!1}){let[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(e),s=(0,y.useRef)(t),c=(0,y.useRef)(n);(0,y.useEffect)(()=>{o.current=e},[e]),(0,y.useEffect)(()=>{s.current=t},[t]),(0,y.useEffect)(()=>{c.current=n},[n]);let l=(0,y.useCallback)(e=>{r||(e.preventDefault(),e.dataTransfer.types.includes(`Files`)&&a(!0))},[r]),u=(0,y.useCallback)(e=>{r||(e.preventDefault(),e.dataTransfer.types.includes(`Files`)&&a(!0))},[r]),d=(0,y.useCallback)(e=>{if(r)return;e.preventDefault();let t=e.currentTarget,n=e.relatedTarget;(!n||!t.contains(n))&&a(!1)},[r]),f=(0,y.useCallback)(e=>{if(r)return;e.preventDefault(),a(!1);let t=Array.from(e.dataTransfer.files);if(t.length===0)return;let n=c.current,i=n&&n.length>0?t.filter(e=>n.some(t=>e.name.toLowerCase().endsWith(t))):t;i.length>0?o.current(i):s.current?.()},[r]);return(0,y.useEffect)(()=>{if(!i)return;let e=()=>a(!1),t=t=>{t.key===`Escape`&&e()};return document.addEventListener(`drop`,e),document.addEventListener(`dragend`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`drop`,e),document.removeEventListener(`dragend`,e),document.removeEventListener(`keydown`,t)}},[i]),{isDraggingOver:i,dragHandlers:{onDragOver:l,onDragEnter:u,onDragLeave:d,onDrop:f}}}function vje({onClose:e,initialFiles:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(()=>t?.filter(e=>e.name.endsWith(`.3mf`)).map(e=>({file:e,status:`pending`}))||[]),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null);(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]);let f=q({mutationFn:e=>Z.uploadArchivesBulk(e),onSuccess:e=>{d(e),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archiveStats`]}),s(t=>t.map(t=>{let n=e.results.find(e=>e.filename===t.file.name),r=e.errors.find(e=>e.filename===t.file.name);return n?{...t,status:`success`,archiveId:n.id}:r?{...t,status:`error`,error:r.error}:t})),e.failed===0?i(`${e.uploaded} file${e.uploaded===1?``:`s`} uploaded`):e.uploaded===0?i(`Failed to upload ${e.failed} file${e.failed===1?``:`s`}`,`error`):i(`${e.uploaded} uploaded, ${e.failed} failed`,`warning`)},onError:()=>{s(e=>e.map(e=>({...e,status:`error`,error:`Upload failed`}))),i(`Upload failed`,`error`)}}),p=(0,y.useCallback)(e=>{e.preventDefault(),l(!0)},[]),m=(0,y.useCallback)(e=>{e.preventDefault(),l(!1)},[]),h=(0,y.useCallback)(e=>{e.preventDefault(),l(!1);let t=Array.from(e.dataTransfer.files).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))])},[]),g=(0,y.useCallback)(e=>{let t=Array.from(e.target.files||[]).filter(e=>e.name.endsWith(`.3mf`));t.length>0&&s(e=>[...e,...t.map(e=>({file:e,status:`pending`}))]),a.current&&(a.current.value=``)},[]),_=(0,y.useCallback)(e=>{s(t=>t.filter((t,n)=>n!==e))},[]),v=()=>{if(o.length===0)return;let e=o.filter(e=>e.status===`pending`);e.length!==0&&(s(e=>e.map(e=>e.status===`pending`?{...e,status:`uploading`}:e)),f.mutate(e.map(e=>e.file)))},b=o.filter(e=>e.status===`pending`).length,x=f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-2xl max-h-[90vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:n(`uploadModal.title`)}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`border-2 border-dashed rounded-lg p-8 text-center transition-colors ${c?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,onDragOver:p,onDragLeave:m,onDrop:h,children:[(0,G.jsx)(Vu,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:n(`uploadModal.dragDrop`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mb-4`,children:n(`uploadModal.or`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>a.current?.click(),disabled:x,children:n(`uploadModal.browseFiles`)}),(0,G.jsx)(`input`,{ref:a,type:`file`,accept:`.3mf`,multiple:!0,className:`hidden`,onChange:g})]})}),(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`uploadModal.extractionInfo`)})}),o.length>0&&(0,G.jsx)(`div`,{className:`px-4 pb-4 max-h-60 overflow-y-auto`,children:(0,G.jsx)(`div`,{className:`space-y-2`,children:o.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(pc,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`flex-1 text-white text-sm truncate`,children:e.file.name}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[(e.file.size/(1024*1024)).toFixed(1),` MB`]}),e.status===`pending`&&(0,G.jsx)(`button`,{onClick:()=>_(t),className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,disabled:x,children:(0,G.jsx)(nd,{className:`w-4 h-4`})}),e.status===`uploading`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`}),e.status===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green`}),e.status===`error`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-red-700 dark:text-red-400`,children:e.error}),(0,G.jsx)(ys,{className:`w-4 h-4 text-red-600 dark:text-red-400`})]})]},`${e.file.name}-${t}`))})}),u&&(0,G.jsx)(`div`,{className:`px-4 pb-4`,children:(0,G.jsx)(`div`,{className:`p-3 bg-bambu-dark rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsx)(`span`,{className:`text-bambu-green`,children:u.uploaded}),` `,n(`uploadModal.uploaded`),u.failed>0&&(0,G.jsxs)(G.Fragment,{children:[`, `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:u.failed}),` `,n(`uploadModal.failed`)]})]})})}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:n(u?`common.close`:`common.cancel`)}),!u&&(0,G.jsx)(Q,{onClick:v,disabled:b===0||x,className:`flex-1`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`uploadModal.uploading`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`uploadModal.upload`),` `,b>0&&`(${b})`]})})]})]})})})}var yje=365;function bje({onClose:e,initialDays:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(t??yje),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(a);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>u(a),300);return()=>window.clearTimeout(e)},[a]);let d=K({queryKey:[`archive-purge-preview`,l,s],queryFn:()=>Z.previewArchivePurge(l,s),enabled:l>=1}),f=q({mutationFn:()=>Z.executeArchivePurge(a,s),onSuccess:t=>{i(n(`archivePurge.toast.success`,{count:t.deleted}),`success`),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`archive-stats`]}),e()},onError:e=>i(e.message||n(`archivePurge.toast.failed`),`error`)});(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&!f.isPending&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,f.isPending]);let p=d.data,m=p?.count??0,h=p?.total_bytes??0,g=m>0&&!f.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-lg w-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),n(`archivePurge.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-gray-400 hover:text-gray-600 dark:hover:text-gray-200`,"aria-label":n(`common.close`),disabled:f.isPending,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`archive-purge-days`,className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:n(`archivePurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`input`,{id:`archive-purge-days`,type:`number`,min:1,max:3650,value:a,onChange:e=>o(Math.max(1,Math.min(3650,parseInt(e.target.value||`0`,10)||0))),className:`w-24 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:n(`archivePurge.days`)})]})]}),(0,G.jsxs)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/30 p-3`,children:[(0,G.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-gray-600 dark:text-gray-300 mb-2`,children:n(`archivePurge.effectsTitle`)}),(0,G.jsxs)(`ul`,{className:`text-xs text-gray-700 dark:text-gray-300 space-y-1 list-disc pl-4`,children:[(0,G.jsx)(`li`,{children:n(`archivePurge.effect1`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect2`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect3`)}),(0,G.jsx)(`li`,{children:n(`archivePurge.effect4`)})]})]}),(0,G.jsx)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 p-3`,children:d.isLoading||d.isFetching?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,n(`archivePurge.previewLoading`)]}):d.isError?(0,G.jsx)(`div`,{className:`text-sm text-red-600 dark:text-red-400`,children:d.error?.message??n(`archivePurge.previewFailed`)}):(0,G.jsxs)(`div`,{className:`text-sm text-gray-900 dark:text-gray-100`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:n(`archivePurge.previewSummary`,{count:m,size:Gd(h)})}),p?.sample_filenames&&p.sample_filenames.length>0&&(0,G.jsxs)(`ul`,{className:`mt-2 text-xs text-gray-600 dark:text-gray-400 space-y-0.5 list-disc pl-4`,children:[p.sample_filenames.map(e=>(0,G.jsx)(`li`,{className:`truncate`,children:e},e)),m>p.sample_filenames.length&&(0,G.jsx)(`li`,{className:`list-none italic text-gray-500`,children:n(`archivePurge.andMore`,{count:m-p.sample_filenames.length})})]})]})}),(0,G.jsxs)(`label`,{className:`flex gap-2 items-start rounded border border-gray-200 dark:border-gray-700 px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked),disabled:f.isPending,className:`mt-0.5 shrink-0`}),(0,G.jsxs)(`span`,{className:`text-xs text-gray-700 dark:text-gray-300`,children:[(0,G.jsx)(`span`,{className:`font-medium block mb-0.5`,children:n(`archivePurge.purgeStatsLabel`)}),(0,G.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400`,children:n(`archivePurge.purgeStatsHint`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-start text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded px-3 py-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`archivePurge.warning`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-gray-200 dark:border-gray-700`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:f.isPending,children:n(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,disabled:!g,onClick:()=>f.mutate(),children:f.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}),n(`archivePurge.purging`)]}):n(`archivePurge.confirmCta`,{count:m})})]})]})})}function xje(e){if(!e||e<=0)return`—`;let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`}function Sje(e){if(!e)return`—`;let t=rp(e);return t?t.toLocaleString():`—`}function XW({archiveId:e}){let{t}=U(),{data:n,isLoading:r}=K({queryKey:[`archive-runs`,e],queryFn:()=>Z.getArchiveRuns(e)});if(r)return(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-gray animate-spin`})});let i=n?.items||[];return i.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:t(`archives.runLog.empty`)}):(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.date`)}),(0,G.jsx)(`th`,{className:`text-left py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.status`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.duration`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2 font-medium`,children:t(`archives.runLog.col.filament`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 font-medium`,children:t(`archives.runLog.col.cost`)})]})}),(0,G.jsx)(`tbody`,{children:i.map(e=>{let n=e.status===`completed`?`text-bambu-green`:e.status===`failed`?`text-red-700 dark:text-red-400`:`text-bambu-gray`;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/40 last:border-0`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-bambu-gray-light`,children:Sje(e.started_at||e.created_at)}),(0,G.jsxs)(`td`,{className:`py-1.5 pr-2 font-medium ${n}`,children:[t(`archives.runLog.status.${e.status}`,{defaultValue:e.status}),e.failure_reason&&(0,G.jsx)(`span`,{className:`block text-[10px] text-bambu-gray font-normal`,children:t(`editArchive.failureReasons.${e.failure_reason}`,{defaultValue:e.failure_reason})})]}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:xje(e.duration_seconds)}),(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-right text-bambu-gray-light`,children:e.filament_used_grams==null?`—`:`${e.filament_used_grams.toFixed(1)} g`}),(0,G.jsx)(`td`,{className:`py-1.5 text-right text-bambu-gray-light`,children:e.cost==null?`—`:e.cost.toFixed(2)})]},e.id)})})]})})}var ZW=[`adhesionFailure`,`spaghettiDetached`,`layerShift`,`cloggedNozzle`,`filamentRunout`,`warping`,`stringing`,`underExtrusion`,`powerFailure`,`userCancelled`,`noStatusUpdate`,`other`],Cje=[`completed`,`failed`,`aborted`,`printing`],QW=1e5;function $W({archive:e,onClose:t,existingTags:n=[]}){let{t:r}=U();(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let i=co(),[a,o]=(0,y.useState)(e.print_name||``),[s,c]=(0,y.useState)(e.printer_id),[l,u]=(0,y.useState)(e.project_id??null),[d,f]=(0,y.useState)(e.notes||``),[p,m]=(0,y.useState)(e.tags||``),[h,g]=(0,y.useState)(()=>{let t=e.failure_reason||``;return t?ZW.includes(t)?t:ZW.find(e=>r(`editArchive.failureReasons.${e}`)===t)||t:``}),_=h&&!ZW.includes(h)?h:null,[v,b]=(0,y.useState)(e.status),[x,S]=(0,y.useState)(e.quantity??1),[C,w]=(0,y.useState)(e.filament_used_grams==null?``:String(e.filament_used_grams)),[T,E]=(0,y.useState)(e.photos||[]),[D,O]=(0,y.useState)(e.external_url||``),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),N=(0,y.useRef)(null),P=(0,y.useRef)(null),F=(0,y.useRef)(null),{data:I}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:L}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:e=>[...e].sort((e,t)=>e.name.localeCompare(t.name))}),R=(0,y.useMemo)(()=>JW(L??[],e.project_id),[L,e.project_id]),{data:z}=K({queryKey:[`tags`],queryFn:Z.getTags,enabled:n.length===0}),B=n.length>0?n:z?.map(e=>e.name)||[],V=p.split(`,`).map(e=>e.trim()).filter(Boolean),ee=p.includes(`,`)?p.substring(p.lastIndexOf(`,`)+1).trim().toLowerCase():p.trim().toLowerCase(),te=B.filter(e=>!V.includes(e)&&(ee===``||e.toLowerCase().includes(ee))),ne=e=>{let t;t=ee&&!B.includes(ee)?p.includes(`,`)?p.substring(0,p.lastIndexOf(`,`)).split(`,`).map(e=>e.trim()).filter(Boolean):[]:V,t.includes(e)||m([...t,e].join(`, `)),F.current!==null&&clearTimeout(F.current),N.current?.focus()},re=e=>{m(V.filter(t=>t!==e).join(`, `))},ie=q({mutationFn:t=>Z.updateArchive(e.id,t),onSuccess:()=>{qW(i),i.invalidateQueries({queryKey:[`archive-runs`,e.id]}),t()}}),ae=async t=>{let n=t.target.files?.[0];if(n){A(!0);try{E((await Z.uploadArchivePhoto(e.id,n)).photos),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to upload photo:`,e)}finally{A(!1),P.current&&(P.current.value=``)}}},oe=async t=>{try{E((await Z.deleteArchivePhoto(e.id,t)).photos||[]),i.invalidateQueries({queryKey:[`archives`]})}catch(e){console.error(`Failed to delete photo:`,e)}};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`editArchive.title`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let n={print_name:a||void 0,printer_id:s,project_id:l,notes:d||void 0,tags:p||void 0,quantity:x,external_url:D||null};v!==e.status&&(n.status=v);let r=C.trim(),i=r===``?null:Number(r),o=i!==null&&!Number.isFinite(i),c=i===null?null:Math.min(Math.max(i,0),QW),u=e.filament_used_grams??null;!o&&c!==u&&(n.filament_used_grams=c),v===`failed`||v===`aborted`?n.failure_reason=h||void 0:(e.status===`failed`||e.status===`aborted`)&&(n.failure_reason=null),ie.mutate(n)},className:`p-6 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`archives.runLog.title`)}),(0,G.jsx)(XW,{archiveId:e.id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.name`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`editArchive.namePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.printer`)}),(0,G.jsxs)(`select`,{value:s??``,onChange:e=>c(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noPrinter`)}),I?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(_c,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.project`)]}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.noProject`)}),R.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Fc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.itemsPrinted`)]}),(0,G.jsx)(`input`,{type:`number`,min:1,value:x,onChange:e=>S(Math.max(1,parseInt(e.target.value)||1)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.itemsPrintedHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,htmlFor:`archive-filament-grams`,children:[(0,G.jsx)(Xu,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.filamentUsed`)]}),(0,G.jsx)(`input`,{id:`archive-filament-grams`,type:`text`,inputMode:`decimal`,value:C,onChange:e=>{let t=e.target.value.replace(`,`,`.`);(t===``||/^\d*\.?\d*$/.test(t))&&w(t)},onBlur:()=>w(e=>{let t=Number(e);return e===``||!Number.isFinite(t)?``:String(Math.min(t,QW))}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`editArchive.filamentUsedPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.filamentUsedHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.notes`)}),(0,G.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none resize-none`,placeholder:r(`editArchive.notesPlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Zc,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.externalLink`)]}),(0,G.jsx)(`input`,{type:`url`,value:D,onChange:e=>O(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:`https://printables.com/model/...`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`editArchive.externalLinkHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.tags`)}),V.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-2`,children:V.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 bg-bambu-dark-tertiary rounded text-sm text-white`,children:[(0,G.jsx)(Eu,{className:`w-3 h-3`}),e,(0,G.jsx)(`button`,{type:`button`,onClick:()=>re(e),className:`ml-0.5 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{ref:N,type:`text`,value:p,onChange:e=>m(e.target.value),onFocus:()=>{F.current!==null&&clearTimeout(F.current),M(!0)},onBlur:()=>{F.current=window.setTimeout(()=>M(!1),200)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:V.length>0?r(`editArchive.addMoreTags`):r(`editArchive.tagsPlaceholder`)}),j&&te.length>0&&(0,G.jsxs)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-10 max-h-40 overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`p-2 text-xs text-bambu-gray border-b border-bambu-dark-tertiary`,children:[ee?r(`editArchive.matchingTags`,{query:ee}):r(`editArchive.existingTags`),` `,r(`editArchive.clickToAdd`)]}),(0,G.jsx)(`div`,{className:`p-2 flex flex-wrap gap-1.5`,children:te.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>ne(e),className:`px-2 py-0.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded text-sm text-bambu-gray hover:text-white transition-colors`,children:e},e))})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.status`)}),(0,G.jsx)(`select`,{value:v,onChange:e=>{b(e.target.value),e.target.value===`completed`&&g(``)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:Cje.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.statuses.${e}`)},e))})]}),(v===`failed`||v===`aborted`)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`failure-reason-select`,className:`block text-sm text-bambu-gray mb-1`,children:r(`editArchive.failureReason`)}),(0,G.jsxs)(`select`,{id:`failure-reason-select`,value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`editArchive.selectReason`)}),ZW.map(e=>(0,G.jsx)(`option`,{value:e,children:r(`editArchive.failureReasons.${e}`)},e)),_&&(0,G.jsx)(`option`,{value:_,children:_})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(ss,{className:`w-4 h-4 inline mr-1`}),r(`editArchive.photos`)]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:[T.map(t=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e.id,t),alt:r(`editArchive.printResult`),className:`w-20 h-20 object-cover rounded-lg border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>oe(t),className:`absolute -top-1 -right-1 p-1 bg-red-500 rounded-full can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity`,children:(0,G.jsx)(Pu,{className:`w-3 h-3 text-white`})})]},t)),(0,G.jsxs)(`label`,{className:`w-20 h-20 flex items-center justify-center border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green transition-colors`,children:[(0,G.jsx)(`input`,{ref:P,type:`file`,accept:`image/jpeg,image/png,image/webp`,onChange:ae,className:`hidden`,disabled:k}),k?(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-gray animate-spin`}):(0,G.jsx)(Fl,{className:`w-6 h-6 text-bambu-gray`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`editArchive.photosHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:ie.isPending,className:`flex-1`,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),ie.isPending?r(`common.saving`):r(`common.save`)]})]})]})]})})}function eG({archiveId:e,archiveName:t,onClose:n}){let{t:r}=U();return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-2xl max-h-[85vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,title:t||``,children:r(`archives.runLog.modalTitle`,{name:t||r(`archives.runLog.modalTitleFallback`)})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`p-6 overflow-y-auto flex-1`,children:(0,G.jsx)(XW,{archiveId:e})})]})})}function tG({isOpen:e,onClose:t,columns:n,defaultColumns:r,onSave:i}){let{t:a}=U(),[o,s]=(0,y.useState)(n),[c,l]=(0,y.useState)(null),u=(0,y.useRef)(null);if((0,y.useEffect)(()=>{e&&s(n.map(e=>({...e})))},[e,n]),(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let d=e=>{s(t=>t.map((t,n)=>n===e?{...t,visible:!t.visible}:t))},f=(e,t)=>{t<0||t>=o.length||s(n=>{let r=[...n],[i]=r.splice(e,1);return r.splice(t,0,i),r})},p=(e,t)=>{u.current=t,l(t),e.dataTransfer.effectAllowed=`move`},m=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`;let n=u.current;n!==null&&n!==t&&(f(n,t),u.current=t,l(t))},h=e=>{e.preventDefault()},g=()=>{u.current=null,l(null)},_=()=>{s(r.map(e=>({...e})))},v=()=>{i(o),t()},b=o.filter(e=>e.visible).length;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsx)(zd,{className:`w-full max-w-md max-h-[80vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6 flex flex-col min-h-0`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:a(`inventory.configureColumns`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:[a(`inventory.configureColumnsDesc`),(0,G.jsxs)(`span`,{className:`ml-2 text-bambu-gray/60`,children:[`(`,b,` `,a(`inventory.of`),` `,o.length,` `,a(`inventory.visible`),`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-1 overflow-y-auto flex-1 min-h-0 pr-1`,children:o.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg border transition-colors ${c===t?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-tertiary/50`} ${e.visible?``:`opacity-50`}`,draggable:!0,onDragStart:e=>p(e,t),onDragOver:e=>m(e,t),onDrop:h,onDragEnd:g,children:[(0,G.jsx)(`div`,{className:`cursor-grab text-bambu-gray/50 hover:text-bambu-gray`,children:(0,G.jsx)(jc,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`flex-1 font-medium text-sm text-white`,children:e.label}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>f(t,t-1),disabled:t===0,className:`p-1 rounded text-bambu-gray hover:bg-bambu-dark-secondary disabled:opacity-30 disabled:cursor-not-allowed`,title:a(`inventory.moveUp`),children:(0,G.jsx)(gs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>f(t,t+1),disabled:t===o.length-1,className:`p-1 rounded text-bambu-gray hover:bg-bambu-dark-secondary disabled:opacity-30 disabled:cursor-not-allowed`,title:a(`inventory.moveDown`),children:(0,G.jsx)(ps,{className:`w-4 h-4`})})]}),(0,G.jsx)(`button`,{onClick:()=>d(t),className:`p-1.5 rounded transition-colors ${e.visible?`text-bambu-green hover:bg-bambu-green/10`:`text-bambu-gray/50 hover:bg-bambu-dark-secondary`}`,title:e.visible?a(`inventory.hideColumn`):a(`inventory.showColumn`),children:e.visible?(0,G.jsx)(ac,{className:`w-4 h-4`}):(0,G.jsx)(ic,{className:`w-4 h-4`})})]},e.id))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:_,className:`mr-auto`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),a(`inventory.reset`)]}),(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:a(`inventory.cancel`)}),(0,G.jsx)(Q,{onClick:v,children:a(`inventory.applyChanges`)})]})]})})})}function wje({selectedIds:e,existingTags:t,onClose:n}){let r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(`add`);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let d=q({mutationFn:async()=>{let t=Array.from(s),n=0;for(let r of e)try{let e=await Z.getArchive(r),i=e.tags?e.tags.split(`,`).map(e=>e.trim()).filter(Boolean):[],a;a=l===`add`?[...new Set([...i,...t])]:i.filter(e=>!s.has(e)),await Z.updateArchive(r,{tags:a.join(`, `)}),n++}catch(e){throw console.error(`Failed to update archive ${r}:`,e),Error(`Failed on archive ${r}: ${e instanceof Error?e.message:`Unknown error`}`)}return{count:n,mode:l,tags:t}},onSuccess:({count:e,mode:t,tags:a})=>{r.invalidateQueries({queryKey:[`archives`]}),i(`${t===`add`?`Added`:`Removed`} ${a.length} tag${a.length===1?``:`s`} ${t===`add`?`to`:`from`} ${e} archive${e===1?``:`s`}`),n()},onError:e=>{i(e.message||`Failed to update tags`,`error`)}}),f=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},p=()=>{a.trim()&&!s.has(a.trim())&&(c(e=>new Set([...e,a.trim()])),o(``))};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:l===`add`?`Add Tags`:`Remove Tags`})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[l===`add`?`Add`:`Remove`,` tags for `,e.length,` selected archive`,e.length===1?``:`s`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:l===`add`?`primary`:`secondary`,onClick:()=>u(`add`),children:`Add Tags`}),(0,G.jsx)(Q,{size:`sm`,variant:l===`remove`?`primary`:`secondary`,onClick:()=>u(`remove`),children:`Remove Tags`})]}),l===`add`&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:`Enter new tag...`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),p())}}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:p,disabled:!a.trim(),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})})]}),t.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:`Existing tags:`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.map(e=>(0,G.jsx)(`button`,{onClick:()=>f(e),className:`px-2 py-1 rounded text-sm transition-colors ${s.has(e)?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray-light hover:bg-bambu-dark`}`,children:e},e))})]}),s.size>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:[`Tags to `,l===`add`?`add`:`remove`,`:`]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Array.from(s).map(e=>(0,G.jsxs)(`span`,{className:`px-2 py-1 rounded text-sm flex items-center gap-1 ${l===`add`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[e,(0,G.jsx)(`button`,{onClick:()=>f(e),className:`hover:opacity-70`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:n,className:`flex-1`,children:`Cancel`}),(0,G.jsx)(Q,{onClick:()=>d.mutate(),disabled:s.size===0||d.isPending,className:`flex-1`,children:d.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),`Processing...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),l===`add`?`Add Tags`:`Remove Tags`]})})]})]})})})}function Tje({selectedIds:e,onClose:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(``),{data:s,isLoading:c}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects()}),l=(0,y.useMemo)(()=>s?JW([...s].sort((e,t)=>e.name.localeCompare(t.name))):void 0,[s]),u=a.trim().toLowerCase(),d=u?l?.filter(e=>e.name.toLowerCase().includes(u)):l,f=(l?.length??0)>5;(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let p=()=>qW(r),m=q({mutationFn:async t=>(await Z.addArchivesToProject(t,e),t),onSuccess:n=>{let r=s?.find(e=>e.id===n);p(),i(`Added ${e.length} archive${e.length===1?``:`s`} to "${r?.name}"`),t()},onError:()=>{i(`Failed to assign project`,`error`)}}),h=q({mutationFn:async()=>{for(let t of e)await Z.updateArchive(t,{project_id:null});return e.length},onSuccess:e=>{p(),i(`Removed ${e} archive${e===1?``:`s`} from project`),t()},onError:()=>{i(`Failed to remove from project`,`error`)}}),g=m.isPending||h.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-md max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(_c,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:`Assign to Project`})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,disabled:g,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-3 overflow-y-auto min-h-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Assign `,e.length,` selected archive`,e.length===1?``:`s`,` to a project`]}),c?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-gray`})}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>h.mutate(),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center shrink-0`,children:(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:`Remove from project`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray truncate`,children:`Clear project assignment`})]}),h.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]}),l&&l.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 py-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`or assign to`}),(0,G.jsx)(`div`,{className:`flex-1 h-px bg-bambu-dark-tertiary`})]}),f&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`archives.menu.searchProjects`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray text-sm focus:border-bambu-green focus:outline-none`})]}),d?.map(e=>(0,G.jsxs)(`button`,{onClick:()=>m.mutate(e.id),disabled:g,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary transition-colors text-left disabled:opacity-50`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full flex items-center justify-center shrink-0`,style:{backgroundColor:e.color?`${e.color}20`:`rgb(var(--bambu-green) / 0.2)`},children:(0,G.jsx)(_c,{className:`w-4 h-4`,style:{color:e.color||`rgb(var(--bambu-green))`}})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray truncate`,children:[e.archive_count,` archive`,e.archive_count===1?``:`s`,e.status&&` • ${e.status}`]})]}),m.isPending&&m.variables===e.id&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray shrink-0`})]},e.id)),(!l||l.length===0)&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-4`,children:`No projects yet. Create one from the Projects page.`}),l&&l.length>0&&d?.length===0&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray text-sm py-4`,children:`—`})]})]}),(0,G.jsx)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary shrink-0`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`flex-1`,disabled:g,children:`Cancel`})})]})})})}function Eje(e,t){return new Date(e,t+1,0).getDate()}function Dje(e,t){return new Date(e,t,1).getDay()}var Oje=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],kje=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];function Aje({archives:e,onArchiveClick:t,highlightedArchiveId:n}){let r=new Date,[i,a]=(0,y.useState)(r.getMonth()),[o,s]=(0,y.useState)(r.getFullYear()),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),f=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||[];i.push(e),t.set(r,i)}),t},[e]),p=Eje(o,i),m=Dje(o,i),h=()=>{i===0?(a(11),s(o-1)):a(i-1)},g=()=>{i===11?(a(0),s(o+1)):a(i+1)},_=()=>{a(r.getMonth()),s(r.getFullYear())},v=[];for(let e=0;e{e!==c&&d(null),l(e)};return(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`button`,{onClick:h,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(hs,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[Oje[i],` `,o]}),(0,G.jsx)(`button`,{onClick:_,className:`px-2 py-1 text-xs bg-bambu-dark-tertiary hover:bg-bambu-green/20 text-bambu-gray hover:text-white rounded transition-colors`,children:`Today`})]}),(0,G.jsx)(`button`,{onClick:g,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(ms,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1 mb-1`,children:kje.map(e=>(0,G.jsx)(`div`,{className:`text-center text-xs text-bambu-gray py-2`,children:e},e))}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1`,children:v.map((e,t)=>{if(e===null)return(0,G.jsx)(`div`,{className:`aspect-square`},`empty-${t}`);let n=`${o}-${String(i+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,a=f.get(n)||[],s=a.length>0,l=e===r.getDate()&&i===r.getMonth()&&o===r.getFullYear(),u=n===c,d=a.filter(e=>e.status===`completed`).length,p=a.filter(e=>e.status===`failed`).length;return(0,G.jsxs)(`button`,{onClick:()=>x(u?null:n),className:`aspect-square rounded-lg p-1 flex flex-col items-center justify-center transition-colors relative ${u?`bg-bambu-green text-white`:l?`bg-bambu-green/20 text-white ring-2 ring-bambu-green`:s?`bg-bambu-dark-tertiary hover:bg-bambu-dark-tertiary/70 text-white`:`hover:bg-bambu-dark-tertiary/50 text-bambu-gray`}`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium ${l&&!u?`text-bambu-green`:``}`,children:e}),s&&(0,G.jsxs)(`div`,{className:`absolute bottom-1 left-1/2 -translate-x-1/2 flex items-center gap-1`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${p>0&&d===0?`bg-red-400`:p>0?`bg-yellow-400`:`bg-green-400`}`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:a.length})]})]},e)})}),(0,G.jsx)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 text-center`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-white`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Prints this month`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-green-700 dark:text-green-400`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`completed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Successful`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-2xl font-bold text-red-700 dark:text-red-400`,children:e.filter(e=>{let t=rp(e.completed_at||e.created_at)||new Date;return t.getMonth()===i&&t.getFullYear()===o&&e.status===`failed`}).length}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:`Failed`})]})]})})]}),(0,G.jsx)(`div`,{className:`lg:w-80 bg-bambu-dark rounded-xl p-4`,children:c?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:new Date(c+`T12:00:00`).toLocaleDateString(`en-US`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}),b.length>0?(0,G.jsx)(`div`,{className:`calendar-scroll space-y-2 max-h-96 overflow-y-auto`,children:b.map(e=>{let r=e.id===u||e.id===n;return(0,G.jsxs)(`button`,{onClick:()=>{d(e.id),t?.(e)},className:`w-full flex items-center gap-3 p-2 rounded-lg transition-colors text-left ${r?``:`hover:bg-bambu-dark-tertiary`}`,style:r?{outline:`4px solid #facc15`,outlineOffset:`2px`}:void 0,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:``,className:`w-12 h-12 rounded object-cover`}):(0,G.jsx)(`div`,{className:`w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`3MF`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.print_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:e.status===`failed`?`text-red-700 dark:text-red-400`:`text-green-700 dark:text-green-400`,children:e.status===`failed`?`Failed`:`Completed`}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex gap-0.5`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e}},t))})]})]})]},e.id)})}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`No prints on this day`})]}):(0,G.jsx)(`div`,{className:`text-center py-8`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`Select a day to see prints`})})})]})}function nG({archiveId:e,archiveName:t,onClose:n}){let r=Z.getArchiveQRCodeUrl(e,300);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:`QR Code`}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 flex flex-col items-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 text-center truncate max-w-full`,children:t}),(0,G.jsx)(`div`,{className:`bg-white p-4 rounded-lg mb-4`,children:(0,G.jsx)(`img`,{src:r,alt:`QR Code`,className:`w-64 h-64`})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4 text-center`,children:`Scan to open this archive`}),(0,G.jsxs)(Q,{onClick:()=>{let e=document.createElement(`a`);e.href=r,e.download=`${t}_qrcode.png`,e.click()},className:`w-full`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download QR Code`]})]})]})})}function rG({archiveId:e,archiveName:t,photos:n,onClose:r,onDelete:i}){let[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r(),e.key===`ArrowLeft`&&o(e=>Math.max(0,e-1)),e.key===`ArrowRight`&&o(e=>Math.min(n.length-1,e+1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,n.length]),(0,y.useEffect)(()=>{a>=n.length&&o(Math.max(0,n.length-1))},[n.length,a]),n.length===0)return r(),null;let l=n[a],u=Z.getArchivePhotoUrl(e,l);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-50`,onClick:r,children:[(0,G.jsxs)(`div`,{className:`relative w-full h-full flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 bg-black/50`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`Photo `,a+1,` of `,n.length]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{let e=document.createElement(`a`);e.href=u,e.download=`${t}_photo_${a+1}.jpg`,e.click()},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download`]}),i&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{i&&c(!0)},className:`text-red-400 hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:r,className:`p-2 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-6 h-6`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-h-0 flex items-center justify-center p-4 relative overflow-hidden`,children:[a>0&&(0,G.jsx)(`button`,{onClick:()=>o(e=>e-1),className:`absolute left-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(hs,{className:`w-8 h-8 text-white`})}),(0,G.jsx)(`img`,{src:u,alt:`Photo ${a+1}`,className:`max-w-full max-h-full object-contain rounded-lg`,style:{maxHeight:`calc(100vh - 200px)`}}),ao(e=>e+1),className:`absolute right-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors`,children:(0,G.jsx)(ms,{className:`w-8 h-8 text-white`})})]}),n.length>1&&(0,G.jsx)(`div`,{className:`flex justify-center gap-2 p-4 bg-black/50`,children:n.map((t,n)=>(0,G.jsx)(`button`,{onClick:()=>o(n),className:`w-16 h-16 rounded-lg overflow-hidden border-2 transition-colors ${n===a?`border-bambu-green`:`border-transparent hover:border-bambu-gray`}`,children:(0,G.jsx)(`img`,{src:Z.getArchivePhotoUrl(e,t),alt:`Thumbnail ${n+1}`,className:`w-full h-full object-cover`})},t))})]}),s&&(0,G.jsx)(of,{title:`Delete Photo`,message:`Delete this photo? This cannot be undone.`,confirmText:`Delete`,variant:`danger`,onConfirm:()=>{i?.(l),c(!1)},onCancel:()=>c(!1)})]})}function iG(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`?null:OG(BigInt.prototype.toString),CG=typeof Symbol>`u`?null:OG(Symbol.prototype.toString),wG=OG(Object.prototype.hasOwnProperty),TG=OG(Object.prototype.toString),EG=OG(RegExp.prototype.test),DG=Wje(TypeError);function OG(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return dG(e,t,n)}}function Wje(e){return function(){return fG(e,[...arguments])}}function kG(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_G;if(oG&&oG(e,null),!gG(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Ije(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Gje(e){for(let t=0;t/g),Qje=cG(/\${[\w\W]*/g),$je=cG(/^data-[\-\w.\u00B7-\uFFFF]+$/),eMe=cG(/^aria-[\-\w]+$/),VG=cG(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),tMe=cG(/^(?:\w+script|data):/i),nMe=cG(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rMe=cG(/^html$/i),iMe=cG(/^[a-z][.\w]*(-[.\w]+)+$/i),HG=cG(/<[/\w!]/g),UG=cG(/<[/\w]/g),aMe=cG(/<\/no(script|embed|frames)/i),oMe=cG(/\/>/i),WG={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},sMe=function(){return typeof window>`u`?null:window},cMe=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},GG=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},KG=function(e,t,n,r){return wG(e,t)&&gG(e[t])?kG(r.base?AG(r.base):{},e[t],r.transform):n};function qG(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:sMe(),t=e=>qG(e);if(t.version=`3.4.13`,t.removed=[],!e||!e.document||e.document.nodeType!==WG.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=jG(d,`cloneNode`),p=jG(d,`remove`),m=jG(d,`nextSibling`),h=jG(d,`childNodes`),g=jG(d,`parentNode`),_=jG(d,`shadowRoot`),v=jG(d,`attributes`),y=o&&o.prototype?jG(o.prototype,`nodeType`):null,b=o&&o.prototype?jG(o.prototype,`nodeName`):null,x=o&&o.prototype?jG(o.prototype,`ownerDocument`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let S,C=``,w,T=!1,E=0,D=function(){if(E>0)throw DG(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},O=function(e){D(),E++;try{return S.createHTML(e)}finally{E--}},k=function(e){D(),E++;try{return S.createScriptURL(e)}finally{E--}},A=function(){return T||=(w=cMe(u,i),!0),w},j=n,M=j.implementation,N=j.createNodeIterator,P=j.createDocumentFragment,F=j.getElementsByTagName,I=r.importNode,L=GG();t.isSupported=typeof aG==`function`&&typeof g==`function`&&M&&M.createHTMLDocument!==void 0;let R=Xje,z=Zje,B=Qje,V=$je,ee=eMe,te=tMe,ne=nMe,re=iMe,ie=VG,ae=null,oe=kG({},[...MG,...NG,...PG,...FG,...IG]),se=null,H=kG({},[...LG,...RG,...zG,...BG]),ce=Object.seal(lG(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),le=null,ue=null,de=Object.seal(lG(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),fe=!0,pe=!0,me=!1,he=!0,ge=!1,_e=!0,ve=!1,ye=!1,be=null,xe=null,Se=!1,Ce=!1,we=!1,Te=!1,Ee=!0,De=!1,Oe=`user-content-`,ke=!0,Ae=!1,je={},Me=null,Ne=kG({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Pe=null,Fe=kG({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ie=null,Le=kG({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Re=`http://www.w3.org/1998/Math/MathML`,ze=`http://www.w3.org/2000/svg`,Be=`http://www.w3.org/1999/xhtml`,Ve=Be,He=!1,Ue=null,We=kG({},[Re,ze,Be],vG),Ge=sG([`mi`,`mo`,`mn`,`ms`,`mtext`]),Ke=kG({},Ge),qe=sG([`annotation-xml`]),Je=kG({},qe),Ye=kG({},[`title`,`style`,`font`,`a`,`script`]),Xe=null,Ze=[`application/xhtml+xml`,`text/html`],Qe=null,$e=null,et=n.createElement(`form`),U=function(e){return e instanceof RegExp||e instanceof Function},tt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if($e&&$e===e)return;(!e||typeof e!=`object`)&&(e={}),e=AG(e),Xe=Ze.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Qe=Xe===`application/xhtml+xml`?vG:_G,ae=KG(e,`ALLOWED_TAGS`,oe,{transform:Qe}),se=KG(e,`ALLOWED_ATTR`,H,{transform:Qe}),Ue=KG(e,`ALLOWED_NAMESPACES`,We,{transform:vG}),Ie=KG(e,`ADD_URI_SAFE_ATTR`,Le,{transform:Qe,base:Le}),Pe=KG(e,`ADD_DATA_URI_TAGS`,Fe,{transform:Qe,base:Fe}),Me=KG(e,`FORBID_CONTENTS`,Ne,{transform:Qe}),le=KG(e,`FORBID_TAGS`,AG({}),{transform:Qe}),ue=KG(e,`FORBID_ATTR`,AG({}),{transform:Qe}),je=wG(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?AG(e.USE_PROFILES):e.USE_PROFILES:!1,fe=e.ALLOW_ARIA_ATTR!==!1,pe=e.ALLOW_DATA_ATTR!==!1,me=e.ALLOW_UNKNOWN_PROTOCOLS||!1,he=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ge=e.SAFE_FOR_TEMPLATES||!1,_e=e.SAFE_FOR_XML!==!1,ve=e.WHOLE_DOCUMENT||!1,Ce=e.RETURN_DOM||!1,we=e.RETURN_DOM_FRAGMENT||!1,Te=e.RETURN_TRUSTED_TYPE||!1,Se=e.FORCE_BODY||!1,Ee=e.SANITIZE_DOM!==!1,De=e.SANITIZE_NAMED_PROPS||!1,ke=e.KEEP_CONTENT!==!1,Ae=e.IN_PLACE||!1,ie=qje(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:VG,Ve=typeof e.NAMESPACE==`string`?e.NAMESPACE:Be,Ke=wG(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?AG(e.MATHML_TEXT_INTEGRATION_POINTS):kG({},Ge),Je=wG(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?AG(e.HTML_INTEGRATION_POINTS):kG({},qe);let t=wG(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?AG(e.CUSTOM_ELEMENT_HANDLING):lG(null);if(ce=lG(null),wG(t,`tagNameCheck`)&&U(t.tagNameCheck)&&(ce.tagNameCheck=t.tagNameCheck),wG(t,`attributeNameCheck`)&&U(t.attributeNameCheck)&&(ce.attributeNameCheck=t.attributeNameCheck),wG(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(ce.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),cG(ce),ge&&(pe=!1),we&&(Ce=!0),je&&(ae=kG({},IG),se=lG(null),je.html===!0&&(kG(ae,MG),kG(se,LG)),je.svg===!0&&(kG(ae,NG),kG(se,RG),kG(se,BG)),je.svgFilters===!0&&(kG(ae,PG),kG(se,RG),kG(se,BG)),je.mathMl===!0&&(kG(ae,FG),kG(se,zG),kG(se,BG))),de.tagCheck=null,de.attributeCheck=null,wG(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?de.tagCheck=e.ADD_TAGS:gG(e.ADD_TAGS)&&(ae===oe&&(ae=AG(ae)),kG(ae,e.ADD_TAGS,Qe))),wG(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?de.attributeCheck=e.ADD_ATTR:gG(e.ADD_ATTR)&&(se===H&&(se=AG(se)),kG(se,e.ADD_ATTR,Qe))),wG(e,`ADD_URI_SAFE_ATTR`)&&gG(e.ADD_URI_SAFE_ATTR)&&kG(Ie,e.ADD_URI_SAFE_ATTR,Qe),wG(e,`FORBID_CONTENTS`)&&gG(e.FORBID_CONTENTS)&&(Me===Ne&&(Me=AG(Me)),kG(Me,e.FORBID_CONTENTS,Qe)),wG(e,`ADD_FORBID_CONTENTS`)&&gG(e.ADD_FORBID_CONTENTS)&&(Me===Ne&&(Me=AG(Me)),kG(Me,e.ADD_FORBID_CONTENTS,Qe)),ke&&(ae[`#text`]=!0),ve&&kG(ae,[`html`,`head`,`body`]),ae.table&&(kG(ae,[`tbody`]),delete le.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw DG(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw DG(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=S;S=e.TRUSTED_TYPES_POLICY;try{C=O(``)}catch(e){throw S=t,e}}else e.TRUSTED_TYPES_POLICY===null?(S=void 0,C=``):(S===void 0&&(S=A()),S&&typeof C==`string`&&(C=O(``)));sG&&sG(e),$e=e},nt=kG({},[...NG,...PG,...Jje]),rt=kG({},[...FG,...Yje]),it=function(e,t,n){return t.namespaceURI===Be?e===`svg`:t.namespaceURI===Re?e===`svg`&&(n===`annotation-xml`||Ke[n]):!!nt[e]},at=function(e,t,n){return t.namespaceURI===Be?e===`math`:t.namespaceURI===ze?e===`math`&&Je[n]:!!rt[e]},ot=function(e,t,n){return t.namespaceURI===ze&&!Je[n]||t.namespaceURI===Re&&!Ke[n]?!1:!rt[e]&&(Ye[e]||!nt[e])},st=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ve,tagName:`template`});let n=_G(e.tagName),r=_G(t.tagName);return Ue[e.namespaceURI]?e.namespaceURI===ze?it(n,t,r):e.namespaceURI===Re?at(n,t,r):e.namespaceURI===Be?ot(n,t,r):!!(Xe===`application/xhtml+xml`&&Ue[e.namespaceURI]):!1},ct=function(e){hG(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw DG(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},lt=function(e){ft(e);let t=h(e);if(t){let e=[];pG(t,t=>{hG(e,t)}),pG(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},ut=function(e,n){try{hG(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{hG(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(Ce||we)try{ct(n)}catch{}else try{n.setAttribute(e,``)}catch{}},dt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||se[Qe(i)]))try{e.removeAttribute(i)}catch{}}},ft=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===WG.element&&dt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},pt=function(e){if(!_e)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=y?y(e):e.nodeType;if(n===WG.processingInstruction||n===WG.comment&&EG(UG,e.data)){try{p(e)}catch{}continue}if(n===WG.element){let t=e,n=Qe(b?b(e):e.nodeName);try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&n!==`label`&&n!==`output`&&t.removeAttribute(`for`)}catch{}}let r=h(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},mt=function(e){let t=null,r=null;if(Se)e=``+e;else{let t=yG(e,/^[\r\n\t ]+/);r=t&&t[0]}Xe===`application/xhtml+xml`&&Ve===Be&&(e=``+e+``);let i=S?O(e):e;if(Ve===Be)try{t=new l().parseFromString(i,Xe)}catch{}if(!t||!t.documentElement){t=M.createDocument(Ve,`template`,null);try{t.documentElement.innerHTML=He?C:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ve===Be?F.call(t,ve?`html`:`body`)[0]:ve?t.documentElement:a},ht=function(e){let t=x?x(e):e.ownerDocument;return N.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},gt=function(e){return e=bG(e,R,` `),e=bG(e,z,` `),e=bG(e,B,` `),e},_t=function(e){e.normalize();let t=x?x(e):e.ownerDocument,n=N.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=gt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&pG(i,e=>{yt(e.content)&&_t(e.content)})},vt=function(e){let t=b?b(e):null;return typeof t!=`string`||Qe(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},yt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===WG.documentFragment}catch{return!1}},bt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function xt(e,n,r){e.length!==0&&pG(e,e=>{e.call(t,n,r,$e)})}let St=function(e,t){return!!(_e&&e.hasChildNodes()&&!bt(e.firstElementChild)&&EG(HG,e.textContent)&&EG(HG,e.innerHTML)||_e&&e.namespaceURI===Be&&t===`style`&&bt(e.firstElementChild)||e.nodeType===WG.processingInstruction||_e&&e.nodeType===WG.comment&&EG(UG,e.data))},Ct=function(e,t,n){if(!le[t]&&Ot(t)&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,t)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(t)))return!1;if(ke&&!Me[t]){let t=g(e),r=h(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,m(e))}}}return ct(e),!0},wt=function(e,t,n,r){return e.length===0?t:t===n||t===r?AG(t):t},Tt=function(e,n){if(xt(L.beforeSanitizeElements,e,null),e!==n&&g(e)===null)return Ae&&ft(e),!0;if(vt(e))return ct(e),!0;let r=Qe(b?b(e):e.nodeName);if(ae=wt(L.uponSanitizeElement,ae,oe,be),xt(L.uponSanitizeElement,e,{tagName:r,allowedTags:ae}),e!==n&&g(e)===null)return Ae&&ft(e),!0;if(St(e,r))return ct(e),!0;if(le[r]||!(de.tagCheck instanceof Function&&de.tagCheck(r))&&!ae[r]){let t=Ct(e,r,n);return t===!1&&xt(L.afterSanitizeElements,e,null),t}if((y?y(e):e.nodeType)===WG.element&&!st(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&EG(aMe,e.innerHTML))return ct(e),!0;if(ge&&e.nodeType===WG.text){let n=gt(e.textContent);e.textContent!==n&&(hG(t.removed,{element:e.cloneNode()}),e.textContent=n)}return xt(L.afterSanitizeElements,e,null),!1},Et=function(e,t,r){if(ue[t]||_e&&t===`patchsrc`||_e&&t===`for`&&e!==`label`&&e!==`output`||Ee&&(t===`id`||t===`name`)&&(r in n||r in et))return!1;let i=se[t]||de.attributeCheck instanceof Function&&de.attributeCheck(t,e);if(!(pe&&EG(V,t))&&!(fe&&EG(ee,t))){if(!i){if(!(Ot(e)&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,e)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(e))&&(ce.attributeNameCheck instanceof RegExp&&EG(ce.attributeNameCheck,t)||ce.attributeNameCheck instanceof Function&&ce.attributeNameCheck(t,e))||t===`is`&&ce.allowCustomizedBuiltInElements&&(ce.tagNameCheck instanceof RegExp&&EG(ce.tagNameCheck,r)||ce.tagNameCheck instanceof Function&&ce.tagNameCheck(r))))return!1}else if(!Ie[t]&&!EG(ie,bG(r,ne,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&xG(r,`data:`)===0&&Pe[e])&&!(me&&!EG(te,bG(r,ne,``)))&&r)return!1}return!0},Dt=kG({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ot=function(e){return!Dt[_G(e)]&&EG(re,e)},kt=function(e,t,n,r){if(S&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return O(r);case`TrustedScriptURL`:return k(r)}return r},At=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),vt(e)?ct(e):mG(t.removed)}catch{ut(n,e)}},jt=function(e){xt(L.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||vt(e))return;se=wt(L.uponSanitizeAttribute,se,H,xe);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:se,forceKeepAttr:void 0},r=t.length,i=Qe(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Qe(o),u=c,d=o===`value`?u:Vje(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,xt(L.uponSanitizeAttribute,e,n),d=n.attrValue,De&&(l===`id`||l===`name`)&&xG(d,Oe)!==0&&(ut(o,e),d=Oe+d),_e&&EG(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ut(o,e);continue}if(l===`attributename`&&yG(d,`href`)){ut(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){ut(o,e);continue}if(!he&&EG(oMe,d)){ut(o,e);continue}if(ge&&(d=gt(d)),!Et(i,l,d)){ut(o,e);continue}d=kt(i,l,s,d),d!==u&&At(e,o,s,d)}}xt(L.afterSanitizeAttributes,e,null)},Mt=function(e){let t=null,n=ht(e);for(xt(L.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(xt(L.uponSanitizeShadowNode,t,null),Tt(t,e),jt(t),yt(t.content)&&Mt(t.content),(y?y(t):t.nodeType)===WG.element){let e=_(t);yt(e)&&(Nt(e),Mt(e))}xt(L.afterSanitizeShadowDOM,e,null)},Nt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Mt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===WG.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Qe(e)===`template`){let e=n.content;yt(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);yt(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(He=!e,He&&(e=``),typeof e!=`string`&&!bt(e)&&(e=Kje(e),typeof e!=`string`))throw DG(`dirty is not a string, aborting`);if(!t.isSupported)return e;ye?(ae=be,se=xe):tt(n),(L.uponSanitizeElement.length>0||L.uponSanitizeAttribute.length>0)&&(ae=AG(ae)),L.uponSanitizeAttribute.length>0&&(se=AG(se)),t.removed=[];let c=Ae&&typeof e!=`string`&&bt(e);if(c){pt(e);let t=b?b(e):e.nodeName;if(typeof t==`string`){let n=Qe(t);if(!ae[n]||le[n])throw lt(e),DG(`root node is forbidden and cannot be sanitized in-place`)}if(vt(e))throw lt(e),DG(`root node is clobbered and cannot be sanitized in-place`);try{Nt(e)}catch(t){throw lt(e),t}}else if(bt(e))i=mt(``),a=i.ownerDocument.importNode(e,!0),a.nodeType===WG.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Nt(a);else{if(!Ce&&!ge&&!ve&&e.indexOf(`<`)===-1)return S&&Te?O(e):e;if(i=mt(e),!i)return Ce?null:Te?C:``}i&&Se&&ct(i.firstChild);let l=c?e:i;try{let e=ht(l);for(;o=e.nextNode();)Tt(o,l),jt(o),yt(o.content)&&Mt(o.content)}catch(n){throw c&&(lt(e),pG(t.removed,e=>{e.element&&ft(e.element)})),n}if(c)return pG(t.removed,e=>{e.element&&ft(e.element)}),ge&&_t(e),e;if(Ce){if(ge&&_t(i),we)for(s=P.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(se.shadowroot||se.shadowrootmode)&&(s=I.call(r,s,!0)),s}let u=ve?i.outerHTML:i.innerHTML;return ve&&ae[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&EG(rMe,i.ownerDocument.doctype.name)&&(u=` +`+u),ge&&(u=gt(u)),S&&Te?O(u):u},t.setConfig=function(){tt(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),ye=!0,be=ae,xe=se},t.clearConfig=function(){$e=null,ye=!1,be=null,xe=null,S=w,C=``},t.isValidAttribute=function(e,t,n){return $e||tt({}),Et(Qe(e),Qe(t),n)},t.addHook=function(e,t){typeof t==`function`&&wG(L,e)&&hG(L[e],t)},t.removeHook=function(e,t){if(wG(L,e)){if(t!==void 0){let n=zje(L[e],t);return n===-1?void 0:Bje(L[e],n,1)[0]}return mG(L[e])}},t.removeHooks=function(e){wG(L,e)&&(L[e]=[])},t.removeAllHooks=function(){L=GG()},t}var JG=qG(),YG=Object.defineProperty,lMe=(e,t)=>{let n={};for(var r in e)YG(n,r,{get:e[r],enumerable:!0});return t||YG(n,Symbol.toStringTag,{value:`Module`}),n};function XG(e){this.content=e}XG.prototype={constructor:XG,find:function(e){for(var t=0;t>1}},XG.from=function(e){if(e instanceof XG)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new XG(t)};function ZG(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){let e=i.text,t=a.text,r=0;for(;e[r]==t[r];r++)n++;return r&&r0&&a>0&&e[i-1]==t[a-1];)i--,a--,n--,r--;return i&&a&&i=56320&&e<57344}function eK(e){return e>=55296&&e<56320}var tK=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;te&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);at)for(let e=0,a=0;at&&((an)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?rK(t+1,i):rK(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return e.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;ethis.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),n}};aK.none=[];var oK=class extends Error{},sK=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=lK(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(cK(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(tK.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};sK.empty=new sK(tK.empty,0,0);function cK(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(cK(a.content,t-i-1,n-i-1)))}function lK(e,t,n,r,i,a){let{index:o,offset:s}=e.findIndex(t),c=e.maybeChild(o);if(s==t||c.isText)return a&&r<=0&&i<=0&&!a.canReplace(o,o,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=lK(c.content,t-s-1,n,o==0?r-1:0,o==e.childCount-1?i-1:0,c);return l&&e.replaceChild(o,c.copy(l))}function uMe(e,t,n){if(n.openStart>e.depth)throw new oK(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new oK(`Inconsistent open depths`);return uK(e,t,n,0)}function uK(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function mK(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(pK(e.nodeAfter,r),a++));for(let e=a;ei&&fK(e,t,i+1),o=r.depth>i&&fK(n,r,i+1),s=[];return mK(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(dK(a,o),pK(hK(a,gK(e,t,n,r,i+1)),s)):(a&&pK(hK(a,_K(e,t,i+1)),s),mK(t,n,i,s),o&&pK(hK(o,_K(n,r,i+1)),s)),mK(r,null,i,s),new tK(s)}function _K(e,t,n){let r=[];return mK(null,e,n,r),e.depth>n&&pK(hK(fK(e,t,n+1),_K(e,t,n+1)),r),mK(t,null,n,r),new tK(r)}function dMe(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(tK.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var vK=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new bK(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=yK.get(t);if(r)for(let e=0;ee&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),SK(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=tK.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;ee.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=tK.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};xK.prototype.text=void 0;var hMe=class e extends xK{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):SK(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function SK(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var CK=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new gMe(t,n);if(r.next==null)return e.empty;let i=wK(r);r.next&&r.err(`Unexpected trailing text`);let a=CMe(SMe(i));return wMe(a,r),a}matchType(e){for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n`+e.indexOf(t.next[n].next);return r}).join(` +`)}};CK.empty=new CK(!0);var gMe=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function wK(e){let t=[];do t.push(_Me(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function _Me(e){let t=[];do t.push(vMe(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function vMe(e){let t=xMe(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=yMe(e,t);else break;return t}function TK(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function yMe(e,t){let n=TK(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:TK(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function bMe(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function xMe(e){if(e.eat(`(`)){let t=wK(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=bMe(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function SMe(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new CK(r.indexOf(e.length-1)>-1);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:kK(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new xK(this,this.computeAttrs(e),tK.from(t),aK.setFrom(n))}createChecked(e=null,t,n){return t=tK.from(t),this.checkContent(t),new xK(this,this.computeAttrs(e),t,aK.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=tK.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(tK.empty,!0);return i?new xK(this,e,t.append(i),aK.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function TMe(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var EMe=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?TMe(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},NK=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=jK(e,r.attrs),this.excluded=null;let i=OK(this.attrs);this.instance=i?new aK(this,i):null}create(e=null){return!e&&this.instance?this.instance:new aK(this,kK(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t-1}},PK=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=XG.from(e.nodes),t.marks=XG.from(e.marks||{}),this.nodes=MK.compile(this.spec.nodes,this),this.marks=NK.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=CK.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?FK(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:FK(this,n.split(` `))}this.nodeFromJSON=e=>xK.fromJSON(this,e),this.markFromJSON=e=>aK.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof MK))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new hMe(n,n.defaultAttrs,e,aK.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function FK(e,t){let n=[];for(let r=0;r-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function DMe(e){return e.tag!=null}function OMe(e){return e.style!=null}var IK=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(DMe(e))this.tags.push(e);else if(OMe(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new WK(this,t,!1);return n.addAll(e,aK.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new WK(this,t,!0);return n.addAll(e,aK.none,t.from,t.to),sK.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r{n(e=GK(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=GK(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},LK={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},kMe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},RK={ol:!0,ul:!0},zK=1,BK=2,VK=4;function HK(e,t,n){return t==null?e&&e.whitespace==`pre`?3:n&-5:(t?zK:0)|(t===`full`?BK:0)}var UK=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=aK.none,this.match=i||(a&VK?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(tK.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&zK)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=tK.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(tK.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!LK.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},WK=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=HK(null,t.preserveWhitespace,0)|(n?VK:0);i=r?new UK(r.type,r.attrs,aK.none,!0,t.topMatch||r.type.contentMatch,a):n?new UK(null,null,aK.none,!0,null,a):new UK(e.schema.topNodeType,null,aK.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&BK?`full`:this.localPreserveWS||(r.options&zK)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,` +`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e(a.type?a.type.allowsMarkType(t.type):KK(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new UK(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=zK);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+ +!r,a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function AMe(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&RK.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function jMe(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function GK(e){let t={};for(let n in e)t[n]=e[n];return t}function KK(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,a=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&ZK(YK(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return typeof t==`string`?{dom:e.createTextNode(t)}:ZK(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=JK(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return JK(e.marks)}};function JK(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function YK(e){return e.document||window.document}var XK=new WeakMap;function MMe(e){let t=XK.get(e);return t===void 0&&XK.set(e,t=NMe(e)),t}function NMe(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;iu)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else if(typeof a==`string`)c.appendChild(e.createTextNode(a));else{let{dom:t,contentDOM:i}=ZK(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var QK=65535,$K=2**16;function PMe(e,t){return e+t*$K}function eq(e){return e&QK}function FMe(e){return(e-(e&QK))/$K}var IMe=1,LMe=2,tq=4,nq=8,rq=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&nq)>0}get deletedBefore(){return(this.delInfo&5)>0}get deletedAfter(){return(this.delInfo&6)>0}get deletedAcross(){return(this.delInfo&tq)>0}},iq=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=eq(e);if(!this.inverted)for(let e=0;ee)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:PMe(o/3,e-s),f=e==s?LMe:e==u?IMe:tq;return(t<0?e!=s:e!=u)&&(f|=nq),new rq(a,f,d)}r+=l-c}return n?e+r:new rq(e+r,0,null)}touches(e,t){let n=0,r=eq(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;te)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;nn&&t!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return cq.fromReplace(e,this.from,this.to,i)}invert(){return new dq(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};sq.jsonID(`addMark`,uq);var dq=class e extends sq{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new sK(lq(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return cq.fromReplace(e,this.from,this.to,n)}invert(){return new uq(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};sq.jsonID(`removeMark`,dq);var fq=class e extends sq{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return cq.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return cq.fromReplace(e,this.pos,this.pos+1,new sK(tK.from(n),0,+!t.isLeaf))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;rr.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,sK.fromJSON(t,n.slice),n.insert,!!n.structure)}};sq.jsonID(`replaceAround`,hq);function gq(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function RMe(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;ee.step(t)),a.forEach(t=>e.step(t))}function zMe(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof NK){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;ee.step(new dq(t.from,t.to,t.style)))}function _q(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t=0;t--)e.step(o[t])}function BMe(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function vq(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(nn;e--)t||r.index(e)>0?(t=!0,u=tK.from(r.node(e).copy(u)),d++):c--;let f=tK.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=tK.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new hq(i,a,i,a,new sK(r,0,0),n.length,!0))}function GMe(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&KMe(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Sq(e,t,n,a),_q(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new hq(c,l,c+1,l-1,new sK(tK.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&xq(e,t,n,a),!1}})}function xq(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Sq(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(` +`))}})}function KMe(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function qMe(e,t,n,r,i){let a=e.doc.nodeAt(t);if(!a)throw RangeError(`No node at given position`);n||=a.type;let o=n.create(r,null,i||a.marks);if(a.isLeaf)return e.replaceWith(t,t+a.nodeSize,o);if(!n.validContent(a.content))throw RangeError(`Invalid content for node type `+n.name);e.step(new hq(t,t+a.nodeSize,t+1,t+a.nodeSize-1,new sK(tK.from(o),0,0),1,!0))}function Cq(e,t,n=1,r){let i=e.resolve(t),a=i.depth-n,o=r&&r[r.length-1]||i.parent;if(a<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let e=i.depth-1,t=n-2;e>a;e--,t--){let n=i.node(e),a=i.index(e);if(n.type.spec.isolating)return!1;let o=n.content.cutByIndex(a,n.childCount),s=r&&r[t+1];s&&(o=o.replaceChild(0,s.type.create(s.attrs)));let c=r&&r[t]||n;if(!n.canReplace(a+1,n.childCount)||!c.type.validContent(o))return!1}let s=i.indexAfter(a),c=r&&r[0];return i.node(a).canReplaceWith(s,s,c?c.type:i.node(a+1).type)}function JMe(e,t,n=1,r){let i=e.doc.resolve(t),a=tK.empty,o=tK.empty;for(let e=i.depth,t=i.depth-n,s=n-1;e>t;e--,s--){a=tK.from(i.node(e).copy(a));let t=r&&r[s];o=tK.from(t?t.type.create(t.attrs,o):i.node(e).copy(o))}e.step(new mq(t,t,new sK(a.append(o),n,n),!0))}function wq(e,t){let n=e.resolve(t),r=n.index();return Tq(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function YMe(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i0?(i=r.node(e+1),o++,a=r.node(e).maybeChild(o)):(i=r.node(e).maybeChild(o-1),a=r.node(e+1)),i&&!i.isTextblock&&Tq(i,a)&&r.node(e).canReplace(o,o+1))return t;if(e==0)break;t=n<0?r.before(e):r.after(e)}}function XMe(e,t,n){let r=null,{linebreakReplacement:i}=e.doc.type.schema,a=e.doc.resolve(t-n),o=a.node().type;if(i&&o.inlineContent){let e=o.whitespace==`pre`,t=!!o.contentMatch.matchType(i);e&&!t?r=!1:!e&&t&&(r=!0)}let s=e.steps.length;if(r===!1){let r=e.doc.resolve(t+n);Sq(e,r.node(),r.before(),s)}o.inlineContent&&_q(e,t+n-1,o,a.node().contentMatchAt(a.index()),r==null);let c=e.mapping.slice(s),l=c.map(t-n);if(e.step(new mq(l,c.map(t+n,-1),sK.empty,!0)),r===!0){let t=e.doc.resolve(l);xq(e,t.node(),t.before(),e.steps.length)}return e}function ZMe(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let e=r.depth-1;e>=0;e--){let t=r.index(e);if(r.node(e).canReplaceWith(t,t,n))return r.before(e+1);if(t>0)return null}if(r.parentOffset==r.parent.content.size)for(let e=r.depth-1;e>=0;e--){let t=r.indexAfter(e);if(r.node(e).canReplaceWith(t,t,n))return r.after(e+1);if(t=0;t--){let n=t==r.depth?0:r.pos<=(r.start(t+1)+r.end(t+1))/2?-1:1,a=r.index(t)+ +(n>0),o=r.node(t),s=!1;if(e==1)s=o.canReplace(a,a,i);else{let e=o.contentMatchAt(a).findWrapping(i.firstChild.type);s=e&&o.canReplaceWith(a,a,e[0])}if(s)return n==0?r.pos:n<0?r.before(t+1):r.after(t+1)}return null}function Oq(e,t,n=t,r=sK.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),a=e.resolve(n);return kq(i,a,r)?new mq(t,n,r):new QMe(i,a,r).fit()}function kq(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}var QMe=class{constructor(e,t,n){this.$from=e,this.$to=t,this.unplaced=n,this.frontier=[],this.placed=tK.empty;for(let t=0;t<=e.depth;t++){let n=e.node(t);this.frontier.push({type:n.type,match:n.contentMatchAt(e.indexAfter(t))})}for(let t=e.depth;t>0;t--)this.placed=tK.from(e.node(t).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,a=n.depth,o=r.depth;for(;a&&o&&i.childCount==1;)i=i.firstChild.content,a--,o--;let s=new sK(i,a,o);return e>-1?new hq(n.pos,e,this.$to.pos,this.$to.end(),s,t):s.size||n.pos!=this.$to.pos?new mq(n.pos,r.pos,s):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=t==1?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=Mq(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let i=e.firstChild;for(let e=this.depth;e>=0;e--){let{type:a,match:o}=this.frontier[e],s,c=null;if(t==1&&(i?o.matchType(i.type)||(c=o.fillBefore(tK.from(i),!1)):r&&a.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:e,parent:r,inject:c};if(t==2&&i&&(s=o.findWrapping(i.type)))return{sliceDepth:n,frontierDepth:e,parent:r,wrap:s};if(r&&o.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced;return Fq(e,-1)<=t?!1:(this.unplaced.size>1&&Fq(e,1)>n&&n++,this.unplaced=new sK(e,t+1,n),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Mq(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new sK(Aq(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new sK(Aq(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:i}){for(;this.depth>t;)this.closeFrontierNode();if(i)for(let e=0;e1||s==0||e.content.size)&&(u=t,l.push(Nq(e.mark(d.allowedMarks(e.marks)),c==1?s:0,c==o.childCount?f:-1)))}let p=c==o.childCount;p||(f=-1),this.placed=jq(this.placed,t,tK.from(l)),this.frontier[t].match=u,p&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let e=0,t=o;e1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){scan:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t=0;n--){let{match:t,type:r}=this.frontier[n],i=Pq(e,n,r,t,!0);if(!i||i.childCount)continue scan}return{depth:t,fit:a,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=jq(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=jq(this.placed,this.depth,tK.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(tK.empty,!0);e.childCount&&(this.placed=jq(this.placed,this.frontier.length,e))}};function Aq(e,t,n){return t==0?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Aq(e.firstChild.content,t-1,n)))}function jq(e,t,n){return t==0?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(jq(e.lastChild.content,t-1,n)))}function Mq(e,t){for(let n=0;n1&&(r=r.replaceChild(0,Nq(r.firstChild,t-1,r.childCount==1?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(tK.empty,!0)))),e.copy(r)}function Pq(e,t,n,r,i){let a=e.node(t),o=i?e.indexAfter(t):e.index(t);if(o==a.childCount&&!n.compatibleContent(a.type))return null;let s=r.fillBefore(a.content,!0,o);return s&&!$Me(n,a.content,o)?s:null}function $Me(e,t,n){for(let r=n;r0;e--,t--){let n=i.node(e).type.spec;if(n.defining||n.definingAsContext||n.isolating)break;o.indexOf(e)>-1?s=e:i.before(e)==t&&o.splice(1,0,-e)}let c=o.indexOf(s),l=[],u=r.openStart;for(let e=r.content,t=0;;t++){let n=e.firstChild;if(l.push(n),t==r.openStart)break;e=n.content}for(let e=u-1;e>=0;e--){let t=l[e],n=eNe(t.type);if(n&&!t.sameMarkup(i.node(Math.abs(s)-1)))u=e;else if(n||!t.type.isTextblock)break}for(let t=r.openStart;t>=0;t--){let s=(t+u+1)%(r.openStart+1),d=l[s];if(d)for(let t=0;t=0&&(e.replace(t,n,r),!(e.steps.length>d));s--){let e=o[s];e<0||(t=i.before(e),n=a.after(e))}}function Iq(e,t,n,r,i){if(tr){let t=i.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(tK.empty,!0))}return e}function nNe(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=ZMe(e.doc,t,r.type);i!=null&&(t=n=i)}e.replaceRange(t,n,new sK(tK.from(r),0,0))}function rNe(e,t,n){let r=e.doc.resolve(t),i=e.doc.resolve(n);if(r.parent.isTextblock&&i.parent.isTextblock&&r.start()!=i.start()&&r.parentOffset==0&&i.parentOffset==0){let a=r.sharedDepth(n),o=!1;for(let e=r.depth;e>a;e--)r.node(e).type.spec.isolating&&(o=!0);for(let e=i.depth;e>a;e--)i.node(e).type.spec.isolating&&(o=!0);if(!o){for(let e=r.depth;e>0&&t==r.start(e);e--)t=r.before(e);for(let e=i.depth;e>0&&n==i.start(e);e--)n=i.before(e);r=e.doc.resolve(t),i=e.doc.resolve(n)}}let a=Lq(r,i);for(let t=0;t0&&(o||r.node(n-1).canReplace(r.index(n-1),i.indexAfter(n-1))))return e.delete(r.before(n),i.after(n))}for(let a=1;a<=r.depth&&a<=i.depth;a++)if(t-r.start(a)==r.depth-a&&n>r.end(a)&&i.end(a)-n!=i.depth-a&&r.start(a-1)==i.start(a-1)&&r.node(a-1).canReplace(r.index(a-1),i.index(a-1)))return e.delete(r.before(a),n);e.delete(t,n)}function Lq(e,t){let n=[],r=Math.min(e.depth,t.depth);for(let i=r;i>=0;i--){let r=e.start(i);if(rt.pos+(t.depth-i)||e.node(i).type.spec.isolating||t.node(i).type.spec.isolating)break;(r==t.start(i)||i==e.depth&&i==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&i&&t.start(i-1)==r-1)&&n.push(i)}return n}var Rq=class e extends sq{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return cq.fail(`No node at attribute step's position`);let n=Object.create(null);for(let e in t.attrs)n[e]=t.attrs[e];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return cq.fromReplace(e,this.pos,this.pos+1,new sK(tK.from(r),0,+!t.isLeaf))}getMap(){return iq.empty}invert(t){return new e(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.attr,this.value)}toJSON(){return{stepType:`attr`,pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!=`number`||typeof n.attr!=`string`)throw RangeError(`Invalid input for AttrStep.fromJSON`);return new e(n.pos,n.attr,n.value)}};sq.jsonID(`attr`,Rq);var zq=class e extends sq{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let n in e.attrs)t[n]=e.attrs[n];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return cq.ok(n)}getMap(){return iq.empty}invert(t){return new e(this.attr,t.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:`docAttr`,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!=`string`)throw RangeError(`Invalid input for DocAttrStep.fromJSON`);return new e(n.attr,n.value)}};sq.jsonID(`docAttr`,zq);var Bq=class extends Error{};Bq=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},Bq.prototype=Object.create(Error.prototype),Bq.prototype.constructor=Bq,Bq.prototype.name=`TransformError`;var Vq=class{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new aq}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new Bq(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}changedRange(){let e=1e9,t=-1e9;for(let n=0;n{e=Math.min(e,i),t=Math.max(t,a)})}return e==1e9?null:{from:e,to:t}}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=sK.empty){let r=Oq(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new sK(tK.from(n),0,0))}delete(e,t){return this.replace(e,t,sK.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return tNe(this,e,t,n),this}replaceRangeWith(e,t,n){return nNe(this,e,t,n),this}deleteRange(e,t){return rNe(this,e,t),this}lift(e,t){return VMe(this,e,t),this}join(e,t=1){return XMe(this,e,t),this}wrap(e,t){return WMe(this,e,t),this}setBlockType(e,t=e,n,r=null){return GMe(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return qMe(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new Rq(e,t,n)),this}setDocAttribute(e,t){return this.step(new zq(e,t)),this}addNodeMark(e,t){return this.step(new fq(e,t)),this}removeNodeMark(e,t){let n=this.doc.nodeAt(e);if(!n)throw RangeError(`No node at position `+e);if(t instanceof aK)t.isInSet(n.marks)&&this.step(new pq(e,t));else{let r=n.marks,i,a=[];for(;i=t.isInSet(r);)a.push(new pq(e,i)),r=i.removeFromSet(r);for(let e=a.length-1;e>=0;e--)this.step(a[e])}return this}split(e,t=1,n){return JMe(this,e,t,n),this}addMark(e,t,n){return RMe(this,e,t,n),this}removeMark(e,t,n){return zMe(this,e,t,n),this}clearIncompatible(e,t,n){return _q(this,e,t,n),this}},Hq=Object.create(null),Uq=class{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new iNe(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;r--){let i=t<0?Xq(e.node(0),e.node(r),e.before(r+1),e.index(r),t,n):Xq(e.node(0),e.node(r),e.after(r+1),e.index(r)+1,t,n);if(i)return i}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new Yq(e.node(0))}static atStart(e){return Xq(e,e,0,0,1)||new Yq(e)}static atEnd(e){return Xq(e,e,e.content.size,e.childCount,-1)||new Yq(e)}static fromJSON(e,t){if(!t||!t.type)throw RangeError(`Invalid input for Selection.fromJSON`);let n=Hq[t.type];if(!n)throw RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Hq)throw RangeError(`Duplicate use of selection JSON ID `+e);return Hq[e]=t,t.prototype.jsonID=e,t}getBookmark(){return Kq.between(this.$anchor,this.$head).getBookmark()}};Uq.prototype.visible=!0;var iNe=class{constructor(e,t){this.$from=e,this.$to=t}},Wq=!1;function Gq(e){!Wq&&!e.parent.inlineContent&&(Wq=!0,console.warn(`TextSelection endpoint not pointing into a node with inline content (`+e.parent.type.name+`)`))}var Kq=class e extends Uq{constructor(e,t=e){Gq(e),Gq(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let r=t.resolve(n.map(this.head));if(!r.parent.inlineContent)return Uq.near(r);let i=t.resolve(n.map(this.anchor));return new e(i.parent.inlineContent?i:r,r)}replace(e,t=sK.empty){if(super.replace(e,t),t==sK.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(t){return t instanceof e&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new qq(this.anchor,this.head)}toJSON(){return{type:`text`,anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!=`number`||typeof n.head!=`number`)throw RangeError(`Invalid input for TextSelection.fromJSON`);return new e(t.resolve(n.anchor),t.resolve(n.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(t,n,r){let i=t.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let e=Uq.findFrom(n,r,!0)||Uq.findFrom(n,-r,!0);if(e)n=e.$head;else return Uq.near(n,r)}return t.parent.inlineContent||(i==0?t=n:(t=(Uq.findFrom(t,-r,!0)||Uq.findFrom(t,r,!0)).$anchor,t.pos0?0:1);i>0?o=0;o+=i){let r=t.child(o);if(!r.isAtom){let t=Xq(e,r,n+i,i<0?r.childCount:0,i,a);if(t)return t}else if(!a&&Jq.isSelectable(r))return Jq.create(e,n-(i<0?r.nodeSize:0));n+=r.nodeSize*i}return null}function Zq(e,t,n){let r=e.steps.length-1;if(r{o??=r}),e.setSelection(Uq.near(e.doc.resolve(o),n))}var Qq=1,$q=2,eJ=4,sNe=class extends Vq{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=$q,this}ensureMarks(e){return aK.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&$q)>0}addStep(e,t){super.addStep(e,t),this.updated&=-3,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||aK.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(t==null)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(n??=t,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),!this.selection.empty&&this.selection.to==t+e.length&&this.setSelection(Uq.near(this.selection.$to)),this}}setMeta(e,t){return this.meta[typeof e==`string`?e:e.key]=t,this}getMeta(e){return this.meta[typeof e==`string`?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=eJ,this}get scrolledIntoView(){return(this.updated&eJ)>0}};function tJ(e,t){return!t||!e?e:e.bind(t)}var nJ=class{constructor(e,t,n){this.name=e,this.init=tJ(t.init,n),this.apply=tJ(t.apply,n)}},cNe=[new nJ(`doc`,{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new nJ(`selection`,{init(e,t){return e.selection||Uq.atStart(t.doc)},apply(e){return e.selection}}),new nJ(`storedMarks`,{init(e){return e.storedMarks||null},apply(e,t,n,r){return r.selection.$cursor?e.storedMarks:null}}),new nJ(`scrollToSelection`,{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}})],rJ=class{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=cNe.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw RangeError(`Adding different instances of a keyed plugin (`+e.key+`)`);this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new nJ(e.key,e.spec.state,e))})}},iJ=class e{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;ne.toJSON())),e&&typeof e==`object`)for(let n in e){if(n==`doc`||n==`selection`)throw RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(t,n,r){if(!n)throw RangeError(`Invalid input for EditorState.fromJSON`);if(!t.schema)throw RangeError(`Required config field 'schema' missing`);let i=new rJ(t.schema,t.plugins),a=new e(i);return i.fields.forEach(e=>{if(e.name==`doc`)a.doc=xK.fromJSON(t.schema,n.doc);else if(e.name==`selection`)a.selection=Uq.fromJSON(a.doc,n.selection);else if(e.name==`storedMarks`)n.storedMarks&&(a.storedMarks=n.storedMarks.map(t.schema.markFromJSON));else{if(r)for(let i in r){let o=r[i],s=o.spec.state;if(o.key==e.name&&s&&s.fromJSON&&Object.prototype.hasOwnProperty.call(n,i)){a[e.name]=s.fromJSON.call(o,t,n[i],a);return}}a[e.name]=e.init(t,a)}}),a}};function aJ(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):r==`handleDOMEvents`&&(i=aJ(i,t,{})),n[r]=i}return n}var oJ=class{constructor(e){this.spec=e,this.props={},e.props&&aJ(e.props,this,this.props),this.key=e.key?e.key.key:cJ(`plugin`)}getState(e){return e[this.key]}},sJ=Object.create(null);function cJ(e){return e in sJ?e+`$`+ ++sJ[e]:(sJ[e]=0,e+`$`)}var lJ=class{constructor(e=`key`){this.key=cJ(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}},uJ=(e,t)=>e.selection.empty?!1:(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function dJ(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`backward`,e):n.parentOffset>0)?null:n}var fJ=(e,t,n)=>{let r=dJ(e,n);if(!r)return!1;let i=gJ(r);if(!i){let n=r.blockRange(),i=n&&vq(n);return i==null?!1:(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let a=i.nodeBefore;if(EJ(e,i,t,-1))return!0;if(r.parent.content.size==0&&(mJ(a,`end`)||Jq.isSelectable(a)))for(let n=r.depth;;n--){let o=Oq(e.doc,r.before(n),r.after(n),sK.empty);if(o&&o.slice.size1)break}return a.isAtom&&i.depth==r.depth-1?(t&&t(e.tr.delete(i.pos-a.nodeSize,i.pos).scrollIntoView()),!0):!1},lNe=(e,t,n)=>{let r=dJ(e,n);if(!r)return!1;let i=gJ(r);return i?pJ(e,i,t):!1},uNe=(e,t,n)=>{let r=_J(e,n);if(!r)return!1;let i=bJ(r);return i?pJ(e,i,t):!1};function pJ(e,t,n){let r=t.nodeBefore,i=t.pos-1;for(;!r.isTextblock;i--){if(r.type.spec.isolating)return!1;let e=r.lastChild;if(!e)return!1;r=e}let a=t.nodeAfter,o=t.pos+1;for(;!a.isTextblock;o++){if(a.type.spec.isolating)return!1;let e=a.firstChild;if(!e)return!1;a=e}let s=Oq(e.doc,i,o,sK.empty);if(!s||s.from!=i||s instanceof mq&&s.slice.size>=o-i)return!1;if(n){let t=e.tr.step(s);t.setSelection(Kq.create(t.doc,i)),n(t.scrollIntoView())}return!0}function mJ(e,t,n=!1){for(let r=e;r;r=t==`start`?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}var hJ=(e,t,n)=>{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`backward`,e):r.parentOffset>0)return!1;a=gJ(r)}let o=a&&a.nodeBefore;return!o||!Jq.isSelectable(o)?!1:(t&&t(e.tr.setSelection(Jq.create(e.doc,a.pos-o.nodeSize)).scrollIntoView()),!0)};function gJ(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function _J(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock(`forward`,e):n.parentOffset{let r=_J(e,n);if(!r)return!1;let i=bJ(r);if(!i)return!1;let a=i.nodeAfter;if(EJ(e,i,t,1))return!0;if(r.parent.content.size==0&&(mJ(a,`start`)||Jq.isSelectable(a))){let n=Oq(e.doc,r.before(),r.after(),sK.empty);if(n&&n.slice.size{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock(`forward`,e):r.parentOffset=0;t--){let n=e.node(t);if(e.index(t)+1{let n=e.selection,r=n instanceof Jq,i;if(r){if(n.node.isTextblock||!wq(e.doc,n.from))return!1;i=n.from}else if(i=Eq(e.doc,n.from,-1),i==null)return!1;if(t){let n=e.tr.join(i);r&&n.setSelection(Jq.create(n.doc,i-e.doc.resolve(i).nodeBefore.nodeSize)),t(n.scrollIntoView())}return!0},fNe=(e,t)=>{let n=e.selection,r;if(n instanceof Jq){if(n.node.isTextblock||!wq(e.doc,n.to))return!1;r=n.to}else if(r=Eq(e.doc,n.to,1),r==null)return!1;return t&&t(e.tr.join(r).scrollIntoView()),!0},pNe=(e,t)=>{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),a=i&&vq(i);return a==null?!1:(t&&t(e.tr.lift(i,a).scrollIntoView()),!0)},xJ=(e,t)=>{let{$head:n,$anchor:r}=e.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(t&&t(e.tr.insertText(` +`).scrollIntoView()),!0)};function SJ(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),a=n.indexAfter(-1),o=SJ(i.contentMatchAt(a));if(!o||!i.canReplaceWith(a,a,o))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,o.createAndFill());i.setSelection(Uq.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0},wJ=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof Yq||r.parent.inlineContent||i.parent.inlineContent)return!1;let a=SJ(i.parent.contentMatchAt(i.indexAfter()));if(!a||!a.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(Cq(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&vq(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)};function mNe(e){return(t,n)=>{if(t.selection instanceof Jq&&t.selection.node.isBlock){let{$from:e}=t.selection;return!e.parentOffset||!Cq(t.doc,e.pos)?!1:(n&&n(t.tr.split(e.pos).scrollIntoView()),!0)}if(!t.selection.$from.depth)return!1;let r=t.tr;!t.selection.empty&&(t.selection instanceof Kq||t.selection instanceof Yq)&&r.deleteSelection();let{$from:i}=r.selection,a=r.steps.length,o=[],s,c,l=!1,u=!1;for(let t=i.depth;;t--)if(i.node(t).isBlock){l=i.end(t)==i.pos+(i.depth-t),u=i.start(t)==i.pos-(i.depth-t),c=SJ(i.node(t-1).contentMatchAt(i.indexAfter(t-1)));let n=e&&e(i.parent,l,i);o.unshift(n||(l&&c?{type:c}:null)),s=t;break}else{if(t==1)return!1;o.unshift(null)}let d=i.pos,f=Cq(r.doc,d,o.length,o);if(f||=(o[0]=c?{type:c}:null,Cq(r.doc,d,o.length,o)),!f)return!1;if(r.split(d,o.length,o),!l&&u&&i.node(s).type!=c){let e=r.mapping.slice(a),t=e.map(i.before(s)),n=r.doc.resolve(t);c&&i.node(s-1).canReplaceWith(n.index(),n.index()+1,c)&&r.setNodeMarkup(e.map(i.before(s)),c)}return n&&n(r.scrollIntoView()),!0}}var hNe=mNe(),gNe=(e,t)=>{let{$from:n,to:r}=e.selection,i,a=n.sharedDepth(r);return a==0?!1:(i=n.before(a),t&&t(e.tr.setSelection(Jq.create(e.doc,i))),!0)},_Ne=(e,t)=>(t&&t(e.tr.setSelection(new Yq(e.doc))),!0);function vNe(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,a=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(a-1,a)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(a,a+1)||!(i.isTextblock||wq(e.doc,t.pos))?!1:(n&&n(e.tr.join(t.pos).scrollIntoView()),!0)}function EJ(e,t,n,r){let i=t.nodeBefore,a=t.nodeAfter,o,s,c=i.type.spec.isolating||a.type.spec.isolating;if(!c&&vNe(e,t,n))return!0;let l=!c&&t.parent.canReplace(t.index(),t.index()+1);if(l&&(o=(s=i.contentMatchAt(i.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=tK.empty;for(let e=o.length-1;e>=0;e--)s=tK.from(o[e].create(null,s));s=tK.from(i.copy(s));let c=e.tr.step(new hq(t.pos-1,r,t.pos,r,new sK(s,1,0),o.length,!0)),l=c.doc.resolve(r+2*o.length);l.nodeAfter&&l.nodeAfter.type==i.type&&wq(c.doc,l.pos)&&c.join(l.pos),n(c.scrollIntoView())}return!0}let u=a.type.spec.isolating||r>0&&c?null:Uq.findFrom(t,1),d=u&&u.$from.blockRange(u.$to),f=d&&vq(d);if(f!=null&&f>=t.depth)return n&&n(e.tr.lift(d,f).scrollIntoView()),!0;if(l&&mJ(a,`start`,!0)&&mJ(i,`end`)){let r=i,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,c=1;for(;!s.isTextblock;s=s.firstChild)c++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=tK.empty;for(let e=o.length-1;e>=0;e--)r=tK.from(o[e].copy(r));n(e.tr.step(new hq(t.pos-o.length,t.pos+a.nodeSize,t.pos+c,t.pos+a.nodeSize-c,new sK(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function DJ(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,a=i.depth;for(;i.node(a).isInline;){if(!a)return!1;a--}return i.node(a).isTextblock?(n&&n(t.tr.setSelection(Kq.create(t.doc,e<0?i.start(a):i.end(a)))),!0):!1}}var OJ=DJ(-1),kJ=DJ(1);function yNe(e,t=null){return function(n,r){let{$from:i,$to:a}=n.selection,o=i.blockRange(a),s=o&&yq(o,e,t);return s?(r&&r(n.tr.wrap(o,s).scrollIntoView()),!0):!1}}function AJ(e,t=null){return function(n,r){let i=!1;for(let r=0;r{if(i)return!1;if(!(!r.isTextblock||r.hasMarkup(e,t)))if(r.type==e)i=!0;else{let t=n.doc.resolve(a),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&t.startIndex==0){if(t.$from.index(t.depth-1)==0)return!1;let e=o.resolve(t.start-2);a=new bK(e,e,t.depth),t.endIndex=0;e--)a=tK.from(n[e].type.create(n[e].attrs,a));e.step(new hq(t.start-(r?2:0),t.end,t.start,t.end,new sK(a,0,0),n.length,!0));let o=0;for(let e=0;et.childCount>0&&t.firstChild.type==e);return a?n?r.node(a.depth-1).type==e?TNe(t,n,e,a):ENe(t,n,a):!0:!1}}function TNe(e,t,n,r){let i=e.tr,a=r.end,o=r.$to.end(r.depth);aa;t--)e-=i.child(t).nodeSize,r.delete(e-1,e+1);let a=r.doc.resolve(n.start),o=a.nodeAfter;if(r.mapping.map(n.end)!=n.start+a.nodeAfter.nodeSize)return!1;let s=n.startIndex==0,c=n.endIndex==i.childCount,l=a.node(-1),u=a.index(-1);if(!l.canReplace(u+ +!s,u+1,o.content.append(c?tK.empty:tK.from(i))))return!1;let d=a.pos,f=d+o.nodeSize;return r.step(new hq(d-+!!s,f+ +!!c,d+1,f-1,new sK((s?tK.empty:tK.from(i.copy(tK.empty))).append(c?tK.empty:tK.from(i.copy(tK.empty))),+!s,+!c),+!s)),t(r.scrollIntoView()),!0}function DNe(e){return function(t,n){let{$from:r,$to:i}=t.selection,a=r.blockRange(i,t=>t.childCount>0&&t.firstChild.type==e);if(!a)return!1;let o=a.startIndex;if(o==0)return!1;let s=a.parent,c=s.child(o-1);if(c.type!=e)return!1;if(n){let r=c.lastChild&&c.lastChild.type==s.type,i=tK.from(r?e.create():null),o=new sK(tK.from(e.create(null,tK.from(s.type.create(null,i)))),r?3:1,0),l=a.start,u=a.end;n(t.tr.step(new hq(l-(r?3:1),u,l,u,o,1,!0)).scrollIntoView())}return!0}}var FJ=function(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t},IJ=function(e){let t=e.assignedSlot||e.parentNode;return t&&t.nodeType==11?t.host:t},LJ=null,RJ=function(e,t,n){let r=LJ||=document.createRange();return r.setEnd(e,n??e.nodeValue.length),r.setStart(e,t||0),r},ONe=function(){LJ=null},zJ=function(e,t,n,r){return n&&(BJ(e,t,n,r,-1)||BJ(e,t,n,r,1))},kNe=/^(img|br|input|textarea|hr)$/i;function BJ(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:VJ(e))){let n=e.parentNode;if(!n||n.nodeType!=1||HJ(e)||kNe.test(e.nodeName)||e.contentEditable==`false`)return!1;t=FJ(e)+(i<0?0:1),e=n}else if(e.nodeType==1){let n=e.childNodes[t+(i<0?-1:0)];if(n.nodeType==1&&n.contentEditable==`false`)if(n.pmViewDesc?.ignoreForSelection)t+=i;else return!1;else e=n,t=i<0?VJ(e):0}else return!1}}function VJ(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function ANe(e,t){for(;;){if(e.nodeType==3&&t)return e;if(e.nodeType==1&&t>0){if(e.contentEditable==`false`)return null;e=e.childNodes[t-1],t=VJ(e)}else if(e.parentNode&&!HJ(e))t=FJ(e),e=e.parentNode;else return null}}function jNe(e,t){for(;;){if(e.nodeType==3&&t2),aY=iY||(GJ?/Mac/.test(GJ.platform):!1),oY=GJ?/Win/.test(GJ.platform):!1,sY=/Android \d/.test(qJ),cY=!!KJ&&`webkitFontSmoothing`in KJ.documentElement.style,FNe=cY?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function INe(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function lY(e,t){return typeof e==`number`?e:e[t]}function LNe(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function uY(e,t,n){if(!_Y(t)&&t.left==0)return;let r=e.someProp(`scrollThreshold`)||0,i=e.someProp(`scrollMargin`)||5,a=e.dom.ownerDocument;for(let o=n||e.dom;o;){if(o.nodeType!=1){o=IJ(o);continue}let e=o,n=e==a.body,s=n?INe(a):LNe(e),c=0,l=0;if(t.tops.bottom-lY(r,`bottom`)&&(l=t.bottom-t.top>s.bottom-s.top?t.top+lY(i,`top`)-s.top:t.bottom-s.bottom+lY(i,`bottom`)),t.lefts.right-lY(r,`right`)&&(c=t.right-s.right+lY(i,`right`)),c||l)if(n)a.defaultView.scrollBy(c,l);else{let n=e.scrollLeft,r=e.scrollTop;l&&(e.scrollTop+=l),c&&(e.scrollLeft+=c);let i=e.scrollLeft-n,a=e.scrollTop-r;t={left:t.left-i,top:t.top-a,right:t.right-i,bottom:t.bottom-a}}let u=n?`fixed`:getComputedStyle(o).position;if(/^(fixed|sticky)$/.test(u))break;o=u==`absolute`?o.offsetParent:IJ(o)}}function RNe(e){let t=e.dom.getBoundingClientRect(),n=Math.max(0,t.top),r,i;for(let a=(t.left+t.right)/2,o=n+1;o=n-20){r=t,i=s.top;break}}return{refDOM:r,refTop:i,stack:dY(e.dom)}}function dY(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=IJ(r));return t}function zNe({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;fY(n,r==0?0:r-t)}function fY(e,t){for(let n=0;n=s){o=Math.max(p.bottom,o),s=Math.min(p.top,s);let e=p.left>t.left?p.left-t.left:p.right=(p.left+p.right)/2));continue}}else p.top>t.top&&!c&&p.left<=t.left&&p.right>=t.left&&(c=u,l={left:Math.max(p.left,Math.min(p.right,t.left)),top:p.top});!n&&(t.left>=p.right&&t.top>=p.top||t.left>=p.left&&t.top>=p.bottom)&&(a=d+1)}}return!n&&c&&(n=c,i=l,r=0),n&&n.nodeType==3?VNe(n,i):!n||r&&n.nodeType==1?{node:e,offset:a}:mY(n,i)}function VNe(e,t){let n=e.nodeValue.length,r=document.createRange(),i;for(let a=0;a=(n.left+n.right)/2)};break}}return r.detach(),i||{node:e,offset:0}}function hY(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function HNe(e,t){let n=e.parentNode;return n&&/^li$/i.test(n.nodeName)&&t.left(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,a)}function WNe(e,t,n,r){let i=-1;for(let n=t,a=!1;n!=e.dom;){let t=e.docView.nearestDesc(n,!0),o;if(!t)return null;if(t.dom.nodeType==1&&(t.node.isBlock&&t.parent||!t.contentDOM)&&((o=t.dom.getBoundingClientRect()).width||o.height)&&(t.node.isBlock&&t.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(t.dom.nodeName)&&(!a&&o.left>r.left||o.top>r.top?i=t.posBefore:(!a&&o.right-1?i:e.docView.posFromDOM(t,n,-1)}function gY(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let n;cY&&i&&r.nodeType==1&&(n=r.childNodes[i-1]).nodeType==1&&n.contentEditable==`false`&&n.getBoundingClientRect().top>=t.top&&i--,r==e.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&t.top>r.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!=`BR`)&&(s=WNe(e,r,i,t))}s??=UNe(e,o,t);let c=e.docView.nearestDesc(o,!0);return{pos:s,inside:c?c.posAtStart-c.border:-1}}function _Y(e){return e.top=0&&i==r.nodeValue.length?(e--,a=1):n<0?e--:t++,bY(vY(RJ(r,e,t),a),a<0)}if(!e.state.doc.resolve(t-(a||0)).parent.inlineContent){if(a==null&&i&&(n<0||i==VJ(r))){let e=r.childNodes[i-1];if(e.nodeType==1)return xY(e.getBoundingClientRect(),!1)}if(a==null&&i=0)}if(a==null&&i&&(n<0||i==VJ(r))){let e=r.childNodes[i-1],t=e.nodeType==3?RJ(e,VJ(e)-+!o):e.nodeType==1&&(e.nodeName!=`BR`||!e.nextSibling)?e:null;if(t)return bY(vY(t,1),!1)}if(a==null&&i=0)}function bY(e,t){if(e.width==0)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function xY(e,t){if(e.height==0)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function SY(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}function qNe(e,t,n){let r=t.selection,i=n==`up`?r.$from:r.$to;return SY(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,n==`up`?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=yY(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(e.nodeType==1)t=e.getClientRects();else if(e.nodeType==3)t=RJ(e,0,e.nodeValue.length).getClientRects();else continue;for(let e=0;ei.top+1&&(n==`up`?r.top-i.top>(i.bottom-r.top)*2:i.bottom-r.bottom>(r.bottom-i.top)*2))return!1}}return!0})}var JNe=/[\u0590-\u08ac]/;function YNe(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,a=!i,o=i==r.parent.content.size,s=e.domSelection();return s?!JNe.test(r.parent.textContent)||!s.modify?n==`left`||n==`backward`?a:o:SY(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:a,anchorOffset:o}=e.domSelectionRange(),c=s.caretBidiLevel;s.modify(`move`,n,`character`);let l=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:u,focusOffset:d}=e.domSelectionRange(),f=u&&!l.contains(u.nodeType==1?u:u.parentNode)||t==u&&i==d;try{s.collapse(a,o),t&&(t!=a||i!=o)&&s.extend&&s.extend(t,i)}catch{}return c!=null&&(s.caretBidiLevel=c),f}):r.pos==r.start()||r.pos==r.end()}var CY=null,wY=null,TY=!1;function XNe(e,t,n){return CY==t&&wY==n?TY:(CY=t,wY=n,TY=n==`up`||n==`down`?qNe(e,t,n):YNe(e,t,n))}var EY=0,DY=1,OY=2,kY=3,AY=class{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=EY,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(e){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tFJ(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(t==0)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(r==null&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return r??n>0?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i=this.getDesc(r),a;if(i&&(!t||i.node))if(n&&(a=i.nodeDOM)&&!(a.nodeType==1?a.contains(e.nodeType==1?e:e.parentNode):a==e))n=!1;else return i}}getDesc(e){let t=e.pmViewDesc;for(let e=t;e;e=e.parent)if(e==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||i instanceof IY){r=e-t;break}t=a}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let e;n&&!(e=this.children[n-1]).size&&e instanceof jY&&e.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,!(!e||e.dom.parentNode==this.contentDOM);n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?FJ(e.dom)+1:0}}else{let e,r=!0;for(;e=n=i&&t<=s-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=a;for(let t=o;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=FJ(n.dom)+1;break}e-=n.size}r==-1&&(r=0)}if(r>-1&&(s>t||o==this.children.length-1)){t=s;for(let e=o+1;es&&at){let e=o;o=s,s=e}let n=document.createRange();n.setEnd(s.node,s.offset),n.setStart(o.node,o.offset),c.removeAllRanges(),c.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&e.type!=`selection`}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r=n:en){let r=n+i.border,o=a-i.border;if(e>=r&&t<=o){this.dirty=e==n||t==a?OY:DY,e==r&&t==o&&(i.contentLost||i.dom.parentNode!=this.contentDOM)?i.dirty=kY:i.markDirty(e-r,t-r);return}else i.dirty=i.dom==i.contentDOM&&i.dom.parentNode==this.contentDOM&&!i.children.length?OY:kY}n=a}this.dirty=OY}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=e==1?OY:DY;t.dirty{if(!i)return r;if(i.parent)return i.parent.posBeforeChild(i)})),!t.type.spec.raw){if(a.nodeType!=1){let e=document.createElement(`span`);e.appendChild(a),a=e}a.hasAttribute(`contenteditable`)||(a.contentEditable=`false`),a.classList.add(`ProseMirror-widget`)}super(e,[],a,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return this.dirty==EY&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return t?t(e):!1}ignoreMutation(e){return e.type!=`selection`||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}},ZNe=class extends AY{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e==this.textDOM?this.posAtStart+t:this.posAtStart+(t?this.size:0)}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type===`characterData`&&e.target.nodeValue==e.oldValue}},MY=class e extends AY{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(t,n,r,i){let a=i.nodeViews[n.type.name],o=a&&a(n,i,r);return(!o||!o.dom)&&(o=qK.renderSpec(document,n.type.spec.toDOM(n,r),null,n.attrs)),new e(t,n,o.dom,o.contentDOM||o.dom,o)}parseRule(){return this.dirty&kY||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=kY&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),this.dirty!=EY){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty0&&(a=GY(a,0,t,r));for(let e=0;e{if(!c)return o;if(c.parent)return c.parent.posBeforeChild(c)},r,i),u=l&&l.dom,d=l&&l.contentDOM;if(n.isText){if(!u)u=document.createTextNode(n.text);else if(u.nodeType!=3)throw RangeError(`Text must be rendered as a DOM text node`)}else if(!u){let e=qK.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs);({dom:u,contentDOM:d}=e)}!d&&!n.isText&&u.nodeName!=`BR`&&(u.hasAttribute(`contenteditable`)||(u.contentEditable=`false`),n.type.spec.draggable&&(u.draggable=!0));let f=u;return u=HY(u,r,n),l?c=new QNe(t,n,r,i,u,d||null,f,l):n.isText?new FY(t,n,r,i,u,f):new e(t,n,r,i,u,d||null,f)}parseRule(e){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace==`pre`&&(t.preserveWhitespace=`full`),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let e=this.children.length-1;e>=0;e--){let n=this.children[e];if(this.dom.contains(n.dom.parentNode)){t.contentElement=n.dom.parentNode;break}}if(!t.contentElement){let n=e&&e.find(t=>t.nodeType==1&&e.indexOf(t.parentNode)<0&&this.dom.contains(t));n?t.contentElement=n:t.getContent=()=>tK.empty}}return t}matchesNode(e,t,n){return this.dirty==EY&&e.eq(this.node)&&UY(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return+!this.node.isLeaf}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,a=i&&i.pos>-1?i:null,o=i&&i.pos<0,s=new ePe(this,a&&a.node,e);rPe(this.node,this.innerDeco,(t,i,a)=>{t.spec.marks?s.syncToMarks(t.spec.marks,n,e,i):t.type.side>=0&&!a&&s.syncToMarks(i==this.node.childCount?aK.none:this.node.child(i).marks,n,e,i),s.placeWidget(t,e,r)},(t,a,c,l)=>{s.syncToMarks(t.marks,n,e,l);let u;s.findNodeMatch(t,a,c,l)||o&&e.state.selection.from>r&&e.state.selection.to-1&&s.updateNodeAt(t,a,c,u,e)||s.updateNextNode(t,a,c,e,l,r)||s.addNode(t,a,c,e,r),r+=t.nodeSize}),s.syncToMarks([],n,e,0),this.node.isTextblock&&s.addTextblockHacks(),s.destroyRest(),(s.changed||this.dirty==OY)&&(a&&this.protectLocalComposition(e,a),LY(this.contentDOM,this.children,e),iY&&iPe(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof Kq)||nt+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,a=aPe(this.node.content,e,n-t,r-t);return a<0?null:{node:i,pos:a,text:e}}else return{node:i,pos:-1,text:``}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&=void 0}let a=new ZNe(this,i,t,r);e.input.compositionNodes.push(a),this.children=GY(this.children,n,n+r.length,e,a)}update(e,t,n,r){return this.dirty==kY||!e.sameMarkup(this.node)?!1:(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=EY}updateOuterDeco(e){if(UY(e,this.outerDeco))return;let t=this.nodeDOM.nodeType!=1,n=this.dom;this.dom=VY(this.dom,this.nodeDOM,BY(this.outerDeco,this.node,t),BY(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove(`ProseMirror-selectednode`),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute(`draggable`))}get domAtom(){return this.node.isAtom}};function PY(e,t,n,r,i){HY(r,t,e);let a=new NY(void 0,e,t,n,r,r,r);return a.contentDOM&&a.updateChildren(i,0),a}var FY=class e extends NY{constructor(e,t,n,r,i,a){super(e,t,n,r,i,null,a)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return this.dirty==kY||this.dirty!=EY&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(t),(this.dirty!=EY||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=EY,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return e.type!=`characterData`&&e.type!=`selection`}slice(t,n,r){let i=this.node.cut(t,n),a=document.createTextNode(i.text);return new e(this.parent,i,this.outerDeco,this.innerDeco,a,a)}markDirty(e,t){super.markDirty(e,t),this.dom!=this.nodeDOM&&(e==0||t==this.nodeDOM.nodeValue.length)&&(this.dirty=kY)}get domAtom(){return!1}isText(e){return this.node.text==e}},IY=class extends AY{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==EY&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName==`IMG`}},QNe=class extends NY{constructor(e,t,n,r,i,a,o,s){super(e,t,n,r,i,a,o),this.spec=s}update(e,t,n,r){if(this.dirty==kY)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}else if(!this.contentDOM&&!e.isLeaf)return!1;else return super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}};function LY(e,t,n){let r=e.firstChild,i=!1;for(let a=0;a>1,o=Math.min(a,e.length);for(;i-1)i>this.index&&(this.changed=!0,this.destroyBetween(this.index,i)),this.top=this.top.children[this.index];else{let r=MY.create(this.top,e[a],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,a++}}findNodeMatch(e,t,n,r){let i=-1,a;if(r>=this.preMatch.index&&(a=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&a.matchesNode(e,t,n))i=this.top.children.indexOf(a,this.index);else for(let r=this.index,a=Math.min(this.top.children.length,r+5);r0;){let s;for(;;)if(r){let e=n.children[r-1];if(e instanceof MY)n=e,r=e.children.length;else{s=e,r--;break}}else if(n==t)break outer;else r=n.parent.children.indexOf(n),n=n.parent;let c=s.node;if(c){if(c!=e.child(i-1))break;--i,a.set(s,i),o.push(s)}}return{index:i,matched:a,matches:o.reverse()}}function nPe(e,t){return e.type.side-t.type.side}function rPe(e,t,n,r){let i=t.locals(e),a=0;if(i.length==0){for(let n=0;na;)s.push(i[o++]);let m=a+f.nodeSize;if(f.isText){let e=m;o!e.inline):s.slice();r(f,h,t.forChild(a,f),p),a=m}}function iPe(e){if(e.nodeName==`UL`||e.nodeName==`OL`){let t=e.style.cssText;e.style.cssText=t+`; list-style: square !important`,window.getComputedStyle(e).listStyle,e.style.cssText=t}}function aPe(e,t,n,r){for(let i=0,a=0;i=n){if(a>=r&&c.slice(r-t.length-s,r-s)==t)return r-t.length;let e=s=0&&e+t.length+s>=n)return s+e;if(n==r&&c.length>=r+t.length-s&&c.slice(r-s,r-s+t.length)==t)return r}}return-1}function GY(e,t,n,r,i){let a=[];for(let o=0,s=0;o=n||u<=t?a.push(c):(ln&&a.push(c.slice(n-l,c.size,r)))}return a}function KY(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),a=i&&i.size==0,o=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let s=r.resolve(o),c,l;if(UJ(n)){for(c=o;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&Jq.isSelectable(e)&&i.parent&&!(e.isInline&&MNe(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;l=new Jq(o==e?s:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=o,i=o;for(let r=0;r{(n.anchorNode!=r||n.anchorOffset!=i)&&(t.removeEventListener(`selectionchange`,e.input.hideSelectionGuard),setTimeout(()=>{(!qY(e)||e.state.selection.visible)&&e.dom.classList.remove(`ProseMirror-hideselection`)},20))})}function sPe(e){let t=e.domSelection();if(!t)return;let n=e.cursorWrapper.dom,r=n.nodeName==`IMG`;r?t.collapse(n.parentNode,FJ(n)+1):t.collapse(n,0),!r&&!e.state.selection.visible&&ZJ&&QJ<=11&&(n.disabled=!0,n.disabled=!1)}function $Y(e,t){if(t instanceof Jq){let n=e.docView.descAt(t.from);n!=e.lastSelectedViewDesc&&(eX(e),n&&n.selectNode(),e.lastSelectedViewDesc=n)}else eX(e)}function eX(e){e.lastSelectedViewDesc&&=(e.lastSelectedViewDesc.parent&&e.lastSelectedViewDesc.deselectNode(),void 0)}function tX(e,t,n,r){return e.someProp(`createSelectionBetween`,r=>r(e,t,n))||Kq.between(t,n,r)}function nX(e){return e.editable&&!e.hasFocus()?!1:rX(e)}function rX(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(t.anchorNode.nodeType==3?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(t.focusNode.nodeType==3?t.focusNode.parentNode:t.focusNode))}catch{return!1}}function cPe(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return zJ(t.node,t.offset,n.anchorNode,n.anchorOffset)}function iX(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),a=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return a&&Uq.findFrom(a,t)}function aX(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function oX(e,t,n){let r=e.state.selection;if(r instanceof Kq){if(n.indexOf(`s`)>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let a=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return aX(e,new Kq(r.$anchor,a))}else if(!r.empty)return!1;else if(e.endOfTextblock(t>0?`forward`:`backward`)){let n=iX(e.state,t);return n&&n instanceof Jq?aX(e,n):!1}else if(!(aY&&n.indexOf(`m`)>-1)){let n=r.$head,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter,a;if(!i||i.isText)return!1;let o=t<0?n.pos-i.nodeSize:n.pos;return i.isAtom||(a=e.docView.descAt(o))&&!a.contentDOM?Jq.isSelectable(i)?aX(e,new Jq(t<0?e.state.doc.resolve(n.pos-i.nodeSize):n)):cY?aX(e,new Kq(e.state.doc.resolve(t<0?o:o+i.nodeSize))):!1:!1}}else if(r instanceof Jq&&r.node.isInline)return aX(e,new Kq(t>0?r.$to:r.$from));else{let n=iX(e.state,t);return n?aX(e,n):!1}}function sX(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function cX(e,t){let n=e.pmViewDesc;return n&&n.size==0&&(t<0||e.nextSibling||e.nodeName!=`BR`)}function lX(e,t){return t<0?lPe(e):uPe(e)}function lPe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,a,o=!1;for($J&&n.nodeType==1&&r0){if(n.nodeType!=1)break;{let e=n.childNodes[r-1];if(cX(e,-1))i=n,a=--r;else if(e.nodeType==3)n=e,r=n.nodeValue.length;else break}}else if(uX(n))break;else{let t=n.previousSibling;for(;t&&cX(t,-1);)i=n.parentNode,a=FJ(t),t=t.previousSibling;if(t)n=t,r=sX(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}o?dX(e,n,r):i&&dX(e,i,a)}function uPe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i=sX(n),a,o;for(;;)if(r{e.state==i&&JY(e)},50)}function fX(e,t){let n=e.state.doc.resolve(t);if(!(tY||oY)&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i1)return n.leftr.top&&i1)return n.left>r.left?`ltr`:`rtl`}}return getComputedStyle(e.dom).direction==`rtl`?`rtl`:`ltr`}function pX(e,t,n){let r=e.state.selection;if(r instanceof Kq&&!r.empty||n.indexOf(`s`)>-1||aY&&n.indexOf(`m`)>-1)return!1;let{$from:i,$to:a}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?`up`:`down`)){let n=iX(e.state,t);if(n&&n instanceof Jq)return aX(e,n)}if(!i.parent.inlineContent){let n=t<0?i:a,o=r instanceof Yq?Uq.near(n,t):Uq.findFrom(n,t);return o?aX(e,o):!1}return!1}function mX(e,t){if(!(e.state.selection instanceof Kq))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?`forward`:`backward`))return!0;let a=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(a&&!a.isText){let r=e.state.tr;return t<0?r.delete(n.pos-a.nodeSize,n.pos):r.delete(n.pos,n.pos+a.nodeSize),e.dispatch(r),!0}return!1}function hX(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function pPe(e){if(!rY||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&t.nodeType==1&&n==0&&t.firstChild&&t.firstChild.contentEditable==`false`){let n=t.firstChild;hX(e,n,`true`),setTimeout(()=>hX(e,n,`false`),20)}return!1}function mPe(e){let t=``;return e.ctrlKey&&(t+=`c`),e.metaKey&&(t+=`m`),e.altKey&&(t+=`a`),e.shiftKey&&(t+=`s`),t}function hPe(e,t){let n=t.keyCode,r=mPe(t);if(n==8||aY&&n==72&&r==`c`)return mX(e,-1)||lX(e,-1);if(n==46&&!t.shiftKey||aY&&n==68&&r==`c`)return mX(e,1)||lX(e,1);if(n==13||n==27)return!0;if(n==37||aY&&n==66&&r==`c`){let t=n==37?fX(e,e.state.selection.from)==`ltr`?-1:1:-1;return oX(e,t,r)||lX(e,t)}else if(n==39||aY&&n==70&&r==`c`){let t=n==39?fX(e,e.state.selection.from)==`ltr`?1:-1:1;return oX(e,t,r)||lX(e,t)}else if(n==38||aY&&n==80&&r==`c`)return pX(e,-1,r)||lX(e,-1);else if(n==40||aY&&n==78&&r==`c`)return pPe(e)||pX(e,1,r)||lX(e,1);else if(r==(aY?`m`:`c`)&&(n==66||n==73||n==89||n==90))return!0;return!1}function gX(e,t){e.someProp(`transformCopied`,n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:a}=t;for(;i>1&&a>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,a--;let e=r.firstChild;n.push(e.type.name,e.attrs==e.type.defaultAttrs?null:e.attrs),r=e.content}let o=e.someProp(`clipboardSerializer`)||qK.fromSchema(e.state.schema),s=wX(),c=s.createElement(`div`);c.appendChild(o.serializeFragment(r,{document:s}));let l=c.firstChild,u,d=0;for(;l&&l.nodeType==1&&(u=CX[l.nodeName.toLowerCase()]);){for(let e=u.length-1;e>=0;e--){let t=s.createElement(u[e]);for(;c.firstChild;)t.appendChild(c.firstChild);c.appendChild(t),d++}l=c.firstChild}return l&&l.nodeType==1&&l.setAttribute(`data-pm-slice`,`${i} ${a}${d?` -${d}`:``} ${JSON.stringify(n)}`),{dom:c,text:e.someProp(`clipboardTextSerializer`,n=>n(t,e))||t.content.textBetween(0,t.content.size,` `),slice:t}}function _X(e,t,n,r,i){let a=i.parent.type.spec.code,o,s;if(!n&&!t)return null;let c=!!t&&(r||a||!n);if(c){if(e.someProp(`transformPastedText`,n=>{t=n(t,a||r,e)}),a)return s=new sK(tK.from(e.state.schema.text(t.replace(/\r\n?/g,` -`))),0,0),e.someProp(`transformPasted`,t=>{s=t(s,e,!0)}),s;let n=e.someProp(`clipboardTextParser`,n=>n(t,i,r,e));if(n)s=n;else{let n=i.marks(),{schema:r}=e.state,a=qK.fromSchema(r);o=document.createElement(`div`),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=o.appendChild(document.createElement(`p`));e&&t.appendChild(a.serializeNode(r.text(e,n)))})}}else e.someProp(`transformPastedHTML`,t=>{n=t(n,e)}),o=vPe(n),cY&&yPe(o);let l=o&&o.querySelector(`[data-pm-slice]`),u=l&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(l.getAttribute(`data-pm-slice`)||``);if(u&&u[3])for(let e=+u[3];e>0;e--){let e=o.firstChild;for(;e&&e.nodeType!=1;)e=e.nextSibling;if(!e)break;o=e}if(s||=(e.someProp(`clipboardParser`)||e.someProp(`domParser`)||IK.fromSchema(e.state.schema)).parseSlice(o,{preserveWhitespace:!!(c||u),context:i,ruleFromNode(e){return e.nodeName==`BR`&&!e.nextSibling&&e.parentNode&&!hPe.test(e.parentNode.nodeName)?{ignore:!0}:null}}),u)s=bPe(SX(s,+u[1],+u[2]),u[4]);else if(s=sK.maxOpen(gPe(s.content,i),!0),s.openStart||s.openEnd){let e=0,t=0;for(let t=s.content.firstChild;e{s=t(s,e,c)}),s}var hPe=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function gPe(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.index(n)),i,a=[];if(e.forEach(e=>{if(!a)return;let t=r.findWrapping(e.type),n;if(!t)return a=null;if(n=a.length&&i.length&&yX(t,i,e,a[a.length-1],0))a[a.length-1]=n;else{a.length&&(a[a.length-1]=bX(a[a.length-1],i.length));let n=vX(e,t);a.push(n),r=r.matchType(n.type),i=t}}),a)return tK.from(a)}return e}function vX(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,tK.from(e));return e}function yX(e,t,n,r,i){if(i1&&(a=0),i=n&&(s=t<0?o.contentMatchAt(0).fillBefore(s,a<=i).append(s):s.append(o.contentMatchAt(o.childCount).fillBefore(tK.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,o.copy(s))}function SX(e,t,n){return te})}return TX.createHTML(e)}function vPe(e){let t=/^(\s*]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=wX(),r=n.body,i=/<([a-z][^>\s]+)/i.exec(e),a;if((a=i&&CX[i[1].toLowerCase()])&&(e=a.map(e=>`<`+e+`>`).join(``)+e+a.map(e=>``).reverse().join(``)),r.innerHTML=_Pe(e),a)for(let e=0;e=0;e-=2){let t=n.nodes[r[e]];if(!t||t.hasRequiredAttrs())break;try{t.checkAttrs(r[e+1])}catch{break}i=tK.from(t.create(r[e+1],i)),a++,o++}return new sK(i,a,o)}var EX={},DX={},xPe={touchstart:!0,touchmove:!0},SPe=class{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:``,button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}};function CPe(e){for(let t in EX){let n=EX[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{TPe(e,t)&&!AX(e,t)&&(e.editable||!(t.type in DX))&&n(e,t)},xPe[t]?{passive:!0}:void 0)}rY&&e.dom.addEventListener(`input`,()=>null),kX(e)}function OX(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function wPe(e){e.input.mouseDown&&e.input.mouseDown.done(),e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}function kX(e){e.someProp(`handleDOMEvents`,t=>{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>AX(e,t))})}function AX(e,t){return e.someProp(`handleDOMEvents`,n=>{let r=n[t.type];return r?r(e,t)||t.defaultPrevented:!1})}function TPe(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function EPe(e,t){!AX(e,t)&&EX[t.type]&&(e.editable||!(t.type in DX))&&EX[t.type](e,t)}DX.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=n.keyCode==16||n.shiftKey,!RX(e)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!(sY&&tY&&n.keyCode==13)))if(n.keyCode!=229&&e.domObserver.forceFlush(),iY&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp(`handleKeyDown`,t=>t(e,WJ(13,`Enter`))),e.input.lastIOSEnter=0)},200)}else e.someProp(`handleKeyDown`,t=>t(e,n))||mPe(e,n)?n.preventDefault():OX(e,`key`)},DX.keyup=(e,t)=>{t.keyCode==16&&(e.input.shiftKey=!1)},DX.keypress=(e,t)=>{let n=t;if(RX(e)||!n.charCode||n.ctrlKey&&!n.altKey||aY&&n.metaKey)return;if(e.someProp(`handleKeyPress`,t=>t(e,n))){n.preventDefault();return}let r=e.state.selection;if(!(r instanceof Kq)||!r.$from.sameParent(r.$to)){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();!/[\r\n]/.test(t)&&!e.someProp(`handleTextInput`,n=>n(e,r.$from.pos,r.$to.pos,t,i))&&e.dispatch(i()),n.preventDefault()}};function jX(e){return{left:e.clientX,top:e.clientY}}function DPe(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}function MX(e,t,n,r,i){if(r==-1)return!1;let a=e.state.doc.resolve(r);for(let r=a.depth+1;r>0;r--)if(e.someProp(t,t=>r>a.depth?t(e,n,a.nodeAfter,a.before(r),i,!0):t(e,n,a.node(r),a.before(r),i,!1)))return!0;return!1}function NX(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);n==`pointer`&&r.setMeta(`pointer`,!0),e.dispatch(r)}function OPe(e,t){if(t==-1)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return r&&r.isAtom&&Jq.isSelectable(r)?(NX(e,new Jq(n),`pointer`),!0):!1}function kPe(e,t){if(t==-1)return!1;let n=e.state.selection,r,i;n instanceof Jq&&(r=n.node);let a=e.state.doc.resolve(t);for(let e=a.depth+1;e>0;e--){let t=e>a.depth?a.nodeAfter:a.node(e);if(Jq.isSelectable(t)){i=r&&n.$from.depth>0&&e>=n.$from.depth&&a.before(n.$from.depth+1)==n.$from.pos?a.before(n.$from.depth):a.before(e);break}}return i==null?!1:(NX(e,Jq.create(e.state.doc,i),`pointer`),!0)}function APe(e,t,n,r,i){return MX(e,`handleClickOn`,t,n,r)||e.someProp(`handleClick`,n=>n(e,t,r))||(i?kPe(e,n):OPe(e,n))}function jPe(e,t,n,r){return MX(e,`handleDoubleClickOn`,t,n,r)||e.someProp(`handleDoubleClick`,n=>n(e,t,r))}function MPe(e,t,n,r){return MX(e,`handleTripleClickOn`,t,n,r)||e.someProp(`handleTripleClick`,n=>n(e,t,r))||NPe(e,n,r)}function NPe(e,t,n){if(n.button!=0)return!1;let r=PX(e,t,!0),i=e.state.doc;return r?(NX(e,r,`pointer`),r instanceof Kq&&i.eq(e.state.doc)&&(e.input.mouseDown=new FPe(e,r)),!0):!1}function PX(e,t,n){let r=e.state.doc;if(t==-1)return r.inlineContent?Kq.create(r,0,r.content.size):null;let i=r.resolve(t);for(let e=i.depth+1;e>0;e--){let t=e>i.depth?i.nodeAfter:i.node(e),a=i.before(e);if(t.inlineContent)return Kq.create(r,a+1,a+1+t.content.size);if(n&&Jq.isSelectable(t))return Jq.create(r,a)}return null}function FX(e){return VX(e)}var IX=aY?`metaKey`:`ctrlKey`;EX.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=FX(e),i=Date.now(),a=`singleClick`;i-e.input.lastClick.time<500&&DPe(n,e.input.lastClick)&&!n[IX]&&e.input.lastClick.button==n.button&&(e.input.lastClick.type==`singleClick`?a=`doubleClick`:e.input.lastClick.type==`doubleClick`&&(a=`tripleClick`)),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:a,button:n.button},e.input.mouseDown&&e.input.mouseDown.done();let o=e.posAtCoords(jX(n));o&&(a==`singleClick`?e.input.mouseDown=new PPe(e,o,n,!!r):(a==`doubleClick`?jPe:MPe)(e,o.pos,o.inside,n)?n.preventDefault():OX(e,`pointer`))};var LX=class{constructor(e){this.view=e,this.mightDrag=null,e.root.addEventListener(`mouseup`,this.up=this.up.bind(this)),e.root.addEventListener(`mousemove`,this.move=this.move.bind(this))}up(e){this.done()}move(e){e.buttons==0&&this.done()}done(){this.view.root.removeEventListener(`mouseup`,this.up),this.view.root.removeEventListener(`mousemove`,this.move),this.view.input.mouseDown==this&&(this.view.input.mouseDown=null)}delaySelUpdate(){return!1}},PPe=class extends LX{constructor(e,t,n,r){super(e),this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.startDoc=e.state.doc,this.selectNode=!!n[IX],this.allowDefault=n.shiftKey;let i,a;if(t.inside>-1)i=e.state.doc.nodeAt(t.inside),a=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,a=n.depth?n.before():0}let o=r?null:n.target,s=o?e.docView.nearestDesc(o,!0):null;this.target=s&&s.nodeDOM.nodeType==1?s.nodeDOM:null;let{selection:c}=e.state;n.button==0&&(i.type.spec.draggable&&i.type.spec.selectable!==!1||c instanceof Jq&&c.from<=a&&c.to>a)&&(this.mightDrag={node:i,pos:a,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&$J&&!this.target.hasAttribute(`contentEditable`))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute(`contentEditable`,`false`)},20),this.view.domObserver.start()),OX(e,`pointer`)}done(){super.done(),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute(`draggable`),this.mightDrag.setUneditable&&this.target.removeAttribute(`contentEditable`),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>{this.view.isDestroyed||JY(this.view)})}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(jX(e))),this.updateAllowDefault(e),this.allowDefault||!t?OX(this.view,`pointer`):APe(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||rY&&this.mightDrag&&!this.mightDrag.node.isAtom||tY&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(NX(this.view,Uq.near(this.view.state.doc.resolve(t.pos)),`pointer`),e.preventDefault()):OX(this.view,`pointer`)}move(e){this.updateAllowDefault(e),OX(this.view,`pointer`),super.move(e)}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}delaySelUpdate(){return this.allowDefault?(this.delayedSelectionSync=!0,!0):!1}},FPe=class extends LX{constructor(e,t){super(e),this.startSelection=t,this.startDoc=e.state.doc}move(e){if(e.buttons==0||this.view.isDestroyed||!this.view.state.doc.eq(this.startDoc)){this.done();return}e.preventDefault(),OX(this.view,`pointer`);let t=this.view.posAtCoords(jX(e)),n=t&&PX(this.view,t.inside,!1);if(!n)return;let{doc:r}=this.view.state,i=this.startSelection,[a,o]=n.from{e.input.lastTouch=Date.now(),FX(e),OX(e,`pointer`)},EX.touchmove=e=>{e.input.lastTouch=Date.now(),OX(e,`pointer`)},EX.contextmenu=e=>FX(e);function RX(e,t){return e.composing?!0:rY&&Math.abs(Date.now()-e.input.compositionEndedAt)<500?(e.input.compositionEndedAt=-2e8,!0):!1}var IPe=sY?5e3:-1;DX.compositionstart=DX.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof Kq&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>e.type.spec.inclusive===!1)||tY&&oY&&LPe(e)))e.markCursor=e.state.storedMarks||n.marks(),VX(e,!0),e.markCursor=null;else if(VX(e,!t.selection.empty),$J&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&n.nodeType==1&&r!=0;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(t.nodeType==3){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}else n=t,r=-1}}e.input.composing=!0}zX(e,IPe)};function LPe(e){let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(!t||t.nodeType!=1||n>=t.childNodes.length)return!1;let r=t.childNodes[n];return r.nodeType==1&&r.contentEditable==`false`}DX.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=Date.now(),e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.badSafariComposition?e.domObserver.forceFlush():e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,zX(e,20))};function zX(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>VX(e),t))}function BX(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=Date.now());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function RPe(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=kNe(t.focusNode,t.focusOffset),r=ANe(t.focusNode,t.focusOffset);if(n&&r&&n!=r){let t=r.pmViewDesc,i=e.domObserver.lastChangedTextNode;if(n==i||r==i)return i;if(!t||!t.isText(r.nodeValue))return r;if(e.input.compositionNode==r){let e=n.pmViewDesc;if(!(!e||!e.isText(n.nodeValue)))return r}}return n||r}function VX(e,t=!1){if(!(sY&&e.domObserver.flushingSoon>=0)){if(e.domObserver.forceFlush(),BX(e),t||e.docView&&e.docView.dirty){let n=KY(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):(e.markCursor||t)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.dispatch(e.state.tr.deleteSelection()):e.updateState(e.state),!0}return!1}}function zPe(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement(`div`));n.appendChild(t),n.style.cssText=`position: fixed; left: -10000px; top: 10px`;let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}var HX=ZJ&&QJ<15||iY&&PNe<604;EX.copy=DX.cut=(e,t)=>{let n=t,r=e.state.selection,i=n.type==`cut`;if(r.empty)return;let a=HX?null:n.clipboardData,{dom:o,text:s}=gX(e,r.content());a?(n.preventDefault(),a.clearData(),a.setData(`text/html`,o.innerHTML),a.setData(`text/plain`,s)):zPe(e,o),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta(`uiEvent`,`cut`))};function BPe(e){return e.openStart==0&&e.openEnd==0&&e.content.childCount==1?e.content.firstChild:null}function VPe(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?`textarea`:`div`));n||(r.contentEditable=`true`),r.style.cssText=`position: fixed; left: -10000px; top: 10px`,r.focus();let i=e.input.shiftKey&&e.input.lastKeyCode!=45;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?UX(e,r.value,null,i,t):UX(e,r.textContent,r.innerHTML,i,t)},50)}function UX(e,t,n,r,i){let a=_X(e,t,n,r,e.state.selection.$from);if(e.someProp(`handlePaste`,t=>t(e,i,a||sK.empty)))return!0;if(!a)return!1;let o=BPe(a),s=o?e.state.tr.replaceSelectionWith(o,r):e.state.tr.replaceSelection(a);return e.dispatch(s.scrollIntoView().setMeta(`paste`,!0).setMeta(`uiEvent`,`paste`)),!0}function WX(e){let t=e.getData(`text/plain`)||e.getData(`Text`);if(t)return t;let n=e.getData(`text/uri-list`);return n?n.replace(/\r?\n/g,` `):``}DX.paste=(e,t)=>{let n=t;if(e.composing&&!sY)return;let r=HX?null:n.clipboardData,i=e.input.shiftKey&&e.input.lastKeyCode!=45;r&&UX(e,WX(r),r.getData(`text/html`),i,n)?n.preventDefault():VPe(e,n)};var GX=class{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}},HPe=aY?`altKey`:`ctrlKey`;function KX(e,t){let n;return e.someProp(`dragCopies`,e=>{n||=e(t)}),n==null?!t[HPe]:!n}EX.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=e.state.selection,a=i.empty?null:e.posAtCoords(jX(n)),o;if(!(a&&a.pos>=i.from&&a.pos<=(i instanceof Jq?i.to-1:i.to))){if(r&&r.mightDrag)o=Jq.create(e.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(o=Jq.create(e.state.doc,t.posBefore))}}let{dom:s,text:c,slice:l}=gX(e,(o||e.state.selection).content());(!n.dataTransfer.files.length||!tY||nY>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(HX?`Text`:`text/html`,s.innerHTML),n.dataTransfer.effectAllowed=`copyMove`,HX||n.dataTransfer.setData(`text/plain`,c),e.dragging=new GX(l,KX(e,n),o)},EX.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},DX.dragover=DX.dragenter=(e,t)=>t.preventDefault(),DX.drop=(e,t)=>{try{UPe(e,t,e.dragging)}finally{e.dragging=null}};function UPe(e,t,n){if(!t.dataTransfer)return;let r=e.posAtCoords(jX(t));if(!r)return;let i=e.state.doc.resolve(r.pos),a=n&&n.slice;a?e.someProp(`transformPasted`,t=>{a=t(a,e,!1)}):a=_X(e,WX(t.dataTransfer),HX?null:t.dataTransfer.getData(`text/html`),!1,i);let o=!!(n&&KX(e,t));if(e.someProp(`handleDrop`,n=>n(e,t,a||sK.empty,o))){t.preventDefault();return}if(!a)return;t.preventDefault();let s=a?Dq(e.state.doc,i.pos,a):i.pos;s??=i.pos;let c=e.state.tr;if(o){let{node:e}=n;e?e.replace(c):c.deleteSelection()}let l=c.mapping.map(s),u=a.openStart==0&&a.openEnd==0&&a.content.childCount==1,d=c.doc;if(u?c.replaceRangeWith(l,l,a.content.firstChild):c.replaceRange(l,l,a),c.doc.eq(d))return;let f=c.doc.resolve(l);if(u&&Jq.isSelectable(a.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(a.content.firstChild))c.setSelection(new Jq(f));else{let t=c.mapping.map(s);c.mapping.maps[c.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),c.setSelection(tX(e,f,c.doc.resolve(t)))}e.focus(),e.dispatch(c.setMeta(`uiEvent`,`drop`))}EX.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add(`ProseMirror-focused`),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&JY(e)},20))},EX.blur=(e,t)=>{let n=t;e.focused&&=(e.domObserver.stop(),e.dom.classList.remove(`ProseMirror-focused`),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),!1)},EX.beforeinput=(e,t)=>{if(sY&&t.inputType==`deleteContentBackward`){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t||(e.dom.blur(),e.focus(),e.someProp(`handleKeyDown`,t=>t(e,WJ(8,`Backspace`)))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let e in DX)EX[e]=DX[e];function qX(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}var JX=class e{constructor(e,t){this.toDOM=e,this.spec=t||QX,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:a}=e.mapResult(t.from+r,this.side<0?-1:1);return a?null:new XX(i-n,i-n,this)}valid(){return!0}eq(t){return this==t||t instanceof e&&(this.spec.key&&this.spec.key==t.spec.key||this.toDOM==t.toDOM&&qX(this.spec,t.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}},YX=class e{constructor(e,t){this.attrs=e,this.spec=t||QX}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,a=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=a?null:new XX(i,a,this)}valid(e,t){return t.from=e&&(!i||i(o.spec))&&n.push(o.copy(o.from+r,o.to+r))}for(let a=0;ae){let o=this.children[a]+1;this.children[a+2].findInner(e-o,t-o,n,r+o,i)}}map(e,t,n){return this==eZ||e.maps.length==0?this:this.mapInner(e,t,0,0,n||QX)}mapInner(t,n,r,i,a){let o;for(let e=0;e{let o=t+r,s;if(s=rZ(n,e,o)){for(i||=this.children.slice();aa&&n.to=t){this.children[e]==t&&(r=this.children[e+2]);break}let a=t+1,o=a+n.content.size;for(let e=0;ea&&t.type instanceof YX){let e=Math.max(a,t.from)-a,n=Math.min(o,t.to)-a;ee.map(t,n,QX));return e.from(r)}forChild(t,n){if(n.isLeaf)return $X.empty;let r=[];for(let i=0;ie instanceof $X)?t:t.reduce((e,t)=>e.concat(t instanceof $X?t:t.members),[]))}}forEachSet(e){for(let t=0;t{let o=a-i-(n-e);for(let i=0;ia+t-r)continue;let c=s[i]+t-r;n>=c?s[i+1]=e<=c?-2:-1:e>=t&&o&&(s[i]+=o,s[i+1]+=o)}r+=o}),t=n.maps[e].map(t,-1)}let c=!1;for(let t=0;t=r.content.size){c=!0;continue}let d=n.map(e[t+1]+a,-1)-i,{index:f,offset:p}=r.content.findIndex(u),m=r.maybeChild(f);if(m&&p==u&&p+m.nodeSize==d){let r=s[t+2].mapInner(n,m,l+1,e[t]+a+1,o);r==eZ?(s[t+1]=-2,c=!0):(s[t]=u,s[t+1]=d,s[t+2]=r)}else c=!0}if(c){let c=aZ(KPe(s,e,t,n,i,a,o),r,0,o);t=c.local;for(let e=0;en&&a.to{let s=rZ(e,t,o+n);if(s){a=!0;let e=aZ(s,t,n+o+1,r);e!=eZ&&i.push(o,o+t.nodeSize,e)}});let o=nZ(a?iZ(e):e,-n).sort(oZ);for(let e=0;e0;)t++;e.splice(t,0,n)}function lZ(e){let t=[];return e.someProp(`decorations`,n=>{let r=n(e.state);r&&r!=eZ&&t.push(r)}),e.cursorWrapper&&t.push($X.create(e.state.doc,[e.cursorWrapper.deco])),tZ.from(t)}var qPe={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},JPe=ZJ&&QJ<=11,YPe=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}},XPe=class{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new YPe,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(t=>{for(let e=0;ee.type==`childList`&&e.removedNodes.length||e.type==`characterData`&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():rY&&e.composing&&t.some(e=>e.type==`childList`&&e.target.nodeName==`TR`)?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),JPe&&(this.onCharData=e=>{this.queue.push({target:e.target,type:`characterData`,oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,qPe)),this.onCharData&&this.view.dom.addEventListener(`DOMCharacterDataModified`,this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener(`DOMCharacterDataModified`,this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener(`selectionchange`,this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener(`selectionchange`,this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(nX(this.view)){if(this.suppressingSelectionUpdates)return JY(this.view);if(ZJ&&QJ<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&zJ(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,n;for(let n=e.focusNode;n;n=IJ(n))t.add(n);for(let r=e.anchorNode;r;r=IJ(r))if(t.has(r)){n=r;break}let r=n&&this.view.docView.nearestDesc(n);if(r&&r.ignoreMutation({type:`selection`,target:n.nodeType==3?n.parentNode:n}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&nX(e)&&!this.ignoreSelectionChange(n),i=-1,a=-1,o=!1,s=[];if(e.editable)for(let e=0;ee.nodeName==`BR`)&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46||tY&&(e.composing||e.input.compositionEndedAt>Date.now()-50)&&t.some(e=>e.type==`childList`&&e.removedNodes.length))){for(let e of s)if(e.nodeName==`BR`&&e.parentNode){let t=e.nextSibling;for(;t&&t.nodeType==1;){if(t.contentEditable==`false`){e.parentNode.removeChild(e);break}t=t.firstChild}}}else if($J&&s.length){let t=s.filter(e=>e.nodeName==`BR`);if(t.length==2){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;t&&t.nodeName==`LI`&&(!n||$Pe(e,n)!=t)&&r.remove()}}}let c=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||r)&&(i>-1&&(e.docView.markDirty(i,a),ZPe(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,eFe(e,s)),this.handleDOMChange(i,a,o,s),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||JY(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if(e.type==`attributes`&&(n==this.view.docView||e.attributeName==`contenteditable`||e.attributeName==`style`&&!e.oldValue&&!e.target.getAttribute(`style`))||!n||n.ignoreMutation(e))return null;if(e.type==`childList`){for(let n=0;na;e--){let t=i.childNodes[e-1],n=t.pmViewDesc;if(t.nodeName==`BR`&&!n){o=e;break}if(!n||n.size)break}let f=e.state.doc,p=e.someProp(`domParser`)||IK.fromSchema(e.state.schema),m=f.resolve(s),h=null,g=p.parse(i,{topNode:m.parent,topMatch:m.parent.contentMatchAt(m.index()),topOpen:!0,from:a,to:o,preserveWhitespace:m.parent.type.whitespace==`pre`?`full`:!0,findPositions:u,ruleFromNode:nFe(r),context:m});if(u&&u[0].pos!=null){let e=u[0].pos,t=u[1]&&u[1].pos;t??=e,h={anchor:e+s,head:t+s}}return{doc:g,sel:h,from:s,to:c}}var nFe=e=>t=>{let n=t.pmViewDesc;if(n)return n.parseRule(e);if(t.nodeName==`BR`&&t.parentNode){if(rY&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let e=document.createElement(`div`);return e.appendChild(document.createElement(`li`)),{skip:e}}else if(t.parentNode.lastChild==t||rY&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName==`IMG`&&t.getAttribute(`mark-placeholder`))return{ignore:!0};return null},rFe=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function iFe(e,t,n,r,i){let a=e.input.compositionPendingChanges||(e.composing?e.input.compositionID:0);if(e.input.compositionPendingChanges=0,t<0){let t=e.input.lastSelectionTime>Date.now()-50?e.input.lastSelectionOrigin:null,n=KY(e,t);if(n&&!e.state.selection.eq(n)){if(tY&&sY&&e.input.lastKeyCode===13&&Date.now()-100t(e,WJ(13,`Enter`))))return;let r=e.state.tr.setSelection(n);t==`pointer`?r.setMeta(`pointer`,!0):t==`key`&&r.scrollIntoView(),a&&r.setMeta(`composition`,a),e.dispatch(r)}return}let o=e.state.doc.resolve(t),s=o.sharedDepth(n);t=o.before(s+1),n=e.state.doc.resolve(n).after(s+1);let c=e.state.selection,l=tFe(e,t,n,i),u=e.state.doc,d=u.slice(l.from,l.to),f,p;e.input.lastKeyCode===8&&Date.now()-100Date.now()-225||sY)&&i.some(e=>e.nodeType==1&&!rFe.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp(`handleKeyDown`,t=>t(e,WJ(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(!m)if(r&&c instanceof Kq&&!c.empty&&c.$head.sameParent(c.$anchor)&&!e.composing&&!(l.sel&&l.sel.anchor!=l.sel.head))m={start:c.from,endA:c.to,endB:c.to};else{if(l.sel){let t=pZ(e,e.state.doc,l.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);a&&n.setMeta(`composition`,a),e.dispatch(n)}}return}e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=l.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=l.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),ZJ&&QJ<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>l.from&&l.doc.textBetween(m.start-l.from-1,m.start-l.from+1)==` \xA0`&&(m.start--,m.endA--,m.endB--);let h=l.doc.resolveNoCache(m.start-l.from),g=l.doc.resolveNoCache(m.endB-l.from),_=u.resolve(m.start),v=h.sameParent(g)&&h.parent.inlineContent&&_.end()>=m.endA;if((iY&&e.input.lastIOSEnter>Date.now()-225&&(!v||i.some(e=>e.nodeName==`DIV`||e.nodeName==`P`))||!v&&h.post(e,WJ(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(e.state.selection.anchor>m.start&&oFe(u,m.start,m.endA,h,g)&&e.someProp(`handleKeyDown`,t=>t(e,WJ(8,`Backspace`)))){sY&&tY&&e.domObserver.suppressSelectionUpdates();return}tY&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),sY&&!v&&h.start()!=g.start()&&g.parentOffset==0&&h.depth==g.depth&&l.sel&&l.sel.anchor==l.sel.head&&l.sel.head==m.endA&&(m.endB-=2,g=l.doc.resolveNoCache(m.endB-l.from),setTimeout(()=>{e.someProp(`handleKeyDown`,function(t){return t(e,WJ(13,`Enter`))})},20));let y=m.start,b=m.endA,x=t=>{let n=t||e.state.tr.replace(y,b,l.doc.slice(m.start-l.from,m.endB-l.from));if(l.sel){let t=pZ(e,n.doc,l.sel);t&&!(tY&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDeleteJY(e),20));let t=x(e.state.tr.delete(y,b)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(S=aFe(h.parent.content.cut(h.parentOffset,g.parentOffset),_.parent.content.cut(_.parentOffset,m.endA-_.start())))){let t=x(e.state.tr);S.type==`add`?t.addMark(y,b,S.mark):t.removeMark(y,b,S.mark),e.dispatch(t)}else if(h.parent.child(h.index()).isText&&h.index()==g.index()-+!g.textOffset){let t=h.parent.textBetween(h.parentOffset,g.parentOffset),n=()=>x(e.state.tr.insertText(t,y,b));e.someProp(`handleTextInput`,r=>r(e,y,b,t,n))||e.dispatch(n())}else e.dispatch(x());else e.dispatch(x())}function pZ(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:tX(e,t.resolve(n.anchor),t.resolve(n.head))}function aFe(e,t){let n=e.firstChild.marks,r=t.firstChild.marks,i=n,a=r,o,s,c;for(let e=0;ee.mark(s.addToSet(e.marks));else if(i.length==0&&a.length==1)s=a[0],o=`remove`,c=e=>e.mark(s.removeFromSet(e.marks));else return null;let l=[];for(let e=0;en||mZ(o,!0,!1)0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function sFe(e,t,n,r,i){let a=e.findDiffStart(t,n),o=n+e.size,s=n+t.size;if(a==null)return null;let{a:c,b:l}=e.findDiffEnd(t,o,s);if(i==`end`){let e=Math.max(0,a-Math.min(c,l));r-=c+e-a}if(c=c?a-r:0;a-=e,l=a+(l-c),c=a}else if(l=l?a-r:0;a-=e,c=a+(c-l),l=a}return{start:a,endA:c,endB:l}}var hZ=class{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new SPe,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(bZ),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement(`div`),e&&(e.appendChild?e.appendChild(this.dom):typeof e==`function`?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=vZ(this),_Z(this),this.nodeViews=yZ(this),this.docView=PY(this.state.doc,gZ(this),lZ(this),this.dom,this),this.domObserver=new XPe(this,(e,t,n,r)=>iFe(this,e,t,n,r)),this.domObserver.start(),CPe(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&kX(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(bZ),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let e in this._props)t[e]=this._props[e];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){let n=this.state,r=!1,i=!1;e.storedMarks&&this.composing&&(BX(this),i=!0),this.state=e;let a=n.plugins!=e.plugins||this._props.plugins!=t.plugins;if(a||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=yZ(this);lFe(e,this.nodeViews)&&(this.nodeViews=e,r=!0)}(a||t.handleDOMEvents!=this._props.handleDOMEvents)&&kX(this),this.editable=vZ(this),_Z(this);let o=lZ(this),s=gZ(this),c=n.plugins!=e.plugins&&!n.doc.eq(e.doc)?`reset`:e.scrollToSelection>n.scrollToSelection?`to selection`:`preserve`,l=r||!this.docView.matchesNode(e.doc,s,o);(l||!e.selection.eq(n.selection))&&(i=!0);let u=c==`preserve`&&i&&this.dom.style.overflowAnchor==null&&LNe(this);if(i){this.domObserver.stop();let t=l&&(ZJ||tY)&&!this.composing&&!n.selection.empty&&!e.selection.empty&&cFe(n.selection,e.selection);if(l){let n=tY?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=RPe(this)),(r||!this.docView.update(e.doc,s,o,this))&&(this.docView.updateOuterDeco(s),this.docView.destroy(),this.docView=PY(e.doc,s,o,this.dom,this)),n&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(t=!0)}let i=this.input.mouseDown;t||!(i&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&sPe(this)&&i.delaySelUpdate())?JY(this,t):($Y(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(n),this.dragging?.node&&!n.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,n),c==`reset`?this.dom.scrollTop=0:c==`to selection`?this.scrollToSelection():u&&RNe(u)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))&&!this.someProp(`handleScrollToSelection`,e=>e(this)))if(this.state.selection instanceof Jq){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&uY(this,t.getBoundingClientRect(),e)}else uY(this,this.coordsAtPos(this.state.selection.head,1),e)}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let e=0;e0&&ee.ownerDocument.getSelection()),this._root=e}return e||document}updateRoot(){this._root=null}posAtCoords(e){return WNe(this,e)}coordsAtPos(e,t=1){return yY(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(r==null)throw RangeError(`DOM position not inside the editor`);return r}endOfTextblock(e,t){return YNe(this,t||this.state,e)}pasteHTML(e,t){return UX(this,``,e,!1,t||new ClipboardEvent(`paste`))}pasteText(e,t){return UX(this,e,null,!0,t||new ClipboardEvent(`paste`))}serializeForClipboard(e){return gX(this,e)}destroy(){this.docView&&(wPe(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],lZ(this),this),this.dom.textContent=``):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,DNe())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return EPe(this,e)}domSelectionRange(){let e=this.domSelection();return e?rY&&this.root.nodeType===11&&MNe(this.dom.ownerDocument)==this.dom&&QPe(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}};hZ.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};function gZ(e){let t=Object.create(null);return t.class=`ProseMirror`,t.contenteditable=String(e.editable),e.someProp(`attributes`,n=>{if(typeof n==`function`&&(n=n(e.state)),n)for(let e in n)e==`class`?t.class+=` `+n[e]:e==`style`?t.style=(t.style?t.style+`;`:``)+n[e]:!t[e]&&e!=`contenteditable`&&e!=`nodeName`&&(t[e]=String(n[e]))}),t.translate||=`no`,[XX.node(0,e.state.doc.content.size,t)]}function _Z(e){if(e.markCursor){let t=document.createElement(`img`);t.className=`ProseMirror-separator`,t.setAttribute(`mark-placeholder`,`true`),t.setAttribute(`alt`,``),e.cursorWrapper={dom:t,deco:XX.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function vZ(e){return!e.someProp(`editable`,t=>t(e.state)===!1)}function cFe(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}function yZ(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp(`nodeViews`,n),e.someProp(`markViews`,n),t}function lFe(e,t){let n=0,r=0;for(let r in e){if(e[r]!=t[r])return!0;n++}for(let e in t)r++;return n!=r}function bZ(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw RangeError(`Plugins passed directly to the view must not have a state component`)}for(var xZ={8:`Backspace`,9:`Tab`,10:`Enter`,12:`NumLock`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,44:`PrintScreen`,45:`Insert`,46:`Delete`,59:`;`,61:`=`,91:`Meta`,92:`Meta`,106:`*`,107:`+`,108:`,`,109:`-`,110:`.`,111:`/`,144:`NumLock`,145:`ScrollLock`,160:`Shift`,161:`Shift`,162:`Control`,163:`Control`,164:`Alt`,165:`Alt`,173:`-`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},SZ={48:`)`,49:`!`,50:`@`,51:`#`,52:`$`,53:`%`,54:`^`,55:`&`,56:`*`,57:`(`,59:`:`,61:`+`,173:`_`,186:`:`,187:`+`,188:`<`,189:`_`,190:`>`,191:`?`,192:`~`,219:`{`,220:`|`,221:`}`,222:`"`},uFe=typeof navigator<`u`&&/Mac/.test(navigator.platform),dFe=typeof navigator<`u`&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),CZ=0;CZ<10;CZ++)xZ[48+CZ]=xZ[96+CZ]=String(CZ);for(var CZ=1;CZ<=24;CZ++)xZ[CZ+111]=`F`+CZ;for(var CZ=65;CZ<=90;CZ++)xZ[CZ]=String.fromCharCode(CZ+32),SZ[CZ]=String.fromCharCode(CZ);for(var wZ in xZ)SZ.hasOwnProperty(wZ)||(SZ[wZ]=xZ[wZ]);function fFe(e){var t=!(uFe&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||dFe&&e.shiftKey&&e.key&&e.key.length==1||e.key==`Unidentified`)&&e.key||(e.shiftKey?SZ:xZ)[e.keyCode]||e.key||`Unidentified`;return t==`Esc`&&(t=`Escape`),t==`Del`&&(t=`Delete`),t==`Left`&&(t=`ArrowLeft`),t==`Up`&&(t=`ArrowUp`),t==`Right`&&(t=`ArrowRight`),t==`Down`&&(t=`ArrowDown`),t}var pFe=typeof navigator<`u`&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),mFe=typeof navigator<`u`&&/Win/.test(navigator.platform);function hFe(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==`Space`&&(n=` `);let r,i,a,o;for(let e=0;e[e,(...e)=>{let n=t(...e)(a);return!i.getMeta(`preventDispatch`)&&!this.hasCustomState&&r.dispatch(i),n}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o=[],s=!!e,c=e||i.tr,l=()=>(!s&&t&&!c.getMeta(`preventDispatch`)&&!this.hasCustomState&&a.dispatch(c),o.every(e=>e===!0)),u={...Object.fromEntries(Object.entries(n).map(([e,n])=>[e,(...e)=>{let r=this.buildProps(c,t),i=n(...e)(r);return o.push(i),u}])),run:l};return u}static createFakeChain(){let e=new Proxy({},{get:(t,n)=>{if(n!==`then`)return n===`run`?()=>!1:()=>e}});return e}createCan(e){let{rawCommands:t,state:n}=this,r=e||n.tr,i=this.buildProps(r,!1);return{...Object.fromEntries(Object.entries(t).map(([e,t])=>[e,(...e)=>t(...e)({...i,dispatch:void 0})])),chain:()=>this.createChain(r,!1)}}static createFallbackCan(){let t=e.createFakeChain();return new Proxy({chain:()=>t},{get:(e,t)=>{if(t!==`then`)return t===`chain`?e.chain:()=>!1}})}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o={tr:e,editor:r,view:a,state:DZ({state:i,transaction:e}),dispatch:t?()=>void 0:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(...e)=>t(...e)(o)]))}};return o}},vFe=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{if(!e.isDestroyed){var n;t.dom.blur(),(n=window)==null||(n=n.getSelection())==null||n.removeAllRanges()}}),!0),yFe=(e=!0)=>({commands:t})=>t.setContent(``,{emitUpdate:e}),bFe=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:n,$to:r})=>{e.doc.nodesBetween(n.pos,r.pos,(e,n)=>{if(e.type.isText)return;let{doc:r,mapping:i}=t,a=r.resolve(i.map(n)),o=r.resolve(i.map(n+e.nodeSize)),s=a.blockRange(o);if(!s)return;let c=vq(s);if(e.type.isTextblock){let{defaultType:e}=a.parent.contentMatchAt(a.index());t.setNodeMarkup(s.start,e)}(c||c===0)&&t.lift(s,c)})}),!0},xFe=e=>t=>e(t),SFe=()=>({state:e,dispatch:t})=>wJ(e,t),CFe=(e,t)=>({editor:n,tr:r})=>{let{state:i}=n,a=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let o=r.mapping.map(t);return r.insert(o,a.content),r.setSelection(new Kq(r.doc.resolve(Math.max(o-1,0)))),!0},wFe=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let i=e.selection.$anchor;for(let n=i.depth;n>0;--n)if(i.node(n).type===r.type){if(t){let t=i.before(n),r=i.after(n);e.delete(t,r).scrollIntoView()}return!0}return!1};function kZ(e,t){if(typeof e==`string`){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var TFe=e=>({tr:t,state:n,dispatch:r})=>{let i=kZ(e,n.schema),a=t.selection.$anchor;for(let e=a.depth;e>0;--e)if(a.node(e).type===i){if(r){let n=a.before(e),r=a.after(e);t.delete(n,r).scrollIntoView()}return!0}return!1},EFe=e=>({tr:t,dispatch:n})=>{let{from:r,to:i}=e;return n&&t.delete(r,i),!0},DFe=e=>e.content?/^text(\*|\+)/.test(e.content):!1,AZ=(e,t,n)=>{if(!e.parent.isInline||n===`left`&&e.pos>e.start()||n===`right`&&e.pos({from:AZ(e,n,`left`),to:AZ(t,n,`right`)}),kFe=()=>({state:e,dispatch:t})=>{if(e.selection.empty)return!1;if(t){let n=e.tr,{ranges:r}=e.selection,i=n.steps.length;r.forEach(t=>{let r=n.mapping.slice(i),{from:a,to:o}=OFe(n.doc.resolve(r.map(t.$from.pos)),n.doc.resolve(r.map(t.$to.pos)),e.schema);n.deleteRange(a,o)}),n.selection.empty||n.setSelection(Kq.near(n.doc.resolve(n.selection.from))),n.scrollIntoView(),t(n)}return!0},AFe=()=>({commands:e})=>e.keyboardShortcut(`Enter`),jFe=()=>({state:e,dispatch:t})=>CJ(e,t);function jZ(e){return Object.prototype.toString.call(e)===`[object RegExp]`}function MZ(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(r=>n.strict?t[r]===e[r]:jZ(t[r])?t[r].test(e[r]):t[r]===e[r]):!0}function NZ(e,t,n={}){return e.find(e=>e.type===t&&MZ(Object.fromEntries(Object.keys(n).map(t=>[t,e.attrs[t]])),n))}function PZ(e,t,n={}){return!!NZ(e,t,n)}function FZ(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(e=>e.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(e=>e.type===t))return;if(!n){let e=r.node.marks.find(e=>e.type===t);e&&(n=e.attrs)}if(!NZ([...r.node.marks],t,n))return;let i=r.index,a=e.start()+r.offset,o=i+1,s=a+r.node.nodeSize;for(;i>0&&PZ([...e.parent.child(i-1).marks],t,n);)--i,a-=e.parent.child(i).nodeSize;for(;o({tr:n,state:r,dispatch:i})=>{let a=IZ(e,r.schema),{doc:o,selection:s}=n,{$from:c,from:l,to:u}=s;if(i){let e=FZ(c,a,t);if(e&&e.from<=l&&e.to>=u){let t=Kq.create(o,e.from,e.to);n.setSelection(t)}}return!0},NFe=e=>t=>{let n=typeof e==`function`?e(t):e;for(let e=0;e({editor:n,view:r,tr:i,dispatch:a})=>{t={scrollIntoView:!0,...t};let o=()=>{(VZ()||BZ())&&r.dom.focus(),PFe()&&!VZ()&&!BZ()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(a&&e===null&&!LZ(n.state.selection))return o(),!0;let s=zZ(i.doc,e)||n.state.selection,c=n.state.selection.eq(s);return a&&(c||i.setSelection(s),c&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},IFe=(e,t)=>n=>e.every((e,r)=>t(e,{...n,index:r})),LFe=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),HZ=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;--n){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&HZ(r)}return e};function UZ(e){if(typeof window>`u`)throw Error(`[tiptap error]: there is no window object available, so this function cannot be used`);let t=`${e}`,n=new window.DOMParser().parseFromString(t,`text/html`).body;return HZ(n)}function WZ(e){return typeof e?.nodesBetween==`function`}function GZ(e,t,n){if(WZ(e))return e;let r=typeof e==`object`&&!!e;n={slice:!0,parseOptions:{},...n};let i=typeof e==`string`;if(r)try{if(Array.isArray(e)&&e.length>0)return tK.fromArray(e.map(e=>t.nodeFromJSON(e)));let r=t.nodeFromJSON(e);return n.errorOnInvalidContent&&r.check(),r}catch(r){if(n.errorOnInvalidContent)throw Error(`[tiptap error]: Invalid JSON content`,{cause:r});return console.warn(`[tiptap warn]: Invalid content.`,`Passed value:`,e,`Error:`,r),GZ(``,t,n)}if(i){if(n.errorOnInvalidContent){let r=!1,i=``,a=new PK({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:`inline*`,group:`block`,parseDOM:[{tag:`*`,getAttrs:e=>(r=!0,i=typeof e==`string`?e:e.outerHTML,null)}]}})});if(n.slice?IK.fromSchema(a).parseSlice(UZ(e),n.parseOptions):IK.fromSchema(a).parse(UZ(e),n.parseOptions),n.errorOnInvalidContent&&r)throw Error(`[tiptap error]: Invalid HTML content`,{cause:Error(`Invalid element found: ${i}`)})}let r=IK.fromSchema(t);return n.slice?r.parseSlice(UZ(e),n.parseOptions).content:r.parse(UZ(e),n.parseOptions)}return GZ(``,t,n)}function KZ(e){return!(`type`in e)}function qZ(e,t,n){let r=e.steps.length-1;if(r{o===0&&(o=r)}),e.setSelection(Uq.near(e.doc.resolve(o),n))}var RFe=(e,t,n)=>({tr:r,dispatch:i,editor:a})=>{if(i){n={parseOptions:a.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let i,o=e=>{a.emit(`contentError`,{editor:a,error:e,disableCollaboration:()=>{`collaboration`in a.storage&&typeof a.storage.collaboration==`object`&&a.storage.collaboration&&(a.storage.collaboration.isDisabled=!0)}})},s={preserveWhitespace:`full`,...n.parseOptions};if(!n.errorOnInvalidContent&&!a.options.enableContentCheck&&a.options.emitContentError)try{GZ(t,a.schema,{parseOptions:s,errorOnInvalidContent:!0})}catch(e){o(e)}try{i=GZ(t,a.schema,{parseOptions:s,errorOnInvalidContent:n.errorOnInvalidContent??a.options.enableContentCheck})}catch(e){return o(e),!1}let{from:c,to:l}=typeof e==`number`?{from:e,to:e}:{from:e.from,to:e.to},u=!0,d=!0,f=KZ(i)?i.content:[i];if(f.forEach(e=>{e.check(),u=u?e.isText&&e.marks.length===0:!1,d=d?e.isBlock:!1}),c===l&&d){let{parent:e}=r.doc.resolve(c);e.isTextblock&&!e.type.spec.code&&!e.childCount&&(--c,l+=1)}let p;if(u)p=Array.isArray(t)?t.map(e=>e.text||``).join(``):WZ(t)?f.map(e=>e.text??``).join(``):typeof t==`object`&&t&&t.text?t.text:t,r.insertText(p,c,l);else{p=tK.from(f);let e=r.doc.resolve(c),t=e.node(),n=e.parentOffset===0,i=t.isText||t.isTextblock,a=t.content.size>0;n&&i&&a&&d&&(c=Math.max(0,c-1)),r.replaceWith(c,l,f)}n.updateSelection&&qZ(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta(`applyInputRules`,{from:c,text:p}),n.applyPasteRules&&r.setMeta(`applyPasteRules`,{from:c,text:p})}return!0};function JZ(e){for(let t=0;t({tr:t,dispatch:n,editor:r})=>{let{pos:i,attrs:a,content:o,updateSelection:s=!0}=e,c;c=typeof i==`number`?t.doc.resolve(i):i||t.selection.$from;let l=JZ(c.parent.contentMatchAt(c.index()));if(!l)return!1;let u=Object.keys(l.spec.attrs||{}),d=a?Object.fromEntries(Object.entries(a).filter(([e])=>u.includes(e))):{},f;if(o){let e=GZ(o,r.schema);f=l.createAndFill(d,e)}else f=l.createAndFill(d);return f?(n&&(t.insert(c.pos,f),s&&qZ(t,t.steps.length-1,-1)),!0):!1},BFe=()=>({state:e,dispatch:t})=>uNe(e,t),VFe=()=>({state:e,dispatch:t})=>dNe(e,t),HFe=()=>({state:e,dispatch:t})=>fJ(e,t),UFe=()=>({state:e,dispatch:t})=>vJ(e,t),WFe=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Eq(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},GFe=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Eq(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},KFe=()=>({state:e,dispatch:t})=>cNe(e,t),qFe=()=>({state:e,dispatch:t})=>lNe(e,t);function YZ(){return typeof navigator<`u`?/Mac/.test(navigator.platform):!1}function JFe(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n===`Space`&&(n=` `);let r,i,a,o;for(let e=0;e({editor:t,view:n,tr:r,dispatch:i})=>{let a=JFe(e).split(/-(?!$)/),o=a.find(e=>![`Alt`,`Ctrl`,`Meta`,`Shift`].includes(e)),s=new KeyboardEvent(`keydown`,{key:o===`Space`?` `:o,altKey:a.includes(`Alt`),ctrlKey:a.includes(`Ctrl`),metaKey:a.includes(`Meta`),shiftKey:a.includes(`Shift`),bubbles:!0,cancelable:!0});return t.captureTransaction(()=>{n.someProp(`handleKeyDown`,e=>e(n,s))})?.steps.forEach(e=>{let t=e.map(r.mapping);t&&i&&r.maybeStep(t)}),!0};function XZ(e,t,n={}){let{from:r,to:i,empty:a}=e.selection,o=t?kZ(t,e.schema):null,s=[];e.doc.nodesBetween(r,i,(e,t)=>{if(e.isText)return;let n=Math.max(r,t),a=Math.min(i,t+e.nodeSize);s.push({node:e,from:n,to:a})});let c=i-r,l=s.filter(e=>o?o.name===e.node.type.name:!0).filter(e=>MZ(e.node.attrs,n,{strict:!1}));return a?!!l.length:l.reduce((e,t)=>e+t.to-t.from,0)>=c}var XFe=(e,t={})=>({state:n,dispatch:r})=>XZ(n,kZ(e,n.schema),t)?fNe(n,r):!1,ZFe=()=>({state:e,dispatch:t})=>TJ(e,t),QFe=e=>({state:t,dispatch:n})=>CNe(kZ(e,t.schema))(t,n),$Fe=()=>({state:e,dispatch:t})=>xJ(e,t);function ZZ(e,t){return t.nodes[e]?`node`:t.marks[e]?`mark`:null}function QZ(e,t){let n=typeof t==`string`?[t]:t;return Object.keys(e).reduce((t,r)=>(n.includes(r)||(t[r]=e[r]),t),{})}var eIe=(e,t)=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=ZZ(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=kZ(e,r.schema)),s===`mark`&&(o=IZ(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{r.doc.nodesBetween(e.$from.pos,e.$to.pos,(e,r)=>{a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,QZ(e.attrs,t))),o&&e.marks.length&&e.marks.forEach(a=>{o===a.type&&(c=!0,i&&n.addMark(r,r+e.nodeSize,o.create(QZ(a.attrs,t))))})})}),c},tIe=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),nIe=()=>({tr:e,dispatch:t})=>{if(t){let t=new Yq(e.doc);e.setSelection(t)}return!0},rIe=()=>({state:e,dispatch:t})=>hJ(e,t),iIe=()=>({state:e,dispatch:t})=>yJ(e,t),aIe=()=>({state:e,dispatch:t})=>hNe(e,t),oIe=()=>({state:e,dispatch:t})=>kJ(e,t),sIe=()=>({state:e,dispatch:t})=>OJ(e,t);function $Z(e,t,n={},r={}){return GZ(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var cIe=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:i,tr:a,dispatch:o,commands:s})=>{let{doc:c}=a;if(r.preserveWhitespace!==`full`){let s=$Z(e,i.schema,r,{errorOnInvalidContent:t??i.options.enableContentCheck});if(o){let e=KZ(s)?s.content:[s];a.replaceWith(0,c.content.size,e).setMeta(`preventUpdate`,!n)}return!0}return o&&a.setMeta(`preventUpdate`,!n),s.insertContentAt({from:0,to:c.content.size},e,{parseOptions:r,errorOnInvalidContent:t??i.options.enableContentCheck})};function eQ(e,t){let n=IZ(t,e.schema),{from:r,to:i,empty:a}=e.selection,o=[];a?(e.storedMarks&&o.push(...e.storedMarks),o.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,i,e=>{o.push(...e.marks)});let s=o.find(e=>e.type.name===n.name);return s?{...s.attrs}:{}}function tQ(e,t){let n=new Vq(e);return t.forEach(e=>{e.steps.forEach(e=>{n.step(e)})}),n}function lIe(e,t,n){let r=[];return e.nodesBetween(t.from,t.to,(e,t)=>{n(e)&&r.push({node:e,pos:t})}),r}function uIe(e,t){for(let n=e.depth;n>0;--n){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function nQ(e){return t=>uIe(t.$from,e)}function rQ(e,t,n){return e.config[t]===void 0&&e.parent?rQ(e.parent,t,n):typeof e.config[t]==`function`?e.config[t].bind({...n,parent:e.parent?rQ(e.parent,t,n):null}):e.config[t]}function iQ(e){return e.map(e=>{let t=rQ(e,`addExtensions`,{name:e.name,options:e.options,storage:e.storage});return t?[e,...iQ(t())]:e}).flat(10)}function aQ(e,t){let n=qK.fromSchema(t).serializeFragment(e),r=document.implementation.createHTMLDocument().createElement(`div`);return r.appendChild(n),r.innerHTML}function oQ(e){return typeof e==`function`}function sQ(e,t=void 0,...n){return oQ(e)?t?e.bind(t)(...n):e(...n):e}function dIe(e={}){return Object.keys(e).length===0&&e.constructor===Object}function cQ(e){return{baseExtensions:e.filter(e=>e.type===`extension`),nodeExtensions:e.filter(e=>e.type===`node`),markExtensions:e.filter(e=>e.type===`mark`)}}function lQ(e){let t=[],{nodeExtensions:n,markExtensions:r}=cQ(e),i=[...n,...r],a={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},o=n.filter(e=>e.name!==`text`).map(e=>e.name),s=r.map(e=>e.name),c=[...o,...s];return e.forEach(e=>{let n=rQ(e,`addGlobalAttributes`,{name:e.name,options:e.options,storage:e.storage,extensions:i});n&&n().forEach(e=>{let n;n=Array.isArray(e.types)?e.types:e.types===`*`?c:e.types===`nodes`?o:e.types===`marks`?s:[],n.forEach(n=>{Object.entries(e.attributes).forEach(([e,r])=>{t.push({type:n,name:e,attribute:{...a,...r}})})})})}),i.forEach(e=>{let n=rQ(e,`addAttributes`,{name:e.name,options:e.options,storage:e.storage});if(!n)return;let r=n();Object.entries(r).forEach(([n,r])=>{let i={...a,...r};typeof i?.default==`function`&&(i.default=i.default()),i?.isRequired&&i?.default===void 0&&delete i.default,t.push({type:e.name,name:n,attribute:i})})}),t}function fIe(e){let t=[],n=``,r=!1,i=!1,a=0,o=e.length;for(let s=0;s0){--a,n+=o;continue}if(o===`;`&&a===0){t.push(n),n=``;continue}}n+=o}return n&&t.push(n),t}function uQ(e){let t=[],n=fIe(e||``),r=n.length;for(let e=0;e!!e).reduce((e,t)=>{let n={...e};return Object.entries(t).forEach(([e,t])=>{if(e===`__proto__`){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0});return}if(!n[e]){n[e]=t;return}if(e===`class`){let r=t?String(t).split(` `):[],i=n[e]?n[e].split(` `):[],a=r.filter(e=>!i.includes(e));n[e]=[...i,...a].join(` `)}else if(e===`style`){let r=new Map([...uQ(n[e]),...uQ(t)]);n[e]=Array.from(r.entries()).map(([e,t])=>`${e}: ${t}`).join(`; `)}else n[e]=t}),n},{})}function fQ(e,t){return t.filter(t=>t.type===e.type.name).filter(e=>e.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(e.attrs)||{}:{[t.name]:e.attrs[t.name]}).reduce((e,t)=>dQ(e,t),{})}function pIe(e){return typeof e==`string`?e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e===`true`?!0:e===`false`?!1:e:e}function pQ(e,t){return`style`in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let i=t.reduce((e,t)=>{let r=t.attribute.parseHTML?t.attribute.parseHTML(n):pIe(n.getAttribute(t.name));return r==null?e:{...e,[t.name]:r}},{});return{...r,...i}}}}function mQ(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>e===`attrs`&&dIe(t)?!1:t!=null))}function hQ(e){var t,n;let r={};return!(!(e==null||(t=e.attribute)==null)&&t.isRequired)&&`default`in(e?.attribute||{})&&(r.default=e.attribute.default),(e==null||(n=e.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function mIe(e,t){let n=lQ(e),{nodeExtensions:r,markExtensions:i}=cQ(e);return new PK({topNode:r.find(e=>rQ(e,`topNode`))?.name,nodes:Object.fromEntries(r.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=mQ({...e.reduce((e,t)=>{let n=rQ(t,`extendNodeSchema`,a);return{...e,...n?n(r):{}}},{}),content:sQ(rQ(r,`content`,a)),marks:sQ(rQ(r,`marks`,a)),group:sQ(rQ(r,`group`,a)),inline:sQ(rQ(r,`inline`,a)),atom:sQ(rQ(r,`atom`,a)),selectable:sQ(rQ(r,`selectable`,a)),draggable:sQ(rQ(r,`draggable`,a)),code:sQ(rQ(r,`code`,a)),whitespace:sQ(rQ(r,`whitespace`,a)),linebreakReplacement:sQ(rQ(r,`linebreakReplacement`,a)),defining:sQ(rQ(r,`defining`,a)),isolating:sQ(rQ(r,`isolating`,a)),attrs:Object.fromEntries(i.map(hQ))}),s=sQ(rQ(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>pQ(e,i)));let c=rQ(r,`renderHTML`,a);c&&(o.toDOM=e=>c({node:e,HTMLAttributes:fQ(e,i)}));let l=rQ(r,`renderText`,a);return l&&(o.toText=l),[r.name,o]})),marks:Object.fromEntries(i.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=mQ({...e.reduce((e,t)=>{let n=rQ(t,`extendMarkSchema`,a);return{...e,...n?n(r):{}}},{}),inclusive:sQ(rQ(r,`inclusive`,a)),excludes:sQ(rQ(r,`excludes`,a)),group:sQ(rQ(r,`group`,a)),spanning:sQ(rQ(r,`spanning`,a)),code:sQ(rQ(r,`code`,a)),attrs:Object.fromEntries(i.map(hQ))}),s=sQ(rQ(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>pQ(e,i)));let c=rQ(r,`renderHTML`,a);return c&&(o.toDOM=e=>c({mark:e,HTMLAttributes:fQ(e,i)})),[r.name,o]}))})}function hIe(e){let t=e.filter((t,n)=>e.indexOf(t)!==n);return Array.from(new Set(t))}function gQ(e){return e.sort((e,t)=>{let n=rQ(e,`priority`)||100,r=rQ(t,`priority`)||100;return n>r?-1:+(ne.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(e=>`'${e}'`).join(`, `)}]. This can lead to issues.`),t}function vQ(e,t,n){let{from:r,to:i}=t,{blockSeparator:a=` +`))),0,0),e.someProp(`transformPasted`,t=>{s=t(s,e,!0)}),s;let n=e.someProp(`clipboardTextParser`,n=>n(t,i,r,e));if(n)s=n;else{let n=i.marks(),{schema:r}=e.state,a=qK.fromSchema(r);o=document.createElement(`div`),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=o.appendChild(document.createElement(`p`));e&&t.appendChild(a.serializeNode(r.text(e,n)))})}}else e.someProp(`transformPastedHTML`,t=>{n=t(n,e)}),o=yPe(n),cY&&bPe(o);let l=o&&o.querySelector(`[data-pm-slice]`),u=l&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(l.getAttribute(`data-pm-slice`)||``);if(u&&u[3])for(let e=+u[3];e>0;e--){let e=o.firstChild;for(;e&&e.nodeType!=1;)e=e.nextSibling;if(!e)break;o=e}if(s||=(e.someProp(`clipboardParser`)||e.someProp(`domParser`)||IK.fromSchema(e.state.schema)).parseSlice(o,{preserveWhitespace:!!(c||u),context:i,ruleFromNode(e){return e.nodeName==`BR`&&!e.nextSibling&&e.parentNode&&!gPe.test(e.parentNode.nodeName)?{ignore:!0}:null}}),u)s=xPe(SX(s,+u[1],+u[2]),u[4]);else if(s=sK.maxOpen(_Pe(s.content,i),!0),s.openStart||s.openEnd){let e=0,t=0;for(let t=s.content.firstChild;e{s=t(s,e,c)}),s}var gPe=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function _Pe(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.index(n)),i,a=[];if(e.forEach(e=>{if(!a)return;let t=r.findWrapping(e.type),n;if(!t)return a=null;if(n=a.length&&i.length&&yX(t,i,e,a[a.length-1],0))a[a.length-1]=n;else{a.length&&(a[a.length-1]=bX(a[a.length-1],i.length));let n=vX(e,t);a.push(n),r=r.matchType(n.type),i=t}}),a)return tK.from(a)}return e}function vX(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,tK.from(e));return e}function yX(e,t,n,r,i){if(i1&&(a=0),i=n&&(s=t<0?o.contentMatchAt(0).fillBefore(s,a<=i).append(s):s.append(o.contentMatchAt(o.childCount).fillBefore(tK.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,o.copy(s))}function SX(e,t,n){return te})}return TX.createHTML(e)}function yPe(e){let t=/^(\s*]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=wX(),r=n.body,i=/<([a-z][^>\s]+)/i.exec(e),a;if((a=i&&CX[i[1].toLowerCase()])&&(e=a.map(e=>`<`+e+`>`).join(``)+e+a.map(e=>``).reverse().join(``)),r.innerHTML=vPe(e),a)for(let e=0;e=0;e-=2){let t=n.nodes[r[e]];if(!t||t.hasRequiredAttrs())break;try{t.checkAttrs(r[e+1])}catch{break}i=tK.from(t.create(r[e+1],i)),a++,o++}return new sK(i,a,o)}var EX={},DX={},SPe={touchstart:!0,touchmove:!0},CPe=class{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:``,button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.badSafariComposition=!1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}};function wPe(e){for(let t in EX){let n=EX[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{EPe(e,t)&&!AX(e,t)&&(e.editable||!(t.type in DX))&&n(e,t)},SPe[t]?{passive:!0}:void 0)}rY&&e.dom.addEventListener(`input`,()=>null),kX(e)}function OX(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function TPe(e){e.input.mouseDown&&e.input.mouseDown.done(),e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}function kX(e){e.someProp(`handleDOMEvents`,t=>{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>AX(e,t))})}function AX(e,t){return e.someProp(`handleDOMEvents`,n=>{let r=n[t.type];return r?r(e,t)||t.defaultPrevented:!1})}function EPe(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function DPe(e,t){!AX(e,t)&&EX[t.type]&&(e.editable||!(t.type in DX))&&EX[t.type](e,t)}DX.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=n.keyCode==16||n.shiftKey,!RX(e)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!(sY&&tY&&n.keyCode==13)))if(n.keyCode!=229&&e.domObserver.forceFlush(),iY&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp(`handleKeyDown`,t=>t(e,WJ(13,`Enter`))),e.input.lastIOSEnter=0)},200)}else e.someProp(`handleKeyDown`,t=>t(e,n))||hPe(e,n)?n.preventDefault():OX(e,`key`)},DX.keyup=(e,t)=>{t.keyCode==16&&(e.input.shiftKey=!1)},DX.keypress=(e,t)=>{let n=t;if(RX(e)||!n.charCode||n.ctrlKey&&!n.altKey||aY&&n.metaKey)return;if(e.someProp(`handleKeyPress`,t=>t(e,n))){n.preventDefault();return}let r=e.state.selection;if(!(r instanceof Kq)||!r.$from.sameParent(r.$to)){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();!/[\r\n]/.test(t)&&!e.someProp(`handleTextInput`,n=>n(e,r.$from.pos,r.$to.pos,t,i))&&e.dispatch(i()),n.preventDefault()}};function jX(e){return{left:e.clientX,top:e.clientY}}function OPe(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}function MX(e,t,n,r,i){if(r==-1)return!1;let a=e.state.doc.resolve(r);for(let r=a.depth+1;r>0;r--)if(e.someProp(t,t=>r>a.depth?t(e,n,a.nodeAfter,a.before(r),i,!0):t(e,n,a.node(r),a.before(r),i,!1)))return!0;return!1}function NX(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);n==`pointer`&&r.setMeta(`pointer`,!0),e.dispatch(r)}function kPe(e,t){if(t==-1)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return r&&r.isAtom&&Jq.isSelectable(r)?(NX(e,new Jq(n),`pointer`),!0):!1}function APe(e,t){if(t==-1)return!1;let n=e.state.selection,r,i;n instanceof Jq&&(r=n.node);let a=e.state.doc.resolve(t);for(let e=a.depth+1;e>0;e--){let t=e>a.depth?a.nodeAfter:a.node(e);if(Jq.isSelectable(t)){i=r&&n.$from.depth>0&&e>=n.$from.depth&&a.before(n.$from.depth+1)==n.$from.pos?a.before(n.$from.depth):a.before(e);break}}return i==null?!1:(NX(e,Jq.create(e.state.doc,i),`pointer`),!0)}function jPe(e,t,n,r,i){return MX(e,`handleClickOn`,t,n,r)||e.someProp(`handleClick`,n=>n(e,t,r))||(i?APe(e,n):kPe(e,n))}function MPe(e,t,n,r){return MX(e,`handleDoubleClickOn`,t,n,r)||e.someProp(`handleDoubleClick`,n=>n(e,t,r))}function NPe(e,t,n,r){return MX(e,`handleTripleClickOn`,t,n,r)||e.someProp(`handleTripleClick`,n=>n(e,t,r))||PPe(e,n,r)}function PPe(e,t,n){if(n.button!=0)return!1;let r=PX(e,t,!0),i=e.state.doc;return r?(NX(e,r,`pointer`),r instanceof Kq&&i.eq(e.state.doc)&&(e.input.mouseDown=new IPe(e,r)),!0):!1}function PX(e,t,n){let r=e.state.doc;if(t==-1)return r.inlineContent?Kq.create(r,0,r.content.size):null;let i=r.resolve(t);for(let e=i.depth+1;e>0;e--){let t=e>i.depth?i.nodeAfter:i.node(e),a=i.before(e);if(t.inlineContent)return Kq.create(r,a+1,a+1+t.content.size);if(n&&Jq.isSelectable(t))return Jq.create(r,a)}return null}function FX(e){return VX(e)}var IX=aY?`metaKey`:`ctrlKey`;EX.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=FX(e),i=Date.now(),a=`singleClick`;i-e.input.lastClick.time<500&&OPe(n,e.input.lastClick)&&!n[IX]&&e.input.lastClick.button==n.button&&(e.input.lastClick.type==`singleClick`?a=`doubleClick`:e.input.lastClick.type==`doubleClick`&&(a=`tripleClick`)),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:a,button:n.button},e.input.mouseDown&&e.input.mouseDown.done();let o=e.posAtCoords(jX(n));o&&(a==`singleClick`?e.input.mouseDown=new FPe(e,o,n,!!r):(a==`doubleClick`?MPe:NPe)(e,o.pos,o.inside,n)?n.preventDefault():OX(e,`pointer`))};var LX=class{constructor(e){this.view=e,this.mightDrag=null,e.root.addEventListener(`mouseup`,this.up=this.up.bind(this)),e.root.addEventListener(`mousemove`,this.move=this.move.bind(this))}up(e){this.done()}move(e){e.buttons==0&&this.done()}done(){this.view.root.removeEventListener(`mouseup`,this.up),this.view.root.removeEventListener(`mousemove`,this.move),this.view.input.mouseDown==this&&(this.view.input.mouseDown=null)}delaySelUpdate(){return!1}},FPe=class extends LX{constructor(e,t,n,r){super(e),this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.startDoc=e.state.doc,this.selectNode=!!n[IX],this.allowDefault=n.shiftKey;let i,a;if(t.inside>-1)i=e.state.doc.nodeAt(t.inside),a=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,a=n.depth?n.before():0}let o=r?null:n.target,s=o?e.docView.nearestDesc(o,!0):null;this.target=s&&s.nodeDOM.nodeType==1?s.nodeDOM:null;let{selection:c}=e.state;n.button==0&&(i.type.spec.draggable&&i.type.spec.selectable!==!1||c instanceof Jq&&c.from<=a&&c.to>a)&&(this.mightDrag={node:i,pos:a,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&$J&&!this.target.hasAttribute(`contentEditable`))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute(`contentEditable`,`false`)},20),this.view.domObserver.start()),OX(e,`pointer`)}done(){super.done(),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute(`draggable`),this.mightDrag.setUneditable&&this.target.removeAttribute(`contentEditable`),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>{this.view.isDestroyed||JY(this.view)})}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(jX(e))),this.updateAllowDefault(e),this.allowDefault||!t?OX(this.view,`pointer`):jPe(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||rY&&this.mightDrag&&!this.mightDrag.node.isAtom||tY&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(NX(this.view,Uq.near(this.view.state.doc.resolve(t.pos)),`pointer`),e.preventDefault()):OX(this.view,`pointer`)}move(e){this.updateAllowDefault(e),OX(this.view,`pointer`),super.move(e)}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}delaySelUpdate(){return this.allowDefault?(this.delayedSelectionSync=!0,!0):!1}},IPe=class extends LX{constructor(e,t){super(e),this.startSelection=t,this.startDoc=e.state.doc}move(e){if(e.buttons==0||this.view.isDestroyed||!this.view.state.doc.eq(this.startDoc)){this.done();return}e.preventDefault(),OX(this.view,`pointer`);let t=this.view.posAtCoords(jX(e)),n=t&&PX(this.view,t.inside,!1);if(!n)return;let{doc:r}=this.view.state,i=this.startSelection,[a,o]=n.from{e.input.lastTouch=Date.now(),FX(e),OX(e,`pointer`)},EX.touchmove=e=>{e.input.lastTouch=Date.now(),OX(e,`pointer`)},EX.contextmenu=e=>FX(e);function RX(e,t){return e.composing?!0:rY&&Math.abs(Date.now()-e.input.compositionEndedAt)<500?(e.input.compositionEndedAt=-2e8,!0):!1}var LPe=sY?5e3:-1;DX.compositionstart=DX.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof Kq&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>e.type.spec.inclusive===!1)||tY&&oY&&RPe(e)))e.markCursor=e.state.storedMarks||n.marks(),VX(e,!0),e.markCursor=null;else if(VX(e,!t.selection.empty),$J&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&n.nodeType==1&&r!=0;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(t.nodeType==3){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}else n=t,r=-1}}e.input.composing=!0}zX(e,LPe)};function RPe(e){let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(!t||t.nodeType!=1||n>=t.childNodes.length)return!1;let r=t.childNodes[n];return r.nodeType==1&&r.contentEditable==`false`}DX.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=Date.now(),e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.badSafariComposition?e.domObserver.forceFlush():e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,zX(e,20))};function zX(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>VX(e),t))}function BX(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=Date.now());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function zPe(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=ANe(t.focusNode,t.focusOffset),r=jNe(t.focusNode,t.focusOffset);if(n&&r&&n!=r){let t=r.pmViewDesc,i=e.domObserver.lastChangedTextNode;if(n==i||r==i)return i;if(!t||!t.isText(r.nodeValue))return r;if(e.input.compositionNode==r){let e=n.pmViewDesc;if(!(!e||!e.isText(n.nodeValue)))return r}}return n||r}function VX(e,t=!1){if(!(sY&&e.domObserver.flushingSoon>=0)){if(e.domObserver.forceFlush(),BX(e),t||e.docView&&e.docView.dirty){let n=KY(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):(e.markCursor||t)&&!r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.dispatch(e.state.tr.deleteSelection()):e.updateState(e.state),!0}return!1}}function BPe(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement(`div`));n.appendChild(t),n.style.cssText=`position: fixed; left: -10000px; top: 10px`;let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}var HX=ZJ&&QJ<15||iY&&FNe<604;EX.copy=DX.cut=(e,t)=>{let n=t,r=e.state.selection,i=n.type==`cut`;if(r.empty)return;let a=HX?null:n.clipboardData,{dom:o,text:s}=gX(e,r.content());a?(n.preventDefault(),a.clearData(),a.setData(`text/html`,o.innerHTML),a.setData(`text/plain`,s)):BPe(e,o),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta(`uiEvent`,`cut`))};function VPe(e){return e.openStart==0&&e.openEnd==0&&e.content.childCount==1?e.content.firstChild:null}function HPe(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?`textarea`:`div`));n||(r.contentEditable=`true`),r.style.cssText=`position: fixed; left: -10000px; top: 10px`,r.focus();let i=e.input.shiftKey&&e.input.lastKeyCode!=45;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?UX(e,r.value,null,i,t):UX(e,r.textContent,r.innerHTML,i,t)},50)}function UX(e,t,n,r,i){let a=_X(e,t,n,r,e.state.selection.$from);if(e.someProp(`handlePaste`,t=>t(e,i,a||sK.empty)))return!0;if(!a)return!1;let o=VPe(a),s=o?e.state.tr.replaceSelectionWith(o,r):e.state.tr.replaceSelection(a);return e.dispatch(s.scrollIntoView().setMeta(`paste`,!0).setMeta(`uiEvent`,`paste`)),!0}function WX(e){let t=e.getData(`text/plain`)||e.getData(`Text`);if(t)return t;let n=e.getData(`text/uri-list`);return n?n.replace(/\r?\n/g,` `):``}DX.paste=(e,t)=>{let n=t;if(e.composing&&!sY)return;let r=HX?null:n.clipboardData,i=e.input.shiftKey&&e.input.lastKeyCode!=45;r&&UX(e,WX(r),r.getData(`text/html`),i,n)?n.preventDefault():HPe(e,n)};var GX=class{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}},UPe=aY?`altKey`:`ctrlKey`;function KX(e,t){let n;return e.someProp(`dragCopies`,e=>{n||=e(t)}),n==null?!t[UPe]:!n}EX.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=e.state.selection,a=i.empty?null:e.posAtCoords(jX(n)),o;if(!(a&&a.pos>=i.from&&a.pos<=(i instanceof Jq?i.to-1:i.to))){if(r&&r.mightDrag)o=Jq.create(e.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(o=Jq.create(e.state.doc,t.posBefore))}}let{dom:s,text:c,slice:l}=gX(e,(o||e.state.selection).content());(!n.dataTransfer.files.length||!tY||nY>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(HX?`Text`:`text/html`,s.innerHTML),n.dataTransfer.effectAllowed=`copyMove`,HX||n.dataTransfer.setData(`text/plain`,c),e.dragging=new GX(l,KX(e,n),o)},EX.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},DX.dragover=DX.dragenter=(e,t)=>t.preventDefault(),DX.drop=(e,t)=>{try{WPe(e,t,e.dragging)}finally{e.dragging=null}};function WPe(e,t,n){if(!t.dataTransfer)return;let r=e.posAtCoords(jX(t));if(!r)return;let i=e.state.doc.resolve(r.pos),a=n&&n.slice;a?e.someProp(`transformPasted`,t=>{a=t(a,e,!1)}):a=_X(e,WX(t.dataTransfer),HX?null:t.dataTransfer.getData(`text/html`),!1,i);let o=!!(n&&KX(e,t));if(e.someProp(`handleDrop`,n=>n(e,t,a||sK.empty,o))){t.preventDefault();return}if(!a)return;t.preventDefault();let s=a?Dq(e.state.doc,i.pos,a):i.pos;s??=i.pos;let c=e.state.tr;if(o){let{node:e}=n;e?e.replace(c):c.deleteSelection()}let l=c.mapping.map(s),u=a.openStart==0&&a.openEnd==0&&a.content.childCount==1,d=c.doc;if(u?c.replaceRangeWith(l,l,a.content.firstChild):c.replaceRange(l,l,a),c.doc.eq(d))return;let f=c.doc.resolve(l);if(u&&Jq.isSelectable(a.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(a.content.firstChild))c.setSelection(new Jq(f));else{let t=c.mapping.map(s);c.mapping.maps[c.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),c.setSelection(tX(e,f,c.doc.resolve(t)))}e.focus(),e.dispatch(c.setMeta(`uiEvent`,`drop`))}EX.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add(`ProseMirror-focused`),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&JY(e)},20))},EX.blur=(e,t)=>{let n=t;e.focused&&=(e.domObserver.stop(),e.dom.classList.remove(`ProseMirror-focused`),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),!1)},EX.beforeinput=(e,t)=>{if(sY&&t.inputType==`deleteContentBackward`){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t||(e.dom.blur(),e.focus(),e.someProp(`handleKeyDown`,t=>t(e,WJ(8,`Backspace`)))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let e in DX)EX[e]=DX[e];function qX(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}var JX=class e{constructor(e,t){this.toDOM=e,this.spec=t||QX,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:a}=e.mapResult(t.from+r,this.side<0?-1:1);return a?null:new XX(i-n,i-n,this)}valid(){return!0}eq(t){return this==t||t instanceof e&&(this.spec.key&&this.spec.key==t.spec.key||this.toDOM==t.toDOM&&qX(this.spec,t.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}},YX=class e{constructor(e,t){this.attrs=e,this.spec=t||QX}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,a=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=a?null:new XX(i,a,this)}valid(e,t){return t.from=e&&(!i||i(o.spec))&&n.push(o.copy(o.from+r,o.to+r))}for(let a=0;ae){let o=this.children[a]+1;this.children[a+2].findInner(e-o,t-o,n,r+o,i)}}map(e,t,n){return this==eZ||e.maps.length==0?this:this.mapInner(e,t,0,0,n||QX)}mapInner(t,n,r,i,a){let o;for(let e=0;e{let o=t+r,s;if(s=rZ(n,e,o)){for(i||=this.children.slice();aa&&n.to=t){this.children[e]==t&&(r=this.children[e+2]);break}let a=t+1,o=a+n.content.size;for(let e=0;ea&&t.type instanceof YX){let e=Math.max(a,t.from)-a,n=Math.min(o,t.to)-a;ee.map(t,n,QX));return e.from(r)}forChild(t,n){if(n.isLeaf)return $X.empty;let r=[];for(let i=0;ie instanceof $X)?t:t.reduce((e,t)=>e.concat(t instanceof $X?t:t.members),[]))}}forEachSet(e){for(let t=0;t{let o=a-i-(n-e);for(let i=0;ia+t-r)continue;let c=s[i]+t-r;n>=c?s[i+1]=e<=c?-2:-1:e>=t&&o&&(s[i]+=o,s[i+1]+=o)}r+=o}),t=n.maps[e].map(t,-1)}let c=!1;for(let t=0;t=r.content.size){c=!0;continue}let d=n.map(e[t+1]+a,-1)-i,{index:f,offset:p}=r.content.findIndex(u),m=r.maybeChild(f);if(m&&p==u&&p+m.nodeSize==d){let r=s[t+2].mapInner(n,m,l+1,e[t]+a+1,o);r==eZ?(s[t+1]=-2,c=!0):(s[t]=u,s[t+1]=d,s[t+2]=r)}else c=!0}if(c){let c=aZ(qPe(s,e,t,n,i,a,o),r,0,o);t=c.local;for(let e=0;en&&a.to{let s=rZ(e,t,o+n);if(s){a=!0;let e=aZ(s,t,n+o+1,r);e!=eZ&&i.push(o,o+t.nodeSize,e)}});let o=nZ(a?iZ(e):e,-n).sort(oZ);for(let e=0;e0;)t++;e.splice(t,0,n)}function lZ(e){let t=[];return e.someProp(`decorations`,n=>{let r=n(e.state);r&&r!=eZ&&t.push(r)}),e.cursorWrapper&&t.push($X.create(e.state.doc,[e.cursorWrapper.deco])),tZ.from(t)}var JPe={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},YPe=ZJ&&QJ<=11,XPe=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}},ZPe=class{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new XPe,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(t=>{for(let e=0;ee.type==`childList`&&e.removedNodes.length||e.type==`characterData`&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():rY&&e.composing&&t.some(e=>e.type==`childList`&&e.target.nodeName==`TR`)?(e.input.badSafariComposition=!0,this.flushSoon()):this.flush()}),YPe&&(this.onCharData=e=>{this.queue.push({target:e.target,type:`characterData`,oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,JPe)),this.onCharData&&this.view.dom.addEventListener(`DOMCharacterDataModified`,this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener(`DOMCharacterDataModified`,this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener(`selectionchange`,this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener(`selectionchange`,this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(nX(this.view)){if(this.suppressingSelectionUpdates)return JY(this.view);if(ZJ&&QJ<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&zJ(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,n;for(let n=e.focusNode;n;n=IJ(n))t.add(n);for(let r=e.anchorNode;r;r=IJ(r))if(t.has(r)){n=r;break}let r=n&&this.view.docView.nearestDesc(n);if(r&&r.ignoreMutation({type:`selection`,target:n.nodeType==3?n.parentNode:n}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&nX(e)&&!this.ignoreSelectionChange(n),i=-1,a=-1,o=!1,s=[];if(e.editable)for(let e=0;ee.nodeName==`BR`)&&(e.input.lastKeyCode==8||e.input.lastKeyCode==46||tY&&(e.composing||e.input.compositionEndedAt>Date.now()-50)&&t.some(e=>e.type==`childList`&&e.removedNodes.length))){for(let e of s)if(e.nodeName==`BR`&&e.parentNode){let t=e.nextSibling;for(;t&&t.nodeType==1;){if(t.contentEditable==`false`){e.parentNode.removeChild(e);break}t=t.firstChild}}}else if($J&&s.length){let t=s.filter(e=>e.nodeName==`BR`);if(t.length==2){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;t&&t.nodeName==`LI`&&(!n||eFe(e,n)!=t)&&r.remove()}}}let c=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||r)&&(i>-1&&(e.docView.markDirty(i,a),QPe(e)),e.input.badSafariComposition&&(e.input.badSafariComposition=!1,tFe(e,s)),this.handleDOMChange(i,a,o,s),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||JY(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if(e.type==`attributes`&&(n==this.view.docView||e.attributeName==`contenteditable`||e.attributeName==`style`&&!e.oldValue&&!e.target.getAttribute(`style`))||!n||n.ignoreMutation(e))return null;if(e.type==`childList`){for(let n=0;na;e--){let t=i.childNodes[e-1],n=t.pmViewDesc;if(t.nodeName==`BR`&&!n){o=e;break}if(!n||n.size)break}let f=e.state.doc,p=e.someProp(`domParser`)||IK.fromSchema(e.state.schema),m=f.resolve(s),h=null,g=p.parse(i,{topNode:m.parent,topMatch:m.parent.contentMatchAt(m.index()),topOpen:!0,from:a,to:o,preserveWhitespace:m.parent.type.whitespace==`pre`?`full`:!0,findPositions:u,ruleFromNode:rFe(r),context:m});if(u&&u[0].pos!=null){let e=u[0].pos,t=u[1]&&u[1].pos;t??=e,h={anchor:e+s,head:t+s}}return{doc:g,sel:h,from:s,to:c}}var rFe=e=>t=>{let n=t.pmViewDesc;if(n)return n.parseRule(e);if(t.nodeName==`BR`&&t.parentNode){if(rY&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let e=document.createElement(`div`);return e.appendChild(document.createElement(`li`)),{skip:e}}else if(t.parentNode.lastChild==t||rY&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName==`IMG`&&t.getAttribute(`mark-placeholder`))return{ignore:!0};return null},iFe=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function aFe(e,t,n,r,i){let a=e.input.compositionPendingChanges||(e.composing?e.input.compositionID:0);if(e.input.compositionPendingChanges=0,t<0){let t=e.input.lastSelectionTime>Date.now()-50?e.input.lastSelectionOrigin:null,n=KY(e,t);if(n&&!e.state.selection.eq(n)){if(tY&&sY&&e.input.lastKeyCode===13&&Date.now()-100t(e,WJ(13,`Enter`))))return;let r=e.state.tr.setSelection(n);t==`pointer`?r.setMeta(`pointer`,!0):t==`key`&&r.scrollIntoView(),a&&r.setMeta(`composition`,a),e.dispatch(r)}return}let o=e.state.doc.resolve(t),s=o.sharedDepth(n);t=o.before(s+1),n=e.state.doc.resolve(n).after(s+1);let c=e.state.selection,l=nFe(e,t,n,i),u=e.state.doc,d=u.slice(l.from,l.to),f,p;e.input.lastKeyCode===8&&Date.now()-100Date.now()-225||sY)&&i.some(e=>e.nodeType==1&&!iFe.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp(`handleKeyDown`,t=>t(e,WJ(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(!m)if(r&&c instanceof Kq&&!c.empty&&c.$head.sameParent(c.$anchor)&&!e.composing&&!(l.sel&&l.sel.anchor!=l.sel.head))m={start:c.from,endA:c.to,endB:c.to};else{if(l.sel){let t=pZ(e,e.state.doc,l.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);a&&n.setMeta(`composition`,a),e.dispatch(n)}}return}e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=l.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=l.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),ZJ&&QJ<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>l.from&&l.doc.textBetween(m.start-l.from-1,m.start-l.from+1)==` \xA0`&&(m.start--,m.endA--,m.endB--);let h=l.doc.resolveNoCache(m.start-l.from),g=l.doc.resolveNoCache(m.endB-l.from),_=u.resolve(m.start),v=h.sameParent(g)&&h.parent.inlineContent&&_.end()>=m.endA;if((iY&&e.input.lastIOSEnter>Date.now()-225&&(!v||i.some(e=>e.nodeName==`DIV`||e.nodeName==`P`))||!v&&h.post(e,WJ(13,`Enter`)))){e.input.lastIOSEnter=0;return}if(e.state.selection.anchor>m.start&&sFe(u,m.start,m.endA,h,g)&&e.someProp(`handleKeyDown`,t=>t(e,WJ(8,`Backspace`)))){sY&&tY&&e.domObserver.suppressSelectionUpdates();return}tY&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),sY&&!v&&h.start()!=g.start()&&g.parentOffset==0&&h.depth==g.depth&&l.sel&&l.sel.anchor==l.sel.head&&l.sel.head==m.endA&&(m.endB-=2,g=l.doc.resolveNoCache(m.endB-l.from),setTimeout(()=>{e.someProp(`handleKeyDown`,function(t){return t(e,WJ(13,`Enter`))})},20));let y=m.start,b=m.endA,x=t=>{let n=t||e.state.tr.replace(y,b,l.doc.slice(m.start-l.from,m.endB-l.from));if(l.sel){let t=pZ(e,n.doc,l.sel);t&&!(tY&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDeleteJY(e),20));let t=x(e.state.tr.delete(y,b)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(S=oFe(h.parent.content.cut(h.parentOffset,g.parentOffset),_.parent.content.cut(_.parentOffset,m.endA-_.start())))){let t=x(e.state.tr);S.type==`add`?t.addMark(y,b,S.mark):t.removeMark(y,b,S.mark),e.dispatch(t)}else if(h.parent.child(h.index()).isText&&h.index()==g.index()-+!g.textOffset){let t=h.parent.textBetween(h.parentOffset,g.parentOffset),n=()=>x(e.state.tr.insertText(t,y,b));e.someProp(`handleTextInput`,r=>r(e,y,b,t,n))||e.dispatch(n())}else e.dispatch(x());else e.dispatch(x())}function pZ(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:tX(e,t.resolve(n.anchor),t.resolve(n.head))}function oFe(e,t){let n=e.firstChild.marks,r=t.firstChild.marks,i=n,a=r,o,s,c;for(let e=0;ee.mark(s.addToSet(e.marks));else if(i.length==0&&a.length==1)s=a[0],o=`remove`,c=e=>e.mark(s.removeFromSet(e.marks));else return null;let l=[];for(let e=0;en||mZ(o,!0,!1)0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function cFe(e,t,n,r,i){let a=e.findDiffStart(t,n),o=n+e.size,s=n+t.size;if(a==null)return null;let{a:c,b:l}=e.findDiffEnd(t,o,s);if(i==`end`){let e=Math.max(0,a-Math.min(c,l));r-=c+e-a}if(c=c?a-r:0;a-=e,l=a+(l-c),c=a}else if(l=l?a-r:0;a-=e,c=a+(c-l),l=a}return{start:a,endA:c,endB:l}}var hZ=class{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new CPe,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(bZ),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement(`div`),e&&(e.appendChild?e.appendChild(this.dom):typeof e==`function`?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=vZ(this),_Z(this),this.nodeViews=yZ(this),this.docView=PY(this.state.doc,gZ(this),lZ(this),this.dom,this),this.domObserver=new ZPe(this,(e,t,n,r)=>aFe(this,e,t,n,r)),this.domObserver.start(),wPe(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&kX(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(bZ),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let e in this._props)t[e]=this._props[e];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){let n=this.state,r=!1,i=!1;e.storedMarks&&this.composing&&(BX(this),i=!0),this.state=e;let a=n.plugins!=e.plugins||this._props.plugins!=t.plugins;if(a||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=yZ(this);uFe(e,this.nodeViews)&&(this.nodeViews=e,r=!0)}(a||t.handleDOMEvents!=this._props.handleDOMEvents)&&kX(this),this.editable=vZ(this),_Z(this);let o=lZ(this),s=gZ(this),c=n.plugins!=e.plugins&&!n.doc.eq(e.doc)?`reset`:e.scrollToSelection>n.scrollToSelection?`to selection`:`preserve`,l=r||!this.docView.matchesNode(e.doc,s,o);(l||!e.selection.eq(n.selection))&&(i=!0);let u=c==`preserve`&&i&&this.dom.style.overflowAnchor==null&&RNe(this);if(i){this.domObserver.stop();let t=l&&(ZJ||tY)&&!this.composing&&!n.selection.empty&&!e.selection.empty&&lFe(n.selection,e.selection);if(l){let n=tY?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=zPe(this)),(r||!this.docView.update(e.doc,s,o,this))&&(this.docView.updateOuterDeco(s),this.docView.destroy(),this.docView=PY(e.doc,s,o,this.dom,this)),n&&(!this.trackWrites||!this.dom.contains(this.trackWrites))&&(t=!0)}let i=this.input.mouseDown;t||!(i&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&cPe(this)&&i.delaySelUpdate())?JY(this,t):($Y(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(n),this.dragging?.node&&!n.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,n),c==`reset`?this.dom.scrollTop=0:c==`to selection`?this.scrollToSelection():u&&zNe(u)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))&&!this.someProp(`handleScrollToSelection`,e=>e(this)))if(this.state.selection instanceof Jq){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&uY(this,t.getBoundingClientRect(),e)}else uY(this,this.coordsAtPos(this.state.selection.head,1),e)}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let e=0;e0&&ee.ownerDocument.getSelection()),this._root=e}return e||document}updateRoot(){this._root=null}posAtCoords(e){return GNe(this,e)}coordsAtPos(e,t=1){return yY(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(r==null)throw RangeError(`DOM position not inside the editor`);return r}endOfTextblock(e,t){return XNe(this,t||this.state,e)}pasteHTML(e,t){return UX(this,``,e,!1,t||new ClipboardEvent(`paste`))}pasteText(e,t){return UX(this,e,null,!0,t||new ClipboardEvent(`paste`))}serializeForClipboard(e){return gX(this,e)}destroy(){this.docView&&(TPe(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],lZ(this),this),this.dom.textContent=``):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,ONe())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return DPe(this,e)}domSelectionRange(){let e=this.domSelection();return e?rY&&this.root.nodeType===11&&NNe(this.dom.ownerDocument)==this.dom&&$Pe(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}};hZ.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};function gZ(e){let t=Object.create(null);return t.class=`ProseMirror`,t.contenteditable=String(e.editable),e.someProp(`attributes`,n=>{if(typeof n==`function`&&(n=n(e.state)),n)for(let e in n)e==`class`?t.class+=` `+n[e]:e==`style`?t.style=(t.style?t.style+`;`:``)+n[e]:!t[e]&&e!=`contenteditable`&&e!=`nodeName`&&(t[e]=String(n[e]))}),t.translate||=`no`,[XX.node(0,e.state.doc.content.size,t)]}function _Z(e){if(e.markCursor){let t=document.createElement(`img`);t.className=`ProseMirror-separator`,t.setAttribute(`mark-placeholder`,`true`),t.setAttribute(`alt`,``),e.cursorWrapper={dom:t,deco:XX.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function vZ(e){return!e.someProp(`editable`,t=>t(e.state)===!1)}function lFe(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}function yZ(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp(`nodeViews`,n),e.someProp(`markViews`,n),t}function uFe(e,t){let n=0,r=0;for(let r in e){if(e[r]!=t[r])return!0;n++}for(let e in t)r++;return n!=r}function bZ(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw RangeError(`Plugins passed directly to the view must not have a state component`)}for(var xZ={8:`Backspace`,9:`Tab`,10:`Enter`,12:`NumLock`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,44:`PrintScreen`,45:`Insert`,46:`Delete`,59:`;`,61:`=`,91:`Meta`,92:`Meta`,106:`*`,107:`+`,108:`,`,109:`-`,110:`.`,111:`/`,144:`NumLock`,145:`ScrollLock`,160:`Shift`,161:`Shift`,162:`Control`,163:`Control`,164:`Alt`,165:`Alt`,173:`-`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`},SZ={48:`)`,49:`!`,50:`@`,51:`#`,52:`$`,53:`%`,54:`^`,55:`&`,56:`*`,57:`(`,59:`:`,61:`+`,173:`_`,186:`:`,187:`+`,188:`<`,189:`_`,190:`>`,191:`?`,192:`~`,219:`{`,220:`|`,221:`}`,222:`"`},dFe=typeof navigator<`u`&&/Mac/.test(navigator.platform),fFe=typeof navigator<`u`&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),CZ=0;CZ<10;CZ++)xZ[48+CZ]=xZ[96+CZ]=String(CZ);for(var CZ=1;CZ<=24;CZ++)xZ[CZ+111]=`F`+CZ;for(var CZ=65;CZ<=90;CZ++)xZ[CZ]=String.fromCharCode(CZ+32),SZ[CZ]=String.fromCharCode(CZ);for(var wZ in xZ)SZ.hasOwnProperty(wZ)||(SZ[wZ]=xZ[wZ]);function pFe(e){var t=!(dFe&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||fFe&&e.shiftKey&&e.key&&e.key.length==1||e.key==`Unidentified`)&&e.key||(e.shiftKey?SZ:xZ)[e.keyCode]||e.key||`Unidentified`;return t==`Esc`&&(t=`Escape`),t==`Del`&&(t=`Delete`),t==`Left`&&(t=`ArrowLeft`),t==`Up`&&(t=`ArrowUp`),t==`Right`&&(t=`ArrowRight`),t==`Down`&&(t=`ArrowDown`),t}var mFe=typeof navigator<`u`&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),hFe=typeof navigator<`u`&&/Win/.test(navigator.platform);function gFe(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n==`Space`&&(n=` `);let r,i,a,o;for(let e=0;e[e,(...e)=>{let n=t(...e)(a);return!i.getMeta(`preventDispatch`)&&!this.hasCustomState&&r.dispatch(i),n}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o=[],s=!!e,c=e||i.tr,l=()=>(!s&&t&&!c.getMeta(`preventDispatch`)&&!this.hasCustomState&&a.dispatch(c),o.every(e=>e===!0)),u={...Object.fromEntries(Object.entries(n).map(([e,n])=>[e,(...e)=>{let r=this.buildProps(c,t),i=n(...e)(r);return o.push(i),u}])),run:l};return u}static createFakeChain(){let e=new Proxy({},{get:(t,n)=>{if(n!==`then`)return n===`run`?()=>!1:()=>e}});return e}createCan(e){let{rawCommands:t,state:n}=this,r=e||n.tr,i=this.buildProps(r,!1);return{...Object.fromEntries(Object.entries(t).map(([e,t])=>[e,(...e)=>t(...e)({...i,dispatch:void 0})])),chain:()=>this.createChain(r,!1)}}static createFallbackCan(){let t=e.createFakeChain();return new Proxy({chain:()=>t},{get:(e,t)=>{if(t!==`then`)return t===`chain`?e.chain:()=>!1}})}buildProps(e,t=!0){let{rawCommands:n,editor:r,state:i}=this,{view:a}=r,o={tr:e,editor:r,view:a,state:DZ({state:i,transaction:e}),dispatch:t?()=>void 0:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(...e)=>t(...e)(o)]))}};return o}},yFe=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{if(!e.isDestroyed){var n;t.dom.blur(),(n=window)==null||(n=n.getSelection())==null||n.removeAllRanges()}}),!0),bFe=(e=!0)=>({commands:t})=>t.setContent(``,{emitUpdate:e}),xFe=()=>({state:e,tr:t,dispatch:n})=>{let{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:n,$to:r})=>{e.doc.nodesBetween(n.pos,r.pos,(e,n)=>{if(e.type.isText)return;let{doc:r,mapping:i}=t,a=r.resolve(i.map(n)),o=r.resolve(i.map(n+e.nodeSize)),s=a.blockRange(o);if(!s)return;let c=vq(s);if(e.type.isTextblock){let{defaultType:e}=a.parent.contentMatchAt(a.index());t.setNodeMarkup(s.start,e)}(c||c===0)&&t.lift(s,c)})}),!0},SFe=e=>t=>e(t),CFe=()=>({state:e,dispatch:t})=>wJ(e,t),wFe=(e,t)=>({editor:n,tr:r})=>{let{state:i}=n,a=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);let o=r.mapping.map(t);return r.insert(o,a.content),r.setSelection(new Kq(r.doc.resolve(Math.max(o-1,0)))),!0},TFe=()=>({tr:e,dispatch:t})=>{let{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;let i=e.selection.$anchor;for(let n=i.depth;n>0;--n)if(i.node(n).type===r.type){if(t){let t=i.before(n),r=i.after(n);e.delete(t,r).scrollIntoView()}return!0}return!1};function kZ(e,t){if(typeof e==`string`){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}var EFe=e=>({tr:t,state:n,dispatch:r})=>{let i=kZ(e,n.schema),a=t.selection.$anchor;for(let e=a.depth;e>0;--e)if(a.node(e).type===i){if(r){let n=a.before(e),r=a.after(e);t.delete(n,r).scrollIntoView()}return!0}return!1},DFe=e=>({tr:t,dispatch:n})=>{let{from:r,to:i}=e;return n&&t.delete(r,i),!0},OFe=e=>e.content?/^text(\*|\+)/.test(e.content):!1,AZ=(e,t,n)=>{if(!e.parent.isInline||n===`left`&&e.pos>e.start()||n===`right`&&e.pos({from:AZ(e,n,`left`),to:AZ(t,n,`right`)}),AFe=()=>({state:e,dispatch:t})=>{if(e.selection.empty)return!1;if(t){let n=e.tr,{ranges:r}=e.selection,i=n.steps.length;r.forEach(t=>{let r=n.mapping.slice(i),{from:a,to:o}=kFe(n.doc.resolve(r.map(t.$from.pos)),n.doc.resolve(r.map(t.$to.pos)),e.schema);n.deleteRange(a,o)}),n.selection.empty||n.setSelection(Kq.near(n.doc.resolve(n.selection.from))),n.scrollIntoView(),t(n)}return!0},jFe=()=>({commands:e})=>e.keyboardShortcut(`Enter`),MFe=()=>({state:e,dispatch:t})=>CJ(e,t);function jZ(e){return Object.prototype.toString.call(e)===`[object RegExp]`}function MZ(e,t,n={strict:!0}){let r=Object.keys(t);return r.length?r.every(r=>n.strict?t[r]===e[r]:jZ(t[r])?t[r].test(e[r]):t[r]===e[r]):!0}function NZ(e,t,n={}){return e.find(e=>e.type===t&&MZ(Object.fromEntries(Object.keys(n).map(t=>[t,e.attrs[t]])),n))}function PZ(e,t,n={}){return!!NZ(e,t,n)}function FZ(e,t,n){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if((!r.node||!r.node.marks.some(e=>e.type===t))&&(r=e.parent.childBefore(e.parentOffset)),!r.node||!r.node.marks.some(e=>e.type===t))return;if(!n){let e=r.node.marks.find(e=>e.type===t);e&&(n=e.attrs)}if(!NZ([...r.node.marks],t,n))return;let i=r.index,a=e.start()+r.offset,o=i+1,s=a+r.node.nodeSize;for(;i>0&&PZ([...e.parent.child(i-1).marks],t,n);)--i,a-=e.parent.child(i).nodeSize;for(;o({tr:n,state:r,dispatch:i})=>{let a=IZ(e,r.schema),{doc:o,selection:s}=n,{$from:c,from:l,to:u}=s;if(i){let e=FZ(c,a,t);if(e&&e.from<=l&&e.to>=u){let t=Kq.create(o,e.from,e.to);n.setSelection(t)}}return!0},PFe=e=>t=>{let n=typeof e==`function`?e(t):e;for(let e=0;e({editor:n,view:r,tr:i,dispatch:a})=>{t={scrollIntoView:!0,...t};let o=()=>{(VZ()||BZ())&&r.dom.focus(),FFe()&&!VZ()&&!BZ()&&r.dom.focus({preventScroll:!0}),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t?.scrollIntoView&&n.commands.scrollIntoView())})};try{if(r.hasFocus()&&e===null||e===!1)return!0}catch{return!1}if(a&&e===null&&!LZ(n.state.selection))return o(),!0;let s=zZ(i.doc,e)||n.state.selection,c=n.state.selection.eq(s);return a&&(c||i.setSelection(s),c&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},LFe=(e,t)=>n=>e.every((e,r)=>t(e,{...n,index:r})),RFe=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),HZ=e=>{let t=e.childNodes;for(let n=t.length-1;n>=0;--n){let r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&HZ(r)}return e};function UZ(e){if(typeof window>`u`)throw Error(`[tiptap error]: there is no window object available, so this function cannot be used`);let t=`${e}`,n=new window.DOMParser().parseFromString(t,`text/html`).body;return HZ(n)}function WZ(e){return typeof e?.nodesBetween==`function`}function GZ(e,t,n){if(WZ(e))return e;let r=typeof e==`object`&&!!e;n={slice:!0,parseOptions:{},...n};let i=typeof e==`string`;if(r)try{if(Array.isArray(e)&&e.length>0)return tK.fromArray(e.map(e=>t.nodeFromJSON(e)));let r=t.nodeFromJSON(e);return n.errorOnInvalidContent&&r.check(),r}catch(r){if(n.errorOnInvalidContent)throw Error(`[tiptap error]: Invalid JSON content`,{cause:r});return console.warn(`[tiptap warn]: Invalid content.`,`Passed value:`,e,`Error:`,r),GZ(``,t,n)}if(i){if(n.errorOnInvalidContent){let r=!1,i=``,a=new PK({topNode:t.spec.topNode,marks:t.spec.marks,nodes:t.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:`inline*`,group:`block`,parseDOM:[{tag:`*`,getAttrs:e=>(r=!0,i=typeof e==`string`?e:e.outerHTML,null)}]}})});if(n.slice?IK.fromSchema(a).parseSlice(UZ(e),n.parseOptions):IK.fromSchema(a).parse(UZ(e),n.parseOptions),n.errorOnInvalidContent&&r)throw Error(`[tiptap error]: Invalid HTML content`,{cause:Error(`Invalid element found: ${i}`)})}let r=IK.fromSchema(t);return n.slice?r.parseSlice(UZ(e),n.parseOptions).content:r.parse(UZ(e),n.parseOptions)}return GZ(``,t,n)}function KZ(e){return!(`type`in e)}function qZ(e,t,n){let r=e.steps.length-1;if(r{o===0&&(o=r)}),e.setSelection(Uq.near(e.doc.resolve(o),n))}var zFe=(e,t,n)=>({tr:r,dispatch:i,editor:a})=>{if(i){n={parseOptions:a.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let i,o=e=>{a.emit(`contentError`,{editor:a,error:e,disableCollaboration:()=>{`collaboration`in a.storage&&typeof a.storage.collaboration==`object`&&a.storage.collaboration&&(a.storage.collaboration.isDisabled=!0)}})},s={preserveWhitespace:`full`,...n.parseOptions};if(!n.errorOnInvalidContent&&!a.options.enableContentCheck&&a.options.emitContentError)try{GZ(t,a.schema,{parseOptions:s,errorOnInvalidContent:!0})}catch(e){o(e)}try{i=GZ(t,a.schema,{parseOptions:s,errorOnInvalidContent:n.errorOnInvalidContent??a.options.enableContentCheck})}catch(e){return o(e),!1}let{from:c,to:l}=typeof e==`number`?{from:e,to:e}:{from:e.from,to:e.to},u=!0,d=!0,f=KZ(i)?i.content:[i];if(f.forEach(e=>{e.check(),u=u?e.isText&&e.marks.length===0:!1,d=d?e.isBlock:!1}),c===l&&d){let{parent:e}=r.doc.resolve(c);e.isTextblock&&!e.type.spec.code&&!e.childCount&&(--c,l+=1)}let p;if(u)p=Array.isArray(t)?t.map(e=>e.text||``).join(``):WZ(t)?f.map(e=>e.text??``).join(``):typeof t==`object`&&t&&t.text?t.text:t,r.insertText(p,c,l);else{p=tK.from(f);let e=r.doc.resolve(c),t=e.node(),n=e.parentOffset===0,i=t.isText||t.isTextblock,a=t.content.size>0;n&&i&&a&&d&&(c=Math.max(0,c-1)),r.replaceWith(c,l,f)}n.updateSelection&&qZ(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta(`applyInputRules`,{from:c,text:p}),n.applyPasteRules&&r.setMeta(`applyPasteRules`,{from:c,text:p})}return!0};function JZ(e){for(let t=0;t({tr:t,dispatch:n,editor:r})=>{let{pos:i,attrs:a,content:o,updateSelection:s=!0}=e,c;c=typeof i==`number`?t.doc.resolve(i):i||t.selection.$from;let l=JZ(c.parent.contentMatchAt(c.index()));if(!l)return!1;let u=Object.keys(l.spec.attrs||{}),d=a?Object.fromEntries(Object.entries(a).filter(([e])=>u.includes(e))):{},f;if(o){let e=GZ(o,r.schema);f=l.createAndFill(d,e)}else f=l.createAndFill(d);return f?(n&&(t.insert(c.pos,f),s&&qZ(t,t.steps.length-1,-1)),!0):!1},VFe=()=>({state:e,dispatch:t})=>dNe(e,t),HFe=()=>({state:e,dispatch:t})=>fNe(e,t),UFe=()=>({state:e,dispatch:t})=>fJ(e,t),WFe=()=>({state:e,dispatch:t})=>vJ(e,t),GFe=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Eq(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},KFe=()=>({state:e,dispatch:t,tr:n})=>{try{let r=Eq(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},qFe=()=>({state:e,dispatch:t})=>lNe(e,t),JFe=()=>({state:e,dispatch:t})=>uNe(e,t);function YZ(){return typeof navigator<`u`?/Mac/.test(navigator.platform):!1}function YFe(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n===`Space`&&(n=` `);let r,i,a,o;for(let e=0;e({editor:t,view:n,tr:r,dispatch:i})=>{let a=YFe(e).split(/-(?!$)/),o=a.find(e=>![`Alt`,`Ctrl`,`Meta`,`Shift`].includes(e)),s=new KeyboardEvent(`keydown`,{key:o===`Space`?` `:o,altKey:a.includes(`Alt`),ctrlKey:a.includes(`Ctrl`),metaKey:a.includes(`Meta`),shiftKey:a.includes(`Shift`),bubbles:!0,cancelable:!0});return t.captureTransaction(()=>{n.someProp(`handleKeyDown`,e=>e(n,s))})?.steps.forEach(e=>{let t=e.map(r.mapping);t&&i&&r.maybeStep(t)}),!0};function XZ(e,t,n={}){let{from:r,to:i,empty:a}=e.selection,o=t?kZ(t,e.schema):null,s=[];e.doc.nodesBetween(r,i,(e,t)=>{if(e.isText)return;let n=Math.max(r,t),a=Math.min(i,t+e.nodeSize);s.push({node:e,from:n,to:a})});let c=i-r,l=s.filter(e=>o?o.name===e.node.type.name:!0).filter(e=>MZ(e.node.attrs,n,{strict:!1}));return a?!!l.length:l.reduce((e,t)=>e+t.to-t.from,0)>=c}var ZFe=(e,t={})=>({state:n,dispatch:r})=>XZ(n,kZ(e,n.schema),t)?pNe(n,r):!1,QFe=()=>({state:e,dispatch:t})=>TJ(e,t),$Fe=e=>({state:t,dispatch:n})=>wNe(kZ(e,t.schema))(t,n),eIe=()=>({state:e,dispatch:t})=>xJ(e,t);function ZZ(e,t){return t.nodes[e]?`node`:t.marks[e]?`mark`:null}function QZ(e,t){let n=typeof t==`string`?[t]:t;return Object.keys(e).reduce((t,r)=>(n.includes(r)||(t[r]=e[r]),t),{})}var tIe=(e,t)=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=ZZ(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=kZ(e,r.schema)),s===`mark`&&(o=IZ(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{r.doc.nodesBetween(e.$from.pos,e.$to.pos,(e,r)=>{a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,QZ(e.attrs,t))),o&&e.marks.length&&e.marks.forEach(a=>{o===a.type&&(c=!0,i&&n.addMark(r,r+e.nodeSize,o.create(QZ(a.attrs,t))))})})}),c},nIe=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),rIe=()=>({tr:e,dispatch:t})=>{if(t){let t=new Yq(e.doc);e.setSelection(t)}return!0},iIe=()=>({state:e,dispatch:t})=>hJ(e,t),aIe=()=>({state:e,dispatch:t})=>yJ(e,t),oIe=()=>({state:e,dispatch:t})=>gNe(e,t),sIe=()=>({state:e,dispatch:t})=>kJ(e,t),cIe=()=>({state:e,dispatch:t})=>OJ(e,t);function $Z(e,t,n={},r={}){return GZ(e,t,{slice:!1,parseOptions:n,errorOnInvalidContent:r.errorOnInvalidContent})}var lIe=(e,{errorOnInvalidContent:t,emitUpdate:n=!0,parseOptions:r={}}={})=>({editor:i,tr:a,dispatch:o,commands:s})=>{let{doc:c}=a;if(r.preserveWhitespace!==`full`){let s=$Z(e,i.schema,r,{errorOnInvalidContent:t??i.options.enableContentCheck});if(o){let e=KZ(s)?s.content:[s];a.replaceWith(0,c.content.size,e).setMeta(`preventUpdate`,!n)}return!0}return o&&a.setMeta(`preventUpdate`,!n),s.insertContentAt({from:0,to:c.content.size},e,{parseOptions:r,errorOnInvalidContent:t??i.options.enableContentCheck})};function eQ(e,t){let n=IZ(t,e.schema),{from:r,to:i,empty:a}=e.selection,o=[];a?(e.storedMarks&&o.push(...e.storedMarks),o.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,i,e=>{o.push(...e.marks)});let s=o.find(e=>e.type.name===n.name);return s?{...s.attrs}:{}}function tQ(e,t){let n=new Vq(e);return t.forEach(e=>{e.steps.forEach(e=>{n.step(e)})}),n}function uIe(e,t,n){let r=[];return e.nodesBetween(t.from,t.to,(e,t)=>{n(e)&&r.push({node:e,pos:t})}),r}function dIe(e,t){for(let n=e.depth;n>0;--n){let r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function nQ(e){return t=>dIe(t.$from,e)}function rQ(e,t,n){return e.config[t]===void 0&&e.parent?rQ(e.parent,t,n):typeof e.config[t]==`function`?e.config[t].bind({...n,parent:e.parent?rQ(e.parent,t,n):null}):e.config[t]}function iQ(e){return e.map(e=>{let t=rQ(e,`addExtensions`,{name:e.name,options:e.options,storage:e.storage});return t?[e,...iQ(t())]:e}).flat(10)}function aQ(e,t){let n=qK.fromSchema(t).serializeFragment(e),r=document.implementation.createHTMLDocument().createElement(`div`);return r.appendChild(n),r.innerHTML}function oQ(e){return typeof e==`function`}function sQ(e,t=void 0,...n){return oQ(e)?t?e.bind(t)(...n):e(...n):e}function fIe(e={}){return Object.keys(e).length===0&&e.constructor===Object}function cQ(e){return{baseExtensions:e.filter(e=>e.type===`extension`),nodeExtensions:e.filter(e=>e.type===`node`),markExtensions:e.filter(e=>e.type===`mark`)}}function lQ(e){let t=[],{nodeExtensions:n,markExtensions:r}=cQ(e),i=[...n,...r],a={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1},o=n.filter(e=>e.name!==`text`).map(e=>e.name),s=r.map(e=>e.name),c=[...o,...s];return e.forEach(e=>{let n=rQ(e,`addGlobalAttributes`,{name:e.name,options:e.options,storage:e.storage,extensions:i});n&&n().forEach(e=>{let n;n=Array.isArray(e.types)?e.types:e.types===`*`?c:e.types===`nodes`?o:e.types===`marks`?s:[],n.forEach(n=>{Object.entries(e.attributes).forEach(([e,r])=>{t.push({type:n,name:e,attribute:{...a,...r}})})})})}),i.forEach(e=>{let n=rQ(e,`addAttributes`,{name:e.name,options:e.options,storage:e.storage});if(!n)return;let r=n();Object.entries(r).forEach(([n,r])=>{let i={...a,...r};typeof i?.default==`function`&&(i.default=i.default()),i?.isRequired&&i?.default===void 0&&delete i.default,t.push({type:e.name,name:n,attribute:i})})}),t}function pIe(e){let t=[],n=``,r=!1,i=!1,a=0,o=e.length;for(let s=0;s0){--a,n+=o;continue}if(o===`;`&&a===0){t.push(n),n=``;continue}}n+=o}return n&&t.push(n),t}function uQ(e){let t=[],n=pIe(e||``),r=n.length;for(let e=0;e!!e).reduce((e,t)=>{let n={...e};return Object.entries(t).forEach(([e,t])=>{if(e===`__proto__`){Object.defineProperty(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0});return}if(!n[e]){n[e]=t;return}if(e===`class`){let r=t?String(t).split(` `):[],i=n[e]?n[e].split(` `):[],a=r.filter(e=>!i.includes(e));n[e]=[...i,...a].join(` `)}else if(e===`style`){let r=new Map([...uQ(n[e]),...uQ(t)]);n[e]=Array.from(r.entries()).map(([e,t])=>`${e}: ${t}`).join(`; `)}else n[e]=t}),n},{})}function fQ(e,t){return t.filter(t=>t.type===e.type.name).filter(e=>e.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(e.attrs)||{}:{[t.name]:e.attrs[t.name]}).reduce((e,t)=>dQ(e,t),{})}function mIe(e){return typeof e==`string`?e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e===`true`?!0:e===`false`?!1:e:e}function pQ(e,t){return`style`in e?e:{...e,getAttrs:n=>{let r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;let i=t.reduce((e,t)=>{let r=t.attribute.parseHTML?t.attribute.parseHTML(n):mIe(n.getAttribute(t.name));return r==null?e:{...e,[t.name]:r}},{});return{...r,...i}}}}function mQ(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>e===`attrs`&&fIe(t)?!1:t!=null))}function hQ(e){var t,n;let r={};return!(!(e==null||(t=e.attribute)==null)&&t.isRequired)&&`default`in(e?.attribute||{})&&(r.default=e.attribute.default),(e==null||(n=e.attribute)==null?void 0:n.validate)!==void 0&&(r.validate=e.attribute.validate),[e.name,r]}function hIe(e,t){let n=lQ(e),{nodeExtensions:r,markExtensions:i}=cQ(e);return new PK({topNode:r.find(e=>rQ(e,`topNode`))?.name,nodes:Object.fromEntries(r.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=mQ({...e.reduce((e,t)=>{let n=rQ(t,`extendNodeSchema`,a);return{...e,...n?n(r):{}}},{}),content:sQ(rQ(r,`content`,a)),marks:sQ(rQ(r,`marks`,a)),group:sQ(rQ(r,`group`,a)),inline:sQ(rQ(r,`inline`,a)),atom:sQ(rQ(r,`atom`,a)),selectable:sQ(rQ(r,`selectable`,a)),draggable:sQ(rQ(r,`draggable`,a)),code:sQ(rQ(r,`code`,a)),whitespace:sQ(rQ(r,`whitespace`,a)),linebreakReplacement:sQ(rQ(r,`linebreakReplacement`,a)),defining:sQ(rQ(r,`defining`,a)),isolating:sQ(rQ(r,`isolating`,a)),attrs:Object.fromEntries(i.map(hQ))}),s=sQ(rQ(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>pQ(e,i)));let c=rQ(r,`renderHTML`,a);c&&(o.toDOM=e=>c({node:e,HTMLAttributes:fQ(e,i)}));let l=rQ(r,`renderText`,a);return l&&(o.toText=l),[r.name,o]})),marks:Object.fromEntries(i.map(r=>{let i=n.filter(e=>e.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t},o=mQ({...e.reduce((e,t)=>{let n=rQ(t,`extendMarkSchema`,a);return{...e,...n?n(r):{}}},{}),inclusive:sQ(rQ(r,`inclusive`,a)),excludes:sQ(rQ(r,`excludes`,a)),group:sQ(rQ(r,`group`,a)),spanning:sQ(rQ(r,`spanning`,a)),code:sQ(rQ(r,`code`,a)),attrs:Object.fromEntries(i.map(hQ))}),s=sQ(rQ(r,`parseHTML`,a));s&&(o.parseDOM=s.map(e=>pQ(e,i)));let c=rQ(r,`renderHTML`,a);return c&&(o.toDOM=e=>c({mark:e,HTMLAttributes:fQ(e,i)})),[r.name,o]}))})}function gIe(e){let t=e.filter((t,n)=>e.indexOf(t)!==n);return Array.from(new Set(t))}function gQ(e){return e.sort((e,t)=>{let n=rQ(e,`priority`)||100,r=rQ(t,`priority`)||100;return n>r?-1:+(ne.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(e=>`'${e}'`).join(`, `)}]. This can lead to issues.`),t}function vQ(e,t,n){let{from:r,to:i}=t,{blockSeparator:a=` -`,textSerializers:o={}}=n||{},s=``;return e.nodesBetween(r,i,(e,n,c,l)=>{e.isBlock&&n>r&&(s+=a);let u=o?.[e.type.name];if(u)return c&&(s+=u({node:e,pos:n,parent:c,index:l,range:t})),!1;if(e.isText){var d;s+=e==null||(d=e.text)==null?void 0:d.slice(Math.max(r,n)-n,i-n)}}),s}function gIe(e,t){return vQ(e,{from:0,to:e.content.size},t)}function yQ(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}function _Ie(e,t){let n=kZ(t,e.schema),{from:r,to:i}=e.selection,a=[];e.doc.nodesBetween(r,i,e=>{a.push(e)});let o=a.reverse().find(e=>e.type.name===n.name);return o?{...o.attrs}:{}}function bQ(e,t){let n=ZZ(typeof t==`string`?t:t.name,e.schema);return n===`node`?_Ie(e,t):n===`mark`?eQ(e,t):{}}function vIe(e,t=JSON.stringify){let n={};return e.filter(e=>{let r=t(e);return Object.prototype.hasOwnProperty.call(n,r)?!1:n[r]=!0})}function yIe(e){let t=vIe(e);return t.length===1?t:t.filter((e,n)=>!t.filter((e,t)=>t!==n).some(t=>e.oldRange.from>=t.oldRange.from&&e.oldRange.to<=t.oldRange.to&&e.newRange.from>=t.newRange.from&&e.newRange.to<=t.newRange.to))}function xQ(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((e,i)=>{let a=[];if(e.ranges.length)e.forEach((e,t)=>{a.push({from:e,to:t})});else{let{from:e,to:t}=n[i];if(e===void 0||t===void 0)return;a.push({from:e,to:t})}a.forEach(({from:e,to:n})=>{let a=t.slice(i).map(e,-1),o=t.slice(i).map(n),s=t.invert().map(a,-1),c=t.invert().map(o);r.push({oldRange:{from:s,to:c},newRange:{from:a,to:o}})})}),yIe(r)}function SQ(e,t,n){let r=[];return e===t?n.resolve(e).marks().forEach(t=>{let i=FZ(n.resolve(e),t.type);i&&r.push({mark:t,...i})}):n.nodesBetween(e,t,(e,t)=>{!e||e?.nodeSize===void 0||r.push(...e.marks.map(n=>({from:t,to:t+e.nodeSize,mark:n})))}),r}var bIe=(e,t,n,r=20)=>{let i=e.doc.resolve(n),a=r,o=null;for(;a>0&&o===null;){let e=i.node(a);e?.type.name===t?o=e:--a}return[o,a]},xIe=e=>{let t=e.depth-1;if(t<0)return null;let n=e.index(t);return n===0?null:e.node(t).child(n-1)};function CQ(e,t){return t.nodes[e]||t.marks[e]||null}function wQ(e,t,n){return Object.fromEntries(Object.entries(n).filter(([n])=>{let r=e.find(e=>e.type===t&&e.name===n);return r?r.attribute.keepOnSplit:!1}))}var SIe=(e,t=500)=>{let n=``,r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(e,t,i,a)=>{var o;let s=(o=e.type.spec).toText?.call(o,{node:e,pos:t,parent:i,index:a})||e.textContent||`%leaf%`;n+=e.isAtom&&!e.isText?s:s.slice(0,Math.max(0,r-t))}),n};function TQ(e,t,n={}){let{empty:r,ranges:i}=e.selection,a=t?IZ(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(e=>a?a.name===e.type.name:!0).find(e=>MZ(e.attrs,n,{strict:!1}));let o=0,s=[];if(i.forEach(({$from:t,$to:n})=>{let r=t.pos,i=n.pos;e.doc.nodesBetween(r,i,(e,t)=>{if(a&&e.inlineContent&&!e.type.allowsMarkType(a))return!1;if(!e.isText&&!e.marks.length)return;let n=Math.max(r,t),c=Math.min(i,t+e.nodeSize),l=c-n;o+=l,s.push(...e.marks.map(e=>({mark:e,from:n,to:c})))})}),o===0)return!1;let c=s.filter(e=>a?a.name===e.mark.type.name:!0).filter(e=>MZ(e.mark.attrs,n,{strict:!1})).reduce((e,t)=>e+t.to-t.from,0),l=s.filter(e=>a?e.mark.type!==a&&e.mark.type.excludes(a):!0).reduce((e,t)=>e+t.to-t.from,0);return(c>0?c+l:c)>=o}function CIe(e,t,n={}){if(!t)return XZ(e,null,n)||TQ(e,null,n);let r=ZZ(t,e.schema);return r===`node`?XZ(e,t,n):r===`mark`?TQ(e,t,n):!1}var wIe=(e,t)=>{let{$from:n,$to:r,$anchor:i}=e.selection;if(t){let n=nQ(e=>e.type.name===t)(e.selection);if(!n)return!1;let r=e.doc.resolve(n.pos+1);return i.pos+1===r.end()}return!(r.parentOffset{let{$from:t,$to:n}=e.selection;return!(t.parentOffset>0||t.pos!==n.pos)};function EQ(e,t){return Array.isArray(t)?t.some(t=>(typeof t==`string`?t:t.name)===e.name):t}function DQ(e,t){let{nodeExtensions:n}=cQ(t),r=n.find(t=>t.name===e);if(!r)return!1;let i=sQ(rQ(r,`group`,{name:r.name,options:r.options,storage:r.storage}));return typeof i==`string`?i.split(` `).includes(`list`):!1}function OQ(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){if(n){if(e.type.name===`hardBreak`)return!0;if(e.isText)return!/\S/.test(e.text??``)}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let r=!0;return e.content.forEach(e=>{r!==!1&&(OQ(e,{ignoreWhitespace:n,checkChildren:t})||(r=!1))}),r}return!1}function kQ(e){return e instanceof Jq}var AQ=class e{constructor(e){this.position=e}static fromJSON(t){return new e(t.position)}toJSON(){return{position:this.position}}};function EIe(e,t){let n=t.mapping.mapResult(e.position);return{position:new AQ(n.pos),mapResult:n}}function DIe(e){return new AQ(e)}function OIe(e,t,n){let{selection:r}=t,i=null;if(LZ(r)&&(i=r.$cursor),i){let t=e.storedMarks??i.marks();return i.parent.type.allowsMarkType(n)&&(!!n.isInSet(t)||!t.some(e=>e.type.excludes(n)))}let{ranges:a}=r;return a.some(({$from:t,$to:r})=>{let i=t.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(t.pos,r.pos,(e,t,r)=>{if(i)return!1;if(e.isInline){let t=!r||r.type.allowsMarkType(n),a=!!n.isInSet(e.marks)||!e.marks.some(e=>e.type.excludes(n));i=t&&a}return!i}),i})}var kIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=n,{empty:o,ranges:s}=a,c=IZ(e,r.schema);if(i)if(o){let e=eQ(r,c);n.addStoredMark(c.create({...e,...t}))}else s.forEach(e=>{let i=e.$from.pos,a=e.$to.pos;r.doc.nodesBetween(i,a,(e,r)=>{let o=Math.max(r,i),s=Math.min(r+e.nodeSize,a);e.marks.find(e=>e.type===c)?e.marks.forEach(e=>{c===e.type&&n.addMark(o,s,c.create({...e.attrs,...t}))}):n.addMark(o,s,c.create(t))})});return OIe(r,n,c)},AIe=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),jIe=(e,t={})=>({state:n,dispatch:r,chain:i})=>{let a=kZ(e,n.schema),o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),a.isTextblock?i().command(({commands:e})=>AJ(a,{...o,...t})(n)?!0:e.clearNodes()).command(({state:e})=>AJ(a,{...o,...t})(e,r)).run():(console.warn(`[tiptap warn]: Currently "setNode()" only supports text block nodes.`),!1)},MIe=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,r=RZ(e,0,n.content.size),i=Jq.create(n,r);t.setSelection(i)}return!0},NIe=(e,t)=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=r,o,s;return typeof t==`number`?(o=t,s=t):t&&`from`in t&&`to`in t?(o=t.from,s=t.to):(o=a.from,s=a.to),i&&n.doc.nodesBetween(o,s,(t,r)=>{t.isText||n.setNodeMarkup(r,void 0,{...t.attrs,dir:e})}),!0},PIe=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,{from:r,to:i}=typeof e==`number`?{from:e,to:e}:e,a=Kq.atStart(n).from,o=Kq.atEnd(n).to,s=RZ(r,a,o),c=RZ(i,a,o),l=Kq.create(n,s,c);t.setSelection(l)}return!0},FIe=e=>({state:t,dispatch:n})=>ENe(kZ(e,t.schema))(t,n);function jQ(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(e=>t?.includes(e.type.name));e.tr.ensureMarks(r)}}var IIe=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:i})=>{let{selection:a,doc:o}=t,{$from:s,$to:c}=a,l=i.extensionManager.attributes,u=wQ(l,s.node().type.name,s.node().attrs);if(a instanceof Jq&&a.node.isBlock)return!s.parentOffset||!Cq(o,s.pos)?!1:(r&&(e&&jQ(n,i.extensionManager.splittableMarks),t.split(s.pos).scrollIntoView()),!0);if(!s.parent.isBlock)return!1;let d=c.parentOffset===c.parent.content.size,f=s.depth===0?void 0:JZ(s.node(-1).contentMatchAt(s.indexAfter(-1))),p=d&&f?[{type:f,attrs:u}]:void 0,m=Cq(t.doc,t.mapping.map(s.pos),1,p);if(!p&&!m&&Cq(t.doc,t.mapping.map(s.pos),1,f?[{type:f}]:void 0)&&(m=!0,p=f?[{type:f,attrs:u}]:void 0),r){if(m&&(a instanceof Kq&&t.deleteSelection(),t.split(t.mapping.map(s.pos),1,p),f&&!d&&!s.parentOffset&&s.parent.type!==f)){let e=t.mapping.map(s.before()),n=t.doc.resolve(e);s.node(-1).canReplaceWith(n.index(),n.index()+1,f)&&t.setNodeMarkup(t.mapping.map(s.before()),f)}e&&jQ(n,i.extensionManager.splittableMarks),t.scrollIntoView()}return m},LIe=(e,t={})=>({tr:n,state:r,dispatch:i,editor:a})=>{let o=kZ(e,r.schema),{$from:s,$to:c}=r.selection,l=r.selection.node;if(l&&l.isBlock||s.depth<2||!s.sameParent(c))return!1;let u=s.node(-1);if(u.type!==o)return!1;let d=a.extensionManager.attributes;if(s.parent.content.size===0&&s.node(-1).childCount===s.indexAfter(-1)){if(s.depth===2||s.node(-3).type!==o||s.index(-2)!==s.node(-2).childCount-1)return!1;if(i){let e=tK.empty,r=s.index(-1)?1:s.index(-2)?2:3;for(let t=s.depth-r;t>=s.depth-3;--t)e=tK.from(s.node(t).copy(e));let i=s.indexAfter(-1){if(u>-1)return!1;e.isTextblock&&e.content.size===0&&(u=t+1)}),u>-1&&n.setSelection(Kq.near(n.doc.resolve(u))),n.scrollIntoView()}return!0}let f=c.pos===s.end()?u.contentMatchAt(0).defaultType:null,p={...wQ(d,u.type.name,u.attrs),...t},m={...wQ(d,s.node().type.name,s.node().attrs),...t};n.delete(s.pos,c.pos);let h=f?[{type:o,attrs:p},{type:f,attrs:m}]:[{type:o,attrs:p}];if(!Cq(n.doc,s.pos,2))return!1;if(i){let{selection:e,storedMarks:t}=r,{splittableMarks:o}=a.extensionManager,c=t||e.$to.parentOffset&&e.$from.marks();if(n.split(s.pos,2,h).scrollIntoView(),!c||!i)return!0;let l=c.filter(e=>o.includes(e.type.name));n.ensureMarks(l)}return!0};function MQ(e){return!e||e===`1`?null:e}function NQ(e,t){return MQ(e)===MQ(t)}var PQ=(e,t)=>{let n=nQ(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return!(n.node.type===i?.type&&wq(e.doc,n.pos))||!NQ(n.node.attrs.type,i?.attrs.type)||e.join(n.pos),!0},FQ=(e,t)=>{let n=nQ(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return!(n.node.type===i?.type&&wq(e.doc,r))||!NQ(n.node.attrs.type,i?.attrs.type)||e.join(r),!0};function RIe(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),i=t.resolve(n.nodeSize-1);return Kq.between(r,i)}var zIe=(e,t,n,r={})=>({editor:i,tr:a,state:o,dispatch:s,chain:c,commands:l,can:u})=>{let{extensions:d,splittableMarks:f}=i.extensionManager,p=kZ(e,o.schema),m=kZ(t,o.schema),{selection:h,storedMarks:g}=o,{$from:_,$to:v}=h,y=_.blockRange(v),b=g||h.$to.parentOffset&&h.$from.marks();if(!y)return!1;let x=nQ(e=>DQ(e.type.name,d))(h),S=h.from===0&&h.to===o.doc.content.size,C=o.doc.content.content,w=C.length===1?C[0]:null,T=S&&w&&DQ(w.type.name,d)?{node:w,pos:0,depth:0}:null,E=x??T,D=!!x&&y.depth>=1&&y.depth-x.depth<=1,O=!!T;if((D||O)&&E){if(E.node.type===p)return S&&O?c().command(({tr:e,dispatch:t})=>{let n=RIe(e);return n?(e.setSelection(n),t&&t(e),!0):!1}).liftListItem(m).run():l.liftListItem(m);if(DQ(E.node.type.name,d)&&p.validContent(E.node.content))return c().command(()=>(a.setNodeMarkup(E.pos,p),!0)).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run()}return!n||!b||!s?c().command(()=>u().wrapInList(p,r)?!0:l.clearNodes()).wrapInList(p,r).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run():c().command(()=>{let e=u().wrapInList(p,r),t=b.filter(e=>f.includes(e.type.name));return a.ensureMarks(t),e?!0:l.clearNodes()}).wrapInList(p,r).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run()},BIe=(e,t={},n={})=>({state:r,commands:i})=>{let{extendEmptyMarkRange:a=!1}=n,o=IZ(e,r.schema);return TQ(r,o,t)?i.unsetMark(o,{extendEmptyMarkRange:a}):i.setMark(o,t)},VIe=(e,t,n={})=>({state:r,commands:i})=>{let a=kZ(e,r.schema),o=kZ(t,r.schema),s=XZ(r,a,n),c;return r.selection.$anchor.sameParent(r.selection.$head)&&(c=r.selection.$anchor.parent.attrs),s?i.setNode(o,c):i.setNode(a,{...c,...n})},HIe=(e,t={})=>({state:n,commands:r})=>{let i=kZ(e,n.schema);return XZ(n,i,t)?r.lift(i):r.wrapIn(i,t)},UIe=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r=0;--e)t.step(n.steps[e].invert(n.docs[e]));if(a.text){let n=t.doc.resolve(a.from).marks();t.replaceWith(a.from,a.to,e.schema.text(a.text,n))}else t.delete(a.from,a.to)}return!0}}return!1},WIe=(e={})=>({tr:t,dispatch:n,editor:r})=>{let{ignoreClearable:i=!1}=e,{selection:a}=t,{empty:o,ranges:s}=a;if(o)return!0;let{nonClearableMarks:c}=r.extensionManager;if(n){let e=Object.values(r.schema.marks).filter(e=>i||!c.includes(e.name));s.forEach(n=>{for(let r of e)t.removeMark(n.$from.pos,n.$to.pos,r)})}return!0},GIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{extendEmptyMarkRange:a=!1}=t,{selection:o}=n,s=IZ(e,r.schema),{$from:c,empty:l,ranges:u}=o;if(!i)return!0;if(l&&a){let{from:e,to:t}=o,r=FZ(c,s,c.marks().find(e=>e.type===s)?.attrs);r&&(e=r.from,t=r.to),n.removeMark(e,t,s)}else u.forEach(e=>{n.removeMark(e.$from.pos,e.$to.pos,s)});return n.removeStoredMark(s),!0},KIe=e=>({tr:t,state:n,dispatch:r})=>{let{selection:i}=n,a,o;return typeof e==`number`?(a=e,o=e):e&&`from`in e&&`to`in e?(a=e.from,o=e.to):(a=i.from,o=i.to),r&&t.doc.nodesBetween(a,o,(e,n)=>{if(e.isText)return;let r={...e.attrs};delete r.dir,t.setNodeMarkup(n,void 0,r)}),!0},qIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=ZZ(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=kZ(e,r.schema)),s===`mark`&&(o=IZ(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{let s=e.$from.pos,l=e.$to.pos,u,d,f,p;n.selection.empty?r.doc.nodesBetween(s,l,(e,t)=>{a&&a===e.type&&(c=!0,f=Math.max(t,s),p=Math.min(t+e.nodeSize,l),u=t,d=e)}):r.doc.nodesBetween(s,l,(e,r)=>{r=s&&r<=l&&(a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,{...e.attrs,...t})),o&&e.marks.length&&e.marks.forEach(a=>{if(o===a.type&&(c=!0,i)){let i=Math.max(r,s),c=Math.min(r+e.nodeSize,l);n.addMark(i,c,o.create({...a.attrs,...t}))}}))}),d&&(u!==void 0&&i&&n.setNodeMarkup(u,void 0,{...d.attrs,...t}),o&&d.marks.length&&d.marks.forEach(e=>{o===e.type&&i&&n.addMark(f,p,o.create({...e.attrs,...t}))}))}),c},IQ=new lJ(`__tiptap_decorations__`),JIe=e=>({tr:t,dispatch:n})=>(n&&t.setMeta(IQ,{type:`force`,name:e}),!0),YIe=(e,t={})=>({state:n,dispatch:r})=>vNe(kZ(e,n.schema),t)(n,r),XIe=(e,t={})=>({state:n,dispatch:r})=>bNe(kZ(e,n.schema),t)(n,r),ZIe=cMe({blur:()=>vFe,clearContent:()=>yFe,clearNodes:()=>bFe,command:()=>xFe,createParagraphNear:()=>SFe,cut:()=>CFe,deleteCurrentNode:()=>wFe,deleteNode:()=>TFe,deleteRange:()=>EFe,deleteSelection:()=>kFe,enter:()=>AFe,exitCode:()=>jFe,extendMarkRange:()=>MFe,first:()=>NFe,focus:()=>FFe,forEach:()=>IFe,insertContent:()=>LFe,insertContentAt:()=>RFe,insertDefaultBlock:()=>zFe,joinBackward:()=>HFe,joinDown:()=>VFe,joinForward:()=>UFe,joinItemBackward:()=>WFe,joinItemForward:()=>GFe,joinTextblockBackward:()=>KFe,joinTextblockForward:()=>qFe,joinUp:()=>BFe,keyboardShortcut:()=>YFe,lift:()=>XFe,liftEmptyBlock:()=>ZFe,liftListItem:()=>QFe,newlineInCode:()=>$Fe,resetAttributes:()=>eIe,scrollIntoView:()=>tIe,selectAll:()=>nIe,selectNodeBackward:()=>rIe,selectNodeForward:()=>iIe,selectParentNode:()=>aIe,selectTextblockEnd:()=>oIe,selectTextblockStart:()=>sIe,setContent:()=>cIe,setMark:()=>kIe,setMeta:()=>AIe,setNode:()=>jIe,setNodeSelection:()=>MIe,setTextDirection:()=>NIe,setTextSelection:()=>PIe,sinkListItem:()=>FIe,splitBlock:()=>IIe,splitListItem:()=>LIe,toggleList:()=>zIe,toggleMark:()=>BIe,toggleNode:()=>VIe,toggleWrap:()=>HIe,undoInputRule:()=>UIe,unsetAllMarks:()=>WIe,unsetMark:()=>GIe,unsetTextDirection:()=>KIe,updateAttributes:()=>qIe,updateDecorations:()=>JIe,wrapIn:()=>YIe,wrapInList:()=>XIe}),LQ=new WeakMap;function QIe(e,t){LQ.set(e,(LQ.get(e)??0)+1);try{return t()}finally{let t=(LQ.get(e)??1)-1;t>0?LQ.set(e,t):LQ.delete(e)}}function $Ie(e){return LQ.has(e)}var eLe=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){let n=this.callbacks[e];return n&&n.forEach(e=>e.apply(this,t)),this}off(e,t){let n=this.callbacks[e];return n&&(t?this.callbacks[e]=n.filter(e=>e!==t):delete this.callbacks[e]),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n)}removeAllListeners(){this.callbacks={}}},RQ=typeof process<`u`&&!1;function tLe(e){return e.kind===`widget`}function zQ(e,t){let n=[],r=new Set;for(let i of e)i.kind===`widget`&&tLe(i)&&r.add(i.key),n.push(i.toPMDecoration(t));return{decorations:n,widgetKeys:r}}function nLe(e,t,n){let{decorations:r,widgetKeys:i}=zQ(t,n);return{set:$X.create(e,r),widgetKeys:i}}function BQ({position:e,from:t,to:n,docSize:r}){return eBQ({position:e.anchor,from:t,to:n,docSize:r})?!0:(e.anchor===n||a.has(i)||(a.add(i),console.warn(`[tiptap warn]: Extension "${i}" returned a decoration outside the requested range [${t}, ${n}). It was ignored.`)),!1))}function VQ(e){let t=e.spec?.key;return typeof t==`string`?t:void 0}function iLe(e){let t=new Map,n=new Map;for(let r of e.find()){let e=VQ(r);if(!e)continue;let i=r.spec.extensionName??`unknown`,a=t.get(e)??new Set;a.add(i),t.set(e,a),n.set(e,(n.get(e)??0)+1)}return Array.from(t,([e,t])=>({key:e,extensions:t})).filter(({key:e})=>(n.get(e)??0)>1)}function HQ(e){return e.jsonID===`attr`}function aLe(e){let t=!1;if(e.getMap().forEach(()=>{t=!0}),t||HQ(e))return!0;let n=e;return typeof n.from==`number`&&typeof n.to==`number`}function oLe(e,t){let n=null,r=0,i=0;for(let a=0;at.to);a+=1){let o=i+e.child(a).nodeSize;o>=t.from&&(n===null&&(n=i),r=o),i=o}return n===null?null:{from:n,to:r}}function sLe(e,t){if(e.steps.some(e=>!aLe(e)))return{type:`full`};let n=xQ(e).map(({newRange:e})=>e);e.steps.forEach((t,r)=>{if(!HQ(t))return;let i=e.mapping.slice(r);n.push({from:i.map(t.pos,-1),to:i.map(t.pos+1)})});let r=[];for(let e of n){let n=oLe(t,e);n&&r.push(n)}r.sort((e,t)=>e.from-t.from);let i=[];for(let e of r){let t=i[i.length-1];t&&e.from<=t.to?t.to=Math.max(t.to,e.to):i.push({...e})}return{type:`ranges`,ranges:i}}function UQ(e,t,n,r){return e.map(t,n,{onRemove:e=>{let t=e?.key;typeof t==`string`&&r.delete(t)}})}function cLe(e,t,n){let r=t.decorationSetsByExtension[e]??$X.empty,i=new Set(t.widgetKeysByExtension[e]??[]);return{set:UQ(r,n.mapping,n.doc,i),widgetKeys:i}}function WQ(e,t){let n=Object.values(t).flatMap(e=>e.find());return $X.create(e,n)}function GQ(e){let t=new Set;for(let n of Object.values(e))for(let e of n)t.add(e);return t}function lLe(e,t){switch(t.update??`document`){case`document`:if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" provides createInRange() but does not use the "changedRanges" decoration update strategy.`);return;case`changedRanges`:if(!t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "changedRanges" decoration update strategy but does not provide createInRange().`);return;case`manual`:if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "manual" decoration update strategy, which is not compatible with createInRange(). createInRange() requires the "changedRanges" strategy.`);if(t.shouldUpdate)throw Error(`[tiptap error]: Extension "${e}" cannot combine the "manual" decoration update strategy with shouldUpdate().`);return;default:throw Error(`[tiptap error]: Extension "${e}" uses an unknown decoration update strategy. Expected "document", "changedRanges", or "manual".`)}}function uLe(e,t,n){return n?!0:e.update===`manual`?!1:e.shouldUpdate?e.shouldUpdate(t):t.tr.docChanged}var dLe=new Set,fLe=class{constructor(e){this.warnedWidgetKeys=new Set,this.warnedOutOfRangeExtensions=new Set,this.handleBeforeTransaction=({nextState:e})=>{let t=IQ.getState(e);t&&this.warnDuplicateWidgetKeys(t)},this.editor=e.editor,this.entries=this.resolveEntries(e.entries),this.entries.forEach(({name:e,spec:t})=>lLe(e,t)),this.plugin=this.entries.length>0?this.createPlugin():null,this.editor.on(`beforeTransaction`,this.handleBeforeTransaction)}destroy(){this.editor.off(`beforeTransaction`,this.handleBeforeTransaction)}liveWidgetKeys(){return IQ.getState(this.editor.state)?.widgetKeys??dLe}get mountedView(){return this.editor.isDestroyed?null:this.editor.view}resolveEntries(e){let t=[];for(let{name:n,addDecorations:r}of e){let e=r();e&&t.push({name:n,spec:e})}return t}createPlugin(){let{editor:e,entries:t}=this;return new oJ({key:IQ,state:{init:(e,n)=>{let r={},i={};for(let{name:e,spec:a}of t){let{set:t,widgetKeys:o}=this.buildFullSet(e,a,n);r[e]=t,i[e]=o}let a={decorationSetsByExtension:r,widgetKeysByExtension:i,mergedDecorationSet:this.buildMergedSet(n.doc,r),widgetKeys:GQ(i)};return this.warnDuplicateWidgetKeys(a),a},apply:(n,r,i,a)=>{let o=n.getMeta(IQ),s=o?.type===`force`&&!o.name,c=o?.type===`force`?o.name:void 0,l={},u={},d=new Set;return QIe(e,()=>{for(let{name:o,spec:f}of t){let t=s||c===o;if(!uLe(f,{editor:e,tr:n,oldState:i,newState:a},t)){let e=cLe(o,r,n);l[o]=e.set,u[o]=e.widgetKeys}else if(f.update===`changedRanges`&&n.docChanged&&!t){let e=this.applyChangedRangesRecompute(o,f,r,n,a);l[o]=e.set,u[o]=e.widgetKeys,d.add(o)}else{let{set:e,widgetKeys:t}=this.buildFullSet(o,f,a);l[o]=e,u[o]=t,d.add(o)}}}),d.size===0&&!n.docChanged?r:{decorationSetsByExtension:l,widgetKeysByExtension:u,mergedDecorationSet:this.mergeAfterApply({entries:t,previous:r,tr:n,decorationSetsByExtension:l,recomputedNames:d}),widgetKeys:GQ(u)}}},props:{decorations(e){return IQ.getState(e)?.mergedDecorationSet??$X.empty}}})}applyChangedRangesRecompute(e,t,n,r,i){let a=sLe(r,i.doc);return a.type===`full`?this.buildFullSet(e,t,i):this.rebuildRanges(e,t,n,r,i,a.ranges)}rebuildRanges(e,t,n,r,i,a){let o=n.decorationSetsByExtension[e]??$X.empty,s=new Set(n.widgetKeysByExtension[e]??[]),c=UQ(o,r.mapping,r.doc,s),l=i.doc.content.size;for(let{from:n,to:r}of a){let a=c.find(n,r).filter(e=>BQ({position:e.from,from:n,to:r,docSize:l}));for(let e of a){let t=VQ(e);t&&s.delete(t)}c=c.remove(a);let{decorations:o,widgetKeys:u}=zQ(rLe({decorations:this.runCreate(e,`createInRange`,()=>t.createInRange({editor:this.editor,state:i,view:this.mountedView,from:n,to:r})),from:n,to:r,docSize:l,extensionName:e,warnedExtensions:this.warnedOutOfRangeExtensions}),e);c=c.add(i.doc,o);for(let e of u)s.add(e)}return{set:c,widgetKeys:s}}buildFullSet(e,t,n){let r=this.runCreate(e,`create`,()=>t.create({editor:this.editor,state:n,view:this.mountedView}));return nLe(n.doc,r,e)}runCreate(e,t,n){try{return n()}catch(n){return console.error(`[tiptap error]: Extension "${e}" threw in \`addDecorations().${t}()\`. Its decorations were dropped for this update.`,n),[]}}warnDuplicateWidgetKeys(e){if(!RQ)return;if(e.widgetKeys.size===0){this.warnedWidgetKeys.clear();return}let t=iLe(e.mergedDecorationSet),n=new Set(t.map(({key:e})=>e));for(let{key:e,extensions:n}of t){if(this.warnedWidgetKeys.has(e))continue;let t=Array.from(n).map(e=>`"${e}"`).join(`, `);console.warn(`[tiptap warn]: Duplicate widget decoration key "${e}" in extension${n.size===1?``:`s`} ${t}. Widget decoration keys must be globally unique, otherwise ProseMirror misplaces the widget DOM. Use a stable, unique key (e.g. \`comment-\${id}\`).`)}this.warnedWidgetKeys=n}buildMergedSet(e,t){let n=Object.keys(t);return n.length===1?t[n[0]]:WQ(e,t)}mergeAfterApply({entries:e,previous:t,tr:n,decorationSetsByExtension:r,recomputedNames:i}){return e.length===1?r[e[0].name]:i.size===0?t.mergedDecorationSet.map(n.mapping,n.doc):WQ(n.doc,r)}};function pLe(e,t){let{selection:n}=e,{$from:r}=n;if(n instanceof Jq){let e=r.index();return r.parent.canReplaceWith(e,e+1,t)}let i=r.depth;for(;i>=0;){let e=r.index(i);if(r.node(i).contentMatchAt(e).matchType(t))return!0;--i}return!1}function mLe(e,t,n){let r=document.querySelector(`style[data-tiptap-style${n?`-${n}`:``}]`);if(r!==null)return r;let i=document.createElement(`style`);return t&&i.setAttribute(`nonce`,t),i.setAttribute(`data-tiptap-style${n?`-${n}`:``}`,``),i.innerHTML=e,document.getElementsByTagName(`head`)[0].appendChild(i),i}function KQ(e,t){let n=e.getAttribute(`style`);if(!n)return null;let r=n.split(`;`).map(e=>e.trim()).filter(Boolean),i=t.toLowerCase();for(let e=r.length-1;e>=0;--e){let t=r[e],n=t.indexOf(`:`);if(n!==-1&&t.slice(0,n).trim().toLowerCase()===i)return t.slice(n+1).trim()}return null}function hLe(e){return typeof e==`number`}function gLe(e){return Object.prototype.toString.call(e).slice(8,-1)}function qQ(e){return gLe(e)===`Object`?e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype:!1}function JQ(e,t,n){let r=e.split(` +`,textSerializers:o={}}=n||{},s=``;return e.nodesBetween(r,i,(e,n,c,l)=>{e.isBlock&&n>r&&(s+=a);let u=o?.[e.type.name];if(u)return c&&(s+=u({node:e,pos:n,parent:c,index:l,range:t})),!1;if(e.isText){var d;s+=e==null||(d=e.text)==null?void 0:d.slice(Math.max(r,n)-n,i-n)}}),s}function _Ie(e,t){return vQ(e,{from:0,to:e.content.size},t)}function yQ(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}function vIe(e,t){let n=kZ(t,e.schema),{from:r,to:i}=e.selection,a=[];e.doc.nodesBetween(r,i,e=>{a.push(e)});let o=a.reverse().find(e=>e.type.name===n.name);return o?{...o.attrs}:{}}function bQ(e,t){let n=ZZ(typeof t==`string`?t:t.name,e.schema);return n===`node`?vIe(e,t):n===`mark`?eQ(e,t):{}}function yIe(e,t=JSON.stringify){let n={};return e.filter(e=>{let r=t(e);return Object.prototype.hasOwnProperty.call(n,r)?!1:n[r]=!0})}function bIe(e){let t=yIe(e);return t.length===1?t:t.filter((e,n)=>!t.filter((e,t)=>t!==n).some(t=>e.oldRange.from>=t.oldRange.from&&e.oldRange.to<=t.oldRange.to&&e.newRange.from>=t.newRange.from&&e.newRange.to<=t.newRange.to))}function xQ(e){let{mapping:t,steps:n}=e,r=[];return t.maps.forEach((e,i)=>{let a=[];if(e.ranges.length)e.forEach((e,t)=>{a.push({from:e,to:t})});else{let{from:e,to:t}=n[i];if(e===void 0||t===void 0)return;a.push({from:e,to:t})}a.forEach(({from:e,to:n})=>{let a=t.slice(i).map(e,-1),o=t.slice(i).map(n),s=t.invert().map(a,-1),c=t.invert().map(o);r.push({oldRange:{from:s,to:c},newRange:{from:a,to:o}})})}),bIe(r)}function SQ(e,t,n){let r=[];return e===t?n.resolve(e).marks().forEach(t=>{let i=FZ(n.resolve(e),t.type);i&&r.push({mark:t,...i})}):n.nodesBetween(e,t,(e,t)=>{!e||e?.nodeSize===void 0||r.push(...e.marks.map(n=>({from:t,to:t+e.nodeSize,mark:n})))}),r}var xIe=(e,t,n,r=20)=>{let i=e.doc.resolve(n),a=r,o=null;for(;a>0&&o===null;){let e=i.node(a);e?.type.name===t?o=e:--a}return[o,a]},SIe=e=>{let t=e.depth-1;if(t<0)return null;let n=e.index(t);return n===0?null:e.node(t).child(n-1)};function CQ(e,t){return t.nodes[e]||t.marks[e]||null}function wQ(e,t,n){return Object.fromEntries(Object.entries(n).filter(([n])=>{let r=e.find(e=>e.type===t&&e.name===n);return r?r.attribute.keepOnSplit:!1}))}var CIe=(e,t=500)=>{let n=``,r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(e,t,i,a)=>{var o;let s=(o=e.type.spec).toText?.call(o,{node:e,pos:t,parent:i,index:a})||e.textContent||`%leaf%`;n+=e.isAtom&&!e.isText?s:s.slice(0,Math.max(0,r-t))}),n};function TQ(e,t,n={}){let{empty:r,ranges:i}=e.selection,a=t?IZ(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(e=>a?a.name===e.type.name:!0).find(e=>MZ(e.attrs,n,{strict:!1}));let o=0,s=[];if(i.forEach(({$from:t,$to:n})=>{let r=t.pos,i=n.pos;e.doc.nodesBetween(r,i,(e,t)=>{if(a&&e.inlineContent&&!e.type.allowsMarkType(a))return!1;if(!e.isText&&!e.marks.length)return;let n=Math.max(r,t),c=Math.min(i,t+e.nodeSize),l=c-n;o+=l,s.push(...e.marks.map(e=>({mark:e,from:n,to:c})))})}),o===0)return!1;let c=s.filter(e=>a?a.name===e.mark.type.name:!0).filter(e=>MZ(e.mark.attrs,n,{strict:!1})).reduce((e,t)=>e+t.to-t.from,0),l=s.filter(e=>a?e.mark.type!==a&&e.mark.type.excludes(a):!0).reduce((e,t)=>e+t.to-t.from,0);return(c>0?c+l:c)>=o}function wIe(e,t,n={}){if(!t)return XZ(e,null,n)||TQ(e,null,n);let r=ZZ(t,e.schema);return r===`node`?XZ(e,t,n):r===`mark`?TQ(e,t,n):!1}var TIe=(e,t)=>{let{$from:n,$to:r,$anchor:i}=e.selection;if(t){let n=nQ(e=>e.type.name===t)(e.selection);if(!n)return!1;let r=e.doc.resolve(n.pos+1);return i.pos+1===r.end()}return!(r.parentOffset{let{$from:t,$to:n}=e.selection;return!(t.parentOffset>0||t.pos!==n.pos)};function EQ(e,t){return Array.isArray(t)?t.some(t=>(typeof t==`string`?t:t.name)===e.name):t}function DQ(e,t){let{nodeExtensions:n}=cQ(t),r=n.find(t=>t.name===e);if(!r)return!1;let i=sQ(rQ(r,`group`,{name:r.name,options:r.options,storage:r.storage}));return typeof i==`string`?i.split(` `).includes(`list`):!1}function OQ(e,{checkChildren:t=!0,ignoreWhitespace:n=!1}={}){if(n){if(e.type.name===`hardBreak`)return!0;if(e.isText)return!/\S/.test(e.text??``)}if(e.isText)return!e.text;if(e.isAtom||e.isLeaf)return!1;if(e.content.childCount===0)return!0;if(t){let r=!0;return e.content.forEach(e=>{r!==!1&&(OQ(e,{ignoreWhitespace:n,checkChildren:t})||(r=!1))}),r}return!1}function kQ(e){return e instanceof Jq}var AQ=class e{constructor(e){this.position=e}static fromJSON(t){return new e(t.position)}toJSON(){return{position:this.position}}};function DIe(e,t){let n=t.mapping.mapResult(e.position);return{position:new AQ(n.pos),mapResult:n}}function OIe(e){return new AQ(e)}function kIe(e,t,n){let{selection:r}=t,i=null;if(LZ(r)&&(i=r.$cursor),i){let t=e.storedMarks??i.marks();return i.parent.type.allowsMarkType(n)&&(!!n.isInSet(t)||!t.some(e=>e.type.excludes(n)))}let{ranges:a}=r;return a.some(({$from:t,$to:r})=>{let i=t.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(t.pos,r.pos,(e,t,r)=>{if(i)return!1;if(e.isInline){let t=!r||r.type.allowsMarkType(n),a=!!n.isInSet(e.marks)||!e.marks.some(e=>e.type.excludes(n));i=t&&a}return!i}),i})}var AIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=n,{empty:o,ranges:s}=a,c=IZ(e,r.schema);if(i)if(o){let e=eQ(r,c);n.addStoredMark(c.create({...e,...t}))}else s.forEach(e=>{let i=e.$from.pos,a=e.$to.pos;r.doc.nodesBetween(i,a,(e,r)=>{let o=Math.max(r,i),s=Math.min(r+e.nodeSize,a);e.marks.find(e=>e.type===c)?e.marks.forEach(e=>{c===e.type&&n.addMark(o,s,c.create({...e.attrs,...t}))}):n.addMark(o,s,c.create(t))})});return kIe(r,n,c)},jIe=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),MIe=(e,t={})=>({state:n,dispatch:r,chain:i})=>{let a=kZ(e,n.schema),o;return n.selection.$anchor.sameParent(n.selection.$head)&&(o=n.selection.$anchor.parent.attrs),a.isTextblock?i().command(({commands:e})=>AJ(a,{...o,...t})(n)?!0:e.clearNodes()).command(({state:e})=>AJ(a,{...o,...t})(e,r)).run():(console.warn(`[tiptap warn]: Currently "setNode()" only supports text block nodes.`),!1)},NIe=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,r=RZ(e,0,n.content.size),i=Jq.create(n,r);t.setSelection(i)}return!0},PIe=(e,t)=>({tr:n,state:r,dispatch:i})=>{let{selection:a}=r,o,s;return typeof t==`number`?(o=t,s=t):t&&`from`in t&&`to`in t?(o=t.from,s=t.to):(o=a.from,s=a.to),i&&n.doc.nodesBetween(o,s,(t,r)=>{t.isText||n.setNodeMarkup(r,void 0,{...t.attrs,dir:e})}),!0},FIe=e=>({tr:t,dispatch:n})=>{if(n){let{doc:n}=t,{from:r,to:i}=typeof e==`number`?{from:e,to:e}:e,a=Kq.atStart(n).from,o=Kq.atEnd(n).to,s=RZ(r,a,o),c=RZ(i,a,o),l=Kq.create(n,s,c);t.setSelection(l)}return!0},IIe=e=>({state:t,dispatch:n})=>DNe(kZ(e,t.schema))(t,n);function jQ(e,t){let n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){let r=n.filter(e=>t?.includes(e.type.name));e.tr.ensureMarks(r)}}var LIe=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:i})=>{let{selection:a,doc:o}=t,{$from:s,$to:c}=a,l=i.extensionManager.attributes,u=wQ(l,s.node().type.name,s.node().attrs);if(a instanceof Jq&&a.node.isBlock)return!s.parentOffset||!Cq(o,s.pos)?!1:(r&&(e&&jQ(n,i.extensionManager.splittableMarks),t.split(s.pos).scrollIntoView()),!0);if(!s.parent.isBlock)return!1;let d=c.parentOffset===c.parent.content.size,f=s.depth===0?void 0:JZ(s.node(-1).contentMatchAt(s.indexAfter(-1))),p=d&&f?[{type:f,attrs:u}]:void 0,m=Cq(t.doc,t.mapping.map(s.pos),1,p);if(!p&&!m&&Cq(t.doc,t.mapping.map(s.pos),1,f?[{type:f}]:void 0)&&(m=!0,p=f?[{type:f,attrs:u}]:void 0),r){if(m&&(a instanceof Kq&&t.deleteSelection(),t.split(t.mapping.map(s.pos),1,p),f&&!d&&!s.parentOffset&&s.parent.type!==f)){let e=t.mapping.map(s.before()),n=t.doc.resolve(e);s.node(-1).canReplaceWith(n.index(),n.index()+1,f)&&t.setNodeMarkup(t.mapping.map(s.before()),f)}e&&jQ(n,i.extensionManager.splittableMarks),t.scrollIntoView()}return m},RIe=(e,t={})=>({tr:n,state:r,dispatch:i,editor:a})=>{let o=kZ(e,r.schema),{$from:s,$to:c}=r.selection,l=r.selection.node;if(l&&l.isBlock||s.depth<2||!s.sameParent(c))return!1;let u=s.node(-1);if(u.type!==o)return!1;let d=a.extensionManager.attributes;if(s.parent.content.size===0&&s.node(-1).childCount===s.indexAfter(-1)){if(s.depth===2||s.node(-3).type!==o||s.index(-2)!==s.node(-2).childCount-1)return!1;if(i){let e=tK.empty,r=s.index(-1)?1:s.index(-2)?2:3;for(let t=s.depth-r;t>=s.depth-3;--t)e=tK.from(s.node(t).copy(e));let i=s.indexAfter(-1){if(u>-1)return!1;e.isTextblock&&e.content.size===0&&(u=t+1)}),u>-1&&n.setSelection(Kq.near(n.doc.resolve(u))),n.scrollIntoView()}return!0}let f=c.pos===s.end()?u.contentMatchAt(0).defaultType:null,p={...wQ(d,u.type.name,u.attrs),...t},m={...wQ(d,s.node().type.name,s.node().attrs),...t};n.delete(s.pos,c.pos);let h=f?[{type:o,attrs:p},{type:f,attrs:m}]:[{type:o,attrs:p}];if(!Cq(n.doc,s.pos,2))return!1;if(i){let{selection:e,storedMarks:t}=r,{splittableMarks:o}=a.extensionManager,c=t||e.$to.parentOffset&&e.$from.marks();if(n.split(s.pos,2,h).scrollIntoView(),!c||!i)return!0;let l=c.filter(e=>o.includes(e.type.name));n.ensureMarks(l)}return!0};function MQ(e){return!e||e===`1`?null:e}function NQ(e,t){return MQ(e)===MQ(t)}var PQ=(e,t)=>{let n=nQ(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return!(n.node.type===i?.type&&wq(e.doc,n.pos))||!NQ(n.node.attrs.type,i?.attrs.type)||e.join(n.pos),!0},FQ=(e,t)=>{let n=nQ(e=>e.type===t)(e.selection);if(!n)return!0;let r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;let i=e.doc.nodeAt(r);return!(n.node.type===i?.type&&wq(e.doc,r))||!NQ(n.node.attrs.type,i?.attrs.type)||e.join(r),!0};function zIe(e){let t=e.doc,n=t.firstChild;if(!n)return null;let r=t.resolve(1),i=t.resolve(n.nodeSize-1);return Kq.between(r,i)}var BIe=(e,t,n,r={})=>({editor:i,tr:a,state:o,dispatch:s,chain:c,commands:l,can:u})=>{let{extensions:d,splittableMarks:f}=i.extensionManager,p=kZ(e,o.schema),m=kZ(t,o.schema),{selection:h,storedMarks:g}=o,{$from:_,$to:v}=h,y=_.blockRange(v),b=g||h.$to.parentOffset&&h.$from.marks();if(!y)return!1;let x=nQ(e=>DQ(e.type.name,d))(h),S=h.from===0&&h.to===o.doc.content.size,C=o.doc.content.content,w=C.length===1?C[0]:null,T=S&&w&&DQ(w.type.name,d)?{node:w,pos:0,depth:0}:null,E=x??T,D=!!x&&y.depth>=1&&y.depth-x.depth<=1,O=!!T;if((D||O)&&E){if(E.node.type===p)return S&&O?c().command(({tr:e,dispatch:t})=>{let n=zIe(e);return n?(e.setSelection(n),t&&t(e),!0):!1}).liftListItem(m).run():l.liftListItem(m);if(DQ(E.node.type.name,d)&&p.validContent(E.node.content))return c().command(()=>(a.setNodeMarkup(E.pos,p),!0)).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run()}return!n||!b||!s?c().command(()=>u().wrapInList(p,r)?!0:l.clearNodes()).wrapInList(p,r).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run():c().command(()=>{let e=u().wrapInList(p,r),t=b.filter(e=>f.includes(e.type.name));return a.ensureMarks(t),e?!0:l.clearNodes()}).wrapInList(p,r).command(()=>PQ(a,p)).command(()=>FQ(a,p)).run()},VIe=(e,t={},n={})=>({state:r,commands:i})=>{let{extendEmptyMarkRange:a=!1}=n,o=IZ(e,r.schema);return TQ(r,o,t)?i.unsetMark(o,{extendEmptyMarkRange:a}):i.setMark(o,t)},HIe=(e,t,n={})=>({state:r,commands:i})=>{let a=kZ(e,r.schema),o=kZ(t,r.schema),s=XZ(r,a,n),c;return r.selection.$anchor.sameParent(r.selection.$head)&&(c=r.selection.$anchor.parent.attrs),s?i.setNode(o,c):i.setNode(a,{...c,...n})},UIe=(e,t={})=>({state:n,commands:r})=>{let i=kZ(e,n.schema);return XZ(n,i,t)?r.lift(i):r.wrapIn(i,t)},WIe=()=>({state:e,dispatch:t})=>{let n=e.plugins;for(let r=0;r=0;--e)t.step(n.steps[e].invert(n.docs[e]));if(a.text){let n=t.doc.resolve(a.from).marks();t.replaceWith(a.from,a.to,e.schema.text(a.text,n))}else t.delete(a.from,a.to)}return!0}}return!1},GIe=(e={})=>({tr:t,dispatch:n,editor:r})=>{let{ignoreClearable:i=!1}=e,{selection:a}=t,{empty:o,ranges:s}=a;if(o)return!0;let{nonClearableMarks:c}=r.extensionManager;if(n){let e=Object.values(r.schema.marks).filter(e=>i||!c.includes(e.name));s.forEach(n=>{for(let r of e)t.removeMark(n.$from.pos,n.$to.pos,r)})}return!0},KIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let{extendEmptyMarkRange:a=!1}=t,{selection:o}=n,s=IZ(e,r.schema),{$from:c,empty:l,ranges:u}=o;if(!i)return!0;if(l&&a){let{from:e,to:t}=o,r=FZ(c,s,c.marks().find(e=>e.type===s)?.attrs);r&&(e=r.from,t=r.to),n.removeMark(e,t,s)}else u.forEach(e=>{n.removeMark(e.$from.pos,e.$to.pos,s)});return n.removeStoredMark(s),!0},qIe=e=>({tr:t,state:n,dispatch:r})=>{let{selection:i}=n,a,o;return typeof e==`number`?(a=e,o=e):e&&`from`in e&&`to`in e?(a=e.from,o=e.to):(a=i.from,o=i.to),r&&t.doc.nodesBetween(a,o,(e,n)=>{if(e.isText)return;let r={...e.attrs};delete r.dir,t.setNodeMarkup(n,void 0,r)}),!0},JIe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null,s=ZZ(typeof e==`string`?e:e.name,r.schema);if(!s)return!1;s===`node`&&(a=kZ(e,r.schema)),s===`mark`&&(o=IZ(e,r.schema));let c=!1;return n.selection.ranges.forEach(e=>{let s=e.$from.pos,l=e.$to.pos,u,d,f,p;n.selection.empty?r.doc.nodesBetween(s,l,(e,t)=>{a&&a===e.type&&(c=!0,f=Math.max(t,s),p=Math.min(t+e.nodeSize,l),u=t,d=e)}):r.doc.nodesBetween(s,l,(e,r)=>{r=s&&r<=l&&(a&&a===e.type&&(c=!0,i&&n.setNodeMarkup(r,void 0,{...e.attrs,...t})),o&&e.marks.length&&e.marks.forEach(a=>{if(o===a.type&&(c=!0,i)){let i=Math.max(r,s),c=Math.min(r+e.nodeSize,l);n.addMark(i,c,o.create({...a.attrs,...t}))}}))}),d&&(u!==void 0&&i&&n.setNodeMarkup(u,void 0,{...d.attrs,...t}),o&&d.marks.length&&d.marks.forEach(e=>{o===e.type&&i&&n.addMark(f,p,o.create({...e.attrs,...t}))}))}),c},IQ=new lJ(`__tiptap_decorations__`),YIe=e=>({tr:t,dispatch:n})=>(n&&t.setMeta(IQ,{type:`force`,name:e}),!0),XIe=(e,t={})=>({state:n,dispatch:r})=>yNe(kZ(e,n.schema),t)(n,r),ZIe=(e,t={})=>({state:n,dispatch:r})=>xNe(kZ(e,n.schema),t)(n,r),QIe=lMe({blur:()=>yFe,clearContent:()=>bFe,clearNodes:()=>xFe,command:()=>SFe,createParagraphNear:()=>CFe,cut:()=>wFe,deleteCurrentNode:()=>TFe,deleteNode:()=>EFe,deleteRange:()=>DFe,deleteSelection:()=>AFe,enter:()=>jFe,exitCode:()=>MFe,extendMarkRange:()=>NFe,first:()=>PFe,focus:()=>IFe,forEach:()=>LFe,insertContent:()=>RFe,insertContentAt:()=>zFe,insertDefaultBlock:()=>BFe,joinBackward:()=>UFe,joinDown:()=>HFe,joinForward:()=>WFe,joinItemBackward:()=>GFe,joinItemForward:()=>KFe,joinTextblockBackward:()=>qFe,joinTextblockForward:()=>JFe,joinUp:()=>VFe,keyboardShortcut:()=>XFe,lift:()=>ZFe,liftEmptyBlock:()=>QFe,liftListItem:()=>$Fe,newlineInCode:()=>eIe,resetAttributes:()=>tIe,scrollIntoView:()=>nIe,selectAll:()=>rIe,selectNodeBackward:()=>iIe,selectNodeForward:()=>aIe,selectParentNode:()=>oIe,selectTextblockEnd:()=>sIe,selectTextblockStart:()=>cIe,setContent:()=>lIe,setMark:()=>AIe,setMeta:()=>jIe,setNode:()=>MIe,setNodeSelection:()=>NIe,setTextDirection:()=>PIe,setTextSelection:()=>FIe,sinkListItem:()=>IIe,splitBlock:()=>LIe,splitListItem:()=>RIe,toggleList:()=>BIe,toggleMark:()=>VIe,toggleNode:()=>HIe,toggleWrap:()=>UIe,undoInputRule:()=>WIe,unsetAllMarks:()=>GIe,unsetMark:()=>KIe,unsetTextDirection:()=>qIe,updateAttributes:()=>JIe,updateDecorations:()=>YIe,wrapIn:()=>XIe,wrapInList:()=>ZIe}),LQ=new WeakMap;function $Ie(e,t){LQ.set(e,(LQ.get(e)??0)+1);try{return t()}finally{let t=(LQ.get(e)??1)-1;t>0?LQ.set(e,t):LQ.delete(e)}}function eLe(e){return LQ.has(e)}var tLe=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){let n=this.callbacks[e];return n&&n.forEach(e=>e.apply(this,t)),this}off(e,t){let n=this.callbacks[e];return n&&(t?this.callbacks[e]=n.filter(e=>e!==t):delete this.callbacks[e]),this}once(e,t){let n=(...r)=>{this.off(e,n),t.apply(this,r)};return this.on(e,n)}removeAllListeners(){this.callbacks={}}},RQ=typeof process<`u`&&!1;function nLe(e){return e.kind===`widget`}function zQ(e,t){let n=[],r=new Set;for(let i of e)i.kind===`widget`&&nLe(i)&&r.add(i.key),n.push(i.toPMDecoration(t));return{decorations:n,widgetKeys:r}}function rLe(e,t,n){let{decorations:r,widgetKeys:i}=zQ(t,n);return{set:$X.create(e,r),widgetKeys:i}}function BQ({position:e,from:t,to:n,docSize:r}){return eBQ({position:e.anchor,from:t,to:n,docSize:r})?!0:(e.anchor===n||a.has(i)||(a.add(i),console.warn(`[tiptap warn]: Extension "${i}" returned a decoration outside the requested range [${t}, ${n}). It was ignored.`)),!1))}function VQ(e){let t=e.spec?.key;return typeof t==`string`?t:void 0}function aLe(e){let t=new Map,n=new Map;for(let r of e.find()){let e=VQ(r);if(!e)continue;let i=r.spec.extensionName??`unknown`,a=t.get(e)??new Set;a.add(i),t.set(e,a),n.set(e,(n.get(e)??0)+1)}return Array.from(t,([e,t])=>({key:e,extensions:t})).filter(({key:e})=>(n.get(e)??0)>1)}function HQ(e){return e.jsonID===`attr`}function oLe(e){let t=!1;if(e.getMap().forEach(()=>{t=!0}),t||HQ(e))return!0;let n=e;return typeof n.from==`number`&&typeof n.to==`number`}function sLe(e,t){let n=null,r=0,i=0;for(let a=0;at.to);a+=1){let o=i+e.child(a).nodeSize;o>=t.from&&(n===null&&(n=i),r=o),i=o}return n===null?null:{from:n,to:r}}function cLe(e,t){if(e.steps.some(e=>!oLe(e)))return{type:`full`};let n=xQ(e).map(({newRange:e})=>e);e.steps.forEach((t,r)=>{if(!HQ(t))return;let i=e.mapping.slice(r);n.push({from:i.map(t.pos,-1),to:i.map(t.pos+1)})});let r=[];for(let e of n){let n=sLe(t,e);n&&r.push(n)}r.sort((e,t)=>e.from-t.from);let i=[];for(let e of r){let t=i[i.length-1];t&&e.from<=t.to?t.to=Math.max(t.to,e.to):i.push({...e})}return{type:`ranges`,ranges:i}}function UQ(e,t,n,r){return e.map(t,n,{onRemove:e=>{let t=e?.key;typeof t==`string`&&r.delete(t)}})}function lLe(e,t,n){let r=t.decorationSetsByExtension[e]??$X.empty,i=new Set(t.widgetKeysByExtension[e]??[]);return{set:UQ(r,n.mapping,n.doc,i),widgetKeys:i}}function WQ(e,t){let n=Object.values(t).flatMap(e=>e.find());return $X.create(e,n)}function GQ(e){let t=new Set;for(let n of Object.values(e))for(let e of n)t.add(e);return t}function uLe(e,t){switch(t.update??`document`){case`document`:if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" provides createInRange() but does not use the "changedRanges" decoration update strategy.`);return;case`changedRanges`:if(!t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "changedRanges" decoration update strategy but does not provide createInRange().`);return;case`manual`:if(t.createInRange)throw Error(`[tiptap error]: Extension "${e}" uses the "manual" decoration update strategy, which is not compatible with createInRange(). createInRange() requires the "changedRanges" strategy.`);if(t.shouldUpdate)throw Error(`[tiptap error]: Extension "${e}" cannot combine the "manual" decoration update strategy with shouldUpdate().`);return;default:throw Error(`[tiptap error]: Extension "${e}" uses an unknown decoration update strategy. Expected "document", "changedRanges", or "manual".`)}}function dLe(e,t,n){return n?!0:e.update===`manual`?!1:e.shouldUpdate?e.shouldUpdate(t):t.tr.docChanged}var fLe=new Set,pLe=class{constructor(e){this.warnedWidgetKeys=new Set,this.warnedOutOfRangeExtensions=new Set,this.handleBeforeTransaction=({nextState:e})=>{let t=IQ.getState(e);t&&this.warnDuplicateWidgetKeys(t)},this.editor=e.editor,this.entries=this.resolveEntries(e.entries),this.entries.forEach(({name:e,spec:t})=>uLe(e,t)),this.plugin=this.entries.length>0?this.createPlugin():null,this.editor.on(`beforeTransaction`,this.handleBeforeTransaction)}destroy(){this.editor.off(`beforeTransaction`,this.handleBeforeTransaction)}liveWidgetKeys(){return IQ.getState(this.editor.state)?.widgetKeys??fLe}get mountedView(){return this.editor.isDestroyed?null:this.editor.view}resolveEntries(e){let t=[];for(let{name:n,addDecorations:r}of e){let e=r();e&&t.push({name:n,spec:e})}return t}createPlugin(){let{editor:e,entries:t}=this;return new oJ({key:IQ,state:{init:(e,n)=>{let r={},i={};for(let{name:e,spec:a}of t){let{set:t,widgetKeys:o}=this.buildFullSet(e,a,n);r[e]=t,i[e]=o}let a={decorationSetsByExtension:r,widgetKeysByExtension:i,mergedDecorationSet:this.buildMergedSet(n.doc,r),widgetKeys:GQ(i)};return this.warnDuplicateWidgetKeys(a),a},apply:(n,r,i,a)=>{let o=n.getMeta(IQ),s=o?.type===`force`&&!o.name,c=o?.type===`force`?o.name:void 0,l={},u={},d=new Set;return $Ie(e,()=>{for(let{name:o,spec:f}of t){let t=s||c===o;if(!dLe(f,{editor:e,tr:n,oldState:i,newState:a},t)){let e=lLe(o,r,n);l[o]=e.set,u[o]=e.widgetKeys}else if(f.update===`changedRanges`&&n.docChanged&&!t){let e=this.applyChangedRangesRecompute(o,f,r,n,a);l[o]=e.set,u[o]=e.widgetKeys,d.add(o)}else{let{set:e,widgetKeys:t}=this.buildFullSet(o,f,a);l[o]=e,u[o]=t,d.add(o)}}}),d.size===0&&!n.docChanged?r:{decorationSetsByExtension:l,widgetKeysByExtension:u,mergedDecorationSet:this.mergeAfterApply({entries:t,previous:r,tr:n,decorationSetsByExtension:l,recomputedNames:d}),widgetKeys:GQ(u)}}},props:{decorations(e){return IQ.getState(e)?.mergedDecorationSet??$X.empty}}})}applyChangedRangesRecompute(e,t,n,r,i){let a=cLe(r,i.doc);return a.type===`full`?this.buildFullSet(e,t,i):this.rebuildRanges(e,t,n,r,i,a.ranges)}rebuildRanges(e,t,n,r,i,a){let o=n.decorationSetsByExtension[e]??$X.empty,s=new Set(n.widgetKeysByExtension[e]??[]),c=UQ(o,r.mapping,r.doc,s),l=i.doc.content.size;for(let{from:n,to:r}of a){let a=c.find(n,r).filter(e=>BQ({position:e.from,from:n,to:r,docSize:l}));for(let e of a){let t=VQ(e);t&&s.delete(t)}c=c.remove(a);let{decorations:o,widgetKeys:u}=zQ(iLe({decorations:this.runCreate(e,`createInRange`,()=>t.createInRange({editor:this.editor,state:i,view:this.mountedView,from:n,to:r})),from:n,to:r,docSize:l,extensionName:e,warnedExtensions:this.warnedOutOfRangeExtensions}),e);c=c.add(i.doc,o);for(let e of u)s.add(e)}return{set:c,widgetKeys:s}}buildFullSet(e,t,n){let r=this.runCreate(e,`create`,()=>t.create({editor:this.editor,state:n,view:this.mountedView}));return rLe(n.doc,r,e)}runCreate(e,t,n){try{return n()}catch(n){return console.error(`[tiptap error]: Extension "${e}" threw in \`addDecorations().${t}()\`. Its decorations were dropped for this update.`,n),[]}}warnDuplicateWidgetKeys(e){if(!RQ)return;if(e.widgetKeys.size===0){this.warnedWidgetKeys.clear();return}let t=aLe(e.mergedDecorationSet),n=new Set(t.map(({key:e})=>e));for(let{key:e,extensions:n}of t){if(this.warnedWidgetKeys.has(e))continue;let t=Array.from(n).map(e=>`"${e}"`).join(`, `);console.warn(`[tiptap warn]: Duplicate widget decoration key "${e}" in extension${n.size===1?``:`s`} ${t}. Widget decoration keys must be globally unique, otherwise ProseMirror misplaces the widget DOM. Use a stable, unique key (e.g. \`comment-\${id}\`).`)}this.warnedWidgetKeys=n}buildMergedSet(e,t){let n=Object.keys(t);return n.length===1?t[n[0]]:WQ(e,t)}mergeAfterApply({entries:e,previous:t,tr:n,decorationSetsByExtension:r,recomputedNames:i}){return e.length===1?r[e[0].name]:i.size===0?t.mergedDecorationSet.map(n.mapping,n.doc):WQ(n.doc,r)}};function mLe(e,t){let{selection:n}=e,{$from:r}=n;if(n instanceof Jq){let e=r.index();return r.parent.canReplaceWith(e,e+1,t)}let i=r.depth;for(;i>=0;){let e=r.index(i);if(r.node(i).contentMatchAt(e).matchType(t))return!0;--i}return!1}function hLe(e,t,n){let r=document.querySelector(`style[data-tiptap-style${n?`-${n}`:``}]`);if(r!==null)return r;let i=document.createElement(`style`);return t&&i.setAttribute(`nonce`,t),i.setAttribute(`data-tiptap-style${n?`-${n}`:``}`,``),i.innerHTML=e,document.getElementsByTagName(`head`)[0].appendChild(i),i}function KQ(e,t){let n=e.getAttribute(`style`);if(!n)return null;let r=n.split(`;`).map(e=>e.trim()).filter(Boolean),i=t.toLowerCase();for(let e=r.length-1;e>=0;--e){let t=r[e],n=t.indexOf(`:`);if(n!==-1&&t.slice(0,n).trim().toLowerCase()===i)return t.slice(n+1).trim()}return null}function gLe(e){return typeof e==`number`}function _Le(e){return Object.prototype.toString.call(e).slice(8,-1)}function qQ(e){return _Le(e)===`Object`?e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype:!1}function JQ(e,t,n){let r=e.split(` `),i=[],a=``,o=0,s=t.baseIndentSize||2;for(;o0)break;if(e.trim()===``){o+=1,a=`${a}${e}\n`;continue}else return}let d=t.extractItemData(u),{indentLevel:f,mainContent:p}=d;a=`${a}${e}\n`;let m=[p];for(o+=1;oe.trim()!==``);if(t===-1)break;if((((l=r[o+1+t].match(/^(\s*)/))==null||(l=l[1])==null?void 0:l.length)||0)>f){m.push(e),a=`${a}${e}\n`,o+=1;continue}else break}if((((c=e.match(/^(\s*)/))==null||(c=c[1])==null?void 0:c.length)||0)>f)m.push(e),a=`${a}${e}\n`,o+=1;else break}let h,g=m.slice(1);if(g.length>0){let e=g.map(e=>e.slice(f+s)).join(` `);e.trim()&&(h=t.customNestedParser?t.customNestedParser(e):n.blockTokens(e))}let _=t.createToken(d,h);i.push(_)}if(i.length!==0)return{items:i,raw:a}}var YQ=4;function XQ(e){let t=0;for(let n of e)t=n===` `?t+YQ-t%YQ:t+1;return t}function ZQ(e,t,n,r,i){if(!e||!Array.isArray(e.content))return``;let a=typeof n==`function`?n(r):n,[o,...s]=e.content,c=`${a}${t.renderChildren([o])}`;return s&&s.length>0&&s.forEach((e,n)=>{let r=t.renderChild?.call(t,e,n+1)??t.renderChildren([e]);if(r!=null){let n=e=>{if(!i?.alignNestedToPrefix)return t.indent(e);let n=t.indent(``),r=XQ(a);return(XQ(n)>=r?n:` `.repeat(r))+e},o=r.split(` `).map(e=>n(e||``)).join(` -`);c+=e.type===`paragraph`?`\n\n${o}`:`\n${o}`}}),c}function QQ(e,t){let n={...e};return qQ(e)&&qQ(t)&&Object.keys(t).forEach(r=>{qQ(t[r])&&qQ(e[r])?n[r]=QQ(e[r],t[r]):n[r]=t[r]}),n}function _Le(e,t,n={}){let{state:r}=t,{doc:i,tr:a}=r,o=e;i.descendants((t,r)=>{let i=a.mapping.map(r),s=a.mapping.map(r)+t.nodeSize,c=null;if(t.marks.forEach(e=>{if(e!==o)return!1;c=e}),!c)return;let l=!1;if(Object.keys(n).forEach(e=>{n[e]!==c.attrs[e]&&(l=!0)}),l){let t=e.type.create({...e.attrs,...n});a.removeMark(i,s,e.type),a.addMark(i,s,t)}}),a.docChanged&&t.view.dispatch(a)}var $Q=class{constructor(e){this.find=e.find,this.handler=e.handler,this.undoable=e.undoable??!0}},vLe=(e,t)=>{if(jZ(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn(`[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".`),r.push(n.replaceWith)),r};function e$(e){let{editor:t,from:n,to:r,text:i,rules:a,plugin:o}=e,{view:s}=t;if(s.composing)return!1;let c=s.state.doc.resolve(n);if(c.parent.type.spec.code||(c.nodeBefore||c.nodeAfter)?.marks.find(e=>e.type.spec.code))return!1;let l=!1,u=SIe(c)+i;return a.forEach(e=>{if(l)return;let a=vLe(u,e.find);if(!a)return;let d=a[0].length-i.length;if(d>0){let e=c.parentOffset-d;if(e<0||c.parent.textBetween(e,c.parentOffset)!==a[0].slice(0,d))return}let f=s.state.tr,p=DZ({state:s.state,transaction:f}),m={from:n-(a[0].length-i.length),to:r},{commands:h,chain:g,can:_}=new OZ({editor:t,state:p});e.handler({state:p,range:m,match:a,commands:h,chain:g,can:_})===null||!f.steps.length||(e.undoable&&f.setMeta(o,{transform:f,from:n,to:r,text:i}),s.dispatch(f),l=!0)}),l}function yLe(e){let{editor:t,rules:n}=e,r=new oJ({state:{init(){return null},apply(e,i,a){let o=e.getMeta(r);if(o)return o;let s=e.getMeta(`applyInputRules`);return s&&setTimeout(()=>{let{text:e}=s;e=typeof e==`string`?e:aQ(tK.from(e),a.schema);let{from:i}=s;e$({editor:t,from:i,to:i+e.length,text:e,rules:n,plugin:r})}),e.selectionSet||e.docChanged?null:i}},props:{handleTextInput(e,i,a,o){return e$({editor:t,from:i,to:a,text:o,rules:n,plugin:r})},handleDOMEvents:{compositionend:e=>(setTimeout(()=>{let{$cursor:i}=e.state.selection;i&&e$({editor:t,from:i.pos,to:i.pos,text:``,rules:n,plugin:r})}),!1)},handleKeyDown(e,i){if(i.key!==`Enter`)return!1;let{$cursor:a}=e.state.selection;return a?e$({editor:t,from:a.pos,to:a.pos,text:` -`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}var t$=class{constructor(e={}){this.type=`extendable`,this.parent=null,this.child=null,this.name=``,this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...sQ(rQ(this,`addOptions`,{name:this.name}))}}get storage(){return{...sQ(rQ(this,`addStorage`,{name:this.name,options:this.options}))}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>QQ(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name=`name`in e?e.name:t.parent.name,t}},n$=class e extends t${constructor(...e){super(...e),this.type=`mark`}static create(t={}){return new e(typeof t==`function`?t():t)}static handleExit({editor:e,mark:t}){let{tr:n}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){let i=r.marks();if(!i.find(e=>e?.type.name===t.name))return!1;let a=i.find(e=>e?.type.name===t.name);return a&&n.removeStoredMark(a),n.insertText(` `,r.pos),e.view.dispatch(n),!0}return!1}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}},r$=class{constructor(e){this.find=e.find,this.handler=e.handler}},bLe=(e,t,n)=>{if(jZ(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(t=>{let n=[t.text];return n.index=t.index,n.input=e,n.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn(`[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".`),n.push(t.replaceWith)),n}):[]};function xLe(e){let{editor:t,state:n,from:r,to:i,rule:a,pasteEvent:o,dropEvent:s}=e,{commands:c,chain:l,can:u}=new OZ({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,i,(e,t)=>{var f;if(!((f=e.type)==null||(f=f.spec)==null)&&f.code||!(e.isText||e.isTextblock||e.isInline))return;let p=e.content?.size??e.nodeSize??0,m=Math.max(r,t),h=Math.min(i,t+p);m>=h||bLe(e.isText?e.text||``:e.textBetween(m-t,h-t,void 0,``),a.find,o).forEach(e=>{if(e.index===void 0)return;let t=m+e.index+1,r=t+e[0].length,i={from:n.tr.mapping.map(t),to:n.tr.mapping.map(r)},f=a.handler({state:n,range:i,match:e,commands:c,chain:l,can:u,pasteEvent:o,dropEvent:s});d.push(f)})}),d.every(e=>e!==null)}var i$=null,SLe=e=>{var t;let n=new ClipboardEvent(`paste`,{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData(`text/html`,e),n};function CLe(e){let{editor:t,rules:n}=e,r=null,i=!1,a=!1,o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,s;try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}let c=({state:e,from:n,to:r,rule:i,pasteEvt:a})=>{let c=e.tr;if(!(!xLe({editor:t,state:DZ({state:e,transaction:c}),from:Math.max(n-1,0),to:r.b-1,rule:i,pasteEvent:a,dropEvent:s})||!c.steps.length)){try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}return o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,c}};return n.map(e=>new oJ({view(e){let n=n=>{r=e.dom.parentElement?.contains(n.target)?e.dom.parentElement:null,r&&(i$=t)},i=()=>{i$&&=null};return window.addEventListener(`dragstart`,n),window.addEventListener(`dragend`,i),{destroy(){window.removeEventListener(`dragstart`,n),window.removeEventListener(`dragend`,i)}}},props:{handleDOMEvents:{drop:(e,t)=>{if(a=r===e.dom.parentElement,s=t,!a){let e=i$;e?.isEditable&&setTimeout(()=>{let t=e.state.selection;t&&e.commands.deleteRange({from:t.from,to:t.to})},10)}return!1},paste:(e,t)=>{let n=t.clipboardData?.getData(`text/html`);return o=t,i=!!n?.includes(`data-pm-slice`),!1}}},appendTransaction:(t,n,r)=>{let s=t[0],l=s.getMeta(`uiEvent`)===`paste`&&!i,u=s.getMeta(`uiEvent`)===`drop`&&!a,d=s.getMeta(`applyPasteRules`),f=!!d;if(!l&&!u&&!f)return;if(f){let{text:t}=d;t=typeof t==`string`?t:aQ(tK.from(t),r.schema);let{from:n}=d,i=n+t.length,a=SLe(t);return c({rule:e,state:r,from:n,to:{b:i},pasteEvt:a})}let p=n.doc.content.findDiffStart(r.doc.content),m=n.doc.content.findDiffEnd(r.doc.content);if(!(!hLe(p)||!m||p===m.b))return c({rule:e,state:r,from:p,to:m,pasteEvt:o})}}))}var a$=class{constructor(e,t){this.splittableMarks=[],this.nonClearableMarks=[],this.decorationManager=null,this.editor=t,this.baseExtensions=e,this.extensions=_Q(e),this.schema=mIe(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n=rQ(t,`addCommands`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:CQ(t.name,this.schema)});return n?{...e,...n()}:e},{})}get plugins(){let{editor:e}=this,t=gQ([...this.extensions].reverse()).flatMap(t=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:CQ(t.name,this.schema)},r=[],i=rQ(t,`addKeyboardShortcuts`,n),a={};if(t.type===`mark`&&rQ(t,`exitable`,n)&&(a.ArrowRight=()=>n$.handleExit({editor:e,mark:t})),i){let t=Object.fromEntries(Object.entries(i()).map(([t,n])=>[t,()=>n({editor:e})]));a={...a,...t}}let o=_Fe(a);r.push(o);let s=rQ(t,`addInputRules`,n);if(EQ(t,e.options.enableInputRules)&&s){let t=s();if(t&&t.length){let n=yLe({editor:e,rules:t}),i=Array.isArray(n)?n:[n];r.push(...i)}}let c=rQ(t,`addPasteRules`,n);if(EQ(t,e.options.enablePasteRules)&&c){let t=c();if(t&&t.length){let n=CLe({editor:e,rules:t});r.push(...n)}}let l=rQ(t,`addProseMirrorPlugins`,n);if(l){let e=l();r.push(...e)}return r}),n=this.createDecorationPlugin();return n&&t.push(n),t}createDecorationPlugin(){var e;let{editor:t}=this;(e=this.decorationManager)==null||e.destroy();let n=[];return this.extensions.forEach(e=>{let r=rQ(e,`addDecorations`,{name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:t,type:CQ(e.name,this.schema)});r&&n.push({name:e.name,addDecorations:r})}),this.decorationManager=new fLe({editor:t,entries:n}),this.decorationManager.plugin}get attributes(){return lQ(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=cQ(this.extensions);return Object.fromEntries(t.filter(e=>!!rQ(e,`addNodeView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=rQ(t,`addNodeView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:kZ(t.name,this.schema)});if(!r)return[];let i=r();return i?[t.name,(r,a,o,s,c)=>i({node:r,view:a,getPos:o,decorations:s,innerDecorations:c,editor:e,extension:t,HTMLAttributes:fQ(r,n)})]:[]}))}dispatchTransaction(e){let{editor:t}=this;return gQ([...this.extensions].reverse()).reduceRight((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:CQ(n.name,this.schema)},i=rQ(n,`dispatchTransaction`,r);return i?t=>{i.call(r,{transaction:t,next:e})}:e},e)}transformPastedHTML(e){let{editor:t}=this;return gQ([...this.extensions]).reduce((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:CQ(n.name,this.schema)},i=rQ(n,`transformPastedHTML`,r);return i?(t,n)=>{let a=e(t,n);return i.call(r,a)}:e},e||(e=>e))}get markViews(){let{editor:e}=this,{markExtensions:t}=cQ(this.extensions);return Object.fromEntries(t.filter(e=>!!rQ(e,`addMarkView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=rQ(t,`addMarkView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:IZ(t.name,this.schema)});return r?[t.name,(i,a,o)=>{let s=fQ(i,n);return r()({mark:i,view:a,inline:o,editor:e,extension:t,HTMLAttributes:s,updateAttributes:t=>{_Le(i,e,t)}})}]:[]}))}destroy(){var e;(e=this.decorationManager)==null||e.destroy(),this.extensions.forEach(e=>{let t=e;for(;t.parent;){let e=t.parent;e.child===t&&(e.child=null),t=e}}),this.extensions=[],this.baseExtensions=[],this.decorationManager=null,this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(e=>[e.name,e.storage])),e.forEach(e=>{let t={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:CQ(e.name,this.schema)};e.type===`mark`&&((sQ(rQ(e,`keepOnSplit`,t))??!0)&&this.splittableMarks.push(e.name),(sQ(rQ(e,`clearable`,t))??!0)||this.nonClearableMarks.push(e.name));let n=rQ(e,`onBeforeCreate`,t),r=rQ(e,`onCreate`,t),i=rQ(e,`onUpdate`,t),a=rQ(e,`onSelectionUpdate`,t),o=rQ(e,`onTransaction`,t),s=rQ(e,`onFocus`,t),c=rQ(e,`onBlur`,t),l=rQ(e,`onDestroy`,t);n&&this.editor.on(`beforeCreate`,n),r&&this.editor.on(`create`,r),i&&this.editor.on(`update`,i),a&&this.editor.on(`selectionUpdate`,a),o&&this.editor.on(`transaction`,o),s&&this.editor.on(`focus`,s),c&&this.editor.on(`blur`,c),l&&this.editor.on(`destroy`,l)})}};a$.resolve=_Q,a$.sort=gQ,a$.flatten=iQ;var o$=class e extends t${constructor(...e){super(...e),this.type=`extension`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}},wLe=o$.create({name:`clipboardTextSerializer`,addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`clipboardTextSerializer`),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,a=yQ(n),{blockSeparator:o}=this.options,s={...o===void 0?{}:{blockSeparator:o},textSerializers:a};return[...i.ranges].sort((e,t)=>e.$from.pos-t.$from.pos).map(({$from:e,$to:t})=>vQ(r,{from:e.pos,to:t.pos},s)).join(o??` +`);c+=e.type===`paragraph`?`\n\n${o}`:`\n${o}`}}),c}function QQ(e,t){let n={...e};return qQ(e)&&qQ(t)&&Object.keys(t).forEach(r=>{qQ(t[r])&&qQ(e[r])?n[r]=QQ(e[r],t[r]):n[r]=t[r]}),n}function vLe(e,t,n={}){let{state:r}=t,{doc:i,tr:a}=r,o=e;i.descendants((t,r)=>{let i=a.mapping.map(r),s=a.mapping.map(r)+t.nodeSize,c=null;if(t.marks.forEach(e=>{if(e!==o)return!1;c=e}),!c)return;let l=!1;if(Object.keys(n).forEach(e=>{n[e]!==c.attrs[e]&&(l=!0)}),l){let t=e.type.create({...e.attrs,...n});a.removeMark(i,s,e.type),a.addMark(i,s,t)}}),a.docChanged&&t.view.dispatch(a)}var $Q=class{constructor(e){this.find=e.find,this.handler=e.handler,this.undoable=e.undoable??!0}},yLe=(e,t)=>{if(jZ(t))return t.exec(e);let n=t(e);if(!n)return null;let r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn(`[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".`),r.push(n.replaceWith)),r};function e$(e){let{editor:t,from:n,to:r,text:i,rules:a,plugin:o}=e,{view:s}=t;if(s.composing)return!1;let c=s.state.doc.resolve(n);if(c.parent.type.spec.code||(c.nodeBefore||c.nodeAfter)?.marks.find(e=>e.type.spec.code))return!1;let l=!1,u=CIe(c)+i;return a.forEach(e=>{if(l)return;let a=yLe(u,e.find);if(!a)return;let d=a[0].length-i.length;if(d>0){let e=c.parentOffset-d;if(e<0||c.parent.textBetween(e,c.parentOffset)!==a[0].slice(0,d))return}let f=s.state.tr,p=DZ({state:s.state,transaction:f}),m={from:n-(a[0].length-i.length),to:r},{commands:h,chain:g,can:_}=new OZ({editor:t,state:p});e.handler({state:p,range:m,match:a,commands:h,chain:g,can:_})===null||!f.steps.length||(e.undoable&&f.setMeta(o,{transform:f,from:n,to:r,text:i}),s.dispatch(f),l=!0)}),l}function bLe(e){let{editor:t,rules:n}=e,r=new oJ({state:{init(){return null},apply(e,i,a){let o=e.getMeta(r);if(o)return o;let s=e.getMeta(`applyInputRules`);return s&&setTimeout(()=>{let{text:e}=s;e=typeof e==`string`?e:aQ(tK.from(e),a.schema);let{from:i}=s;e$({editor:t,from:i,to:i+e.length,text:e,rules:n,plugin:r})}),e.selectionSet||e.docChanged?null:i}},props:{handleTextInput(e,i,a,o){return e$({editor:t,from:i,to:a,text:o,rules:n,plugin:r})},handleDOMEvents:{compositionend:e=>(setTimeout(()=>{let{$cursor:i}=e.state.selection;i&&e$({editor:t,from:i.pos,to:i.pos,text:``,rules:n,plugin:r})}),!1)},handleKeyDown(e,i){if(i.key!==`Enter`)return!1;let{$cursor:a}=e.state.selection;return a?e$({editor:t,from:a.pos,to:a.pos,text:` +`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}var t$=class{constructor(e={}){this.type=`extendable`,this.parent=null,this.child=null,this.name=``,this.config={name:this.name},this.config={...this.config,...e},this.name=this.config.name}get options(){return{...sQ(rQ(this,`addOptions`,{name:this.name}))}}get storage(){return{...sQ(rQ(this,`addStorage`,{name:this.name,options:this.options}))}}configure(e={}){let t=this.extend({...this.config,addOptions:()=>QQ(this.options,e)});return t.name=this.name,t.parent=this.parent,this.child=null,t}extend(e={}){let t=new this.constructor({...this.config,...e});return t.parent=this,this.child=t,t.name=`name`in e?e.name:t.parent.name,t}},n$=class e extends t${constructor(...e){super(...e),this.type=`mark`}static create(t={}){return new e(typeof t==`function`?t():t)}static handleExit({editor:e,mark:t}){let{tr:n}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){let i=r.marks();if(!i.find(e=>e?.type.name===t.name))return!1;let a=i.find(e=>e?.type.name===t.name);return a&&n.removeStoredMark(a),n.insertText(` `,r.pos),e.view.dispatch(n),!0}return!1}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}},r$=class{constructor(e){this.find=e.find,this.handler=e.handler}},xLe=(e,t,n)=>{if(jZ(t))return[...e.matchAll(t)];let r=t(e,n);return r?r.map(t=>{let n=[t.text];return n.index=t.index,n.input=e,n.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn(`[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".`),n.push(t.replaceWith)),n}):[]};function SLe(e){let{editor:t,state:n,from:r,to:i,rule:a,pasteEvent:o,dropEvent:s}=e,{commands:c,chain:l,can:u}=new OZ({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,i,(e,t)=>{var f;if(!((f=e.type)==null||(f=f.spec)==null)&&f.code||!(e.isText||e.isTextblock||e.isInline))return;let p=e.content?.size??e.nodeSize??0,m=Math.max(r,t),h=Math.min(i,t+p);m>=h||xLe(e.isText?e.text||``:e.textBetween(m-t,h-t,void 0,``),a.find,o).forEach(e=>{if(e.index===void 0)return;let t=m+e.index+1,r=t+e[0].length,i={from:n.tr.mapping.map(t),to:n.tr.mapping.map(r)},f=a.handler({state:n,range:i,match:e,commands:c,chain:l,can:u,pasteEvent:o,dropEvent:s});d.push(f)})}),d.every(e=>e!==null)}var i$=null,CLe=e=>{var t;let n=new ClipboardEvent(`paste`,{clipboardData:new DataTransfer});return(t=n.clipboardData)==null||t.setData(`text/html`,e),n};function wLe(e){let{editor:t,rules:n}=e,r=null,i=!1,a=!1,o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,s;try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}let c=({state:e,from:n,to:r,rule:i,pasteEvt:a})=>{let c=e.tr;if(!(!SLe({editor:t,state:DZ({state:e,transaction:c}),from:Math.max(n-1,0),to:r.b-1,rule:i,pasteEvent:a,dropEvent:s})||!c.steps.length)){try{s=typeof DragEvent<`u`?new DragEvent(`drop`):null}catch{s=null}return o=typeof ClipboardEvent<`u`?new ClipboardEvent(`paste`):null,c}};return n.map(e=>new oJ({view(e){let n=n=>{r=e.dom.parentElement?.contains(n.target)?e.dom.parentElement:null,r&&(i$=t)},i=()=>{i$&&=null};return window.addEventListener(`dragstart`,n),window.addEventListener(`dragend`,i),{destroy(){window.removeEventListener(`dragstart`,n),window.removeEventListener(`dragend`,i)}}},props:{handleDOMEvents:{drop:(e,t)=>{if(a=r===e.dom.parentElement,s=t,!a){let e=i$;e?.isEditable&&setTimeout(()=>{let t=e.state.selection;t&&e.commands.deleteRange({from:t.from,to:t.to})},10)}return!1},paste:(e,t)=>{let n=t.clipboardData?.getData(`text/html`);return o=t,i=!!n?.includes(`data-pm-slice`),!1}}},appendTransaction:(t,n,r)=>{let s=t[0],l=s.getMeta(`uiEvent`)===`paste`&&!i,u=s.getMeta(`uiEvent`)===`drop`&&!a,d=s.getMeta(`applyPasteRules`),f=!!d;if(!l&&!u&&!f)return;if(f){let{text:t}=d;t=typeof t==`string`?t:aQ(tK.from(t),r.schema);let{from:n}=d,i=n+t.length,a=CLe(t);return c({rule:e,state:r,from:n,to:{b:i},pasteEvt:a})}let p=n.doc.content.findDiffStart(r.doc.content),m=n.doc.content.findDiffEnd(r.doc.content);if(!(!gLe(p)||!m||p===m.b))return c({rule:e,state:r,from:p,to:m,pasteEvt:o})}}))}var a$=class{constructor(e,t){this.splittableMarks=[],this.nonClearableMarks=[],this.decorationManager=null,this.editor=t,this.baseExtensions=e,this.extensions=_Q(e),this.schema=hIe(this.extensions,t),this.setupExtensions()}get commands(){return this.extensions.reduce((e,t)=>{let n=rQ(t,`addCommands`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:this.editor,type:CQ(t.name,this.schema)});return n?{...e,...n()}:e},{})}get plugins(){let{editor:e}=this,t=gQ([...this.extensions].reverse()).flatMap(t=>{let n={name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:CQ(t.name,this.schema)},r=[],i=rQ(t,`addKeyboardShortcuts`,n),a={};if(t.type===`mark`&&rQ(t,`exitable`,n)&&(a.ArrowRight=()=>n$.handleExit({editor:e,mark:t})),i){let t=Object.fromEntries(Object.entries(i()).map(([t,n])=>[t,()=>n({editor:e})]));a={...a,...t}}let o=vFe(a);r.push(o);let s=rQ(t,`addInputRules`,n);if(EQ(t,e.options.enableInputRules)&&s){let t=s();if(t&&t.length){let n=bLe({editor:e,rules:t}),i=Array.isArray(n)?n:[n];r.push(...i)}}let c=rQ(t,`addPasteRules`,n);if(EQ(t,e.options.enablePasteRules)&&c){let t=c();if(t&&t.length){let n=wLe({editor:e,rules:t});r.push(...n)}}let l=rQ(t,`addProseMirrorPlugins`,n);if(l){let e=l();r.push(...e)}return r}),n=this.createDecorationPlugin();return n&&t.push(n),t}createDecorationPlugin(){var e;let{editor:t}=this;(e=this.decorationManager)==null||e.destroy();let n=[];return this.extensions.forEach(e=>{let r=rQ(e,`addDecorations`,{name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:t,type:CQ(e.name,this.schema)});r&&n.push({name:e.name,addDecorations:r})}),this.decorationManager=new pLe({editor:t,entries:n}),this.decorationManager.plugin}get attributes(){return lQ(this.extensions)}get nodeViews(){let{editor:e}=this,{nodeExtensions:t}=cQ(this.extensions);return Object.fromEntries(t.filter(e=>!!rQ(e,`addNodeView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=rQ(t,`addNodeView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:kZ(t.name,this.schema)});if(!r)return[];let i=r();return i?[t.name,(r,a,o,s,c)=>i({node:r,view:a,getPos:o,decorations:s,innerDecorations:c,editor:e,extension:t,HTMLAttributes:fQ(r,n)})]:[]}))}dispatchTransaction(e){let{editor:t}=this;return gQ([...this.extensions].reverse()).reduceRight((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:CQ(n.name,this.schema)},i=rQ(n,`dispatchTransaction`,r);return i?t=>{i.call(r,{transaction:t,next:e})}:e},e)}transformPastedHTML(e){let{editor:t}=this;return gQ([...this.extensions]).reduce((e,n)=>{let r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:CQ(n.name,this.schema)},i=rQ(n,`transformPastedHTML`,r);return i?(t,n)=>{let a=e(t,n);return i.call(r,a)}:e},e||(e=>e))}get markViews(){let{editor:e}=this,{markExtensions:t}=cQ(this.extensions);return Object.fromEntries(t.filter(e=>!!rQ(e,`addMarkView`)).map(t=>{let n=this.attributes.filter(e=>e.type===t.name),r=rQ(t,`addMarkView`,{name:t.name,options:t.options,storage:this.editor.extensionStorage[t.name],editor:e,type:IZ(t.name,this.schema)});return r?[t.name,(i,a,o)=>{let s=fQ(i,n);return r()({mark:i,view:a,inline:o,editor:e,extension:t,HTMLAttributes:s,updateAttributes:t=>{vLe(i,e,t)}})}]:[]}))}destroy(){var e;(e=this.decorationManager)==null||e.destroy(),this.extensions.forEach(e=>{let t=e;for(;t.parent;){let e=t.parent;e.child===t&&(e.child=null),t=e}}),this.extensions=[],this.baseExtensions=[],this.decorationManager=null,this.schema=null,this.editor=null}setupExtensions(){let e=this.extensions;this.editor.extensionStorage=Object.fromEntries(e.map(e=>[e.name,e.storage])),e.forEach(e=>{let t={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:CQ(e.name,this.schema)};e.type===`mark`&&((sQ(rQ(e,`keepOnSplit`,t))??!0)&&this.splittableMarks.push(e.name),(sQ(rQ(e,`clearable`,t))??!0)||this.nonClearableMarks.push(e.name));let n=rQ(e,`onBeforeCreate`,t),r=rQ(e,`onCreate`,t),i=rQ(e,`onUpdate`,t),a=rQ(e,`onSelectionUpdate`,t),o=rQ(e,`onTransaction`,t),s=rQ(e,`onFocus`,t),c=rQ(e,`onBlur`,t),l=rQ(e,`onDestroy`,t);n&&this.editor.on(`beforeCreate`,n),r&&this.editor.on(`create`,r),i&&this.editor.on(`update`,i),a&&this.editor.on(`selectionUpdate`,a),o&&this.editor.on(`transaction`,o),s&&this.editor.on(`focus`,s),c&&this.editor.on(`blur`,c),l&&this.editor.on(`destroy`,l)})}};a$.resolve=_Q,a$.sort=gQ,a$.flatten=iQ;var o$=class e extends t${constructor(...e){super(...e),this.type=`extension`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}},TLe=o$.create({name:`clipboardTextSerializer`,addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`clipboardTextSerializer`),props:{clipboardTextSerializer:()=>{let{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,a=yQ(n),{blockSeparator:o}=this.options,s={...o===void 0?{}:{blockSeparator:o},textSerializers:a};return[...i.ranges].sort((e,t)=>e.$from.pos-t.$from.pos).map(({$from:e,$to:t})=>vQ(r,{from:e.pos,to:t.pos},s)).join(o??` -`)}}})]}}),TLe=o$.create({name:`commands`,addCommands(){return{...ZIe}}}),ELe=o$.create({name:`delete`,onUpdate({transaction:e,appendedTransactions:t}){var n;let r=()=>{var n,r;if(((n=this.editor.options.coreExtensionOptions)==null||(n=n.delete)==null||(r=n.filterTransaction)==null?void 0:r.call(n,e))??e.getMeta(`y-sync$`))return;let i=tQ(e.before,[e,...t]);xQ(i).forEach(t=>{i.mapping.mapResult(t.oldRange.from).deletedAfter&&i.mapping.mapResult(t.oldRange.to).deletedBefore&&i.before.nodesBetween(t.oldRange.from,t.oldRange.to,(n,r)=>{let a=r+n.nodeSize-2,o=t.oldRange.from<=r&&a<=t.oldRange.to;this.editor.emit(`delete`,{type:`node`,node:n,from:r,to:a,newFrom:i.mapping.map(r),newTo:i.mapping.map(a),deletedRange:t.oldRange,newRange:t.newRange,partial:!o,editor:this.editor,transaction:e,combinedTransform:i})})});let a=i.mapping;i.steps.forEach((t,n)=>{if(t instanceof dq){let r=a.slice(n).map(t.from,-1),o=a.slice(n).map(t.to),s=a.invert().map(r,-1),c=a.invert().map(o),l=r>0?i.doc.nodeAt(r-1)?.marks.some(e=>e.eq(t.mark)):!1,u=i.doc.nodeAt(o)?.marks.some(e=>e.eq(t.mark));this.editor.emit(`delete`,{type:`mark`,mark:t.mark,from:t.from,to:t.to,deletedRange:{from:s,to:c},newRange:{from:r,to:o},partial:!!(u||l),editor:this.editor,transaction:e,combinedTransform:i})}})};((n=this.editor.options.coreExtensionOptions)==null||(n=n.delete)==null?void 0:n.async)??!0?setTimeout(r,0):r()}}),DLe=o$.create({name:`drop`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`tiptapDrop`),props:{handleDrop:(e,t,n,r)=>{this.editor.emit(`drop`,{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),OLe=o$.create({name:`editable`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`editable`),props:{editable:()=>this.editor.options.editable}})]}}),kLe=new lJ(`focusEvents`),ALe=o$.create({name:`focusEvents`,addProseMirrorPlugins(){let{editor:e}=this;return[new oJ({key:kLe,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta(`focus`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta(`blur`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1}}}})]}}),jLe=o$.create({name:`keymap`,addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:e})=>[()=>e.undoInputRule(),()=>e.command(({tr:t})=>{let{selection:n,doc:r}=t,{empty:i,$anchor:a}=n,{pos:o,parent:s}=a,c=a.parent.isTextblock&&o>0?t.doc.resolve(o-1):a,l=c.parent.type.spec.isolating,u=a.pos-a.parentOffset,d=l&&c.parent.childCount===1?u===a.pos:Uq.atStart(r).from===o;return!i||!s.type.isTextblock||s.textContent.length||!d||d&&a.parent.type.name===`paragraph`?!1:e.clearNodes()}),()=>e.deleteSelection(),()=>e.joinBackward(),()=>e.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:e})=>[()=>e.deleteSelection(),()=>e.deleteCurrentNode(),()=>e.joinForward(),()=>e.selectNodeForward()]),n={Enter:()=>this.editor.commands.first(({commands:e})=>[()=>e.newlineInCode(),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},r={...n},i={...n,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return VZ()||YZ()?i:r},addProseMirrorPlugins(){return[new oJ({key:new lJ(`clearDocument`),appendTransaction:(e,t,n)=>{if(e.some(e=>e.getMeta(`composition`)))return;let r=e.some(e=>e.docChanged)&&!t.doc.eq(n.doc),i=e.some(e=>e.getMeta(`preventClearDocument`));if(!r||i)return;let{empty:a,from:o,to:s}=t.selection,c=Uq.atStart(t.doc).from,l=Uq.atEnd(t.doc).to;if(a||!(o===c&&s===l)||!OQ(n.doc))return;let u=n.tr,d=DZ({state:n,transaction:u}),{commands:f}=new OZ({editor:this.editor,state:d});if(f.clearNodes(),u.steps.length)return u}})]}}),MLe=o$.create({name:`paste`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`tiptapPaste`),props:{handlePaste:(e,t,n)=>{this.editor.emit(`paste`,{editor:this.editor,event:t,slice:n})}}})]}}),NLe=o$.create({name:`tabindex`,addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`tabindex`),props:{attributes:()=>!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:this.options.value??`0`}}})]}}),PLe=o$.create({name:`textDirection`,addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=cQ(this.extensions);return[{types:e.filter(e=>e.name!==`text`).map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{let t=e.getAttribute(`dir`);return t&&(t===`ltr`||t===`rtl`||t===`auto`)?t:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new oJ({key:new lJ(`textDirection`),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}}),s$=!1;function FLe(e){if(s$)return;s$=!0;let t;try{t=mq.fromJSON(e,{from:0,to:0}).slice.content}catch{return}t instanceof tK||console.warn(`[tiptap warn]: prosemirror-model is loaded more than once. Wrapping and splitting nodes will fail. Deduplicate it in your lock file, or alias it to a single copy in your bundler.`)}var ILe=class e{get name(){return this.node.type.name}constructor(e,t,n=!1,r=null){this.currentNode=null,this.actualDepth=null,this.isBlock=n,this.resolvedPos=e,this.editor=t,this.currentNode=r}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){return this.actualDepth??this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let t=this.from,n=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}t=this.from+1,n=this.to-1}this.editor.commands.insertContentAt({from:t,to:n},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+ +!this.node.isText}get parent(){if(this.depth===0)return null;let t=this.resolvedPos.start(this.resolvedPos.depth-1);return new e(this.resolvedPos.doc.resolve(t),this.editor)}get before(){let t=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.from-3)),new e(t,this.editor)}get after(){let t=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.to+3)),new e(t,this.editor)}get children(){let t=[];return this.node.content.forEach((n,r)=>{let i=n.isBlock&&!n.isTextblock,a=n.isAtom&&!n.isText,o=n.isInline,s=this.pos+r+ +!a;if(s<0||s>this.resolvedPos.doc.nodeSize-2)return;let c=this.resolvedPos.doc.resolve(s);if(!i&&!o&&c.depth<=this.depth)return;let l=new e(c,this.editor,i,i||o?n:null);i&&(l.actualDepth=this.depth+1),t.push(l)}),t}get firstChild(){return this.children[0]||null}get lastChild(){let e=this.children;return e[e.length-1]||null}closest(e,t={}){let n=null,r=this.parent;for(;r&&!n;){if(r.node.type.name===e)if(Object.keys(t).length>0){let e=r.node.attrs,n=Object.keys(t);for(let r=0;r{n&&r.length>0||(a.node.type.name===e&&i.every(e=>t[e]===a.node.attrs[e])&&r.push(a),!(n&&r.length>0)&&(r=r.concat(a.querySelectorAll(e,t,n))))}),r}setAttribute(e){let{tr:t}=this.editor.state;t.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(t)}},LLe=`.ProseMirror { +`)}}})]}}),ELe=o$.create({name:`commands`,addCommands(){return{...QIe}}}),DLe=o$.create({name:`delete`,onUpdate({transaction:e,appendedTransactions:t}){var n;let r=()=>{var n,r;if(((n=this.editor.options.coreExtensionOptions)==null||(n=n.delete)==null||(r=n.filterTransaction)==null?void 0:r.call(n,e))??e.getMeta(`y-sync$`))return;let i=tQ(e.before,[e,...t]);xQ(i).forEach(t=>{i.mapping.mapResult(t.oldRange.from).deletedAfter&&i.mapping.mapResult(t.oldRange.to).deletedBefore&&i.before.nodesBetween(t.oldRange.from,t.oldRange.to,(n,r)=>{let a=r+n.nodeSize-2,o=t.oldRange.from<=r&&a<=t.oldRange.to;this.editor.emit(`delete`,{type:`node`,node:n,from:r,to:a,newFrom:i.mapping.map(r),newTo:i.mapping.map(a),deletedRange:t.oldRange,newRange:t.newRange,partial:!o,editor:this.editor,transaction:e,combinedTransform:i})})});let a=i.mapping;i.steps.forEach((t,n)=>{if(t instanceof dq){let r=a.slice(n).map(t.from,-1),o=a.slice(n).map(t.to),s=a.invert().map(r,-1),c=a.invert().map(o),l=r>0?i.doc.nodeAt(r-1)?.marks.some(e=>e.eq(t.mark)):!1,u=i.doc.nodeAt(o)?.marks.some(e=>e.eq(t.mark));this.editor.emit(`delete`,{type:`mark`,mark:t.mark,from:t.from,to:t.to,deletedRange:{from:s,to:c},newRange:{from:r,to:o},partial:!!(u||l),editor:this.editor,transaction:e,combinedTransform:i})}})};((n=this.editor.options.coreExtensionOptions)==null||(n=n.delete)==null?void 0:n.async)??!0?setTimeout(r,0):r()}}),OLe=o$.create({name:`drop`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`tiptapDrop`),props:{handleDrop:(e,t,n,r)=>{this.editor.emit(`drop`,{editor:this.editor,event:t,slice:n,moved:r})}}})]}}),kLe=o$.create({name:`editable`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`editable`),props:{editable:()=>this.editor.options.editable}})]}}),ALe=new lJ(`focusEvents`),jLe=o$.create({name:`focusEvents`,addProseMirrorPlugins(){let{editor:e}=this;return[new oJ({key:ALe,props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;let r=e.state.tr.setMeta(`focus`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;let r=e.state.tr.setMeta(`blur`,{event:n}).setMeta(`addToHistory`,!1);return t.dispatch(r),!1}}}})]}}),MLe=o$.create({name:`keymap`,addKeyboardShortcuts(){let e=()=>this.editor.commands.first(({commands:e})=>[()=>e.undoInputRule(),()=>e.command(({tr:t})=>{let{selection:n,doc:r}=t,{empty:i,$anchor:a}=n,{pos:o,parent:s}=a,c=a.parent.isTextblock&&o>0?t.doc.resolve(o-1):a,l=c.parent.type.spec.isolating,u=a.pos-a.parentOffset,d=l&&c.parent.childCount===1?u===a.pos:Uq.atStart(r).from===o;return!i||!s.type.isTextblock||s.textContent.length||!d||d&&a.parent.type.name===`paragraph`?!1:e.clearNodes()}),()=>e.deleteSelection(),()=>e.joinBackward(),()=>e.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:e})=>[()=>e.deleteSelection(),()=>e.deleteCurrentNode(),()=>e.joinForward(),()=>e.selectNodeForward()]),n={Enter:()=>this.editor.commands.first(({commands:e})=>[()=>e.newlineInCode(),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},r={...n},i={...n,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return VZ()||YZ()?i:r},addProseMirrorPlugins(){return[new oJ({key:new lJ(`clearDocument`),appendTransaction:(e,t,n)=>{if(e.some(e=>e.getMeta(`composition`)))return;let r=e.some(e=>e.docChanged)&&!t.doc.eq(n.doc),i=e.some(e=>e.getMeta(`preventClearDocument`));if(!r||i)return;let{empty:a,from:o,to:s}=t.selection,c=Uq.atStart(t.doc).from,l=Uq.atEnd(t.doc).to;if(a||!(o===c&&s===l)||!OQ(n.doc))return;let u=n.tr,d=DZ({state:n,transaction:u}),{commands:f}=new OZ({editor:this.editor,state:d});if(f.clearNodes(),u.steps.length)return u}})]}}),NLe=o$.create({name:`paste`,addProseMirrorPlugins(){return[new oJ({key:new lJ(`tiptapPaste`),props:{handlePaste:(e,t,n)=>{this.editor.emit(`paste`,{editor:this.editor,event:t,slice:n})}}})]}}),PLe=o$.create({name:`tabindex`,addOptions(){return{value:void 0}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`tabindex`),props:{attributes:()=>!this.editor.isEditable&&this.options.value===void 0?{}:{tabindex:this.options.value??`0`}}})]}}),FLe=o$.create({name:`textDirection`,addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];let{nodeExtensions:e}=cQ(this.extensions);return[{types:e.filter(e=>e.name!==`text`).map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{let t=e.getAttribute(`dir`);return t&&(t===`ltr`||t===`rtl`||t===`auto`)?t:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new oJ({key:new lJ(`textDirection`),props:{attributes:()=>{let e=this.options.direction;return e?{dir:e}:{}}}})]}}),s$=!1;function ILe(e){if(s$)return;s$=!0;let t;try{t=mq.fromJSON(e,{from:0,to:0}).slice.content}catch{return}t instanceof tK||console.warn(`[tiptap warn]: prosemirror-model is loaded more than once. Wrapping and splitting nodes will fail. Deduplicate it in your lock file, or alias it to a single copy in your bundler.`)}var LLe=class e{get name(){return this.node.type.name}constructor(e,t,n=!1,r=null){this.currentNode=null,this.actualDepth=null,this.isBlock=n,this.resolvedPos=e,this.editor=t,this.currentNode=r}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){return this.actualDepth??this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let t=this.from,n=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}t=this.from+1,n=this.to-1}this.editor.commands.insertContentAt({from:t,to:n},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+ +!this.node.isText}get parent(){if(this.depth===0)return null;let t=this.resolvedPos.start(this.resolvedPos.depth-1);return new e(this.resolvedPos.doc.resolve(t),this.editor)}get before(){let t=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.from-3)),new e(t,this.editor)}get after(){let t=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.to+3)),new e(t,this.editor)}get children(){let t=[];return this.node.content.forEach((n,r)=>{let i=n.isBlock&&!n.isTextblock,a=n.isAtom&&!n.isText,o=n.isInline,s=this.pos+r+ +!a;if(s<0||s>this.resolvedPos.doc.nodeSize-2)return;let c=this.resolvedPos.doc.resolve(s);if(!i&&!o&&c.depth<=this.depth)return;let l=new e(c,this.editor,i,i||o?n:null);i&&(l.actualDepth=this.depth+1),t.push(l)}),t}get firstChild(){return this.children[0]||null}get lastChild(){let e=this.children;return e[e.length-1]||null}closest(e,t={}){let n=null,r=this.parent;for(;r&&!n;){if(r.node.type.name===e)if(Object.keys(t).length>0){let e=r.node.attrs,n=Object.keys(t);for(let r=0;r{n&&r.length>0||(a.node.type.name===e&&i.every(e=>t[e]===a.node.attrs[e])&&r.push(a),!(n&&r.length>0)&&(r=r.concat(a.querySelectorAll(e,t,n))))}),r}setAttribute(e){let{tr:t}=this.editor.state;t.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(t)}},RLe=`.ProseMirror { position: relative; } @@ -4300,13 +4300,13 @@ img.ProseMirror-separator { .ProseMirror-focused .ProseMirror-gapcursor { display: block; -}`,RLe=class extends eLe{constructor(e={}){super(),this.css=null,this.className=`tiptap`,this.editorView=null,this.isFocused=!1,this.destroyed=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.hasWarnedStaleDecorationRead=!1,this.options={element:typeof document<`u`?document.createElement(`div`):null,content:``,injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:e})=>{throw e},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:EIe,createMappablePosition:DIe},this.setOptions(e),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on(`beforeCreate`,this.options.onBeforeCreate),this.emit(`beforeCreate`,{editor:this}),this.on(`mount`,this.options.onMount),this.on(`unmount`,this.options.onUnmount),this.on(`contentError`,this.options.onContentError),this.on(`create`,this.options.onCreate),this.on(`update`,this.options.onUpdate),this.on(`selectionUpdate`,this.options.onSelectionUpdate),this.on(`transaction`,this.options.onTransaction),this.on(`focus`,this.options.onFocus),this.on(`blur`,this.options.onBlur),this.on(`destroy`,this.options.onDestroy),this.on(`drop`,({event:e,slice:t,moved:n})=>this.options.onDrop(e,t,n)),this.on(`paste`,({event:e,slice:t})=>this.options.onPaste(e,t)),this.on(`delete`,this.options.onDelete);let t=this.createDoc();if(!this.editorState){let e=zZ(t,this.options.autofocus);this.editorState=iJ.create({doc:t,schema:this.schema,selection:e||void 0})}FLe(this.schema),this.options.element&&this.mount(this.options.element)}mount(e){if(typeof document>`u`)throw Error(`[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.`);this.createView(e),this.emit(`mount`,{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit(`create`,{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){this.editorState=this.editorView.state;let e=this.editorView.dom;e?.editor&&delete e.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove==`function`?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(e){console.warn(`Failed to remove CSS element:`,e)}this.css=null,this.emit(`unmount`,{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager?this.commandManager.chain():OZ.createFakeChain()}can(){return this.commandManager?this.commandManager.can():OZ.createFallbackCan()}injectCSS(){this.options.injectCSS&&typeof document<`u`&&(this.css=mLe(LLe,this.options.injectNonce))}setOptions(e={}){this.options={...this.options,...e},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(e,t=!0){this.setOptions({editable:e}),t&&this.emit(`update`,{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:e=>{this.editorState=e},dispatch:e=>{this.dispatchTransaction(e)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(e,t)=>{if(this.editorView)return this.editorView[t];if(t===`state`)return this.editorState;if(t in e)return Reflect.get(e,t);throw Error(`[tiptap error]: The editor view is not available. Cannot access view['${t}']. The editor may not be mounted yet.`)}})}get state(){return RQ&&!this.hasWarnedStaleDecorationRead&&$Ie(this)&&(this.hasWarnedStaleDecorationRead=!0,console.warn("[tiptap warn]: `editor.state` was read while decoration `create()` was running. It returns the pre-transaction document. Use the `state` argument passed to `create()` instead. Helpers like `editor.isActive()` read `editor.state` too, so pass `state` to their standalone versions instead of calling them on the editor.")),this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(e,t){let n=oQ(t)?t(e,[...this.state.plugins]):[...this.state.plugins,e],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(e){if(this.isDestroyed)return;let t=this.state.plugins,n=t;if([].concat(e).forEach(e=>{let t=typeof e==`string`?`${e}$`:e.key;n=n.filter(e=>!e.key.startsWith(t))}),t.length===n.length)return;let r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){var e,t;let n=[...this.options.enableCoreExtensions?[OLe,wLe.configure({blockSeparator:(e=this.options.coreExtensionOptions)==null||(e=e.clipboardTextSerializer)==null?void 0:e.blockSeparator}),TLe,ALe,jLe,NLe.configure({value:(t=this.options.coreExtensionOptions)==null||(t=t.tabindex)==null?void 0:t.value}),DLe,MLe,ELe,PLe.configure({direction:this.options.textDirection})].filter(e=>typeof this.options.enableCoreExtensions==`object`?this.options.enableCoreExtensions[e.name]!==!1:!0):[],...this.options.extensions].filter(e=>[`extension`,`node`,`mark`].includes(e?.type));this.extensionManager=new a$(n,this)}createCommandManager(){this.commandManager=new OZ({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let e;try{e=$Z(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||![`[tiptap error]: Invalid JSON content`,`[tiptap error]: Invalid HTML content`].includes(e.message))throw e;let t=$Z(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1});return this.editorState=iJ.create({doc:t,schema:this.schema,selection:zZ(t,this.options.autofocus)||void 0}),this.emit(`contentError`,{editor:this,error:e,disableCollaboration:()=>{`collaboration`in this.storage&&typeof this.storage.collaboration==`object`&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(e=>e.name!==`collaboration`),this.createExtensionManager()}}),this.editorState.doc}return e}createView(e){let{editorProps:t,enableExtensionDispatchTransaction:n}=this.options,r=t.dispatchTransaction||this.dispatchTransaction.bind(this),i=n?this.extensionManager.dispatchTransaction(r):r,a=t.transformPastedHTML,o=this.extensionManager.transformPastedHTML(a);this.editorView=new hZ(e,{...t,attributes:{role:`textbox`,...t?.attributes},dispatchTransaction:i,transformPastedHTML:o,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});let s=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(s),this.prependClass(),this.injectCSS();let c=this.view.dom;c.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(e){this.isCapturingTransaction=!0,e(),this.isCapturingTransaction=!1;let t=this.capturedTransaction;return this.capturedTransaction=null,t}dispatchTransaction(e){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=e;return}e.steps.forEach(e=>this.capturedTransaction?.step(e));return}let{state:t,transactions:n}=this.state.applyTransaction(e),r=!this.state.selection.eq(t.selection),i=n.includes(e),a=this.state;if(this.emit(`beforeTransaction`,{editor:this,transaction:e,nextState:t}),!i)return;this.view.updateState(t),this.emit(`transaction`,{editor:this,transaction:e,appendedTransactions:n.slice(1)}),r&&this.emit(`selectionUpdate`,{editor:this,transaction:e});let o=n.findLast(e=>e.getMeta(`focus`)||e.getMeta(`blur`)),s=o?.getMeta(`focus`),c=o?.getMeta(`blur`);s&&this.emit(`focus`,{editor:this,event:s.event,transaction:o}),c&&this.emit(`blur`,{editor:this,event:c.event,transaction:o}),!(e.getMeta(`preventUpdate`)||!n.some(e=>e.docChanged)||a.doc.eq(t.doc))&&this.emit(`update`,{editor:this,transaction:e,appendedTransactions:n.slice(1)})}getAttributes(e){return bQ(this.state,e)}isActive(e,t){let n=typeof e==`string`?e:null,r=typeof e==`string`?t:e;return CIe(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return aQ(this.state.doc.content,this.schema)}getText(e){let{blockSeparator:t=` +}`,zLe=class extends tLe{constructor(e={}){super(),this.css=null,this.className=`tiptap`,this.editorView=null,this.isFocused=!1,this.destroyed=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.hasWarnedStaleDecorationRead=!1,this.options={element:typeof document<`u`?document.createElement(`div`):null,content:``,injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:e})=>{throw e},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null,enableExtensionDispatchTransaction:!0},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.utils={getUpdatedPosition:DIe,createMappablePosition:OIe},this.setOptions(e),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on(`beforeCreate`,this.options.onBeforeCreate),this.emit(`beforeCreate`,{editor:this}),this.on(`mount`,this.options.onMount),this.on(`unmount`,this.options.onUnmount),this.on(`contentError`,this.options.onContentError),this.on(`create`,this.options.onCreate),this.on(`update`,this.options.onUpdate),this.on(`selectionUpdate`,this.options.onSelectionUpdate),this.on(`transaction`,this.options.onTransaction),this.on(`focus`,this.options.onFocus),this.on(`blur`,this.options.onBlur),this.on(`destroy`,this.options.onDestroy),this.on(`drop`,({event:e,slice:t,moved:n})=>this.options.onDrop(e,t,n)),this.on(`paste`,({event:e,slice:t})=>this.options.onPaste(e,t)),this.on(`delete`,this.options.onDelete);let t=this.createDoc();if(!this.editorState){let e=zZ(t,this.options.autofocus);this.editorState=iJ.create({doc:t,schema:this.schema,selection:e||void 0})}ILe(this.schema),this.options.element&&this.mount(this.options.element)}mount(e){if(typeof document>`u`)throw Error(`[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.`);this.createView(e),this.emit(`mount`,{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit(`create`,{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){this.editorState=this.editorView.state;let e=this.editorView.dom;e?.editor&&delete e.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove==`function`?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(e){console.warn(`Failed to remove CSS element:`,e)}this.css=null,this.emit(`unmount`,{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager?this.commandManager.chain():OZ.createFakeChain()}can(){return this.commandManager?this.commandManager.can():OZ.createFallbackCan()}injectCSS(){this.options.injectCSS&&typeof document<`u`&&(this.css=hLe(RLe,this.options.injectNonce))}setOptions(e={}){this.options={...this.options,...e},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(e,t=!0){this.setOptions({editable:e}),t&&this.emit(`update`,{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:e=>{this.editorState=e},dispatch:e=>{this.dispatchTransaction(e)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(e,t)=>{if(this.editorView)return this.editorView[t];if(t===`state`)return this.editorState;if(t in e)return Reflect.get(e,t);throw Error(`[tiptap error]: The editor view is not available. Cannot access view['${t}']. The editor may not be mounted yet.`)}})}get state(){return RQ&&!this.hasWarnedStaleDecorationRead&&eLe(this)&&(this.hasWarnedStaleDecorationRead=!0,console.warn("[tiptap warn]: `editor.state` was read while decoration `create()` was running. It returns the pre-transaction document. Use the `state` argument passed to `create()` instead. Helpers like `editor.isActive()` read `editor.state` too, so pass `state` to their standalone versions instead of calling them on the editor.")),this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(e,t){let n=oQ(t)?t(e,[...this.state.plugins]):[...this.state.plugins,e],r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}unregisterPlugin(e){if(this.isDestroyed)return;let t=this.state.plugins,n=t;if([].concat(e).forEach(e=>{let t=typeof e==`string`?`${e}$`:e.key;n=n.filter(e=>!e.key.startsWith(t))}),t.length===n.length)return;let r=this.state.reconfigure({plugins:n});return this.view.updateState(r),r}createExtensionManager(){var e,t;let n=[...this.options.enableCoreExtensions?[kLe,TLe.configure({blockSeparator:(e=this.options.coreExtensionOptions)==null||(e=e.clipboardTextSerializer)==null?void 0:e.blockSeparator}),ELe,jLe,MLe,PLe.configure({value:(t=this.options.coreExtensionOptions)==null||(t=t.tabindex)==null?void 0:t.value}),OLe,NLe,DLe,FLe.configure({direction:this.options.textDirection})].filter(e=>typeof this.options.enableCoreExtensions==`object`?this.options.enableCoreExtensions[e.name]!==!1:!0):[],...this.options.extensions].filter(e=>[`extension`,`node`,`mark`].includes(e?.type));this.extensionManager=new a$(n,this)}createCommandManager(){this.commandManager=new OZ({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let e;try{e=$Z(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||![`[tiptap error]: Invalid JSON content`,`[tiptap error]: Invalid HTML content`].includes(e.message))throw e;let t=$Z(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1});return this.editorState=iJ.create({doc:t,schema:this.schema,selection:zZ(t,this.options.autofocus)||void 0}),this.emit(`contentError`,{editor:this,error:e,disableCollaboration:()=>{`collaboration`in this.storage&&typeof this.storage.collaboration==`object`&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(e=>e.name!==`collaboration`),this.createExtensionManager()}}),this.editorState.doc}return e}createView(e){let{editorProps:t,enableExtensionDispatchTransaction:n}=this.options,r=t.dispatchTransaction||this.dispatchTransaction.bind(this),i=n?this.extensionManager.dispatchTransaction(r):r,a=t.transformPastedHTML,o=this.extensionManager.transformPastedHTML(a);this.editorView=new hZ(e,{...t,attributes:{role:`textbox`,...t?.attributes},dispatchTransaction:i,transformPastedHTML:o,state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});let s=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(s),this.prependClass(),this.injectCSS();let c=this.view.dom;c.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(e){this.isCapturingTransaction=!0,e(),this.isCapturingTransaction=!1;let t=this.capturedTransaction;return this.capturedTransaction=null,t}dispatchTransaction(e){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=e;return}e.steps.forEach(e=>this.capturedTransaction?.step(e));return}let{state:t,transactions:n}=this.state.applyTransaction(e),r=!this.state.selection.eq(t.selection),i=n.includes(e),a=this.state;if(this.emit(`beforeTransaction`,{editor:this,transaction:e,nextState:t}),!i)return;this.view.updateState(t),this.emit(`transaction`,{editor:this,transaction:e,appendedTransactions:n.slice(1)}),r&&this.emit(`selectionUpdate`,{editor:this,transaction:e});let o=n.findLast(e=>e.getMeta(`focus`)||e.getMeta(`blur`)),s=o?.getMeta(`focus`),c=o?.getMeta(`blur`);s&&this.emit(`focus`,{editor:this,event:s.event,transaction:o}),c&&this.emit(`blur`,{editor:this,event:c.event,transaction:o}),!(e.getMeta(`preventUpdate`)||!n.some(e=>e.docChanged)||a.doc.eq(t.doc))&&this.emit(`update`,{editor:this,transaction:e,appendedTransactions:n.slice(1)})}getAttributes(e){return bQ(this.state,e)}isActive(e,t){let n=typeof e==`string`?e:null,r=typeof e==`string`?t:e;return wIe(this.state,n,r)}getJSON(){return this.state.doc.toJSON()}getHTML(){return aQ(this.state.doc.content,this.schema)}getText(e){let{blockSeparator:t=` -`,textSerializers:n={}}=e||{};return gIe(this.state.doc,{blockSeparator:t,textSerializers:{...yQ(this.schema),...n}})}get isEmpty(){return OQ(this.state.doc)}destroy(){this.destroyed||(this.destroyed=!0,this.emit(`destroy`),this.unmount(),this.removeAllListeners(),this.extensionManager.destroy(),this.extensionManager=null,this.schema=null,this.commandManager=null,this.extensionStorage={})}get isDestroyed(){return this.editorView?.isDestroyed??!0}$node(e,t){return this.$doc?.querySelector(e,t)||null}$nodes(e,t){return this.$doc?.querySelectorAll(e,t)||null}$pos(e){let t=this.state.doc.resolve(e),n=e>0&&t.nodeAfter&&!t.nodeAfter.isText&&t.nodeAfter.isAtom?t.nodeAfter:null;return new ILe(t,this,!1,n)}get $doc(){return this.$pos(0)}};function c$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=sQ(e.getAttributes,void 0,r);if(i===!1||i===null)return null;let{tr:a}=t,o=r[r.length-1],s=r[0];if(o){let r=s.search(/\S/),c=n.from+s.indexOf(o),l=c+o.length;if(SQ(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>c).length)return null;ln.from&&a.delete(n.from+r,c);let u=n.from+r+o.length;a.addMark(n.from+r,u,e.type.create(i||{})),a.removeStoredMark(e.type)}},undoable:e.undoable})}function l$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=sQ(e.getAttributes,void 0,r)||{},{tr:a}=t,o=n.from,s=n.to,c=e.type.create(i);if(r[1]){let e=o+r[0].lastIndexOf(r[1]);e>s?e=s:s=e+r[1].length;let t=r[0][r[0].length-1];a.insertText(t,o+r[0].length-1),a.replaceWith(e,s,c)}else if(r[0]){let t=e.type.isInline?o:o-1;a.insert(t,e.type.create(i)).delete(a.mapping.map(o),a.mapping.map(s))}a.scrollIntoView()},undoable:e.undoable})}function u$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=t.doc.resolve(n.from),a=sQ(e.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,a)},undoable:e.undoable})}function d$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{let a=sQ(e.getAttributes,void 0,r)||{},o=t.tr.delete(n.from,n.to),s=o.doc.resolve(n.from).blockRange(),c=s&&yq(s,e.type,a);if(!c)return null;if(o.wrap(s,c),e.keepMarks&&e.editor){let{selection:n,storedMarks:r}=t,{splittableMarks:i}=e.editor.extensionManager,a=r||n.$to.parentOffset&&n.$from.marks();if(a){let e=a.filter(e=>i.includes(e.type.name));o.ensureMarks(e)}}if(e.keepAttributes){let t=e.type.name===`bulletList`||e.type.name===`orderedList`?`listItem`:`taskList`;i().updateAttributes(t,a).run()}let l=o.doc.resolve(n.from-1).nodeBefore;l&&l.type===e.type&&wq(o.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,l))&&o.join(n.from-1)},undoable:e.undoable})}var zLe=e=>`touches`in e,BLe=class{constructor(e){var t;this.directions=[`bottom-left`,`bottom-right`,`top-left`,`top-right`],this.minSize={height:8,width:8},this.preserveAspectRatio=!1,this.classNames={container:``,wrapper:``,handle:``,resizing:``},this.initialWidth=0,this.initialHeight=0,this.aspectRatio=1,this.isResizing=!1,this.activeHandle=null,this.startX=0,this.startY=0,this.startWidth=0,this.startHeight=0,this.isShiftKeyPressed=!1,this.lastEditableState=void 0,this.handleMap=new Map,this.handleMouseMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.clientX-this.startX,n=e.clientY-this.startY;this.handleResize(t,n)},this.handleTouchMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.touches[0];if(!t)return;let n=t.clientX-this.startX,r=t.clientY-this.startY;this.handleResize(n,r)},this.handleMouseUp=()=>{if(!this.isResizing)return;let e=this.element.offsetWidth,t=this.element.offsetHeight;this.onCommit(e,t),this.isResizing=!1,this.activeHandle=null,this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp)},this.handleKeyDown=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!0)},this.handleKeyUp=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!1)},this.node=e.node,this.editor=e.editor,this.element=e.element,this.element.draggable=!1,this.contentElement=e.contentElement,this.getPos=e.getPos,this.onResize=e.onResize,this.onCommit=e.onCommit,this.onUpdate=e.onUpdate,e.options?.min&&(this.minSize={...this.minSize,...e.options.min}),e.options?.max&&(this.maxSize=e.options.max),!(e==null||(t=e.options)==null)&&t.directions&&(this.directions=e.options.directions),e.options?.preserveAspectRatio&&(this.preserveAspectRatio=e.options.preserveAspectRatio),e.options?.className&&(this.classNames={container:e.options.className.container||``,wrapper:e.options.className.wrapper||``,handle:e.options.className.handle||``,resizing:e.options.className.resizing||``}),e.options?.createCustomHandle&&(this.createCustomHandle=e.options.createCustomHandle),this.wrapper=this.createWrapper(),this.container=this.createContainer(),this.applyInitialSize(),this.attachHandles(),this.editor.on(`update`,this.handleEditorUpdate.bind(this))}get dom(){return this.container}get contentDOM(){return this.contentElement??null}handleEditorUpdate(){let e=this.editor.isEditable;e!==this.lastEditableState&&(this.lastEditableState=e,e?e&&this.handleMap.size===0&&this.attachHandles():this.removeHandles())}update(e,t,n){return e.type===this.node.type?(this.node=e,this.onUpdate?this.onUpdate(e,t,n):!0):!1}destroy(){this.isResizing&&(this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp),this.isResizing=!1,this.activeHandle=null),this.editor.off(`update`,this.handleEditorUpdate.bind(this)),this.container.remove()}createContainer(){let e=document.createElement(`div`);return e.dataset.resizeContainer=``,e.dataset.node=this.node.type.name,e.style.display=this.node.type.isInline?`inline-flex`:`flex`,this.classNames.container&&(e.className=this.classNames.container),e.appendChild(this.wrapper),e}createWrapper(){let e=document.createElement(`div`);return e.style.position=`relative`,e.style.display=`block`,e.dataset.resizeWrapper=``,this.classNames.wrapper&&(e.className=this.classNames.wrapper),e.appendChild(this.element),e}createHandle(e){let t=document.createElement(`div`);return t.dataset.resizeHandle=e,t.style.position=`absolute`,this.classNames.handle&&(t.className=this.classNames.handle),t}positionHandle(e,t){let n=t.includes(`top`),r=t.includes(`bottom`),i=t.includes(`left`),a=t.includes(`right`);n&&(e.style.top=`0`),r&&(e.style.bottom=`0`),i&&(e.style.left=`0`),a&&(e.style.right=`0`),(t===`top`||t===`bottom`)&&(e.style.left=`0`,e.style.right=`0`),(t===`left`||t===`right`)&&(e.style.top=`0`,e.style.bottom=`0`)}attachHandles(){this.directions.forEach(e=>{let t;t=this.createCustomHandle?this.createCustomHandle(e):this.createHandle(e),t instanceof HTMLElement||(console.warn(`[ResizableNodeView] createCustomHandle("${e}") did not return an HTMLElement. Falling back to default handle.`),t=this.createHandle(e)),this.createCustomHandle||this.positionHandle(t,e),t.addEventListener(`mousedown`,t=>this.handleResizeStart(t,e)),t.addEventListener(`touchstart`,t=>this.handleResizeStart(t,e)),this.handleMap.set(e,t),this.wrapper.appendChild(t)})}removeHandles(){this.handleMap.forEach(e=>e.remove()),this.handleMap.clear()}applyInitialSize(){let e=this.node.attrs.width,t=this.node.attrs.height;e?(this.element.style.width=`${e}px`,this.initialWidth=e):this.initialWidth=this.element.offsetWidth,t?(this.element.style.height=`${t}px`,this.initialHeight=t):this.initialHeight=this.element.offsetHeight,this.initialWidth>0&&this.initialHeight>0&&(this.aspectRatio=this.initialWidth/this.initialHeight)}handleResizeStart(e,t){e.preventDefault(),e.stopPropagation(),this.isResizing=!0,this.activeHandle=t,zLe(e)?(this.startX=e.touches[0].clientX,this.startY=e.touches[0].clientY):(this.startX=e.clientX,this.startY=e.clientY),this.startWidth=this.element.offsetWidth,this.startHeight=this.element.offsetHeight,this.startWidth>0&&this.startHeight>0&&(this.aspectRatio=this.startWidth/this.startHeight),this.getPos(),this.container.dataset.resizeState=`true`,this.classNames.resizing&&this.container.classList.add(this.classNames.resizing),document.addEventListener(`mousemove`,this.handleMouseMove),document.addEventListener(`touchmove`,this.handleTouchMove),document.addEventListener(`mouseup`,this.handleMouseUp),document.addEventListener(`keydown`,this.handleKeyDown),document.addEventListener(`keyup`,this.handleKeyUp)}handleResize(e,t){if(!this.activeHandle)return;let n=this.preserveAspectRatio||this.isShiftKeyPressed,{width:r,height:i}=this.calculateNewDimensions(this.activeHandle,e,t),a=this.applyConstraints(r,i,n);this.element.style.width=`${a.width}px`,this.element.style.height=`${a.height}px`,this.onResize&&this.onResize(a.width,a.height)}calculateNewDimensions(e,t,n){let r=this.startWidth,i=this.startHeight,a=e.includes(`right`),o=e.includes(`left`),s=e.includes(`bottom`),c=e.includes(`top`);return a?r=this.startWidth+t:o&&(r=this.startWidth-t),s?i=this.startHeight+n:c&&(i=this.startHeight-n),(e===`right`||e===`left`)&&(r=this.startWidth+(a?t:-t)),(e===`top`||e===`bottom`)&&(i=this.startHeight+(s?n:-n)),this.preserveAspectRatio||this.isShiftKeyPressed?this.applyAspectRatio(r,i,e):{width:r,height:i}}applyConstraints(e,t,n){if(!n){let n=Math.max(this.minSize.width,e),r=Math.max(this.minSize.height,t);return this.maxSize?.width&&(n=Math.min(this.maxSize.width,n)),this.maxSize?.height&&(r=Math.min(this.maxSize.height,r)),{width:n,height:r}}let r=e,i=t;return rthis.maxSize.width&&(r=this.maxSize.width,i=r/this.aspectRatio),this.maxSize?.height&&i>this.maxSize.height&&(i=this.maxSize.height,r=i*this.aspectRatio),{width:r,height:i}}applyAspectRatio(e,t,n){return n===`left`||n===`right`?{width:e,height:e/this.aspectRatio}:n===`top`||n===`bottom`?{width:t*this.aspectRatio,height:t}:{width:e,height:e/this.aspectRatio}}},f$=class e extends t${constructor(...e){super(...e),this.type=`node`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}};function p$(e){return new r$({find:e.find,handler:({state:t,range:n,match:r,pasteEvent:i})=>{let a=sQ(e.getAttributes,void 0,r,i);if(a===!1||a===null)return null;let{tr:o}=t,s=r[r.length-1],c=r[0],l=n.to;if(s){let i=c.search(/\S/),u=n.from+c.indexOf(s),d=u+s.length;if(SQ(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>u).length)return null;dn.from&&o.delete(n.from+i,u),l=n.from+i+s.length,o.addMark(n.from+i,l,e.type.create(a||{})),r.index!==void 0&&r.input!==void 0&&r.index+r[0].length>=r.input.length||o.removeStoredMark(e.type)}}})}var{getOwnPropertyNames:VLe,getOwnPropertySymbols:HLe}=Object,{hasOwnProperty:ULe}=Object.prototype;function m$(e,t){return function(n,r,i){return e(n,r,i)&&t(n,r,i)}}function h$(e){return function(t,n,r){if(!t||!n||typeof t!=`object`||typeof n!=`object`)return e(t,n,r);let{cache:i}=r,a=i.get(t),o=i.get(n);if(a&&o)return a===n&&o===t;i.set(t,n),i.set(n,t);let s=e(t,n,r);return i.delete(t),i.delete(n),s}}function WLe(e){return e?.[Symbol.toStringTag]}function g$(e){return VLe(e).concat(HLe(e))}var GLe=Object.hasOwn||((e,t)=>ULe.call(e,t));function _$(e,t){return e===t||!e&&!t&&e!==e&&t!==t}var KLe=`__v`,qLe=`__o`,JLe=`_owner`,{getOwnPropertyDescriptor:v$,keys:y$}=Object;function YLe(e,t){return e.byteLength===t.byteLength&&C$(new Uint8Array(e),new Uint8Array(t))}function XLe(e,t,n){let r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function ZLe(e,t){return e.byteLength===t.byteLength&&C$(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function QLe(e,t){return _$(e.getTime(),t.getTime())}function $Le(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function eRe(e,t){return e===t}function b$(e,t,n){let r=e.size;if(r!==t.size)return!1;if(!r)return!0;let i=Array(r),a=e.entries(),o,s,c=0;for(;(o=a.next())&&!o.done;){let r=t.entries(),a=!1,l=0;for(;(s=r.next())&&!s.done;){if(i[l]){l++;continue}let r=o.value,u=s.value;if(n.equals(r[0],u[0],c,l,e,t,n)&&n.equals(r[1],u[1],r[0],u[0],e,t,n)){a=i[l]=!0;break}l++}if(!a)return!1;c++}return!0}var tRe=_$;function nRe(e,t,n){let r=y$(e),i=r.length;if(y$(t).length!==i)return!1;for(;i-- >0;)if(!w$(e,t,n,r[i]))return!1;return!0}function x$(e,t,n){let r=g$(e),i=r.length;if(g$(t).length!==i)return!1;let a,o,s;for(;i-- >0;)if(a=r[i],!w$(e,t,n,a)||(o=v$(e,a),s=v$(t,a),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function rRe(e,t){return _$(e.valueOf(),t.valueOf())}function iRe(e,t){return e.source===t.source&&e.flags===t.flags}function S$(e,t,n){let r=e.size;if(r!==t.size)return!1;if(!r)return!0;let i=Array(r),a=e.values(),o,s;for(;(o=a.next())&&!o.done;){let r=t.values(),a=!1,c=0;for(;(s=r.next())&&!s.done;){if(!i[c]&&n.equals(o.value,s.value,o.value,s.value,e,t,n)){a=i[c]=!0;break}c++}if(!a)return!1}return!0}function C$(e,t){let n=e.byteLength;if(t.byteLength!==n||e.byteOffset!==t.byteOffset)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function aRe(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function w$(e,t,n,r){return(r===JLe||r===qLe||r===KLe)&&(e.$$typeof||t.$$typeof)?!0:GLe(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var oRe=`[object ArrayBuffer]`,sRe=`[object Arguments]`,cRe=`[object Boolean]`,lRe=`[object DataView]`,uRe=`[object Date]`,dRe=`[object Error]`,fRe=`[object Map]`,pRe=`[object Number]`,mRe=`[object Object]`,hRe=`[object RegExp]`,gRe=`[object Set]`,_Re=`[object String]`,vRe={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},yRe=`[object URL]`,bRe=Object.prototype.toString;function xRe({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:c,arePrimitiveWrappersEqual:l,areRegExpsEqual:u,areSetsEqual:d,areTypedArraysEqual:f,areUrlsEqual:p,unknownTagComparators:m}){return function(h,g,_){if(h===g)return!0;if(h==null||g==null)return!1;let v=typeof h;if(v!==typeof g)return!1;if(v!==`object`)return v===`number`?s(h,g,_):v===`function`?a(h,g,_):!1;let y=h.constructor;if(y!==g.constructor)return!1;if(y===Object)return c(h,g,_);if(Array.isArray(h))return t(h,g,_);if(y===Date)return r(h,g,_);if(y===RegExp)return u(h,g,_);if(y===Map)return o(h,g,_);if(y===Set)return d(h,g,_);let b=bRe.call(h);if(b===uRe)return r(h,g,_);if(b===hRe)return u(h,g,_);if(b===fRe)return o(h,g,_);if(b===gRe)return d(h,g,_);if(b===mRe)return typeof h.then!=`function`&&typeof g.then!=`function`&&c(h,g,_);if(b===yRe)return p(h,g,_);if(b===dRe)return i(h,g,_);if(b===sRe)return c(h,g,_);if(vRe[b])return f(h,g,_);if(b===oRe)return e(h,g,_);if(b===lRe)return n(h,g,_);if(b===cRe||b===pRe||b===_Re)return l(h,g,_);if(m){let e=m[b];if(!e){let t=WLe(h);t&&(e=m[t])}if(e)return e(h,g,_)}return!1}}function SRe({circular:e,createCustomConfig:t,strict:n}){let r={areArrayBuffersEqual:YLe,areArraysEqual:n?x$:XLe,areDataViewsEqual:ZLe,areDatesEqual:QLe,areErrorsEqual:$Le,areFunctionsEqual:eRe,areMapsEqual:n?m$(b$,x$):b$,areNumbersEqual:tRe,areObjectsEqual:n?x$:nRe,arePrimitiveWrappersEqual:rRe,areRegExpsEqual:iRe,areSetsEqual:n?m$(S$,x$):S$,areTypedArraysEqual:n?m$(C$,x$):C$,areUrlsEqual:aRe,unknownTagComparators:void 0};if(t&&(r=Object.assign({},r,t(r))),e){let e=h$(r.areArraysEqual),t=h$(r.areMapsEqual),n=h$(r.areObjectsEqual),i=h$(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:e,areMapsEqual:t,areObjectsEqual:n,areSetsEqual:i})}return r}function CRe(e){return function(t,n,r,i,a,o,s){return e(t,n,s)}}function wRe({circular:e,comparator:t,createState:n,equals:r,strict:i}){if(n)return function(a,o){let{cache:s=e?new WeakMap:void 0,meta:c}=n();return t(a,o,{cache:s,equals:r,meta:c,strict:i})};if(e)return function(e,n){return t(e,n,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};let a={cache:void 0,equals:r,meta:void 0,strict:i};return function(e,n){return t(e,n,a)}}var TRe=T$();T$({strict:!0}),T$({circular:!0}),T$({circular:!0,strict:!0}),T$({createInternalComparator:()=>_$}),T$({strict:!0,createInternalComparator:()=>_$}),T$({circular:!0,createInternalComparator:()=>_$}),T$({circular:!0,createInternalComparator:()=>_$,strict:!0});function T$(e={}){let{circular:t=!1,createInternalComparator:n,createState:r,strict:i=!1}=e,a=xRe(SRe(e));return wRe({circular:t,comparator:a,createState:r,equals:n?n(a):CRe(a),strict:i})}var ERe=(...e)=>t=>{e.forEach(e=>{typeof e==`function`?e(t):e&&(e.current=t)})},DRe=({contentComponent:e})=>{let t=(0,Qe.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getServerSnapshot);return(0,G.jsx)(G.Fragment,{children:Object.values(t)})};function ORe(){let e=new Set,t={},n=!1,r=()=>{n||!e.size||(n=!0,queueMicrotask(()=>{n=!1,e.forEach(e=>e())}))};return{subscribe(t){return e.add(t),()=>{e.delete(t)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(e,n){t={...t,[e]:At.createPortal(n.reactElement,n.element,e)},r()},removeRenderer(e){let n={...t};delete n[e],t=n,r()}}}var kRe=class extends y.Component{constructor(e){super(e),this.editorContentRef=y.createRef()}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){let e=this.props.editor;if(e&&!e.isDestroyed&&e.view.dom?.parentNode){if(e.contentComponent)return;let t=this.editorContentRef.current;t.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:t}),e.contentComponent=ORe(),e.createNodeViews(),e.isEditorContentInitialized=!0,this.forceUpdate()}}componentWillUnmount(){let e=this.props.editor;if(e){e.isEditorContentInitialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),e.contentComponent=null;try{if(!e.view.dom?.parentNode)return;let t=document.createElement(`div`);t.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:t})}catch{}}}render(){let{editor:e,innerRef:t,...n}=this.props;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{ref:ERe(t,this.editorContentRef),...n}),e?.contentComponent&&(0,G.jsx)(DRe,{contentComponent:e.contentComponent})]})}},ARe=(0,y.forwardRef)((e,t)=>{let n=y.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[e.editor]);return y.createElement(kRe,{key:n,innerRef:t,...e})}),E$=y.memo(ARe),jRe=typeof window<`u`?y.useLayoutEffect:y.useEffect,MRe=class{constructor(e){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=e,this.lastSnapshot={editor:e,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}watch(e){if(this.editor=e,this.editor){let e,t=t=>{t?.transaction!==void 0&&t.transaction===e||(e=t?.transaction,this.transactionNumber+=1,this.subscribers.forEach(e=>e()))},n=this.editor;return n.on(`transaction`,t),n.on(`update`,t),()=>{n.off(`transaction`,t),n.off(`update`,t)}}}};function NRe(e){let[t]=(0,y.useState)(()=>new MRe(e.editor)),n=(0,ND.useSyncExternalStoreWithSelector)(t.subscribe,t.getSnapshot,t.getServerSnapshot,e.selector,e.equalityFn??TRe);return jRe(()=>t.watch(e.editor),[e.editor,t]),(0,y.useDebugValue)(n),n}var D$=typeof window>`u`,PRe=D$||!!(typeof window<`u`&&window.next),FRe=class e{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId=``,this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(e=>e())}getInitialEditor(){let e=this.options.current.immediatelyRender,t=e??!0;return(D$||PRe&&e===void 0)&&(t=!1),t?this.createEditor():null}createEditor(){return new RLe({...this.options.current,onBeforeCreate:(...e)=>{var t;return(t=this.options.current).onBeforeCreate?.call(t,...e)},onBlur:(...e)=>{var t;return(t=this.options.current).onBlur?.call(t,...e)},onCreate:(...e)=>{var t;return(t=this.options.current).onCreate?.call(t,...e)},onDestroy:(...e)=>{var t;return(t=this.options.current).onDestroy?.call(t,...e)},onFocus:(...e)=>{var t;return(t=this.options.current).onFocus?.call(t,...e)},onSelectionUpdate:(...e)=>{var t;return(t=this.options.current).onSelectionUpdate?.call(t,...e)},onTransaction:(...e)=>{var t;return(t=this.options.current).onTransaction?.call(t,...e)},onUpdate:(...e)=>{var t;return(t=this.options.current).onUpdate?.call(t,...e)},onContentError:(...e)=>{var t;return(t=this.options.current).onContentError?.call(t,...e)},onDrop:(...e)=>{var t;return(t=this.options.current).onDrop?.call(t,...e)},onPaste:(...e)=>{var t;return(t=this.options.current).onPaste?.call(t,...e)},onDelete:(...e)=>{var t;return(t=this.options.current).onDelete?.call(t,...e)},onMount:(...e)=>{var t;return(t=this.options.current).onMount?.call(t,...e)},onUnmount:(...e)=>{var t;return(t=this.options.current).onUnmount?.call(t,...e)}})}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,t){return Object.keys(e).every(n=>[`onCreate`,`onBeforeCreate`,`onDestroy`,`onUpdate`,`onTransaction`,`onFocus`,`onBlur`,`onSelectionUpdate`,`onContentError`,`onDrop`,`onPaste`].includes(n)?!0:n===`extensions`&&e.extensions&&t.extensions?e.extensions.length===t.extensions.length?e.extensions.every((e,n)=>e===t.extensions?.[n]):!1:e[n]===t[n])}onRender(t){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&t.length===0?e.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(t),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((t,n)=>t===e[n]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){let e=this.instanceId,t=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){t&&t.setOptions(this.options.current);return}t&&!t.isDestroyed&&(t.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function IRe(e={},t=[]){let n=(0,y.useRef)(e);n.current=e;let[r]=(0,y.useState)(()=>new FRe(n)),i=(0,Qe.useSyncExternalStore)(r.subscribe,r.getEditor,r.getServerSnapshot);return(0,y.useDebugValue)(i),(0,y.useEffect)(r.onRender(t)),NRe({editor:i,selector:({transactionNumber:t})=>e.shouldRerenderOnTransaction===!1||e.shouldRerenderOnTransaction===void 0?null:e.immediatelyRender&&t===0?0:t+1}),i}var O$=(0,y.createContext)({editor:null});O$.Consumer;var LRe=(0,y.createContext)({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),RRe=()=>(0,y.useContext)(LRe);y.forwardRef((e,t)=>{let{onDragStart:n}=RRe();return(0,G.jsx)(e.as||`div`,{...e,ref:t,"data-node-view-wrapper":``,onDragStart:n,style:{whiteSpace:`normal`,...e.style}})}),y.createContext({markViewContentRef:()=>{}});var k$=(0,y.createContext)({get editor(){throw Error(`useTiptap must be used within a provider`)}});k$.displayName=`TiptapContext`;var zRe=()=>(0,y.useContext)(k$);function A$({children:e,...t}){let n=`editor`in t?t.editor:t.instance;if(!n)throw Error("Tiptap: An editor instance is required. Pass a non-null `editor` prop.");let r=(0,y.useMemo)(()=>({editor:n}),[n]),i=(0,y.useMemo)(()=>({editor:n}),[n]);return(0,G.jsx)(O$.Provider,{value:i,children:(0,G.jsx)(k$.Provider,{value:r,children:e})})}A$.displayName=`Tiptap`;function j$({...e}){let{editor:t}=zRe();return(0,G.jsx)(E$,{editor:t,...e})}j$.displayName=`Tiptap.Content`,Object.assign(A$,{Content:j$});var M$=new WeakSet,N$=new WeakSet;function P$(e){let t=e;return M$.add(t),t}function F$(e){return Array.isArray(e)&&M$.has(e)}function I$(e){return e.flatMap(e=>e==null?[]:Array.isArray(e)&&N$.has(e)&&!F$(e)?I$(e):[e])}function BRe(e,t){if(e===`slot`)return 0;if(e instanceof Function){let n=e(t);return Array.isArray(n)&&!F$(n)&&!N$.has(n)?P$(n):n}let{children:n,...r}=t??{};if(e===`svg`)throw Error(`SVG elements are not supported in the JSX syntax, use the array syntax instead`);if(Array.isArray(n)){if(F$(n))return P$([e,r,n]);if(n.length===0)return P$([e,r]);let t=I$(n);return t.length===0?P$([e,r]):P$([e,r,...t])}return P$(n==null?[e,r]:[e,r,n])}var L$=(e,t)=>BRe(e,t),VRe=(e,t)=>{let{state:n}=e,{selection:r}=n;if(!r.empty)return!1;let{$from:i}=r;if(i.parentOffset!==0)return!1;let a=i.depth-1;if(a<0)return!1;let o=i.node(a),s=i.index(a);if(s===0)return!1;if(o.type===t)return e.commands.lift(t.name);let c=o.child(s-1);if(c.type!==t||!c.lastChild?.isTextblock)return!1;let l=i.before()-1-1;return e.commands.command(({tr:e,dispatch:t})=>{if(!t)return!0;let n=i.parent.content,r=new sK(n,0,0);return e.replace(l,i.after(),r),e.setSelection(Kq.create(e.doc,l+n.size)),e.scrollIntoView(),t(e),!0})},HRe=/^\s*>\s$/,URe=f$.create({name:`blockquote`,addOptions(){return{HTMLAttributes:{}}},content:`block+`,group:`block`,defining:!0,parseHTML(){return[{tag:`blockquote`}]},renderHTML({HTMLAttributes:e}){return L$(`blockquote`,{...dQ(this.options.HTMLAttributes,e),children:L$(`slot`,{})})},parseMarkdown:(e,t)=>{let n=t.parseBlockChildren??t.parseChildren;return t.createNode(`blockquote`,void 0,n(e.tokens||[]))},renderMarkdown:(e,t)=>{if(!e.content)return``;let n=[];return e.content.forEach((e,r)=>{let i=(t.renderChild?.call(t,e,r)??t.renderChildren([e])).split(` +`,textSerializers:n={}}=e||{};return _Ie(this.state.doc,{blockSeparator:t,textSerializers:{...yQ(this.schema),...n}})}get isEmpty(){return OQ(this.state.doc)}destroy(){this.destroyed||(this.destroyed=!0,this.emit(`destroy`),this.unmount(),this.removeAllListeners(),this.extensionManager.destroy(),this.extensionManager=null,this.schema=null,this.commandManager=null,this.extensionStorage={})}get isDestroyed(){return this.editorView?.isDestroyed??!0}$node(e,t){return this.$doc?.querySelector(e,t)||null}$nodes(e,t){return this.$doc?.querySelectorAll(e,t)||null}$pos(e){let t=this.state.doc.resolve(e),n=e>0&&t.nodeAfter&&!t.nodeAfter.isText&&t.nodeAfter.isAtom?t.nodeAfter:null;return new LLe(t,this,!1,n)}get $doc(){return this.$pos(0)}};function c$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=sQ(e.getAttributes,void 0,r);if(i===!1||i===null)return null;let{tr:a}=t,o=r[r.length-1],s=r[0];if(o){let r=s.search(/\S/),c=n.from+s.indexOf(o),l=c+o.length;if(SQ(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>c).length)return null;ln.from&&a.delete(n.from+r,c);let u=n.from+r+o.length;a.addMark(n.from+r,u,e.type.create(i||{})),a.removeStoredMark(e.type)}},undoable:e.undoable})}function l$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=sQ(e.getAttributes,void 0,r)||{},{tr:a}=t,o=n.from,s=n.to,c=e.type.create(i);if(r[1]){let e=o+r[0].lastIndexOf(r[1]);e>s?e=s:s=e+r[1].length;let t=r[0][r[0].length-1];a.insertText(t,o+r[0].length-1),a.replaceWith(e,s,c)}else if(r[0]){let t=e.type.isInline?o:o-1;a.insert(t,e.type.create(i)).delete(a.mapping.map(o),a.mapping.map(s))}a.scrollIntoView()},undoable:e.undoable})}function u$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r})=>{let i=t.doc.resolve(n.from),a=sQ(e.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,a)},undoable:e.undoable})}function d$(e){return new $Q({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{let a=sQ(e.getAttributes,void 0,r)||{},o=t.tr.delete(n.from,n.to),s=o.doc.resolve(n.from).blockRange(),c=s&&yq(s,e.type,a);if(!c)return null;if(o.wrap(s,c),e.keepMarks&&e.editor){let{selection:n,storedMarks:r}=t,{splittableMarks:i}=e.editor.extensionManager,a=r||n.$to.parentOffset&&n.$from.marks();if(a){let e=a.filter(e=>i.includes(e.type.name));o.ensureMarks(e)}}if(e.keepAttributes){let t=e.type.name===`bulletList`||e.type.name===`orderedList`?`listItem`:`taskList`;i().updateAttributes(t,a).run()}let l=o.doc.resolve(n.from-1).nodeBefore;l&&l.type===e.type&&wq(o.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,l))&&o.join(n.from-1)},undoable:e.undoable})}var BLe=e=>`touches`in e,VLe=class{constructor(e){var t;this.directions=[`bottom-left`,`bottom-right`,`top-left`,`top-right`],this.minSize={height:8,width:8},this.preserveAspectRatio=!1,this.classNames={container:``,wrapper:``,handle:``,resizing:``},this.initialWidth=0,this.initialHeight=0,this.aspectRatio=1,this.isResizing=!1,this.activeHandle=null,this.startX=0,this.startY=0,this.startWidth=0,this.startHeight=0,this.isShiftKeyPressed=!1,this.lastEditableState=void 0,this.handleMap=new Map,this.handleMouseMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.clientX-this.startX,n=e.clientY-this.startY;this.handleResize(t,n)},this.handleTouchMove=e=>{if(!this.isResizing||!this.activeHandle)return;let t=e.touches[0];if(!t)return;let n=t.clientX-this.startX,r=t.clientY-this.startY;this.handleResize(n,r)},this.handleMouseUp=()=>{if(!this.isResizing)return;let e=this.element.offsetWidth,t=this.element.offsetHeight;this.onCommit(e,t),this.isResizing=!1,this.activeHandle=null,this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp)},this.handleKeyDown=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!0)},this.handleKeyUp=e=>{e.key===`Shift`&&(this.isShiftKeyPressed=!1)},this.node=e.node,this.editor=e.editor,this.element=e.element,this.element.draggable=!1,this.contentElement=e.contentElement,this.getPos=e.getPos,this.onResize=e.onResize,this.onCommit=e.onCommit,this.onUpdate=e.onUpdate,e.options?.min&&(this.minSize={...this.minSize,...e.options.min}),e.options?.max&&(this.maxSize=e.options.max),!(e==null||(t=e.options)==null)&&t.directions&&(this.directions=e.options.directions),e.options?.preserveAspectRatio&&(this.preserveAspectRatio=e.options.preserveAspectRatio),e.options?.className&&(this.classNames={container:e.options.className.container||``,wrapper:e.options.className.wrapper||``,handle:e.options.className.handle||``,resizing:e.options.className.resizing||``}),e.options?.createCustomHandle&&(this.createCustomHandle=e.options.createCustomHandle),this.wrapper=this.createWrapper(),this.container=this.createContainer(),this.applyInitialSize(),this.attachHandles(),this.editor.on(`update`,this.handleEditorUpdate.bind(this))}get dom(){return this.container}get contentDOM(){return this.contentElement??null}handleEditorUpdate(){let e=this.editor.isEditable;e!==this.lastEditableState&&(this.lastEditableState=e,e?e&&this.handleMap.size===0&&this.attachHandles():this.removeHandles())}update(e,t,n){return e.type===this.node.type?(this.node=e,this.onUpdate?this.onUpdate(e,t,n):!0):!1}destroy(){this.isResizing&&(this.container.dataset.resizeState=`false`,this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener(`mousemove`,this.handleMouseMove),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`keydown`,this.handleKeyDown),document.removeEventListener(`keyup`,this.handleKeyUp),this.isResizing=!1,this.activeHandle=null),this.editor.off(`update`,this.handleEditorUpdate.bind(this)),this.container.remove()}createContainer(){let e=document.createElement(`div`);return e.dataset.resizeContainer=``,e.dataset.node=this.node.type.name,e.style.display=this.node.type.isInline?`inline-flex`:`flex`,this.classNames.container&&(e.className=this.classNames.container),e.appendChild(this.wrapper),e}createWrapper(){let e=document.createElement(`div`);return e.style.position=`relative`,e.style.display=`block`,e.dataset.resizeWrapper=``,this.classNames.wrapper&&(e.className=this.classNames.wrapper),e.appendChild(this.element),e}createHandle(e){let t=document.createElement(`div`);return t.dataset.resizeHandle=e,t.style.position=`absolute`,this.classNames.handle&&(t.className=this.classNames.handle),t}positionHandle(e,t){let n=t.includes(`top`),r=t.includes(`bottom`),i=t.includes(`left`),a=t.includes(`right`);n&&(e.style.top=`0`),r&&(e.style.bottom=`0`),i&&(e.style.left=`0`),a&&(e.style.right=`0`),(t===`top`||t===`bottom`)&&(e.style.left=`0`,e.style.right=`0`),(t===`left`||t===`right`)&&(e.style.top=`0`,e.style.bottom=`0`)}attachHandles(){this.directions.forEach(e=>{let t;t=this.createCustomHandle?this.createCustomHandle(e):this.createHandle(e),t instanceof HTMLElement||(console.warn(`[ResizableNodeView] createCustomHandle("${e}") did not return an HTMLElement. Falling back to default handle.`),t=this.createHandle(e)),this.createCustomHandle||this.positionHandle(t,e),t.addEventListener(`mousedown`,t=>this.handleResizeStart(t,e)),t.addEventListener(`touchstart`,t=>this.handleResizeStart(t,e)),this.handleMap.set(e,t),this.wrapper.appendChild(t)})}removeHandles(){this.handleMap.forEach(e=>e.remove()),this.handleMap.clear()}applyInitialSize(){let e=this.node.attrs.width,t=this.node.attrs.height;e?(this.element.style.width=`${e}px`,this.initialWidth=e):this.initialWidth=this.element.offsetWidth,t?(this.element.style.height=`${t}px`,this.initialHeight=t):this.initialHeight=this.element.offsetHeight,this.initialWidth>0&&this.initialHeight>0&&(this.aspectRatio=this.initialWidth/this.initialHeight)}handleResizeStart(e,t){e.preventDefault(),e.stopPropagation(),this.isResizing=!0,this.activeHandle=t,BLe(e)?(this.startX=e.touches[0].clientX,this.startY=e.touches[0].clientY):(this.startX=e.clientX,this.startY=e.clientY),this.startWidth=this.element.offsetWidth,this.startHeight=this.element.offsetHeight,this.startWidth>0&&this.startHeight>0&&(this.aspectRatio=this.startWidth/this.startHeight),this.getPos(),this.container.dataset.resizeState=`true`,this.classNames.resizing&&this.container.classList.add(this.classNames.resizing),document.addEventListener(`mousemove`,this.handleMouseMove),document.addEventListener(`touchmove`,this.handleTouchMove),document.addEventListener(`mouseup`,this.handleMouseUp),document.addEventListener(`keydown`,this.handleKeyDown),document.addEventListener(`keyup`,this.handleKeyUp)}handleResize(e,t){if(!this.activeHandle)return;let n=this.preserveAspectRatio||this.isShiftKeyPressed,{width:r,height:i}=this.calculateNewDimensions(this.activeHandle,e,t),a=this.applyConstraints(r,i,n);this.element.style.width=`${a.width}px`,this.element.style.height=`${a.height}px`,this.onResize&&this.onResize(a.width,a.height)}calculateNewDimensions(e,t,n){let r=this.startWidth,i=this.startHeight,a=e.includes(`right`),o=e.includes(`left`),s=e.includes(`bottom`),c=e.includes(`top`);return a?r=this.startWidth+t:o&&(r=this.startWidth-t),s?i=this.startHeight+n:c&&(i=this.startHeight-n),(e===`right`||e===`left`)&&(r=this.startWidth+(a?t:-t)),(e===`top`||e===`bottom`)&&(i=this.startHeight+(s?n:-n)),this.preserveAspectRatio||this.isShiftKeyPressed?this.applyAspectRatio(r,i,e):{width:r,height:i}}applyConstraints(e,t,n){if(!n){let n=Math.max(this.minSize.width,e),r=Math.max(this.minSize.height,t);return this.maxSize?.width&&(n=Math.min(this.maxSize.width,n)),this.maxSize?.height&&(r=Math.min(this.maxSize.height,r)),{width:n,height:r}}let r=e,i=t;return rthis.maxSize.width&&(r=this.maxSize.width,i=r/this.aspectRatio),this.maxSize?.height&&i>this.maxSize.height&&(i=this.maxSize.height,r=i*this.aspectRatio),{width:r,height:i}}applyAspectRatio(e,t,n){return n===`left`||n===`right`?{width:e,height:e/this.aspectRatio}:n===`top`||n===`bottom`?{width:t*this.aspectRatio,height:t}:{width:e,height:e/this.aspectRatio}}},f$=class e extends t${constructor(...e){super(...e),this.type=`node`}static create(t={}){return new e(typeof t==`function`?t():t)}configure(e){return super.configure(e)}extend(e){let t=typeof e==`function`?e():e;return super.extend(t)}};function p$(e){return new r$({find:e.find,handler:({state:t,range:n,match:r,pasteEvent:i})=>{let a=sQ(e.getAttributes,void 0,r,i);if(a===!1||a===null)return null;let{tr:o}=t,s=r[r.length-1],c=r[0],l=n.to;if(s){let i=c.search(/\S/),u=n.from+c.indexOf(s),d=u+s.length;if(SQ(n.from,n.to,t.doc).filter(t=>t.mark.type.excluded.find(n=>n===e.type&&n!==t.mark.type)).filter(e=>e.to>u).length)return null;dn.from&&o.delete(n.from+i,u),l=n.from+i+s.length,o.addMark(n.from+i,l,e.type.create(a||{})),r.index!==void 0&&r.input!==void 0&&r.index+r[0].length>=r.input.length||o.removeStoredMark(e.type)}}})}var{getOwnPropertyNames:HLe,getOwnPropertySymbols:ULe}=Object,{hasOwnProperty:WLe}=Object.prototype;function m$(e,t){return function(n,r,i){return e(n,r,i)&&t(n,r,i)}}function h$(e){return function(t,n,r){if(!t||!n||typeof t!=`object`||typeof n!=`object`)return e(t,n,r);let{cache:i}=r,a=i.get(t),o=i.get(n);if(a&&o)return a===n&&o===t;i.set(t,n),i.set(n,t);let s=e(t,n,r);return i.delete(t),i.delete(n),s}}function GLe(e){return e?.[Symbol.toStringTag]}function g$(e){return HLe(e).concat(ULe(e))}var KLe=Object.hasOwn||((e,t)=>WLe.call(e,t));function _$(e,t){return e===t||!e&&!t&&e!==e&&t!==t}var qLe=`__v`,JLe=`__o`,YLe=`_owner`,{getOwnPropertyDescriptor:v$,keys:y$}=Object;function XLe(e,t){return e.byteLength===t.byteLength&&C$(new Uint8Array(e),new Uint8Array(t))}function ZLe(e,t,n){let r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function QLe(e,t){return e.byteLength===t.byteLength&&C$(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function $Le(e,t){return _$(e.getTime(),t.getTime())}function eRe(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function tRe(e,t){return e===t}function b$(e,t,n){let r=e.size;if(r!==t.size)return!1;if(!r)return!0;let i=Array(r),a=e.entries(),o,s,c=0;for(;(o=a.next())&&!o.done;){let r=t.entries(),a=!1,l=0;for(;(s=r.next())&&!s.done;){if(i[l]){l++;continue}let r=o.value,u=s.value;if(n.equals(r[0],u[0],c,l,e,t,n)&&n.equals(r[1],u[1],r[0],u[0],e,t,n)){a=i[l]=!0;break}l++}if(!a)return!1;c++}return!0}var nRe=_$;function rRe(e,t,n){let r=y$(e),i=r.length;if(y$(t).length!==i)return!1;for(;i-- >0;)if(!w$(e,t,n,r[i]))return!1;return!0}function x$(e,t,n){let r=g$(e),i=r.length;if(g$(t).length!==i)return!1;let a,o,s;for(;i-- >0;)if(a=r[i],!w$(e,t,n,a)||(o=v$(e,a),s=v$(t,a),(o||s)&&(!o||!s||o.configurable!==s.configurable||o.enumerable!==s.enumerable||o.writable!==s.writable)))return!1;return!0}function iRe(e,t){return _$(e.valueOf(),t.valueOf())}function aRe(e,t){return e.source===t.source&&e.flags===t.flags}function S$(e,t,n){let r=e.size;if(r!==t.size)return!1;if(!r)return!0;let i=Array(r),a=e.values(),o,s;for(;(o=a.next())&&!o.done;){let r=t.values(),a=!1,c=0;for(;(s=r.next())&&!s.done;){if(!i[c]&&n.equals(o.value,s.value,o.value,s.value,e,t,n)){a=i[c]=!0;break}c++}if(!a)return!1}return!0}function C$(e,t){let n=e.byteLength;if(t.byteLength!==n||e.byteOffset!==t.byteOffset)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function oRe(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function w$(e,t,n,r){return(r===YLe||r===JLe||r===qLe)&&(e.$$typeof||t.$$typeof)?!0:KLe(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var sRe=`[object ArrayBuffer]`,cRe=`[object Arguments]`,lRe=`[object Boolean]`,uRe=`[object DataView]`,dRe=`[object Date]`,fRe=`[object Error]`,pRe=`[object Map]`,mRe=`[object Number]`,hRe=`[object Object]`,gRe=`[object RegExp]`,_Re=`[object Set]`,vRe=`[object String]`,yRe={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},bRe=`[object URL]`,xRe=Object.prototype.toString;function SRe({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:s,areObjectsEqual:c,arePrimitiveWrappersEqual:l,areRegExpsEqual:u,areSetsEqual:d,areTypedArraysEqual:f,areUrlsEqual:p,unknownTagComparators:m}){return function(h,g,_){if(h===g)return!0;if(h==null||g==null)return!1;let v=typeof h;if(v!==typeof g)return!1;if(v!==`object`)return v===`number`?s(h,g,_):v===`function`?a(h,g,_):!1;let y=h.constructor;if(y!==g.constructor)return!1;if(y===Object)return c(h,g,_);if(Array.isArray(h))return t(h,g,_);if(y===Date)return r(h,g,_);if(y===RegExp)return u(h,g,_);if(y===Map)return o(h,g,_);if(y===Set)return d(h,g,_);let b=xRe.call(h);if(b===dRe)return r(h,g,_);if(b===gRe)return u(h,g,_);if(b===pRe)return o(h,g,_);if(b===_Re)return d(h,g,_);if(b===hRe)return typeof h.then!=`function`&&typeof g.then!=`function`&&c(h,g,_);if(b===bRe)return p(h,g,_);if(b===fRe)return i(h,g,_);if(b===cRe)return c(h,g,_);if(yRe[b])return f(h,g,_);if(b===sRe)return e(h,g,_);if(b===uRe)return n(h,g,_);if(b===lRe||b===mRe||b===vRe)return l(h,g,_);if(m){let e=m[b];if(!e){let t=GLe(h);t&&(e=m[t])}if(e)return e(h,g,_)}return!1}}function CRe({circular:e,createCustomConfig:t,strict:n}){let r={areArrayBuffersEqual:XLe,areArraysEqual:n?x$:ZLe,areDataViewsEqual:QLe,areDatesEqual:$Le,areErrorsEqual:eRe,areFunctionsEqual:tRe,areMapsEqual:n?m$(b$,x$):b$,areNumbersEqual:nRe,areObjectsEqual:n?x$:rRe,arePrimitiveWrappersEqual:iRe,areRegExpsEqual:aRe,areSetsEqual:n?m$(S$,x$):S$,areTypedArraysEqual:n?m$(C$,x$):C$,areUrlsEqual:oRe,unknownTagComparators:void 0};if(t&&(r=Object.assign({},r,t(r))),e){let e=h$(r.areArraysEqual),t=h$(r.areMapsEqual),n=h$(r.areObjectsEqual),i=h$(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:e,areMapsEqual:t,areObjectsEqual:n,areSetsEqual:i})}return r}function wRe(e){return function(t,n,r,i,a,o,s){return e(t,n,s)}}function TRe({circular:e,comparator:t,createState:n,equals:r,strict:i}){if(n)return function(a,o){let{cache:s=e?new WeakMap:void 0,meta:c}=n();return t(a,o,{cache:s,equals:r,meta:c,strict:i})};if(e)return function(e,n){return t(e,n,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};let a={cache:void 0,equals:r,meta:void 0,strict:i};return function(e,n){return t(e,n,a)}}var ERe=T$();T$({strict:!0}),T$({circular:!0}),T$({circular:!0,strict:!0}),T$({createInternalComparator:()=>_$}),T$({strict:!0,createInternalComparator:()=>_$}),T$({circular:!0,createInternalComparator:()=>_$}),T$({circular:!0,createInternalComparator:()=>_$,strict:!0});function T$(e={}){let{circular:t=!1,createInternalComparator:n,createState:r,strict:i=!1}=e,a=SRe(CRe(e));return TRe({circular:t,comparator:a,createState:r,equals:n?n(a):wRe(a),strict:i})}var DRe=(...e)=>t=>{e.forEach(e=>{typeof e==`function`?e(t):e&&(e.current=t)})},ORe=({contentComponent:e})=>{let t=(0,Qe.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getServerSnapshot);return(0,G.jsx)(G.Fragment,{children:Object.values(t)})};function kRe(){let e=new Set,t={},n=!1,r=()=>{n||!e.size||(n=!0,queueMicrotask(()=>{n=!1,e.forEach(e=>e())}))};return{subscribe(t){return e.add(t),()=>{e.delete(t)}},getSnapshot(){return t},getServerSnapshot(){return t},setRenderer(e,n){t={...t,[e]:At.createPortal(n.reactElement,n.element,e)},r()},removeRenderer(e){let n={...t};delete n[e],t=n,r()}}}var ARe=class extends y.Component{constructor(e){super(e),this.editorContentRef=y.createRef()}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){let e=this.props.editor;if(e&&!e.isDestroyed&&e.view.dom?.parentNode){if(e.contentComponent)return;let t=this.editorContentRef.current;t.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:t}),e.contentComponent=kRe(),e.createNodeViews(),e.isEditorContentInitialized=!0,this.forceUpdate()}}componentWillUnmount(){let e=this.props.editor;if(e){e.isEditorContentInitialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),e.contentComponent=null;try{if(!e.view.dom?.parentNode)return;let t=document.createElement(`div`);t.append(...e.view.dom.parentNode.childNodes),e.setOptions({element:t})}catch{}}}render(){let{editor:e,innerRef:t,...n}=this.props;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{ref:DRe(t,this.editorContentRef),...n}),e?.contentComponent&&(0,G.jsx)(ORe,{contentComponent:e.contentComponent})]})}},jRe=(0,y.forwardRef)((e,t)=>{let n=y.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[e.editor]);return y.createElement(ARe,{key:n,innerRef:t,...e})}),E$=y.memo(jRe),MRe=typeof window<`u`?y.useLayoutEffect:y.useEffect,NRe=class{constructor(e){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=e,this.lastSnapshot={editor:e,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}watch(e){if(this.editor=e,this.editor){let e,t=t=>{t?.transaction!==void 0&&t.transaction===e||(e=t?.transaction,this.transactionNumber+=1,this.subscribers.forEach(e=>e()))},n=this.editor;return n.on(`transaction`,t),n.on(`update`,t),()=>{n.off(`transaction`,t),n.off(`update`,t)}}}};function PRe(e){let[t]=(0,y.useState)(()=>new NRe(e.editor)),n=(0,MD.useSyncExternalStoreWithSelector)(t.subscribe,t.getSnapshot,t.getServerSnapshot,e.selector,e.equalityFn??ERe);return MRe(()=>t.watch(e.editor),[e.editor,t]),(0,y.useDebugValue)(n),n}var D$=typeof window>`u`,FRe=D$||!!(typeof window<`u`&&window.next),IRe=class e{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId=``,this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(e=>e())}getInitialEditor(){let e=this.options.current.immediatelyRender,t=e??!0;return(D$||FRe&&e===void 0)&&(t=!1),t?this.createEditor():null}createEditor(){return new zLe({...this.options.current,onBeforeCreate:(...e)=>{var t;return(t=this.options.current).onBeforeCreate?.call(t,...e)},onBlur:(...e)=>{var t;return(t=this.options.current).onBlur?.call(t,...e)},onCreate:(...e)=>{var t;return(t=this.options.current).onCreate?.call(t,...e)},onDestroy:(...e)=>{var t;return(t=this.options.current).onDestroy?.call(t,...e)},onFocus:(...e)=>{var t;return(t=this.options.current).onFocus?.call(t,...e)},onSelectionUpdate:(...e)=>{var t;return(t=this.options.current).onSelectionUpdate?.call(t,...e)},onTransaction:(...e)=>{var t;return(t=this.options.current).onTransaction?.call(t,...e)},onUpdate:(...e)=>{var t;return(t=this.options.current).onUpdate?.call(t,...e)},onContentError:(...e)=>{var t;return(t=this.options.current).onContentError?.call(t,...e)},onDrop:(...e)=>{var t;return(t=this.options.current).onDrop?.call(t,...e)},onPaste:(...e)=>{var t;return(t=this.options.current).onPaste?.call(t,...e)},onDelete:(...e)=>{var t;return(t=this.options.current).onDelete?.call(t,...e)},onMount:(...e)=>{var t;return(t=this.options.current).onMount?.call(t,...e)},onUnmount:(...e)=>{var t;return(t=this.options.current).onUnmount?.call(t,...e)}})}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,t){return Object.keys(e).every(n=>[`onCreate`,`onBeforeCreate`,`onDestroy`,`onUpdate`,`onTransaction`,`onFocus`,`onBlur`,`onSelectionUpdate`,`onContentError`,`onDrop`,`onPaste`].includes(n)?!0:n===`extensions`&&e.extensions&&t.extensions?e.extensions.length===t.extensions.length?e.extensions.every((e,n)=>e===t.extensions?.[n]):!1:e[n]===t[n])}onRender(t){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&t.length===0?e.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(t),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((t,n)=>t===e[n]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){let e=this.instanceId,t=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){t&&t.setOptions(this.options.current);return}t&&!t.isDestroyed&&(t.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function LRe(e={},t=[]){let n=(0,y.useRef)(e);n.current=e;let[r]=(0,y.useState)(()=>new IRe(n)),i=(0,Qe.useSyncExternalStore)(r.subscribe,r.getEditor,r.getServerSnapshot);return(0,y.useDebugValue)(i),(0,y.useEffect)(r.onRender(t)),PRe({editor:i,selector:({transactionNumber:t})=>e.shouldRerenderOnTransaction===!1||e.shouldRerenderOnTransaction===void 0?null:e.immediatelyRender&&t===0?0:t+1}),i}var O$=(0,y.createContext)({editor:null});O$.Consumer;var RRe=(0,y.createContext)({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),zRe=()=>(0,y.useContext)(RRe);y.forwardRef((e,t)=>{let{onDragStart:n}=zRe();return(0,G.jsx)(e.as||`div`,{...e,ref:t,"data-node-view-wrapper":``,onDragStart:n,style:{whiteSpace:`normal`,...e.style}})}),y.createContext({markViewContentRef:()=>{}});var k$=(0,y.createContext)({get editor(){throw Error(`useTiptap must be used within a provider`)}});k$.displayName=`TiptapContext`;var BRe=()=>(0,y.useContext)(k$);function A$({children:e,...t}){let n=`editor`in t?t.editor:t.instance;if(!n)throw Error("Tiptap: An editor instance is required. Pass a non-null `editor` prop.");let r=(0,y.useMemo)(()=>({editor:n}),[n]),i=(0,y.useMemo)(()=>({editor:n}),[n]);return(0,G.jsx)(O$.Provider,{value:i,children:(0,G.jsx)(k$.Provider,{value:r,children:e})})}A$.displayName=`Tiptap`;function j$({...e}){let{editor:t}=BRe();return(0,G.jsx)(E$,{editor:t,...e})}j$.displayName=`Tiptap.Content`,Object.assign(A$,{Content:j$});var M$=new WeakSet,N$=new WeakSet;function P$(e){let t=e;return M$.add(t),t}function F$(e){return Array.isArray(e)&&M$.has(e)}function I$(e){return e.flatMap(e=>e==null?[]:Array.isArray(e)&&N$.has(e)&&!F$(e)?I$(e):[e])}function VRe(e,t){if(e===`slot`)return 0;if(e instanceof Function){let n=e(t);return Array.isArray(n)&&!F$(n)&&!N$.has(n)?P$(n):n}let{children:n,...r}=t??{};if(e===`svg`)throw Error(`SVG elements are not supported in the JSX syntax, use the array syntax instead`);if(Array.isArray(n)){if(F$(n))return P$([e,r,n]);if(n.length===0)return P$([e,r]);let t=I$(n);return t.length===0?P$([e,r]):P$([e,r,...t])}return P$(n==null?[e,r]:[e,r,n])}var L$=(e,t)=>VRe(e,t),HRe=(e,t)=>{let{state:n}=e,{selection:r}=n;if(!r.empty)return!1;let{$from:i}=r;if(i.parentOffset!==0)return!1;let a=i.depth-1;if(a<0)return!1;let o=i.node(a),s=i.index(a);if(s===0)return!1;if(o.type===t)return e.commands.lift(t.name);let c=o.child(s-1);if(c.type!==t||!c.lastChild?.isTextblock)return!1;let l=i.before()-1-1;return e.commands.command(({tr:e,dispatch:t})=>{if(!t)return!0;let n=i.parent.content,r=new sK(n,0,0);return e.replace(l,i.after(),r),e.setSelection(Kq.create(e.doc,l+n.size)),e.scrollIntoView(),t(e),!0})},URe=/^\s*>\s$/,WRe=f$.create({name:`blockquote`,addOptions(){return{HTMLAttributes:{}}},content:`block+`,group:`block`,defining:!0,parseHTML(){return[{tag:`blockquote`}]},renderHTML({HTMLAttributes:e}){return L$(`blockquote`,{...dQ(this.options.HTMLAttributes,e),children:L$(`slot`,{})})},parseMarkdown:(e,t)=>{let n=t.parseBlockChildren??t.parseChildren;return t.createNode(`blockquote`,void 0,n(e.tokens||[]))},renderMarkdown:(e,t)=>{if(!e.content)return``;let n=[];return e.content.forEach((e,r)=>{let i=(t.renderChild?.call(t,e,r)??t.renderChildren([e])).split(` `).map(e=>e.trim()===``?`>`:`> ${e}`);n.push(i.join(` `))}),n.join(` > -`)},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn(this.name),toggleBlockquote:()=>({commands:e})=>e.toggleWrap(this.name),unsetBlockquote:()=>({commands:e})=>e.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote(),Backspace:()=>VRe(this.editor,this.type)}},addInputRules(){return[d$({find:HRe,type:this.type})]}}),WRe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,GRe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,KRe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,qRe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,JRe=n$.create({name:`bold`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`strong`},{tag:`b`,getAttrs:e=>e.style.fontWeight!==`normal`&&null},{style:`font-weight=400`,clearMark:e=>e.type.name===this.name},{style:`font-weight`,getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}]},renderHTML({HTMLAttributes:e}){return L$(`strong`,{...dQ(this.options.HTMLAttributes,e),children:L$(`slot`,{})})},markdownTokenName:`strong`,parseMarkdown:(e,t)=>t.applyMark(`bold`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:``,close:``}},renderMarkdown:(e,t)=>`**${t.renderChildren(e)}**`,addCommands(){return{setBold:()=>({commands:e})=>e.setMark(this.name),toggleBold:()=>({commands:e})=>e.toggleMark(this.name),unsetBold:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[c$({find:WRe,type:this.type}),c$({find:KRe,type:this.type})]},addPasteRules(){return[p$({find:GRe,type:this.type}),p$({find:qRe,type:this.type})]}}),YRe=e=>{let t=/`([^`]+)`(?!`)$/.exec(e);return!t||t.index>0&&e[t.index-1]==="`"?null:{index:t.index,text:t[0],replaceWith:t[1]}},XRe=e=>{let t=/`([^`]+)`(?!`)/g,n=[],r;for(;(r=t.exec(e))!==null;)r.index>0&&e[r.index-1]==="`"||n.push({index:r.index,text:r[0],replaceWith:r[1]});return n},ZRe=n$.create({name:`code`,addOptions(){return{HTMLAttributes:{}}},excludes:`_`,code:!0,exitable:!0,parseHTML(){return[{tag:`code`}]},renderHTML({HTMLAttributes:e}){return[`code`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`codespan`,parseMarkdown:(e,t)=>t.applyMark(`code`,[{type:`text`,text:e.text||``}]),renderMarkdown:(e,t)=>e.content?`\`${t.renderChildren(e.content)}\``:``,addCommands(){return{setCode:()=>({commands:e})=>e.setMark(this.name),toggleCode:()=>({commands:e})=>e.toggleMark(this.name),unsetCode:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[c$({find:YRe,type:this.type})]},addPasteRules(){return[p$({find:XRe,type:this.type})]}}),R$=4,QRe=/^```([a-z]+)?[\s\n]$/,$Re=/^~~~([a-z]+)?[\s\n]$/,eze=f$.create({name:`codeBlock`,addOptions(){return{languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,exitOnArrowUp:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:R$,HTMLAttributes:{}}},content:`text*`,marks:``,group:`block`,code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:e=>{let{languageClassPrefix:t}=this.options;return t&&[...e.firstElementChild?.classList||[]].filter(e=>e.startsWith(t)).map(e=>e.replace(t,``))[0]||null},rendered:!1}}},parseHTML(){return[{tag:`pre`,preserveWhitespace:`full`}]},renderHTML({node:e,HTMLAttributes:t}){return[`pre`,dQ(this.options.HTMLAttributes,t),[`code`,{class:e.attrs.language?this.options.languageClassPrefix+e.attrs.language:null},0]]},markdownTokenName:`code`,parseMarkdown:(e,t)=>e.raw?.startsWith("```")===!1&&e.raw?.startsWith(`~~~`)===!1&&e.codeBlockStyle!==`indented`?[]:t.createNode(`codeBlock`,{language:e.lang||null},e.text?[t.createTextNode(e.text)]:[]),renderMarkdown:(e,t)=>{let n=``,r=e.attrs?.language||``;return n=e.content?[`\`\`\`${r}`,t.renderChildren(e.content),"```"].join(` +`)},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn(this.name),toggleBlockquote:()=>({commands:e})=>e.toggleWrap(this.name),unsetBlockquote:()=>({commands:e})=>e.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote(),Backspace:()=>HRe(this.editor,this.type)}},addInputRules(){return[d$({find:URe,type:this.type})]}}),GRe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,KRe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,qRe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,JRe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,YRe=n$.create({name:`bold`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`strong`},{tag:`b`,getAttrs:e=>e.style.fontWeight!==`normal`&&null},{style:`font-weight=400`,clearMark:e=>e.type.name===this.name},{style:`font-weight`,getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}]},renderHTML({HTMLAttributes:e}){return L$(`strong`,{...dQ(this.options.HTMLAttributes,e),children:L$(`slot`,{})})},markdownTokenName:`strong`,parseMarkdown:(e,t)=>t.applyMark(`bold`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:``,close:``}},renderMarkdown:(e,t)=>`**${t.renderChildren(e)}**`,addCommands(){return{setBold:()=>({commands:e})=>e.setMark(this.name),toggleBold:()=>({commands:e})=>e.toggleMark(this.name),unsetBold:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[c$({find:GRe,type:this.type}),c$({find:qRe,type:this.type})]},addPasteRules(){return[p$({find:KRe,type:this.type}),p$({find:JRe,type:this.type})]}}),XRe=e=>{let t=/`([^`]+)`(?!`)$/.exec(e);return!t||t.index>0&&e[t.index-1]==="`"?null:{index:t.index,text:t[0],replaceWith:t[1]}},ZRe=e=>{let t=/`([^`]+)`(?!`)/g,n=[],r;for(;(r=t.exec(e))!==null;)r.index>0&&e[r.index-1]==="`"||n.push({index:r.index,text:r[0],replaceWith:r[1]});return n},QRe=n$.create({name:`code`,addOptions(){return{HTMLAttributes:{}}},excludes:`_`,code:!0,exitable:!0,parseHTML(){return[{tag:`code`}]},renderHTML({HTMLAttributes:e}){return[`code`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`codespan`,parseMarkdown:(e,t)=>t.applyMark(`code`,[{type:`text`,text:e.text||``}]),renderMarkdown:(e,t)=>e.content?`\`${t.renderChildren(e.content)}\``:``,addCommands(){return{setCode:()=>({commands:e})=>e.setMark(this.name),toggleCode:()=>({commands:e})=>e.toggleMark(this.name),unsetCode:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[c$({find:XRe,type:this.type})]},addPasteRules(){return[p$({find:ZRe,type:this.type})]}}),R$=4,$Re=/^```([a-z]+)?[\s\n]$/,eze=/^~~~([a-z]+)?[\s\n]$/,tze=f$.create({name:`codeBlock`,addOptions(){return{languageClassPrefix:`language-`,exitOnTripleEnter:!0,exitOnArrowDown:!0,exitOnArrowUp:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:R$,HTMLAttributes:{}}},content:`text*`,marks:``,group:`block`,code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:e=>{let{languageClassPrefix:t}=this.options;return t&&[...e.firstElementChild?.classList||[]].filter(e=>e.startsWith(t)).map(e=>e.replace(t,``))[0]||null},rendered:!1}}},parseHTML(){return[{tag:`pre`,preserveWhitespace:`full`}]},renderHTML({node:e,HTMLAttributes:t}){return[`pre`,dQ(this.options.HTMLAttributes,t),[`code`,{class:e.attrs.language?this.options.languageClassPrefix+e.attrs.language:null},0]]},markdownTokenName:`code`,parseMarkdown:(e,t)=>e.raw?.startsWith("```")===!1&&e.raw?.startsWith(`~~~`)===!1&&e.codeBlockStyle!==`indented`?[]:t.createNode(`codeBlock`,{language:e.lang||null},e.text?[t.createTextNode(e.text)]:[]),renderMarkdown:(e,t)=>{let n=``,r=e.attrs?.language||``;return n=e.content?[`\`\`\`${r}`,t.renderChildren(e.content),"```"].join(` `):`\`\`\`${r}\n\n\`\`\``,n},addCommands(){return{setCodeBlock:e=>({commands:t})=>t.setNode(this.name,e),toggleCodeBlock:e=>({commands:t})=>t.toggleNode(this.name,`paragraph`,e)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{let{empty:e,$anchor:t}=this.editor.state.selection,n=t.pos===1;return!e||t.parent.type.name!==this.name?!1:n||!t.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:e})=>{if(!this.options.enableTabIndentation)return!1;let t=this.options.tabSize??R$,{state:n}=e,{selection:r}=n,{$from:i,empty:a}=r;if(i.parent.type!==this.type)return!1;let o=` `.repeat(t);return a?e.commands.insertContent(o):e.commands.command(({tr:e})=>{let{from:t,to:i}=r,a=n.doc.textBetween(t,i,` `,` `).split(` @@ -4320,39 +4320,39 @@ img.ProseMirror-separator { `).map(e=>{let n=e.match(/^ */)?.[0]||``,r=Math.min(n.length,t);return e.slice(r)}).join(` `);return e.replaceWith(i,a,n.schema.text(o)),!0}):!1},Enter:({editor:e})=>{if(!this.options.exitOnTripleEnter)return!1;let{state:t}=e,{selection:n}=t,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type)return!1;let a=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(` -`);return!a||!o?!1:e.chain().command(({tr:e})=>(e.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowUp:({editor:e})=>{if(!this.options.exitOnArrowUp)return!1;let{state:t}=e,{selection:n}=t,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type||r.parentOffset!==0)return!1;let a=r.before();return a>0?!1:e.commands.insertDefaultBlock({pos:a})},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;let{state:t}=e,{selection:n,doc:r}=t,{$from:i,empty:a}=n;if(!a||i.parent.type!==this.type||i.parentOffset!==i.parent.nodeSize-2)return!1;let o=i.after();return o===void 0?!1:r.nodeAt(o)?e.commands.command(({tr:e})=>(e.setSelection(Uq.near(r.resolve(o))),!0)):e.commands.exitCode()}}},addInputRules(){return[u$({find:QRe,type:this.type,getAttributes:e=>({language:e[1]})}),u$({find:$Re,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new oJ({key:new lJ(`codeBlockVSCodeHandler`),props:{handlePaste:(e,t)=>{if(!t.clipboardData||this.editor.isActive(this.type.name))return!1;let n=t.clipboardData.getData(`text/plain`),r=t.clipboardData.getData(`vscode-editor-data`),i=(r?JSON.parse(r):void 0)?.mode;if(!n||!i)return!1;let{tr:a,schema:o}=e.state,s=o.text(n.replace(/\r\n?/g,` -`));return a.replaceSelectionWith(this.type.create({language:i},s)),a.selection.$from.parent.type!==this.type&&a.setSelection(Kq.near(a.doc.resolve(Math.max(0,a.selection.from-2)))),a.setMeta(`paste`,!0),e.dispatch(a),!0}}})]}}),tze=f$.create({name:`doc`,topNode:!0,content:`block+`,renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` +`);return!a||!o?!1:e.chain().command(({tr:e})=>(e.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowUp:({editor:e})=>{if(!this.options.exitOnArrowUp)return!1;let{state:t}=e,{selection:n}=t,{$from:r,empty:i}=n;if(!i||r.parent.type!==this.type||r.parentOffset!==0)return!1;let a=r.before();return a>0?!1:e.commands.insertDefaultBlock({pos:a})},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;let{state:t}=e,{selection:n,doc:r}=t,{$from:i,empty:a}=n;if(!a||i.parent.type!==this.type||i.parentOffset!==i.parent.nodeSize-2)return!1;let o=i.after();return o===void 0?!1:r.nodeAt(o)?e.commands.command(({tr:e})=>(e.setSelection(Uq.near(r.resolve(o))),!0)):e.commands.exitCode()}}},addInputRules(){return[u$({find:$Re,type:this.type,getAttributes:e=>({language:e[1]})}),u$({find:eze,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new oJ({key:new lJ(`codeBlockVSCodeHandler`),props:{handlePaste:(e,t)=>{if(!t.clipboardData||this.editor.isActive(this.type.name))return!1;let n=t.clipboardData.getData(`text/plain`),r=t.clipboardData.getData(`vscode-editor-data`),i=(r?JSON.parse(r):void 0)?.mode;if(!n||!i)return!1;let{tr:a,schema:o}=e.state,s=o.text(n.replace(/\r\n?/g,` +`));return a.replaceSelectionWith(this.type.create({language:i},s)),a.selection.$from.parent.type!==this.type&&a.setSelection(Kq.near(a.doc.resolve(Math.max(0,a.selection.from-2)))),a.setMeta(`paste`,!0),e.dispatch(a),!0}}})]}}),nze=f$.create({name:`doc`,topNode:!0,content:`block+`,renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` -`):``}),nze=f$.create({name:`hardBreak`,markdownTokenName:`br`,addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:`inline`,selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:`br`}]},renderHTML({HTMLAttributes:e}){return[`br`,dQ(this.options.HTMLAttributes,e)]},renderText(){return` +`):``}),rze=f$.create({name:`hardBreak`,markdownTokenName:`br`,addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:`inline`,selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:`br`}]},renderHTML({HTMLAttributes:e}){return[`br`,dQ(this.options.HTMLAttributes,e)]},renderText(){return` `},renderMarkdown:()=>` -`,parseMarkdown:()=>({type:`hardBreak`}),addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:n,editor:r})=>e.first([()=>e.exitCode(),()=>e.command(()=>{let{selection:e,storedMarks:i}=n;if(e.$from.parent.type.spec.isolating)return!1;let{keepMarks:a}=this.options,{splittableMarks:o}=r.extensionManager,s=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command(({tr:e,dispatch:t})=>{if(t&&s&&a){let t=s.filter(e=>o.includes(e.type.name));e.ensureMarks(t)}return!0}).scrollIntoView().run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),rze=f$.create({name:`heading`,addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:`inline*`,group:`block`,defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(e=>({tag:`h${e}`,attrs:{level:e}}))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,dQ(this.options.HTMLAttributes,t),0]},parseMarkdown:(e,t)=>t.createNode(`heading`,{level:e.depth||1},t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>{let n=e.attrs?.level?parseInt(e.attrs.level,10):1,r=`#`.repeat(n);return e.content?`${r} ${t.renderChildren(e.content)}`:``},addCommands(){return{setHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.setNode(this.name,e):!1,toggleHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.toggleNode(this.name,`paragraph`,e):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((e,t)=>({...e,[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})}),{})},addInputRules(){return this.options.levels.map(e=>u$({find:RegExp(`^(#{${Math.min(...this.options.levels)},${e}})\\s$`),type:this.type,getAttributes:{level:e}}))}}),ize=f$.create({name:`horizontalRule`,addOptions(){return{HTMLAttributes:{},nextNodeType:`paragraph`}},group:`block`,parseHTML(){return[{tag:`hr`}]},renderHTML({HTMLAttributes:e}){return[`hr`,dQ(this.options.HTMLAttributes,e)]},markdownTokenName:`hr`,parseMarkdown:(e,t)=>t.createNode(`horizontalRule`),renderMarkdown:()=>`---`,addCommands(){return{setHorizontalRule:()=>({chain:e,state:t})=>{if(!pLe(t,t.schema.nodes[this.name]))return!1;let{selection:n}=t,{$to:r}=n,i=e();return kQ(n)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:e,tr:t,dispatch:n})=>{if(n){let{$to:n}=t.selection,r=n.end();if(n.nodeAfter)n.nodeAfter.isTextblock?t.setSelection(Kq.create(t.doc,n.pos+1)):n.nodeAfter.isBlock?t.setSelection(Jq.create(t.doc,n.pos)):t.setSelection(Kq.create(t.doc,n.pos));else{let i=(e.schema.nodes[this.options.nextNodeType]||n.parent.type.contentMatch.defaultType)?.create();i&&(t.insert(r,i),t.setSelection(Kq.create(t.doc,r+1)))}t.scrollIntoView()}return!0}).run()}}},addInputRules(){return[l$({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),aze=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,oze=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,sze=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,cze=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,lze=n$.create({name:`italic`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`em`},{tag:`i`,getAttrs:e=>e.style.fontStyle!==`normal`&&null},{style:`font-style=normal`,clearMark:e=>e.type.name===this.name},{style:`font-style=italic`}]},renderHTML({HTMLAttributes:e}){return[`em`,dQ(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark(this.name),toggleItalic:()=>({commands:e})=>e.toggleMark(this.name),unsetItalic:()=>({commands:e})=>e.unsetMark(this.name)}},markdownTokenName:`em`,parseMarkdown:(e,t)=>t.applyMark(`italic`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:``,close:``}},renderMarkdown:(e,t)=>`*${t.renderChildren(e)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[c$({find:aze,type:this.type}),c$({find:sze,type:this.type})]},addPasteRules(){return[p$({find:oze,type:this.type}),p$({find:cze,type:this.type})]}}),uze=`aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2`,dze=`ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2`,z$=`numeric`,B$=`ascii`,V$=`alpha`,H$=`asciinumeric`,U$=`alphanumeric`,W$=`domain`,G$=`emoji`,fze=`scheme`,pze=`slashscheme`,K$=`whitespace`;function mze(e,t){return e in t||(t[e]=[]),t[e]}function q$(e,t,n){t[z$]&&(t[H$]=!0,t[U$]=!0),t[B$]&&(t[H$]=!0,t[V$]=!0),t[H$]&&(t[U$]=!0),t[V$]&&(t[U$]=!0),t[U$]&&(t[W$]=!0),t[G$]&&(t[W$]=!0);for(let r in t){let t=mze(r,n);t.indexOf(e)<0&&t.push(e)}}function hze(e,t){let n={};for(let r in t)t[r].indexOf(e)>=0&&(n[r]=!0);return n}function J$(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}J$.groups={},J$.prototype={accepts(){return!!this.t},go(e){let t=this,n=t.j[e];if(n)return n;for(let n=0;ne.ta(t,n,r,i),X$=(e,t,n,r,i)=>e.tr(t,n,r,i),Z$=(e,t,n,r,i)=>e.ts(t,n,r,i),Q$=(e,t,n,r,i)=>e.tt(t,n,r,i),$$=`WORD`,e1=`UWORD`,t1=`ASCIINUMERICAL`,n1=`ALPHANUMERICAL`,r1=`LOCALHOST`,i1=`TLD`,a1=`UTLD`,o1=`SCHEME`,s1=`SLASH_SCHEME`,c1=`NUM`,l1=`WS`,u1=`NL`,d1=`OPENBRACE`,f1=`CLOSEBRACE`,p1=`OPENBRACKET`,m1=`CLOSEBRACKET`,h1=`OPENPAREN`,g1=`CLOSEPAREN`,_1=`OPENANGLEBRACKET`,v1=`CLOSEANGLEBRACKET`,y1=`FULLWIDTHLEFTPAREN`,b1=`FULLWIDTHRIGHTPAREN`,x1=`LEFTCORNERBRACKET`,S1=`RIGHTCORNERBRACKET`,C1=`LEFTWHITECORNERBRACKET`,w1=`RIGHTWHITECORNERBRACKET`,T1=`FULLWIDTHLESSTHAN`,E1=`FULLWIDTHGREATERTHAN`,D1=`AMPERSAND`,O1=`APOSTROPHE`,k1=`ASTERISK`,A1=`AT`,j1=`BACKSLASH`,M1=`BACKTICK`,N1=`CARET`,P1=`COLON`,F1=`COMMA`,I1=`DOLLAR`,L1=`DOT`,R1=`EQUALS`,z1=`EXCLAMATION`,B1=`HYPHEN`,V1=`PERCENT`,H1=`PIPE`,U1=`PLUS`,W1=`POUND`,G1=`QUERY`,K1=`QUOTE`,q1=`FULLWIDTHMIDDLEDOT`,J1=`SEMI`,Y1=`SLASH`,X1=`TILDE`,Z1=`UNDERSCORE`,Q1=`EMOJI`,$1=`SYM`,e0=Object.freeze({__proto__:null,ALPHANUMERICAL:n1,AMPERSAND:D1,APOSTROPHE:O1,ASCIINUMERICAL:t1,ASTERISK:k1,AT:A1,BACKSLASH:j1,BACKTICK:M1,CARET:N1,CLOSEANGLEBRACKET:v1,CLOSEBRACE:f1,CLOSEBRACKET:m1,CLOSEPAREN:g1,COLON:P1,COMMA:F1,DOLLAR:I1,DOT:L1,EMOJI:Q1,EQUALS:R1,EXCLAMATION:z1,FULLWIDTHGREATERTHAN:E1,FULLWIDTHLEFTPAREN:y1,FULLWIDTHLESSTHAN:T1,FULLWIDTHMIDDLEDOT:q1,FULLWIDTHRIGHTPAREN:b1,HYPHEN:B1,LEFTCORNERBRACKET:x1,LEFTWHITECORNERBRACKET:C1,LOCALHOST:r1,NL:u1,NUM:c1,OPENANGLEBRACKET:_1,OPENBRACE:d1,OPENBRACKET:p1,OPENPAREN:h1,PERCENT:V1,PIPE:H1,PLUS:U1,POUND:W1,QUERY:G1,QUOTE:K1,RIGHTCORNERBRACKET:S1,RIGHTWHITECORNERBRACKET:w1,SCHEME:o1,SEMI:J1,SLASH:Y1,SLASH_SCHEME:s1,SYM:$1,TILDE:X1,TLD:i1,UNDERSCORE:Z1,UTLD:a1,UWORD:e1,WORD:$$,WS:l1}),t0=/[a-z]/,n0=/\p{L}/u,r0=/\p{Emoji}/u,i0=/\d/,a0=/\s/,o0=`\r`,s0=` -`,gze=`️`,_ze=`‍`,c0=``,l0=null,u0=null;function vze(e=[]){let t={};J$.groups=t;let n=new J$;l0??=bze(uze),u0??=bze(dze),Q$(n,`'`,O1),Q$(n,`{`,d1),Q$(n,`}`,f1),Q$(n,`[`,p1),Q$(n,`]`,m1),Q$(n,`(`,h1),Q$(n,`)`,g1),Q$(n,`<`,_1),Q$(n,`>`,v1),Q$(n,`(`,y1),Q$(n,`)`,b1),Q$(n,`「`,x1),Q$(n,`」`,S1),Q$(n,`『`,C1),Q$(n,`』`,w1),Q$(n,`<`,T1),Q$(n,`>`,E1),Q$(n,`&`,D1),Q$(n,`*`,k1),Q$(n,`@`,A1),Q$(n,"`",M1),Q$(n,`^`,N1),Q$(n,`:`,P1),Q$(n,`,`,F1),Q$(n,`$`,I1),Q$(n,`.`,L1),Q$(n,`=`,R1),Q$(n,`!`,z1),Q$(n,`-`,B1),Q$(n,`%`,V1),Q$(n,`|`,H1),Q$(n,`+`,U1),Q$(n,`#`,W1),Q$(n,`?`,G1),Q$(n,`"`,K1),Q$(n,`/`,Y1),Q$(n,`;`,J1),Q$(n,`~`,X1),Q$(n,`_`,Z1),Q$(n,`\\`,j1),Q$(n,`・`,q1);let r=X$(n,i0,c1,{[z$]:!0});X$(r,i0,r);let i=X$(r,t0,t1,{[H$]:!0}),a=X$(r,n0,n1,{[U$]:!0}),o=X$(n,t0,$$,{[B$]:!0});X$(o,i0,i),X$(o,t0,o),X$(i,i0,i),X$(i,t0,i);let s=X$(n,n0,e1,{[V$]:!0});X$(s,t0),X$(s,i0,a),X$(s,n0,s),X$(a,i0,a),X$(a,t0),X$(a,n0,a);let c=Q$(n,s0,u1,{[K$]:!0}),l=Q$(n,o0,l1,{[K$]:!0}),u=X$(n,a0,l1,{[K$]:!0});Q$(n,c0,u),Q$(l,s0,c),Q$(l,c0,u),X$(l,a0,u),Q$(u,o0),Q$(u,s0),X$(u,a0,u),Q$(u,c0,u);let d=X$(n,r0,Q1,{[G$]:!0});Q$(d,`#`),X$(d,r0,d),Q$(d,gze,d);let f=Q$(d,_ze);Q$(f,`#`),X$(f,r0,d);let p=[[t0,o],[i0,i]],m=[[t0,null],[n0,s],[i0,a]];for(let e=0;ee[0]>t[0]?1:-1);for(let t=0;t=0?i[W$]=!0:t0.test(r)?i0.test(r)?i[H$]=!0:i[B$]=!0:i[z$]=!0,Z$(n,r,r,i)}return Z$(n,`localhost`,r1,{ascii:!0}),n.jd=new J$($1),{start:n,tokens:Object.assign({groups:t},e0)}}function d0(e,t){let n=yze(t.replace(/[A-Z]/g,e=>e.toLowerCase())),r=n.length,i=[],a=0,o=0;for(;o=0&&(d+=n[o].length,f++),l+=n[o].length,a+=n[o].length,o++;a-=d,o-=f,l-=d,i.push({t:u.t,v:t.slice(a-l,a),s:a-l,e:a})}return i}function yze(e){let t=[],n=e.length,r=0;for(;r56319||r+1===n||(a=e.charCodeAt(r+1))<56320||a>57343?e[r]:e.slice(r,r+2);t.push(o),r+=o.length}return t}function f0(e,t,n,r,i){let a,o=t.length;for(let n=0;n=0;)i++;if(i>0){t.push(n.join(``));for(let t=parseInt(e.substring(r,r+i),10);t>0;t--)n.pop();r+=i}else n.push(e[r]),r++}return t}var p0={defaultProtocol:`http`,events:null,format:h0,formatHref:h0,nl2br:!1,tagName:`a`,target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function m0(e,t=null){let n=Object.assign({},p0);e&&(n=Object.assign(n,e instanceof m0?e.o:e));let r=n.ignoreTags,i=[];for(let e=0;en?r.substring(0,n)+`…`:r},toFormattedHref(e){return e.get(`formatHref`,this.toHref(e.get(`defaultProtocol`)),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=p0.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get(`validate`,this.toString(),this)},render(e){let t=this,n=this.toHref(e.get(`defaultProtocol`)),r=e.get(`formatHref`,n,this),i=e.get(`tagName`,n,t),a=this.toFormattedString(e),o={},s=e.get(`className`,n,t),c=e.get(`target`,n,t),l=e.get(`rel`,n,t),u=e.getObj(`attributes`,n,t),d=e.getObj(`events`,n,t);return o.href=r,s&&(o.class=s),c&&(o.target=c),l&&(o.rel=l),u&&Object.assign(o,u),{tagName:i,attributes:o,content:a,eventListeners:d}}};function _0(e,t){class n extends g0{constructor(t,n){super(t,n),this.t=e}}for(let e in t)n.prototype[e]=t[e];return n.t=e,n}var xze=_0(`email`,{isLink:!0,toHref(){return`mailto:`+this.toString()}}),v0=_0(`text`),Sze=_0(`nl`),y0=_0(`url`,{isLink:!0,toHref(e=p0.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){let e=this.tk;return e.length>=2&&e[0].t!==r1&&e[1].t===P1}}),b0=e=>new J$(e);function Cze({groups:e}){let t=e.domain.concat([D1,k1,A1,j1,M1,N1,I1,R1,B1,c1,V1,H1,U1,W1,Y1,$1,X1,Z1]),n=[O1,P1,F1,L1,z1,V1,G1,K1,J1,_1,v1,d1,f1,m1,p1,h1,g1,y1,b1,x1,S1,C1,w1,T1,E1],r=[D1,O1,k1,j1,M1,N1,I1,R1,B1,d1,f1,V1,H1,U1,W1,G1,Y1,$1,X1,Z1],i=b0(),a=Q$(i,X1);Y$(a,r,a),Y$(a,e.domain,a);let o=b0(),s=b0(),c=b0();Y$(i,e.domain,o),Y$(i,e.scheme,s),Y$(i,e.slashscheme,c),Y$(o,r,a),Y$(o,e.domain,o);let l=Q$(o,A1);Q$(a,A1,l),Q$(s,A1,l),Q$(c,A1,l);let u=Q$(a,L1);Y$(u,r,a),Y$(u,e.domain,a);let d=b0();Y$(l,e.domain,d),Y$(d,e.domain,d);let f=Q$(d,L1);Y$(f,e.domain,d);let p=b0(xze);Y$(f,e.tld,p),Y$(f,e.utld,p),Q$(l,r1,p);let m=Q$(d,B1);Q$(m,B1,m),Y$(m,e.domain,d),Y$(p,e.domain,d),Q$(p,L1,f),Q$(p,B1,m);let h=Q$(o,B1),g=Q$(o,L1);Q$(h,B1,h),Y$(h,e.domain,o),Y$(g,r,a),Y$(g,e.domain,o);let _=b0(y0);Y$(g,e.tld,_),Y$(g,e.utld,_),Y$(_,e.domain,o),Y$(_,r,a),Q$(_,L1,g),Q$(_,B1,h),Q$(_,A1,l);let v=Q$(_,P1),y=b0(y0);Y$(v,e.numeric,y);let b=b0(y0),x=b0();Y$(b,t,b),Y$(b,n,x),Y$(x,t,b),Y$(x,n,x),Q$(_,Y1,b),Q$(y,Y1,b);let S=Q$(s,P1),C=Q$(Q$(Q$(c,P1),Y1),Y1);Y$(s,e.domain,o),Q$(s,L1,g),Q$(s,B1,h),Y$(c,e.domain,o),Q$(c,L1,g),Q$(c,B1,h),Y$(S,e.domain,b),Q$(S,Y1,b),Q$(S,G1,b),Y$(C,e.domain,b),Y$(C,t,b),Q$(C,Y1,b);let w=[[d1,f1],[p1,m1],[h1,g1],[_1,v1],[y1,b1],[x1,S1],[C1,w1],[T1,E1]];for(let e=0;e=0&&f++,i++,u++;if(f<0)i-=u,i0&&(a.push(x0(v0,t,o)),o=[]),i-=f,u-=f;let e=d.t,r=n.slice(i-u,i);a.push(x0(e,t,r))}}return o.length>0&&a.push(x0(v0,t,o)),a}function x0(e,t,n){let r=n[0].s,i=n[n.length-1].e;return new e(t.slice(r,i),n)}var Tze=typeof console<`u`&&console&&console.warn||(()=>{}),Eze=`until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`,S0={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Dze(){return J$.groups={},S0.scanner=null,S0.parser=null,S0.tokenQueue=[],S0.pluginQueue=[],S0.customSchemes=[],S0.initialized=!1,S0}function C0(e,t=!1){if(S0.initialized&&Tze(`linkifyjs: already initialized - will not register custom scheme "${e}" ${Eze}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw Error(`linkifyjs: incorrect scheme format. +`,parseMarkdown:()=>({type:`hardBreak`}),addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:n,editor:r})=>e.first([()=>e.exitCode(),()=>e.command(()=>{let{selection:e,storedMarks:i}=n;if(e.$from.parent.type.spec.isolating)return!1;let{keepMarks:a}=this.options,{splittableMarks:o}=r.extensionManager,s=i||e.$to.parentOffset&&e.$from.marks();return t().insertContent({type:this.name}).command(({tr:e,dispatch:t})=>{if(t&&s&&a){let t=s.filter(e=>o.includes(e.type.name));e.ensureMarks(t)}return!0}).scrollIntoView().run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),ize=f$.create({name:`heading`,addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:`inline*`,group:`block`,defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(e=>({tag:`h${e}`,attrs:{level:e}}))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,dQ(this.options.HTMLAttributes,t),0]},parseMarkdown:(e,t)=>t.createNode(`heading`,{level:e.depth||1},t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>{let n=e.attrs?.level?parseInt(e.attrs.level,10):1,r=`#`.repeat(n);return e.content?`${r} ${t.renderChildren(e.content)}`:``},addCommands(){return{setHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.setNode(this.name,e):!1,toggleHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.toggleNode(this.name,`paragraph`,e):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((e,t)=>({...e,[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})}),{})},addInputRules(){return this.options.levels.map(e=>u$({find:RegExp(`^(#{${Math.min(...this.options.levels)},${e}})\\s$`),type:this.type,getAttributes:{level:e}}))}}),aze=f$.create({name:`horizontalRule`,addOptions(){return{HTMLAttributes:{},nextNodeType:`paragraph`}},group:`block`,parseHTML(){return[{tag:`hr`}]},renderHTML({HTMLAttributes:e}){return[`hr`,dQ(this.options.HTMLAttributes,e)]},markdownTokenName:`hr`,parseMarkdown:(e,t)=>t.createNode(`horizontalRule`),renderMarkdown:()=>`---`,addCommands(){return{setHorizontalRule:()=>({chain:e,state:t})=>{if(!mLe(t,t.schema.nodes[this.name]))return!1;let{selection:n}=t,{$to:r}=n,i=e();return kQ(n)?i.insertContentAt(r.pos,{type:this.name}):i.insertContent({type:this.name}),i.command(({state:e,tr:t,dispatch:n})=>{if(n){let{$to:n}=t.selection,r=n.end();if(n.nodeAfter)n.nodeAfter.isTextblock?t.setSelection(Kq.create(t.doc,n.pos+1)):n.nodeAfter.isBlock?t.setSelection(Jq.create(t.doc,n.pos)):t.setSelection(Kq.create(t.doc,n.pos));else{let i=(e.schema.nodes[this.options.nextNodeType]||n.parent.type.contentMatch.defaultType)?.create();i&&(t.insert(r,i),t.setSelection(Kq.create(t.doc,r+1)))}t.scrollIntoView()}return!0}).run()}}},addInputRules(){return[l$({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),oze=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,sze=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,cze=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,lze=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,uze=n$.create({name:`italic`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`em`},{tag:`i`,getAttrs:e=>e.style.fontStyle!==`normal`&&null},{style:`font-style=normal`,clearMark:e=>e.type.name===this.name},{style:`font-style=italic`}]},renderHTML({HTMLAttributes:e}){return[`em`,dQ(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark(this.name),toggleItalic:()=>({commands:e})=>e.toggleMark(this.name),unsetItalic:()=>({commands:e})=>e.unsetMark(this.name)}},markdownTokenName:`em`,parseMarkdown:(e,t)=>t.applyMark(`italic`,t.parseInline(e.tokens||[])),markdownOptions:{htmlReopen:{open:``,close:``}},renderMarkdown:(e,t)=>`*${t.renderChildren(e)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[c$({find:oze,type:this.type}),c$({find:cze,type:this.type})]},addPasteRules(){return[p$({find:sze,type:this.type}),p$({find:lze,type:this.type})]}}),dze=`aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2odyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rck0msd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2oodside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2`,fze=`ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2`,z$=`numeric`,B$=`ascii`,V$=`alpha`,H$=`asciinumeric`,U$=`alphanumeric`,W$=`domain`,G$=`emoji`,pze=`scheme`,mze=`slashscheme`,K$=`whitespace`;function hze(e,t){return e in t||(t[e]=[]),t[e]}function q$(e,t,n){t[z$]&&(t[H$]=!0,t[U$]=!0),t[B$]&&(t[H$]=!0,t[V$]=!0),t[H$]&&(t[U$]=!0),t[V$]&&(t[U$]=!0),t[U$]&&(t[W$]=!0),t[G$]&&(t[W$]=!0);for(let r in t){let t=hze(r,n);t.indexOf(e)<0&&t.push(e)}}function gze(e,t){let n={};for(let r in t)t[r].indexOf(e)>=0&&(n[r]=!0);return n}function J$(e=null){this.j={},this.jr=[],this.jd=null,this.t=e}J$.groups={},J$.prototype={accepts(){return!!this.t},go(e){let t=this,n=t.j[e];if(n)return n;for(let n=0;ne.ta(t,n,r,i),X$=(e,t,n,r,i)=>e.tr(t,n,r,i),Z$=(e,t,n,r,i)=>e.ts(t,n,r,i),Q$=(e,t,n,r,i)=>e.tt(t,n,r,i),$$=`WORD`,e1=`UWORD`,t1=`ASCIINUMERICAL`,n1=`ALPHANUMERICAL`,r1=`LOCALHOST`,i1=`TLD`,a1=`UTLD`,o1=`SCHEME`,s1=`SLASH_SCHEME`,c1=`NUM`,l1=`WS`,u1=`NL`,d1=`OPENBRACE`,f1=`CLOSEBRACE`,p1=`OPENBRACKET`,m1=`CLOSEBRACKET`,h1=`OPENPAREN`,g1=`CLOSEPAREN`,_1=`OPENANGLEBRACKET`,v1=`CLOSEANGLEBRACKET`,y1=`FULLWIDTHLEFTPAREN`,b1=`FULLWIDTHRIGHTPAREN`,x1=`LEFTCORNERBRACKET`,S1=`RIGHTCORNERBRACKET`,C1=`LEFTWHITECORNERBRACKET`,w1=`RIGHTWHITECORNERBRACKET`,T1=`FULLWIDTHLESSTHAN`,E1=`FULLWIDTHGREATERTHAN`,D1=`AMPERSAND`,O1=`APOSTROPHE`,k1=`ASTERISK`,A1=`AT`,j1=`BACKSLASH`,M1=`BACKTICK`,N1=`CARET`,P1=`COLON`,F1=`COMMA`,I1=`DOLLAR`,L1=`DOT`,R1=`EQUALS`,z1=`EXCLAMATION`,B1=`HYPHEN`,V1=`PERCENT`,H1=`PIPE`,U1=`PLUS`,W1=`POUND`,G1=`QUERY`,K1=`QUOTE`,q1=`FULLWIDTHMIDDLEDOT`,J1=`SEMI`,Y1=`SLASH`,X1=`TILDE`,Z1=`UNDERSCORE`,Q1=`EMOJI`,$1=`SYM`,e0=Object.freeze({__proto__:null,ALPHANUMERICAL:n1,AMPERSAND:D1,APOSTROPHE:O1,ASCIINUMERICAL:t1,ASTERISK:k1,AT:A1,BACKSLASH:j1,BACKTICK:M1,CARET:N1,CLOSEANGLEBRACKET:v1,CLOSEBRACE:f1,CLOSEBRACKET:m1,CLOSEPAREN:g1,COLON:P1,COMMA:F1,DOLLAR:I1,DOT:L1,EMOJI:Q1,EQUALS:R1,EXCLAMATION:z1,FULLWIDTHGREATERTHAN:E1,FULLWIDTHLEFTPAREN:y1,FULLWIDTHLESSTHAN:T1,FULLWIDTHMIDDLEDOT:q1,FULLWIDTHRIGHTPAREN:b1,HYPHEN:B1,LEFTCORNERBRACKET:x1,LEFTWHITECORNERBRACKET:C1,LOCALHOST:r1,NL:u1,NUM:c1,OPENANGLEBRACKET:_1,OPENBRACE:d1,OPENBRACKET:p1,OPENPAREN:h1,PERCENT:V1,PIPE:H1,PLUS:U1,POUND:W1,QUERY:G1,QUOTE:K1,RIGHTCORNERBRACKET:S1,RIGHTWHITECORNERBRACKET:w1,SCHEME:o1,SEMI:J1,SLASH:Y1,SLASH_SCHEME:s1,SYM:$1,TILDE:X1,TLD:i1,UNDERSCORE:Z1,UTLD:a1,UWORD:e1,WORD:$$,WS:l1}),t0=/[a-z]/,n0=/\p{L}/u,r0=/\p{Emoji}/u,i0=/\d/,a0=/\s/,o0=`\r`,s0=` +`,_ze=`️`,vze=`‍`,c0=``,l0=null,u0=null;function yze(e=[]){let t={};J$.groups=t;let n=new J$;l0??=p0(dze),u0??=p0(fze),Q$(n,`'`,O1),Q$(n,`{`,d1),Q$(n,`}`,f1),Q$(n,`[`,p1),Q$(n,`]`,m1),Q$(n,`(`,h1),Q$(n,`)`,g1),Q$(n,`<`,_1),Q$(n,`>`,v1),Q$(n,`(`,y1),Q$(n,`)`,b1),Q$(n,`「`,x1),Q$(n,`」`,S1),Q$(n,`『`,C1),Q$(n,`』`,w1),Q$(n,`<`,T1),Q$(n,`>`,E1),Q$(n,`&`,D1),Q$(n,`*`,k1),Q$(n,`@`,A1),Q$(n,"`",M1),Q$(n,`^`,N1),Q$(n,`:`,P1),Q$(n,`,`,F1),Q$(n,`$`,I1),Q$(n,`.`,L1),Q$(n,`=`,R1),Q$(n,`!`,z1),Q$(n,`-`,B1),Q$(n,`%`,V1),Q$(n,`|`,H1),Q$(n,`+`,U1),Q$(n,`#`,W1),Q$(n,`?`,G1),Q$(n,`"`,K1),Q$(n,`/`,Y1),Q$(n,`;`,J1),Q$(n,`~`,X1),Q$(n,`_`,Z1),Q$(n,`\\`,j1),Q$(n,`・`,q1);let r=X$(n,i0,c1,{[z$]:!0});X$(r,i0,r);let i=X$(r,t0,t1,{[H$]:!0}),a=X$(r,n0,n1,{[U$]:!0}),o=X$(n,t0,$$,{[B$]:!0});X$(o,i0,i),X$(o,t0,o),X$(i,i0,i),X$(i,t0,i);let s=X$(n,n0,e1,{[V$]:!0});X$(s,t0),X$(s,i0,a),X$(s,n0,s),X$(a,i0,a),X$(a,t0),X$(a,n0,a);let c=Q$(n,s0,u1,{[K$]:!0}),l=Q$(n,o0,l1,{[K$]:!0}),u=X$(n,a0,l1,{[K$]:!0});Q$(n,c0,u),Q$(l,s0,c),Q$(l,c0,u),X$(l,a0,u),Q$(u,o0),Q$(u,s0),X$(u,a0,u),Q$(u,c0,u);let d=X$(n,r0,Q1,{[G$]:!0});Q$(d,`#`),X$(d,r0,d),Q$(d,_ze,d);let f=Q$(d,vze);Q$(f,`#`),X$(f,r0,d);let p=[[t0,o],[i0,i]],m=[[t0,null],[n0,s],[i0,a]];for(let e=0;ee[0]>t[0]?1:-1);for(let t=0;t=0?i[W$]=!0:t0.test(r)?i0.test(r)?i[H$]=!0:i[B$]=!0:i[z$]=!0,Z$(n,r,r,i)}return Z$(n,`localhost`,r1,{ascii:!0}),n.jd=new J$($1),{start:n,tokens:Object.assign({groups:t},e0)}}function d0(e,t){let n=bze(t.replace(/[A-Z]/g,e=>e.toLowerCase())),r=n.length,i=[],a=0,o=0;for(;o=0&&(d+=n[o].length,f++),l+=n[o].length,a+=n[o].length,o++;a-=d,o-=f,l-=d,i.push({t:u.t,v:t.slice(a-l,a),s:a-l,e:a})}return i}function bze(e){let t=[],n=e.length,r=0;for(;r56319||r+1===n||(a=e.charCodeAt(r+1))<56320||a>57343?e[r]:e.slice(r,r+2);t.push(o),r+=o.length}return t}function f0(e,t,n,r,i){let a,o=t.length;for(let n=0;n=0;)i++;if(i>0){t.push(n.join(``));for(let t=parseInt(e.substring(r,r+i),10);t>0;t--)n.pop();r+=i}else n.push(e[r]),r++}return t}var m0={defaultProtocol:`http`,events:null,format:g0,formatHref:g0,nl2br:!1,tagName:`a`,target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function h0(e,t=null){let n=Object.assign({},m0);e&&(n=Object.assign(n,e instanceof h0?e.o:e));let r=n.ignoreTags,i=[];for(let e=0;en?r.substring(0,n)+`…`:r},toFormattedHref(e){return e.get(`formatHref`,this.toHref(e.get(`defaultProtocol`)),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e=m0.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get(`validate`,this.toString(),this)},render(e){let t=this,n=this.toHref(e.get(`defaultProtocol`)),r=e.get(`formatHref`,n,this),i=e.get(`tagName`,n,t),a=this.toFormattedString(e),o={},s=e.get(`className`,n,t),c=e.get(`target`,n,t),l=e.get(`rel`,n,t),u=e.getObj(`attributes`,n,t),d=e.getObj(`events`,n,t);return o.href=r,s&&(o.class=s),c&&(o.target=c),l&&(o.rel=l),u&&Object.assign(o,u),{tagName:i,attributes:o,content:a,eventListeners:d}}};function v0(e,t){class n extends _0{constructor(t,n){super(t,n),this.t=e}}for(let e in t)n.prototype[e]=t[e];return n.t=e,n}var xze=v0(`email`,{isLink:!0,toHref(){return`mailto:`+this.toString()}}),y0=v0(`text`),Sze=v0(`nl`),b0=v0(`url`,{isLink:!0,toHref(e=m0.defaultProtocol){return this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){let e=this.tk;return e.length>=2&&e[0].t!==r1&&e[1].t===P1}}),x0=e=>new J$(e);function Cze({groups:e}){let t=e.domain.concat([D1,k1,A1,j1,M1,N1,I1,R1,B1,c1,V1,H1,U1,W1,Y1,$1,X1,Z1]),n=[O1,P1,F1,L1,z1,V1,G1,K1,J1,_1,v1,d1,f1,m1,p1,h1,g1,y1,b1,x1,S1,C1,w1,T1,E1],r=[D1,O1,k1,j1,M1,N1,I1,R1,B1,d1,f1,V1,H1,U1,W1,G1,Y1,$1,X1,Z1],i=x0(),a=Q$(i,X1);Y$(a,r,a),Y$(a,e.domain,a);let o=x0(),s=x0(),c=x0();Y$(i,e.domain,o),Y$(i,e.scheme,s),Y$(i,e.slashscheme,c),Y$(o,r,a),Y$(o,e.domain,o);let l=Q$(o,A1);Q$(a,A1,l),Q$(s,A1,l),Q$(c,A1,l);let u=Q$(a,L1);Y$(u,r,a),Y$(u,e.domain,a);let d=x0();Y$(l,e.domain,d),Y$(d,e.domain,d);let f=Q$(d,L1);Y$(f,e.domain,d);let p=x0(xze);Y$(f,e.tld,p),Y$(f,e.utld,p),Q$(l,r1,p);let m=Q$(d,B1);Q$(m,B1,m),Y$(m,e.domain,d),Y$(p,e.domain,d),Q$(p,L1,f),Q$(p,B1,m);let h=Q$(o,B1),g=Q$(o,L1);Q$(h,B1,h),Y$(h,e.domain,o),Y$(g,r,a),Y$(g,e.domain,o);let _=x0(b0);Y$(g,e.tld,_),Y$(g,e.utld,_),Y$(_,e.domain,o),Y$(_,r,a),Q$(_,L1,g),Q$(_,B1,h),Q$(_,A1,l);let v=Q$(_,P1),y=x0(b0);Y$(v,e.numeric,y);let b=x0(b0),x=x0();Y$(b,t,b),Y$(b,n,x),Y$(x,t,b),Y$(x,n,x),Q$(_,Y1,b),Q$(y,Y1,b);let S=Q$(s,P1),C=Q$(Q$(Q$(c,P1),Y1),Y1);Y$(s,e.domain,o),Q$(s,L1,g),Q$(s,B1,h),Y$(c,e.domain,o),Q$(c,L1,g),Q$(c,B1,h),Y$(S,e.domain,b),Q$(S,Y1,b),Q$(S,G1,b),Y$(C,e.domain,b),Y$(C,t,b),Q$(C,Y1,b);let w=[[d1,f1],[p1,m1],[h1,g1],[_1,v1],[y1,b1],[x1,S1],[C1,w1],[T1,E1]];for(let e=0;e=0&&f++,i++,u++;if(f<0)i-=u,i0&&(a.push(S0(y0,t,o)),o=[]),i-=f,u-=f;let e=d.t,r=n.slice(i-u,i);a.push(S0(e,t,r))}}return o.length>0&&a.push(S0(y0,t,o)),a}function S0(e,t,n){let r=n[0].s,i=n[n.length-1].e;return new e(t.slice(r,i),n)}var Tze=typeof console<`u`&&console&&console.warn||(()=>{}),Eze=`until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`,C0={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function Dze(){return J$.groups={},C0.scanner=null,C0.parser=null,C0.tokenQueue=[],C0.pluginQueue=[],C0.customSchemes=[],C0.initialized=!1,C0}function w0(e,t=!1){if(C0.initialized&&Tze(`linkifyjs: already initialized - will not register custom scheme "${e}" ${Eze}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e))throw Error(`linkifyjs: incorrect scheme format. 1. Must only contain digits, lowercase ASCII letters or "-" 2. Cannot start or end with "-" -3. "-" cannot repeat`);S0.customSchemes.push([e,t])}function Oze(){S0.scanner=vze(S0.customSchemes);for(let e=0;e{let i=t.some(e=>e.docChanged)&&!n.doc.eq(r.doc),a=t.some(e=>e.getMeta(`preventAutolink`));if(!i||a)return;let{tr:o}=r;if(xQ(tQ(n.doc,[...t])).forEach(({newRange:t})=>{let n=lIe(r.doc,t,e=>e.isTextblock),i,a;if(n.length>1)i=n[0],a=r.doc.textBetween(i.pos,i.pos+i.node.nodeSize,void 0,` `);else if(n.length){let e=r.doc.textBetween(t.from,t.to,` `,` `);if(!Aze.test(e))return;i=n[0],a=r.doc.textBetween(i.pos,t.to,void 0,` `)}if(i&&a){let t=a.split(kze).filter(Boolean);if(t.length<=0)return!1;let n=t[t.length-1],s=i.pos+a.lastIndexOf(n);if(!n)return!1;let c=w0(n).map(t=>t.toObject(e.defaultProtocol));if(!Mze(c))return!1;c.filter(e=>e.isLink).map(e=>({...e,from:s+e.start+1,to:s+e.end+1})).filter(e=>r.schema.marks.code?!r.doc.rangeHasMark(e.from,e.to,r.schema.marks.code):!0).filter(t=>e.validate(t.value)).filter(t=>e.shouldAutoLink(t.value)).forEach(t=>{SQ(t.from,t.to,r.doc).some(t=>t.mark.type===e.type)||o.addMark(t.from,t.to,e.type.create({href:t.href}))})}}),o.steps.length)return o}})}function Pze(e){return new oJ({key:new lJ(`handleClickLink`),props:{handleClick:(t,n,r)=>{if(r.button!==0||!t.editable)return!1;let i=null;if(r.target instanceof HTMLAnchorElement)i=r.target;else{let t=r.target;if(!t)return!1;let n=e.editor.view.dom;i=t.closest(`a`),i&&!n.contains(i)&&(i=null)}if(!i)return!1;let a=!1;if(e.enableClickSelection&&(a=e.editor.commands.extendMarkRange(e.type.name)),e.openOnClick){let n=bQ(t.state,e.type.name),r=i.href??n.href,o=i.target??n.target;r&&(window.open(r,o),a=!0)}return a}}})}var Fze=/\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)$/,Ize=/\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)/g;function D0(e,t){let n=0;for(let r=t-1;r>=0&&e[r]===`\\`;--r)n+=1;return n%2==1}function Lze(e,t){let n=0,r=0;for(;r0}function O0(e,t,n){let[,r,i]=t;return(t.index?e[t.index-1]:void 0)===`!`||D0(e,t.index??0)||Lze(e,t.index??0)?!1:!!r.trim()&&n(i)}function k0(e){let[t,n,r,,i,a,o]=e,s=i??a??o;return{index:e.index??0,text:t,replaceWith:n,data:{href:r,title:s||null,markdown:!0}}}function Rze(e,t){return e.index{let n=Fze.exec(t);return!n||!O0(t,n,e.isAllowedHref)?null:k0(n)},type:e.type,getAttributes:A0});return new $Q({find:t.find,handler:e=>{let n=t.handler(e);return n!==null&&e.state.tr.steps.length&&e.state.tr.setMeta(`preventAutolink`,!0),n}})}function Bze(e){let t=p$({find:t=>{let n=[];for(let r of t.matchAll(Ize))O0(t,r,e.isAllowedHref)&&n.push(k0(r));let r=(e.findPlainUrls?.call(e,t)??[]).filter(e=>!n.some(t=>Rze(t,e)));return[...n,...r]},type:e.type,getAttributes:A0});return new r$({find:t.find,handler:e=>{let n=t.handler(e);return n!==null&&e.state.tr.steps.length&&e.match.data?.markdown&&e.state.tr.setMeta(`preventAutolink`,!0),n}})}function Vze(e){return new oJ({key:new lJ(`handlePasteLink`),props:{handlePaste:(t,n,r)=>{let{shouldAutoLink:i}=e,{state:a}=t,{selection:o}=a,{empty:s}=o;if(s)return!1;let c=``;r.content.forEach(e=>{c+=e.textContent});let l=T0(c,{defaultProtocol:e.defaultProtocol}).find(e=>e.isLink&&e.value===c);return!c||!l||i!==void 0&&!i(l.value)?!1:e.editor.commands.setMark(e.type,{href:l.href})}}})}function j0(e,t){let n=[`http`,`https`,`ftp`,`ftps`,`mailto`,`tel`,`callto`,`sms`,`cid`,`xmpp`];return t&&t.forEach(e=>{let t=typeof e==`string`?e:e.scheme;t&&n.push(t)}),!e||e.replace(jze,``).match(RegExp(`^(?:(?:${n.map(e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)).join(`|`)}):|[^a-z]|[a-z0-9+.\\-]+(?:[^a-z+.\\-:]|$))`,`i`))}var M0=n$.create({name:`link`,priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(e=>{if(typeof e==`string`){C0(e);return}C0(e.scheme,e.optionalSlashes)})},onDestroy(){Dze()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,markdownLinks:!1,autolink:!0,protocols:[],defaultProtocol:`http`,HTMLAttributes:{target:`_blank`,rel:`noopener noreferrer nofollow`,class:null},isAllowedUri:(e,t)=>!!j0(e,t.protocols),validate:e=>!!e,shouldAutoLink:e=>{let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e),n=/^[a-z][a-z0-9+.-]*:/i.test(e);if(t||n&&!e.includes(`@`))return!0;let r=(e.includes(`@`)?e.split(`@`).pop():e).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(r)||!/\./.test(r))}}},addAttributes(){return{href:{default:null,parseHTML(e){return e.getAttribute(`href`)}},target:{default:this.options.HTMLAttributes.target??null},rel:{default:this.options.HTMLAttributes.rel??null},class:{default:this.options.HTMLAttributes.class??null},title:{default:null}}},parseHTML(){return[{tag:`a[href]`,getAttrs:e=>{let t=e.getAttribute(`href`);return!t||!this.options.isAllowedUri(t,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:e}){return this.options.isAllowedUri(e.href,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?[`a`,dQ(this.options.HTMLAttributes,e),0]:[`a`,dQ(this.options.HTMLAttributes,{...e,href:``}),0]},markdownTokenName:`link`,parseMarkdown:(e,t)=>t.applyMark(`link`,t.parseInline(e.tokens||[]),{href:e.href,title:e.title||null}),renderMarkdown:(e,t)=>{let n=e.attrs?.href??``,r=e.attrs?.title??``,i=t.renderChildren(e);return r?`[${i}](${n} "${r}")`:`[${i}](${n})`},addCommands(){return{setLink:e=>({chain:t})=>{let{href:n}=e;return this.options.isAllowedUri(n,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?t().setMark(this.name,e).setMeta(`preventAutolink`,!0).run():!1},toggleLink:e=>({chain:t})=>{let{href:n}=e||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()},unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()}},addInputRules(){return this.options.markdownLinks?[zze({type:this.type,isAllowedHref:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})})]:[]},addPasteRules(){let e=e=>{let t=[];if(e){let{protocols:n,defaultProtocol:r}=this.options;T0(e).filter(e=>e.isLink&&this.options.isAllowedUri(e.value,{defaultValidate:e=>!!j0(e,n),protocols:n,defaultProtocol:r})).forEach(e=>{this.options.shouldAutoLink(e.value)&&t.push({text:e.value,data:{href:e.href},index:e.start})})}return t};return this.options.markdownLinks?[Bze({type:this.type,isAllowedHref:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!j0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}),findPlainUrls:e})]:[p$({find:e,type:this.type,getAttributes:e=>({href:e.data?.href})})]},addProseMirrorPlugins(){let e=[],{protocols:t,defaultProtocol:n}=this.options;return this.options.autolink&&e.push(Nze({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!j0(e,t),protocols:t,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),e.push(Pze({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick===`whenNotEditable`?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&e.push(Vze({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),e}}),Hze=M0,Uze=`listItem`,N0=`textStyle`,P0=/^\s*([-+*])\s$/,F0=f$.create({name:`bulletList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul`}]},renderHTML({HTMLAttributes:e}){return[`ul`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>e.type!==`list`||e.ordered?[]:{type:`bulletList`,content:e.items?t.parseChildren(e.items):[]},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` -`):``,markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Uze,this.editor.getAttributes(N0)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let e=d$({find:P0,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(e=d$({find:P0,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(N0),editor:this.editor})),[e]}}),Wze=(e,t,n)=>{let{selection:r}=e;if(!r.empty)return null;let{$from:i}=r;if(!i.parent.isTextblock||i.parentOffset!==i.parent.content.size)return null;let a=-1;for(let e=i.depth;e>0;--e)if(i.node(e).type.name===t){a=e;break}if(a<0)return null;let o=i.node(a),s=i.index(a);if(s+1>=o.childCount)return null;let c=o.child(s+1);if(!n.includes(c.type.name))return null;let l=e.schema.nodes[t],u=!1;if(c.forEach(e=>{e.type===l&&e.childCount>1&&(u=!0)}),!u)return null;let d=e.doc.resolve(i.after()).nodeAfter;if(!d||!n.includes(d.type.name))return null;let f=[];return d.forEach(e=>{f.push(e)}),f.length===0?null:{listItemDepth:a,nestedList:d,nestedListPos:i.after(),insertPos:i.after(a),items:f}},Gze=(e,t,n,r)=>{let i=Wze(e,n,r);if(!i)return!1;let{selection:a}=e,{nestedList:o,nestedListPos:s,insertPos:c,items:l}=i,u=e.tr;u.delete(s,s+o.nodeSize);let d=u.mapping.map(c);return u.insert(d,tK.from(l)),u.setSelection(a.map(u.doc,u.mapping)),t&&t(u),!0},Kze=(e,t,n)=>Gze(e.state,e.view.dispatch,t,n),I0=(e,t)=>o$.create({name:`${e}BranchingDeleteKeymap`,priority:101,addKeyboardShortcuts(){let n=()=>Kze(this.editor,e,t);return{Delete:n,"Mod-Delete":n}}}),L0=[[1e3,`m`],[900,`cm`],[500,`d`],[400,`cd`],[100,`c`],[90,`xc`],[50,`l`],[40,`xl`],[10,`x`],[9,`ix`],[5,`v`],[4,`iv`],[1,`i`]],R0=`abcdefghijklmnopqrstuvwxyz`,z0=String.raw`\d+|[ivxlcdmIVXLCDM]+|${`[a-zA-Z]{1,2}`}`;function B0(e){let t=e,n=``;for(let[e,r]of L0)for(;t>=e;)n+=r,t-=e;return n}function V0(e){return B0(e).toUpperCase()}function H0(e){let t=e.toLowerCase(),n=0,r=0;for(;n0?t:1}let n=parseInt(e,10);return Number.isNaN(n)?1:n}function Yze(e,t){if(e===`numeric`)return String(t);switch(e){case`a`:return U0(t);case`A`:return U0(t).toUpperCase();case`i`:return B0(t);case`I`:return V0(t);default:return String(t)}}function Xze(e){if(e.length===0)return!1;let t=W0(e[0])??`numeric`,n=G0(e[0]);if(n<1)return!1;for(let r=0;r{if(e.type!==`list_item`)return[];let n=t.parseBlockChildren??t.parseChildren,r=[];if(e.tokens&&e.tokens.length>0){if(eBe(e))return{type:`listItem`,content:[{type:`paragraph`,content:tBe(e.text||``,t)}]};if(e.tokens.some(e=>e.type===`paragraph`))r=n(e.tokens);else{let i=e.tokens[0];if(i&&i.type===`text`&&i.tokens&&i.tokens.length>0){if(r=[{type:`paragraph`,content:t.parseInline(i.tokens)}],e.tokens.length>1){let t=n(e.tokens.slice(1));r.push(...t)}}else r=n(e.tokens)}}return r.length===0&&(r=[{type:`paragraph`,content:[]}]),{type:`listItem`,content:r}},renderMarkdown:(e,t,n)=>ZQ(e,t,e=>{if(e.parentType===`bulletList`)return`- `;if(e.parentType===`orderedList`){var t,n;let r=((t=e.meta)==null||(t=t.parentAttrs)==null?void 0:t.start)||1;return $ze((n=e.meta)==null||(n=n.parentAttrs)==null?void 0:n.type,r-1+(e.index||0),`. `)}return`- `},n,{alignNestedToPrefix:n?.parentType===`orderedList`}),addExtensions(){return[I0(this.name,[this.options.bulletListTypeName,this.options.orderedListTypeName])]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),q0=(e,t)=>{let{$from:n}=t.selection,r=kZ(e,t.schema),i=null,a=n.depth,o=n.pos,s=null;for(;a>0&&s===null;)i=n.node(a),i.type===r?s=a:(--a,--o);return s===null?null:{$pos:t.doc.resolve(o),depth:s}},J0=(e,t)=>{let n=q0(e,t);if(!n)return!1;let[,r]=bIe(t,e,n.$pos.pos+4);return r},nBe=(e,t,n)=>{let{$anchor:r}=e.selection,i=Math.max(0,r.pos-2),a=e.doc.resolve(i).node();return!(!a||!n.includes(a.type.name))},Y0=(e,t,n)=>{if(e.commands.undoInputRule())return!0;if(e.state.selection.from!==e.state.selection.to)return!1;if(!XZ(e.state,t)&&nBe(e.state,t,n)){let{$anchor:n}=e.state.selection,r=e.state.doc.resolve(n.before()-1),i=[];r.node().descendants((e,n)=>{e.type.name===t&&i.push({node:e,pos:n})});let a=i.at(-1);if(!a)return!1;let o=e.state.doc.resolve(r.start()+a.pos+1);return e.chain().cut({from:n.start()-1,to:n.end()+1},o.end()).joinForward().run()}if(!XZ(e.state,t)||!TIe(e.state))return!1;let{$from:r}=e.state.selection,i=r.depth-1;return r.node(i).type!==e.schema.nodes[t]||r.index(i)!==0?!1:e.chain().liftListItem(t).run()},rBe=(e,t)=>{let n=J0(e,t),r=q0(e,t);return!r||!n?!1:n>r.depth},iBe=(e,t)=>{let n=J0(e,t),r=q0(e,t);return!r||!n?!1:n{if(!XZ(e.state,t)||!wIe(e.state,t))return!1;let{selection:n}=e.state,{$from:r,$to:i}=n;return!n.empty&&r.sameParent(i)?!1:rBe(t,e.state)?e.chain().focus(e.state.selection.from+4).lift(t).joinBackward().run():iBe(t,e.state)?e.chain().joinForward().joinBackward().run():e.commands.joinItemForward()},aBe=(e,t,n)=>{let{state:r}=e,{selection:i}=r;if(!i.empty)return!1;let{$from:a}=i;if(a.parentOffset!==0||!a.parent.isTextblock||XZ(r,t))return!1;let o=xIe(a);if(!o||!n.includes(o.type.name))return!1;let s=o.lastChild;if(!s||s.type.name!==t)return!1;let c=a.parent;if(!s.canReplace(s.childCount,s.childCount,tK.from(c)))return!1;let l=a.before(),u=a.after(),d=l-2;return e.commands.command(({tr:e,dispatch:t})=>(t&&(e.delete(l,u).insert(d,tK.from(c)),e.setSelection(Kq.create(e.doc,d+1)),e.scrollIntoView()),!0))},Z0=o$.create({name:`listKeymap`,addOptions(){return{listTypes:[{itemName:`listItem`,wrapperNames:[`bulletList`,`orderedList`]},{itemName:`taskItem`,wrapperNames:[`taskList`]}]}},addKeyboardShortcuts(){return{Delete:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&X0(e,n)&&(t=!0)}),t},"Mod-Delete":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&X0(e,n)&&(t=!0)}),t},Backspace:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&Y0(e,n,r)&&(t=!0)}),t},"Mod-Backspace":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&Y0(e,n,r)&&(t=!0)}),t},Tab:({editor:e})=>{for(let{itemName:t,wrapperNames:n}of this.options.listTypes)if(e.state.schema.nodes[t]!==void 0&&aBe(e,t,n))return!0;return!1}}}}),Q0=RegExp(`^(\\s*)(${z0})([.)])\\s+(.*)$`),oBe=/^\s/,$0={heading:/^#{1,6}(?:\s|$)/,bulletItem:/^[-+*]\s+/,codeFence:/^(?:```|~~~)/,blockMath:/^\$\$/,thematicBreak:/^(?:(?:-[ \t]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})$/};function sBe(e){return Q0.test(e.trimStart())}function cBe(e){let t=e.trimStart();return $0.bulletItem.test(t)||sBe(t)||$0.heading.test(t)||$0.thematicBreak.test(t)&&!t.startsWith(`-`)||/^>\s?/.test(t)||$0.codeFence.test(t)||$0.blockMath.test(t)}function lBe(e){return Object.values($0).some(t=>t.test(e))}function uBe(e){let t=[],n=[],r=!1;return e.forEach(e=>{if(r){n.push(e);return}if(e.trim()===``){r=!0,n.push(e);return}if(t.length>0&&cBe(e)){r=!0,n.push(e);return}t.push(e)}),{paragraphLines:t,blockLines:n}}function dBe(e){let t=[],n=0,r=0;for(;n{let i=t.some(e=>e.docChanged)&&!n.doc.eq(r.doc),a=t.some(e=>e.getMeta(`preventAutolink`));if(!i||a)return;let{tr:o}=r;if(xQ(tQ(n.doc,[...t])).forEach(({newRange:t})=>{let n=uIe(r.doc,t,e=>e.isTextblock),i,a;if(n.length>1)i=n[0],a=r.doc.textBetween(i.pos,i.pos+i.node.nodeSize,void 0,` `);else if(n.length){let e=r.doc.textBetween(t.from,t.to,` `,` `);if(!Aze.test(e))return;i=n[0],a=r.doc.textBetween(i.pos,t.to,void 0,` `)}if(i&&a){let t=a.split(kze).filter(Boolean);if(t.length<=0)return!1;let n=t[t.length-1],s=i.pos+a.lastIndexOf(n);if(!n)return!1;let c=T0(n).map(t=>t.toObject(e.defaultProtocol));if(!Mze(c))return!1;c.filter(e=>e.isLink).map(e=>({...e,from:s+e.start+1,to:s+e.end+1})).filter(e=>r.schema.marks.code?!r.doc.rangeHasMark(e.from,e.to,r.schema.marks.code):!0).filter(t=>e.validate(t.value)).filter(t=>e.shouldAutoLink(t.value)).forEach(t=>{SQ(t.from,t.to,r.doc).some(t=>t.mark.type===e.type)||o.addMark(t.from,t.to,e.type.create({href:t.href}))})}}),o.steps.length)return o}})}function Pze(e){return new oJ({key:new lJ(`handleClickLink`),props:{handleClick:(t,n,r)=>{if(r.button!==0||!t.editable)return!1;let i=null;if(r.target instanceof HTMLAnchorElement)i=r.target;else{let t=r.target;if(!t)return!1;let n=e.editor.view.dom;i=t.closest(`a`),i&&!n.contains(i)&&(i=null)}if(!i)return!1;let a=!1;if(e.enableClickSelection&&(a=e.editor.commands.extendMarkRange(e.type.name)),e.openOnClick){let n=bQ(t.state,e.type.name),r=i.href??n.href,o=i.target??n.target;r&&(window.open(r,o),a=!0)}return a}}})}var Fze=/\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)$/,Ize=/\[([^[\]]+)\]\(((?:[^\s()]|\([^\s()]*\))+)(?:\s+(?:(["'])(.*?)\3|“(.*?)”|‘(.*?)’))?\)/g;function O0(e,t){let n=0;for(let r=t-1;r>=0&&e[r]===`\\`;--r)n+=1;return n%2==1}function Lze(e,t){let n=0,r=0;for(;r0}function k0(e,t,n){let[,r,i]=t;return(t.index?e[t.index-1]:void 0)===`!`||O0(e,t.index??0)||Lze(e,t.index??0)?!1:!!r.trim()&&n(i)}function A0(e){let[t,n,r,,i,a,o]=e,s=i??a??o;return{index:e.index??0,text:t,replaceWith:n,data:{href:r,title:s||null,markdown:!0}}}function Rze(e,t){return e.index{let n=Fze.exec(t);return!n||!k0(t,n,e.isAllowedHref)?null:A0(n)},type:e.type,getAttributes:j0});return new $Q({find:t.find,handler:e=>{let n=t.handler(e);return n!==null&&e.state.tr.steps.length&&e.state.tr.setMeta(`preventAutolink`,!0),n}})}function Bze(e){let t=p$({find:t=>{let n=[];for(let r of t.matchAll(Ize))k0(t,r,e.isAllowedHref)&&n.push(A0(r));let r=(e.findPlainUrls?.call(e,t)??[]).filter(e=>!n.some(t=>Rze(t,e)));return[...n,...r]},type:e.type,getAttributes:j0});return new r$({find:t.find,handler:e=>{let n=t.handler(e);return n!==null&&e.state.tr.steps.length&&e.match.data?.markdown&&e.state.tr.setMeta(`preventAutolink`,!0),n}})}function Vze(e){return new oJ({key:new lJ(`handlePasteLink`),props:{handlePaste:(t,n,r)=>{let{shouldAutoLink:i}=e,{state:a}=t,{selection:o}=a,{empty:s}=o;if(s)return!1;let c=``;r.content.forEach(e=>{c+=e.textContent});let l=E0(c,{defaultProtocol:e.defaultProtocol}).find(e=>e.isLink&&e.value===c);return!c||!l||i!==void 0&&!i(l.value)?!1:e.editor.commands.setMark(e.type,{href:l.href})}}})}function M0(e,t){let n=[`http`,`https`,`ftp`,`ftps`,`mailto`,`tel`,`callto`,`sms`,`cid`,`xmpp`];return t&&t.forEach(e=>{let t=typeof e==`string`?e:e.scheme;t&&n.push(t)}),!e||e.replace(jze,``).match(RegExp(`^(?:(?:${n.map(e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)).join(`|`)}):|[^a-z]|[a-z0-9+.\\-]+(?:[^a-z+.\\-:]|$))`,`i`))}var N0=n$.create({name:`link`,priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(e=>{if(typeof e==`string`){w0(e);return}w0(e.scheme,e.optionalSlashes)})},onDestroy(){Dze()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,markdownLinks:!1,autolink:!0,protocols:[],defaultProtocol:`http`,HTMLAttributes:{target:`_blank`,rel:`noopener noreferrer nofollow`,class:null},isAllowedUri:(e,t)=>!!M0(e,t.protocols),validate:e=>!!e,shouldAutoLink:e=>{let t=/^[a-z][a-z0-9+.-]*:\/\//i.test(e),n=/^[a-z][a-z0-9+.-]*:/i.test(e);if(t||n&&!e.includes(`@`))return!0;let r=(e.includes(`@`)?e.split(`@`).pop():e).split(/[/?#:]/)[0];return!(/^\d{1,3}(\.\d{1,3}){3}$/.test(r)||!/\./.test(r))}}},addAttributes(){return{href:{default:null,parseHTML(e){return e.getAttribute(`href`)}},target:{default:this.options.HTMLAttributes.target??null},rel:{default:this.options.HTMLAttributes.rel??null},class:{default:this.options.HTMLAttributes.class??null},title:{default:null}}},parseHTML(){return[{tag:`a[href]`,getAttrs:e=>{let t=e.getAttribute(`href`);return!t||!this.options.isAllowedUri(t,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:e}){return this.options.isAllowedUri(e.href,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?[`a`,dQ(this.options.HTMLAttributes,e),0]:[`a`,dQ(this.options.HTMLAttributes,{...e,href:``}),0]},markdownTokenName:`link`,parseMarkdown:(e,t)=>t.applyMark(`link`,t.parseInline(e.tokens||[]),{href:e.href,title:e.title||null}),renderMarkdown:(e,t)=>{let n=e.attrs?.href??``,r=e.attrs?.title??``,i=t.renderChildren(e);return r?`[${i}](${n} "${r}")`:`[${i}](${n})`},addCommands(){return{setLink:e=>({chain:t})=>{let{href:n}=e;return this.options.isAllowedUri(n,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?t().setMark(this.name,e).setMeta(`preventAutolink`,!0).run():!1},toggleLink:e=>({chain:t})=>{let{href:n}=e||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()},unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta(`preventAutolink`,!0).run()}},addInputRules(){return this.options.markdownLinks?[zze({type:this.type,isAllowedHref:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})})]:[]},addPasteRules(){let e=e=>{let t=[];if(e){let{protocols:n,defaultProtocol:r}=this.options;E0(e).filter(e=>e.isLink&&this.options.isAllowedUri(e.value,{defaultValidate:e=>!!M0(e,n),protocols:n,defaultProtocol:r})).forEach(e=>{this.options.shouldAutoLink(e.value)&&t.push({text:e.value,data:{href:e.href},index:e.start})})}return t};return this.options.markdownLinks?[Bze({type:this.type,isAllowedHref:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!M0(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol}),findPlainUrls:e})]:[p$({find:e,type:this.type,getAttributes:e=>({href:e.data?.href})})]},addProseMirrorPlugins(){let e=[],{protocols:t,defaultProtocol:n}=this.options;return this.options.autolink&&e.push(Nze({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:e=>this.options.isAllowedUri(e,{defaultValidate:e=>!!M0(e,t),protocols:t,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),e.push(Pze({type:this.type,editor:this.editor,openOnClick:this.options.openOnClick===`whenNotEditable`?!0:this.options.openOnClick,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&e.push(Vze({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),e}}),Hze=N0,Uze=`listItem`,P0=`textStyle`,F0=/^\s*([-+*])\s$/,I0=f$.create({name:`bulletList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul`}]},renderHTML({HTMLAttributes:e}){return[`ul`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>e.type!==`list`||e.ordered?[]:{type:`bulletList`,content:e.items?t.parseChildren(e.items):[]},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` +`):``,markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Uze,this.editor.getAttributes(P0)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let e=d$({find:F0,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(e=d$({find:F0,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(P0),editor:this.editor})),[e]}}),Wze=(e,t,n)=>{let{selection:r}=e;if(!r.empty)return null;let{$from:i}=r;if(!i.parent.isTextblock||i.parentOffset!==i.parent.content.size)return null;let a=-1;for(let e=i.depth;e>0;--e)if(i.node(e).type.name===t){a=e;break}if(a<0)return null;let o=i.node(a),s=i.index(a);if(s+1>=o.childCount)return null;let c=o.child(s+1);if(!n.includes(c.type.name))return null;let l=e.schema.nodes[t],u=!1;if(c.forEach(e=>{e.type===l&&e.childCount>1&&(u=!0)}),!u)return null;let d=e.doc.resolve(i.after()).nodeAfter;if(!d||!n.includes(d.type.name))return null;let f=[];return d.forEach(e=>{f.push(e)}),f.length===0?null:{listItemDepth:a,nestedList:d,nestedListPos:i.after(),insertPos:i.after(a),items:f}},Gze=(e,t,n,r)=>{let i=Wze(e,n,r);if(!i)return!1;let{selection:a}=e,{nestedList:o,nestedListPos:s,insertPos:c,items:l}=i,u=e.tr;u.delete(s,s+o.nodeSize);let d=u.mapping.map(c);return u.insert(d,tK.from(l)),u.setSelection(a.map(u.doc,u.mapping)),t&&t(u),!0},Kze=(e,t,n)=>Gze(e.state,e.view.dispatch,t,n),L0=(e,t)=>o$.create({name:`${e}BranchingDeleteKeymap`,priority:101,addKeyboardShortcuts(){let n=()=>Kze(this.editor,e,t);return{Delete:n,"Mod-Delete":n}}}),R0=[[1e3,`m`],[900,`cm`],[500,`d`],[400,`cd`],[100,`c`],[90,`xc`],[50,`l`],[40,`xl`],[10,`x`],[9,`ix`],[5,`v`],[4,`iv`],[1,`i`]],z0=`abcdefghijklmnopqrstuvwxyz`,B0=String.raw`\d+|[ivxlcdmIVXLCDM]+|${`[a-zA-Z]{1,2}`}`;function V0(e){let t=e,n=``;for(let[e,r]of R0)for(;t>=e;)n+=r,t-=e;return n}function H0(e){return V0(e).toUpperCase()}function U0(e){let t=e.toLowerCase(),n=0,r=0;for(;n0?t:1}let n=parseInt(e,10);return Number.isNaN(n)?1:n}function Yze(e,t){if(e===`numeric`)return String(t);switch(e){case`a`:return W0(t);case`A`:return W0(t).toUpperCase();case`i`:return V0(t);case`I`:return H0(t);default:return String(t)}}function Xze(e){if(e.length===0)return!1;let t=G0(e[0])??`numeric`,n=K0(e[0]);if(n<1)return!1;for(let r=0;r{if(e.type!==`list_item`)return[];let n=t.parseBlockChildren??t.parseChildren,r=[];if(e.tokens&&e.tokens.length>0){if(eBe(e))return{type:`listItem`,content:[{type:`paragraph`,content:tBe(e.text||``,t)}]};if(e.tokens.some(e=>e.type===`paragraph`))r=n(e.tokens);else{let i=e.tokens[0];if(i&&i.type===`text`&&i.tokens&&i.tokens.length>0){if(r=[{type:`paragraph`,content:t.parseInline(i.tokens)}],e.tokens.length>1){let t=n(e.tokens.slice(1));r.push(...t)}}else r=n(e.tokens)}}return r.length===0&&(r=[{type:`paragraph`,content:[]}]),{type:`listItem`,content:r}},renderMarkdown:(e,t,n)=>ZQ(e,t,e=>{if(e.parentType===`bulletList`)return`- `;if(e.parentType===`orderedList`){var t,n;let r=((t=e.meta)==null||(t=t.parentAttrs)==null?void 0:t.start)||1;return $ze((n=e.meta)==null||(n=n.parentAttrs)==null?void 0:n.type,r-1+(e.index||0),`. `)}return`- `},n,{alignNestedToPrefix:n?.parentType===`orderedList`}),addExtensions(){return[L0(this.name,[this.options.bulletListTypeName,this.options.orderedListTypeName])]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),J0=(e,t)=>{let{$from:n}=t.selection,r=kZ(e,t.schema),i=null,a=n.depth,o=n.pos,s=null;for(;a>0&&s===null;)i=n.node(a),i.type===r?s=a:(--a,--o);return s===null?null:{$pos:t.doc.resolve(o),depth:s}},Y0=(e,t)=>{let n=J0(e,t);if(!n)return!1;let[,r]=xIe(t,e,n.$pos.pos+4);return r},nBe=(e,t,n)=>{let{$anchor:r}=e.selection,i=Math.max(0,r.pos-2),a=e.doc.resolve(i).node();return!(!a||!n.includes(a.type.name))},X0=(e,t,n)=>{if(e.commands.undoInputRule())return!0;if(e.state.selection.from!==e.state.selection.to)return!1;if(!XZ(e.state,t)&&nBe(e.state,t,n)){let{$anchor:n}=e.state.selection,r=e.state.doc.resolve(n.before()-1),i=[];r.node().descendants((e,n)=>{e.type.name===t&&i.push({node:e,pos:n})});let a=i.at(-1);if(!a)return!1;let o=e.state.doc.resolve(r.start()+a.pos+1);return e.chain().cut({from:n.start()-1,to:n.end()+1},o.end()).joinForward().run()}if(!XZ(e.state,t)||!EIe(e.state))return!1;let{$from:r}=e.state.selection,i=r.depth-1;return r.node(i).type!==e.schema.nodes[t]||r.index(i)!==0?!1:e.chain().liftListItem(t).run()},rBe=(e,t)=>{let n=Y0(e,t),r=J0(e,t);return!r||!n?!1:n>r.depth},iBe=(e,t)=>{let n=Y0(e,t),r=J0(e,t);return!r||!n?!1:n{if(!XZ(e.state,t)||!TIe(e.state,t))return!1;let{selection:n}=e.state,{$from:r,$to:i}=n;return!n.empty&&r.sameParent(i)?!1:rBe(t,e.state)?e.chain().focus(e.state.selection.from+4).lift(t).joinBackward().run():iBe(t,e.state)?e.chain().joinForward().joinBackward().run():e.commands.joinItemForward()},aBe=(e,t,n)=>{let{state:r}=e,{selection:i}=r;if(!i.empty)return!1;let{$from:a}=i;if(a.parentOffset!==0||!a.parent.isTextblock||XZ(r,t))return!1;let o=SIe(a);if(!o||!n.includes(o.type.name))return!1;let s=o.lastChild;if(!s||s.type.name!==t)return!1;let c=a.parent;if(!s.canReplace(s.childCount,s.childCount,tK.from(c)))return!1;let l=a.before(),u=a.after(),d=l-2;return e.commands.command(({tr:e,dispatch:t})=>(t&&(e.delete(l,u).insert(d,tK.from(c)),e.setSelection(Kq.create(e.doc,d+1)),e.scrollIntoView()),!0))},Q0=o$.create({name:`listKeymap`,addOptions(){return{listTypes:[{itemName:`listItem`,wrapperNames:[`bulletList`,`orderedList`]},{itemName:`taskItem`,wrapperNames:[`taskList`]}]}},addKeyboardShortcuts(){return{Delete:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&Z0(e,n)&&(t=!0)}),t},"Mod-Delete":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n})=>{e.state.schema.nodes[n]!==void 0&&Z0(e,n)&&(t=!0)}),t},Backspace:({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&X0(e,n,r)&&(t=!0)}),t},"Mod-Backspace":({editor:e})=>{let t=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:r})=>{e.state.schema.nodes[n]!==void 0&&X0(e,n,r)&&(t=!0)}),t},Tab:({editor:e})=>{for(let{itemName:t,wrapperNames:n}of this.options.listTypes)if(e.state.schema.nodes[t]!==void 0&&aBe(e,t,n))return!0;return!1}}}}),$0=RegExp(`^(\\s*)(${B0})([.)])\\s+(.*)$`),oBe=/^\s/,e2={heading:/^#{1,6}(?:\s|$)/,bulletItem:/^[-+*]\s+/,codeFence:/^(?:```|~~~)/,blockMath:/^\$\$/,thematicBreak:/^(?:(?:-[ \t]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})$/};function sBe(e){return $0.test(e.trimStart())}function cBe(e){let t=e.trimStart();return e2.bulletItem.test(t)||sBe(t)||e2.heading.test(t)||e2.thematicBreak.test(t)&&!t.startsWith(`-`)||/^>\s?/.test(t)||e2.codeFence.test(t)||e2.blockMath.test(t)}function lBe(e){return Object.values(e2).some(t=>t.test(e))}function uBe(e){let t=[],n=[],r=!1;return e.forEach(e=>{if(r){n.push(e);return}if(e.trim()===``){r=!0,n.push(e);return}if(t.length>0&&cBe(e)){r=!0,n.push(e);return}t.push(e)}),{paragraphLines:t,blockLines:n}}function dBe(e){let t=[],n=0,r=0;for(;ne.trim().length>0);if(t.length===0)return null;let n=[];for(let e of t){let t=e.trim().match(fBe);if(!t)return null;n.push({marker:t[1],content:t[3]})}return Xze(n.map(e=>e.marker))?{type:`orderedList`,attrs:Qze(n[0].marker),content:n.map(e=>({type:`listItem`,content:[{type:`paragraph`,content:[{type:`text`,text:e.content}]}]}))}:null}function e2(e,t,n){let r=[],i=0;for(;ie.trim().length>0);if(t.length===0)return null;let n=[];for(let e of t){let t=e.trim().match(fBe);if(!t)return null;n.push({marker:t[1],content:t[3]})}return Xze(n.map(e=>e.marker))?{type:`orderedList`,attrs:Qze(n[0].marker),content:n.map(e=>({type:`listItem`,content:[{type:`paragraph`,content:[{type:`text`,text:e.content}]}]}))}:null}function t2(e,t,n){let r=[],i=0;for(;it;)f.push(e[d]),d+=1;if(f.length>0){let e=e2(f,Math.min(...f.map(e=>e.indent)),n);l.push({type:`list`,ordered:!0,start:f[0].number,typeMarker:f[0].type,items:e,raw:f.map(e=>e.raw).join(` -`)})}r.push({type:`list_item`,raw:a.raw,tokens:l}),i=d}else i+=1}return r}function mBe(e,t){return e.map(e=>{if(e.type!==`list_item`)return t.parseChildren([e])[0];let n=[];return e.tokens&&e.tokens.length>0&&e.tokens.forEach(e=>{if(e.type===`paragraph`||e.type===`list`||e.type===`blockquote`||e.type===`code`)n.push(...t.parseChildren([e]));else if(e.type===`text`&&e.tokens){let r=t.parseChildren([e]);n.push({type:`paragraph`,content:r})}else{let r=t.parseChildren([e]);r.length>0&&n.push(...r)}}),{type:`listItem`,content:n}})}var hBe=`listItem`,t2=`textStyle`,n2=/^(\d+)\.\s$/;function r2(e){let t=e.match(/list-style-type\s*:\s*([^;]+)/i);if(!t)return null;switch(t[1].trim().toLowerCase()){case`upper-roman`:return`I`;case`lower-roman`:return`i`;case`upper-alpha`:case`upper-latin`:return`A`;case`lower-alpha`:case`lower-latin`:return`a`;default:return null}}var i2=f$.create({name:`orderedList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:e=>e.hasAttribute(`start`)?parseInt(e.getAttribute(`start`)||``,10):1},type:{default:null,parseHTML:e=>{let t=e.getAttribute(`type`);if(t)return t;let n=e.getAttribute(`style`);if(n){let e=r2(n);if(e)return e}let r=e.querySelector(`li`);if(r){let e=r.getAttribute(`style`);if(e){let t=r2(e);if(t)return t}}return null}}}},parseHTML(){return[{tag:`ol`}]},renderHTML({HTMLAttributes:e}){let{start:t,type:n,...r}=e,i=dQ(this.options.HTMLAttributes,r);return t!==1&&(i.start=t),n&&n!==`1`&&(i.type=n),[`ol`,i,0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>{if(e.type!==`list`||!e.ordered)return[];let n=e.start||1,r=e.typeMarker,i=e.items?mBe(e.items,t):[],a={};return n!==1&&(a.start=n),r&&(a.type=r),Object.keys(a).length>0?{type:`orderedList`,attrs:a,content:i}:{type:`orderedList`,content:i}},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` +`).trim();if(u){let e=n.blockTokens(u);l.push(...e)}let d=i+1,f=[];for(;dt;)f.push(e[d]),d+=1;if(f.length>0){let e=t2(f,Math.min(...f.map(e=>e.indent)),n);l.push({type:`list`,ordered:!0,start:f[0].number,typeMarker:f[0].type,items:e,raw:f.map(e=>e.raw).join(` +`)})}r.push({type:`list_item`,raw:a.raw,tokens:l}),i=d}else i+=1}return r}function mBe(e,t){return e.map(e=>{if(e.type!==`list_item`)return t.parseChildren([e])[0];let n=[];return e.tokens&&e.tokens.length>0&&e.tokens.forEach(e=>{if(e.type===`paragraph`||e.type===`list`||e.type===`blockquote`||e.type===`code`)n.push(...t.parseChildren([e]));else if(e.type===`text`&&e.tokens){let r=t.parseChildren([e]);n.push({type:`paragraph`,content:r})}else{let r=t.parseChildren([e]);r.length>0&&n.push(...r)}}),{type:`listItem`,content:n}})}var hBe=`listItem`,n2=`textStyle`,r2=/^(\d+)\.\s$/;function i2(e){let t=e.match(/list-style-type\s*:\s*([^;]+)/i);if(!t)return null;switch(t[1].trim().toLowerCase()){case`upper-roman`:return`I`;case`lower-roman`:return`i`;case`upper-alpha`:case`upper-latin`:return`A`;case`lower-alpha`:case`lower-latin`:return`a`;default:return null}}var a2=f$.create({name:`orderedList`,addOptions(){return{itemTypeName:`listItem`,HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:`block list`,content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:e=>e.hasAttribute(`start`)?parseInt(e.getAttribute(`start`)||``,10):1},type:{default:null,parseHTML:e=>{let t=e.getAttribute(`type`);if(t)return t;let n=e.getAttribute(`style`);if(n){let e=i2(n);if(e)return e}let r=e.querySelector(`li`);if(r){let e=r.getAttribute(`style`);if(e){let t=i2(e);if(t)return t}}return null}}}},parseHTML(){return[{tag:`ol`}]},renderHTML({HTMLAttributes:e}){let{start:t,type:n,...r}=e,i=dQ(this.options.HTMLAttributes,r);return t!==1&&(i.start=t),n&&n!==`1`&&(i.type=n),[`ol`,i,0]},markdownTokenName:`list`,parseMarkdown:(e,t)=>{if(e.type!==`list`||!e.ordered)return[];let n=e.start||1,r=e.typeMarker,i=e.items?mBe(e.items,t):[],a={};return n!==1&&(a.start=n),r&&(a.type=r),Object.keys(a).length>0?{type:`orderedList`,attrs:a,content:i}:{type:`orderedList`,content:i}},renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` `):``,markdownTokenizer:{name:`orderedList`,level:`block`,start:()=>-1,tokenize:(e,t,n)=>{let r=e.split(` -`),[i,a]=dBe(r);if(i.length===0)return;let o=e2(i,i[0].indent,n);if(o.length!==0)return{type:`list`,ordered:!0,start:i[0]?.number||1,typeMarker:i[0]?.type,items:o,raw:r.slice(0,a).join(` -`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(hBe,this.editor.getAttributes(t2)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addProseMirrorPlugins(){return[new oJ({props:{handlePaste:(e,t)=>{if((t.clipboardData?.getData(`text/html`))?.trim())return!1;let n=t.clipboardData?.getData(`text/plain`);if(!n)return!1;let r=pBe(n);if(!r)return!1;try{let t=e.state.schema.nodeFromJSON(r),n=e.state.tr.replaceSelectionWith(t);return e.dispatch(n),!0}catch{return!1}}}})]},addInputRules(){let e=(e,t)=>(!t.attrs.type||t.attrs.type===`1`)&&t.childCount+t.attrs.start===+e[1],t=d$({find:n2,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:e});return(this.options.keepMarks||this.options.keepAttributes)&&(t=d$({find:n2,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(t2)}),joinPredicate:e,editor:this.editor})),[t]}}),gBe=/^\s*(\[([( |x])?\])\s$/,_Be=`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0`,vBe=(e,t,n)=>{var r;return(n==null||(r=n.checkboxLabel)==null?void 0:r.call(n,e,t))||`Task item checkbox for ${e.textContent||`empty task item`}`},yBe=f$.create({name:`taskItem`,addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:`taskList`,a11y:void 0}},content(){return this.options.nested?`paragraph block*`:`paragraph+`},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:e=>{let t=e.getAttribute(`data-checked`);return t===``||t===`true`},renderHTML:e=>({"data-checked":e.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51,contentElement:e=>e.querySelector(`div`)??e}]},renderHTML({node:e,HTMLAttributes:t}){return[`li`,dQ(this.options.HTMLAttributes,t,{"data-type":this.name}),[`label`,[`input`,{type:`checkbox`,checked:e.attrs.checked?`checked`:null}],[`span`]],[`div`,0]]},parseMarkdown:(e,t)=>{let n=[];if(e.tokens&&e.tokens.length>0?n.push(t.createNode(`paragraph`,{},t.parseInline(e.tokens))):e.text?n.push(t.createNode(`paragraph`,{},[t.createNode(`text`,{text:e.text})])):n.push(t.createNode(`paragraph`,{},[])),e.nestedTokens&&e.nestedTokens.length>0){let r=t.parseChildren(e.nestedTokens);n.push(...r)}return t.createNode(`taskItem`,{checked:e.checked||!1},n)},renderMarkdown:(e,t)=>ZQ(e,t,`- [${e.attrs?.checked?`x`:` `}] `),addExtensions(){return this.options.nested?[I0(this.name,[this.options.taskListTypeName])]:[]},addKeyboardShortcuts(){let e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:n,editor:r})=>{let i=document.createElement(`li`),a=document.createElement(`label`),o=document.createElement(`span`),s=document.createElement(`input`),c=document.createElement(`div`);o.style.cssText=_Be;let l=e=>{let t=vBe(e,e.attrs.checked,this.options.a11y);s.setAttribute(`aria-label`,t),o.textContent=t};l(e),a.contentEditable=`false`,s.type=`checkbox`,s.addEventListener(`mousedown`,e=>e.preventDefault()),s.addEventListener(`change`,t=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){s.checked=!s.checked;return}let{checked:i}=t.target;r.isEditable&&typeof n==`function`&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:e})=>{let t=n();if(typeof t!=`number`)return!1;let r=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...r?.attrs,checked:i}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([e,t])=>{i.setAttribute(e,t)}),i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,a.append(s,o),i.append(a,c),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)});let u=new Set(Object.keys(t));return{dom:i,contentDOM:c,update:e=>{if(e.type!==this.type)return!1;i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,l(e);let t=r.extensionManager.attributes,n=fQ(e,t),a=new Set(Object.keys(n)),o=this.options.HTMLAttributes;return u.forEach(e=>{a.has(e)||(e in o?i.setAttribute(e,o[e]):i.removeAttribute(e))}),Object.entries(n).forEach(([e,t])=>{t==null?e in o?i.setAttribute(e,o[e]):i.removeAttribute(e):i.setAttribute(e,t)}),u=a,!0}}}},addInputRules(){return[d$({find:gBe,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),bBe=f$.create({name:`taskList`,addOptions(){return{itemTypeName:`taskItem`,HTMLAttributes:{}}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return[`ul`,dQ(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},parseMarkdown:(e,t)=>t.createNode(`taskList`,{},t.parseChildren(e.items||[])),renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` -`):``,markdownTokenizer:{name:`taskList`,level:`block`,start(e){let t=e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;return t===void 0?-1:t},tokenize(e,t,n){let r=e=>{let t=JQ(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(t){let r={type:`taskList`,raw:t.raw,items:t.items},i=e.slice(t.raw.length);return i.trim()?[r,...n.blockTokens(i)]:[r]}return n.blockTokens(e)},i=JQ(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(i)return{type:`taskList`,raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});o$.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(F0.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(K0.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Z0.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(i2.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(yBe.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(bBe.configure(this.options.taskList)),e}});var a2=` `,o2=`\xA0`,xBe=f$.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,dQ(this.options.HTMLAttributes,e),0]},parseMarkdown:(e,t)=>{let n=e.tokens||[];if(n.length===1&&n[0].type===`image`)return t.parseChildren([n[0]]);let r=t.parseInline(n);return n.length===1&&n[0].type===`text`&&(n[0].raw===a2||n[0].text===a2||n[0].raw===o2||n[0].text===o2)&&r.length===1&&r[0].type===`text`&&(r[0].text===a2||r[0].text===o2)?t.createNode(`paragraph`,void 0,[]):t.createNode(`paragraph`,void 0,r)},renderMarkdown:(e,t,n)=>{if(!e)return``;let r=Array.isArray(e.content)?e.content:[];if(r.length===0){var i,a;let e=Array.isArray(n==null||(i=n.previousNode)==null?void 0:i.content)?n.previousNode.content:[];return(n==null||(a=n.previousNode)==null?void 0:a.type)===`paragraph`&&e.length===0?a2:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),SBe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,CBe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,wBe=n$.create({name:`strike`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`s`},{tag:`del`},{tag:`strike`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`line-through`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`s`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`del`,parseMarkdown:(e,t)=>t.applyMark(`strike`,t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>`~~${t.renderChildren(e)}~~`,addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[c$({find:SBe,type:this.type})]},addPasteRules(){return[p$({find:CBe,type:this.type})]}}),TBe=f$.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),s2=n$.create({name:`underline`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`u`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`underline`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`u`,dQ(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||`underline`,t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:`underline`,level:`inline`,start(e){return e.indexOf(`++`)},tokenize(e,t,n){let r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!r)return;let i=r[2].trim();return{type:`underline`,raw:r[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),EBe=s2;function DBe(e={}){return new oJ({view(t){return new OBe(t,e)}})}var OBe=class{constructor(e,t){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=t.width??1,this.color=t.color===!1?void 0:t.color||`black`,this.class=t.class,this.handlers=[`dragover`,`dragend`,`drop`,`dragleave`].map(t=>{let n=e=>{this[t](e)};return e.dom.addEventListener(t,n),{name:t,handler:n}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,n,r=this.editorView.dom,i=r.getBoundingClientRect(),a=i.width/r.offsetWidth,o=i.height/r.offsetHeight;if(t){let t=e.nodeBefore,r=e.nodeAfter;if(t||r){let e=this.editorView.nodeDOM(this.cursorPos-(t?t.nodeSize:0));if(e){let i=e.getBoundingClientRect(),a=t?i.bottom:i.top;t&&r&&(a=(a+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let s=this.width/2*o;n={left:i.left,right:i.right,top:a-s,bottom:a+s}}}}if(!n){let e=this.editorView.coordsAtPos(this.cursorPos),t=this.width/2*a;n={left:e.left-t,right:e.left+t,top:e.top,bottom:e.bottom}}let s=this.editorView.dom.offsetParent;this.element||(this.element=s.appendChild(document.createElement(`div`)),this.class&&(this.element.className=this.class),this.element.style.cssText=`position: absolute; z-index: 50; pointer-events: none;`,this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle(`prosemirror-dropcursor-block`,t),this.element.classList.toggle(`prosemirror-dropcursor-inline`,!t);let c,l;if(!s||s==document.body&&getComputedStyle(s).position==`static`)c=-pageXOffset,l=-pageYOffset;else{let e=s.getBoundingClientRect(),t=e.width/s.offsetWidth,n=e.height/s.offsetHeight;c=e.left-s.scrollLeft*t,l=e.top-s.scrollTop*n}this.element.style.left=(n.left-c)/a+`px`,this.element.style.top=(n.top-l)/o+`px`,this.element.style.width=(n.right-n.left)/a+`px`,this.element.style.height=(n.bottom-n.top)/o+`px`}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),n=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),r=n&&n.type.spec.disableDropCursor,i=typeof r==`function`?r(this.editorView,t,e):r;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=Dq(this.editorView.state.doc,e,this.editorView.dragging.slice);t!=null&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}},c2=class e extends Uq{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):Uq.near(r)}content(){return sK.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new kBe(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!ABe(e)||!jBe(e))return!1;let n=t.type.spec.allowGapCursor;if(n!=null)return n;let r=t.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(t,n,r=!1){search:for(;;){if(!r&&e.valid(t))return t;let i=t.pos,a=null;for(let r=t.depth;;r--){let o=t.node(r);if(n>0?t.indexAfter(r)0){a=o.child(n>0?t.indexAfter(r):t.index(r)-1);break}else if(r==0)return null;i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}for(;;){let o=n>0?a.firstChild:a.lastChild;if(!o){if(a.isAtom&&!a.isText&&!Jq.isSelectable(a)){t=t.doc.resolve(i+a.nodeSize*n),r=!1;continue search}break}a=o,i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}return null}}};c2.prototype.visible=!1,c2.findFrom=c2.findGapCursorFrom,Uq.jsonID(`gapcursor`,c2);var kBe=class e{constructor(e){this.pos=e}map(t){return new e(t.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return c2.valid(t)?new c2(t):Uq.near(t)}};function l2(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function ABe(e){for(let t=e.depth;t>=0;t--){let n=e.index(t),r=e.node(t);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n-1);;e=e.lastChild){if(e.childCount==0&&!e.inlineContent||l2(e.type))return!0;if(e.inlineContent)return!1}}return!0}function jBe(e){for(let t=e.depth;t>=0;t--){let n=e.indexAfter(t),r=e.node(t);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n);;e=e.firstChild){if(e.childCount==0&&!e.inlineContent||l2(e.type))return!0;if(e.inlineContent)return!1}}return!0}function MBe(){return new oJ({props:{decorations:IBe,createSelectionBetween(e,t,n){return t.pos==n.pos&&c2.valid(n)?new c2(n):null},handleClick:PBe,handleKeyDown:NBe,handleDOMEvents:{beforeinput:FBe}}})}var NBe=EZ({ArrowLeft:u2(`horiz`,-1),ArrowRight:u2(`horiz`,1),ArrowUp:u2(`vert`,-1),ArrowDown:u2(`vert`,1)});function u2(e,t){let n=e==`vert`?t>0?`down`:`up`:t>0?`right`:`left`;return function(e,r,i){let a=e.selection,o=t>0?a.$to:a.$from,s=a.empty;if(a instanceof Kq){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=c2.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new c2(c))),!0):!1}}function PBe(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!c2.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&Jq.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new c2(r))),!0)}function FBe(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof c2))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=tK.empty;for(let e=r.length-1;e>=0;e--)i=tK.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new sK(i,0,0));return a.setSelection(Kq.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function IBe(e){if(!(e.selection instanceof c2))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,$X.create(e.doc,[XX.widget(e.selection.head,t,{key:`gapcursor`})])}var d2=200,f2=function(){};f2.prototype.append=function(e){return e.length?(e=f2.from(e),!this.length&&e||e.length=t?f2.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},f2.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},f2.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},f2.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},f2.from=function(e){return e instanceof f2?e:e&&e.length?new p2(e):f2.empty};var p2=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return e==0&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i=n;i--)if(e(this.values[i],r+i)===!1)return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=d2)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=d2)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(f2);f2.empty=new p2([]);var LBe=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;if(t>i&&this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i)===!1||n=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(f2),RBe=500,m2=class e{constructor(e,t){this.items=e,this.eventCount=t}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,s,c,l=[],u=[];return this.items.forEach((t,n)=>{if(!t.step){i||(i=this.remapping(r,n+1),a=i.maps.length),a--,u.push(t);return}if(i){u.push(new h2(t.map));let e=t.step.map(i.slice(a)),n;e&&o.maybeStep(e).doc&&(n=o.mapping.maps[o.mapping.maps.length-1],l.push(new h2(n,void 0,void 0,l.length+u.length))),a--,n&&i.appendMap(n,a)}else o.maybeStep(t.step);if(t.selection)return s=i?t.selection.map(i.slice(a)):t.selection,c=new e(this.items.slice(0,r).append(u.reverse().concat(l)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:o,selection:s}}addTransform(t,n,r,i){let a=[],o=this.eventCount,s=this.items,c=!i&&s.length?s.get(s.length-1):null;for(let e=0;eBBe&&(s=zBe(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new aq;return this.items.forEach((t,r)=>{let i=t.mirrorOffset!=null&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(t){return this.eventCount==0?this:new e(this.items.append(t.map(e=>new h2(e))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},i);let c=n;this.items.forEach(e=>{let n=a.getMirror(--c);if(n==null)return;o=Math.min(o,n);let i=a.maps[n];if(e.step){let o=t.steps[n].invert(t.docs[n]),l=e.selection&&e.selection.map(a.slice(c+1,n));l&&s++,r.push(new h2(i,o,l))}else r.push(new h2(i))},i);let l=[];for(let e=n;eRBe&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((e,o)=>{if(o>=t)i.push(e),e.selection&&a++;else if(e.step){let t=e.step.map(n.slice(r)),o=t&&t.getMap();if(r--,o&&n.appendMap(o,r),t){let s=e.selection&&e.selection.map(n.slice(r));s&&a++;let c=new h2(o.invert(),t,s),l,u=i.length-1;(l=i.length&&i[u].merge(c))?i[u]=l:i.push(c)}}else e.map&&r--},this.items.length,0),new e(f2.from(i.reverse()),a)}};m2.empty=new m2(f2.empty,0);function zBe(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var h2=class e{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new e(n.getMap().invert(),n,this.selection)}}},g2=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},BBe=20;function VBe(e,t,n,r){let i=n.getMeta(S2),a;if(i)return i.historyState;n.getMeta(WBe)&&(e=new g2(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(S2))return o.getMeta(S2).redo?new g2(e.done.addTransform(n,void 0,r,x2(t)),e.undone,_2(n.mapping.maps),e.prevTime,e.prevComposition):new g2(e.done,e.undone.addTransform(n,void 0,r,x2(t)),null,e.prevTime,e.prevComposition);if(n.getMeta(`addToHistory`)!==!1&&!(o&&o.getMeta(`addToHistory`)===!1)){let i=n.getMeta(`composition`),a=e.prevTime==0||!o&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!HBe(n,e.prevRanges)),s=o?v2(e.prevRanges,n.mapping):_2(n.mapping.maps);return new g2(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,x2(t)),m2.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new g2(e.done.rebased(n,a),e.undone.rebased(n,a),v2(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new g2(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),v2(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function HBe(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i=t[i]&&(n=!0)}),n}function _2(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function v2(e,t){if(!e)return null;let n=[];for(let r=0;r{let i=S2.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=UBe(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var w2=C2(!1,!0),T2=C2(!0,!0);o$.create({name:`characterCount`,addOptions(){return{limit:null,autoTrim:!0,mode:`textSize`,textCounter:e=>e.length,wordCounter:e=>e.split(` `).filter(e=>e!==``).length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=e=>{let t=e?.node||this.editor.state.doc;if((e?.mode||this.options.mode)===`textSize`){let e=t.textBetween(0,t.content.size,void 0,` `);return this.options.textCounter(e)}return t.nodeSize},this.storage.words=e=>{let t=e?.node||this.editor.state.doc,n=t.textBetween(0,t.content.size,` `,` `);return this.options.wordCounter(n)}},addProseMirrorPlugins(){let e=!1;return[new oJ({key:new lJ(`characterCount`),appendTransaction:(t,n,r)=>{if(e)return;let i=this.options.limit,a=this.options.autoTrim;if(i==null||i===0||a===!1){e=!0;return}let o=this.storage.characters({node:r.doc});if(o>i){let t=o-i;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let n=r.tr.deleteRange(0,t);return e=!0,n}e=!0},filterTransaction:(e,t)=>{let n=this.options.limit;if(!e.docChanged||n===0||n==null)return!0;let r=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=n||r>n&&i>n&&i<=r)return!0;if(r>n&&i>n&&i>r||!e.getMeta(`paste`))return!1;let a=e.selection.$head.pos,o=a-(i-n),s=a;return e.deleteRange(o,s),!(this.storage.characters({node:e.doc})>n)}})]}});var KBe=o$.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[DBe(this.options)]}});o$.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return $X.create(e,[]);let o=0;this.options.mode===`deepest`&&e.descendants((e,t)=>{if(!e.isText){if(!(i>=t&&i<=t+e.nodeSize-1))return!1;o+=1}});let s=0;return e.descendants((e,t)=>{if(e.isText||!(i>=t&&i<=t+e.nodeSize-1))return!1;if(s+=1,this.options.mode===`deepest`&&o-s>0||this.options.mode===`shallowest`&&s>1)return this.options.mode===`deepest`;a.push(XX.node(t,t+e.nodeSize,{class:this.options.className}))}),$X.create(e,a)}}})]}});var qBe=o$.create({name:`gapCursor`,addProseMirrorPlugins(){return[MBe()]},extendNodeSchema(e){return{allowGapCursor:sQ(rQ(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),E2=`placeholder`,D2=new lJ(`tiptap__placeholder`);function O2(e){let{editor:t,placeholder:n,dataAttribute:r,pos:i,node:a,isEmptyDoc:o,hasAnchor:s,classes:{emptyNode:c,emptyEditor:l}}=e,u=[c];return o&&u.push(l),XX.node(i,i+a.nodeSize,{class:u.join(` `),[r]:typeof n==`function`?n({editor:t,node:a,pos:i,hasAnchor:s}):n})}function k2(e,t){return typeof e==`function`?e(t):e}function A2({editor:e,options:t,dataAttribute:n,doc:r,selection:i,from:a,to:o}){let{anchor:s}=i,c=[],l=e.isEmpty;return r.nodesBetween(a,o,(r,i)=>{let a=s>=i&&s<=i+r.nodeSize,o=!r.isLeaf&&OQ(r);return r.type.isTextblock&&(a||!t.showOnlyCurrent)&&o&&c.push(O2({editor:e,isEmptyDoc:l,dataAttribute:n,hasAnchor:a,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:k2(t.emptyNodeClass,{editor:e,node:r,pos:i,hasAnchor:a})},node:r,pos:i})),t.includeChildren}),c}function j2({editor:e,options:t,dataAttribute:n,doc:r,selection:i}){if(!(e.isEditable||!t.showOnlyWhenEditable))return null;let{anchor:a}=i,o=[],s=e.isEmpty;if(t.showOnlyCurrent&&!t.includeChildren){let i=r.resolve(a),c=i.depth>0?i.node(1):i.nodeAfter,l=i.depth>0?i.before(1):a;if(c&&c.type.isTextblock&&OQ(c)){let r=a>=l&&a<=l+c.nodeSize;o.push(O2({editor:e,isEmptyDoc:s,dataAttribute:n,hasAnchor:r,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:k2(t.emptyNodeClass,{editor:e,node:c,pos:l,hasAnchor:r})},node:c,pos:l}))}}else o.push(...A2({editor:e,options:t,dataAttribute:n,doc:r,selection:i,from:0,to:r.content.size}));return $X.create(r,o)}function M2(e,t){let n=e.resolve(t);if(n.depth===0){let e=n.nodeAfter??n.nodeBefore;if(!e)return{from:t,to:t};let r=n.nodeAfter?t:t-e.nodeSize;return{from:r,to:r+e.nodeSize}}let r=n.before(1);return{from:r,to:r+n.node(1).nodeSize}}function N2(e,t){return{from:Math.max(0,t.from-1),to:Math.min(e.content.size,t.to-1)}}function JBe(e,t,n){let r=[];return e.forEach((e,i)=>{let a=i,o=a+e.nodeSize,s=a+1,c=o+1;st&&r.push({from:a,to:o})}),r}function YBe(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>e.from-t.from),n=[{...t[0]}];for(let e=1;et.from?n.push(N2(e,M2(e,Math.min(t.to,e.content.size+1)-1))):t.frome.from>=t&&e.to<=c);l.length&&(s=s.remove(l));let u=A2({editor:n,options:r,dataAttribute:i,doc:a,selection:o,from:t,to:c});u.length&&(s=s.add(a,u))}return s}function eVe({editor:e,options:t,dataAttribute:n}){return{init(r,i){return j2({editor:e,options:t,dataAttribute:n,doc:i.doc,selection:i.selection})??$X.empty},apply(r,i,a,o){return!r.docChanged&&!r.selectionSet?i:$Be({decorations:i.map(r.mapping,r.doc),ranges:ZBe(r,a,o),editor:e,options:t,dataAttribute:n,doc:o.doc,selection:o.selection})}}}function tVe(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}function nVe({editor:e,options:t}){let n=t.dataAttribute?`data-${tVe(t.dataAttribute)}`:`data-${E2}`,r=t.showOnlyCurrent&&!t.includeChildren;return new oJ({key:D2,...r?{}:{state:eVe({editor:e,options:t,dataAttribute:n})},props:{decorations:r?({doc:r,selection:i})=>j2({editor:e,options:t,dataAttribute:n,doc:r,selection:i}):n=>t.showOnlyWhenEditable&&!e.isEditable?$X.empty:D2.getState(n)??$X.empty}})}o$.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:E2,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[nVe({editor:this.editor,options:this.options})]}});function P2(e,t){return!e.selection.empty&&!kQ(e.selection)&&t.isEditable}function rVe(e,t){return P2(e,t)&&!t.isFocused&&!t.view.dragging}function iVe(){var e;(e=window.getSelection())==null||e.removeAllRanges()}function aVe(e){e.focus()}o$.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new oJ({key:new lJ(`selection`),props:{decorations(n){return rVe(n,e)?$X.create(n.doc,[XX.inline(n.selection.from,n.selection.to,{class:t.className})]):null},handleDOMEvents:{blur(t){return P2(t.state,e)&&iVe(),!1},focus(t){return P2(t.state,e)&&requestAnimationFrame(()=>{!e.isDestroyed&&t.hasFocus()&&aVe(t)}),!1}}}})]}});function F2({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var oVe=o$.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new lJ(this.name),t=this.options.node||this.editor.schema.topNodeType.contentMatch.defaultType?.name||`paragraph`,n=Object.entries(this.editor.schema.nodes).map(([,e])=>e).filter(e=>(this.options.notAfter||[]).concat(t).includes(e.name));return[new oJ({key:e,appendTransaction:(n,r,i)=>{let{doc:a,tr:o,schema:s}=i,c=e.getState(i),l=a.content.size,u=s.nodes[t];if(!n.some(e=>e.getMeta(`skipTrailingNode`))&&c)return o.insert(l,u.create())},state:{init:(e,t)=>{let r=t.tr.doc.lastChild;return!F2({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!F2({node:r,types:n})}}})]}}),sVe=o$.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>w2(e,t),redo:()=>({state:e,dispatch:t})=>T2(e,t)}},addProseMirrorPlugins(){return[GBe(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),cVe=o$.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(JRe.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(URe.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(F0.configure(this.options.bulletList)),this.options.code!==!1&&e.push(ZRe.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(eze.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(tze.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(KBe.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(qBe.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(nze.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(rze.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(sVe.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(ize.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(lze.configure(this.options.italic)),this.options.listItem!==!1&&e.push(K0.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Z0.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(M0.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(i2.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(xBe.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(wBe.configure(this.options.strike)),this.options.text!==!1&&e.push(TBe.configure(this.options.text)),this.options.underline!==!1&&e.push(s2.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(oVe.configure(this.options?.trailingNode)),e}}),lVe=o$.create({name:`textAlign`,addOptions(){return{types:[],alignments:[`left`,`center`,`right`,`justify`],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>{let t=e.style.textAlign;return this.options.alignments.includes(t)?t:this.options.defaultAlignment},renderHTML:e=>e.textAlign?{style:`text-align: ${e.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.map(n=>t.updateAttributes(n,{textAlign:e})).some(e=>e):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.map(t=>e.resetAttributes(t,`textAlign`)).some(e=>e),toggleTextAlign:e=>({editor:t,commands:n})=>this.options.alignments.includes(e)?t.isActive({textAlign:e})?n.unsetTextAlign():n.setTextAlign(e):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign(`left`),"Mod-Shift-e":()=>this.editor.commands.setTextAlign(`center`),"Mod-Shift-r":()=>this.editor.commands.setTextAlign(`right`),"Mod-Shift-j":()=>this.editor.commands.setTextAlign(`justify`)}}}),uVe=20,I2=(e,t=0)=>{let n=[];return!e.children.length||t>uVe||Array.from(e.children).forEach(e=>{e.tagName===`SPAN`?n.push(e):e.children.length&&n.push(...I2(e,t+1))}),n},dVe=e=>{if(!e.children.length)return;let t=I2(e);t&&t.forEach(e=>{var t;let n=e.getAttribute(`style`),r=(t=e.parentElement)==null||(t=t.closest(`span`))==null?void 0:t.getAttribute(`style`);e.setAttribute(`style`,`${r};${n}`)})},L2=n$.create({name:`textStyle`,priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:`span`,consuming:!1,getAttrs:e=>e.hasAttribute(`style`)?(this.options.mergeNestedSpanStyles&&dVe(e),{}):!1}]},renderHTML({HTMLAttributes:e}){return[`span`,dQ(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleTextStyle:e=>({commands:t})=>t.toggleMark(this.name,e),removeEmptyTextStyle:()=>({tr:e})=>{let{selection:t}=e;return e.doc.nodesBetween(t.from,t.to,(t,n)=>{if(!t.isInline)return!0;t.marks.filter(e=>e.type===this.type).some(e=>Object.values(e.attrs).some(e=>!!e))||e.removeMark(n,n+t.nodeSize,this.type)}),!0}}}}),fVe=o$.create({name:`backgroundColor`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:e=>(KQ(e,`background-color`)??e.style.backgroundColor)?.replace(/['"]+/g,``),renderHTML:e=>e.backgroundColor?{style:`background-color: ${e.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:e=>({chain:t})=>t().setMark(`textStyle`,{backgroundColor:e}).run(),unsetBackgroundColor:()=>({chain:e})=>e().setMark(`textStyle`,{backgroundColor:null}).removeEmptyTextStyle().run()}}}),R2=o$.create({name:`color`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>(KQ(e,`color`)??e.style.color)?.replace(/['"]+/g,``),renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark(`textStyle`,{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark(`textStyle`,{color:null}).removeEmptyTextStyle().run()}}}),pVe=o$.create({name:`fontFamily`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>KQ(e,`font-family`)??e.style.fontFamily,renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:e=>({chain:t})=>t().setMark(`textStyle`,{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark(`textStyle`,{fontFamily:null}).removeEmptyTextStyle().run()}}}),mVe=o$.create({name:`fontSize`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>KQ(e,`font-size`)??e.style.fontSize,renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:e=>({chain:t})=>t().setMark(`textStyle`,{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark(`textStyle`,{fontSize:null}).removeEmptyTextStyle().run()}}}),hVe=o$.create({name:`lineHeight`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>KQ(e,`line-height`)??e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:e=>({chain:t})=>t().setMark(`textStyle`,{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().setMark(`textStyle`,{lineHeight:null}).removeEmptyTextStyle().run()}}});o$.create({name:`textStyleKit`,addExtensions(){let e=[];return this.options.backgroundColor!==!1&&e.push(fVe.configure(this.options.backgroundColor)),this.options.color!==!1&&e.push(R2.configure(this.options.color)),this.options.fontFamily!==!1&&e.push(pVe.configure(this.options.fontFamily)),this.options.fontSize!==!1&&e.push(mVe.configure(this.options.fontSize)),this.options.lineHeight!==!1&&e.push(hVe.configure(this.options.lineHeight)),this.options.textStyle!==!1&&e.push(L2.configure(this.options.textStyle)),e}});var gVe=R2,_Ve=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,vVe=f$.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,dQ(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?`![${n}](${t} "${r}")`:`![${n}](${t})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize,i=new Set([`src`,`width`,`height`]);return({node:a,getPos:o,HTMLAttributes:s,editor:c})=>{let l=document.createElement(`img`);l.draggable=!1;let u=dQ(this.options.HTMLAttributes,s);Object.entries(u).forEach(([e,t])=>{if(t!=null)switch(e){case`src`:case`width`:case`height`:break;default:l.setAttribute(e,t)}}),u.src!==null&&(l.src=u.src);let d={...s},f=e=>{if(typeof e==`string`&&e!==``){l.getAttribute(`src`)!==e&&(l.src=e);return}l.hasAttribute(`src`)&&l.removeAttribute(`src`),l.src!==``&&(l.src=``)};f(s.src);let p=new BLe({element:l,editor:c,node:a,getPos:o,onResize:(e,t)=>{l.style.width=`${e}px`,l.style.height=`${t}px`},onCommit:(e,t)=>{let n=o();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:e=>{if(e.type!==a.type)return!1;let t=fQ(e,c.extensionManager.attributes.filter(t=>t.type===e.type.name));return Object.keys(d).forEach(e=>{!i.has(e)&&!(e in t)&&l.removeAttribute(e)}),Object.entries(t).forEach(([e,t])=>{i.has(e)||(t==null?l.removeAttribute(e):l.setAttribute(e,t))}),f(t.src),d=t,!0},options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),m=p.dom,h=()=>{m.style.visibility=``,m.style.pointerEvents=``};return m.style.visibility=`hidden`,m.style.pointerEvents=`none`,l.complete&&l.naturalWidth>0?h():(l.onload=h,l.onerror=h),p}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[l$({find:_Ve,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function z2({content:e,onChange:t,placeholder:n}){let{t:r}=U(),i=IRe({extensions:[cVe.configure({heading:!1,codeBlock:!1,code:!1}),EBe,Hze.configure({openOnClick:!1,HTMLAttributes:{target:`_blank`,rel:`noopener noreferrer`}}),lVe.configure({types:[`paragraph`]}),L2,gVe,vVe.configure({HTMLAttributes:{style:`max-width: 100%; height: auto;`}})],content:e,onUpdate:({editor:e})=>{t(e.getHTML())},editorProps:{attributes:{class:`prose prose-invert prose-sm max-w-none focus:outline-none min-h-[120px] px-3 py-2`,placeholder:n||``}}});if(!i)return null;let a=({onClick:e,isActive:t=!1,children:n,title:r})=>(0,G.jsx)(`button`,{type:`button`,onClick:e,title:r,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary transition-colors ${t?`bg-bambu-dark-tertiary text-bambu-green`:`text-bambu-gray`}`,children:n});return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden bg-bambu-dark`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 p-1.5 border-b border-bambu-dark-tertiary bg-bambu-dark-secondary`,children:[(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive(`bold`),title:r(`richTextEditor.bold`),children:(0,G.jsx)(Jo,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive(`italic`),title:r(`richTextEditor.italic`),children:(0,G.jsx)(Gc,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive(`underline`),title:r(`richTextEditor.underline`),children:(0,G.jsx)(Ru,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive(`bulletList`),title:r(`richTextEditor.bulletList`),children:(0,G.jsx)(el,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleOrderedList().run(),isActive:i.isActive(`orderedList`),title:r(`richTextEditor.numberedList`),children:(0,G.jsx)(Qc,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`left`).run(),isActive:i.isActive({textAlign:`left`}),title:r(`richTextEditor.alignLeft`),children:(0,G.jsx)(ju,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`center`).run(),isActive:i.isActive({textAlign:`center`}),title:r(`richTextEditor.alignCenter`),children:(0,G.jsx)(ku,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`right`).run(),isActive:i.isActive({textAlign:`right`}),title:r(`richTextEditor.alignRight`),children:(0,G.jsx)(Au,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>{let e=window.prompt(`Enter URL:`);e&&i.chain().focus().setLink({href:e}).run()},isActive:i.isActive(`link`),title:r(`richTextEditor.addLink`),children:(0,G.jsx)(Zc,{className:`w-4 h-4`})}),i.isActive(`link`)&&(0,G.jsx)(a,{onClick:()=>i.chain().focus().unsetLink().run(),title:r(`richTextEditor.removeLink`),children:(0,G.jsx)(Bu,{className:`w-4 h-4`})})]}),(0,G.jsx)(E$,{editor:i})]})}function B2({archiveId:e,archiveName:t,onClose:n}){let r=co(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)({}),{data:u,isLoading:d,error:f}=K({queryKey:[`archive-project-page`,e],queryFn:()=>Z.getArchiveProjectPage(e)}),p=q({mutationFn:t=>Z.updateArchiveProjectPage(e,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`archive-project-page`,e]}),a(!1),l({})}});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(o===null?i?_():n():s(null))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[o,i,n]);let m=[...u?.model_pictures||[],...u?.profile_pictures||[]],h=()=>{l({title:u?.title||``,description:u?.description||``,designer:u?.designer||``,license:u?.license||``,profile_title:u?.profile_title||``,profile_description:u?.profile_description||``}),a(!0)},g=()=>{p.mutate(c)},_=()=>{a(!1),l({})},v=e=>JG.sanitize(e,{ALLOWED_TAGS:[`p`,`br`,`b`,`strong`,`i`,`em`,`u`,`a`,`ul`,`ol`,`li`,`figure`,`img`],ALLOWED_ATTR:[`href`,`src`,`target`,`rel`,`style`],ADD_ATTR:[`target`]}),b=u&&(u.title||u.description||u.designer||u.profile_title||m.length>0);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:e=>{e.target===e.currentTarget&&n()},children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Project Page`,t&&(0,G.jsxs)(`span`,{className:`text-bambu-gray ml-2`,children:[`- `,t]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!i&&b&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:h,children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-1`}),`Edit`]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:_,children:`Cancel`}),(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:g,disabled:p.isPending,children:[(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),`Save`]})]}),(0,G.jsx)(`button`,{onClick:n,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-6`,children:[d&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-2 border-bambu-green border-t-transparent`})}),f&&(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400 text-center py-12`,children:`Failed to load project page data`}),u&&!b&&(0,G.jsxs)(`div`,{className:`text-bambu-gray text-center py-12`,children:[(0,G.jsx)(fc,{className:`w-12 h-12 mx-auto mb-4 opacity-50`}),(0,G.jsx)(`p`,{children:`No project page data found in this 3MF file.`}),(0,G.jsx)(`p`,{className:`text-sm mt-2`,children:`Project pages are typically included in files downloaded from MakerWorld.`})]}),u&&b&&(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[i?(0,G.jsx)(`input`,{type:`text`,value:c.title||``,onChange:e=>l({...c,title:e.target.value}),placeholder:`Title`,className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-lg px-4 py-2 text-white text-xl font-semibold`}):u.title&&(0,G.jsx)(`h3`,{className:`text-xl font-semibold text-white`,children:u.title}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 text-sm`,children:[i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Hu,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c.designer||``,onChange:e=>l({...c,designer:e.target.value}),placeholder:`Designer`,className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white`})]}):u.designer&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Hu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.designer}),u.designer_user_id&&(0,G.jsx)(`a`,{href:`https://makerworld.com/en/@${u.designer_user_id}`,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline`,children:(0,G.jsx)(rc,{className:`w-3 h-3`})})]}),u.creation_date&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(as,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.creation_date})]}),i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c.license||``,onChange:e=>l({...c,license:e.target.value}),placeholder:`License`,className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white`})]}):u.license&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.license})]}),u.origin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-dark rounded text-bambu-gray`,children:u.origin})]})]}),(u.description||i)&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide`,children:`Description`}),i?(0,G.jsx)(z2,{content:c.description||``,onChange:e=>l({...c,description:e}),placeholder:`Enter description...`}):(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none text-bambu-gray-light`,dangerouslySetInnerHTML:{__html:v(u.description||``)}})]}),(u.profile_title||u.profile_description||i)&&(0,G.jsxs)(`div`,{className:`space-y-2 p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide`,children:`Print Profile`}),i?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:c.profile_title||``,onChange:e=>l({...c,profile_title:e.target.value}),placeholder:`Profile Title`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-white`}),(0,G.jsx)(z2,{content:c.profile_description||``,onChange:e=>l({...c,profile_description:e}),placeholder:`Profile description...`})]}):(0,G.jsxs)(G.Fragment,{children:[u.profile_title&&(0,G.jsx)(`p`,{className:`text-white font-medium`,children:u.profile_title}),u.profile_description&&(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none text-bambu-gray-light`,dangerouslySetInnerHTML:{__html:v(u.profile_description)}}),u.profile_user_name&&(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`by `,u.profile_user_name]})]})]}),m.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide flex items-center gap-2`,children:[(0,G.jsx)(Hc,{className:`w-4 h-4`}),`Images (`,m.length,`)`]}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2`,children:m.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>s(t),className:`aspect-square rounded-lg overflow-hidden border border-bambu-dark-tertiary hover:border-bambu-green transition-colors`,children:(0,G.jsx)(`img`,{src:vd(e.url),alt:e.name,className:`w-full h-full object-cover`})},e.path))})]}),u.design_model_id&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`a`,{href:`https://makerworld.com/en/models/${u.design_model_id}`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-2 text-bambu-green hover:underline`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`View on MakerWorld`]})})]})]})]}),o!==null&&m[o]&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-60`,onClick:()=>s(null),children:[(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),s(Math.max(0,o-1))},disabled:o===0,className:`absolute left-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30`,children:(0,G.jsx)(hs,{className:`w-6 h-6 text-white`})}),(0,G.jsx)(`img`,{src:vd(m[o].url),alt:m[o].name,className:`max-w-[90vw] max-h-[90vh] object-contain`,onClick:e=>e.stopPropagation()}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),s(Math.min(m.length-1,o+1))},disabled:o===m.length-1,className:`absolute right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30`,children:(0,G.jsx)(ms,{className:`w-6 h-6 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>s(null),className:`absolute top-4 right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-6 h-6 text-white`})}),(0,G.jsxs)(`div`,{className:`absolute bottom-4 text-white text-sm`,children:[o+1,` / `,m.length]})]})]})}var yVe=[.25,.5,.75,1,1.5,2,3,4];function bVe({archiveId:e,timelapseSrc:t,onClose:n,onSave:r}){let{showToast:i}=qd(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(0),[d,f]=(0,y.useState)(0),[p,m]=(0,y.useState)(0),[h,g]=(0,y.useState)(0),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(.8),[E,D]=(0,y.useState)(!1),{data:O,isLoading:k}=K({queryKey:[`timelapse-info`,e],queryFn:()=>Z.getTimelapseInfo(e)}),{data:A}=K({queryKey:[`timelapse-thumbnails`,e],queryFn:()=>Z.getTimelapseThumbnails(e,15)}),j=q({mutationFn:()=>Z.processTimelapse(e,{trimStart:p,trimEnd:h,speed:_,saveMode:`replace`},b||void 0),onSuccess:e=>{i(e.message,`success`),r?.(),n()},onError:e=>{i(e.message||`Processing failed`,`error`)}});(0,y.useEffect)(()=>{O?.duration&&h===0&&g(O.duration)},[O?.duration,h]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,y.useEffect)(()=>{let e=a.current;if(!e)return;let t=()=>{let t=e.currentTime;u(t),t>=h&&(e.currentTime=p)},n=()=>{f(e.duration),h===0&&g(e.duration)},r=()=>c(!0),i=()=>c(!1);return e.addEventListener(`timeupdate`,t),e.addEventListener(`durationchange`,n),e.addEventListener(`play`,r),e.addEventListener(`pause`,i),()=>{e.removeEventListener(`timeupdate`,t),e.removeEventListener(`durationchange`,n),e.removeEventListener(`play`,r),e.removeEventListener(`pause`,i)}},[p,h]),(0,y.useEffect)(()=>{let e=o.current,t=a.current;!e||!t||!S||(e.currentTime=t.currentTime,e.playbackRate=t.playbackRate,s&&!E?e.play().catch(()=>{}):e.pause())},[s,S,E]),(0,y.useEffect)(()=>{o.current&&(o.current.volume=E?0:w)},[w,E]),(0,y.useEffect)(()=>{a.current&&(a.current.playbackRate=_),o.current&&(o.current.playbackRate=_)},[_]);let M=(0,y.useCallback)(()=>{let e=a.current;e&&(s?e.pause():(e.currentTime{let t=a.current;t&&(t.currentTime=Math.max(p,Math.min(h,e)))},P=e=>{let t=e.target.files?.[0];t&&(S&&URL.revokeObjectURL(S),x(t),C(URL.createObjectURL(t)))},F=()=>{S&&URL.revokeObjectURL(S),x(null),C(null)};(0,y.useEffect)(()=>()=>{S&&URL.revokeObjectURL(S)},[S]);let I=h-p,L=I/_;return k?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-white`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin`}),`Loading video info...`]})}):(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl max-w-5xl w-full mx-4 max-h-[90vh] overflow-hidden flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(mc,{className:`w-5 h-5 text-bambu-green`}),`Edit Timelapse`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>j.mutate(),disabled:j.isPending,children:j.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),`Processing...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),`Save`]})}),(0,G.jsx)(`button`,{onClick:n,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`video`,{ref:a,src:t,className:`w-full rounded-lg bg-black`,onClick:M,muted:!!S}),!s&&(0,G.jsx)(`button`,{onClick:M,className:`absolute inset-0 flex items-center justify-center bg-black/30 hover:bg-black/40 transition-colors`,children:(0,G.jsx)(`div`,{className:`p-4 bg-bambu-green rounded-full`,children:(0,G.jsx)(Nl,{className:`w-8 h-8 text-white`})})}),S&&(0,G.jsx)(`audio`,{ref:o,src:S,loop:!0})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Zl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:`Trim`}),(0,G.jsxs)(`span`,{className:`ml-auto`,children:[dp(p),` - `,dp(h),` (`,dp(I),`)`]})]}),(0,G.jsxs)(`div`,{className:`relative h-16 bg-bambu-dark rounded-lg overflow-hidden`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex`,children:A?.thumbnails.map((e,t)=>(0,G.jsx)(`div`,{className:`flex-1 bg-cover bg-center`,style:{backgroundImage:`url(data:image/jpeg;base64,${e})`}},t))}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-black/60`,style:{width:`${p/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 right-0 bg-black/60`,style:{width:`${(d-h)/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 border-2 border-bambu-green`,style:{left:`${p/d*100}%`,right:`${(d-h)/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 w-0.5 bg-white shadow-lg`,style:{left:`${l/d*100}%`}}),(0,G.jsx)(`input`,{type:`range`,min:0,max:d,step:.1,value:p,onChange:e=>{let t=parseFloat(e.target.value);t{let t=parseFloat(e.target.value);t>p+1&&g(t)},className:`absolute inset-0 w-full opacity-0 cursor-ew-resize`,style:{clipPath:`inset(0 0 0 50%)`}})]}),(0,G.jsx)(`input`,{type:`range`,min:0,max:d,step:.1,value:l,onChange:e=>N(parseFloat(e.target.value)),className:`w-full h-1 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer +`),[i,a]=dBe(r);if(i.length===0)return;let o=t2(i,i[0].indent,n);if(o.length!==0)return{type:`list`,ordered:!0,start:i[0]?.number||1,typeMarker:i[0]?.type,items:o,raw:r.slice(0,a).join(` +`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(hBe,this.editor.getAttributes(n2)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addProseMirrorPlugins(){return[new oJ({props:{handlePaste:(e,t)=>{if((t.clipboardData?.getData(`text/html`))?.trim())return!1;let n=t.clipboardData?.getData(`text/plain`);if(!n)return!1;let r=pBe(n);if(!r)return!1;try{let t=e.state.schema.nodeFromJSON(r),n=e.state.tr.replaceSelectionWith(t);return e.dispatch(n),!0}catch{return!1}}}})]},addInputRules(){let e=(e,t)=>(!t.attrs.type||t.attrs.type===`1`)&&t.childCount+t.attrs.start===+e[1],t=d$({find:r2,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:e});return(this.options.keepMarks||this.options.keepAttributes)&&(t=d$({find:r2,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(n2)}),joinPredicate:e,editor:this.editor})),[t]}}),gBe=/^\s*(\[([( |x])?\])\s$/,_Be=`position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0`,vBe=(e,t,n)=>{var r;return(n==null||(r=n.checkboxLabel)==null?void 0:r.call(n,e,t))||`Task item checkbox for ${e.textContent||`empty task item`}`},yBe=f$.create({name:`taskItem`,addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:`taskList`,a11y:void 0}},content(){return this.options.nested?`paragraph block*`:`paragraph+`},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:e=>{let t=e.getAttribute(`data-checked`);return t===``||t===`true`},renderHTML:e=>({"data-checked":e.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51,contentElement:e=>e.querySelector(`div`)??e}]},renderHTML({node:e,HTMLAttributes:t}){return[`li`,dQ(this.options.HTMLAttributes,t,{"data-type":this.name}),[`label`,[`input`,{type:`checkbox`,checked:e.attrs.checked?`checked`:null}],[`span`]],[`div`,0]]},parseMarkdown:(e,t)=>{let n=[];if(e.tokens&&e.tokens.length>0?n.push(t.createNode(`paragraph`,{},t.parseInline(e.tokens))):e.text?n.push(t.createNode(`paragraph`,{},[t.createNode(`text`,{text:e.text})])):n.push(t.createNode(`paragraph`,{},[])),e.nestedTokens&&e.nestedTokens.length>0){let r=t.parseChildren(e.nestedTokens);n.push(...r)}return t.createNode(`taskItem`,{checked:e.checked||!1},n)},renderMarkdown:(e,t)=>ZQ(e,t,`- [${e.attrs?.checked?`x`:` `}] `),addExtensions(){return this.options.nested?[L0(this.name,[this.options.taskListTypeName])]:[]},addKeyboardShortcuts(){let e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:n,editor:r})=>{let i=document.createElement(`li`),a=document.createElement(`label`),o=document.createElement(`span`),s=document.createElement(`input`),c=document.createElement(`div`);o.style.cssText=_Be;let l=e=>{let t=vBe(e,e.attrs.checked,this.options.a11y);s.setAttribute(`aria-label`,t),o.textContent=t};l(e),a.contentEditable=`false`,s.type=`checkbox`,s.addEventListener(`mousedown`,e=>e.preventDefault()),s.addEventListener(`change`,t=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){s.checked=!s.checked;return}let{checked:i}=t.target;r.isEditable&&typeof n==`function`&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:e})=>{let t=n();if(typeof t!=`number`)return!1;let r=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...r?.attrs,checked:i}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([e,t])=>{i.setAttribute(e,t)}),i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,a.append(s,o),i.append(a,c),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)});let u=new Set(Object.keys(t));return{dom:i,contentDOM:c,update:e=>{if(e.type!==this.type)return!1;i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,l(e);let t=r.extensionManager.attributes,n=fQ(e,t),a=new Set(Object.keys(n)),o=this.options.HTMLAttributes;return u.forEach(e=>{a.has(e)||(e in o?i.setAttribute(e,o[e]):i.removeAttribute(e))}),Object.entries(n).forEach(([e,t])=>{t==null?e in o?i.setAttribute(e,o[e]):i.removeAttribute(e):i.setAttribute(e,t)}),u=a,!0}}}},addInputRules(){return[d$({find:gBe,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),bBe=f$.create({name:`taskList`,addOptions(){return{itemTypeName:`taskItem`,HTMLAttributes:{}}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return[`ul`,dQ(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},parseMarkdown:(e,t)=>t.createNode(`taskList`,{},t.parseChildren(e.items||[])),renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,` +`):``,markdownTokenizer:{name:`taskList`,level:`block`,start(e){let t=e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;return t===void 0?-1:t},tokenize(e,t,n){let r=e=>{let t=JQ(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(t){let r={type:`taskList`,raw:t.raw,items:t.items},i=e.slice(t.raw.length);return i.trim()?[r,...n.blockTokens(i)]:[r]}return n.blockTokens(e)},i=JQ(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(i)return{type:`taskList`,raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});o$.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(I0.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(q0.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Q0.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(a2.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(yBe.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(bBe.configure(this.options.taskList)),e}});var o2=` `,s2=`\xA0`,xBe=f$.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,dQ(this.options.HTMLAttributes,e),0]},parseMarkdown:(e,t)=>{let n=e.tokens||[];if(n.length===1&&n[0].type===`image`)return t.parseChildren([n[0]]);let r=t.parseInline(n);return n.length===1&&n[0].type===`text`&&(n[0].raw===o2||n[0].text===o2||n[0].raw===s2||n[0].text===s2)&&r.length===1&&r[0].type===`text`&&(r[0].text===o2||r[0].text===s2)?t.createNode(`paragraph`,void 0,[]):t.createNode(`paragraph`,void 0,r)},renderMarkdown:(e,t,n)=>{if(!e)return``;let r=Array.isArray(e.content)?e.content:[];if(r.length===0){var i,a;let e=Array.isArray(n==null||(i=n.previousNode)==null?void 0:i.content)?n.previousNode.content:[];return(n==null||(a=n.previousNode)==null?void 0:a.type)===`paragraph`&&e.length===0?o2:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),SBe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,CBe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,wBe=n$.create({name:`strike`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`s`},{tag:`del`},{tag:`strike`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`line-through`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`s`,dQ(this.options.HTMLAttributes,e),0]},markdownTokenName:`del`,parseMarkdown:(e,t)=>t.applyMark(`strike`,t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>`~~${t.renderChildren(e)}~~`,addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[c$({find:SBe,type:this.type})]},addPasteRules(){return[p$({find:CBe,type:this.type})]}}),TBe=f$.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),c2=n$.create({name:`underline`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`u`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`underline`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`u`,dQ(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||`underline`,t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:`underline`,level:`inline`,start(e){return e.indexOf(`++`)},tokenize(e,t,n){let r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!r)return;let i=r[2].trim();return{type:`underline`,raw:r[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),EBe=c2;function DBe(e={}){return new oJ({view(t){return new OBe(t,e)}})}var OBe=class{constructor(e,t){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=t.width??1,this.color=t.color===!1?void 0:t.color||`black`,this.class=t.class,this.handlers=[`dragover`,`dragend`,`drop`,`dragleave`].map(t=>{let n=e=>{this[t](e)};return e.dom.addEventListener(t,n),{name:t,handler:n}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,n,r=this.editorView.dom,i=r.getBoundingClientRect(),a=i.width/r.offsetWidth,o=i.height/r.offsetHeight;if(t){let t=e.nodeBefore,r=e.nodeAfter;if(t||r){let e=this.editorView.nodeDOM(this.cursorPos-(t?t.nodeSize:0));if(e){let i=e.getBoundingClientRect(),a=t?i.bottom:i.top;t&&r&&(a=(a+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let s=this.width/2*o;n={left:i.left,right:i.right,top:a-s,bottom:a+s}}}}if(!n){let e=this.editorView.coordsAtPos(this.cursorPos),t=this.width/2*a;n={left:e.left-t,right:e.left+t,top:e.top,bottom:e.bottom}}let s=this.editorView.dom.offsetParent;this.element||(this.element=s.appendChild(document.createElement(`div`)),this.class&&(this.element.className=this.class),this.element.style.cssText=`position: absolute; z-index: 50; pointer-events: none;`,this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle(`prosemirror-dropcursor-block`,t),this.element.classList.toggle(`prosemirror-dropcursor-inline`,!t);let c,l;if(!s||s==document.body&&getComputedStyle(s).position==`static`)c=-pageXOffset,l=-pageYOffset;else{let e=s.getBoundingClientRect(),t=e.width/s.offsetWidth,n=e.height/s.offsetHeight;c=e.left-s.scrollLeft*t,l=e.top-s.scrollTop*n}this.element.style.left=(n.left-c)/a+`px`,this.element.style.top=(n.top-l)/o+`px`,this.element.style.width=(n.right-n.left)/a+`px`,this.element.style.height=(n.bottom-n.top)/o+`px`}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),n=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),r=n&&n.type.spec.disableDropCursor,i=typeof r==`function`?r(this.editorView,t,e):r;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=Dq(this.editorView.state.doc,e,this.editorView.dragging.slice);t!=null&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}},l2=class e extends Uq{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):Uq.near(r)}content(){return sK.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new kBe(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!ABe(e)||!jBe(e))return!1;let n=t.type.spec.allowGapCursor;if(n!=null)return n;let r=t.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(t,n,r=!1){search:for(;;){if(!r&&e.valid(t))return t;let i=t.pos,a=null;for(let r=t.depth;;r--){let o=t.node(r);if(n>0?t.indexAfter(r)0){a=o.child(n>0?t.indexAfter(r):t.index(r)-1);break}else if(r==0)return null;i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}for(;;){let o=n>0?a.firstChild:a.lastChild;if(!o){if(a.isAtom&&!a.isText&&!Jq.isSelectable(a)){t=t.doc.resolve(i+a.nodeSize*n),r=!1;continue search}break}a=o,i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}return null}}};l2.prototype.visible=!1,l2.findFrom=l2.findGapCursorFrom,Uq.jsonID(`gapcursor`,l2);var kBe=class e{constructor(e){this.pos=e}map(t){return new e(t.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return l2.valid(t)?new l2(t):Uq.near(t)}};function u2(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function ABe(e){for(let t=e.depth;t>=0;t--){let n=e.index(t),r=e.node(t);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n-1);;e=e.lastChild){if(e.childCount==0&&!e.inlineContent||u2(e.type))return!0;if(e.inlineContent)return!1}}return!0}function jBe(e){for(let t=e.depth;t>=0;t--){let n=e.indexAfter(t),r=e.node(t);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n);;e=e.firstChild){if(e.childCount==0&&!e.inlineContent||u2(e.type))return!0;if(e.inlineContent)return!1}}return!0}function MBe(){return new oJ({props:{decorations:IBe,createSelectionBetween(e,t,n){return t.pos==n.pos&&l2.valid(n)?new l2(n):null},handleClick:PBe,handleKeyDown:NBe,handleDOMEvents:{beforeinput:FBe}}})}var NBe=EZ({ArrowLeft:d2(`horiz`,-1),ArrowRight:d2(`horiz`,1),ArrowUp:d2(`vert`,-1),ArrowDown:d2(`vert`,1)});function d2(e,t){let n=e==`vert`?t>0?`down`:`up`:t>0?`right`:`left`;return function(e,r,i){let a=e.selection,o=t>0?a.$to:a.$from,s=a.empty;if(a instanceof Kq){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=l2.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new l2(c))),!0):!1}}function PBe(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!l2.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&Jq.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new l2(r))),!0)}function FBe(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof l2))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=tK.empty;for(let e=r.length-1;e>=0;e--)i=tK.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new sK(i,0,0));return a.setSelection(Kq.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function IBe(e){if(!(e.selection instanceof l2))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,$X.create(e.doc,[XX.widget(e.selection.head,t,{key:`gapcursor`})])}var f2=200,p2=function(){};p2.prototype.append=function(e){return e.length?(e=p2.from(e),!this.length&&e||e.length=t?p2.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},p2.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},p2.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},p2.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},p2.from=function(e){return e instanceof p2?e:e&&e.length?new m2(e):p2.empty};var m2=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return e==0&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i=n;i--)if(e(this.values[i],r+i)===!1)return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=f2)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=f2)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(p2);p2.empty=new m2([]);var LBe=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;if(t>i&&this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i)===!1||n=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(p2),RBe=500,h2=class e{constructor(e,t){this.items=e,this.eventCount=t}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,s,c,l=[],u=[];return this.items.forEach((t,n)=>{if(!t.step){i||(i=this.remapping(r,n+1),a=i.maps.length),a--,u.push(t);return}if(i){u.push(new g2(t.map));let e=t.step.map(i.slice(a)),n;e&&o.maybeStep(e).doc&&(n=o.mapping.maps[o.mapping.maps.length-1],l.push(new g2(n,void 0,void 0,l.length+u.length))),a--,n&&i.appendMap(n,a)}else o.maybeStep(t.step);if(t.selection)return s=i?t.selection.map(i.slice(a)):t.selection,c=new e(this.items.slice(0,r).append(u.reverse().concat(l)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:o,selection:s}}addTransform(t,n,r,i){let a=[],o=this.eventCount,s=this.items,c=!i&&s.length?s.get(s.length-1):null;for(let e=0;eBBe&&(s=zBe(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new aq;return this.items.forEach((t,r)=>{let i=t.mirrorOffset!=null&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(t){return this.eventCount==0?this:new e(this.items.append(t.map(e=>new g2(e))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},i);let c=n;this.items.forEach(e=>{let n=a.getMirror(--c);if(n==null)return;o=Math.min(o,n);let i=a.maps[n];if(e.step){let o=t.steps[n].invert(t.docs[n]),l=e.selection&&e.selection.map(a.slice(c+1,n));l&&s++,r.push(new g2(i,o,l))}else r.push(new g2(i))},i);let l=[];for(let e=n;eRBe&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((e,o)=>{if(o>=t)i.push(e),e.selection&&a++;else if(e.step){let t=e.step.map(n.slice(r)),o=t&&t.getMap();if(r--,o&&n.appendMap(o,r),t){let s=e.selection&&e.selection.map(n.slice(r));s&&a++;let c=new g2(o.invert(),t,s),l,u=i.length-1;(l=i.length&&i[u].merge(c))?i[u]=l:i.push(c)}}else e.map&&r--},this.items.length,0),new e(p2.from(i.reverse()),a)}};h2.empty=new h2(p2.empty,0);function zBe(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var g2=class e{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new e(n.getMap().invert(),n,this.selection)}}},_2=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},BBe=20;function VBe(e,t,n,r){let i=n.getMeta(C2),a;if(i)return i.historyState;n.getMeta(WBe)&&(e=new _2(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(C2))return o.getMeta(C2).redo?new _2(e.done.addTransform(n,void 0,r,S2(t)),e.undone,v2(n.mapping.maps),e.prevTime,e.prevComposition):new _2(e.done,e.undone.addTransform(n,void 0,r,S2(t)),null,e.prevTime,e.prevComposition);if(n.getMeta(`addToHistory`)!==!1&&!(o&&o.getMeta(`addToHistory`)===!1)){let i=n.getMeta(`composition`),a=e.prevTime==0||!o&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!HBe(n,e.prevRanges)),s=o?y2(e.prevRanges,n.mapping):v2(n.mapping.maps);return new _2(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,S2(t)),h2.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new _2(e.done.rebased(n,a),e.undone.rebased(n,a),y2(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new _2(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),y2(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function HBe(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i=t[i]&&(n=!0)}),n}function v2(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function y2(e,t){if(!e)return null;let n=[];for(let r=0;r{let i=C2.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=UBe(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var T2=w2(!1,!0),E2=w2(!0,!0);o$.create({name:`characterCount`,addOptions(){return{limit:null,autoTrim:!0,mode:`textSize`,textCounter:e=>e.length,wordCounter:e=>e.split(` `).filter(e=>e!==``).length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=e=>{let t=e?.node||this.editor.state.doc;if((e?.mode||this.options.mode)===`textSize`){let e=t.textBetween(0,t.content.size,void 0,` `);return this.options.textCounter(e)}return t.nodeSize},this.storage.words=e=>{let t=e?.node||this.editor.state.doc,n=t.textBetween(0,t.content.size,` `,` `);return this.options.wordCounter(n)}},addProseMirrorPlugins(){let e=!1;return[new oJ({key:new lJ(`characterCount`),appendTransaction:(t,n,r)=>{if(e)return;let i=this.options.limit,a=this.options.autoTrim;if(i==null||i===0||a===!1){e=!0;return}let o=this.storage.characters({node:r.doc});if(o>i){let t=o-i;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let n=r.tr.deleteRange(0,t);return e=!0,n}e=!0},filterTransaction:(e,t)=>{let n=this.options.limit;if(!e.docChanged||n===0||n==null)return!0;let r=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=n||r>n&&i>n&&i<=r)return!0;if(r>n&&i>n&&i>r||!e.getMeta(`paste`))return!1;let a=e.selection.$head.pos,o=a-(i-n),s=a;return e.deleteRange(o,s),!(this.storage.characters({node:e.doc})>n)}})]}});var KBe=o$.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[DBe(this.options)]}});o$.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new oJ({key:new lJ(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return $X.create(e,[]);let o=0;this.options.mode===`deepest`&&e.descendants((e,t)=>{if(!e.isText){if(!(i>=t&&i<=t+e.nodeSize-1))return!1;o+=1}});let s=0;return e.descendants((e,t)=>{if(e.isText||!(i>=t&&i<=t+e.nodeSize-1))return!1;if(s+=1,this.options.mode===`deepest`&&o-s>0||this.options.mode===`shallowest`&&s>1)return this.options.mode===`deepest`;a.push(XX.node(t,t+e.nodeSize,{class:this.options.className}))}),$X.create(e,a)}}})]}});var qBe=o$.create({name:`gapCursor`,addProseMirrorPlugins(){return[MBe()]},extendNodeSchema(e){return{allowGapCursor:sQ(rQ(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),D2=`placeholder`,O2=new lJ(`tiptap__placeholder`);function k2(e){let{editor:t,placeholder:n,dataAttribute:r,pos:i,node:a,isEmptyDoc:o,hasAnchor:s,classes:{emptyNode:c,emptyEditor:l}}=e,u=[c];return o&&u.push(l),XX.node(i,i+a.nodeSize,{class:u.join(` `),[r]:typeof n==`function`?n({editor:t,node:a,pos:i,hasAnchor:s}):n})}function A2(e,t){return typeof e==`function`?e(t):e}function j2({editor:e,options:t,dataAttribute:n,doc:r,selection:i,from:a,to:o}){let{anchor:s}=i,c=[],l=e.isEmpty;return r.nodesBetween(a,o,(r,i)=>{let a=s>=i&&s<=i+r.nodeSize,o=!r.isLeaf&&OQ(r);return r.type.isTextblock&&(a||!t.showOnlyCurrent)&&o&&c.push(k2({editor:e,isEmptyDoc:l,dataAttribute:n,hasAnchor:a,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:A2(t.emptyNodeClass,{editor:e,node:r,pos:i,hasAnchor:a})},node:r,pos:i})),t.includeChildren}),c}function M2({editor:e,options:t,dataAttribute:n,doc:r,selection:i}){if(!(e.isEditable||!t.showOnlyWhenEditable))return null;let{anchor:a}=i,o=[],s=e.isEmpty;if(t.showOnlyCurrent&&!t.includeChildren){let i=r.resolve(a),c=i.depth>0?i.node(1):i.nodeAfter,l=i.depth>0?i.before(1):a;if(c&&c.type.isTextblock&&OQ(c)){let r=a>=l&&a<=l+c.nodeSize;o.push(k2({editor:e,isEmptyDoc:s,dataAttribute:n,hasAnchor:r,placeholder:t.placeholder,classes:{emptyEditor:t.emptyEditorClass,emptyNode:A2(t.emptyNodeClass,{editor:e,node:c,pos:l,hasAnchor:r})},node:c,pos:l}))}}else o.push(...j2({editor:e,options:t,dataAttribute:n,doc:r,selection:i,from:0,to:r.content.size}));return $X.create(r,o)}function N2(e,t){let n=e.resolve(t);if(n.depth===0){let e=n.nodeAfter??n.nodeBefore;if(!e)return{from:t,to:t};let r=n.nodeAfter?t:t-e.nodeSize;return{from:r,to:r+e.nodeSize}}let r=n.before(1);return{from:r,to:r+n.node(1).nodeSize}}function P2(e,t){return{from:Math.max(0,t.from-1),to:Math.min(e.content.size,t.to-1)}}function JBe(e,t,n){let r=[];return e.forEach((e,i)=>{let a=i,o=a+e.nodeSize,s=a+1,c=o+1;st&&r.push({from:a,to:o})}),r}function YBe(e){if(e.length===0)return[];let t=[...e].sort((e,t)=>e.from-t.from),n=[{...t[0]}];for(let e=1;et.from?n.push(P2(e,N2(e,Math.min(t.to,e.content.size+1)-1))):t.frome.from>=t&&e.to<=c);l.length&&(s=s.remove(l));let u=j2({editor:n,options:r,dataAttribute:i,doc:a,selection:o,from:t,to:c});u.length&&(s=s.add(a,u))}return s}function eVe({editor:e,options:t,dataAttribute:n}){return{init(r,i){return M2({editor:e,options:t,dataAttribute:n,doc:i.doc,selection:i.selection})??$X.empty},apply(r,i,a,o){return!r.docChanged&&!r.selectionSet?i:$Be({decorations:i.map(r.mapping,r.doc),ranges:ZBe(r,a,o),editor:e,options:t,dataAttribute:n,doc:o.doc,selection:o.selection})}}}function tVe(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}function nVe({editor:e,options:t}){let n=t.dataAttribute?`data-${tVe(t.dataAttribute)}`:`data-${D2}`,r=t.showOnlyCurrent&&!t.includeChildren;return new oJ({key:O2,...r?{}:{state:eVe({editor:e,options:t,dataAttribute:n})},props:{decorations:r?({doc:r,selection:i})=>M2({editor:e,options:t,dataAttribute:n,doc:r,selection:i}):n=>t.showOnlyWhenEditable&&!e.isEditable?$X.empty:O2.getState(n)??$X.empty}})}o$.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:D2,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[nVe({editor:this.editor,options:this.options})]}});function F2(e,t){return!e.selection.empty&&!kQ(e.selection)&&t.isEditable}function rVe(e,t){return F2(e,t)&&!t.isFocused&&!t.view.dragging}function iVe(){var e;(e=window.getSelection())==null||e.removeAllRanges()}function aVe(e){e.focus()}o$.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new oJ({key:new lJ(`selection`),props:{decorations(n){return rVe(n,e)?$X.create(n.doc,[XX.inline(n.selection.from,n.selection.to,{class:t.className})]):null},handleDOMEvents:{blur(t){return F2(t.state,e)&&iVe(),!1},focus(t){return F2(t.state,e)&&requestAnimationFrame(()=>{!e.isDestroyed&&t.hasFocus()&&aVe(t)}),!1}}}})]}});function I2({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var oVe=o$.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new lJ(this.name),t=this.options.node||this.editor.schema.topNodeType.contentMatch.defaultType?.name||`paragraph`,n=Object.entries(this.editor.schema.nodes).map(([,e])=>e).filter(e=>(this.options.notAfter||[]).concat(t).includes(e.name));return[new oJ({key:e,appendTransaction:(n,r,i)=>{let{doc:a,tr:o,schema:s}=i,c=e.getState(i),l=a.content.size,u=s.nodes[t];if(!n.some(e=>e.getMeta(`skipTrailingNode`))&&c)return o.insert(l,u.create())},state:{init:(e,t)=>{let r=t.tr.doc.lastChild;return!I2({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!I2({node:r,types:n})}}})]}}),sVe=o$.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>T2(e,t),redo:()=>({state:e,dispatch:t})=>E2(e,t)}},addProseMirrorPlugins(){return[GBe(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),cVe=o$.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(YRe.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(WRe.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(I0.configure(this.options.bulletList)),this.options.code!==!1&&e.push(QRe.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(tze.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(nze.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(KBe.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(qBe.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(rze.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(ize.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(sVe.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(aze.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(uze.configure(this.options.italic)),this.options.listItem!==!1&&e.push(q0.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(Q0.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(N0.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(a2.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(xBe.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(wBe.configure(this.options.strike)),this.options.text!==!1&&e.push(TBe.configure(this.options.text)),this.options.underline!==!1&&e.push(c2.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(oVe.configure(this.options?.trailingNode)),e}}),lVe=o$.create({name:`textAlign`,addOptions(){return{types:[],alignments:[`left`,`center`,`right`,`justify`],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>{let t=e.style.textAlign;return this.options.alignments.includes(t)?t:this.options.defaultAlignment},renderHTML:e=>e.textAlign?{style:`text-align: ${e.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.map(n=>t.updateAttributes(n,{textAlign:e})).some(e=>e):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.map(t=>e.resetAttributes(t,`textAlign`)).some(e=>e),toggleTextAlign:e=>({editor:t,commands:n})=>this.options.alignments.includes(e)?t.isActive({textAlign:e})?n.unsetTextAlign():n.setTextAlign(e):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign(`left`),"Mod-Shift-e":()=>this.editor.commands.setTextAlign(`center`),"Mod-Shift-r":()=>this.editor.commands.setTextAlign(`right`),"Mod-Shift-j":()=>this.editor.commands.setTextAlign(`justify`)}}}),uVe=20,L2=(e,t=0)=>{let n=[];return!e.children.length||t>uVe||Array.from(e.children).forEach(e=>{e.tagName===`SPAN`?n.push(e):e.children.length&&n.push(...L2(e,t+1))}),n},dVe=e=>{if(!e.children.length)return;let t=L2(e);t&&t.forEach(e=>{var t;let n=e.getAttribute(`style`),r=(t=e.parentElement)==null||(t=t.closest(`span`))==null?void 0:t.getAttribute(`style`);e.setAttribute(`style`,`${r};${n}`)})},R2=n$.create({name:`textStyle`,priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:`span`,consuming:!1,getAttrs:e=>e.hasAttribute(`style`)?(this.options.mergeNestedSpanStyles&&dVe(e),{}):!1}]},renderHTML({HTMLAttributes:e}){return[`span`,dQ(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleTextStyle:e=>({commands:t})=>t.toggleMark(this.name,e),removeEmptyTextStyle:()=>({tr:e})=>{let{selection:t}=e;return e.doc.nodesBetween(t.from,t.to,(t,n)=>{if(!t.isInline)return!0;t.marks.filter(e=>e.type===this.type).some(e=>Object.values(e.attrs).some(e=>!!e))||e.removeMark(n,n+t.nodeSize,this.type)}),!0}}}}),fVe=o$.create({name:`backgroundColor`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:e=>(KQ(e,`background-color`)??e.style.backgroundColor)?.replace(/['"]+/g,``),renderHTML:e=>e.backgroundColor?{style:`background-color: ${e.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:e=>({chain:t})=>t().setMark(`textStyle`,{backgroundColor:e}).run(),unsetBackgroundColor:()=>({chain:e})=>e().setMark(`textStyle`,{backgroundColor:null}).removeEmptyTextStyle().run()}}}),z2=o$.create({name:`color`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>(KQ(e,`color`)??e.style.color)?.replace(/['"]+/g,``),renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark(`textStyle`,{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark(`textStyle`,{color:null}).removeEmptyTextStyle().run()}}}),pVe=o$.create({name:`fontFamily`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:e=>KQ(e,`font-family`)??e.style.fontFamily,renderHTML:e=>e.fontFamily?{style:`font-family: ${e.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:e=>({chain:t})=>t().setMark(`textStyle`,{fontFamily:e}).run(),unsetFontFamily:()=>({chain:e})=>e().setMark(`textStyle`,{fontFamily:null}).removeEmptyTextStyle().run()}}}),mVe=o$.create({name:`fontSize`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:e=>KQ(e,`font-size`)??e.style.fontSize,renderHTML:e=>e.fontSize?{style:`font-size: ${e.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:e=>({chain:t})=>t().setMark(`textStyle`,{fontSize:e}).run(),unsetFontSize:()=>({chain:e})=>e().setMark(`textStyle`,{fontSize:null}).removeEmptyTextStyle().run()}}}),hVe=o$.create({name:`lineHeight`,addOptions(){return{types:[`textStyle`]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:e=>KQ(e,`line-height`)??e.style.lineHeight,renderHTML:e=>e.lineHeight?{style:`line-height: ${e.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:e=>({chain:t})=>t().setMark(`textStyle`,{lineHeight:e}).run(),unsetLineHeight:()=>({chain:e})=>e().setMark(`textStyle`,{lineHeight:null}).removeEmptyTextStyle().run()}}});o$.create({name:`textStyleKit`,addExtensions(){let e=[];return this.options.backgroundColor!==!1&&e.push(fVe.configure(this.options.backgroundColor)),this.options.color!==!1&&e.push(z2.configure(this.options.color)),this.options.fontFamily!==!1&&e.push(pVe.configure(this.options.fontFamily)),this.options.fontSize!==!1&&e.push(mVe.configure(this.options.fontSize)),this.options.lineHeight!==!1&&e.push(hVe.configure(this.options.lineHeight)),this.options.textStyle!==!1&&e.push(R2.configure(this.options.textStyle)),e}});var gVe=z2,_Ve=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,vVe=f$.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,dQ(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?`![${n}](${t} "${r}")`:`![${n}](${t})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize,i=new Set([`src`,`width`,`height`]);return({node:a,getPos:o,HTMLAttributes:s,editor:c})=>{let l=document.createElement(`img`);l.draggable=!1;let u=dQ(this.options.HTMLAttributes,s);Object.entries(u).forEach(([e,t])=>{if(t!=null)switch(e){case`src`:case`width`:case`height`:break;default:l.setAttribute(e,t)}}),u.src!==null&&(l.src=u.src);let d={...s},f=e=>{if(typeof e==`string`&&e!==``){l.getAttribute(`src`)!==e&&(l.src=e);return}l.hasAttribute(`src`)&&l.removeAttribute(`src`),l.src!==``&&(l.src=``)};f(s.src);let p=new VLe({element:l,editor:c,node:a,getPos:o,onResize:(e,t)=>{l.style.width=`${e}px`,l.style.height=`${t}px`},onCommit:(e,t)=>{let n=o();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:e=>{if(e.type!==a.type)return!1;let t=fQ(e,c.extensionManager.attributes.filter(t=>t.type===e.type.name));return Object.keys(d).forEach(e=>{!i.has(e)&&!(e in t)&&l.removeAttribute(e)}),Object.entries(t).forEach(([e,t])=>{i.has(e)||(t==null?l.removeAttribute(e):l.setAttribute(e,t))}),f(t.src),d=t,!0},options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),m=p.dom,h=()=>{m.style.visibility=``,m.style.pointerEvents=``};return m.style.visibility=`hidden`,m.style.pointerEvents=`none`,l.complete&&l.naturalWidth>0?h():(l.onload=h,l.onerror=h),p}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[l$({find:_Ve,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function B2({content:e,onChange:t,placeholder:n}){let{t:r}=U(),i=LRe({extensions:[cVe.configure({heading:!1,codeBlock:!1,code:!1}),EBe,Hze.configure({openOnClick:!1,HTMLAttributes:{target:`_blank`,rel:`noopener noreferrer`}}),lVe.configure({types:[`paragraph`]}),R2,gVe,vVe.configure({HTMLAttributes:{style:`max-width: 100%; height: auto;`}})],content:e,onUpdate:({editor:e})=>{t(e.getHTML())},editorProps:{attributes:{class:`prose prose-invert prose-sm max-w-none focus:outline-none min-h-[120px] px-3 py-2`,placeholder:n||``}}});if(!i)return null;let a=({onClick:e,isActive:t=!1,children:n,title:r})=>(0,G.jsx)(`button`,{type:`button`,onClick:e,title:r,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary transition-colors ${t?`bg-bambu-dark-tertiary text-bambu-green`:`text-bambu-gray`}`,children:n});return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden bg-bambu-dark`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 p-1.5 border-b border-bambu-dark-tertiary bg-bambu-dark-secondary`,children:[(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive(`bold`),title:r(`richTextEditor.bold`),children:(0,G.jsx)(Jo,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive(`italic`),title:r(`richTextEditor.italic`),children:(0,G.jsx)(Gc,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive(`underline`),title:r(`richTextEditor.underline`),children:(0,G.jsx)(Ru,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive(`bulletList`),title:r(`richTextEditor.bulletList`),children:(0,G.jsx)(el,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().toggleOrderedList().run(),isActive:i.isActive(`orderedList`),title:r(`richTextEditor.numberedList`),children:(0,G.jsx)(Qc,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`left`).run(),isActive:i.isActive({textAlign:`left`}),title:r(`richTextEditor.alignLeft`),children:(0,G.jsx)(ju,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`center`).run(),isActive:i.isActive({textAlign:`center`}),title:r(`richTextEditor.alignCenter`),children:(0,G.jsx)(ku,{className:`w-4 h-4`})}),(0,G.jsx)(a,{onClick:()=>i.chain().focus().setTextAlign(`right`).run(),isActive:i.isActive({textAlign:`right`}),title:r(`richTextEditor.alignRight`),children:(0,G.jsx)(Au,{className:`w-4 h-4`})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary mx-1`}),(0,G.jsx)(a,{onClick:()=>{let e=window.prompt(`Enter URL:`);e&&i.chain().focus().setLink({href:e}).run()},isActive:i.isActive(`link`),title:r(`richTextEditor.addLink`),children:(0,G.jsx)(Zc,{className:`w-4 h-4`})}),i.isActive(`link`)&&(0,G.jsx)(a,{onClick:()=>i.chain().focus().unsetLink().run(),title:r(`richTextEditor.removeLink`),children:(0,G.jsx)(Bu,{className:`w-4 h-4`})})]}),(0,G.jsx)(E$,{editor:i})]})}function V2({archiveId:e,archiveName:t,onClose:n}){let r=co(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)({}),{data:u,isLoading:d,error:f}=K({queryKey:[`archive-project-page`,e],queryFn:()=>Z.getArchiveProjectPage(e)}),p=q({mutationFn:t=>Z.updateArchiveProjectPage(e,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`archive-project-page`,e]}),a(!1),l({})}});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(o===null?i?_():n():s(null))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[o,i,n]);let m=[...u?.model_pictures||[],...u?.profile_pictures||[]],h=()=>{l({title:u?.title||``,description:u?.description||``,designer:u?.designer||``,license:u?.license||``,profile_title:u?.profile_title||``,profile_description:u?.profile_description||``}),a(!0)},g=()=>{p.mutate(c)},_=()=>{a(!1),l({})},v=e=>JG.sanitize(e,{ALLOWED_TAGS:[`p`,`br`,`b`,`strong`,`i`,`em`,`u`,`a`,`ul`,`ol`,`li`,`figure`,`img`],ALLOWED_ATTR:[`href`,`src`,`target`,`rel`,`style`],ADD_ATTR:[`target`]}),b=u&&(u.title||u.description||u.designer||u.profile_title||m.length>0);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:e=>{e.target===e.currentTarget&&n()},children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Project Page`,t&&(0,G.jsxs)(`span`,{className:`text-bambu-gray ml-2`,children:[`- `,t]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!i&&b&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:h,children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-1`}),`Edit`]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:_,children:`Cancel`}),(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:g,disabled:p.isPending,children:[(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),`Save`]})]}),(0,G.jsx)(`button`,{onClick:n,className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-6`,children:[d&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-2 border-bambu-green border-t-transparent`})}),f&&(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400 text-center py-12`,children:`Failed to load project page data`}),u&&!b&&(0,G.jsxs)(`div`,{className:`text-bambu-gray text-center py-12`,children:[(0,G.jsx)(fc,{className:`w-12 h-12 mx-auto mb-4 opacity-50`}),(0,G.jsx)(`p`,{children:`No project page data found in this 3MF file.`}),(0,G.jsx)(`p`,{className:`text-sm mt-2`,children:`Project pages are typically included in files downloaded from MakerWorld.`})]}),u&&b&&(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[i?(0,G.jsx)(`input`,{type:`text`,value:c.title||``,onChange:e=>l({...c,title:e.target.value}),placeholder:`Title`,className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-lg px-4 py-2 text-white text-xl font-semibold`}):u.title&&(0,G.jsx)(`h3`,{className:`text-xl font-semibold text-white`,children:u.title}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 text-sm`,children:[i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Hu,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c.designer||``,onChange:e=>l({...c,designer:e.target.value}),placeholder:`Designer`,className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white`})]}):u.designer&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Hu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.designer}),u.designer_user_id&&(0,G.jsx)(`a`,{href:`https://makerworld.com/en/@${u.designer_user_id}`,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline`,children:(0,G.jsx)(rc,{className:`w-3 h-3`})})]}),u.creation_date&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(as,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.creation_date})]}),i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c.license||``,onChange:e=>l({...c,license:e.target.value}),placeholder:`License`,className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white`})]}):u.license&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:u.license})]}),u.origin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-dark rounded text-bambu-gray`,children:u.origin})]})]}),(u.description||i)&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide`,children:`Description`}),i?(0,G.jsx)(B2,{content:c.description||``,onChange:e=>l({...c,description:e}),placeholder:`Enter description...`}):(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none text-bambu-gray-light`,dangerouslySetInnerHTML:{__html:v(u.description||``)}})]}),(u.profile_title||u.profile_description||i)&&(0,G.jsxs)(`div`,{className:`space-y-2 p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide`,children:`Print Profile`}),i?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:c.profile_title||``,onChange:e=>l({...c,profile_title:e.target.value}),placeholder:`Profile Title`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-white`}),(0,G.jsx)(B2,{content:c.profile_description||``,onChange:e=>l({...c,profile_description:e}),placeholder:`Profile description...`})]}):(0,G.jsxs)(G.Fragment,{children:[u.profile_title&&(0,G.jsx)(`p`,{className:`text-white font-medium`,children:u.profile_title}),u.profile_description&&(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none text-bambu-gray-light`,dangerouslySetInnerHTML:{__html:v(u.profile_description)}}),u.profile_user_name&&(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`by `,u.profile_user_name]})]})]}),m.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-bambu-gray uppercase tracking-wide flex items-center gap-2`,children:[(0,G.jsx)(Hc,{className:`w-4 h-4`}),`Images (`,m.length,`)`]}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2`,children:m.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>s(t),className:`aspect-square rounded-lg overflow-hidden border border-bambu-dark-tertiary hover:border-bambu-green transition-colors`,children:(0,G.jsx)(`img`,{src:vd(e.url),alt:e.name,className:`w-full h-full object-cover`})},e.path))})]}),u.design_model_id&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`a`,{href:`https://makerworld.com/en/models/${u.design_model_id}`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-2 text-bambu-green hover:underline`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`View on MakerWorld`]})})]})]})]}),o!==null&&m[o]&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-60`,onClick:()=>s(null),children:[(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),s(Math.max(0,o-1))},disabled:o===0,className:`absolute left-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30`,children:(0,G.jsx)(hs,{className:`w-6 h-6 text-white`})}),(0,G.jsx)(`img`,{src:vd(m[o].url),alt:m[o].name,className:`max-w-[90vw] max-h-[90vh] object-contain`,onClick:e=>e.stopPropagation()}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),s(Math.min(m.length-1,o+1))},disabled:o===m.length-1,className:`absolute right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30`,children:(0,G.jsx)(ms,{className:`w-6 h-6 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>s(null),className:`absolute top-4 right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-6 h-6 text-white`})}),(0,G.jsxs)(`div`,{className:`absolute bottom-4 text-white text-sm`,children:[o+1,` / `,m.length]})]})]})}var yVe=[.25,.5,.75,1,1.5,2,3,4];function bVe({archiveId:e,timelapseSrc:t,onClose:n,onSave:r}){let{showToast:i}=qd(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(0),[d,f]=(0,y.useState)(0),[p,m]=(0,y.useState)(0),[h,g]=(0,y.useState)(0),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(.8),[E,D]=(0,y.useState)(!1),{data:O,isLoading:k}=K({queryKey:[`timelapse-info`,e],queryFn:()=>Z.getTimelapseInfo(e)}),{data:A}=K({queryKey:[`timelapse-thumbnails`,e],queryFn:()=>Z.getTimelapseThumbnails(e,15)}),j=q({mutationFn:()=>Z.processTimelapse(e,{trimStart:p,trimEnd:h,speed:_,saveMode:`replace`},b||void 0),onSuccess:e=>{i(e.message,`success`),r?.(),n()},onError:e=>{i(e.message||`Processing failed`,`error`)}});(0,y.useEffect)(()=>{O?.duration&&h===0&&g(O.duration)},[O?.duration,h]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,y.useEffect)(()=>{let e=a.current;if(!e)return;let t=()=>{let t=e.currentTime;u(t),t>=h&&(e.currentTime=p)},n=()=>{f(e.duration),h===0&&g(e.duration)},r=()=>c(!0),i=()=>c(!1);return e.addEventListener(`timeupdate`,t),e.addEventListener(`durationchange`,n),e.addEventListener(`play`,r),e.addEventListener(`pause`,i),()=>{e.removeEventListener(`timeupdate`,t),e.removeEventListener(`durationchange`,n),e.removeEventListener(`play`,r),e.removeEventListener(`pause`,i)}},[p,h]),(0,y.useEffect)(()=>{let e=o.current,t=a.current;!e||!t||!S||(e.currentTime=t.currentTime,e.playbackRate=t.playbackRate,s&&!E?e.play().catch(()=>{}):e.pause())},[s,S,E]),(0,y.useEffect)(()=>{o.current&&(o.current.volume=E?0:w)},[w,E]),(0,y.useEffect)(()=>{a.current&&(a.current.playbackRate=_),o.current&&(o.current.playbackRate=_)},[_]);let M=(0,y.useCallback)(()=>{let e=a.current;e&&(s?e.pause():(e.currentTime{let t=a.current;t&&(t.currentTime=Math.max(p,Math.min(h,e)))},P=e=>{let t=e.target.files?.[0];t&&(S&&URL.revokeObjectURL(S),x(t),C(URL.createObjectURL(t)))},F=()=>{S&&URL.revokeObjectURL(S),x(null),C(null)};(0,y.useEffect)(()=>()=>{S&&URL.revokeObjectURL(S)},[S]);let I=h-p,L=I/_;return k?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-white`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin`}),`Loading video info...`]})}):(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl max-w-5xl w-full mx-4 max-h-[90vh] overflow-hidden flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(mc,{className:`w-5 h-5 text-bambu-green`}),`Edit Timelapse`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>j.mutate(),disabled:j.isPending,children:j.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),`Processing...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),`Save`]})}),(0,G.jsx)(`button`,{onClick:n,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`video`,{ref:a,src:t,className:`w-full rounded-lg bg-black`,onClick:M,muted:!!S}),!s&&(0,G.jsx)(`button`,{onClick:M,className:`absolute inset-0 flex items-center justify-center bg-black/30 hover:bg-black/40 transition-colors`,children:(0,G.jsx)(`div`,{className:`p-4 bg-bambu-green rounded-full`,children:(0,G.jsx)(Nl,{className:`w-8 h-8 text-white`})})}),S&&(0,G.jsx)(`audio`,{ref:o,src:S,loop:!0})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Zl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:`Trim`}),(0,G.jsxs)(`span`,{className:`ml-auto`,children:[dp(p),` - `,dp(h),` (`,dp(I),`)`]})]}),(0,G.jsxs)(`div`,{className:`relative h-16 bg-bambu-dark rounded-lg overflow-hidden`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex`,children:A?.thumbnails.map((e,t)=>(0,G.jsx)(`div`,{className:`flex-1 bg-cover bg-center`,style:{backgroundImage:`url(data:image/jpeg;base64,${e})`}},t))}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 left-0 bg-black/60`,style:{width:`${p/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 right-0 bg-black/60`,style:{width:`${(d-h)/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute inset-y-0 border-2 border-bambu-green`,style:{left:`${p/d*100}%`,right:`${(d-h)/d*100}%`}}),(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 w-0.5 bg-white shadow-lg`,style:{left:`${l/d*100}%`}}),(0,G.jsx)(`input`,{type:`range`,min:0,max:d,step:.1,value:p,onChange:e=>{let t=parseFloat(e.target.value);t{let t=parseFloat(e.target.value);t>p+1&&g(t)},className:`absolute inset-0 w-full opacity-0 cursor-ew-resize`,style:{clipPath:`inset(0 0 0 50%)`}})]}),(0,G.jsx)(`input`,{type:`range`,min:0,max:d,step:.1,value:l,onChange:e=>N(parseFloat(e.target.value)),className:`w-full h-1 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:bg-bambu-green [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:cursor-pointer`}),(0,G.jsx)(`div`,{className:`flex items-center justify-center gap-2`,children:(0,G.jsx)(`button`,{onClick:M,className:`p-2 bg-bambu-green hover:bg-bambu-green-dark rounded-lg transition-colors`,children:s?(0,G.jsx)(Dl,{className:`w-5 h-5 text-white`}):(0,G.jsx)(Nl,{className:`w-5 h-5 text-white`})})})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Tc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:`Speed`}),(0,G.jsxs)(`span`,{className:`ml-auto`,children:[_,`x (output: `,dp(L),`)`]})]}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:yVe.map(e=>(0,G.jsxs)(`button`,{onClick:()=>v(e),className:`flex-1 px-2 py-2 text-sm rounded transition-colors ${_===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[e,`x`]},e))})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(bl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:`Music Overlay`})]}),b?(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(bl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:b.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[(b.size/1024/1024).toFixed(1),` MB`]})]}),(0,G.jsx)(`button`,{onClick:()=>D(!E),className:`p-2 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:E?(0,G.jsx)(qu,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(Ku,{className:`w-4 h-4 text-bambu-green`})}),(0,G.jsx)(`input`,{type:`range`,min:0,max:1,step:.1,value:w,onChange:e=>T(parseFloat(e.target.value)),className:`w-20 h-1 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 - [&::-webkit-slider-thumb]:bg-bambu-green [&::-webkit-slider-thumb]:rounded-full`}),(0,G.jsx)(`button`,{onClick:F,className:`p-2 hover:bg-red-100 dark:hover:bg-red-500/20 rounded transition-colors`,children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]}):(0,G.jsxs)(`label`,{className:`flex flex-col items-center justify-center gap-2 p-6 border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green/50 transition-colors`,children:[(0,G.jsx)(Vu,{className:`w-8 h-8 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`Drop audio file or click to upload`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:`MP3, WAV, M4A, AAC, OGG`}),(0,G.jsx)(`input`,{type:`file`,accept:`.mp3,.wav,.m4a,.aac,.ogg,audio/*`,onChange:P,className:`hidden`})]})]}),(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg text-sm space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:`Original:`}),` `,dp(d),` @ `,O?.width,`x`,O?.height]}),(0,G.jsxs)(`p`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:`Output:`}),` `,dp(L),` @ `,_,`x speed`,b&&` + music overlay`]})]})]}),j.isPending&&(0,G.jsxs)(`div`,{className:`absolute inset-0 bg-black/80 flex flex-col items-center justify-center gap-4`,children:[(0,G.jsx)(Y,{className:`w-12 h-12 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-white text-lg`,children:`Processing timelapse...`}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:`This may take a few moments`})]})]})})}var xVe=[.25,.5,.75,1,1.5,2,3,4];function V2({src:e,title:t,downloadFilename:n,archiveId:r,onClose:i,onEdit:a}){let o=(0,y.useRef)(null),[s,c]=(0,y.useState)(!0),[l,u]=(0,y.useState)(1),[d,f]=(0,y.useState)(0),[p,m]=(0,y.useState)(0),[h,g]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=o.current;e&&(e.playbackRate=l)},[l]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,y.useEffect)(()=>{let e=o.current;if(!e)return;let t=()=>f(e.currentTime),n=()=>m(e.duration),r=()=>c(!0),i=()=>c(!1);return e.addEventListener(`timeupdate`,t),e.addEventListener(`durationchange`,n),e.addEventListener(`play`,r),e.addEventListener(`pause`,i),()=>{e.removeEventListener(`timeupdate`,t),e.removeEventListener(`durationchange`,n),e.removeEventListener(`play`,r),e.removeEventListener(`pause`,i)}},[]);let _=()=>{let e=o.current;e&&(s?e.pause():e.play())};return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:[(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl max-w-4xl w-full mx-4 overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(mc,{className:`w-5 h-5 text-bambu-green`}),t]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>g(!0),children:[(0,G.jsx)(Al,{className:`w-4 h-4`}),`Edit`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{let t=document.createElement(`a`);t.href=e,t.download=n,t.click()},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download`]}),(0,G.jsx)(`button`,{onClick:i,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`p-4`,children:[(0,G.jsx)(`video`,{ref:o,src:e,autoPlay:!0,className:`w-full rounded-lg`,onClick:_}),(0,G.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray w-12 text-right`,children:dp(d)}),(0,G.jsx)(`input`,{type:`range`,min:0,max:p||100,value:d,onChange:e=>{let t=o.current;t&&(t.currentTime=parseFloat(e.target.value))},className:`flex-1 h-1 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer + [&::-webkit-slider-thumb]:bg-bambu-green [&::-webkit-slider-thumb]:rounded-full`}),(0,G.jsx)(`button`,{onClick:F,className:`p-2 hover:bg-red-100 dark:hover:bg-red-500/20 rounded transition-colors`,children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]}):(0,G.jsxs)(`label`,{className:`flex flex-col items-center justify-center gap-2 p-6 border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green/50 transition-colors`,children:[(0,G.jsx)(Vu,{className:`w-8 h-8 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`Drop audio file or click to upload`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:`MP3, WAV, M4A, AAC, OGG`}),(0,G.jsx)(`input`,{type:`file`,accept:`.mp3,.wav,.m4a,.aac,.ogg,audio/*`,onChange:P,className:`hidden`})]})]}),(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg text-sm space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:`Original:`}),` `,dp(d),` @ `,O?.width,`x`,O?.height]}),(0,G.jsxs)(`p`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:`Output:`}),` `,dp(L),` @ `,_,`x speed`,b&&` + music overlay`]})]})]}),j.isPending&&(0,G.jsxs)(`div`,{className:`absolute inset-0 bg-black/80 flex flex-col items-center justify-center gap-4`,children:[(0,G.jsx)(Y,{className:`w-12 h-12 text-bambu-green animate-spin`}),(0,G.jsx)(`p`,{className:`text-white text-lg`,children:`Processing timelapse...`}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:`This may take a few moments`})]})]})})}var xVe=[.25,.5,.75,1,1.5,2,3,4];function H2({src:e,title:t,downloadFilename:n,archiveId:r,onClose:i,onEdit:a}){let o=(0,y.useRef)(null),[s,c]=(0,y.useState)(!0),[l,u]=(0,y.useState)(1),[d,f]=(0,y.useState)(0),[p,m]=(0,y.useState)(0),[h,g]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=o.current;e&&(e.playbackRate=l)},[l]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,y.useEffect)(()=>{let e=o.current;if(!e)return;let t=()=>f(e.currentTime),n=()=>m(e.duration),r=()=>c(!0),i=()=>c(!1);return e.addEventListener(`timeupdate`,t),e.addEventListener(`durationchange`,n),e.addEventListener(`play`,r),e.addEventListener(`pause`,i),()=>{e.removeEventListener(`timeupdate`,t),e.removeEventListener(`durationchange`,n),e.removeEventListener(`play`,r),e.removeEventListener(`pause`,i)}},[]);let _=()=>{let e=o.current;e&&(s?e.pause():e.play())};return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80`,children:[(0,G.jsxs)(`div`,{className:`relative bg-bambu-dark-secondary rounded-xl max-w-4xl w-full mx-4 overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(mc,{className:`w-5 h-5 text-bambu-green`}),t]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>g(!0),children:[(0,G.jsx)(Al,{className:`w-4 h-4`}),`Edit`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{let t=document.createElement(`a`);t.href=e,t.download=n,t.click()},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),`Download`]}),(0,G.jsx)(`button`,{onClick:i,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]})]}),(0,G.jsxs)(`div`,{className:`p-4`,children:[(0,G.jsx)(`video`,{ref:o,src:e,autoPlay:!0,className:`w-full rounded-lg`,onClick:_}),(0,G.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray w-12 text-right`,children:dp(d)}),(0,G.jsx)(`input`,{type:`range`,min:0,max:p||100,value:d,onChange:e=>{let t=o.current;t&&(t.currentTime=parseFloat(e.target.value))},className:`flex-1 h-1 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:bg-bambu-green [&::-webkit-slider-thumb]:rounded-full - [&::-webkit-slider-thumb]:cursor-pointer`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray w-12`,children:dp(p)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>{let e=o.current;e&&(e.currentTime=Math.max(0,e.currentTime-5))},className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:`Skip back 5s`,children:(0,G.jsx)(uu,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:_,className:`p-2 bg-bambu-green hover:bg-bambu-green-dark rounded-lg transition-colors`,children:s?(0,G.jsx)(Dl,{className:`w-5 h-5 text-white`}):(0,G.jsx)(Nl,{className:`w-5 h-5 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>{let e=o.current;e&&(e.currentTime=Math.min(p,e.currentTime+5))},className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:`Skip forward 5s`,children:(0,G.jsx)(du,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`Speed:`}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:xVe.map(e=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`px-2 py-1 text-xs rounded transition-colors ${l===e?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:bg-bambu-dark-tertiary/80`}`,children:[e,`x`]},e))})]})]})]})]})]}),h&&r&&(0,G.jsx)(bVe,{archiveId:r,timelapseSrc:e,onClose:()=>g(!1),onSave:a})]})}function H2({archiveId:e,archiveName:t,printerName:n,onClose:r}){let{t:i}=U(),{showToast:a}=qd(),[o,s]=(0,y.useState)(new Set),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=K({queryKey:[`archive-printer-media`,e],queryFn:()=>Z.getArchivePrinterMedia(e),staleTime:6e4}),h=(0,y.useMemo)(()=>m.data?.remote_files??[],[m.data]);(0,y.useEffect)(()=>{!m.data||f.current===e||(f.current=e,h.length===1&&s(new Set([h[0].path])))},[e,m.data,h]),(0,y.useEffect)(()=>{let e=new Set(h.map(e=>e.path));s(t=>new Set([...t].filter(t=>e.has(t))))},[h]),(0,y.useEffect)(()=>()=>p.current?.abort(),[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let g=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},_=async()=>{let n=m.data?.local_timelapse?.name??``,r=n.includes(`.`)?`.${n.split(`.`).pop()}`:``;try{await Z.downloadArchiveTimelapse(e,`${t}_timelapse${r}`)}catch(e){a(i(`printerFiles.downloadFailed`,{error:e instanceof Error?e.message:i(`printerFiles.unknownError`)}),`error`)}},v=async()=>{if(!m.data?.printer_id||o.size===0)return;let e=h.filter(e=>o.has(e.path));if(e.length===0)return;let n=new AbortController;p.current=n,l(!0);try{let r=await Z.downloadPrinterFilesAsZip(m.data.printer_id,e.map(e=>e.path),Object.fromEntries(e.map(e=>[e.path,e.size])),`${t.replace(/[^a-zA-Z0-9]/g,`_`)}-printer-videos.zip`,!0,n.signal,(e,t)=>d({current:e,total:t}));r.failed>0?a(i(`printerFiles.zipPartial`,{successful:r.successful,total:r.requested}),`warning`):a(i(`printerFiles.zipStarted`,{count:r.successful}))}catch(e){a(i(`printerFiles.downloadFailed`,{error:e instanceof Error?e.message:i(`printerFiles.unknownError`)}),`error`)}finally{p.current===n&&(p.current=null),d(null),l(!1)}},b=!!m.data?.local_timelapse||h.length>0,x=e=>i(e===`printer_files_forbidden`?`printers.permission.noFiles`:e===`printer_missing`?`archives.media.printerMissing`:e===`timelapse_unavailable`?`archives.media.timelapseUnavailable`:`archives.media.ipcamUnavailable`),S=(m.data?.warnings??[]).map(e=>(0,G.jsx)(`p`,{className:`text-xs text-amber-600 dark:text-amber-400`,children:x(e)},e));return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4`,onClick:r,children:(0,G.jsxs)(`div`,{className:`flex max-h-[85vh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-bambu-dark-tertiary p-4`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`h3`,{className:`flex items-center gap-2 text-lg font-semibold text-white`,children:[(0,G.jsx)(Gu,{className:`h-5 w-5 text-bambu-green`}),i(`archives.media.title`)]}),(0,G.jsxs)(`p`,{className:`truncate text-sm text-bambu-gray`,children:[t,` · `,n]})]}),(0,G.jsx)(`button`,{onClick:r,className:`rounded p-1 text-bambu-gray hover:bg-bambu-dark-tertiary hover:text-white`,children:(0,G.jsx)(nd,{className:`h-5 w-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:m.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-12 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`h-5 w-5 animate-spin`}),i(`archives.media.searching`)]}):m.isError?(0,G.jsx)(`p`,{className:`py-8 text-center text-red-500`,children:i(`archives.media.searchFailed`)}):b?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[m.data?.local_timelapse&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-3`,children:[(0,G.jsx)(mc,{className:`h-5 w-5 shrink-0 text-bambu-green`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`truncate text-sm font-medium text-white`,children:m.data.local_timelapse.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[i(`archives.media.attachedTimelapse`),` · `,Gd(m.data.local_timelapse.size)]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:_,children:[(0,G.jsx)(Xs,{className:`h-4 w-4`}),i(`common.download`)]})]}),h.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[i(`archives.media.printerFiles`),` (`,h.length,`)`]}),(0,G.jsx)(`button`,{className:`text-xs text-bambu-green hover:text-bambu-green-light`,onClick:()=>s(o.size===h.length?new Set:new Set(h.map(e=>e.path))),children:o.size===h.length?i(`common.deselectAll`):i(`common.selectAll`)})]}),(0,G.jsx)(`div`,{className:`space-y-1`,children:h.map(e=>{let t=o.has(e.path);return(0,G.jsxs)(`button`,{className:`flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors ${t?`border-bambu-green/60 bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`}`,onClick:()=>g(e.path),children:[t?(0,G.jsx)(vu,{className:`h-5 w-5 shrink-0 text-bambu-green`}):(0,G.jsx)(bu,{className:`h-5 w-5 shrink-0 text-bambu-gray`}),e.kind===`timelapse`?(0,G.jsx)(mc,{className:`h-5 w-5 shrink-0 text-bambu-green`}):(0,G.jsx)(Gu,{className:`h-5 w-5 shrink-0 text-blue-400`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-white`,children:e.name}),(0,G.jsx)(`span`,{className:`shrink-0 text-xs text-bambu-gray`,children:Gd(e.size)})]},e.path)})})]}),S]}):(0,G.jsxs)(`div`,{className:`space-y-3 py-8 text-center`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`archives.media.none`)}),S]})}),h.length>0&&(0,G.jsx)(`div`,{className:`flex items-center justify-end border-t border-bambu-dark-tertiary p-4`,children:(0,G.jsxs)(Q,{variant:`primary`,onClick:v,disabled:o.size===0||c,children:[c?(0,G.jsx)(Y,{className:`h-4 w-4 animate-spin`}):(0,G.jsx)(Xs,{className:`h-4 w-4`}),u?`${u.current}/${u.total}`:`${i(`archives.media.downloadSelected`)} (${o.size})`]})})]})})}function SVe({archiveIds:e,onClose:t}){(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let{data:n,isLoading:r,error:i}=K({queryKey:[`archive-comparison`,e],queryFn:()=>Z.compareArchives(e)});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg max-w-4xl w-full max-h-[90vh] flex flex-col border border-bambu-dark-tertiary`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white`,children:[`Compare Archives (`,e.length,`)`]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-auto p-4 bg-bambu-dark-secondary`,children:r?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):i?(0,G.jsxs)(`div`,{className:`text-center py-12 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12 mx-auto mb-4 opacity-50`}),(0,G.jsx)(`p`,{children:`Failed to load comparison`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:i instanceof Error?i.message:`Unknown error`})]}):n?(0,G.jsx)(CVe,{comparison:n}):null}),(0,G.jsx)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`w-full`,children:`Close`})})]})})}function CVe({comparison:e}){return(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`text-left text-sm text-bambu-gray font-medium pb-2 pr-4 min-w-[150px]`,children:`Setting`}),e.archives.map(e=>(0,G.jsxs)(`th`,{className:`text-left text-sm font-medium pb-2 px-2 min-w-[120px]`,children:[(0,G.jsx)(`div`,{className:`text-white truncate max-w-[150px]`,title:e.print_name,children:e.print_name}),(0,G.jsx)(`div`,{className:`text-xs ${e.status===`completed`?`text-status-ok`:e.status===`failed`?`text-status-error`:`text-bambu-gray`}`,children:e.status})]},e.id))]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-gray/20`,children:e.comparison.map(e=>(0,G.jsxs)(`tr`,{className:e.has_difference?`bg-yellow-500/5`:``,children:[(0,G.jsx)(`td`,{className:`py-2 pr-4 text-sm`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.has_difference&&(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:e.has_difference?`text-yellow-700 dark:text-yellow-400`:`text-bambu-gray`,children:e.label})]})}),e.values.map((t,n)=>(0,G.jsxs)(`td`,{className:`py-2 px-2 text-sm text-white`,children:[t??(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`-`}),e.unit&&t!==null&&(0,G.jsx)(`span`,{className:`text-bambu-gray ml-1`,children:e.unit})]},n))]},e.field))})]})}),e.differences.length>0&&(0,G.jsxs)(`div`,{className:`p-4 bg-yellow-50 border border-yellow-300 dark:bg-yellow-500/10 dark:border-yellow-500/30 rounded-lg`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-yellow-700 dark:text-yellow-400 mb-2 flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4`}),e.differences.length,` Difference`,e.differences.length>1?`s`:``,` Found`]}),(0,G.jsxs)(`ul`,{className:`text-sm text-white/80 space-y-1`,children:[e.differences.slice(0,5).map(e=>(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`span`,{className:`text-yellow-700 dark:text-yellow-400`,children:e.label}),`: `,e.values.join(` vs `),` `,e.unit||``]},e.field)),e.differences.length>5&&(0,G.jsxs)(`li`,{className:`text-bambu-gray`,children:[`...and `,e.differences.length-5,` more`]})]})]}),e.success_correlation.has_both_outcomes?(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-white mb-3 flex items-center gap-2`,children:[(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green`}),`Success/Failure Analysis`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm mb-3`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-green`,children:[e.success_correlation.successful_count,` successful`]}),(0,G.jsxs)(`span`,{className:`text-red-700 dark:text-red-400`,children:[e.success_correlation.failed_count,` failed`]})]}),e.success_correlation.insights&&e.success_correlation.insights.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:e.success_correlation.insights.map(e=>(0,G.jsxs)(`div`,{className:`text-sm p-2 bg-bambu-dark-secondary rounded`,children:[(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[e.label,`:`]}),` `,(0,G.jsx)(`span`,{className:`text-white/80`,children:e.insight})]},e.field))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`No clear correlations found between settings and outcomes.`})]}):(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-lg text-sm text-bambu-gray`,children:(0,G.jsx)(`p`,{children:e.success_correlation.message||`Need both successful and failed prints for correlation analysis.`})})]})}function wVe(e){let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`Just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function TVe({upload:e,projects:t,onArchive:n,onDiscard:r,isArchiving:i,isDiscarding:a}){let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(e.tags||``),[u,d]=(0,y.useState)(e.notes||``),[f,p]=(0,y.useState)(e.project_id),[m,h]=(0,y.useState)(!1);return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(sc,{className:`w-8 h-8 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,title:e.filename,children:e.display_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:Gd(e.file_size)}),(0,G.jsx)(`span`,{children:`·`}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),wVe(e.uploaded_at)]}),e.source_ip&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`·`}),(0,G.jsxs)(`span`,{children:[`from `,e.source_ip]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>s(!o),className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:o?(0,G.jsx)(gs,{className:`w-5 h-5`}):(0,G.jsx)(ps,{className:`w-5 h-5`})}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>n(e.id,{tags:c,notes:u,project_id:f||void 0}),disabled:i,children:i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),`Archive`]})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h(!0),disabled:a,children:a?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]})]}),m&&(0,G.jsx)(of,{title:`Discard Upload`,message:`Are you sure you want to discard "${e.filename}"? This cannot be undone.`,confirmText:`Discard`,variant:`danger`,onConfirm:()=>{r(e.id),h(!1)},onCancel:()=>h(!1)}),o&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Tags`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`e.g., functional, prototype, gift`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white placeholder-bambu-gray text-sm`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Notes`}),(0,G.jsx)(`textarea`,{value:u,onChange:e=>d(e.target.value),placeholder:`Add notes about this print...`,rows:2,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white placeholder-bambu-gray text-sm resize-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Project`}),(0,G.jsxs)(`select`,{value:f||``,onChange:e=>p(e.target.value?Number(e.target.value):null),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`No project`}),t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]})]})})}function EVe(){let e=co(),{showToast:t}=qd(),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(new Set),[c,l]=(0,y.useState)(new Set),{data:u,isLoading:d}=K({queryKey:[`pending-uploads`],queryFn:Td.list,refetchInterval:1e4}),{data:f}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:e=>JW([...e].sort((e,t)=>e.name.localeCompare(t.name)))}),p=q({mutationFn:({id:e,data:t})=>Td.archive(e,t),onMutate:({id:e})=>{s(t=>new Set(t).add(e))},onSettled:(e,t,{id:n})=>{s(e=>{let t=new Set(e);return t.delete(n),t})},onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),e.invalidateQueries({queryKey:[`archives`]}),t(`Archived: ${n.print_name}`)},onError:e=>{t(e.message||`Failed to archive`,`error`)}}),m=q({mutationFn:e=>Td.discard(e),onMutate:e=>{l(t=>new Set(t).add(e))},onSettled:(e,t,n)=>{l(e=>{let t=new Set(e);return t.delete(n),t})},onSuccess:()=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),t(`Upload discarded`)},onError:e=>{t(e.message||`Failed to discard`,`error`)}}),h=q({mutationFn:Td.archiveAll,onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),e.invalidateQueries({queryKey:[`archives`]}),t(`Archived ${n.archived} files${n.failed>0?`, ${n.failed} failed`:``}`)},onError:e=>{t(e.message||`Failed to archive all`,`error`)}}),g=q({mutationFn:Td.discardAll,onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),t(`Discarded ${n.discarded} files`)},onError:e=>{t(e.message||`Failed to discard all`,`error`)}});return d?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})}):!u||u.length===0?null:(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(zd,{className:`border-l-4 border-l-yellow-500`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Vu,{className:`w-5 h-5 text-yellow-500`}),(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Pending Uploads (`,u.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>r(!0),disabled:h.isPending,children:h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),`Archive All`]})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>a(!0),disabled:g.isPending,children:g.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Discard All`]})})]})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:`These files were uploaded via the virtual printer. Review and archive them to add to your collection.`}),(0,G.jsx)(`div`,{className:`space-y-3`,children:u.map(e=>(0,G.jsx)(TVe,{upload:e,projects:f||[],onArchive:(e,t)=>p.mutate({id:e,data:t}),onDiscard:e=>m.mutate(e),isArchiving:o.has(e.id),isDiscarding:c.has(e.id)},e.id))})]})]}),n&&(0,G.jsx)(of,{title:`Archive All Uploads`,message:`Are you sure you want to archive all ${u.length} pending uploads?`,confirmText:`Archive All`,onConfirm:()=>{h.mutate(),r(!1)},onCancel:()=>r(!1)}),i&&(0,G.jsx)(of,{title:`Discard All Uploads`,message:`Are you sure you want to discard all ${u.length} pending uploads? This cannot be undone.`,confirmText:`Discard All`,variant:`danger`,onConfirm:()=>{g.mutate(),a(!1)},onCancel:()=>a(!1)})]})}function DVe({onClose:e}){let t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(`count`);(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&(a?o(null):l?u(null):e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,a,l]);let{data:p,isLoading:m}=K({queryKey:[`tags`],queryFn:Z.getTags}),h=q({mutationFn:({oldName:e,newName:t})=>Z.renameTag(e,t),onSuccess:(e,{oldName:r,newName:i})=>{t.invalidateQueries({queryKey:[`tags`]}),t.invalidateQueries({queryKey:[`archives`]}),n(`Renamed "${r}" to "${i}" in ${e.affected} archive${e.affected===1?``:`s`}`),o(null)},onError:e=>{n(e.message||`Failed to rename tag`,`error`)}}),g=q({mutationFn:e=>Z.deleteTag(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:[`tags`]}),t.invalidateQueries({queryKey:[`archives`]}),n(`Deleted "${r}" from ${e.affected} archive${e.affected===1?``:`s`}`),u(null)},onError:e=>{n(e.message||`Failed to delete tag`,`error`)}}),_=e=>{o(e.name),c(e.name),u(null)},v=()=>{o(null),c(``)},b=()=>{if(!a||!s.trim())return;let e=s.trim();if(e===a){v();return}h.mutate({oldName:a,newName:e})},x=e=>{e.key===`Enter`?(e.preventDefault(),b()):e.key===`Escape`&&(e.preventDefault(),v())},S=e=>{u(e),o(null)},C=()=>{l&&g.mutate(l)},w=p?.filter(e=>e.name.toLowerCase().includes(r.toLowerCase())).sort((e,t)=>d===`count`&&t.count-e.count||e.name.localeCompare(t.name)),T=p?.reduce((e,t)=>e+t.count,0)||0;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-lg max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:`Manage Tags`})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:`Search tags...`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:r,onChange:e=>i(e.target.value)})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:d,onChange:e=>f(e.target.value),children:[(0,G.jsx)(`option`,{value:`count`,children:`Sort by Count`}),(0,G.jsx)(`option`,{value:`name`,children:`Sort by Name`})]})]}),p&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:[p.length,` tag`,p.length===1?``:`s`,` across `,T,` usage`,T===1?``:`s`]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0 p-4`,children:m?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-gray`})}):w?.length?(0,G.jsx)(`div`,{className:`space-y-2`,children:w.map(e=>(0,G.jsx)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors group`,children:a===e.name?(0,G.jsxs)(`div`,{className:`flex-1 flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,className:`flex-1 px-2 py-1 bg-bambu-dark-tertiary border border-bambu-green rounded text-white text-sm focus:outline-none`,value:s,onChange:e=>c(e.target.value),onKeyDown:x,autoFocus:!0}),(0,G.jsx)(Q,{size:`sm`,variant:`primary`,onClick:b,disabled:!s.trim()||h.isPending,className:`p-1.5`,children:h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:v,className:`p-1.5`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):l===e.name?(0,G.jsxs)(`div`,{className:`flex-1 flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray-light flex-1`,children:[`Delete "`,e.name,`" from `,e.count,` archive`,e.count===1?``:`s`,`?`]}),(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:C,disabled:g.isPending,className:`p-1.5`,children:g.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>u(null),className:`p-1.5`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white flex-1 truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray text-xs`,children:e.count}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity`,children:[(0,G.jsx)(`button`,{onClick:()=>_(e),className:`p-1.5 rounded hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors`,title:`Rename tag`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>S(e.name),className:`p-1.5 rounded hover:bg-bambu-dark text-bambu-gray hover:text-red-700 dark:hover:text-red-400 transition-colors`,title:`Delete tag`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})},e.name))}):(0,G.jsx)(`div`,{className:`text-center py-8 text-bambu-gray`,children:r?`No tags match your search`:`No tags found`})}),(0,G.jsx)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:`Close`})})]})})})}var U2=`bambuddy-printlog-columns`,W2={date:`archives.log.date`,print_name:`archives.log.printName`,printer:`archives.log.printer`,user:`archives.log.user`,status:`archives.log.status`,duration:`archives.log.duration`,completed_at:`archives.log.completedAt`,filament:`archives.log.filament`,filament_used:`archives.log.filamentUsed`,cost:`archives.log.cost`,energy:`archives.log.energy`,energy_cost:`archives.log.energyCost`},G2=[{id:`date`,visible:!0},{id:`print_name`,visible:!0},{id:`printer`,visible:!0},{id:`user`,visible:!0},{id:`status`,visible:!0},{id:`duration`,visible:!0},{id:`filament`,visible:!0},{id:`filament_used`,visible:!0},{id:`completed_at`,visible:!1},{id:`cost`,visible:!1},{id:`energy`,visible:!1},{id:`energy_cost`,visible:!1}];function OVe(){try{let e=localStorage.getItem(U2);if(e){let t=JSON.parse(e),n=new Set(Object.keys(W2)),r=new Set(t.map(e=>e.id)),i=t.filter(e=>n.has(e.id)).map(e=>({id:e.id,visible:!!e.visible})),a=G2.filter(e=>!r.has(e.id));if(i.length>0)return[...i,...a]}}catch{}return G2.map(e=>({...e}))}var K2=`bambuddy-printlog-sort`,q2=new Set(Object.keys(W2)),kVe={column:`date`,direction:`desc`};function AVe(){try{let e=localStorage.getItem(K2);if(e){let t=JSON.parse(e);if(q2.has(t?.column)&&(t.direction===`asc`||t.direction===`desc`))return t}}catch{}return{...kVe}}function jVe(e){try{localStorage.setItem(K2,JSON.stringify(e))}catch{}}function MVe(e){try{localStorage.setItem(U2,JSON.stringify(e.map(e=>({id:e.id,visible:e.visible}))))}catch{}}function J2(e){let t=e.filename;if(t){let e=t.toLowerCase();if(e.endsWith(`.gcode`)||e.includes(`.gcode.`))return!0}return!!(e.total_layers||e.print_time_seconds)}async function Y2(e,t,n,r){try{if(n===`source`){let{token:n}=await Z.createSourceSlicerToken(e),i=Z.getSourceSlicerDownloadUrl(e,n,t);KW(`${window.location.origin}${i}`,r)}else{let{token:n}=await Z.createArchiveSlicerToken(e),i=Z.getArchiveSlicerDownloadUrl(e,n,t);KW(`${window.location.origin}${i}`,r)}}catch{let i=n===`source`?Z.getSource3mfForSlicer(e,t):Z.getArchiveForSlicer(e,t);KW(`${window.location.origin}${i}`,r)}}function NVe({archive:e,printerName:t,printerMap:n,isSelected:r,onSelect:i,selectionMode:a,projects:o,isHighlighted:s,timeFormat:c=`system`,preferredSlicer:l=`bambu_studio`,useSlicerApi:u=!1,currency:d,t:f,onNavigateToArchive:p}){s&&console.log(`ArchiveCard isHighlighted=true for archive:`,e.id);let m=co(),{showToast:h}=qd(),{hasPermission:g,canModify:_}=Nd(),v=or(),b=(0,y.useMemo)(()=>{let t=e.extra_data?.slicer_ams_mapping;if(!(!t||!Array.isArray(t.mapping)||t.printer_id==null))return n.get(t.printer_id)},[e.extra_data,n]),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),j=K({queryKey:[`archive`,e.id,`delete-impact`],queryFn:()=>Z.getArchiveDeleteImpact(e.id),enabled:D,staleTime:0}),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(null),[_e,ve]=(0,y.useState)(!1),[ye,be]=(0,y.useState)(null),xe=(0,y.useRef)(null),Se=(0,y.useRef)(null),Ce=(0,y.useRef)(null),{data:we}=K({queryKey:[`archive-plates`,e.id],queryFn:()=>Z.getArchivePlates(e.id),enabled:_e,staleTime:300*1e3}),Te=e.duplicate_sequence??0,Ee=e.original_archive_id??null,De=we?.plates??[],Oe=we?.is_multi_plate??!1,ke=he??0,Ae=async()=>{try{let t=await Z.getArchivePlates(e.id);if(t.has_gcode===!1){h(f(`archives.platePicker.noGcode`),`info`);return}if(t.is_multi_plate&&t.plates.length>1){be(t.plates);return}}catch{}v(`/gcode-viewer?archive=${e.id}`)},je=q({mutationFn:()=>Z.deleteArchiveTimelapse(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveTimelapse`),`error`)}}),Me=q({mutationFn:t=>Z.uploadArchiveTimelapse(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseUploaded`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadTimelapse`),`error`)}}),Ne=q({mutationFn:t=>Z.uploadSource3mf(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.source3mfAttached`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadSource3mf`),`error`)}}),Pe=q({mutationFn:()=>Z.deleteSource3mf(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.source3mfRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveSource3mf`),`error`)}}),Fe=q({mutationFn:t=>Z.uploadF3d(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.f3dAttached`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadF3d`),`error`)}}),Ie=q({mutationFn:()=>Z.deleteF3d(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.f3dRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveF3d`),`error`)}}),Le=q({mutationFn:()=>Z.scanArchiveTimelapse(e.id),onSuccess:e=>{e.status===`attached`?(m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseAttached`,{filename:e.filename}))):e.status===`exists`?h(f(`archives.toast.timelapseAlreadyAttached`)):e.status===`not_found`&&e.available_files&&e.available_files.length>0?(te(e.available_files),V(!0)):h(e.message||f(`archives.toast.noMatchingTimelapse`),`warning`)},onError:e=>{h(e.message||f(`archives.toast.failedScanTimelapse`),`error`)}}),Re=q({mutationFn:t=>Z.selectArchiveTimelapse(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseAttached`,{filename:e.filename})),V(!1),te([])},onError:e=>{h(e.message||f(`archives.toast.failedAttachTimelapse`),`error`)}}),ze=q({mutationFn:t=>Z.deleteArchive(e.id,t),onSuccess:()=>{qW(m),h(f(`archives.toast.archiveDeleted`))},onError:()=>{h(f(`archives.toast.failedDeleteArchive`),`error`)}}),Be=q({mutationFn:()=>Z.toggleFavorite(e.id),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(e.is_favorite?f(`archives.toast.addedToFavorites`):f(`archives.toast.removedFromFavorites`))}}),{data:Ve}=K({queryKey:[`archive-folders`,e.id],queryFn:()=>Z.getLibraryFoldersByArchive(e.id)}),He=q({mutationFn:t=>Z.updateArchive(e.id,{project_id:t}),onSuccess:()=>{qW(m),h(f(`archives.toast.projectUpdated`))},onError:()=>{h(f(`archives.toast.failedUpdateProject`),`error`)}}),Ue=e=>{e.preventDefault(),me({x:e.clientX,y:e.clientY})},We=[...J2(e)?[{label:f(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4`}),onClick:()=>S(!0),disabled:!e.file_path||!g(`queue:create`)||!_(`archives`,`reprint`,e.created_by_id),title:e.file_path?g(`queue:create`)?_(`archives`,`reprint`,e.created_by_id)?void 0:f(`archives.permission.noReprint`):f(`archives.permission.noAddToQueue`):f(`archives.card.noFileForReprint`)},{label:f(`archives.menu.openInBambuStudio`),icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,l)},disabled:!e.file_path,title:e.file_path?void 0:f(`archives.card.noFileForReprint`)}]:[{label:f(`archives.menu.slice`),icon:u?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{if(u)w(!0);else{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,l)}}},...u?[{label:f(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>E(!0),disabled:!g(`pipelines:run`),title:g(`pipelines:run`)?void 0:f(`library.runWithPipeline.noPermission`)}]:[]],{label:e.external_url?f(`archives.menu.externalLink`):f(`archives.menu.viewOnMakerWorld`),icon:(0,G.jsx)(Ac,{className:`w-4 h-4`}),onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url},{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>{Ae()}},{label:f(`archives.menu.viewTimelapse`),icon:(0,G.jsx)(mc,{className:`w-4 h-4`}),onClick:()=>L(!0),disabled:!e.timelapse_path},{label:f(`archives.media.download`),icon:(0,G.jsx)(uc,{className:`w-4 h-4`}),onClick:()=>z(!0),disabled:!e.timelapse_path&&(!g(`printers:files`)||!e.printer_id||!e.started_at),title:!e.timelapse_path&&!g(`printers:files`)?f(`printers.permission.noFiles`):void 0},{label:f(`archives.menu.scanForTimelapse`),icon:(0,G.jsx)(Xl,{className:`w-4 h-4`}),onClick:()=>Le.mutate(),disabled:!e.printer_id||!!e.timelapse_path||Le.isPending||!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.uploadTimelapse`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>Ce.current?.click(),disabled:!!e.timelapse_path||!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},...e.timelapse_path?[{label:f(`archives.menu.removeTimelapse`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>fe(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:e.source_3mf_path?f(`archives.menu.downloadSource3mf`):f(`archives.menu.uploadSource3mf`),icon:(0,G.jsx)(cc,{className:`w-4 h-4`}),onClick:()=>{e.source_3mf_path?Z.downloadSource3mf(e.id).catch(e=>{console.error(`Source 3MF download failed:`,e)}):xe.current?.click()},disabled:!e.source_3mf_path&&!_(`archives`,`update`,e.created_by_id),title:!e.source_3mf_path&&!_(`archives`,`update`,e.created_by_id)?f(`archives.permission.noUploadFiles`):void 0},...e.source_3mf_path?[{label:f(`archives.menu.replaceSource3mf`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>xe.current?.click(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.removeSource3mf`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ce(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:e.f3d_path?f(`archives.menu.replaceF3d`):f(`archives.menu.uploadF3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>Se.current?.click(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},...e.f3d_path?[{label:f(`archives.menu.downloadF3d`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})}},{label:f(`archives.menu.removeF3d`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ue(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},disabled:!g(`archives:read`),title:g(`archives:read`)?void 0:f(`archives.permission.noDownload`)},{label:f(`archives.menu.copyDownloadLink`),icon:(0,G.jsx)(Vs,{className:`w-4 h-4`}),onClick:()=>{let t=`${window.location.origin}${Z.getArchiveDownload(e.id)}`;navigator.clipboard.writeText(t).then(()=>{h(f(`archives.toast.linkCopied`))}).catch(()=>{h(f(`archives.toast.failedCopyLink`),`error`)})},disabled:!g(`archives:read`),title:g(`archives:read`)?void 0:f(`archives.permission.noCopyLink`)},{label:f(`archives.menu.qrCode`),icon:(0,G.jsx)(zl,{className:`w-4 h-4`}),onClick:()=>re(!0)},{label:e.photos?.length?f(`archives.menu.viewPhotosCount`,{count:e.photos.length}):f(`archives.menu.viewPhotos`),icon:(0,G.jsx)(ss,{className:`w-4 h-4`}),onClick:()=>ae(!0),disabled:!e.photos?.length},{label:f(`archives.menu.projectPage`),icon:(0,G.jsx)(fc,{className:`w-4 h-4`}),onClick:()=>se(!0)},{label:``,divider:!0,onClick:()=>{}},{label:e.is_favorite?f(`archives.menu.removeFromFavorites`):f(`archives.menu.addToFavorites`),icon:(0,G.jsx)(xu,{className:`w-4 h-4 ${e.is_favorite?`fill-yellow-400 text-yellow-400`:_(`archives`,`update`,e.created_by_id)?`group-hover:text-yellow-400`:``}`}),onClick:()=>Be.mutate(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.edit`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>N(!0),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.printLog`),icon:(0,G.jsx)(zc,{className:`w-4 h-4`}),onClick:()=>F(!0)},...e.project_id&&e.project_name?[{label:f(`archives.menu.goToProject`,{name:e.project_name}),icon:(0,G.jsx)(_c,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>window.location.href=`/projects`}]:[],{label:f(`archives.menu.addToProject`),icon:(0,G.jsx)(_c,{className:`w-4 h-4`}),onClick:()=>{},disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`),submenuSearchPlaceholder:JW(o??[],e.project_id).length>5?f(`archives.menu.searchProjects`):void 0,submenu:(()=>{let t=[];if(e.project_id&&t.push({label:f(`archives.menu.removeFromProject`),icon:(0,G.jsx)(nd,{className:`w-4 h-4`}),onClick:()=>He.mutate(null),disabled:!_(`archives`,`update`,e.created_by_id)}),!o)t.push({label:f(`archives.menu.loading`),icon:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),onClick:()=>{},disabled:!0});else{let n=JW(o,e.project_id).sort((e,t)=>e.name.localeCompare(t.name));n.length===0?t.push({label:f(`archives.menu.noProjectsAvailable`),icon:(0,G.jsx)(_c,{className:`w-4 h-4 opacity-50`}),onClick:()=>{},disabled:!0}):n.forEach(n=>{t.push({label:n.name,icon:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:n.color||`#888`}}),onClick:()=>He.mutate(n.id),disabled:e.project_id===n.id||!_(`archives`,`update`,e.created_by_id)})})}return t})()},{label:f(r?`archives.menu.deselect`:`archives.menu.select`),icon:r?(0,G.jsx)(vu,{className:`w-4 h-4`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),onClick:()=>i(e.id)},{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>O(!0),danger:!0,disabled:!_(`archives`,`delete`,e.created_by_id),title:_(`archives`,`delete`,e.created_by_id)?void 0:f(`archives.permission.noDelete`)}];return(0,G.jsxs)(zd,{"data-archive-id":e.id,className:`relative flex flex-col group ${r?`ring-2 ring-bambu-green`:``} ${a?`cursor-pointer`:``}`,style:s?{outline:`4px solid #facc15`,outlineOffset:`2px`}:void 0,onContextMenu:Ue,onClick:a?()=>i(e.id):void 0,children:[a&&(0,G.jsx)(`button`,{className:`absolute top-2 left-2 z-10 p-1 rounded bg-black/50 hover:bg-black/70 transition-colors`,onClick:t=>{t.stopPropagation(),i(e.id)},children:r?(0,G.jsx)(vu,{className:`w-5 h-5 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-5 h-5 text-white`})}),(0,G.jsxs)(`div`,{className:`aspect-video bg-bambu-dark relative flex-shrink-0 overflow-hidden rounded-t-xl`,onMouseEnter:()=>ve(!0),onMouseLeave:()=>ve(!1),children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:he!==null&&De.length>0?Z.getArchivePlateThumbnail(e.id,De[ke]?.index??0):Z.getArchiveThumbnail(e.id),alt:e.print_name||e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(Hc,{className:`w-12 h-12 text-bambu-dark-tertiary`})}),Oe&&De.length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`absolute left-1 top-1/2 -translate-y-1/2 p-1 rounded-full bg-black/60 hover:bg-black/80 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>{e.stopPropagation(),ge(e=>{let t=e??0;return t>0?t-1:De.length-1})},title:f(`archives.card.previousPlate`),children:(0,G.jsx)(hs,{className:`w-4 h-4 text-white`})}),(0,G.jsx)(`button`,{className:`absolute right-1 top-1/2 -translate-y-1/2 p-1 rounded-full bg-black/60 hover:bg-black/80 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>{e.stopPropagation(),ge(e=>{let t=e??0;return t(0,G.jsx)(`button`,{className:`w-2 h-2 rounded-full transition-colors ${t===ke?`bg-bambu-green`:`bg-white/50 hover:bg-white/80`}`,onClick:e=>{e.stopPropagation(),ge(t)},title:e.name||f(`archives.card.plateNumber`,{index:e.index})},e.index))})]}),(0,G.jsx)(`button`,{className:`absolute top-2 left-2 p-1.5 rounded bg-black/50 hover:bg-black/70 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 ${a?`left-10`:``}`,onClick:e=>{e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();me({x:t.left,y:t.bottom+4})},title:f(`archives.card.moreOptions`),children:(0,G.jsx)($s,{className:`w-5 h-5 text-white`})}),(0,G.jsx)(`button`,{className:`absolute top-2 right-2 p-1 rounded transition-colors ${_(`archives`,`update`,e.created_by_id)?`bg-black/50 hover:bg-black/70`:`bg-black/30 cursor-not-allowed`}`,onClick:t=>{t.stopPropagation(),_(`archives`,`update`,e.created_by_id)&&Be.mutate()},disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?e.is_favorite?f(`archives.card.removeFromFavorites`):f(`archives.card.addToFavorites`):f(`archives.permission.noUpdateArchives`),children:(0,G.jsx)(xu,{className:`w-5 h-5 ${e.is_favorite?`text-yellow-400 fill-yellow-400`:`text-white`} ${_(`archives`,`update`,e.created_by_id)?``:`opacity-50`}`})}),(e.status===`failed`||e.status===`aborted`)&&(0,G.jsx)(`div`,{className:`absolute top-2 left-12 px-2 py-1 rounded text-xs bg-status-error/80 text-white`,children:e.status===`aborted`?f(`archives.card.cancelled`):f(`archives.card.failed`)}),e.duplicate_count>0&&Te>0&&Ee&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),p?.(Ee)},className:`absolute top-2 right-12 px-2 py-1 rounded text-xs bg-purple-500/80 hover:bg-purple-600/90 text-white flex items-center gap-1 transition-colors cursor-pointer`,title:f(`archives.viewOriginalPrint`,{id:Ee}),children:[(0,G.jsx)(Vs,{className:`w-3 h-3`}),`#`,Te]}),e.duplicate_count>0&&Te===0&&(0,G.jsxs)(`span`,{className:`absolute top-2 right-12 px-2 py-1 rounded text-xs bg-purple-500/80 text-white flex items-center gap-1`,title:`${e.duplicate_count} reprint${e.duplicate_count===1?``:`s`}`,children:[(0,G.jsx)(Dc,{className:`w-3 h-3`}),`+`,e.duplicate_count]}),e.source_3mf_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 left-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:t=>{t.stopPropagation();let n=(e.print_name||e.filename||`source`).replace(/\.gcode\.3mf$/i,``)+`_source`;Y2(e.id,n,`source`,l)},title:f(`archives.card.openSource3mf`),children:(0,G.jsx)(cc,{className:`w-4 h-4 text-orange-400`})}),e.f3d_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 ${e.source_3mf_path?`left-12`:`left-2`} p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:t=>{t.stopPropagation(),Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})},title:f(`archives.card.downloadF3d`),children:(0,G.jsx)(Zo,{className:`w-4 h-4 text-cyan-400`})}),(0,G.jsx)(`button`,{className:`absolute bottom-2 right-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),Ae()},title:f(`archives.card.preview3d`),children:(0,G.jsx)(Jc,{className:`w-4 h-4 text-white`})}),e.timelapse_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 right-12 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),L(!0)},title:f(`archives.card.viewTimelapse`),children:(0,G.jsx)(mc,{className:`w-4 h-4 text-bambu-green`})}),e.photos&&e.photos.length>0&&(0,G.jsxs)(`button`,{className:`absolute bottom-2 ${e.timelapse_path?`right-[5.5rem]`:`right-12`} p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),ae(!0)},title:e.photos.length===1?f(`archives.card.viewPhoto`):f(`archives.card.viewPhotos`,{count:e.photos.length}),children:[(0,G.jsx)(ss,{className:`w-4 h-4 text-blue-400`}),e.photos.length>1&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 w-4 h-4 bg-blue-500 rounded-full text-[10px] text-white flex items-center justify-center`,children:e.photos.length})]}),Ve&&Ve.length>0&&(0,G.jsx)(Ai,{to:`/files?folder=${Ve[0].id}`,className:`absolute bottom-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>e.stopPropagation(),title:f(`archives.card.openFolder`,{name:Ve[0].name}),style:{left:e.source_3mf_path?e.f3d_path?`5.5rem`:`3rem`:e.f3d_path?`3rem`:`0.5rem`},children:(0,G.jsx)(vc,{className:`w-4 h-4 text-yellow-400`})})]}),(0,G.jsxs)(Vd,{className:`p-4 flex-1 flex flex-col`,children:[(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray/70 mb-1`,children:[`#`,e.id]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-1`,children:[(0,G.jsxs)(`h3`,{className:`min-w-0 font-medium text-white truncate`,children:[e.print_name||e.filename,e.plate_id!=null&&e.plate_id>1&&` — ${f(`printers.plateNumber`,{number:e.plate_id})}`]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,className:`p-1 sm:p-1.5 shrink-0`,onClick:()=>N(!0),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?f(`archives.card.edit`):f(`archives.card.noPermissionEdit`),children:(0,G.jsx)(Al,{className:`w-3 h-3 sm:w-4 sm:h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 flex-wrap`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsx)(`img`,{src:t.icon,alt:t.label,title:t.label,className:`w-4 h-4 flex-shrink-0`}):null})(),(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded font-medium ${J2(e)?`bg-bambu-green/20 text-bambu-green`:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`}`,title:J2(e)?f(`archives.card.slicedFile`):f(`archives.card.sourceFile`),children:J2(e)?f(`archives.card.gcode`):f(`archives.card.source`)}),e.content_hash&&(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded font-mono bg-bambu-dark-tertiary/50 text-bambu-gray-light opacity-0 transition-opacity duration-150 group-hover:opacity-100`,title:`SHA256: ${e.content_hash}`,children:e.content_hash.slice(0,8).toUpperCase()}),e.project_name&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full truncate max-w-[120px]`,style:{backgroundColor:`${o?.find(t=>t.id===e.project_id)?.color||`#6b7280`}20`,color:o?.find(t=>t.id===e.project_id)?.color||`#6b7280`},title:f(`archives.card.project`,{name:e.project_name}),children:e.project_name}),e.run_count>1&&(0,G.jsx)(`button`,{className:`text-[10px] px-1.5 py-0.5 rounded font-medium bg-bambu-orange/20 text-bambu-orange hover:bg-bambu-orange/30 transition-colors cursor-pointer`,onClick:e=>{e.stopPropagation(),F(!0)},title:f(`archives.card.runsBadgeTitle`,{count:e.run_count,successful:e.successful_run_count,failed:e.failed_run_count}),children:f(`archives.card.runsBadge`,{count:e.run_count})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs mb-4 min-h-[48px]`,children:[(e.print_time_seconds||e.actual_time_seconds)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:e.time_accuracy?`Estimated: ${lp(e.print_time_seconds||0)}\nActual: ${lp(e.actual_time_seconds||0)}\nAccuracy: ${e.time_accuracy.toFixed(0)}%`:e.actual_time_seconds?`Actual: ${lp(e.actual_time_seconds)}`:`Estimated: ${lp(e.print_time_seconds||0)}`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.actual_time_seconds||e.print_time_seconds||0),e.time_accuracy&&(0,G.jsxs)(`span`,{className:`text-[10px] px-1 rounded ${e.time_accuracy>=95&&e.time_accuracy<=105?`bg-bambu-green/20 text-bambu-green`:e.time_accuracy>105?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`}`,children:[e.time_accuracy>100?`+`:``,(e.time_accuracy-100).toFixed(0),`%`]})]}),e.filament_used_grams&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-3 h-3`}),e.filament_used_grams.toFixed(1),`g`]}),(e.cost!=null||e.energy_cost!=null)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-bambu-gray`,children:[e.cost!=null&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Ls,{className:`w-3 h-3`}),d,e.cost.toFixed(2)]}),e.energy_cost!=null&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:`${f(`stats.energyUsed`)}: ${e.energy_kwh?.toFixed(3)||`N/A`} kWh`,children:[(0,G.jsx)(id,{className:`w-3 h-3`}),d,e.energy_cost.toFixed(2)]})]}),(e.layer_height||e.total_layers)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),e.total_layers&&(0,G.jsx)(`span`,{children:e.total_layers===1?f(`archives.card.layer`,{count:e.total_layers}):f(`archives.card.layers`,{count:e.total_layers})}),e.total_layers&&e.layer_height&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`·`}),e.layer_height&&(0,G.jsxs)(`span`,{children:[e.layer_height,`mm`]})]}),e.object_count!=null&&e.object_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:e.object_count===1?f(`archives.card.object`,{count:e.object_count}):f(`archives.card.objects`,{count:e.object_count}),children:[(0,G.jsx)(Zo,{className:`w-3 h-3`}),e.object_count===1?f(`archives.card.object`,{count:e.object_count}):f(`archives.card.objects`,{count:e.object_count})]}),e.sliced_for_model&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:f(`archives.card.slicedFor`,{model:e.sliced_for_model}),children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),e.sliced_for_model]}),e.filament_type&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 col-span-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e.filament_type}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e},title:e},t))})]})]}),b&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-green text-xs mb-3`,title:f(`archives.card.slicerAmsMappingTooltip`,{printer:b}),children:[(0,G.jsx)(Ss,{className:`w-3.5 h-3.5`}),f(`archives.card.slicerAmsMapping`,{printer:b})]}),(e.tags||e.notes)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 mb-3`,children:[e.notes&&(0,G.jsx)(`div`,{className:`flex items-center gap-1 px-1.5 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 rounded text-xs`,title:e.notes,children:(0,G.jsx)(Cu,{className:`w-3 h-3`})}),e.tags?.split(`,`).map((e,t)=>(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-bambu-dark-tertiary text-bambu-gray-light rounded text-xs`,children:e.trim()},t))]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`span`,{children:op(e.created_at,c)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.created_by_username&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:f(`archives.card.uploadedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]}),(0,G.jsx)(`span`,{children:Gd(e.file_size)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-1 mt-3`,children:[J2(e)?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,className:`flex-1 min-w-0 overflow-hidden`,onClick:()=>S(!0),disabled:!e.file_path||!g(`queue:create`)||!_(`archives`,`reprint`,e.created_by_id),title:e.file_path?g(`queue:create`)?_(`archives`,`reprint`,e.created_by_id)?void 0:f(`archives.card.noPermissionReprint`):f(`archives.permission.noAddToQueue`):f(`archives.card.noFileForReprint`),children:[(0,G.jsx)(Rl,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`hidden xl:inline truncate`,children:f(`common.print`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,l)},title:f(`archives.card.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-3 h-3 sm:w-4 sm:h-4`})})]}):(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,className:`flex-1 min-w-0 overflow-hidden`,onClick:()=>{if(u)w(!0);else{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,l)}},title:f(u?`slice.title`:`archives.card.openInBambuStudioToSlice`),children:[u?(0,G.jsx)(Rs,{className:`w-3 h-3 flex-shrink-0`}):(0,G.jsx)(rc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`hidden xl:inline truncate`,children:f(`archives.card.slice`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url,title:e.external_url?f(`archives.card.externalLink`):e.makerworld_url?f(`archives.card.makerWorld`,{designer:e.designer||f(`archives.card.viewProject`)}):f(`archives.card.noExternalLink`),children:(0,G.jsx)(Ac,{className:`w-3 h-3 sm:w-4 sm:h-4 ${!e.external_url&&!e.makerworld_url?`opacity-20`:``}`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},title:f(`archives.card.download`),children:(0,G.jsx)(Xs,{className:`w-3 h-3 sm:w-4 sm:h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>O(!0),disabled:!_(`archives`,`delete`,e.created_by_id),title:_(`archives`,`delete`,e.created_by_id)?f(`archives.card.delete`):f(`archives.card.noPermissionDelete`),children:(0,G.jsx)(Pu,{className:`w-3 h-3 sm:w-4 sm:h-4 text-red-600 dark:text-red-400`})})]})]}),M&&(0,G.jsx)($W,{archive:e,onClose:()=>N(!1)}),P&&(0,G.jsx)(eG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>F(!1)}),ye&&(0,G.jsx)(bW,{plates:ye,onSelect:t=>{be(null),v(`/gcode-viewer?archive=${e.id}&plate=${t}`)},onClose:()=>be(null)}),x&&(0,G.jsx)(zU,{mode:`create`,archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>S(!1)}),C&&(0,G.jsx)(RW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>w(!1)}),T&&(0,G.jsx)(VW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>E(!1)}),D&&(0,G.jsxs)(of,{title:f(`archives.modal.deleteArchive`),message:f(`archives.modal.deleteConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.deleteButton`),variant:`danger`,confirmDisabled:(j.data?.currently_printing??0)>0,onConfirm:()=>{ze.mutate(k),O(!1),A(!1)},onCancel:()=>{O(!1),A(!1)},children:[(j.data?.related_queue_items??0)>0&&(0,G.jsx)(`div`,{className:(j.data?.currently_printing??0)>0?`text-sm text-red-600 dark:text-red-400 mb-2`:`text-sm text-amber-600 dark:text-amber-400 mb-2`,children:(j.data?.currently_printing??0)>0?f(`archives.modal.deleteBlockedByPrinting`,{count:j.data.currently_printing}):f(`archives.modal.deleteQueueItemsWarning`,{count:j.data.related_queue_items})}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 accent-red-500`,checked:k,onChange:e=>A(e.target.checked)}),(0,G.jsx)(`span`,{children:f(`archives.modal.deletePurgeStats`)})]})]}),H&&(0,G.jsx)(of,{title:f(`archives.modal.removeSource3mf`),message:f(`archives.modal.removeSource3mfConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Pe.mutate(),ce(!1)},onCancel:()=>ce(!1)}),le&&(0,G.jsx)(of,{title:f(`archives.modal.removeF3d`),message:f(`archives.modal.removeF3dConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Ie.mutate(),ue(!1)},onCancel:()=>ue(!1)}),de&&(0,G.jsx)(of,{title:f(`archives.modal.removeTimelapse`),message:f(`archives.modal.removeTimelapseConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{je.mutate(),fe(!1)},onCancel:()=>fe(!1)}),pe&&(0,G.jsx)(kT,{x:pe.x,y:pe.y,items:We,onClose:()=>me(null)}),R&&(0,G.jsx)(H2,{archiveId:e.id,archiveName:e.print_name||e.filename,printerName:t,onClose:()=>z(!1)}),I&&e.timelapse_path&&(0,G.jsx)(V2,{src:Z.getArchiveTimelapse(e.id),title:f(`archives.modal.timelapse`,{name:e.print_name||e.filename}),downloadFilename:`${e.print_name||e.filename}_timelapse.mp4`,archiveId:e.id,onClose:()=>L(!1),onEdit:()=>{m.invalidateQueries({queryKey:[`archives`]}),L(!1)}}),B&&ee.length>0&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-card-dark rounded-lg max-w-lg w-full max-h-[80vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:f(`archives.modal.selectTimelapse`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:f(`archives.modal.selectTimelapseDesc`)})]}),(0,G.jsx)(`button`,{onClick:()=>{V(!1),te([])},className:`text-gray-400 hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 p-2`,children:ee.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Re.mutate(e.name),disabled:Re.isPending,className:`w-full text-left p-3 rounded-lg hover:bg-gray-700 transition-colors flex items-center gap-3 disabled:opacity-50`,children:[(0,G.jsx)(mc,{className:`w-8 h-8 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-sm text-gray-400`,children:[Gd(e.size),e.mtime&&` • ${op(e.mtime,c)}`]})]})]},e.name))}),(0,G.jsx)(`div`,{className:`p-4 border-t border-gray-700`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{V(!1),te([])},className:`w-full`,children:`Cancel`})})]})}),ne&&(0,G.jsx)(nG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>re(!1)}),ie&&e.photos&&e.photos.length>0&&(0,G.jsx)(rG,{archiveId:e.id,archiveName:e.print_name||e.filename,photos:e.photos,onClose:()=>ae(!1),onDelete:async t=>{try{await Z.deleteArchivePhoto(e.id,t),m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.photoDeleted`))}catch{h(f(`archives.toast.failedDeletePhoto`),`error`)}}}),oe&&(0,G.jsx)(B2,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>se(!1)}),(0,G.jsx)(`input`,{ref:xe,type:`file`,accept:`.3mf`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Ne.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:Se,type:`file`,accept:`.f3d`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Fe.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:Ce,type:`file`,accept:`.mp4,.avi,.mkv`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Me.mutate(t),e.target.value=``}})]})}function PVe({archive:e,printerName:t,isSelected:n,onSelect:r,selectionMode:i,projects:a,isHighlighted:o,preferredSlicer:s=`bambu_studio`,useSlicerApi:c=!1,t:l,onNavigateToArchive:u}){let d=co(),{showToast:f}=qd(),{hasPermission:p,canModify:m}=Nd(),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),w=K({queryKey:[`archive`,e.id,`delete-impact`],queryFn:()=>Z.getArchiveDeleteImpact(e.id),enabled:b,staleTime:0}),T=or(),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)([]),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(null),de=(0,y.useRef)(null),fe=(0,y.useRef)(null),pe=(0,y.useRef)(null),[me,he]=(0,y.useState)(null),ge=e.duplicate_sequence??0,_e=e.original_archive_id??null,ve=async()=>{try{let t=await Z.getArchivePlates(e.id);if(t.is_multi_plate&&t.plates.length>1){he(t.plates);return}}catch{}T(`/gcode-viewer?archive=${e.id}`)},ye=q({mutationFn:()=>Z.deleteArchiveTimelapse(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveTimelapse`),`error`)}}),be=q({mutationFn:t=>Z.uploadArchiveTimelapse(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseUploaded`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadTimelapse`),`error`)}}),xe=q({mutationFn:t=>Z.uploadSource3mf(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.source3mfAttached`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadSource3mf`),`error`)}}),Se=q({mutationFn:()=>Z.deleteSource3mf(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.source3mfRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveSource3mf`),`error`)}}),Ce=q({mutationFn:t=>Z.uploadF3d(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.f3dAttached`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadF3d`),`error`)}}),we=q({mutationFn:()=>Z.deleteF3d(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.f3dRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveF3d`),`error`)}}),Te=q({mutationFn:()=>Z.scanArchiveTimelapse(e.id),onSuccess:e=>{e.status===`attached`?(d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseAttached`,{filename:e.filename}))):e.status===`exists`?f(l(`archives.toast.timelapseAlreadyAttached`)):e.status===`not_found`&&e.available_files&&e.available_files.length>0?(z(e.available_files),L(!0)):f(e.message||l(`archives.toast.noMatchingTimelapse`),`warning`)},onError:e=>{f(e.message||l(`archives.toast.failedScanTimelapse`),`error`)}}),Ee=q({mutationFn:t=>Z.selectArchiveTimelapse(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseAttached`,{filename:e.filename})),L(!1),z([])},onError:e=>{f(e.message||l(`archives.toast.failedAttachTimelapse`),`error`)}}),De=q({mutationFn:t=>Z.deleteArchive(e.id,t),onSuccess:()=>{qW(d),f(l(`archives.toast.archiveDeleted`))},onError:()=>{f(l(`archives.toast.failedDeleteArchive`),`error`)}}),Oe=q({mutationFn:()=>Z.toggleFavorite(e.id),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(e.is_favorite?l(`archives.toast.addedToFavorites`):l(`archives.toast.removedFromFavorites`))}}),{data:ke}=K({queryKey:[`archive-folders`,e.id],queryFn:()=>Z.getLibraryFoldersByArchive(e.id)}),Ae=q({mutationFn:t=>Z.updateArchive(e.id,{project_id:t}),onSuccess:()=>{qW(d),f(l(`archives.toast.projectUpdated`))},onError:()=>{f(l(`archives.toast.failedUpdateProject`),`error`)}}),je=e=>{e.preventDefault(),ue({x:e.clientX,y:e.clientY})},Me=[...J2(e)?[{label:l(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4`}),onClick:()=>D(!0),disabled:!e.file_path||!p(`queue:create`)||!m(`archives`,`reprint`,e.created_by_id),title:e.file_path?p(`queue:create`)?m(`archives`,`reprint`,e.created_by_id)?void 0:l(`archives.permission.noReprint`):l(`archives.permission.noAddToQueue`):l(`archives.card.noFileForReprint`)},{label:l(`archives.menu.openInBambuStudio`),icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,s)},disabled:!e.file_path,title:e.file_path?void 0:l(`archives.card.noFileForReprint`)}]:[{label:l(`archives.menu.slice`),icon:c?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{if(c)k(!0);else{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,s)}}},...c?[{label:l(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>j(!0),disabled:!p(`pipelines:run`),title:p(`pipelines:run`)?void 0:l(`library.runWithPipeline.noPermission`)}]:[]],{label:e.external_url?l(`archives.menu.externalLink`):l(`archives.menu.viewOnMakerWorld`),icon:(0,G.jsx)(Ac,{className:`w-4 h-4`}),onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url},{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>{ve()}},{label:l(`archives.menu.viewTimelapse`),icon:(0,G.jsx)(mc,{className:`w-4 h-4`}),onClick:()=>N(!0),disabled:!e.timelapse_path},{label:l(`archives.menu.scanForTimelapse`),icon:(0,G.jsx)(Xl,{className:`w-4 h-4`}),onClick:()=>Te.mutate(),disabled:!e.printer_id||!!e.timelapse_path||Te.isPending||!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.uploadTimelapse`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>pe.current?.click(),disabled:!!e.timelapse_path||!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},...e.timelapse_path?[{label:l(`archives.menu.removeTimelapse`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ce(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:e.source_3mf_path?l(`archives.menu.downloadSource3mf`):l(`archives.menu.uploadSource3mf`),icon:(0,G.jsx)(cc,{className:`w-4 h-4`}),onClick:()=>{e.source_3mf_path?Z.downloadSource3mf(e.id).catch(e=>{console.error(`Source 3MF download failed:`,e)}):de.current?.click()},disabled:!e.source_3mf_path&&!m(`archives`,`update`,e.created_by_id),title:!e.source_3mf_path&&!m(`archives`,`update`,e.created_by_id)?l(`archives.permission.noUploadFiles`):void 0},...e.source_3mf_path?[{label:l(`archives.menu.replaceSource3mf`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>de.current?.click(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.removeSource3mf`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ae(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:e.f3d_path?l(`archives.menu.replaceF3d`):l(`archives.menu.uploadF3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>fe.current?.click(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},...e.f3d_path?[{label:l(`archives.menu.downloadF3d`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})}},{label:l(`archives.menu.removeF3d`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>se(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},disabled:!p(`archives:read`),title:p(`archives:read`)?void 0:l(`archives.permission.noDownload`)},{label:l(`archives.menu.copyDownloadLink`),icon:(0,G.jsx)(Vs,{className:`w-4 h-4`}),onClick:()=>{let t=`${window.location.origin}${Z.getArchiveDownload(e.id)}`;navigator.clipboard.writeText(t).then(()=>{f(l(`archives.toast.linkCopied`))}).catch(()=>{f(l(`archives.toast.failedCopyLink`),`error`)})},disabled:!p(`archives:read`),title:p(`archives:read`)?void 0:l(`archives.permission.noCopyLink`)},{label:l(`archives.menu.qrCode`),icon:(0,G.jsx)(zl,{className:`w-4 h-4`}),onClick:()=>V(!0)},{label:e.photos?.length?l(`archives.menu.viewPhotosCount`,{count:e.photos.length}):l(`archives.menu.viewPhotos`),icon:(0,G.jsx)(ss,{className:`w-4 h-4`}),onClick:()=>te(!0),disabled:!e.photos?.length},{label:l(`archives.menu.projectPage`),icon:(0,G.jsx)(fc,{className:`w-4 h-4`}),onClick:()=>re(!0)},{label:``,divider:!0,onClick:()=>{}},{label:e.is_favorite?l(`archives.menu.removeFromFavorites`):l(`archives.menu.addToFavorites`),icon:(0,G.jsx)(xu,{className:`w-4 h-4 ${e.is_favorite?`fill-yellow-400 text-yellow-400`:m(`archives`,`update`,e.created_by_id)?`group-hover:text-yellow-400`:``}`}),onClick:()=>Oe.mutate(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.edit`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>g(!0),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.printLog`),icon:(0,G.jsx)(zc,{className:`w-4 h-4`}),onClick:()=>v(!0)},...e.project_id&&e.project_name?[{label:l(`archives.menu.goToProject`,{name:e.project_name}),icon:(0,G.jsx)(_c,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>window.location.href=`/projects`}]:[],{label:l(`archives.menu.addToProject`),icon:(0,G.jsx)(_c,{className:`w-4 h-4`}),onClick:()=>{},submenuSearchPlaceholder:JW(a??[],e.project_id).length>5?l(`archives.menu.searchProjects`):void 0,submenu:(()=>{let t=[];if(e.project_id&&t.push({label:l(`archives.menu.removeFromProject`),icon:(0,G.jsx)(nd,{className:`w-4 h-4`}),onClick:()=>Ae.mutate(null)}),!a)t.push({label:l(`archives.menu.loading`),icon:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),onClick:()=>{},disabled:!0});else{let n=JW(a,e.project_id).sort((e,t)=>e.name.localeCompare(t.name));n.length===0?t.push({label:l(`archives.menu.noProjectsAvailable`),icon:(0,G.jsx)(_c,{className:`w-4 h-4 opacity-50`}),onClick:()=>{},disabled:!0}):n.forEach(n=>{t.push({label:n.name,icon:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:n.color||`#888`}}),onClick:()=>Ae.mutate(n.id),disabled:e.project_id===n.id})})}return t})()},{label:l(n?`archives.menu.deselect`:`archives.menu.select`),icon:n?(0,G.jsx)(vu,{className:`w-4 h-4`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),onClick:()=>r(e.id)},{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>x(!0),danger:!0,disabled:!m(`archives`,`delete`,e.created_by_id),title:m(`archives`,`delete`,e.created_by_id)?void 0:l(`archives.permission.noDelete`)}];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{"data-archive-id":e.id,className:`grid grid-cols-12 gap-4 px-4 py-3 items-center hover:bg-bambu-dark-tertiary/30 ${n?`bg-bambu-green/10`:``}`,style:o?{outline:`4px solid #facc15`,outlineOffset:`-4px`}:void 0,onContextMenu:je,children:[(0,G.jsxs)(`div`,{className:`col-span-1 flex items-center gap-2`,children:[i&&(0,G.jsx)(`button`,{onClick:()=>r(e.id),children:n?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray`})}),e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:``,className:`w-10 h-10 object-cover rounded`}):(0,G.jsx)(`div`,{className:`w-10 h-10 bg-bambu-dark rounded flex items-center justify-center`,children:(0,G.jsx)(Hc,{className:`w-5 h-5 text-bambu-dark-tertiary`})})]}),(0,G.jsxs)(`div`,{className:`col-span-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-white text-sm truncate`,children:e.print_name||e.filename}),(e.status===`failed`||e.status===`aborted`)&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-status-error/80 text-white flex-shrink-0`,children:e.status===`aborted`?l(`archives.card.cancelled`):l(`archives.card.failed`)}),e.duplicate_count>0&&ge>0&&_e&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),u?.(_e)},className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-purple-500/80 hover:bg-purple-600/90 text-white flex-shrink-0 transition-colors flex items-center gap-1`,title:l(`archives.viewOriginalPrint`,{id:_e}),children:[(0,G.jsx)(Vs,{className:`w-3 h-3`}),`#`,ge]}),e.duplicate_count>0&&ge===0&&(0,G.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-purple-500/80 text-white flex-shrink-0 flex items-center gap-1`,title:`${e.duplicate_count} reprint${e.duplicate_count===1?``:`s`}`,children:[(0,G.jsx)(Dc,{className:`w-3 h-3`}),`+`,e.duplicate_count]}),e.timelapse_path&&(0,G.jsx)(`span`,{title:l(`archives.list.hasTimelapse`),children:(0,G.jsx)(mc,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`})}),ke&&ke.length>0&&(0,G.jsx)(Ai,{to:`/files?folder=${ke[0].id}`,className:`flex-shrink-0`,title:l(`archives.card.openFolder`,{name:ke[0].name}),onClick:e=>e.stopPropagation(),children:(0,G.jsx)(vc,{className:`w-3.5 h-3.5 text-yellow-600 dark:text-yellow-400`})})]}),(e.filament_type||e.sliced_for_model)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-0.5`,children:[e.sliced_for_model&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex items-center gap-1`,title:l(`archives.card.slicedFor`,{model:e.sliced_for_model}),children:[(0,G.jsx)(Rl,{className:`w-2.5 h-2.5`}),e.sliced_for_model]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsx)(`img`,{src:t.icon,alt:t.label,title:t.label,className:`w-3.5 h-3.5 flex-shrink-0`}):null})(),e.sliced_for_model&&e.filament_type&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`·`}),e.filament_type&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.filament_type}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full border border-black/20`,style:{backgroundColor:e},title:e},t))})]})]}),(0,G.jsx)(`div`,{className:`col-span-2 text-sm text-bambu-gray truncate`,children:t}),(0,G.jsxs)(`div`,{className:`col-span-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`div`,{children:ap(e.created_at)}),e.created_by_username&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-xs opacity-75`,title:l(`archives.card.uploadedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]})]}),(0,G.jsx)(`div`,{className:`col-span-1 text-sm text-bambu-gray`,children:Gd(e.file_size)}),(0,G.jsxs)(`div`,{className:`col-span-2 flex justify-end gap-1`,children:[J2(e)&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>D(!0),disabled:!e.file_path||!p(`queue:create`)||!m(`archives`,`reprint`,e.created_by_id),title:e.file_path?p(`queue:create`)?m(`archives`,`reprint`,e.created_by_id)?l(`common.print`):l(`archives.card.noPermissionReprint`):l(`archives.permission.noAddToQueue`):l(`archives.card.noFileForReprint`),className:`text-bambu-green hover:text-bambu-green-light hover:bg-bambu-green/10`,children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let t=e.print_name||e.filename||`model`;Y2(e.id,t,`file`,s)},title:l(`archives.card.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-4 h-4`})}),(e.external_url||e.makerworld_url)&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>window.open(e.external_url||e.makerworld_url,`_blank`),title:e.external_url?l(`archives.card.externalLink`):`MakerWorld`,children:(0,G.jsx)(Ac,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>F(!0),disabled:!e.timelapse_path&&(!p(`printers:files`)||!e.printer_id||!e.started_at),title:!e.timelapse_path&&!p(`printers:files`)?l(`printers.permission.noFiles`):l(`archives.media.download`),children:(0,G.jsx)(mc,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},title:l(`archives.card.download`),children:(0,G.jsx)(Xs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>g(!0),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?l(`archives.card.edit`):l(`archives.card.noPermissionEdit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>x(!0),disabled:!m(`archives`,`delete`,e.created_by_id),title:m(`archives`,`delete`,e.created_by_id)?l(`archives.card.delete`):l(`archives.card.noPermissionDelete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();ue({x:t.left,y:t.bottom+4})},title:l(`archives.card.moreOptions`),children:(0,G.jsx)($s,{className:`w-4 h-4`})})]})]}),h&&(0,G.jsx)($W,{archive:e,onClose:()=>g(!1)}),_&&(0,G.jsx)(eG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>v(!1)}),me&&(0,G.jsx)(bW,{plates:me,onSelect:t=>{he(null),T(`/gcode-viewer?archive=${e.id}&plate=${t}`)},onClose:()=>he(null)}),E&&(0,G.jsx)(zU,{mode:`create`,archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>D(!1)}),O&&(0,G.jsx)(RW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>k(!1)}),A&&(0,G.jsx)(VW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>j(!1)}),b&&(0,G.jsxs)(of,{title:l(`archives.modal.deleteArchive`),message:l(`archives.modal.deleteConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.deleteButton`),variant:`danger`,confirmDisabled:(w.data?.currently_printing??0)>0,onConfirm:()=>{De.mutate(S),x(!1),C(!1)},onCancel:()=>{x(!1),C(!1)},children:[(w.data?.related_queue_items??0)>0&&(0,G.jsx)(`div`,{className:(w.data?.currently_printing??0)>0?`text-sm text-red-600 dark:text-red-400 mb-2`:`text-sm text-amber-600 dark:text-amber-400 mb-2`,children:(w.data?.currently_printing??0)>0?l(`archives.modal.deleteBlockedByPrinting`,{count:w.data.currently_printing}):l(`archives.modal.deleteQueueItemsWarning`,{count:w.data.related_queue_items})}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 accent-red-500`,checked:S,onChange:e=>C(e.target.checked)}),(0,G.jsx)(`span`,{children:l(`archives.modal.deletePurgeStats`)})]})]}),ie&&(0,G.jsx)(of,{title:l(`archives.modal.removeSource3mf`),message:l(`archives.modal.removeSource3mfConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Se.mutate(),ae(!1)},onCancel:()=>ae(!1)}),oe&&(0,G.jsx)(of,{title:l(`archives.modal.removeF3d`),message:l(`archives.modal.removeF3dConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{we.mutate(),se(!1)},onCancel:()=>se(!1)}),H&&(0,G.jsx)(of,{title:l(`archives.modal.removeTimelapse`),message:l(`archives.modal.removeTimelapseConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{ye.mutate(),ce(!1)},onCancel:()=>ce(!1)}),le&&(0,G.jsx)(kT,{x:le.x,y:le.y,items:Me,onClose:()=>ue(null)}),P&&(0,G.jsx)(H2,{archiveId:e.id,archiveName:e.print_name||e.filename,printerName:t,onClose:()=>F(!1)}),M&&e.timelapse_path&&(0,G.jsx)(V2,{src:Z.getArchiveTimelapse(e.id),title:l(`archives.modal.timelapse`,{name:e.print_name||e.filename}),downloadFilename:`${e.print_name||e.filename}_timelapse.mp4`,archiveId:e.id,onClose:()=>N(!1),onEdit:()=>{d.invalidateQueries({queryKey:[`archives`]}),N(!1)}}),I&&R.length>0&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-card-dark rounded-lg max-w-lg w-full max-h-[80vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:l(`archives.modal.selectTimelapse`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:l(`archives.modal.selectTimelapseDesc`)})]}),(0,G.jsx)(`button`,{onClick:()=>{L(!1),z([])},className:`text-gray-400 hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 p-2`,children:R.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Ee.mutate(e.name),disabled:Ee.isPending,className:`w-full text-left p-3 rounded-lg hover:bg-gray-700 transition-colors mb-1`,children:[(0,G.jsx)(`div`,{className:`font-medium text-white`,children:e.name}),(0,G.jsxs)(`div`,{className:`text-sm text-gray-400 flex gap-3`,children:[(0,G.jsx)(`span`,{children:Gd(e.size)}),e.mtime&&(0,G.jsx)(`span`,{children:ap(e.mtime)})]})]},e.name))})]})}),B&&(0,G.jsx)(nG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>V(!1)}),ee&&e.photos&&(0,G.jsx)(rG,{archiveId:e.id,archiveName:e.print_name||e.filename,photos:e.photos,onClose:()=>te(!1),onDelete:async t=>{try{await Z.deleteArchivePhoto(e.id,t),d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.photoDeleted`))}catch{f(l(`archives.toast.failedDeletePhoto`),`error`)}}}),ne&&(0,G.jsx)(B2,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>re(!1)}),(0,G.jsx)(`input`,{ref:de,type:`file`,accept:`.3mf`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&xe.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:fe,type:`file`,accept:`.f3d`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Ce.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:pe,type:`file`,accept:`.mp4,.avi,.mkv`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&be.mutate(t),e.target.value=``}})]})}var FVe=[`completed`,`failed`,`aborted`,`cancelled`,`stopped`],IVe=[{id:`all`,label:`All Archives`,icon:(0,G.jsx)(vc,{className:`w-4 h-4`})},{id:`recent`,label:`Last 24 Hours`,icon:(0,G.jsx)(js,{className:`w-4 h-4`})},{id:`this-week`,label:`This Week`,icon:(0,G.jsx)(as,{className:`w-4 h-4`})},{id:`this-month`,label:`This Month`,icon:(0,G.jsx)(as,{className:`w-4 h-4`})},{id:`favorites`,label:`Favorites`,icon:(0,G.jsx)(xu,{className:`w-4 h-4`})},{id:`not-printed`,label:`Not Printed`,icon:(0,G.jsx)(Vu,{className:`w-4 h-4`})},{id:`printed`,label:`Printed`,icon:(0,G.jsx)(Rl,{className:`w-4 h-4`})},{id:`failed`,label:`Failed Prints`,icon:(0,G.jsx)(ys,{className:`w-4 h-4`})},{id:`duplicates`,label:`Duplicates`,icon:(0,G.jsx)(Vs,{className:`w-4 h-4`})}];function LVe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i}=Nd(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(()=>{let e=localStorage.getItem(`archiveFilterPrinter`);return e?Number(e):null}),[u,d]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterMaterial`)),[f,p]=(0,y.useState)(()=>{let e=localStorage.getItem(`archiveFilterColors`);return e?new Set(JSON.parse(e)):new Set}),[m,h]=(0,y.useState)(()=>localStorage.getItem(`archiveColorFilterMode`)||`or`),[g,_]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterFavorites`)===`true`),[v,b]=(0,y.useState)(()=>localStorage.getItem(`archiveHideFailed`)===`true`),[x,S]=(0,y.useState)(()=>localStorage.getItem(`archiveHideDuplicates`)===`true`),[C,w]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterTag`)),[T,E]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterFileType`)||`all`),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)([]),[j,M]=(0,y.useState)(new Set),[N,P]=(0,y.useState)(()=>localStorage.getItem(`archiveNo3MFWarningDismissed`)===`true`),{data:F}=K({queryKey:[`archives`,`no-3mf-warning`],queryFn:Z.getNo3MFWarning,staleTime:300*1e3,enabled:!N}),I=()=>{localStorage.setItem(`archiveNo3MFWarningDismissed`,`true`),P(!0)},L=F?.reason===`ftps_cooloff`?`FtpsCooloff`:F?.reason===`internal_storage`?`InternalStorage`:F?.reason===`no_external_storage`?`NoExternalStorage`:F?.reason===`internal_history`?`InternalHistory`:``,R=F?.reason===`ftps_cooloff`?`https://wiki.bambuddy.cool/reference/troubleshooting/#ftps-tls-failure`:F?.reason===`internal_storage`?`https://wiki.bambuddy.cool/reference/troubleshooting/#archive-card-has-only-a-name`:F?.reason===`no_external_storage`?null:F?.reason===`internal_history`?`https://wiki.bambuddy.cool/reference/troubleshooting/#print-started-on-the-printer-has-no-thumbnail`:`https://wiki.bambuddy.cool/getting-started/#step-4-enable-store-sent-files-on-external-storage`,[z,B]=(0,y.useState)(!1),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)(!1),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(()=>localStorage.getItem(`archiveViewMode`)||`grid`),[se,H]=(0,y.useState)(()=>localStorage.getItem(`archiveSortBy`)||`date-desc`),[ce,le]=(0,y.useState)(()=>localStorage.getItem(`archiveCollection`)||`all`),[ue,de]=(0,y.useState)(0),[fe,pe]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`archivePageSize`);return e?Number(e):50}catch{return 50}}),[me,he]=(0,y.useState)(!1),[ge,_e]=(0,y.useState)(!1),[ve,ye]=(0,y.useState)(!1),[be,xe]=(0,y.useState)(!1),[Se,Ce]=(0,y.useState)(!1),[we,Te]=(0,y.useState)(null),[Ee,De]=(0,y.useState)(null),[Oe,ke]=(0,y.useState)(()=>localStorage.getItem(`logFilterUser`)||null),[Ae,je]=(0,y.useState)(()=>localStorage.getItem(`logFilterStatus`)),[Me,Ne]=(0,y.useState)(()=>localStorage.getItem(`logFilterDateFrom`)||``),[Pe,Fe]=(0,y.useState)(()=>localStorage.getItem(`logFilterDateTo`)||``),[Ie,Le]=(0,y.useState)(()=>{let e=localStorage.getItem(`logOffset`);return e?Number(e):0}),[Re,ze]=(0,y.useState)(!1),[Be,Ve]=(0,y.useState)(null),[He,Ue]=(0,y.useState)(null),[We,Ge]=(0,y.useState)(``),[Ke,qe]=(0,y.useState)(``),[Je,Ye]=(0,y.useState)(()=>{let e=localStorage.getItem(`logPageSize`);return e?Number(e):25}),[Xe,Ze]=(0,y.useState)(OVe),[Qe,$e]=(0,y.useState)(!1),[et,tt]=(0,y.useState)(AVe),nt=(0,y.useMemo)(()=>Xe.filter(e=>e.visible).map(e=>e.id),[Xe]),rt=(0,y.useCallback)(e=>{De(e),Te(e)},[]);(0,y.useEffect)(()=>{if(we){let t=setTimeout(()=>{let t=document.querySelector(`[data-archive-id="${we}"]`);t?t.scrollIntoView({behavior:`smooth`,block:`center`}):Ee===we&&n(e(`archives.originalPrintNotVisible`),`warning`),Ee===we&&De(null)},100),r=setTimeout(()=>Te(null),5e3);return()=>{clearTimeout(t),clearTimeout(r)}}},[we,Ee,n,e]);let{data:it,isLoading:at}=K({queryKey:[`archives`,c],queryFn:()=>Z.getArchives(c||void 0)}),{data:ot}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:st}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects()}),{data:ct}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:lt}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:ae===`log`}),{data:ut,isLoading:dt}=K({queryKey:[`print-log`,c,Oe,Ae,Me,Pe,o,Ie,Je,et.column,et.direction],queryFn:()=>Z.getPrintLog({search:o||void 0,printerId:c||void 0,username:Oe||void 0,status:Ae||void 0,dateFrom:Me||void 0,dateTo:Pe||void 0,limit:Je,offset:Ie,sortBy:et.column,sortDir:et.direction}),enabled:ae===`log`}),ft=ct?.time_format||`system`,pt=HW(ct?.open_in_slicer,ct?.preferred_slicer),mt=ct?.use_slicer_api??!1,ht=Lf(ct?.currency||`USD`),gt=(0,y.useMemo)(()=>Xe.map(t=>({...t,label:e(W2[t.id]??t.id)})),[Xe,e]),_t=(0,y.useMemo)(()=>G2.map(t=>({...t,label:e(W2[t.id]??t.id)})),[e]),vt=(0,y.useCallback)(e=>{q2.has(e)&&(tt(t=>{let n=t.column===e?{column:e,direction:t.direction===`asc`?`desc`:`asc`}:{column:e,direction:[`date`,`completed_at`,`duration`,`filament_used`,`cost`,`energy`,`energy_cost`].includes(e)?`desc`:`asc`};return jVe(n),n}),Le(0))},[]),yt=(0,y.useCallback)(e=>{let t=e.map(e=>({id:e.id,visible:e.visible}));Ze(t),MVe(t)},[]),bt=(0,y.useMemo)(()=>new Set([`duration`,`filament_used`,`cost`,`energy`,`energy_cost`]),[]),xt=(0,y.useCallback)((t,n)=>{switch(t){case`date`:return(0,G.jsx)(`span`,{className:`text-white whitespace-nowrap`,children:op(n.started_at||n.created_at,ft)});case`completed_at`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap`,children:n.completed_at?op(n.completed_at,ft):`—`});case`print_name`:return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.thumbnail_path&&(0,G.jsx)(`img`,{src:Z.getPrintLogThumbnail(n.id),alt:``,className:`w-8 h-8 rounded object-cover flex-shrink-0`,onError:e=>{e.target.style.display=`none`}}),(0,G.jsx)(`span`,{className:`text-white break-words`,title:n.print_name||``,children:n.print_name||`—`})]});case`printer`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light`,children:n.printer_name||`—`});case`user`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light`,children:n.created_by_username||`—`});case`status`:return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${n.status===`completed`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:n.status===`failed`?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:n.status===`stopped`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:n.status===`cancelled`?`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`:n.status===`skipped`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-gray-500/20 text-gray-400`}`,children:n.status}),n.failure_reason&&(0,G.jsx)(`span`,{className:`block text-[10px] text-bambu-gray mt-0.5`,children:e(`editArchive.failureReasons.${n.failure_reason}`,{defaultValue:n.failure_reason})})]});case`duration`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap`,children:n.duration_seconds?lp(n.duration_seconds):`—`});case`filament`:return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[n.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:n.filament_color.split(`,`).map((e,t)=>{let n=e.trim();return(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:n.startsWith(`#`)?n:void 0},title:n},t)})}),(0,G.jsx)(`span`,{className:`text-bambu-gray-light text-xs`,children:n.filament_type||`—`})]});case`filament_used`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.filament_used_grams==null?`—`:`${n.filament_used_grams.toFixed(1)} g`});case`cost`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.cost==null?`—`:`${ht}${n.cost.toFixed(2)}`});case`energy`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.energy_kwh==null?`—`:`${n.energy_kwh.toFixed(2)} kWh`});case`energy_cost`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.energy_cost==null?`—`:`${ht}${n.energy_cost.toFixed(2)}`});default:return null}},[ht,e,ft]),St=q({mutationFn:async e=>(await Promise.all(e.map(e=>Z.deleteArchive(e))),e.length),onSuccess:e=>{qW(t),M(new Set),n(`${e} archive${e===1?``:`s`} deleted`)},onError:()=>{n(e(`archives.toast.failedDeleteArchives`),`error`)}}),Ct=q({mutationFn:()=>Z.clearPrintLog(),onSuccess:r=>{t.invalidateQueries({queryKey:[`print-log`]}),Le(0),n(e(`archives.log.cleared`,{count:r.deleted}))},onError:()=>{n(e(`archives.log.clearFailed`),`error`)}}),wt=q({mutationFn:e=>Z.deletePrintLogEntry(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`print-log`]}),t.invalidateQueries({queryKey:[`archives-stats`]}),n(e(`archives.log.entryDeleted`))},onError:()=>{n(e(`archives.log.entryDeleteFailed`),`error`)}}),Tt=q({mutationFn:({id:e,body:t})=>Z.updatePrintLogEntry(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`print-log`]}),t.invalidateQueries({queryKey:[`archives-stats`]}),Ue(null),n(e(`archives.log.entryUpdated`))},onError:()=>{n(e(`archives.log.entryUpdateFailed`),`error`)}});(0,y.useEffect)(()=>{c===null?localStorage.removeItem(`archiveFilterPrinter`):localStorage.setItem(`archiveFilterPrinter`,c.toString())},[c]),(0,y.useEffect)(()=>{u?localStorage.setItem(`archiveFilterMaterial`,u):localStorage.removeItem(`archiveFilterMaterial`)},[u]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterColors`,JSON.stringify([...f]))},[f]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveColorFilterMode`,m)},[m]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterFavorites`,g.toString())},[g]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveHideFailed`,v.toString())},[v]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveHideDuplicates`,x.toString())},[x]),(0,y.useEffect)(()=>{C?localStorage.setItem(`archiveFilterTag`,C):localStorage.removeItem(`archiveFilterTag`)},[C]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterFileType`,T)},[T]),(0,y.useEffect)(()=>{de(0)},[o,c,u,f,m,g,v,x,C,T,se,ce]),(0,y.useEffect)(()=>{try{localStorage.setItem(`archivePageSize`,String(fe))}catch{}},[fe]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveViewMode`,ae)},[ae]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveSortBy`,se)},[se]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveCollection`,ce)},[ce]),(0,y.useEffect)(()=>{Oe?localStorage.setItem(`logFilterUser`,Oe):localStorage.removeItem(`logFilterUser`)},[Oe]),(0,y.useEffect)(()=>{Ae?localStorage.setItem(`logFilterStatus`,Ae):localStorage.removeItem(`logFilterStatus`)},[Ae]),(0,y.useEffect)(()=>{Me?localStorage.setItem(`logFilterDateFrom`,Me):localStorage.removeItem(`logFilterDateFrom`)},[Me]),(0,y.useEffect)(()=>{Pe?localStorage.setItem(`logFilterDateTo`,Pe):localStorage.removeItem(`logFilterDateTo`)},[Pe]),(0,y.useEffect)(()=>{localStorage.setItem(`logOffset`,Ie.toString())},[Ie]),(0,y.useEffect)(()=>{localStorage.setItem(`logPageSize`,Je.toString())},[Je]);let Et=(0,y.useMemo)(()=>new Map(ot?.map(e=>[e.id,e.name])||[]),[ot]),Dt=[...new Set(it?.flatMap(e=>e.filament_type?.split(`, `)||[]).filter(Boolean)||[])].sort(),Ot=[...new Set(it?.flatMap(e=>e.filament_color?.split(`,`)||[]).filter(Boolean)||[])],kt=[...new Set(it?.flatMap(e=>e.tags?.split(`,`).map(e=>e.trim())||[]).filter(Boolean)||[])].sort(),At=it?.filter(e=>{let t=new Date,n=rp(e.created_at)||new Date(0),r=!0;switch(ce){case`recent`:r=t.getTime()-n.getTime()<1440*60*1e3;break;case`this-week`:r=t.getTime()-n.getTime()<10080*60*1e3;break;case`this-month`:r=n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear();break;case`favorites`:r=e.is_favorite===!0;break;case`not-printed`:r=e.status===`archived`;break;case`printed`:r=FVe.includes(e.status);break;case`failed`:r=e.status===`failed`||e.status===`aborted`;break;case`duplicates`:r=e.duplicate_count>0;break}let i=(e.print_name||e.filename).toLowerCase().includes(o.toLowerCase()),a=!u||e.filament_type?.split(`, `).includes(u),s=e.filament_color?.split(`,`)||[],c=f.size===0||(m===`or`?s.some(e=>f.has(e)):[...f].every(e=>s.includes(e))),l=ce===`favorites`||!g||e.is_favorite,d=ce===`failed`||!v||e.status!==`failed`&&e.status!==`aborted`,p=ce===`duplicates`||!x||e.duplicate_count===0||e.duplicate_sequence===0,h=e.tags?.split(`,`).map(e=>e.trim())||[],_=!C||h.includes(C),y=J2(e);return r&&i&&a&&c&&l&&d&&p&&_&&(T===`all`||T===`gcode`&&y||T===`source`&&!y)}).sort((e,t)=>{switch(se){case`date-desc`:return(rp(t.created_at)?.getTime()||0)-(rp(e.created_at)?.getTime()||0);case`date-asc`:return(rp(e.created_at)?.getTime()||0)-(rp(t.created_at)?.getTime()||0);case`name-asc`:return(e.print_name||e.filename).localeCompare(t.print_name||t.filename);case`name-desc`:return(t.print_name||t.filename).localeCompare(e.print_name||e.filename);case`size-desc`:return t.file_size-e.file_size;case`size-asc`:return e.file_size-t.file_size;default:return 0}}),jt=At?.length||0,Mt=fe===-1,Nt=Mt?jt||1:fe,Pt=Math.max(1,Math.ceil(jt/Nt)),Ft=Mt?At:At?.slice(ue*Nt,(ue+1)*Nt);(0,y.useEffect)(()=>{if(we&&At&&!Mt){let e=At.findIndex(e=>e.id===we);if(e>=0){let t=Math.floor(e/Nt);t!==ue&&de(t)}}},[we]);let It=z||j.size>0,Lt=e=>{M(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Rt=()=>{At&&M(new Set(At.map(e=>e.id)))},zt=()=>{M(new Set),B(!1)},Bt=e=>{p(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Vt=()=>{p(new Set)},Ht=()=>{s(``),l(null),d(null),_(!1),b(!1),S(!1),w(null),E(`all`)},Ut=o||c||u||g||v||x||C||T!==`all`,{isDraggingOver:Wt,dragHandlers:Gt}=YW({disabled:D,extensions:[`.3mf`],onFiles:e=>{A(e),O(!0)},onRejected:()=>n(e(`archives.page.only3mfSupported`),`warning`)}),Kt=(0,y.useCallback)(e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable){e.key===`Escape`&&t.blur();return}switch(e.key){case`/`:e.preventDefault(),a.current?.focus();break;case`u`:case`U`:!e.metaKey&&!e.ctrlKey&&(e.preventDefault(),O(!0));break;case`Escape`:It&&zt();break}},[It]);return(0,y.useEffect)(()=>(document.addEventListener(`keydown`,Kt),()=>document.removeEventListener(`keydown`,Kt)),[Kt]),(0,G.jsxs)(`div`,{className:`p-4 md:p-8 relative`,...Gt,children:[Wt&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-bambu-dark/90 flex items-center justify-center pointer-events-none`,children:(0,G.jsxs)(`div`,{className:`border-4 border-dashed border-bambu-green rounded-xl p-12 text-center`,children:[(0,G.jsx)(Vu,{className:`w-16 h-16 mx-auto mb-4 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-2xl font-semibold text-white mb-2`,children:e(`archives.page.dropFilesHere`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`archives.releaseToUpload`)})]})}),It&&(0,G.jsxs)(`div`,{className:`fixed bottom-6 left-1/2 -translate-x-1/2 z-40 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl px-4 py-3 flex items-center gap-4`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:zt,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),`Close`]}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[j.size,` selected`]}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:Rt,children:`Select All`}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ne(!0),disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),`Tags`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ie(!0),disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),children:[(0,G.jsx)(_c,{className:`w-4 h-4`}),`Project`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),onClick:()=>{let r=Array.from(j);Promise.all(r.map(e=>Z.toggleFavorite(e))).then(()=>{t.invalidateQueries({queryKey:[`archives`]}),n(`Toggled favorites for ${r.length} archive${r.length===1?``:`s`}`)}).catch(()=>{n(e(`archives.toast.failedUpdateFavorites`),`error`)})},children:[(0,G.jsx)(xu,{className:`w-4 h-4`}),`Favorite`]}),(0,G.jsxs)(Q,{size:`sm`,className:`bg-red-500 hover:bg-red-600`,onClick:()=>ee(!0),disabled:!i(`archives:delete_own`,`archives:delete_all`),title:i(`archives:delete_own`,`archives:delete_all`)?void 0:e(`archives.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Delete`]})]}),F?.has_fallback&&!N&&(0,G.jsxs)(`div`,{className:`mb-6 rounded-lg border border-amber-300 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 px-4 py-3 flex items-start gap-3`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-amber-900 dark:text-amber-200`,children:e(`archives.no3mfBanner.title${L}`)}),(0,G.jsxs)(`div`,{className:`text-xs text-amber-800/90 dark:text-amber-200/80 mt-1`,children:[e(`archives.no3mfBanner.body${L}`),R&&(0,G.jsxs)(G.Fragment,{children:[` `,(0,G.jsxs)(`a`,{href:R,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-amber-900 dark:hover:text-amber-100 inline-flex items-center gap-1`,children:[e(F?.reason===`internal_storage`||F?.reason===`internal_history`||F?.reason===`ftps_cooloff`?`archives.no3mfBanner.docsLinkInternalStorage`:`archives.no3mfBanner.docsLink`),(0,G.jsx)(rc,{className:`w-3 h-3`})]})]})]})]}),(0,G.jsx)(`button`,{onClick:I,className:`text-amber-800/70 dark:text-amber-200/60 hover:text-amber-900 dark:hover:text-amber-200 flex-shrink-0 p-1 -m-1`,title:e(`archives.no3mfBanner.dismissLabel`),"aria-label":e(`archives.no3mfBanner.dismissLabel`),children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-8`,children:[(0,G.jsx)(`div`,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Po,{className:`w-7 h-7 text-bambu-green`}),`Archives`]}),(0,G.jsxs)(`p`,{className:`text-bambu-gray mt-1`,children:[At?.length||0,` of `,it?.length||0,` prints`]})]}),(0,G.jsx)(`select`,{className:`mt-0.5 px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray-light text-sm focus:border-bambu-green focus:outline-none`,value:ce,onChange:e=>le(e.target.value),children:IVe.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>he(!me),disabled:ge,children:[ge?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(dc,{className:`w-4 h-4`}),`Export`]}),me&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-t-lg`,onClick:async()=>{he(!1),_e(!0);try{let{blob:t,filename:r}=await Z.exportArchives({format:`csv`,printerId:c||void 0,status:ce===`failed`?`failed`:void 0,search:o||void 0}),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),n(e(`archives.toast.exportDownloaded`))}catch{n(e(`archives.toast.exportFailed`),`error`)}finally{_e(!1)}},children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),`Export as CSV`]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-b-lg`,onClick:async()=>{he(!1),_e(!0);try{let{blob:t,filename:r}=await Z.exportArchives({format:`xlsx`,printerId:c||void 0,status:ce===`failed`?`failed`:void 0,search:o||void 0}),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),n(e(`archives.toast.exportDownloaded`))}catch{n(e(`archives.toast.exportFailed`),`error`)}finally{_e(!1)}},children:[(0,G.jsx)(dc,{className:`w-4 h-4`}),`Export as Excel`]})]})]}),j.size>=2&&j.size<=5&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ye(!0),children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),`Compare (`,j.size,`)`]}),!It&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>B(!0),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),`Select`]}),(0,G.jsxs)(Q,{onClick:()=>O(!0),disabled:!r(`archives:create`),title:r(`archives:create`)?void 0:e(`archives.permission.noCreate`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),`Upload 3MF`]}),r(`archives:purge`)&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Ce(!0),title:e(`archivePurge.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`archivePurge.headerButton`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center border border-bambu-dark-tertiary rounded-lg overflow-hidden flex-shrink-0 w-fit mb-4`,children:[(0,G.jsx)(`button`,{className:`p-2 ${ae===`grid`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`grid`),title:e(`archives.gridView`),children:(0,G.jsx)(Yc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`list`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`list`),title:e(`archives.listView`),children:(0,G.jsx)(el,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`calendar`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`calendar`),title:e(`archives.calendarView`),children:(0,G.jsx)(is,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`log`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`log`),title:e(`archives.logView`),children:(0,G.jsx)(ks,{className:`w-4 h-4`})})]}),ae!==`log`&&(0,G.jsx)(zd,{className:`mb-6`,children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-3 md:gap-4 md:items-center md:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`w-full md:flex-1 relative md:min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{ref:a,type:`text`,placeholder:e(`archives.searchPlaceholder`),className:`w-full pl-10 pr-4 py-3 md:py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:o,onChange:e=>s(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 md:gap-4 overflow-x-auto pb-1 md:pb-0 -mx-4 px-4 md:mx-0 md:px-0 md:flex-wrap scrollbar-hide`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:c||``,onChange:e=>l(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:`All Printers`}),ot?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:u||``,onChange:e=>d(e.target.value||null),children:[(0,G.jsx)(`option`,{value:``,children:`All Materials`}),Dt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(cc,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:T,onChange:e=>E(e.target.value),children:[(0,G.jsx)(`option`,{value:`all`,children:`All Files`}),(0,G.jsx)(`option`,{value:`gcode`,children:`Sliced (GCODE)`}),(0,G.jsx)(`option`,{value:`source`,children:`Source Only`})]})]}),(0,G.jsxs)(`button`,{onClick:()=>_(!g),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${g?`bg-yellow-100 dark:bg-yellow-500/20 border-yellow-500 text-yellow-700 dark:text-yellow-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(g?`archives.showAll`:`archives.showFavoritesOnly`),children:[(0,G.jsx)(xu,{className:`w-4 h-4 ${g?`fill-yellow-400`:``}`}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:`Favorites`})]}),(0,G.jsxs)(`button`,{onClick:()=>b(!v),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${v?`bg-red-100 dark:bg-red-500/20 border-red-500 text-red-700 dark:text-red-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(v?`archives.showFailedPrints`:`archives.hideFailedPrints`),children:[(0,G.jsx)(ys,{className:`w-4 h-4 `}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:`Hide Failed`})]}),(0,G.jsxs)(`button`,{onClick:()=>S(!x),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${x?`bg-purple-100 dark:bg-purple-500/20 border-purple-500 text-purple-700 dark:text-purple-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(`archives.hideDuplicates`),children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:e(`archives.hideDuplicates`)})]}),kt.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:C||``,onChange:e=>w(e.target.value||null),children:[(0,G.jsx)(`option`,{value:``,children:`All Tags`}),kt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsx)(`button`,{onClick:()=>xe(!0),className:`p-2 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-green transition-colors`,title:e(`archives.manageTags`),children:(0,G.jsx)(ru,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Bo,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:se,onChange:e=>H(e.target.value),children:[(0,G.jsx)(`option`,{value:`date-desc`,children:e(`archives.sortNewest`)}),(0,G.jsx)(`option`,{value:`date-asc`,children:e(`archives.sortOldest`)}),(0,G.jsxs)(`option`,{value:`name-asc`,children:[e(`archives.sortName`),` A-Z`]}),(0,G.jsxs)(`option`,{value:`name-desc`,children:[e(`archives.sortName`),` Z-A`]}),(0,G.jsx)(`option`,{value:`size-desc`,children:e(`archives.sortLargest`)}),(0,G.jsx)(`option`,{value:`size-asc`,children:e(`archives.sortSmallest`)})]})]})]}),Ut&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:Ht,className:`text-bambu-gray hover:text-white`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),`Reset`]})]}),Ot.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Colors:`}),f.size>1&&(0,G.jsx)(`button`,{onClick:()=>h(e=>e===`or`?`and`:`or`),className:`px-2 py-0.5 text-xs rounded transition-colors ${m===`and`?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:m===`or`?`Match ANY selected color`:`Match ALL selected colors`,children:m.toUpperCase()}),(0,G.jsx)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:Ot.map(e=>(0,G.jsx)(`button`,{onClick:()=>Bt(e),className:`w-6 h-6 rounded-full border-2 transition-all ${f.has(e)?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:e},title:e},e))}),f.size>0&&(0,G.jsxs)(`button`,{onClick:Vt,className:`text-xs text-bambu-gray hover:text-white flex items-center gap-1`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),`Clear`]})]})]})}),(0,G.jsx)(EVe,{}),at?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`archives.loadingArchives`)}):At?.length===0&&ae!==`log`?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(o?`archives.noArchivesSearch`:`archives.noArchivesYet`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:`Archives are created automatically when prints complete`})]})}):ae===`calendar`?(0,G.jsx)(zd,{className:`p-6`,children:(0,G.jsx)(kje,{archives:At||[],onArchiveClick:e=>{s(``),oe(`grid`),Te(e.id)},highlightedArchiveId:we})}):ae===`grid`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`,children:Ft?.map(t=>(0,G.jsx)(NVe,{archive:t,printerName:t.printer_id?Et.get(t.printer_id)||`Unknown`:t.sliced_for_model||`No Printer`,printerMap:Et,isSelected:j.has(t.id),onSelect:Lt,selectionMode:It,projects:st,isHighlighted:t.id===we,timeFormat:ft,preferredSlicer:pt,useSlicerApi:mt,currency:ht,t:e,onNavigateToArchive:rt},t.id))}),(0,G.jsx)(X2,{pageIndex:ue,pageSize:fe,totalRows:jt,totalPages:Pt,onPageChange:de,onPageSizeChange:e=>{pe(e),de(0)},t:e})]}):ae===`list`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{children:(0,G.jsxs)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-12 gap-4 px-4 py-3 text-xs text-bambu-gray font-medium`,children:[(0,G.jsx)(`div`,{className:`col-span-1`}),(0,G.jsx)(`div`,{className:`col-span-4`,children:`Name`}),(0,G.jsx)(`div`,{className:`col-span-2`,children:`Printer`}),(0,G.jsx)(`div`,{className:`col-span-2`,children:`Date`}),(0,G.jsx)(`div`,{className:`col-span-1`,children:`Size`}),(0,G.jsx)(`div`,{className:`col-span-2 text-right`,children:`Actions`})]}),Ft?.map(t=>(0,G.jsx)(PVe,{archive:t,printerName:t.printer_id?Et.get(t.printer_id)||`Unknown`:t.sliced_for_model||`No Printer`,isSelected:j.has(t.id),onSelect:Lt,selectionMode:It,projects:st,isHighlighted:t.id===we,preferredSlicer:pt,useSlicerApi:mt,t:e,onNavigateToArchive:rt},t.id))]})}),(0,G.jsx)(X2,{pageIndex:ue,pageSize:fe,totalRows:jt,totalPages:Pt,onPageChange:de,onPageSizeChange:e=>{pe(e),de(0)},t:e})]}):ae===`log`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-3 md:items-center md:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`flex-1 relative md:min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:e(`archives.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:o,onChange:e=>{s(e.target.value),Le(0)}})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:c||``,onChange:e=>{l(e.target.value?Number(e.target.value):null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allPrinters`)}),ot?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Oe||``,onChange:e=>{ke(e.target.value||null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allUsers`)}),lt?.map(e=>(0,G.jsx)(`option`,{value:e.username,children:e.username},e.id))]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Ae||``,onChange:e=>{je(e.target.value||null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allStatuses`)}),(0,G.jsx)(`option`,{value:`completed`,children:e(`archives.status.completed`)}),(0,G.jsx)(`option`,{value:`failed`,children:e(`archives.status.failed`)}),(0,G.jsx)(`option`,{value:`stopped`,children:e(`archives.status.stopped`)}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`archives.log.cancelled`)}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`archives.log.skipped`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.dateFrom`)}),(0,G.jsx)(`input`,{type:`date`,className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Me,onChange:e=>{Ne(e.target.value),Le(0)}})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.dateTo`)}),(0,G.jsx)(`input`,{type:`date`,className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Pe,onChange:e=>{Fe(e.target.value),Le(0)}})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>$e(!0),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-bambu-gray border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,title:e(`inventory.configureColumns`),children:[(0,G.jsx)(zs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`archives.log.columns`)})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>ze(!0),disabled:!r(`archives:delete_all`)||Ct.isPending,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`archives.log.clearLog`)]})]})]})})}),(0,G.jsx)(zd,{children:dt?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):ut?.items.length?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-bambu-gray text-left`,children:[nt.map(t=>{let n=q2.has(t),r=et.column===t,i=e(W2[t]??t);return(0,G.jsx)(`th`,{scope:`col`,"aria-sort":r?et.direction===`asc`?`ascending`:`descending`:`none`,className:`px-4 py-3 font-medium ${bt.has(t)?`text-right`:``}`,children:n?(0,G.jsxs)(`button`,{type:`button`,onClick:()=>vt(t),className:`inline-flex items-center gap-1 font-medium transition-colors hover:text-bambu-green ${r?`text-bambu-green`:``}`,title:e(`archives.log.sortBy`,{column:i}),children:[i,r?et.direction===`asc`?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`}):(0,G.jsx)(Bo,{className:`w-3.5 h-3.5 opacity-30`})]}):i},t)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium w-10`,"aria-label":e(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:ut.items.map(t=>(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-secondary/50`,children:[nt.map(e=>(0,G.jsx)(`td`,{className:`px-4 py-3 ${bt.has(e)?`text-right`:``}`,children:xt(e,t)},e)),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,G.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ue(t),Ge(t.failure_reason||``),qe(t.status)},disabled:Tt.isPending||!(r(`archives:update_all`)||r(`archives:update_own`)),title:r(`archives:update_all`)||r(`archives:update_own`)?e(`archives.log.editEntryTitle`):e(`archives.permission.noEdit`),className:`text-bambu-gray hover:text-bambu-blue disabled:opacity-40 disabled:hover:text-bambu-gray transition-colors`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>Ve(t.id),disabled:wt.isPending||!(r(`archives:delete_all`)||r(`archives:delete_own`)),title:r(`archives:delete_all`)||r(`archives:delete_own`)?e(`archives.log.deleteEntryTitle`):e(`archives.permission.noDelete`),className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 disabled:opacity-40 disabled:hover:text-bambu-gray transition-colors`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},t.id))})]})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-t border-bambu-dark-tertiary flex-wrap gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.showing`,{count:Math.min(Ie+Je,ut.total),total:ut.total})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:e(`archives.log.rowsPerPage`)}),(0,G.jsxs)(`select`,{className:`px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-xs focus:border-bambu-green focus:outline-none`,value:Je,onChange:e=>{Ye(Number(e.target.value)),Le(0)},children:[(0,G.jsx)(`option`,{value:10,children:`10`}),(0,G.jsx)(`option`,{value:25,children:`25`}),(0,G.jsx)(`option`,{value:50,children:`50`}),(0,G.jsx)(`option`,{value:100,children:`100`})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`archives.log.page`),` `,Math.floor(Ie/Je)+1,` / `,Math.max(1,Math.ceil(ut.total/Je))]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(Math.max(0,Ie-Je)),disabled:Ie===0,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(Ie+Je),disabled:Ie+Je>=ut.total,children:(0,G.jsx)(ms,{className:`w-4 h-4`})})]})]})]}):(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`archives.log.noEntries`)})})]}):null,D&&(0,G.jsx)(_je,{onClose:()=>{O(!1),A([])},initialFiles:k}),Se&&(0,G.jsx)(yje,{onClose:()=>Ce(!1)}),V&&(0,G.jsx)(of,{title:e(`archives.modal.deleteArchives`),message:e(`archives.modal.deleteArchivesConfirm`,{count:j.size}),confirmText:e(`archives.modal.deleteCount`,{count:j.size}),variant:`danger`,onConfirm:()=>{St.mutate(Array.from(j)),ee(!1)},onCancel:()=>ee(!1)}),te&&(0,G.jsx)(Cje,{selectedIds:Array.from(j),existingTags:kt,onClose:()=>ne(!1)}),re&&(0,G.jsx)(wje,{selectedIds:Array.from(j),onClose:()=>ie(!1)}),ve&&j.size>=2&&j.size<=5&&(0,G.jsx)(SVe,{archiveIds:Array.from(j),onClose:()=>{ye(!1),M(new Set),B(!1)}}),be&&(0,G.jsx)(DVe,{onClose:()=>xe(!1)}),(0,G.jsx)(tG,{isOpen:Qe,onClose:()=>$e(!1),columns:gt,defaultColumns:_t,onSave:yt}),Re&&(0,G.jsx)(of,{title:e(`archives.log.clearLogTitle`),message:e(`archives.log.clearLogConfirm`),confirmText:e(`archives.log.clearLogButton`),variant:`danger`,onConfirm:()=>{Ct.mutate(),ze(!1)},onCancel:()=>ze(!1)}),Be!==null&&(0,G.jsx)(of,{title:e(`archives.log.deleteEntryTitle`),message:e(`archives.log.deleteEntryConfirm`),confirmText:e(`common.delete`),variant:`danger`,onConfirm:()=>{wt.mutate(Be),Ve(null)},onCancel:()=>Ve(null)}),He!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm`,onClick:()=>Ue(null),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg w-full max-w-md mx-4 p-6`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-4`,children:e(`archives.log.editEntryTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4`,children:e(`archives.log.editEntryDescription`)}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`editArchive.status`)}),(0,G.jsxs)(`select`,{value:Ke,onChange:e=>qe(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`completed`,children:e(`archives.log.statuses.completed`,{defaultValue:`completed`})}),(0,G.jsx)(`option`,{value:`failed`,children:e(`archives.log.statuses.failed`,{defaultValue:`failed`})}),(0,G.jsx)(`option`,{value:`stopped`,children:e(`archives.log.statuses.stopped`,{defaultValue:`stopped`})}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`archives.log.statuses.cancelled`,{defaultValue:`cancelled`})}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`archives.log.statuses.skipped`,{defaultValue:`skipped`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`editArchive.failureReason`)}),(0,G.jsxs)(`select`,{value:We,onChange:e=>Ge(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:e(`editArchive.selectReason`)}),ZW.map(t=>(0,G.jsx)(`option`,{value:t,children:e(`editArchive.failureReasons.${t}`)},t))]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 mt-6`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Ue(null),children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>{let e={};if(We!==(He.failure_reason||``)&&(e.failure_reason=We||null),Ke!==He.status&&(e.status=Ke),Object.keys(e).length===0){Ue(null);return}Tt.mutate({id:He.id,body:e})},disabled:Tt.isPending,children:Tt.isPending?e(`editArchive.saving`):e(`common.save`)})]})]})})]})}function X2({pageIndex:e,pageSize:t,totalRows:n,totalPages:r,onPageChange:i,onPageSizeChange:a,t:o}){let s=t===-1;if(r<=1&&!s)return null;let c=s?n||1:t;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:s?`${n} ${o(`archives.prints`)}`:(0,G.jsxs)(G.Fragment,{children:[o(`archives.pagination.showing`),` `,e*c+1,` `,o(`archives.pagination.to`),` `,Math.min((e+1)*c,n),` `,o(`archives.pagination.of`),` `,n,` `,o(`archives.prints`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`archives.pagination.show`)}),(0,G.jsxs)(`select`,{value:t,onChange:e=>a(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[25,50,100,200].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:o(`archives.pagination.all`)})]}),!s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>i(0),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(Math.max(0,e-1)),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[o(`archives.pagination.page`),` `,e+1,` `,o(`archives.pagination.of`),` `,r]}),(0,G.jsx)(`button`,{onClick:()=>i(Math.min(r-1,e+1)),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(r-1),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})}function RVe(){var e=[...arguments];return(0,y.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Z2=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Q2(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function $2(e){return`nodeType`in e}function e4(e){return e?Q2(e)?e:$2(e)?e.ownerDocument?.defaultView??window:window:window}function t4(e){let{Document:t}=e4(e);return e instanceof t}function n4(e){return Q2(e)?!1:e instanceof e4(e).HTMLElement}function r4(e){return e instanceof e4(e).SVGElement}function i4(e){return e?Q2(e)?e.document:$2(e)?t4(e)?e:n4(e)||r4(e)?e.ownerDocument:document:document:document}var a4=Z2?y.useLayoutEffect:y.useEffect;function o4(e){let t=(0,y.useRef)(e);return a4(()=>{t.current=e}),(0,y.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function zVe(){let e=(0,y.useRef)(null);return[(0,y.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,y.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function s4(e,t){t===void 0&&(t=[e]);let n=(0,y.useRef)(e);return a4(()=>{n.current!==e&&(n.current=e)},t),n}function c4(e,t){let n=(0,y.useRef)();return(0,y.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function l4(e){let t=o4(e),n=(0,y.useRef)(null);return[n,(0,y.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function u4(e){let t=(0,y.useRef)();return(0,y.useEffect)(()=>{t.current=e},[e]),t.current}var d4={};function f4(e,t){return(0,y.useMemo)(()=>{if(t)return t;let n=d4[e]==null?0:d4[e]+1;return d4[e]=n,e+`-`+n},[e,t])}function p4(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var m4=p4(1),h4=p4(-1);function BVe(e){return`clientX`in e&&`clientY`in e}function g4(e){if(!e)return!1;let{KeyboardEvent:t}=e4(e.target);return t&&e instanceof t}function VVe(e){if(!e)return!1;let{TouchEvent:t}=e4(e.target);return t&&e instanceof t}function _4(e){if(VVe(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return BVe(e)?{x:e.clientX,y:e.clientY}:null}var v4=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[v4.Translate.toString(e),v4.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),y4=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function HVe(e){return e.matches(y4)?e:e.querySelector(y4)}var UVe={display:`none`};function WVe(e){let{id:t,value:n}=e;return y.createElement(`div`,{id:t,style:UVe},n)}function GVe(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return y.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function KVe(){let[e,t]=(0,y.useState)(``);return{announce:(0,y.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var b4=(0,y.createContext)(null);function qVe(e){let t=(0,y.useContext)(b4);(0,y.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of `);return t(e)},[e,t])}function JVe(){let[e]=(0,y.useState)(()=>new Set),t=(0,y.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,y.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var YVe={draggable:` + [&::-webkit-slider-thumb]:cursor-pointer`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray w-12`,children:dp(p)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>{let e=o.current;e&&(e.currentTime=Math.max(0,e.currentTime-5))},className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:`Skip back 5s`,children:(0,G.jsx)(uu,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:_,className:`p-2 bg-bambu-green hover:bg-bambu-green-dark rounded-lg transition-colors`,children:s?(0,G.jsx)(Dl,{className:`w-5 h-5 text-white`}):(0,G.jsx)(Nl,{className:`w-5 h-5 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>{let e=o.current;e&&(e.currentTime=Math.min(p,e.currentTime+5))},className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:`Skip forward 5s`,children:(0,G.jsx)(du,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`Speed:`}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:xVe.map(e=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`px-2 py-1 text-xs rounded transition-colors ${l===e?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:bg-bambu-dark-tertiary/80`}`,children:[e,`x`]},e))})]})]})]})]})]}),h&&r&&(0,G.jsx)(bVe,{archiveId:r,timelapseSrc:e,onClose:()=>g(!1),onSave:a})]})}function U2({archiveId:e,archiveName:t,printerName:n,onClose:r}){let{t:i}=U(),{showToast:a}=qd(),[o,s]=(0,y.useState)(new Set),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=K({queryKey:[`archive-printer-media`,e],queryFn:()=>Z.getArchivePrinterMedia(e),staleTime:6e4}),h=(0,y.useMemo)(()=>m.data?.remote_files??[],[m.data]);(0,y.useEffect)(()=>{!m.data||f.current===e||(f.current=e,h.length===1&&s(new Set([h[0].path])))},[e,m.data,h]),(0,y.useEffect)(()=>{let e=new Set(h.map(e=>e.path));s(t=>new Set([...t].filter(t=>e.has(t))))},[h]),(0,y.useEffect)(()=>()=>p.current?.abort(),[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let g=e=>{s(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},_=async()=>{let n=m.data?.local_timelapse?.name??``,r=n.includes(`.`)?`.${n.split(`.`).pop()}`:``;try{await Z.downloadArchiveTimelapse(e,`${t}_timelapse${r}`)}catch(e){a(i(`printerFiles.downloadFailed`,{error:e instanceof Error?e.message:i(`printerFiles.unknownError`)}),`error`)}},v=async()=>{if(!m.data?.printer_id||o.size===0)return;let e=h.filter(e=>o.has(e.path));if(e.length===0)return;let n=new AbortController;p.current=n,l(!0);try{let r=await Z.downloadPrinterFilesAsZip(m.data.printer_id,e.map(e=>e.path),Object.fromEntries(e.map(e=>[e.path,e.size])),`${t.replace(/[^a-zA-Z0-9]/g,`_`)}-printer-videos.zip`,!0,n.signal,(e,t)=>d({current:e,total:t}));r.failed>0?a(i(`printerFiles.zipPartial`,{successful:r.successful,total:r.requested}),`warning`):a(i(`printerFiles.zipStarted`,{count:r.successful}))}catch(e){a(i(`printerFiles.downloadFailed`,{error:e instanceof Error?e.message:i(`printerFiles.unknownError`)}),`error`)}finally{p.current===n&&(p.current=null),d(null),l(!1)}},b=!!m.data?.local_timelapse||h.length>0,x=e=>i(e===`printer_files_forbidden`?`printers.permission.noFiles`:e===`printer_missing`?`archives.media.printerMissing`:e===`timelapse_unavailable`?`archives.media.timelapseUnavailable`:`archives.media.ipcamUnavailable`),S=(m.data?.warnings??[]).map(e=>(0,G.jsx)(`p`,{className:`text-xs text-amber-600 dark:text-amber-400`,children:x(e)},e));return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80 p-4`,onClick:r,children:(0,G.jsxs)(`div`,{className:`flex max-h-[85vh] w-full max-w-2xl flex-col overflow-hidden rounded-xl border border-bambu-dark-tertiary bg-bambu-dark-secondary`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-bambu-dark-tertiary p-4`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`h3`,{className:`flex items-center gap-2 text-lg font-semibold text-white`,children:[(0,G.jsx)(Gu,{className:`h-5 w-5 text-bambu-green`}),i(`archives.media.title`)]}),(0,G.jsxs)(`p`,{className:`truncate text-sm text-bambu-gray`,children:[t,` · `,n]})]}),(0,G.jsx)(`button`,{onClick:r,className:`rounded p-1 text-bambu-gray hover:bg-bambu-dark-tertiary hover:text-white`,children:(0,G.jsx)(nd,{className:`h-5 w-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:m.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-12 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`h-5 w-5 animate-spin`}),i(`archives.media.searching`)]}):m.isError?(0,G.jsx)(`p`,{className:`py-8 text-center text-red-500`,children:i(`archives.media.searchFailed`)}):b?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[m.data?.local_timelapse&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-3`,children:[(0,G.jsx)(mc,{className:`h-5 w-5 shrink-0 text-bambu-green`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`truncate text-sm font-medium text-white`,children:m.data.local_timelapse.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[i(`archives.media.attachedTimelapse`),` · `,Gd(m.data.local_timelapse.size)]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:_,children:[(0,G.jsx)(Xs,{className:`h-4 w-4`}),i(`common.download`)]})]}),h.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[i(`archives.media.printerFiles`),` (`,h.length,`)`]}),(0,G.jsx)(`button`,{className:`text-xs text-bambu-green hover:text-bambu-green-light`,onClick:()=>s(o.size===h.length?new Set:new Set(h.map(e=>e.path))),children:o.size===h.length?i(`common.deselectAll`):i(`common.selectAll`)})]}),(0,G.jsx)(`div`,{className:`space-y-1`,children:h.map(e=>{let t=o.has(e.path);return(0,G.jsxs)(`button`,{className:`flex w-full items-center gap-3 rounded-lg border p-3 text-left transition-colors ${t?`border-bambu-green/60 bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray`}`,onClick:()=>g(e.path),children:[t?(0,G.jsx)(vu,{className:`h-5 w-5 shrink-0 text-bambu-green`}):(0,G.jsx)(bu,{className:`h-5 w-5 shrink-0 text-bambu-gray`}),e.kind===`timelapse`?(0,G.jsx)(mc,{className:`h-5 w-5 shrink-0 text-bambu-green`}):(0,G.jsx)(Gu,{className:`h-5 w-5 shrink-0 text-blue-400`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-white`,children:e.name}),(0,G.jsx)(`span`,{className:`shrink-0 text-xs text-bambu-gray`,children:Gd(e.size)})]},e.path)})})]}),S]}):(0,G.jsxs)(`div`,{className:`space-y-3 py-8 text-center`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`archives.media.none`)}),S]})}),h.length>0&&(0,G.jsx)(`div`,{className:`flex items-center justify-end border-t border-bambu-dark-tertiary p-4`,children:(0,G.jsxs)(Q,{variant:`primary`,onClick:v,disabled:o.size===0||c,children:[c?(0,G.jsx)(Y,{className:`h-4 w-4 animate-spin`}):(0,G.jsx)(Xs,{className:`h-4 w-4`}),u?`${u.current}/${u.total}`:`${i(`archives.media.downloadSelected`)} (${o.size})`]})})]})})}function SVe({archiveIds:e,onClose:t}){(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let{data:n,isLoading:r,error:i}=K({queryKey:[`archive-comparison`,e],queryFn:()=>Z.compareArchives(e)});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg max-w-4xl w-full max-h-[90vh] flex flex-col border border-bambu-dark-tertiary`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white`,children:[`Compare Archives (`,e.length,`)`]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-auto p-4 bg-bambu-dark-secondary`,children:r?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):i?(0,G.jsxs)(`div`,{className:`text-center py-12 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12 mx-auto mb-4 opacity-50`}),(0,G.jsx)(`p`,{children:`Failed to load comparison`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:i instanceof Error?i.message:`Unknown error`})]}):n?(0,G.jsx)(CVe,{comparison:n}):null}),(0,G.jsx)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`w-full`,children:`Close`})})]})})}function CVe({comparison:e}){return(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`text-left text-sm text-bambu-gray font-medium pb-2 pr-4 min-w-[150px]`,children:`Setting`}),e.archives.map(e=>(0,G.jsxs)(`th`,{className:`text-left text-sm font-medium pb-2 px-2 min-w-[120px]`,children:[(0,G.jsx)(`div`,{className:`text-white truncate max-w-[150px]`,title:e.print_name,children:e.print_name}),(0,G.jsx)(`div`,{className:`text-xs ${e.status===`completed`?`text-status-ok`:e.status===`failed`?`text-status-error`:`text-bambu-gray`}`,children:e.status})]},e.id))]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-gray/20`,children:e.comparison.map(e=>(0,G.jsxs)(`tr`,{className:e.has_difference?`bg-yellow-500/5`:``,children:[(0,G.jsx)(`td`,{className:`py-2 pr-4 text-sm`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.has_difference&&(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsx)(`span`,{className:e.has_difference?`text-yellow-700 dark:text-yellow-400`:`text-bambu-gray`,children:e.label})]})}),e.values.map((t,n)=>(0,G.jsxs)(`td`,{className:`py-2 px-2 text-sm text-white`,children:[t??(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`-`}),e.unit&&t!==null&&(0,G.jsx)(`span`,{className:`text-bambu-gray ml-1`,children:e.unit})]},n))]},e.field))})]})}),e.differences.length>0&&(0,G.jsxs)(`div`,{className:`p-4 bg-yellow-50 border border-yellow-300 dark:bg-yellow-500/10 dark:border-yellow-500/30 rounded-lg`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-yellow-700 dark:text-yellow-400 mb-2 flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4`}),e.differences.length,` Difference`,e.differences.length>1?`s`:``,` Found`]}),(0,G.jsxs)(`ul`,{className:`text-sm text-white/80 space-y-1`,children:[e.differences.slice(0,5).map(e=>(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`span`,{className:`text-yellow-700 dark:text-yellow-400`,children:e.label}),`: `,e.values.join(` vs `),` `,e.unit||``]},e.field)),e.differences.length>5&&(0,G.jsxs)(`li`,{className:`text-bambu-gray`,children:[`...and `,e.differences.length-5,` more`]})]})]}),e.success_correlation.has_both_outcomes?(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-white mb-3 flex items-center gap-2`,children:[(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green`}),`Success/Failure Analysis`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm mb-3`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-green`,children:[e.success_correlation.successful_count,` successful`]}),(0,G.jsxs)(`span`,{className:`text-red-700 dark:text-red-400`,children:[e.success_correlation.failed_count,` failed`]})]}),e.success_correlation.insights&&e.success_correlation.insights.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:e.success_correlation.insights.map(e=>(0,G.jsxs)(`div`,{className:`text-sm p-2 bg-bambu-dark-secondary rounded`,children:[(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[e.label,`:`]}),` `,(0,G.jsx)(`span`,{className:`text-white/80`,children:e.insight})]},e.field))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:`No clear correlations found between settings and outcomes.`})]}):(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-lg text-sm text-bambu-gray`,children:(0,G.jsx)(`p`,{children:e.success_correlation.message||`Need both successful and failed prints for correlation analysis.`})})]})}function wVe(e){let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`Just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}function TVe({upload:e,projects:t,onArchive:n,onDiscard:r,isArchiving:i,isDiscarding:a}){let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(e.tags||``),[u,d]=(0,y.useState)(e.notes||``),[f,p]=(0,y.useState)(e.project_id),[m,h]=(0,y.useState)(!1);return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(sc,{className:`w-8 h-8 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,title:e.filename,children:e.display_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:Gd(e.file_size)}),(0,G.jsx)(`span`,{children:`·`}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),wVe(e.uploaded_at)]}),e.source_ip&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`·`}),(0,G.jsxs)(`span`,{children:[`from `,e.source_ip]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>s(!o),className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:o?(0,G.jsx)(gs,{className:`w-5 h-5`}):(0,G.jsx)(ps,{className:`w-5 h-5`})}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>n(e.id,{tags:c,notes:u,project_id:f||void 0}),disabled:i,children:i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),`Archive`]})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h(!0),disabled:a,children:a?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]})]}),m&&(0,G.jsx)(of,{title:`Discard Upload`,message:`Are you sure you want to discard "${e.filename}"? This cannot be undone.`,confirmText:`Discard`,variant:`danger`,onConfirm:()=>{r(e.id),h(!1)},onCancel:()=>h(!1)}),o&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Tags`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`e.g., functional, prototype, gift`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white placeholder-bambu-gray text-sm`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Notes`}),(0,G.jsx)(`textarea`,{value:u,onChange:e=>d(e.target.value),placeholder:`Add notes about this print...`,rows:2,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white placeholder-bambu-gray text-sm resize-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Project`}),(0,G.jsxs)(`select`,{value:f||``,onChange:e=>p(e.target.value?Number(e.target.value):null),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:``,children:`No project`}),t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]})]})})}function EVe(){let e=co(),{showToast:t}=qd(),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(new Set),[c,l]=(0,y.useState)(new Set),{data:u,isLoading:d}=K({queryKey:[`pending-uploads`],queryFn:Td.list,refetchInterval:1e4}),{data:f}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:e=>JW([...e].sort((e,t)=>e.name.localeCompare(t.name)))}),p=q({mutationFn:({id:e,data:t})=>Td.archive(e,t),onMutate:({id:e})=>{s(t=>new Set(t).add(e))},onSettled:(e,t,{id:n})=>{s(e=>{let t=new Set(e);return t.delete(n),t})},onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),e.invalidateQueries({queryKey:[`archives`]}),t(`Archived: ${n.print_name}`)},onError:e=>{t(e.message||`Failed to archive`,`error`)}}),m=q({mutationFn:e=>Td.discard(e),onMutate:e=>{l(t=>new Set(t).add(e))},onSettled:(e,t,n)=>{l(e=>{let t=new Set(e);return t.delete(n),t})},onSuccess:()=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),t(`Upload discarded`)},onError:e=>{t(e.message||`Failed to discard`,`error`)}}),h=q({mutationFn:Td.archiveAll,onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),e.invalidateQueries({queryKey:[`archives`]}),t(`Archived ${n.archived} files${n.failed>0?`, ${n.failed} failed`:``}`)},onError:e=>{t(e.message||`Failed to archive all`,`error`)}}),g=q({mutationFn:Td.discardAll,onSuccess:n=>{e.invalidateQueries({queryKey:[`pending-uploads`]}),t(`Discarded ${n.discarded} files`)},onError:e=>{t(e.message||`Failed to discard all`,`error`)}});return d?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})}):!u||u.length===0?null:(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(zd,{className:`border-l-4 border-l-yellow-500`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Vu,{className:`w-5 h-5 text-yellow-500`}),(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Pending Uploads (`,u.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>r(!0),disabled:h.isPending,children:h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),`Archive All`]})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>a(!0),disabled:g.isPending,children:g.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Discard All`]})})]})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:`These files were uploaded via the virtual printer. Review and archive them to add to your collection.`}),(0,G.jsx)(`div`,{className:`space-y-3`,children:u.map(e=>(0,G.jsx)(TVe,{upload:e,projects:f||[],onArchive:(e,t)=>p.mutate({id:e,data:t}),onDiscard:e=>m.mutate(e),isArchiving:o.has(e.id),isDiscarding:c.has(e.id)},e.id))})]})]}),n&&(0,G.jsx)(of,{title:`Archive All Uploads`,message:`Are you sure you want to archive all ${u.length} pending uploads?`,confirmText:`Archive All`,onConfirm:()=>{h.mutate(),r(!1)},onCancel:()=>r(!1)}),i&&(0,G.jsx)(of,{title:`Discard All Uploads`,message:`Are you sure you want to discard all ${u.length} pending uploads? This cannot be undone.`,confirmText:`Discard All`,variant:`danger`,onConfirm:()=>{g.mutate(),a(!1)},onCancel:()=>a(!1)})]})}function DVe({onClose:e}){let t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(`count`);(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&(a?o(null):l?u(null):e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,a,l]);let{data:p,isLoading:m}=K({queryKey:[`tags`],queryFn:Z.getTags}),h=q({mutationFn:({oldName:e,newName:t})=>Z.renameTag(e,t),onSuccess:(e,{oldName:r,newName:i})=>{t.invalidateQueries({queryKey:[`tags`]}),t.invalidateQueries({queryKey:[`archives`]}),n(`Renamed "${r}" to "${i}" in ${e.affected} archive${e.affected===1?``:`s`}`),o(null)},onError:e=>{n(e.message||`Failed to rename tag`,`error`)}}),g=q({mutationFn:e=>Z.deleteTag(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:[`tags`]}),t.invalidateQueries({queryKey:[`archives`]}),n(`Deleted "${r}" from ${e.affected} archive${e.affected===1?``:`s`}`),u(null)},onError:e=>{n(e.message||`Failed to delete tag`,`error`)}}),_=e=>{o(e.name),c(e.name),u(null)},v=()=>{o(null),c(``)},b=()=>{if(!a||!s.trim())return;let e=s.trim();if(e===a){v();return}h.mutate({oldName:a,newName:e})},x=e=>{e.key===`Enter`?(e.preventDefault(),b()):e.key===`Escape`&&(e.preventDefault(),v())},S=e=>{u(e),o(null)},C=()=>{l&&g.mutate(l)},w=p?.filter(e=>e.name.toLowerCase().includes(r.toLowerCase())).sort((e,t)=>d===`count`&&t.count-e.count||e.name.localeCompare(t.name)),T=p?.reduce((e,t)=>e+t.count,0)||0;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-lg max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:`Manage Tags`})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:`Search tags...`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:r,onChange:e=>i(e.target.value)})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:d,onChange:e=>f(e.target.value),children:[(0,G.jsx)(`option`,{value:`count`,children:`Sort by Count`}),(0,G.jsx)(`option`,{value:`name`,children:`Sort by Name`})]})]}),p&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:[p.length,` tag`,p.length===1?``:`s`,` across `,T,` usage`,T===1?``:`s`]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto min-h-0 p-4`,children:m?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-gray`})}):w?.length?(0,G.jsx)(`div`,{className:`space-y-2`,children:w.map(e=>(0,G.jsx)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors group`,children:a===e.name?(0,G.jsxs)(`div`,{className:`flex-1 flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,className:`flex-1 px-2 py-1 bg-bambu-dark-tertiary border border-bambu-green rounded text-white text-sm focus:outline-none`,value:s,onChange:e=>c(e.target.value),onKeyDown:x,autoFocus:!0}),(0,G.jsx)(Q,{size:`sm`,variant:`primary`,onClick:b,disabled:!s.trim()||h.isPending,className:`p-1.5`,children:h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:v,className:`p-1.5`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):l===e.name?(0,G.jsxs)(`div`,{className:`flex-1 flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray-light flex-1`,children:[`Delete "`,e.name,`" from `,e.count,` archive`,e.count===1?``:`s`,`?`]}),(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:C,disabled:g.isPending,className:`p-1.5`,children:g.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>u(null),className:`p-1.5`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white flex-1 truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray text-xs`,children:e.count}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity`,children:[(0,G.jsx)(`button`,{onClick:()=>_(e),className:`p-1.5 rounded hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors`,title:`Rename tag`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>S(e.name),className:`p-1.5 rounded hover:bg-bambu-dark text-bambu-gray hover:text-red-700 dark:hover:text-red-400 transition-colors`,title:`Delete tag`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})},e.name))}):(0,G.jsx)(`div`,{className:`text-center py-8 text-bambu-gray`,children:r?`No tags match your search`:`No tags found`})}),(0,G.jsx)(`div`,{className:`flex gap-3 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:`Close`})})]})})})}var W2=`bambuddy-printlog-columns`,G2={date:`archives.log.date`,print_name:`archives.log.printName`,printer:`archives.log.printer`,user:`archives.log.user`,status:`archives.log.status`,duration:`archives.log.duration`,completed_at:`archives.log.completedAt`,filament:`archives.log.filament`,filament_used:`archives.log.filamentUsed`,cost:`archives.log.cost`,energy:`archives.log.energy`,energy_cost:`archives.log.energyCost`},K2=[{id:`date`,visible:!0},{id:`print_name`,visible:!0},{id:`printer`,visible:!0},{id:`user`,visible:!0},{id:`status`,visible:!0},{id:`duration`,visible:!0},{id:`filament`,visible:!0},{id:`filament_used`,visible:!0},{id:`completed_at`,visible:!1},{id:`cost`,visible:!1},{id:`energy`,visible:!1},{id:`energy_cost`,visible:!1}];function OVe(){try{let e=localStorage.getItem(W2);if(e){let t=JSON.parse(e),n=new Set(Object.keys(G2)),r=new Set(t.map(e=>e.id)),i=t.filter(e=>n.has(e.id)).map(e=>({id:e.id,visible:!!e.visible})),a=K2.filter(e=>!r.has(e.id));if(i.length>0)return[...i,...a]}}catch{}return K2.map(e=>({...e}))}var q2=`bambuddy-printlog-sort`,J2=new Set(Object.keys(G2)),kVe={column:`date`,direction:`desc`};function AVe(){try{let e=localStorage.getItem(q2);if(e){let t=JSON.parse(e);if(J2.has(t?.column)&&(t.direction===`asc`||t.direction===`desc`))return t}}catch{}return{...kVe}}function jVe(e){try{localStorage.setItem(q2,JSON.stringify(e))}catch{}}function MVe(e){try{localStorage.setItem(W2,JSON.stringify(e.map(e=>({id:e.id,visible:e.visible}))))}catch{}}function Y2(e){let t=e.filename;if(t){let e=t.toLowerCase();if(e.endsWith(`.gcode`)||e.includes(`.gcode.`))return!0}return!!(e.total_layers||e.print_time_seconds)}async function X2(e,t,n,r){try{if(n===`source`){let{token:n}=await Z.createSourceSlicerToken(e),i=Z.getSourceSlicerDownloadUrl(e,n,t);KW(`${window.location.origin}${i}`,r)}else{let{token:n}=await Z.createArchiveSlicerToken(e),i=Z.getArchiveSlicerDownloadUrl(e,n,t);KW(`${window.location.origin}${i}`,r)}}catch{let i=n===`source`?Z.getSource3mfForSlicer(e,t):Z.getArchiveForSlicer(e,t);KW(`${window.location.origin}${i}`,r)}}function NVe({archive:e,printerName:t,printerMap:n,isSelected:r,onSelect:i,selectionMode:a,projects:o,isHighlighted:s,timeFormat:c=`system`,preferredSlicer:l=`bambu_studio`,useSlicerApi:u=!1,currency:d,t:f,onNavigateToArchive:p}){s&&console.log(`ArchiveCard isHighlighted=true for archive:`,e.id);let m=co(),{showToast:h}=qd(),{hasPermission:g,canModify:_}=Nd(),v=or(),b=(0,y.useMemo)(()=>{let t=e.extra_data?.slicer_ams_mapping;if(!(!t||!Array.isArray(t.mapping)||t.printer_id==null))return n.get(t.printer_id)},[e.extra_data,n]),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),j=K({queryKey:[`archive`,e.id,`delete-impact`],queryFn:()=>Z.getArchiveDeleteImpact(e.id),enabled:D,staleTime:0}),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(null),[_e,ve]=(0,y.useState)(!1),[ye,be]=(0,y.useState)(null),xe=(0,y.useRef)(null),Se=(0,y.useRef)(null),Ce=(0,y.useRef)(null),{data:we}=K({queryKey:[`archive-plates`,e.id],queryFn:()=>Z.getArchivePlates(e.id),enabled:_e,staleTime:300*1e3}),Te=e.duplicate_sequence??0,Ee=e.original_archive_id??null,De=we?.plates??[],Oe=we?.is_multi_plate??!1,ke=he??0,Ae=async()=>{try{let t=await Z.getArchivePlates(e.id);if(t.has_gcode===!1){h(f(`archives.platePicker.noGcode`),`info`);return}if(t.is_multi_plate&&t.plates.length>1){be(t.plates);return}}catch{}v(`/gcode-viewer?archive=${e.id}`)},je=q({mutationFn:()=>Z.deleteArchiveTimelapse(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveTimelapse`),`error`)}}),Me=q({mutationFn:t=>Z.uploadArchiveTimelapse(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseUploaded`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadTimelapse`),`error`)}}),Ne=q({mutationFn:t=>Z.uploadSource3mf(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.source3mfAttached`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadSource3mf`),`error`)}}),Pe=q({mutationFn:()=>Z.deleteSource3mf(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.source3mfRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveSource3mf`),`error`)}}),Fe=q({mutationFn:t=>Z.uploadF3d(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.f3dAttached`,{filename:e.filename}))},onError:e=>{h(e.message||f(`archives.toast.failedUploadF3d`),`error`)}}),Ie=q({mutationFn:()=>Z.deleteF3d(e.id),onSuccess:()=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.f3dRemoved`))},onError:e=>{h(e.message||f(`archives.toast.failedRemoveF3d`),`error`)}}),Le=q({mutationFn:()=>Z.scanArchiveTimelapse(e.id),onSuccess:e=>{e.status===`attached`?(m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseAttached`,{filename:e.filename}))):e.status===`exists`?h(f(`archives.toast.timelapseAlreadyAttached`)):e.status===`not_found`&&e.available_files&&e.available_files.length>0?(te(e.available_files),V(!0)):h(e.message||f(`archives.toast.noMatchingTimelapse`),`warning`)},onError:e=>{h(e.message||f(`archives.toast.failedScanTimelapse`),`error`)}}),Re=q({mutationFn:t=>Z.selectArchiveTimelapse(e.id,t),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.timelapseAttached`,{filename:e.filename})),V(!1),te([])},onError:e=>{h(e.message||f(`archives.toast.failedAttachTimelapse`),`error`)}}),ze=q({mutationFn:t=>Z.deleteArchive(e.id,t),onSuccess:()=>{qW(m),h(f(`archives.toast.archiveDeleted`))},onError:()=>{h(f(`archives.toast.failedDeleteArchive`),`error`)}}),Be=q({mutationFn:()=>Z.toggleFavorite(e.id),onSuccess:e=>{m.invalidateQueries({queryKey:[`archives`]}),h(e.is_favorite?f(`archives.toast.addedToFavorites`):f(`archives.toast.removedFromFavorites`))}}),{data:Ve}=K({queryKey:[`archive-folders`,e.id],queryFn:()=>Z.getLibraryFoldersByArchive(e.id)}),He=q({mutationFn:t=>Z.updateArchive(e.id,{project_id:t}),onSuccess:()=>{qW(m),h(f(`archives.toast.projectUpdated`))},onError:()=>{h(f(`archives.toast.failedUpdateProject`),`error`)}}),Ue=e=>{e.preventDefault(),me({x:e.clientX,y:e.clientY})},We=[...Y2(e)?[{label:f(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4`}),onClick:()=>S(!0),disabled:!e.file_path||!g(`queue:create`)||!_(`archives`,`reprint`,e.created_by_id),title:e.file_path?g(`queue:create`)?_(`archives`,`reprint`,e.created_by_id)?void 0:f(`archives.permission.noReprint`):f(`archives.permission.noAddToQueue`):f(`archives.card.noFileForReprint`)},{label:f(`archives.menu.openInBambuStudio`),icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,l)},disabled:!e.file_path,title:e.file_path?void 0:f(`archives.card.noFileForReprint`)}]:[{label:f(`archives.menu.slice`),icon:u?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{if(u)w(!0);else{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,l)}}},...u?[{label:f(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>E(!0),disabled:!g(`pipelines:run`),title:g(`pipelines:run`)?void 0:f(`library.runWithPipeline.noPermission`)}]:[]],{label:e.external_url?f(`archives.menu.externalLink`):f(`archives.menu.viewOnMakerWorld`),icon:(0,G.jsx)(Ac,{className:`w-4 h-4`}),onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url},{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>{Ae()}},{label:f(`archives.menu.viewTimelapse`),icon:(0,G.jsx)(mc,{className:`w-4 h-4`}),onClick:()=>L(!0),disabled:!e.timelapse_path},{label:f(`archives.media.download`),icon:(0,G.jsx)(uc,{className:`w-4 h-4`}),onClick:()=>z(!0),disabled:!e.timelapse_path&&(!g(`printers:files`)||!e.printer_id||!e.started_at),title:!e.timelapse_path&&!g(`printers:files`)?f(`printers.permission.noFiles`):void 0},{label:f(`archives.menu.scanForTimelapse`),icon:(0,G.jsx)(Xl,{className:`w-4 h-4`}),onClick:()=>Le.mutate(),disabled:!e.printer_id||!!e.timelapse_path||Le.isPending||!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.uploadTimelapse`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>Ce.current?.click(),disabled:!!e.timelapse_path||!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},...e.timelapse_path?[{label:f(`archives.menu.removeTimelapse`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>fe(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:e.source_3mf_path?f(`archives.menu.downloadSource3mf`):f(`archives.menu.uploadSource3mf`),icon:(0,G.jsx)(cc,{className:`w-4 h-4`}),onClick:()=>{e.source_3mf_path?Z.downloadSource3mf(e.id).catch(e=>{console.error(`Source 3MF download failed:`,e)}):xe.current?.click()},disabled:!e.source_3mf_path&&!_(`archives`,`update`,e.created_by_id),title:!e.source_3mf_path&&!_(`archives`,`update`,e.created_by_id)?f(`archives.permission.noUploadFiles`):void 0},...e.source_3mf_path?[{label:f(`archives.menu.replaceSource3mf`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>xe.current?.click(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.removeSource3mf`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ce(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:e.f3d_path?f(`archives.menu.replaceF3d`):f(`archives.menu.uploadF3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>Se.current?.click(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},...e.f3d_path?[{label:f(`archives.menu.downloadF3d`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})}},{label:f(`archives.menu.removeF3d`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ue(!0),danger:!0,disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},disabled:!g(`archives:read`),title:g(`archives:read`)?void 0:f(`archives.permission.noDownload`)},{label:f(`archives.menu.copyDownloadLink`),icon:(0,G.jsx)(Vs,{className:`w-4 h-4`}),onClick:()=>{let t=`${window.location.origin}${Z.getArchiveDownload(e.id)}`;navigator.clipboard.writeText(t).then(()=>{h(f(`archives.toast.linkCopied`))}).catch(()=>{h(f(`archives.toast.failedCopyLink`),`error`)})},disabled:!g(`archives:read`),title:g(`archives:read`)?void 0:f(`archives.permission.noCopyLink`)},{label:f(`archives.menu.qrCode`),icon:(0,G.jsx)(zl,{className:`w-4 h-4`}),onClick:()=>re(!0)},{label:e.photos?.length?f(`archives.menu.viewPhotosCount`,{count:e.photos.length}):f(`archives.menu.viewPhotos`),icon:(0,G.jsx)(ss,{className:`w-4 h-4`}),onClick:()=>ae(!0),disabled:!e.photos?.length},{label:f(`archives.menu.projectPage`),icon:(0,G.jsx)(fc,{className:`w-4 h-4`}),onClick:()=>se(!0)},{label:``,divider:!0,onClick:()=>{}},{label:e.is_favorite?f(`archives.menu.removeFromFavorites`):f(`archives.menu.addToFavorites`),icon:(0,G.jsx)(xu,{className:`w-4 h-4 ${e.is_favorite?`fill-yellow-400 text-yellow-400`:_(`archives`,`update`,e.created_by_id)?`group-hover:text-yellow-400`:``}`}),onClick:()=>Be.mutate(),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.edit`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>N(!0),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`)},{label:f(`archives.menu.printLog`),icon:(0,G.jsx)(zc,{className:`w-4 h-4`}),onClick:()=>F(!0)},...e.project_id&&e.project_name?[{label:f(`archives.menu.goToProject`,{name:e.project_name}),icon:(0,G.jsx)(_c,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>window.location.href=`/projects`}]:[],{label:f(`archives.menu.addToProject`),icon:(0,G.jsx)(_c,{className:`w-4 h-4`}),onClick:()=>{},disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?void 0:f(`archives.permission.noUpdateArchives`),submenuSearchPlaceholder:JW(o??[],e.project_id).length>5?f(`archives.menu.searchProjects`):void 0,submenu:(()=>{let t=[];if(e.project_id&&t.push({label:f(`archives.menu.removeFromProject`),icon:(0,G.jsx)(nd,{className:`w-4 h-4`}),onClick:()=>He.mutate(null),disabled:!_(`archives`,`update`,e.created_by_id)}),!o)t.push({label:f(`archives.menu.loading`),icon:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),onClick:()=>{},disabled:!0});else{let n=JW(o,e.project_id).sort((e,t)=>e.name.localeCompare(t.name));n.length===0?t.push({label:f(`archives.menu.noProjectsAvailable`),icon:(0,G.jsx)(_c,{className:`w-4 h-4 opacity-50`}),onClick:()=>{},disabled:!0}):n.forEach(n=>{t.push({label:n.name,icon:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:n.color||`#888`}}),onClick:()=>He.mutate(n.id),disabled:e.project_id===n.id||!_(`archives`,`update`,e.created_by_id)})})}return t})()},{label:f(r?`archives.menu.deselect`:`archives.menu.select`),icon:r?(0,G.jsx)(vu,{className:`w-4 h-4`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),onClick:()=>i(e.id)},{label:``,divider:!0,onClick:()=>{}},{label:f(`archives.menu.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>O(!0),danger:!0,disabled:!_(`archives`,`delete`,e.created_by_id),title:_(`archives`,`delete`,e.created_by_id)?void 0:f(`archives.permission.noDelete`)}];return(0,G.jsxs)(zd,{"data-archive-id":e.id,className:`relative flex flex-col group ${r?`ring-2 ring-bambu-green`:``} ${a?`cursor-pointer`:``}`,style:s?{outline:`4px solid #facc15`,outlineOffset:`2px`}:void 0,onContextMenu:Ue,onClick:a?()=>i(e.id):void 0,children:[a&&(0,G.jsx)(`button`,{className:`absolute top-2 left-2 z-10 p-1 rounded bg-black/50 hover:bg-black/70 transition-colors`,onClick:t=>{t.stopPropagation(),i(e.id)},children:r?(0,G.jsx)(vu,{className:`w-5 h-5 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-5 h-5 text-white`})}),(0,G.jsxs)(`div`,{className:`aspect-video bg-bambu-dark relative flex-shrink-0 overflow-hidden rounded-t-xl`,onMouseEnter:()=>ve(!0),onMouseLeave:()=>ve(!1),children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:he!==null&&De.length>0?Z.getArchivePlateThumbnail(e.id,De[ke]?.index??0):Z.getArchiveThumbnail(e.id),alt:e.print_name||e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(Hc,{className:`w-12 h-12 text-bambu-dark-tertiary`})}),Oe&&De.length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`absolute left-1 top-1/2 -translate-y-1/2 p-1 rounded-full bg-black/60 hover:bg-black/80 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>{e.stopPropagation(),ge(e=>{let t=e??0;return t>0?t-1:De.length-1})},title:f(`archives.card.previousPlate`),children:(0,G.jsx)(hs,{className:`w-4 h-4 text-white`})}),(0,G.jsx)(`button`,{className:`absolute right-1 top-1/2 -translate-y-1/2 p-1 rounded-full bg-black/60 hover:bg-black/80 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>{e.stopPropagation(),ge(e=>{let t=e??0;return t(0,G.jsx)(`button`,{className:`w-2 h-2 rounded-full transition-colors ${t===ke?`bg-bambu-green`:`bg-white/50 hover:bg-white/80`}`,onClick:e=>{e.stopPropagation(),ge(t)},title:e.name||f(`archives.card.plateNumber`,{index:e.index})},e.index))})]}),(0,G.jsx)(`button`,{className:`absolute top-2 left-2 p-1.5 rounded bg-black/50 hover:bg-black/70 transition-all can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 ${a?`left-10`:``}`,onClick:e=>{e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();me({x:t.left,y:t.bottom+4})},title:f(`archives.card.moreOptions`),children:(0,G.jsx)($s,{className:`w-5 h-5 text-white`})}),(0,G.jsx)(`button`,{className:`absolute top-2 right-2 p-1 rounded transition-colors ${_(`archives`,`update`,e.created_by_id)?`bg-black/50 hover:bg-black/70`:`bg-black/30 cursor-not-allowed`}`,onClick:t=>{t.stopPropagation(),_(`archives`,`update`,e.created_by_id)&&Be.mutate()},disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?e.is_favorite?f(`archives.card.removeFromFavorites`):f(`archives.card.addToFavorites`):f(`archives.permission.noUpdateArchives`),children:(0,G.jsx)(xu,{className:`w-5 h-5 ${e.is_favorite?`text-yellow-400 fill-yellow-400`:`text-white`} ${_(`archives`,`update`,e.created_by_id)?``:`opacity-50`}`})}),(e.status===`failed`||e.status===`aborted`)&&(0,G.jsx)(`div`,{className:`absolute top-2 left-12 px-2 py-1 rounded text-xs bg-status-error/80 text-white`,children:e.status===`aborted`?f(`archives.card.cancelled`):f(`archives.card.failed`)}),e.duplicate_count>0&&Te>0&&Ee&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),p?.(Ee)},className:`absolute top-2 right-12 px-2 py-1 rounded text-xs bg-purple-500/80 hover:bg-purple-600/90 text-white flex items-center gap-1 transition-colors cursor-pointer`,title:f(`archives.viewOriginalPrint`,{id:Ee}),children:[(0,G.jsx)(Vs,{className:`w-3 h-3`}),`#`,Te]}),e.duplicate_count>0&&Te===0&&(0,G.jsxs)(`span`,{className:`absolute top-2 right-12 px-2 py-1 rounded text-xs bg-purple-500/80 text-white flex items-center gap-1`,title:`${e.duplicate_count} reprint${e.duplicate_count===1?``:`s`}`,children:[(0,G.jsx)(Dc,{className:`w-3 h-3`}),`+`,e.duplicate_count]}),e.source_3mf_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 left-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:t=>{t.stopPropagation();let n=(e.print_name||e.filename||`source`).replace(/\.gcode\.3mf$/i,``)+`_source`;X2(e.id,n,`source`,l)},title:f(`archives.card.openSource3mf`),children:(0,G.jsx)(cc,{className:`w-4 h-4 text-orange-400`})}),e.f3d_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 ${e.source_3mf_path?`left-12`:`left-2`} p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:t=>{t.stopPropagation(),Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})},title:f(`archives.card.downloadF3d`),children:(0,G.jsx)(Zo,{className:`w-4 h-4 text-cyan-400`})}),(0,G.jsx)(`button`,{className:`absolute bottom-2 right-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),Ae()},title:f(`archives.card.preview3d`),children:(0,G.jsx)(Jc,{className:`w-4 h-4 text-white`})}),e.timelapse_path&&(0,G.jsx)(`button`,{className:`absolute bottom-2 right-12 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),L(!0)},title:f(`archives.card.viewTimelapse`),children:(0,G.jsx)(mc,{className:`w-4 h-4 text-bambu-green`})}),e.photos&&e.photos.length>0&&(0,G.jsxs)(`button`,{className:`absolute bottom-2 ${e.timelapse_path?`right-[5.5rem]`:`right-12`} p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>{e.stopPropagation(),ae(!0)},title:e.photos.length===1?f(`archives.card.viewPhoto`):f(`archives.card.viewPhotos`,{count:e.photos.length}),children:[(0,G.jsx)(ss,{className:`w-4 h-4 text-blue-400`}),e.photos.length>1&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 w-4 h-4 bg-blue-500 rounded-full text-[10px] text-white flex items-center justify-center`,children:e.photos.length})]}),Ve&&Ve.length>0&&(0,G.jsx)(Ai,{to:`/files?folder=${Ve[0].id}`,className:`absolute bottom-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:e=>e.stopPropagation(),title:f(`archives.card.openFolder`,{name:Ve[0].name}),style:{left:e.source_3mf_path?e.f3d_path?`5.5rem`:`3rem`:e.f3d_path?`3rem`:`0.5rem`},children:(0,G.jsx)(vc,{className:`w-4 h-4 text-yellow-400`})})]}),(0,G.jsxs)(Vd,{className:`p-4 flex-1 flex flex-col`,children:[(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray/70 mb-1`,children:[`#`,e.id]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-1`,children:[(0,G.jsxs)(`h3`,{className:`min-w-0 font-medium text-white truncate`,children:[e.print_name||e.filename,e.plate_id!=null&&e.plate_id>1&&` — ${f(`printers.plateNumber`,{number:e.plate_id})}`]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,className:`p-1 sm:p-1.5 shrink-0`,onClick:()=>N(!0),disabled:!_(`archives`,`update`,e.created_by_id),title:_(`archives`,`update`,e.created_by_id)?f(`archives.card.edit`):f(`archives.card.noPermissionEdit`),children:(0,G.jsx)(Al,{className:`w-3 h-3 sm:w-4 sm:h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 flex-wrap`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsx)(`img`,{src:t.icon,alt:t.label,title:t.label,className:`w-4 h-4 flex-shrink-0`}):null})(),(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded font-medium ${Y2(e)?`bg-bambu-green/20 text-bambu-green`:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`}`,title:Y2(e)?f(`archives.card.slicedFile`):f(`archives.card.sourceFile`),children:Y2(e)?f(`archives.card.gcode`):f(`archives.card.source`)}),e.content_hash&&(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded font-mono bg-bambu-dark-tertiary/50 text-bambu-gray-light opacity-0 transition-opacity duration-150 group-hover:opacity-100`,title:`SHA256: ${e.content_hash}`,children:e.content_hash.slice(0,8).toUpperCase()}),e.project_name&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full truncate max-w-[120px]`,style:{backgroundColor:`${o?.find(t=>t.id===e.project_id)?.color||`#6b7280`}20`,color:o?.find(t=>t.id===e.project_id)?.color||`#6b7280`},title:f(`archives.card.project`,{name:e.project_name}),children:e.project_name}),e.run_count>1&&(0,G.jsx)(`button`,{className:`text-[10px] px-1.5 py-0.5 rounded font-medium bg-bambu-orange/20 text-bambu-orange hover:bg-bambu-orange/30 transition-colors cursor-pointer`,onClick:e=>{e.stopPropagation(),F(!0)},title:f(`archives.card.runsBadgeTitle`,{count:e.run_count,successful:e.successful_run_count,failed:e.failed_run_count}),children:f(`archives.card.runsBadge`,{count:e.run_count})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs mb-4 min-h-[48px]`,children:[(e.print_time_seconds||e.actual_time_seconds)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:e.time_accuracy?`Estimated: ${lp(e.print_time_seconds||0)}\nActual: ${lp(e.actual_time_seconds||0)}\nAccuracy: ${e.time_accuracy.toFixed(0)}%`:e.actual_time_seconds?`Actual: ${lp(e.actual_time_seconds)}`:`Estimated: ${lp(e.print_time_seconds||0)}`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.actual_time_seconds||e.print_time_seconds||0),e.time_accuracy&&(0,G.jsxs)(`span`,{className:`text-[10px] px-1 rounded ${e.time_accuracy>=95&&e.time_accuracy<=105?`bg-bambu-green/20 text-bambu-green`:e.time_accuracy>105?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`}`,children:[e.time_accuracy>100?`+`:``,(e.time_accuracy-100).toFixed(0),`%`]})]}),e.filament_used_grams&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-3 h-3`}),e.filament_used_grams.toFixed(1),`g`]}),(e.cost!=null||e.energy_cost!=null)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-bambu-gray`,children:[e.cost!=null&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Ls,{className:`w-3 h-3`}),d,e.cost.toFixed(2)]}),e.energy_cost!=null&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:`${f(`stats.energyUsed`)}: ${e.energy_kwh?.toFixed(3)||`N/A`} kWh`,children:[(0,G.jsx)(id,{className:`w-3 h-3`}),d,e.energy_cost.toFixed(2)]})]}),(e.layer_height||e.total_layers)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),e.total_layers&&(0,G.jsx)(`span`,{children:e.total_layers===1?f(`archives.card.layer`,{count:e.total_layers}):f(`archives.card.layers`,{count:e.total_layers})}),e.total_layers&&e.layer_height&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`·`}),e.layer_height&&(0,G.jsxs)(`span`,{children:[e.layer_height,`mm`]})]}),e.object_count!=null&&e.object_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:e.object_count===1?f(`archives.card.object`,{count:e.object_count}):f(`archives.card.objects`,{count:e.object_count}),children:[(0,G.jsx)(Zo,{className:`w-3 h-3`}),e.object_count===1?f(`archives.card.object`,{count:e.object_count}):f(`archives.card.objects`,{count:e.object_count})]}),e.sliced_for_model&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,title:f(`archives.card.slicedFor`,{model:e.sliced_for_model}),children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),e.sliced_for_model]}),e.filament_type&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 col-span-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e.filament_type}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e},title:e},t))})]})]}),b&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-green text-xs mb-3`,title:f(`archives.card.slicerAmsMappingTooltip`,{printer:b}),children:[(0,G.jsx)(Ss,{className:`w-3.5 h-3.5`}),f(`archives.card.slicerAmsMapping`,{printer:b})]}),(e.tags||e.notes)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 mb-3`,children:[e.notes&&(0,G.jsx)(`div`,{className:`flex items-center gap-1 px-1.5 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 rounded text-xs`,title:e.notes,children:(0,G.jsx)(Cu,{className:`w-3 h-3`})}),e.tags?.split(`,`).map((e,t)=>(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-bambu-dark-tertiary text-bambu-gray-light rounded text-xs`,children:e.trim()},t))]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`span`,{children:op(e.created_at,c)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.created_by_username&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,title:f(`archives.card.uploadedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]}),(0,G.jsx)(`span`,{children:Gd(e.file_size)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-1 mt-3`,children:[Y2(e)?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,className:`flex-1 min-w-0 overflow-hidden`,onClick:()=>S(!0),disabled:!e.file_path||!g(`queue:create`)||!_(`archives`,`reprint`,e.created_by_id),title:e.file_path?g(`queue:create`)?_(`archives`,`reprint`,e.created_by_id)?void 0:f(`archives.card.noPermissionReprint`):f(`archives.permission.noAddToQueue`):f(`archives.card.noFileForReprint`),children:[(0,G.jsx)(Rl,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`hidden xl:inline truncate`,children:f(`common.print`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,l)},title:f(`archives.card.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-3 h-3 sm:w-4 sm:h-4`})})]}):(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,className:`flex-1 min-w-0 overflow-hidden`,onClick:()=>{if(u)w(!0);else{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,l)}},title:f(u?`slice.title`:`archives.card.openInBambuStudioToSlice`),children:[u?(0,G.jsx)(Rs,{className:`w-3 h-3 flex-shrink-0`}):(0,G.jsx)(rc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`hidden xl:inline truncate`,children:f(`archives.card.slice`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url,title:e.external_url?f(`archives.card.externalLink`):e.makerworld_url?f(`archives.card.makerWorld`,{designer:e.designer||f(`archives.card.viewProject`)}):f(`archives.card.noExternalLink`),children:(0,G.jsx)(Ac,{className:`w-3 h-3 sm:w-4 sm:h-4 ${!e.external_url&&!e.makerworld_url?`opacity-20`:``}`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},title:f(`archives.card.download`),children:(0,G.jsx)(Xs,{className:`w-3 h-3 sm:w-4 sm:h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,className:`min-w-0 p-1 sm:p-1.5`,onClick:()=>O(!0),disabled:!_(`archives`,`delete`,e.created_by_id),title:_(`archives`,`delete`,e.created_by_id)?f(`archives.card.delete`):f(`archives.card.noPermissionDelete`),children:(0,G.jsx)(Pu,{className:`w-3 h-3 sm:w-4 sm:h-4 text-red-600 dark:text-red-400`})})]})]}),M&&(0,G.jsx)($W,{archive:e,onClose:()=>N(!1)}),P&&(0,G.jsx)(eG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>F(!1)}),ye&&(0,G.jsx)(bW,{plates:ye,onSelect:t=>{be(null),v(`/gcode-viewer?archive=${e.id}&plate=${t}`)},onClose:()=>be(null)}),x&&(0,G.jsx)(zU,{mode:`create`,archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>S(!1)}),C&&(0,G.jsx)(RW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>w(!1)}),T&&(0,G.jsx)(VW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>E(!1)}),D&&(0,G.jsxs)(of,{title:f(`archives.modal.deleteArchive`),message:f(`archives.modal.deleteConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.deleteButton`),variant:`danger`,confirmDisabled:(j.data?.currently_printing??0)>0,onConfirm:()=>{ze.mutate(k),O(!1),A(!1)},onCancel:()=>{O(!1),A(!1)},children:[(j.data?.related_queue_items??0)>0&&(0,G.jsx)(`div`,{className:(j.data?.currently_printing??0)>0?`text-sm text-red-600 dark:text-red-400 mb-2`:`text-sm text-amber-600 dark:text-amber-400 mb-2`,children:(j.data?.currently_printing??0)>0?f(`archives.modal.deleteBlockedByPrinting`,{count:j.data.currently_printing}):f(`archives.modal.deleteQueueItemsWarning`,{count:j.data.related_queue_items})}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 accent-red-500`,checked:k,onChange:e=>A(e.target.checked)}),(0,G.jsx)(`span`,{children:f(`archives.modal.deletePurgeStats`)})]})]}),H&&(0,G.jsx)(of,{title:f(`archives.modal.removeSource3mf`),message:f(`archives.modal.removeSource3mfConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Pe.mutate(),ce(!1)},onCancel:()=>ce(!1)}),le&&(0,G.jsx)(of,{title:f(`archives.modal.removeF3d`),message:f(`archives.modal.removeF3dConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Ie.mutate(),ue(!1)},onCancel:()=>ue(!1)}),de&&(0,G.jsx)(of,{title:f(`archives.modal.removeTimelapse`),message:f(`archives.modal.removeTimelapseConfirm`,{name:e.print_name||e.filename}),confirmText:f(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{je.mutate(),fe(!1)},onCancel:()=>fe(!1)}),pe&&(0,G.jsx)(kT,{x:pe.x,y:pe.y,items:We,onClose:()=>me(null)}),R&&(0,G.jsx)(U2,{archiveId:e.id,archiveName:e.print_name||e.filename,printerName:t,onClose:()=>z(!1)}),I&&e.timelapse_path&&(0,G.jsx)(H2,{src:Z.getArchiveTimelapse(e.id),title:f(`archives.modal.timelapse`,{name:e.print_name||e.filename}),downloadFilename:`${e.print_name||e.filename}_timelapse.mp4`,archiveId:e.id,onClose:()=>L(!1),onEdit:()=>{m.invalidateQueries({queryKey:[`archives`]}),L(!1)}}),B&&ee.length>0&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-card-dark rounded-lg max-w-lg w-full max-h-[80vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:f(`archives.modal.selectTimelapse`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:f(`archives.modal.selectTimelapseDesc`)})]}),(0,G.jsx)(`button`,{onClick:()=>{V(!1),te([])},className:`text-gray-400 hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 p-2`,children:ee.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Re.mutate(e.name),disabled:Re.isPending,className:`w-full text-left p-3 rounded-lg hover:bg-gray-700 transition-colors flex items-center gap-3 disabled:opacity-50`,children:[(0,G.jsx)(mc,{className:`w-8 h-8 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-sm text-gray-400`,children:[Gd(e.size),e.mtime&&` • ${op(e.mtime,c)}`]})]})]},e.name))}),(0,G.jsx)(`div`,{className:`p-4 border-t border-gray-700`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{V(!1),te([])},className:`w-full`,children:`Cancel`})})]})}),ne&&(0,G.jsx)(nG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>re(!1)}),ie&&e.photos&&e.photos.length>0&&(0,G.jsx)(rG,{archiveId:e.id,archiveName:e.print_name||e.filename,photos:e.photos,onClose:()=>ae(!1),onDelete:async t=>{try{await Z.deleteArchivePhoto(e.id,t),m.invalidateQueries({queryKey:[`archives`]}),h(f(`archives.toast.photoDeleted`))}catch{h(f(`archives.toast.failedDeletePhoto`),`error`)}}}),oe&&(0,G.jsx)(V2,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>se(!1)}),(0,G.jsx)(`input`,{ref:xe,type:`file`,accept:`.3mf`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Ne.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:Se,type:`file`,accept:`.f3d`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Fe.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:Ce,type:`file`,accept:`.mp4,.avi,.mkv`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Me.mutate(t),e.target.value=``}})]})}function PVe({archive:e,printerName:t,isSelected:n,onSelect:r,selectionMode:i,projects:a,isHighlighted:o,preferredSlicer:s=`bambu_studio`,useSlicerApi:c=!1,t:l,onNavigateToArchive:u}){let d=co(),{showToast:f}=qd(),{hasPermission:p,canModify:m}=Nd(),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),w=K({queryKey:[`archive`,e.id,`delete-impact`],queryFn:()=>Z.getArchiveDeleteImpact(e.id),enabled:b,staleTime:0}),T=or(),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)([]),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(null),de=(0,y.useRef)(null),fe=(0,y.useRef)(null),pe=(0,y.useRef)(null),[me,he]=(0,y.useState)(null),ge=e.duplicate_sequence??0,_e=e.original_archive_id??null,ve=async()=>{try{let t=await Z.getArchivePlates(e.id);if(t.is_multi_plate&&t.plates.length>1){he(t.plates);return}}catch{}T(`/gcode-viewer?archive=${e.id}`)},ye=q({mutationFn:()=>Z.deleteArchiveTimelapse(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveTimelapse`),`error`)}}),be=q({mutationFn:t=>Z.uploadArchiveTimelapse(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseUploaded`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadTimelapse`),`error`)}}),xe=q({mutationFn:t=>Z.uploadSource3mf(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.source3mfAttached`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadSource3mf`),`error`)}}),Se=q({mutationFn:()=>Z.deleteSource3mf(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.source3mfRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveSource3mf`),`error`)}}),Ce=q({mutationFn:t=>Z.uploadF3d(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.f3dAttached`,{filename:e.filename}))},onError:e=>{f(e.message||l(`archives.toast.failedUploadF3d`),`error`)}}),we=q({mutationFn:()=>Z.deleteF3d(e.id),onSuccess:()=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.f3dRemoved`))},onError:e=>{f(e.message||l(`archives.toast.failedRemoveF3d`),`error`)}}),Te=q({mutationFn:()=>Z.scanArchiveTimelapse(e.id),onSuccess:e=>{e.status===`attached`?(d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseAttached`,{filename:e.filename}))):e.status===`exists`?f(l(`archives.toast.timelapseAlreadyAttached`)):e.status===`not_found`&&e.available_files&&e.available_files.length>0?(z(e.available_files),L(!0)):f(e.message||l(`archives.toast.noMatchingTimelapse`),`warning`)},onError:e=>{f(e.message||l(`archives.toast.failedScanTimelapse`),`error`)}}),Ee=q({mutationFn:t=>Z.selectArchiveTimelapse(e.id,t),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.timelapseAttached`,{filename:e.filename})),L(!1),z([])},onError:e=>{f(e.message||l(`archives.toast.failedAttachTimelapse`),`error`)}}),De=q({mutationFn:t=>Z.deleteArchive(e.id,t),onSuccess:()=>{qW(d),f(l(`archives.toast.archiveDeleted`))},onError:()=>{f(l(`archives.toast.failedDeleteArchive`),`error`)}}),Oe=q({mutationFn:()=>Z.toggleFavorite(e.id),onSuccess:e=>{d.invalidateQueries({queryKey:[`archives`]}),f(e.is_favorite?l(`archives.toast.addedToFavorites`):l(`archives.toast.removedFromFavorites`))}}),{data:ke}=K({queryKey:[`archive-folders`,e.id],queryFn:()=>Z.getLibraryFoldersByArchive(e.id)}),Ae=q({mutationFn:t=>Z.updateArchive(e.id,{project_id:t}),onSuccess:()=>{qW(d),f(l(`archives.toast.projectUpdated`))},onError:()=>{f(l(`archives.toast.failedUpdateProject`),`error`)}}),je=e=>{e.preventDefault(),ue({x:e.clientX,y:e.clientY})},Me=[...Y2(e)?[{label:l(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4`}),onClick:()=>D(!0),disabled:!e.file_path||!p(`queue:create`)||!m(`archives`,`reprint`,e.created_by_id),title:e.file_path?p(`queue:create`)?m(`archives`,`reprint`,e.created_by_id)?void 0:l(`archives.permission.noReprint`):l(`archives.permission.noAddToQueue`):l(`archives.card.noFileForReprint`)},{label:l(`archives.menu.openInBambuStudio`),icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,s)},disabled:!e.file_path,title:e.file_path?void 0:l(`archives.card.noFileForReprint`)}]:[{label:l(`archives.menu.slice`),icon:c?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{if(c)k(!0);else{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,s)}}},...c?[{label:l(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>j(!0),disabled:!p(`pipelines:run`),title:p(`pipelines:run`)?void 0:l(`library.runWithPipeline.noPermission`)}]:[]],{label:e.external_url?l(`archives.menu.externalLink`):l(`archives.menu.viewOnMakerWorld`),icon:(0,G.jsx)(Ac,{className:`w-4 h-4`}),onClick:()=>{let t=e.external_url||e.makerworld_url;t&&window.open(t,`_blank`)},disabled:!e.external_url&&!e.makerworld_url},{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>{ve()}},{label:l(`archives.menu.viewTimelapse`),icon:(0,G.jsx)(mc,{className:`w-4 h-4`}),onClick:()=>N(!0),disabled:!e.timelapse_path},{label:l(`archives.menu.scanForTimelapse`),icon:(0,G.jsx)(Xl,{className:`w-4 h-4`}),onClick:()=>Te.mutate(),disabled:!e.printer_id||!!e.timelapse_path||Te.isPending||!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.uploadTimelapse`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>pe.current?.click(),disabled:!!e.timelapse_path||!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},...e.timelapse_path?[{label:l(`archives.menu.removeTimelapse`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ce(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:e.source_3mf_path?l(`archives.menu.downloadSource3mf`):l(`archives.menu.uploadSource3mf`),icon:(0,G.jsx)(cc,{className:`w-4 h-4`}),onClick:()=>{e.source_3mf_path?Z.downloadSource3mf(e.id).catch(e=>{console.error(`Source 3MF download failed:`,e)}):de.current?.click()},disabled:!e.source_3mf_path&&!m(`archives`,`update`,e.created_by_id),title:!e.source_3mf_path&&!m(`archives`,`update`,e.created_by_id)?l(`archives.permission.noUploadFiles`):void 0},...e.source_3mf_path?[{label:l(`archives.menu.replaceSource3mf`),icon:(0,G.jsx)(Vu,{className:`w-4 h-4`}),onClick:()=>de.current?.click(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.removeSource3mf`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>ae(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:e.f3d_path?l(`archives.menu.replaceF3d`):l(`archives.menu.uploadF3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>fe.current?.click(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},...e.f3d_path?[{label:l(`archives.menu.downloadF3d`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadF3d(e.id).catch(e=>{console.error(`F3D download failed:`,e)})}},{label:l(`archives.menu.removeF3d`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>se(!0),danger:!0,disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)}]:[],{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},disabled:!p(`archives:read`),title:p(`archives:read`)?void 0:l(`archives.permission.noDownload`)},{label:l(`archives.menu.copyDownloadLink`),icon:(0,G.jsx)(Vs,{className:`w-4 h-4`}),onClick:()=>{let t=`${window.location.origin}${Z.getArchiveDownload(e.id)}`;navigator.clipboard.writeText(t).then(()=>{f(l(`archives.toast.linkCopied`))}).catch(()=>{f(l(`archives.toast.failedCopyLink`),`error`)})},disabled:!p(`archives:read`),title:p(`archives:read`)?void 0:l(`archives.permission.noCopyLink`)},{label:l(`archives.menu.qrCode`),icon:(0,G.jsx)(zl,{className:`w-4 h-4`}),onClick:()=>V(!0)},{label:e.photos?.length?l(`archives.menu.viewPhotosCount`,{count:e.photos.length}):l(`archives.menu.viewPhotos`),icon:(0,G.jsx)(ss,{className:`w-4 h-4`}),onClick:()=>te(!0),disabled:!e.photos?.length},{label:l(`archives.menu.projectPage`),icon:(0,G.jsx)(fc,{className:`w-4 h-4`}),onClick:()=>re(!0)},{label:``,divider:!0,onClick:()=>{}},{label:e.is_favorite?l(`archives.menu.removeFromFavorites`):l(`archives.menu.addToFavorites`),icon:(0,G.jsx)(xu,{className:`w-4 h-4 ${e.is_favorite?`fill-yellow-400 text-yellow-400`:m(`archives`,`update`,e.created_by_id)?`group-hover:text-yellow-400`:``}`}),onClick:()=>Oe.mutate(),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.edit`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>g(!0),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?void 0:l(`archives.permission.noUpdateArchives`)},{label:l(`archives.menu.printLog`),icon:(0,G.jsx)(zc,{className:`w-4 h-4`}),onClick:()=>v(!0)},...e.project_id&&e.project_name?[{label:l(`archives.menu.goToProject`,{name:e.project_name}),icon:(0,G.jsx)(_c,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>window.location.href=`/projects`}]:[],{label:l(`archives.menu.addToProject`),icon:(0,G.jsx)(_c,{className:`w-4 h-4`}),onClick:()=>{},submenuSearchPlaceholder:JW(a??[],e.project_id).length>5?l(`archives.menu.searchProjects`):void 0,submenu:(()=>{let t=[];if(e.project_id&&t.push({label:l(`archives.menu.removeFromProject`),icon:(0,G.jsx)(nd,{className:`w-4 h-4`}),onClick:()=>Ae.mutate(null)}),!a)t.push({label:l(`archives.menu.loading`),icon:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),onClick:()=>{},disabled:!0});else{let n=JW(a,e.project_id).sort((e,t)=>e.name.localeCompare(t.name));n.length===0?t.push({label:l(`archives.menu.noProjectsAvailable`),icon:(0,G.jsx)(_c,{className:`w-4 h-4 opacity-50`}),onClick:()=>{},disabled:!0}):n.forEach(n=>{t.push({label:n.name,icon:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:n.color||`#888`}}),onClick:()=>Ae.mutate(n.id),disabled:e.project_id===n.id})})}return t})()},{label:l(n?`archives.menu.deselect`:`archives.menu.select`),icon:n?(0,G.jsx)(vu,{className:`w-4 h-4`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),onClick:()=>r(e.id)},{label:``,divider:!0,onClick:()=>{}},{label:l(`archives.menu.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>x(!0),danger:!0,disabled:!m(`archives`,`delete`,e.created_by_id),title:m(`archives`,`delete`,e.created_by_id)?void 0:l(`archives.permission.noDelete`)}];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{"data-archive-id":e.id,className:`grid grid-cols-12 gap-4 px-4 py-3 items-center hover:bg-bambu-dark-tertiary/30 ${n?`bg-bambu-green/10`:``}`,style:o?{outline:`4px solid #facc15`,outlineOffset:`-4px`}:void 0,onContextMenu:je,children:[(0,G.jsxs)(`div`,{className:`col-span-1 flex items-center gap-2`,children:[i&&(0,G.jsx)(`button`,{onClick:()=>r(e.id),children:n?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray`})}),e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:``,className:`w-10 h-10 object-cover rounded`}):(0,G.jsx)(`div`,{className:`w-10 h-10 bg-bambu-dark rounded flex items-center justify-center`,children:(0,G.jsx)(Hc,{className:`w-5 h-5 text-bambu-dark-tertiary`})})]}),(0,G.jsxs)(`div`,{className:`col-span-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-white text-sm truncate`,children:e.print_name||e.filename}),(e.status===`failed`||e.status===`aborted`)&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-status-error/80 text-white flex-shrink-0`,children:e.status===`aborted`?l(`archives.card.cancelled`):l(`archives.card.failed`)}),e.duplicate_count>0&&ge>0&&_e&&(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),u?.(_e)},className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-purple-500/80 hover:bg-purple-600/90 text-white flex-shrink-0 transition-colors flex items-center gap-1`,title:l(`archives.viewOriginalPrint`,{id:_e}),children:[(0,G.jsx)(Vs,{className:`w-3 h-3`}),`#`,ge]}),e.duplicate_count>0&&ge===0&&(0,G.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] leading-tight bg-purple-500/80 text-white flex-shrink-0 flex items-center gap-1`,title:`${e.duplicate_count} reprint${e.duplicate_count===1?``:`s`}`,children:[(0,G.jsx)(Dc,{className:`w-3 h-3`}),`+`,e.duplicate_count]}),e.timelapse_path&&(0,G.jsx)(`span`,{title:l(`archives.list.hasTimelapse`),children:(0,G.jsx)(mc,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`})}),ke&&ke.length>0&&(0,G.jsx)(Ai,{to:`/files?folder=${ke[0].id}`,className:`flex-shrink-0`,title:l(`archives.card.openFolder`,{name:ke[0].name}),onClick:e=>e.stopPropagation(),children:(0,G.jsx)(vc,{className:`w-3.5 h-3.5 text-yellow-600 dark:text-yellow-400`})})]}),(e.filament_type||e.sliced_for_model)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-0.5`,children:[e.sliced_for_model&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex items-center gap-1`,title:l(`archives.card.slicedFor`,{model:e.sliced_for_model}),children:[(0,G.jsx)(Rl,{className:`w-2.5 h-2.5`}),e.sliced_for_model]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsx)(`img`,{src:t.icon,alt:t.label,title:t.label,className:`w-3.5 h-3.5 flex-shrink-0`}):null})(),e.sliced_for_model&&e.filament_type&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50`,children:`·`}),e.filament_type&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.filament_type}),e.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:e.filament_color.split(`,`).map((e,t)=>(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full border border-black/20`,style:{backgroundColor:e},title:e},t))})]})]}),(0,G.jsx)(`div`,{className:`col-span-2 text-sm text-bambu-gray truncate`,children:t}),(0,G.jsxs)(`div`,{className:`col-span-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`div`,{children:ap(e.created_at)}),e.created_by_username&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-xs opacity-75`,title:l(`archives.card.uploadedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]})]}),(0,G.jsx)(`div`,{className:`col-span-1 text-sm text-bambu-gray`,children:Gd(e.file_size)}),(0,G.jsxs)(`div`,{className:`col-span-2 flex justify-end gap-1`,children:[Y2(e)&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>D(!0),disabled:!e.file_path||!p(`queue:create`)||!m(`archives`,`reprint`,e.created_by_id),title:e.file_path?p(`queue:create`)?m(`archives`,`reprint`,e.created_by_id)?l(`common.print`):l(`archives.card.noPermissionReprint`):l(`archives.permission.noAddToQueue`):l(`archives.card.noFileForReprint`),className:`text-bambu-green hover:text-bambu-green-light hover:bg-bambu-green/10`,children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let t=e.print_name||e.filename||`model`;X2(e.id,t,`file`,s)},title:l(`archives.card.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-4 h-4`})}),(e.external_url||e.makerworld_url)&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>window.open(e.external_url||e.makerworld_url,`_blank`),title:e.external_url?l(`archives.card.externalLink`):`MakerWorld`,children:(0,G.jsx)(Ac,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>F(!0),disabled:!e.timelapse_path&&(!p(`printers:files`)||!e.printer_id||!e.started_at),title:!e.timelapse_path&&!p(`printers:files`)?l(`printers.permission.noFiles`):l(`archives.media.download`),children:(0,G.jsx)(mc,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{Z.downloadArchive(e.id,`${e.print_name||e.filename}.3mf`).catch(e=>{console.error(`Archive download failed:`,e)})},title:l(`archives.card.download`),children:(0,G.jsx)(Xs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>g(!0),disabled:!m(`archives`,`update`,e.created_by_id),title:m(`archives`,`update`,e.created_by_id)?l(`archives.card.edit`):l(`archives.card.noPermissionEdit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>x(!0),disabled:!m(`archives`,`delete`,e.created_by_id),title:m(`archives`,`delete`,e.created_by_id)?l(`archives.card.delete`):l(`archives.card.noPermissionDelete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();ue({x:t.left,y:t.bottom+4})},title:l(`archives.card.moreOptions`),children:(0,G.jsx)($s,{className:`w-4 h-4`})})]})]}),h&&(0,G.jsx)($W,{archive:e,onClose:()=>g(!1)}),_&&(0,G.jsx)(eG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>v(!1)}),me&&(0,G.jsx)(bW,{plates:me,onSelect:t=>{he(null),T(`/gcode-viewer?archive=${e.id}&plate=${t}`)},onClose:()=>he(null)}),E&&(0,G.jsx)(zU,{mode:`create`,archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>D(!1)}),O&&(0,G.jsx)(RW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>k(!1)}),A&&(0,G.jsx)(VW,{source:{kind:`archive`,id:e.id,filename:e.print_name||e.filename||`model`},onClose:()=>j(!1)}),b&&(0,G.jsxs)(of,{title:l(`archives.modal.deleteArchive`),message:l(`archives.modal.deleteConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.deleteButton`),variant:`danger`,confirmDisabled:(w.data?.currently_printing??0)>0,onConfirm:()=>{De.mutate(S),x(!1),C(!1)},onCancel:()=>{x(!1),C(!1)},children:[(w.data?.related_queue_items??0)>0&&(0,G.jsx)(`div`,{className:(w.data?.currently_printing??0)>0?`text-sm text-red-600 dark:text-red-400 mb-2`:`text-sm text-amber-600 dark:text-amber-400 mb-2`,children:(w.data?.currently_printing??0)>0?l(`archives.modal.deleteBlockedByPrinting`,{count:w.data.currently_printing}):l(`archives.modal.deleteQueueItemsWarning`,{count:w.data.related_queue_items})}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`mt-0.5 accent-red-500`,checked:S,onChange:e=>C(e.target.checked)}),(0,G.jsx)(`span`,{children:l(`archives.modal.deletePurgeStats`)})]})]}),ie&&(0,G.jsx)(of,{title:l(`archives.modal.removeSource3mf`),message:l(`archives.modal.removeSource3mfConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{Se.mutate(),ae(!1)},onCancel:()=>ae(!1)}),oe&&(0,G.jsx)(of,{title:l(`archives.modal.removeF3d`),message:l(`archives.modal.removeF3dConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{we.mutate(),se(!1)},onCancel:()=>se(!1)}),H&&(0,G.jsx)(of,{title:l(`archives.modal.removeTimelapse`),message:l(`archives.modal.removeTimelapseConfirm`,{name:e.print_name||e.filename}),confirmText:l(`archives.modal.removeButton`),variant:`danger`,onConfirm:()=>{ye.mutate(),ce(!1)},onCancel:()=>ce(!1)}),le&&(0,G.jsx)(kT,{x:le.x,y:le.y,items:Me,onClose:()=>ue(null)}),P&&(0,G.jsx)(U2,{archiveId:e.id,archiveName:e.print_name||e.filename,printerName:t,onClose:()=>F(!1)}),M&&e.timelapse_path&&(0,G.jsx)(H2,{src:Z.getArchiveTimelapse(e.id),title:l(`archives.modal.timelapse`,{name:e.print_name||e.filename}),downloadFilename:`${e.print_name||e.filename}_timelapse.mp4`,archiveId:e.id,onClose:()=>N(!1),onEdit:()=>{d.invalidateQueries({queryKey:[`archives`]}),N(!1)}}),I&&R.length>0&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-card-dark rounded-lg max-w-lg w-full max-h-[80vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:l(`archives.modal.selectTimelapse`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-400 mt-1`,children:l(`archives.modal.selectTimelapseDesc`)})]}),(0,G.jsx)(`button`,{onClick:()=>{L(!1),z([])},className:`text-gray-400 hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 p-2`,children:R.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Ee.mutate(e.name),disabled:Ee.isPending,className:`w-full text-left p-3 rounded-lg hover:bg-gray-700 transition-colors mb-1`,children:[(0,G.jsx)(`div`,{className:`font-medium text-white`,children:e.name}),(0,G.jsxs)(`div`,{className:`text-sm text-gray-400 flex gap-3`,children:[(0,G.jsx)(`span`,{children:Gd(e.size)}),e.mtime&&(0,G.jsx)(`span`,{children:ap(e.mtime)})]})]},e.name))})]})}),B&&(0,G.jsx)(nG,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>V(!1)}),ee&&e.photos&&(0,G.jsx)(rG,{archiveId:e.id,archiveName:e.print_name||e.filename,photos:e.photos,onClose:()=>te(!1),onDelete:async t=>{try{await Z.deleteArchivePhoto(e.id,t),d.invalidateQueries({queryKey:[`archives`]}),f(l(`archives.toast.photoDeleted`))}catch{f(l(`archives.toast.failedDeletePhoto`),`error`)}}}),ne&&(0,G.jsx)(V2,{archiveId:e.id,archiveName:e.print_name||e.filename,onClose:()=>re(!1)}),(0,G.jsx)(`input`,{ref:de,type:`file`,accept:`.3mf`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&xe.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:fe,type:`file`,accept:`.f3d`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Ce.mutate(t),e.target.value=``}}),(0,G.jsx)(`input`,{ref:pe,type:`file`,accept:`.mp4,.avi,.mkv`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&be.mutate(t),e.target.value=``}})]})}var FVe=[`completed`,`failed`,`aborted`,`cancelled`,`stopped`],IVe=[{id:`all`,label:`All Archives`,icon:(0,G.jsx)(vc,{className:`w-4 h-4`})},{id:`recent`,label:`Last 24 Hours`,icon:(0,G.jsx)(js,{className:`w-4 h-4`})},{id:`this-week`,label:`This Week`,icon:(0,G.jsx)(as,{className:`w-4 h-4`})},{id:`this-month`,label:`This Month`,icon:(0,G.jsx)(as,{className:`w-4 h-4`})},{id:`favorites`,label:`Favorites`,icon:(0,G.jsx)(xu,{className:`w-4 h-4`})},{id:`not-printed`,label:`Not Printed`,icon:(0,G.jsx)(Vu,{className:`w-4 h-4`})},{id:`printed`,label:`Printed`,icon:(0,G.jsx)(Rl,{className:`w-4 h-4`})},{id:`failed`,label:`Failed Prints`,icon:(0,G.jsx)(ys,{className:`w-4 h-4`})},{id:`duplicates`,label:`Duplicates`,icon:(0,G.jsx)(Vs,{className:`w-4 h-4`})}];function LVe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i}=Nd(),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(()=>{let e=localStorage.getItem(`archiveFilterPrinter`);return e?Number(e):null}),[u,d]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterMaterial`)),[f,p]=(0,y.useState)(()=>{let e=localStorage.getItem(`archiveFilterColors`);return e?new Set(JSON.parse(e)):new Set}),[m,h]=(0,y.useState)(()=>localStorage.getItem(`archiveColorFilterMode`)||`or`),[g,_]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterFavorites`)===`true`),[v,b]=(0,y.useState)(()=>localStorage.getItem(`archiveHideFailed`)===`true`),[x,S]=(0,y.useState)(()=>localStorage.getItem(`archiveHideDuplicates`)===`true`),[C,w]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterTag`)),[T,E]=(0,y.useState)(()=>localStorage.getItem(`archiveFilterFileType`)||`all`),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)([]),[j,M]=(0,y.useState)(new Set),[N,P]=(0,y.useState)(()=>localStorage.getItem(`archiveNo3MFWarningDismissed`)===`true`),{data:F}=K({queryKey:[`archives`,`no-3mf-warning`],queryFn:Z.getNo3MFWarning,staleTime:300*1e3,enabled:!N}),I=()=>{localStorage.setItem(`archiveNo3MFWarningDismissed`,`true`),P(!0)},L=F?.reason===`ftps_cooloff`?`FtpsCooloff`:F?.reason===`internal_storage`?`InternalStorage`:F?.reason===`no_external_storage`?`NoExternalStorage`:F?.reason===`internal_history`?`InternalHistory`:``,R=F?.reason===`ftps_cooloff`?`https://wiki.bambuddy.cool/reference/troubleshooting/#ftps-tls-failure`:F?.reason===`internal_storage`?`https://wiki.bambuddy.cool/reference/troubleshooting/#archive-card-has-only-a-name`:F?.reason===`no_external_storage`?null:F?.reason===`internal_history`?`https://wiki.bambuddy.cool/reference/troubleshooting/#print-started-on-the-printer-has-no-thumbnail`:`https://wiki.bambuddy.cool/getting-started/#step-4-enable-store-sent-files-on-external-storage`,[z,B]=(0,y.useState)(!1),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)(!1),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(()=>localStorage.getItem(`archiveViewMode`)||`grid`),[se,H]=(0,y.useState)(()=>localStorage.getItem(`archiveSortBy`)||`date-desc`),[ce,le]=(0,y.useState)(()=>localStorage.getItem(`archiveCollection`)||`all`),[ue,de]=(0,y.useState)(0),[fe,pe]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`archivePageSize`);return e?Number(e):50}catch{return 50}}),[me,he]=(0,y.useState)(!1),[ge,_e]=(0,y.useState)(!1),[ve,ye]=(0,y.useState)(!1),[be,xe]=(0,y.useState)(!1),[Se,Ce]=(0,y.useState)(!1),[we,Te]=(0,y.useState)(null),[Ee,De]=(0,y.useState)(null),[Oe,ke]=(0,y.useState)(()=>localStorage.getItem(`logFilterUser`)||null),[Ae,je]=(0,y.useState)(()=>localStorage.getItem(`logFilterStatus`)),[Me,Ne]=(0,y.useState)(()=>localStorage.getItem(`logFilterDateFrom`)||``),[Pe,Fe]=(0,y.useState)(()=>localStorage.getItem(`logFilterDateTo`)||``),[Ie,Le]=(0,y.useState)(()=>{let e=localStorage.getItem(`logOffset`);return e?Number(e):0}),[Re,ze]=(0,y.useState)(!1),[Be,Ve]=(0,y.useState)(null),[He,Ue]=(0,y.useState)(null),[We,Ge]=(0,y.useState)(``),[Ke,qe]=(0,y.useState)(``),[Je,Ye]=(0,y.useState)(()=>{let e=localStorage.getItem(`logPageSize`);return e?Number(e):25}),[Xe,Ze]=(0,y.useState)(OVe),[Qe,$e]=(0,y.useState)(!1),[et,tt]=(0,y.useState)(AVe),nt=(0,y.useMemo)(()=>Xe.filter(e=>e.visible).map(e=>e.id),[Xe]),rt=(0,y.useCallback)(e=>{De(e),Te(e)},[]);(0,y.useEffect)(()=>{if(we){let t=setTimeout(()=>{let t=document.querySelector(`[data-archive-id="${we}"]`);t?t.scrollIntoView({behavior:`smooth`,block:`center`}):Ee===we&&n(e(`archives.originalPrintNotVisible`),`warning`),Ee===we&&De(null)},100),r=setTimeout(()=>Te(null),5e3);return()=>{clearTimeout(t),clearTimeout(r)}}},[we,Ee,n,e]);let{data:it,isLoading:at}=K({queryKey:[`archives`,c],queryFn:()=>Z.getArchives(c||void 0)}),{data:ot}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:st}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects()}),{data:ct}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:lt}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:ae===`log`}),{data:ut,isLoading:dt}=K({queryKey:[`print-log`,c,Oe,Ae,Me,Pe,o,Ie,Je,et.column,et.direction],queryFn:()=>Z.getPrintLog({search:o||void 0,printerId:c||void 0,username:Oe||void 0,status:Ae||void 0,dateFrom:Me||void 0,dateTo:Pe||void 0,limit:Je,offset:Ie,sortBy:et.column,sortDir:et.direction}),enabled:ae===`log`}),ft=ct?.time_format||`system`,pt=HW(ct?.open_in_slicer,ct?.preferred_slicer),mt=ct?.use_slicer_api??!1,ht=Lf(ct?.currency||`USD`),gt=(0,y.useMemo)(()=>Xe.map(t=>({...t,label:e(G2[t.id]??t.id)})),[Xe,e]),_t=(0,y.useMemo)(()=>K2.map(t=>({...t,label:e(G2[t.id]??t.id)})),[e]),vt=(0,y.useCallback)(e=>{J2.has(e)&&(tt(t=>{let n=t.column===e?{column:e,direction:t.direction===`asc`?`desc`:`asc`}:{column:e,direction:[`date`,`completed_at`,`duration`,`filament_used`,`cost`,`energy`,`energy_cost`].includes(e)?`desc`:`asc`};return jVe(n),n}),Le(0))},[]),yt=(0,y.useCallback)(e=>{let t=e.map(e=>({id:e.id,visible:e.visible}));Ze(t),MVe(t)},[]),bt=(0,y.useMemo)(()=>new Set([`duration`,`filament_used`,`cost`,`energy`,`energy_cost`]),[]),xt=(0,y.useCallback)((t,n)=>{switch(t){case`date`:return(0,G.jsx)(`span`,{className:`text-white whitespace-nowrap`,children:op(n.started_at||n.created_at,ft)});case`completed_at`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap`,children:n.completed_at?op(n.completed_at,ft):`—`});case`print_name`:return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.thumbnail_path&&(0,G.jsx)(`img`,{src:Z.getPrintLogThumbnail(n.id),alt:``,className:`w-8 h-8 rounded object-cover flex-shrink-0`,onError:e=>{e.target.style.display=`none`}}),(0,G.jsx)(`span`,{className:`text-white break-words`,title:n.print_name||``,children:n.print_name||`—`})]});case`printer`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light`,children:n.printer_name||`—`});case`user`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light`,children:n.created_by_username||`—`});case`status`:return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${n.status===`completed`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:n.status===`failed`?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:n.status===`stopped`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:n.status===`cancelled`?`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`:n.status===`skipped`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-gray-500/20 text-gray-400`}`,children:n.status}),n.failure_reason&&(0,G.jsx)(`span`,{className:`block text-[10px] text-bambu-gray mt-0.5`,children:e(`editArchive.failureReasons.${n.failure_reason}`,{defaultValue:n.failure_reason})})]});case`duration`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap`,children:n.duration_seconds?lp(n.duration_seconds):`—`});case`filament`:return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[n.filament_color&&(0,G.jsx)(`div`,{className:`flex items-center gap-0.5 flex-wrap`,children:n.filament_color.split(`,`).map((e,t)=>{let n=e.trim();return(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:{backgroundColor:n.startsWith(`#`)?n:void 0},title:n},t)})}),(0,G.jsx)(`span`,{className:`text-bambu-gray-light text-xs`,children:n.filament_type||`—`})]});case`filament_used`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.filament_used_grams==null?`—`:`${n.filament_used_grams.toFixed(1)} g`});case`cost`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.cost==null?`—`:`${ht}${n.cost.toFixed(2)}`});case`energy`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.energy_kwh==null?`—`:`${n.energy_kwh.toFixed(2)} kWh`});case`energy_cost`:return(0,G.jsx)(`span`,{className:`text-bambu-gray-light whitespace-nowrap tabular-nums`,children:n.energy_cost==null?`—`:`${ht}${n.energy_cost.toFixed(2)}`});default:return null}},[ht,e,ft]),St=q({mutationFn:async e=>(await Promise.all(e.map(e=>Z.deleteArchive(e))),e.length),onSuccess:e=>{qW(t),M(new Set),n(`${e} archive${e===1?``:`s`} deleted`)},onError:()=>{n(e(`archives.toast.failedDeleteArchives`),`error`)}}),Ct=q({mutationFn:()=>Z.clearPrintLog(),onSuccess:r=>{t.invalidateQueries({queryKey:[`print-log`]}),Le(0),n(e(`archives.log.cleared`,{count:r.deleted}))},onError:()=>{n(e(`archives.log.clearFailed`),`error`)}}),wt=q({mutationFn:e=>Z.deletePrintLogEntry(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`print-log`]}),t.invalidateQueries({queryKey:[`archives-stats`]}),n(e(`archives.log.entryDeleted`))},onError:()=>{n(e(`archives.log.entryDeleteFailed`),`error`)}}),Tt=q({mutationFn:({id:e,body:t})=>Z.updatePrintLogEntry(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`print-log`]}),t.invalidateQueries({queryKey:[`archives-stats`]}),Ue(null),n(e(`archives.log.entryUpdated`))},onError:()=>{n(e(`archives.log.entryUpdateFailed`),`error`)}});(0,y.useEffect)(()=>{c===null?localStorage.removeItem(`archiveFilterPrinter`):localStorage.setItem(`archiveFilterPrinter`,c.toString())},[c]),(0,y.useEffect)(()=>{u?localStorage.setItem(`archiveFilterMaterial`,u):localStorage.removeItem(`archiveFilterMaterial`)},[u]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterColors`,JSON.stringify([...f]))},[f]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveColorFilterMode`,m)},[m]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterFavorites`,g.toString())},[g]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveHideFailed`,v.toString())},[v]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveHideDuplicates`,x.toString())},[x]),(0,y.useEffect)(()=>{C?localStorage.setItem(`archiveFilterTag`,C):localStorage.removeItem(`archiveFilterTag`)},[C]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveFilterFileType`,T)},[T]),(0,y.useEffect)(()=>{de(0)},[o,c,u,f,m,g,v,x,C,T,se,ce]),(0,y.useEffect)(()=>{try{localStorage.setItem(`archivePageSize`,String(fe))}catch{}},[fe]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveViewMode`,ae)},[ae]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveSortBy`,se)},[se]),(0,y.useEffect)(()=>{localStorage.setItem(`archiveCollection`,ce)},[ce]),(0,y.useEffect)(()=>{Oe?localStorage.setItem(`logFilterUser`,Oe):localStorage.removeItem(`logFilterUser`)},[Oe]),(0,y.useEffect)(()=>{Ae?localStorage.setItem(`logFilterStatus`,Ae):localStorage.removeItem(`logFilterStatus`)},[Ae]),(0,y.useEffect)(()=>{Me?localStorage.setItem(`logFilterDateFrom`,Me):localStorage.removeItem(`logFilterDateFrom`)},[Me]),(0,y.useEffect)(()=>{Pe?localStorage.setItem(`logFilterDateTo`,Pe):localStorage.removeItem(`logFilterDateTo`)},[Pe]),(0,y.useEffect)(()=>{localStorage.setItem(`logOffset`,Ie.toString())},[Ie]),(0,y.useEffect)(()=>{localStorage.setItem(`logPageSize`,Je.toString())},[Je]);let Et=(0,y.useMemo)(()=>new Map(ot?.map(e=>[e.id,e.name])||[]),[ot]),Dt=[...new Set(it?.flatMap(e=>e.filament_type?.split(`, `)||[]).filter(Boolean)||[])].sort(),Ot=[...new Set(it?.flatMap(e=>e.filament_color?.split(`,`)||[]).filter(Boolean)||[])],kt=[...new Set(it?.flatMap(e=>e.tags?.split(`,`).map(e=>e.trim())||[]).filter(Boolean)||[])].sort(),At=it?.filter(e=>{let t=new Date,n=rp(e.created_at)||new Date(0),r=!0;switch(ce){case`recent`:r=t.getTime()-n.getTime()<1440*60*1e3;break;case`this-week`:r=t.getTime()-n.getTime()<10080*60*1e3;break;case`this-month`:r=n.getMonth()===t.getMonth()&&n.getFullYear()===t.getFullYear();break;case`favorites`:r=e.is_favorite===!0;break;case`not-printed`:r=e.status===`archived`;break;case`printed`:r=FVe.includes(e.status);break;case`failed`:r=e.status===`failed`||e.status===`aborted`;break;case`duplicates`:r=e.duplicate_count>0;break}let i=(e.print_name||e.filename).toLowerCase().includes(o.toLowerCase()),a=!u||e.filament_type?.split(`, `).includes(u),s=e.filament_color?.split(`,`)||[],c=f.size===0||(m===`or`?s.some(e=>f.has(e)):[...f].every(e=>s.includes(e))),l=ce===`favorites`||!g||e.is_favorite,d=ce===`failed`||!v||e.status!==`failed`&&e.status!==`aborted`,p=ce===`duplicates`||!x||e.duplicate_count===0||e.duplicate_sequence===0,h=e.tags?.split(`,`).map(e=>e.trim())||[],_=!C||h.includes(C),y=Y2(e);return r&&i&&a&&c&&l&&d&&p&&_&&(T===`all`||T===`gcode`&&y||T===`source`&&!y)}).sort((e,t)=>{switch(se){case`date-desc`:return(rp(t.created_at)?.getTime()||0)-(rp(e.created_at)?.getTime()||0);case`date-asc`:return(rp(e.created_at)?.getTime()||0)-(rp(t.created_at)?.getTime()||0);case`name-asc`:return(e.print_name||e.filename).localeCompare(t.print_name||t.filename);case`name-desc`:return(t.print_name||t.filename).localeCompare(e.print_name||e.filename);case`size-desc`:return t.file_size-e.file_size;case`size-asc`:return e.file_size-t.file_size;default:return 0}}),jt=At?.length||0,Mt=fe===-1,Nt=Mt?jt||1:fe,Pt=Math.max(1,Math.ceil(jt/Nt)),Ft=Mt?At:At?.slice(ue*Nt,(ue+1)*Nt);(0,y.useEffect)(()=>{if(we&&At&&!Mt){let e=At.findIndex(e=>e.id===we);if(e>=0){let t=Math.floor(e/Nt);t!==ue&&de(t)}}},[we]);let It=z||j.size>0,Lt=e=>{M(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Rt=()=>{At&&M(new Set(At.map(e=>e.id)))},zt=()=>{M(new Set),B(!1)},Bt=e=>{p(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Vt=()=>{p(new Set)},Ht=()=>{s(``),l(null),d(null),_(!1),b(!1),S(!1),w(null),E(`all`)},Ut=o||c||u||g||v||x||C||T!==`all`,{isDraggingOver:Wt,dragHandlers:Gt}=YW({disabled:D,extensions:[`.3mf`],onFiles:e=>{A(e),O(!0)},onRejected:()=>n(e(`archives.page.only3mfSupported`),`warning`)}),Kt=(0,y.useCallback)(e=>{let t=e.target;if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable){e.key===`Escape`&&t.blur();return}switch(e.key){case`/`:e.preventDefault(),a.current?.focus();break;case`u`:case`U`:!e.metaKey&&!e.ctrlKey&&(e.preventDefault(),O(!0));break;case`Escape`:It&&zt();break}},[It]);return(0,y.useEffect)(()=>(document.addEventListener(`keydown`,Kt),()=>document.removeEventListener(`keydown`,Kt)),[Kt]),(0,G.jsxs)(`div`,{className:`p-4 md:p-8 relative`,...Gt,children:[Wt&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-bambu-dark/90 flex items-center justify-center pointer-events-none`,children:(0,G.jsxs)(`div`,{className:`border-4 border-dashed border-bambu-green rounded-xl p-12 text-center`,children:[(0,G.jsx)(Vu,{className:`w-16 h-16 mx-auto mb-4 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-2xl font-semibold text-white mb-2`,children:e(`archives.page.dropFilesHere`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`archives.releaseToUpload`)})]})}),It&&(0,G.jsxs)(`div`,{className:`fixed bottom-6 left-1/2 -translate-x-1/2 z-40 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl px-4 py-3 flex items-center gap-4`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:zt,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),`Close`]}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[j.size,` selected`]}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:Rt,children:`Select All`}),(0,G.jsx)(`div`,{className:`w-px h-6 bg-bambu-dark-tertiary`}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ne(!0),disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),`Tags`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ie(!0),disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),children:[(0,G.jsx)(_c,{className:`w-4 h-4`}),`Project`]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:!i(`archives:update_own`,`archives:update_all`),title:i(`archives:update_own`,`archives:update_all`)?void 0:e(`archives.permission.noUpdateArchives`),onClick:()=>{let r=Array.from(j);Promise.all(r.map(e=>Z.toggleFavorite(e))).then(()=>{t.invalidateQueries({queryKey:[`archives`]}),n(`Toggled favorites for ${r.length} archive${r.length===1?``:`s`}`)}).catch(()=>{n(e(`archives.toast.failedUpdateFavorites`),`error`)})},children:[(0,G.jsx)(xu,{className:`w-4 h-4`}),`Favorite`]}),(0,G.jsxs)(Q,{size:`sm`,className:`bg-red-500 hover:bg-red-600`,onClick:()=>ee(!0),disabled:!i(`archives:delete_own`,`archives:delete_all`),title:i(`archives:delete_own`,`archives:delete_all`)?void 0:e(`archives.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Delete`]})]}),F?.has_fallback&&!N&&(0,G.jsxs)(`div`,{className:`mb-6 rounded-lg border border-amber-300 dark:border-amber-500/30 bg-amber-50 dark:bg-amber-500/10 px-4 py-3 flex items-start gap-3`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-amber-900 dark:text-amber-200`,children:e(`archives.no3mfBanner.title${L}`)}),(0,G.jsxs)(`div`,{className:`text-xs text-amber-800/90 dark:text-amber-200/80 mt-1`,children:[e(`archives.no3mfBanner.body${L}`),R&&(0,G.jsxs)(G.Fragment,{children:[` `,(0,G.jsxs)(`a`,{href:R,target:`_blank`,rel:`noreferrer`,className:`underline hover:text-amber-900 dark:hover:text-amber-100 inline-flex items-center gap-1`,children:[e(F?.reason===`internal_storage`||F?.reason===`internal_history`||F?.reason===`ftps_cooloff`?`archives.no3mfBanner.docsLinkInternalStorage`:`archives.no3mfBanner.docsLink`),(0,G.jsx)(rc,{className:`w-3 h-3`})]})]})]})]}),(0,G.jsx)(`button`,{onClick:I,className:`text-amber-800/70 dark:text-amber-200/60 hover:text-amber-900 dark:hover:text-amber-200 flex-shrink-0 p-1 -m-1`,title:e(`archives.no3mfBanner.dismissLabel`),"aria-label":e(`archives.no3mfBanner.dismissLabel`),children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-8`,children:[(0,G.jsx)(`div`,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Po,{className:`w-7 h-7 text-bambu-green`}),`Archives`]}),(0,G.jsxs)(`p`,{className:`text-bambu-gray mt-1`,children:[At?.length||0,` of `,it?.length||0,` prints`]})]}),(0,G.jsx)(`select`,{className:`mt-0.5 px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray-light text-sm focus:border-bambu-green focus:outline-none`,value:ce,onChange:e=>le(e.target.value),children:IVe.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>he(!me),disabled:ge,children:[ge?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(dc,{className:`w-4 h-4`}),`Export`]}),me&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-t-lg`,onClick:async()=>{he(!1),_e(!0);try{let{blob:t,filename:r}=await Z.exportArchives({format:`csv`,printerId:c||void 0,status:ce===`failed`?`failed`:void 0,search:o||void 0}),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),n(e(`archives.toast.exportDownloaded`))}catch{n(e(`archives.toast.exportFailed`),`error`)}finally{_e(!1)}},children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),`Export as CSV`]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-b-lg`,onClick:async()=>{he(!1),_e(!0);try{let{blob:t,filename:r}=await Z.exportArchives({format:`xlsx`,printerId:c||void 0,status:ce===`failed`?`failed`:void 0,search:o||void 0}),i=URL.createObjectURL(t),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),n(e(`archives.toast.exportDownloaded`))}catch{n(e(`archives.toast.exportFailed`),`error`)}finally{_e(!1)}},children:[(0,G.jsx)(dc,{className:`w-4 h-4`}),`Export as Excel`]})]})]}),j.size>=2&&j.size<=5&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ye(!0),children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),`Compare (`,j.size,`)`]}),!It&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>B(!0),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),`Select`]}),(0,G.jsxs)(Q,{onClick:()=>O(!0),disabled:!r(`archives:create`),title:r(`archives:create`)?void 0:e(`archives.permission.noCreate`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),`Upload 3MF`]}),r(`archives:purge`)&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Ce(!0),title:e(`archivePurge.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`archivePurge.headerButton`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center border border-bambu-dark-tertiary rounded-lg overflow-hidden flex-shrink-0 w-fit mb-4`,children:[(0,G.jsx)(`button`,{className:`p-2 ${ae===`grid`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`grid`),title:e(`archives.gridView`),children:(0,G.jsx)(Yc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`list`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`list`),title:e(`archives.listView`),children:(0,G.jsx)(el,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`calendar`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`calendar`),title:e(`archives.calendarView`),children:(0,G.jsx)(is,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{className:`p-2 ${ae===`log`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,onClick:()=>oe(`log`),title:e(`archives.logView`),children:(0,G.jsx)(ks,{className:`w-4 h-4`})})]}),ae!==`log`&&(0,G.jsx)(zd,{className:`mb-6`,children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-3 md:gap-4 md:items-center md:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`w-full md:flex-1 relative md:min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{ref:a,type:`text`,placeholder:e(`archives.searchPlaceholder`),className:`w-full pl-10 pr-4 py-3 md:py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:o,onChange:e=>s(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 md:gap-4 overflow-x-auto pb-1 md:pb-0 -mx-4 px-4 md:mx-0 md:px-0 md:flex-wrap scrollbar-hide`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:c||``,onChange:e=>l(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:`All Printers`}),ot?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:u||``,onChange:e=>d(e.target.value||null),children:[(0,G.jsx)(`option`,{value:``,children:`All Materials`}),Dt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(cc,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:T,onChange:e=>E(e.target.value),children:[(0,G.jsx)(`option`,{value:`all`,children:`All Files`}),(0,G.jsx)(`option`,{value:`gcode`,children:`Sliced (GCODE)`}),(0,G.jsx)(`option`,{value:`source`,children:`Source Only`})]})]}),(0,G.jsxs)(`button`,{onClick:()=>_(!g),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${g?`bg-yellow-100 dark:bg-yellow-500/20 border-yellow-500 text-yellow-700 dark:text-yellow-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(g?`archives.showAll`:`archives.showFavoritesOnly`),children:[(0,G.jsx)(xu,{className:`w-4 h-4 ${g?`fill-yellow-400`:``}`}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:`Favorites`})]}),(0,G.jsxs)(`button`,{onClick:()=>b(!v),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${v?`bg-red-100 dark:bg-red-500/20 border-red-500 text-red-700 dark:text-red-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(v?`archives.showFailedPrints`:`archives.hideFailedPrints`),children:[(0,G.jsx)(ys,{className:`w-4 h-4 `}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:`Hide Failed`})]}),(0,G.jsxs)(`button`,{onClick:()=>S(!x),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors flex-shrink-0 ${x?`bg-purple-100 dark:bg-purple-500/20 border-purple-500 text-purple-700 dark:text-purple-400`:`bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:e(`archives.hideDuplicates`),children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm hidden md:inline`,children:e(`archives.hideDuplicates`)})]}),kt.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:C||``,onChange:e=>w(e.target.value||null),children:[(0,G.jsx)(`option`,{value:``,children:`All Tags`}),kt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsx)(`button`,{onClick:()=>xe(!0),className:`p-2 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-green transition-colors`,title:e(`archives.manageTags`),children:(0,G.jsx)(ru,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(Bo,{className:`w-4 h-4 text-bambu-gray hidden md:block`}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:se,onChange:e=>H(e.target.value),children:[(0,G.jsx)(`option`,{value:`date-desc`,children:e(`archives.sortNewest`)}),(0,G.jsx)(`option`,{value:`date-asc`,children:e(`archives.sortOldest`)}),(0,G.jsxs)(`option`,{value:`name-asc`,children:[e(`archives.sortName`),` A-Z`]}),(0,G.jsxs)(`option`,{value:`name-desc`,children:[e(`archives.sortName`),` Z-A`]}),(0,G.jsx)(`option`,{value:`size-desc`,children:e(`archives.sortLargest`)}),(0,G.jsx)(`option`,{value:`size-asc`,children:e(`archives.sortSmallest`)})]})]})]}),Ut&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:Ht,className:`text-bambu-gray hover:text-white`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),`Reset`]})]}),Ot.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`Colors:`}),f.size>1&&(0,G.jsx)(`button`,{onClick:()=>h(e=>e===`or`?`and`:`or`),className:`px-2 py-0.5 text-xs rounded transition-colors ${m===`and`?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,title:m===`or`?`Match ANY selected color`:`Match ALL selected colors`,children:m.toUpperCase()}),(0,G.jsx)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:Ot.map(e=>(0,G.jsx)(`button`,{onClick:()=>Bt(e),className:`w-6 h-6 rounded-full border-2 transition-all ${f.has(e)?`border-bambu-green scale-110`:`border-white/20 hover:border-white/40`}`,style:{backgroundColor:e},title:e},e))}),f.size>0&&(0,G.jsxs)(`button`,{onClick:Vt,className:`text-xs text-bambu-gray hover:text-white flex items-center gap-1`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),`Clear`]})]})]})}),(0,G.jsx)(EVe,{}),at?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`archives.loadingArchives`)}):At?.length===0&&ae!==`log`?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(o?`archives.noArchivesSearch`:`archives.noArchivesYet`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:`Archives are created automatically when prints complete`})]})}):ae===`calendar`?(0,G.jsx)(zd,{className:`p-6`,children:(0,G.jsx)(Aje,{archives:At||[],onArchiveClick:e=>{s(``),oe(`grid`),Te(e.id)},highlightedArchiveId:we})}):ae===`grid`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`,children:Ft?.map(t=>(0,G.jsx)(NVe,{archive:t,printerName:t.printer_id?Et.get(t.printer_id)||`Unknown`:t.sliced_for_model||`No Printer`,printerMap:Et,isSelected:j.has(t.id),onSelect:Lt,selectionMode:It,projects:st,isHighlighted:t.id===we,timeFormat:ft,preferredSlicer:pt,useSlicerApi:mt,currency:ht,t:e,onNavigateToArchive:rt},t.id))}),(0,G.jsx)(Z2,{pageIndex:ue,pageSize:fe,totalRows:jt,totalPages:Pt,onPageChange:de,onPageSizeChange:e=>{pe(e),de(0)},t:e})]}):ae===`list`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{children:(0,G.jsxs)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-12 gap-4 px-4 py-3 text-xs text-bambu-gray font-medium`,children:[(0,G.jsx)(`div`,{className:`col-span-1`}),(0,G.jsx)(`div`,{className:`col-span-4`,children:`Name`}),(0,G.jsx)(`div`,{className:`col-span-2`,children:`Printer`}),(0,G.jsx)(`div`,{className:`col-span-2`,children:`Date`}),(0,G.jsx)(`div`,{className:`col-span-1`,children:`Size`}),(0,G.jsx)(`div`,{className:`col-span-2 text-right`,children:`Actions`})]}),Ft?.map(t=>(0,G.jsx)(PVe,{archive:t,printerName:t.printer_id?Et.get(t.printer_id)||`Unknown`:t.sliced_for_model||`No Printer`,isSelected:j.has(t.id),onSelect:Lt,selectionMode:It,projects:st,isHighlighted:t.id===we,preferredSlicer:pt,useSlicerApi:mt,t:e,onNavigateToArchive:rt},t.id))]})}),(0,G.jsx)(Z2,{pageIndex:ue,pageSize:fe,totalRows:jt,totalPages:Pt,onPageChange:de,onPageSizeChange:e=>{pe(e),de(0)},t:e})]}):ae===`log`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-3 md:items-center md:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`flex-1 relative md:min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:e(`archives.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:o,onChange:e=>{s(e.target.value),Le(0)}})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:c||``,onChange:e=>{l(e.target.value?Number(e.target.value):null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allPrinters`)}),ot?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Oe||``,onChange:e=>{ke(e.target.value||null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allUsers`)}),lt?.map(e=>(0,G.jsx)(`option`,{value:e.username,children:e.username},e.id))]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Ae||``,onChange:e=>{je(e.target.value||null),Le(0)},children:[(0,G.jsx)(`option`,{value:``,children:e(`archives.log.allStatuses`)}),(0,G.jsx)(`option`,{value:`completed`,children:e(`archives.status.completed`)}),(0,G.jsx)(`option`,{value:`failed`,children:e(`archives.status.failed`)}),(0,G.jsx)(`option`,{value:`stopped`,children:e(`archives.status.stopped`)}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`archives.log.cancelled`)}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`archives.log.skipped`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.dateFrom`)}),(0,G.jsx)(`input`,{type:`date`,className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Me,onChange:e=>{Ne(e.target.value),Le(0)}})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.dateTo`)}),(0,G.jsx)(`input`,{type:`date`,className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none text-sm`,value:Pe,onChange:e=>{Fe(e.target.value),Le(0)}})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>$e(!0),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-bambu-gray border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,title:e(`inventory.configureColumns`),children:[(0,G.jsx)(zs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`archives.log.columns`)})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>ze(!0),disabled:!r(`archives:delete_all`)||Ct.isPending,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`archives.log.clearLog`)]})]})]})})}),(0,G.jsx)(zd,{children:dt?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):ut?.items.length?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-bambu-gray text-left`,children:[nt.map(t=>{let n=J2.has(t),r=et.column===t,i=e(G2[t]??t);return(0,G.jsx)(`th`,{scope:`col`,"aria-sort":r?et.direction===`asc`?`ascending`:`descending`:`none`,className:`px-4 py-3 font-medium ${bt.has(t)?`text-right`:``}`,children:n?(0,G.jsxs)(`button`,{type:`button`,onClick:()=>vt(t),className:`inline-flex items-center gap-1 font-medium transition-colors hover:text-bambu-green ${r?`text-bambu-green`:``}`,title:e(`archives.log.sortBy`,{column:i}),children:[i,r?et.direction===`asc`?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`}):(0,G.jsx)(Bo,{className:`w-3.5 h-3.5 opacity-30`})]}):i},t)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium w-10`,"aria-label":e(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:ut.items.map(t=>(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-secondary/50`,children:[nt.map(e=>(0,G.jsx)(`td`,{className:`px-4 py-3 ${bt.has(e)?`text-right`:``}`,children:xt(e,t)},e)),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,G.jsxs)(`div`,{className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ue(t),Ge(t.failure_reason||``),qe(t.status)},disabled:Tt.isPending||!(r(`archives:update_all`)||r(`archives:update_own`)),title:r(`archives:update_all`)||r(`archives:update_own`)?e(`archives.log.editEntryTitle`):e(`archives.permission.noEdit`),className:`text-bambu-gray hover:text-bambu-blue disabled:opacity-40 disabled:hover:text-bambu-gray transition-colors`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>Ve(t.id),disabled:wt.isPending||!(r(`archives:delete_all`)||r(`archives:delete_own`)),title:r(`archives:delete_all`)||r(`archives:delete_own`)?e(`archives.log.deleteEntryTitle`):e(`archives.permission.noDelete`),className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 disabled:opacity-40 disabled:hover:text-bambu-gray transition-colors`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},t.id))})]})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-t border-bambu-dark-tertiary flex-wrap gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`archives.log.showing`,{count:Math.min(Ie+Je,ut.total),total:ut.total})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:e(`archives.log.rowsPerPage`)}),(0,G.jsxs)(`select`,{className:`px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-xs focus:border-bambu-green focus:outline-none`,value:Je,onChange:e=>{Ye(Number(e.target.value)),Le(0)},children:[(0,G.jsx)(`option`,{value:10,children:`10`}),(0,G.jsx)(`option`,{value:25,children:`25`}),(0,G.jsx)(`option`,{value:50,children:`50`}),(0,G.jsx)(`option`,{value:100,children:`100`})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`archives.log.page`),` `,Math.floor(Ie/Je)+1,` / `,Math.max(1,Math.ceil(ut.total/Je))]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(Math.max(0,Ie-Je)),disabled:Ie===0,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(Ie+Je),disabled:Ie+Je>=ut.total,children:(0,G.jsx)(ms,{className:`w-4 h-4`})})]})]})]}):(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`archives.log.noEntries`)})})]}):null,D&&(0,G.jsx)(vje,{onClose:()=>{O(!1),A([])},initialFiles:k}),Se&&(0,G.jsx)(bje,{onClose:()=>Ce(!1)}),V&&(0,G.jsx)(of,{title:e(`archives.modal.deleteArchives`),message:e(`archives.modal.deleteArchivesConfirm`,{count:j.size}),confirmText:e(`archives.modal.deleteCount`,{count:j.size}),variant:`danger`,onConfirm:()=>{St.mutate(Array.from(j)),ee(!1)},onCancel:()=>ee(!1)}),te&&(0,G.jsx)(wje,{selectedIds:Array.from(j),existingTags:kt,onClose:()=>ne(!1)}),re&&(0,G.jsx)(Tje,{selectedIds:Array.from(j),onClose:()=>ie(!1)}),ve&&j.size>=2&&j.size<=5&&(0,G.jsx)(SVe,{archiveIds:Array.from(j),onClose:()=>{ye(!1),M(new Set),B(!1)}}),be&&(0,G.jsx)(DVe,{onClose:()=>xe(!1)}),(0,G.jsx)(tG,{isOpen:Qe,onClose:()=>$e(!1),columns:gt,defaultColumns:_t,onSave:yt}),Re&&(0,G.jsx)(of,{title:e(`archives.log.clearLogTitle`),message:e(`archives.log.clearLogConfirm`),confirmText:e(`archives.log.clearLogButton`),variant:`danger`,onConfirm:()=>{Ct.mutate(),ze(!1)},onCancel:()=>ze(!1)}),Be!==null&&(0,G.jsx)(of,{title:e(`archives.log.deleteEntryTitle`),message:e(`archives.log.deleteEntryConfirm`),confirmText:e(`common.delete`),variant:`danger`,onConfirm:()=>{wt.mutate(Be),Ve(null)},onCancel:()=>Ve(null)}),He!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm`,onClick:()=>Ue(null),children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg w-full max-w-md mx-4 p-6`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-4`,children:e(`archives.log.editEntryTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4`,children:e(`archives.log.editEntryDescription`)}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`editArchive.status`)}),(0,G.jsxs)(`select`,{value:Ke,onChange:e=>qe(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`completed`,children:e(`archives.log.statuses.completed`,{defaultValue:`completed`})}),(0,G.jsx)(`option`,{value:`failed`,children:e(`archives.log.statuses.failed`,{defaultValue:`failed`})}),(0,G.jsx)(`option`,{value:`stopped`,children:e(`archives.log.statuses.stopped`,{defaultValue:`stopped`})}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`archives.log.statuses.cancelled`,{defaultValue:`cancelled`})}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`archives.log.statuses.skipped`,{defaultValue:`skipped`})})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`editArchive.failureReason`)}),(0,G.jsxs)(`select`,{value:We,onChange:e=>Ge(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:e(`editArchive.selectReason`)}),ZW.map(t=>(0,G.jsx)(`option`,{value:t,children:e(`editArchive.failureReasons.${t}`)},t))]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 mt-6`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Ue(null),children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>{let e={};if(We!==(He.failure_reason||``)&&(e.failure_reason=We||null),Ke!==He.status&&(e.status=Ke),Object.keys(e).length===0){Ue(null);return}Tt.mutate({id:He.id,body:e})},disabled:Tt.isPending,children:Tt.isPending?e(`editArchive.saving`):e(`common.save`)})]})]})})]})}function Z2({pageIndex:e,pageSize:t,totalRows:n,totalPages:r,onPageChange:i,onPageSizeChange:a,t:o}){let s=t===-1;if(r<=1&&!s)return null;let c=s?n||1:t;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:s?`${n} ${o(`archives.prints`)}`:(0,G.jsxs)(G.Fragment,{children:[o(`archives.pagination.showing`),` `,e*c+1,` `,o(`archives.pagination.to`),` `,Math.min((e+1)*c,n),` `,o(`archives.pagination.of`),` `,n,` `,o(`archives.prints`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`archives.pagination.show`)}),(0,G.jsxs)(`select`,{value:t,onChange:e=>a(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[25,50,100,200].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:o(`archives.pagination.all`)})]}),!s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>i(0),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(Math.max(0,e-1)),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[o(`archives.pagination.page`),` `,e+1,` `,o(`archives.pagination.of`),` `,r]}),(0,G.jsx)(`button`,{onClick:()=>i(Math.min(r-1,e+1)),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(r-1),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})}function RVe(){var e=[...arguments];return(0,y.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Q2=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function $2(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function e4(e){return`nodeType`in e}function t4(e){return e?$2(e)?e:e4(e)?e.ownerDocument?.defaultView??window:window:window}function n4(e){let{Document:t}=t4(e);return e instanceof t}function r4(e){return $2(e)?!1:e instanceof t4(e).HTMLElement}function i4(e){return e instanceof t4(e).SVGElement}function a4(e){return e?$2(e)?e.document:e4(e)?n4(e)?e:r4(e)||i4(e)?e.ownerDocument:document:document:document}var o4=Q2?y.useLayoutEffect:y.useEffect;function s4(e){let t=(0,y.useRef)(e);return o4(()=>{t.current=e}),(0,y.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function zVe(){let e=(0,y.useRef)(null);return[(0,y.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,y.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function c4(e,t){t===void 0&&(t=[e]);let n=(0,y.useRef)(e);return o4(()=>{n.current!==e&&(n.current=e)},t),n}function l4(e,t){let n=(0,y.useRef)();return(0,y.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function u4(e){let t=s4(e),n=(0,y.useRef)(null);return[n,(0,y.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function d4(e){let t=(0,y.useRef)();return(0,y.useEffect)(()=>{t.current=e},[e]),t.current}var f4={};function p4(e,t){return(0,y.useMemo)(()=>{if(t)return t;let n=f4[e]==null?0:f4[e]+1;return f4[e]=n,e+`-`+n},[e,t])}function m4(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var h4=m4(1),g4=m4(-1);function BVe(e){return`clientX`in e&&`clientY`in e}function _4(e){if(!e)return!1;let{KeyboardEvent:t}=t4(e.target);return t&&e instanceof t}function VVe(e){if(!e)return!1;let{TouchEvent:t}=t4(e.target);return t&&e instanceof t}function v4(e){if(VVe(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return BVe(e)?{x:e.clientX,y:e.clientY}:null}var y4=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[y4.Translate.toString(e),y4.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),b4=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function HVe(e){return e.matches(b4)?e:e.querySelector(b4)}var UVe={display:`none`};function WVe(e){let{id:t,value:n}=e;return y.createElement(`div`,{id:t,style:UVe},n)}function GVe(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return y.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function KVe(){let[e,t]=(0,y.useState)(``);return{announce:(0,y.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var x4=(0,y.createContext)(null);function qVe(e){let t=(0,y.useContext)(x4);(0,y.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of `);return t(e)},[e,t])}function JVe(){let[e]=(0,y.useState)(()=>new Set),t=(0,y.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,y.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var YVe={draggable:` To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel. - `},XVe={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function ZVe(e){let{announcements:t=XVe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=YVe}=e,{announce:a,announcement:o}=KVe(),s=f4(`DndLiveRegion`),[c,l]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{l(!0)},[]),qVe((0,y.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=y.createElement(y.Fragment,null,y.createElement(WVe,{id:r,value:i.draggable}),y.createElement(GVe,{id:s,announcement:o}));return n?(0,At.createPortal)(u,n):u}var x4;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(x4||={});function S4(){}function C4(e,t){return(0,y.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function w4(){var e=[...arguments];return(0,y.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var T4=Object.freeze({x:0,y:0});function E4(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function QVe(e,t){let n=_4(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function D4(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $Ve(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function O4(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function k4(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function A4(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var j4=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=A4(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=E4(A4(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(D4)},eHe=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=O4(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=O4(r),o=i.reduce((e,t,r)=>e+E4(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(D4)};function tHe(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=tHe(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort($Ve)};function rHe(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function M4(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:T4}function iHe(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var aHe=iHe(1);function N4(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function oHe(e,t,n){let r=N4(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var sHe={ignoreTransform:!1};function P4(e,t){t===void 0&&(t=sHe);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=e4(e).getComputedStyle(e);t&&(n=oHe(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function F4(e){return P4(e,{ignoreTransform:!0})}function cHe(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function lHe(e,t){return t===void 0&&(t=e4(e).getComputedStyle(e)),t.position===`fixed`}function uHe(e,t){t===void 0&&(t=e4(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function I4(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(t4(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!n4(i)||r4(i)||n.includes(i))return n;let a=e4(e).getComputedStyle(i);return i!==e&&uHe(i,a)&&n.push(i),lHe(i,a)?n:r(i.parentNode)}return e?r(e):n}function L4(e){let[t]=I4(e,1);return t??null}function R4(e){return!Z2||!e?null:Q2(e)?e:$2(e)?t4(e)||e===i4(e).scrollingElement?window:n4(e)?e:null:null}function z4(e){return Q2(e)?e.scrollX:e.scrollLeft}function B4(e){return Q2(e)?e.scrollY:e.scrollTop}function V4(e){return{x:z4(e),y:B4(e)}}var H4;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(H4||={});function U4(e){return!Z2||!e?!1:e===document.scrollingElement}function W4(e){let t={x:0,y:0},n=U4(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var dHe={x:.2,y:.2};function fHe(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=dHe);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=W4(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=H4.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=H4.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=H4.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=H4.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function pHe(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function G4(e){return e.reduce((e,t)=>m4(e,V4(t)),T4)}function mHe(e){return e.reduce((e,t)=>e+z4(t),0)}function hHe(e){return e.reduce((e,t)=>e+B4(t),0)}function K4(e,t){if(t===void 0&&(t=P4),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);L4(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var gHe=[[`x`,[`left`,`right`],mHe],[`y`,[`top`,`bottom`],hHe]],q4=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=I4(t),r=G4(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of gHe)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},J4=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function _He(e){let{EventTarget:t}=e4(e);return e instanceof t?e:i4(e)}function Y4(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var X4;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(X4||={});function Z4(e){e.preventDefault()}function vHe(e){e.stopPropagation()}var Q4;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(Q4||={});var $4={start:[Q4.Space,Q4.Enter],cancel:[Q4.Esc],end:[Q4.Space,Q4.Enter,Q4.Tab]},yHe=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Q4.Right:return{...n,x:n.x+25};case Q4.Left:return{...n,x:n.x-25};case Q4.Down:return{...n,y:n.y+25};case Q4.Up:return{...n,y:n.y-25}}},e3=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new J4(i4(t)),this.windowListeners=new J4(e4(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(X4.Resize,this.handleCancel),this.windowListeners.add(X4.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(X4.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&K4(n),t(T4)}handleKeyDown(e){if(g4(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=$4,coordinateGetter:a=yHe,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:T4;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=h4(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=W4(n),p=pHe(n),m={x:Math.min(i===Q4.Right?p.right-p.width/2:p.right,Math.max(i===Q4.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===Q4.Down?p.bottom-p.height/2:p.bottom,Math.max(i===Q4.Down?p.top:p.top+p.height/2,u.y))},h=i===Q4.Right&&!s||i===Q4.Left&&!c,g=i===Q4.Down&&!l||i===Q4.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===Q4.Right&&e<=d.x||i===Q4.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===Q4.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===Q4.Down&&e<=d.y||i===Q4.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===Q4.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,m4(h4(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};e3.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=$4,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function t3(e){return!!(e&&`distance`in e)}function n3(e){return!!(e&&`delay`in e)}var r3=class{constructor(e,t,n){n===void 0&&(n=_He(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=i4(i),this.documentListeners=new J4(this.document),this.listeners=new J4(n),this.windowListeners=new J4(e4(i)),this.initialCoordinates=_4(r)??T4,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(X4.Resize,this.handleCancel),this.windowListeners.add(X4.DragStart,Z4),this.windowListeners.add(X4.VisibilityChange,this.handleCancel),this.windowListeners.add(X4.ContextMenu,Z4),this.documentListeners.add(X4.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(n3(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(t3(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(X4.Click,vHe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(X4.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=_4(e)??T4,s=h4(n,o);if(!t&&a){if(t3(a)){if(a.tolerance!=null&&Y4(s,a.tolerance))return this.handleCancel();if(Y4(s,a.distance))return this.handleStart()}if(n3(a)&&Y4(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===Q4.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},bHe={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},i3=class extends r3{constructor(e){let{event:t}=e,n=i4(t.target);super(e,bHe,n)}};i3.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var xHe={move:{name:`mousemove`},end:{name:`mouseup`}},a3;(function(e){e[e.RightClick=2]=`RightClick`})(a3||={});var SHe=class extends r3{constructor(e){super(e,xHe,i4(e.event.target))}};SHe.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===a3.RightClick?!1:(r?.({event:n}),!0)}}];var o3={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},CHe=class extends r3{constructor(e){super(e,o3)}static setup(){return window.addEventListener(o3.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(o3.move.name,e)};function e(){}}};CHe.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var s3;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(s3||={});var c3;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(c3||={});function wHe(e){let{acceleration:t,activator:n=s3.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=c3.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=EHe({delta:d,disabled:!a}),[m,h]=zVe(),g=(0,y.useRef)({x:0,y:0}),_=(0,y.useRef)({x:0,y:0}),v=(0,y.useMemo)(()=>{switch(n){case s3.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case s3.DraggableRect:return i}},[n,i,c]),b=(0,y.useRef)(null),x=(0,y.useCallback)(()=>{let e=b.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),S=(0,y.useMemo)(()=>s===c3.TreeOrder?[...l].reverse():l,[s,l]);(0,y.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of S){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=fHe(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),b.current=e,m(x,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,x,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,S,u,JSON.stringify(f)])}var THe={x:{[H4.Backward]:!1,[H4.Forward]:!1},y:{[H4.Backward]:!1,[H4.Forward]:!1}};function EHe(e){let{delta:t,disabled:n}=e,r=u4(t);return c4(e=>{if(n||!r||!e)return THe;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[H4.Backward]:e.x[H4.Backward]||i.x===-1,[H4.Forward]:e.x[H4.Forward]||i.x===1},y:{[H4.Backward]:e.y[H4.Backward]||i.y===-1,[H4.Forward]:e.y[H4.Forward]||i.y===1}}},[n,t,r])}function DHe(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return c4(e=>t==null?null:r??e??null,[r,t])}function OHe(e,t){return(0,y.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var l3;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(l3||={});var u3;(function(e){e.Optimized=`optimized`})(u3||={});var d3=new Map;function kHe(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,y.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,y.useRef)(e),d=g(),f=s4(d),p=(0,y.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,y.useRef)(null),h=c4(t=>{if(d&&!n)return d3;if(!t||t===d3||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new q4(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,y.useEffect)(()=>{u.current=e},[e]),(0,y.useEffect)(()=>{d||p()},[n,d]),(0,y.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,y.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case l3.Always:return!1;case l3.BeforeDragging:return n;default:return!n}}}function f3(e,t){return c4(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function AHe(e,t){return f3(e,t)}function jHe(e){let{callback:t,disabled:n}=e,r=o4(t),i=(0,y.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,y.useEffect)(()=>()=>i?.disconnect(),[i]),i}function p3(e){let{callback:t,disabled:n}=e,r=o4(t),i=(0,y.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,y.useEffect)(()=>()=>i?.disconnect(),[i]),i}function MHe(e){return new q4(P4(e),e)}function m3(e,t,n){t===void 0&&(t=MHe);let[r,i]=(0,y.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=jHe({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=p3({callback:a});return a4(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function NHe(e){return M4(e,f3(e))}var h3=[];function PHe(e){let t=(0,y.useRef)(e),n=c4(n=>e?n&&n!==h3&&e&&t.current&&e.parentNode===t.current.parentNode?n:I4(e):h3,[e]);return(0,y.useEffect)(()=>{t.current=e},[e]),n}function FHe(e){let[t,n]=(0,y.useState)(null),r=(0,y.useRef)(e),i=(0,y.useCallback)(e=>{let t=R4(e.target);t&&n(e=>e?(e.set(t,V4(t)),new Map(e)):null)},[]);return(0,y.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=R4(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,V4(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{R4(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,y.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>m4(e,t),T4):G4(e):T4,[e,t])}function g3(e,t){t===void 0&&(t=[]);let n=(0,y.useRef)(null);return(0,y.useEffect)(()=>{n.current=null},t),(0,y.useEffect)(()=>{let t=e!==T4;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?h4(e,n.current):T4}function IHe(e){(0,y.useEffect)(()=>{if(!Z2)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function LHe(e,t){return(0,y.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function _3(e){return(0,y.useMemo)(()=>e?cHe(e):null,[e])}var v3=[];function RHe(e,t){t===void 0&&(t=P4);let[n]=e,r=_3(n?e4(n):null),[i,a]=(0,y.useState)(v3);function o(){a(()=>e.length?e.map(e=>U4(e)?r:new q4(t(e),e)):v3)}let s=p3({callback:o});return a4(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function y3(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return n4(t)?t:e}function zHe(e){let{measure:t}=e,[n,r]=(0,y.useState)(null),i=p3({callback:(0,y.useCallback)(e=>{for(let{target:n}of e)if(n4(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=l4((0,y.useCallback)(e=>{let n=y3(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,y.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var BHe=[{sensor:i3,options:{}},{sensor:e3,options:{}}],VHe={current:{}},b3={draggable:{measure:F4},droppable:{measure:F4,strategy:l3.WhileDragging,frequency:u3.Optimized},dragOverlay:{measure:P4}},x3=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},HHe={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new x3,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:S4},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:b3,measureDroppableContainers:S4,windowRect:null,measuringScheduled:!1},S3={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:S4,draggableNodes:new Map,over:null,measureDroppableContainers:S4},C3=(0,y.createContext)(S3),w3=(0,y.createContext)(HHe);function UHe(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new x3}}}function WHe(e,t){switch(t.type){case x4.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case x4.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case x4.DragEnd:case x4.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case x4.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new x3(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case x4.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new x3(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case x4.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new x3(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function GHe(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,y.useContext)(C3),a=u4(r),o=u4(n?.id);return(0,y.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!g4(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=HVe(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function T3(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function KHe(e){return(0,y.useMemo)(()=>({draggable:{...b3.draggable,...e?.draggable},droppable:{...b3.droppable,...e?.droppable},dragOverlay:{...b3.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function qHe(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,y.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;a4(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=M4(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=L4(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var E3=(0,y.createContext)({...T4,scaleX:1,scaleY:1}),D3;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(D3||={});var O3=(0,y.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=BHe,collisionDetection:o=nHe,measuring:s,modifiers:c,...l}=e,[u,d]=(0,y.useReducer)(WHe,void 0,UHe),[f,p]=JVe(),[m,h]=(0,y.useState)(D3.Uninitialized),g=m===D3.Initialized,{draggable:{active:_,nodes:v,translate:b},droppable:{containers:x}}=u,S=_==null?null:v.get(_),C=(0,y.useRef)({initial:null,translated:null}),w=(0,y.useMemo)(()=>_==null?null:{id:_,data:S?.data??VHe,rect:C},[_,S]),T=(0,y.useRef)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),A=s4(l,Object.values(l)),j=f4(`DndDescribedBy`,t),M=(0,y.useMemo)(()=>x.getEnabled(),[x]),N=KHe(s),{droppableRects:P,measureDroppableContainers:F,measuringScheduled:I}=kHe(M,{dragging:g,dependencies:[b.x,b.y],config:N.droppable}),L=DHe(v,_),R=(0,y.useMemo)(()=>O?_4(O):null,[O]),z=De(),B=AHe(L,N.draggable.measure);qHe({activeNode:_==null?null:v.get(_),config:z.layoutShiftCompensation,initialRect:B,measure:N.draggable.measure});let V=m3(L,N.draggable.measure,B),ee=m3(L?L.parentElement:null),te=(0,y.useRef)({activatorEvent:null,active:null,activeNode:L,collisionRect:null,collisions:null,droppableRects:P,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:x,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=x.getNodeFor(te.current.over?.id),re=zHe({measure:N.dragOverlay.measure}),ie=re.nodeRef.current??L,ae=g?re.rect??V:null,oe=!!(re.nodeRef.current&&re.rect),se=NHe(oe?null:V),H=_3(ie?e4(ie):null),ce=PHe(g?ne??L:null),le=RHe(ce),ue=T3(c,{transform:{x:b.x-se.x,y:b.y-se.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:V,containerNodeRect:ee,draggingNodeRect:ae,over:te.current.over,overlayNodeRect:re.rect,scrollableAncestors:ce,scrollableAncestorRects:le,windowRect:H}),de=R?m4(R,b):null,fe=FHe(ce),pe=g3(fe),me=g3(fe,[V]),he=m4(ue,pe),ge=ae?aHe(ae,ue):null,_e=w&&ge?o({active:w,collisionRect:ge,droppableRects:P,droppableContainers:M,pointerCoordinates:de}):null,ve=k4(_e,`id`),[ye,be]=(0,y.useState)(null),xe=rHe(oe?ue:m4(ue,me),ye?.rect??null,V),Se=(0,y.useRef)(null),Ce=(0,y.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent;Se.current=new n({active:T.current,activeNode:i,event:a,options:r,context:te,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:C}};(0,At.unstable_batchedUpdates)(()=>{r?.(i),h(D3.Initializing),d({type:x4.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(Se.current),k(a)})},onMove(e){d({type:x4.DragMove,coordinates:e})},onEnd:o(x4.DragEnd),onCancel:o(x4.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=te.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===x4.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=x4.DragCancel)}T.current=null,(0,At.unstable_batchedUpdates)(()=>{d({type:e}),h(D3.Uninitialized),be(null),D(null),k(null),Se.current=null;let t=e===x4.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),we=OHe(a,(0,y.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Ce(n,t))},[v,Ce]));IHe(a),a4(()=>{V&&m===D3.Initializing&&h(D3.Initialized)},[V,m]),(0,y.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=te.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:he.x,y:he.y},over:i};(0,At.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[he.x,he.y]),(0,y.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=te.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(ve),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,At.unstable_batchedUpdates)(()=>{be(s),a?.(c),f({type:`onDragOver`,event:c})})},[ve]),a4(()=>{te.current={activatorEvent:O,active:w,activeNode:L,collisionRect:ge,collisions:_e,droppableRects:P,draggableNodes:v,draggingNode:ie,draggingNodeRect:ae,droppableContainers:x,over:ye,scrollableAncestors:ce,scrollAdjustedTranslate:he},C.current={initial:ae,translated:ge}},[w,L,_e,ge,v,ie,ae,P,x,ye,ce,he]),wHe({...z,delta:b,draggingRect:ge,pointerCoordinates:de,scrollableAncestors:ce,scrollableAncestorRects:le});let Te=(0,y.useMemo)(()=>({active:w,activeNode:L,activeNodeRect:V,activatorEvent:O,collisions:_e,containerNodeRect:ee,dragOverlay:re,draggableNodes:v,droppableContainers:x,droppableRects:P,over:ye,measureDroppableContainers:F,scrollableAncestors:ce,scrollableAncestorRects:le,measuringConfiguration:N,measuringScheduled:I,windowRect:H}),[w,L,V,O,_e,ee,re,v,x,P,ye,F,ce,le,N,I,H]),Ee=(0,y.useMemo)(()=>({activatorEvent:O,activators:we,active:w,activeNodeRect:V,ariaDescribedById:{draggable:j},dispatch:d,draggableNodes:v,over:ye,measureDroppableContainers:F}),[O,we,w,V,d,j,v,ye,F]);return y.createElement(b4.Provider,{value:p},y.createElement(C3.Provider,{value:Ee},y.createElement(w3.Provider,{value:Te},y.createElement(E3.Provider,{value:xe},i)),y.createElement(GHe,{disabled:n?.restoreFocus===!1})),y.createElement(ZVe,{...n,hiddenTextDescribedById:j}));function De(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),JHe=(0,y.createContext)(null),k3=`button`,YHe=`Draggable`;function XHe(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=f4(YHe),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,y.useContext)(C3),{role:p=k3,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,y.useContext)(g?E3:JHe),[v,b]=l4(),[x,S]=l4(),C=LHe(o,t),w=s4(n);return a4(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:x,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,y.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===k3?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:C,node:v,over:f,setNodeRef:b,setActivatorNodeRef:S,transform:_}}function A3(){return(0,y.useContext)(w3)}var ZHe=`Droppable`,QHe={timeout:25};function $He(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=f4(ZHe),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,y.useContext)(C3),u=(0,y.useRef)({disabled:n}),d=(0,y.useRef)(!1),f=(0,y.useRef)(null),p=(0,y.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...QHe,...i},_=s4(h??r),v=p3({callback:(0,y.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[b,x]=l4((0,y.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),S=s4(t);return(0,y.useEffect)(()=>{!v||!b.current||(v.disconnect(),d.current=!1,v.observe(b.current))},[b,v]),(0,y.useEffect)(()=>(s({type:x4.RegisterDroppable,element:{id:r,key:a,disabled:n,node:b,rect:f,data:S}}),()=>s({type:x4.UnregisterDroppable,key:a,id:r})),[r]),(0,y.useEffect)(()=>{n!==u.current.disabled&&(s({type:x4.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:b,over:c,setNodeRef:x}}function eUe(e){let{animation:t,children:n}=e,[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null),s=u4(n);return!n&&!r&&s&&i(s),a4(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),y.createElement(y.Fragment,null,n,r?(0,y.cloneElement)(r,{ref:o}):null)}var tUe={x:0,y:0,scaleX:1,scaleY:1};function nUe(e){let{children:t}=e;return y.createElement(C3.Provider,{value:S3},y.createElement(E3.Provider,{value:tUe},t))}var rUe={position:`fixed`,touchAction:`none`},iUe=e=>g4(e)?`transform 250ms ease`:void 0,aUe=(0,y.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=iUe}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...rUe,width:s.width,height:s.height,top:s.top,left:s.left,transform:v4.Transform.toString(d),transformOrigin:i&&r?QVe(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return y.createElement(n,{className:o,style:f,ref:t},a)}),oUe={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:v4.Transform.toString(t)},{transform:v4.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function sUe(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return o4((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=y3(a);if(!c)return;let{transform:l}=e4(a).getComputedStyle(a),u=N4(l);if(!u)return;let d=typeof t==`function`?t:cUe(t);return K4(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function cUe(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...oUe,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var j3=0;function lUe(e){return(0,y.useMemo)(()=>{if(e!=null)return j3++,j3},[e])}var uUe=y.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:b,scrollableAncestorRects:x,windowRect:S}=A3(),C=(0,y.useContext)(E3),w=lUe(d?.id),T=T3(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:b,scrollableAncestorRects:x,transform:C,windowRect:S}),E=f3(f),D=sUe({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),O=E?g.setRef:void 0;return y.createElement(nUe,null,y.createElement(eUe,{animation:D},d&&w?y.createElement(aUe,{key:w,id:d.id,ref:O,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:E,style:{zIndex:l,...i},transform:T},n):null))});function M3(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function dUe(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function N3(e){return e!==null&&e>=0}function fUe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=M3(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},F3={scaleX:1,scaleY:1},mUe=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:tt&&r<=a?{x:0,y:-o.height-s,...F3}:r=a?{x:0,y:o.height+s,...F3}:{x:0,y:0,...F3}};function hUe(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?nr.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,y.useRef)(p),v=!fUe(p,_.current),b=g!==-1&&h===-1||v,x=pUe(a);a4(()=>{v&&m&&u(p)},[v,p,m,u]),(0,y.useEffect)(()=>{_.current=p},[p]);let S=(0,y.useMemo)(()=>({activeIndex:h,containerId:d,disabled:x,disableTransforms:b,items:p,overIndex:g,useDragOverlay:f,sortedRects:dUe(p,c),strategy:i}),[h,d,x.draggable,x.droppable,b,p,g,c,f,i]);return y.createElement(L3.Provider,{value:S},t)}var gUe=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return M3(n,r,i).indexOf(t)},_Ue=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},vUe={duration:200,easing:`ease`},z3=`transform`,yUe=v4.Transition.toString({property:z3,duration:0,easing:`linear`}),bUe={roleDescription:`sortable`};function xUe(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,y.useState)(null),s=(0,y.useRef)(n);return a4(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=P4(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,y.useEffect)(()=>{a&&o(null)},[a]),a}function B3(e){let{animateLayoutChanges:t=_Ue,attributes:n,disabled:r,data:i,getNewIndex:a=gUe,id:o,strategy:s,resizeObserverConfig:c,transition:l=vUe}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,y.useContext)(L3),b=SUe(r,p),x=u.indexOf(o),S=(0,y.useMemo)(()=>({sortable:{containerId:d,index:x,items:u},...i}),[d,i,x,u]),C=(0,y.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=$He({id:o,data:S,disabled:b.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:P,over:F,setActivatorNodeRef:I,transform:L}=XHe({id:o,data:S,attributes:{...bUe,...n},disabled:b.draggable}),R=RVe(D,M),z=!!O,B=z&&!m&&N3(f)&&N3(g),V=!_&&P,ee=B?(V&&B?L:null)??(s??v)({rects:h,activeNodeRect:A,activeIndex:f,overIndex:g,index:x}):null,te=N3(f)&&N3(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):x,ne=O?.id,re=(0,y.useRef)({activeId:ne,items:u,newIndex:te,containerId:d}),ie=u!==re.current.items,ae=t({active:O,containerId:d,isDragging:P,isSorting:z,id:o,index:x,items:u,newIndex:re.current.newIndex,previousItems:re.current.items,previousContainerId:re.current.containerId,transition:l,wasDragging:re.current.activeId!=null}),oe=xUe({disabled:!ae,index:x,node:T,rect:w});return(0,y.useEffect)(()=>{z&&re.current.newIndex!==te&&(re.current.newIndex=te),d!==re.current.containerId&&(re.current.containerId=d),u!==re.current.items&&(re.current.items=u)},[z,te,d,u]),(0,y.useEffect)(()=>{if(ne===re.current.activeId)return;if(ne!=null&&re.current.activeId==null){re.current.activeId=ne;return}let e=setTimeout(()=>{re.current.activeId=ne},50);return()=>clearTimeout(e)},[ne]),{active:O,activeIndex:f,attributes:j,data:S,rect:w,index:x,newIndex:te,items:u,isOver:E,isSorting:z,isDragging:P,listeners:N,node:T,overIndex:g,over:F,setNodeRef:R,setActivatorNodeRef:I,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:oe??ee,transition:se()};function se(){if(oe||ie&&re.current.newIndex===x)return yUe;if(!(V&&!g4(k)||!l)&&(z||ae))return v4.Transition.toString({...l,property:z3})}}function SUe(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function V3(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var CUe=[Q4.Down,Q4.Right,Q4.Up,Q4.Left],H3=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(CUe.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case Q4.Down:r.topa.top&&t.push(n);break;case Q4.Left:r.left>a.left&&t.push(n);break;case Q4.Right:r.left1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=I4(c).some((e,t)=>s[t]!==e),i=U3(e,t),a=wUe(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:h4(u,l)}}}};function U3(e,t){return!V3(e)||!V3(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function wUe(e,t){return!V3(e)||!V3(t)||!U3(e,t)?!1:e.data.current.sortable.indexZ.listSlicerPipelines()}),{data:g}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),_=(g??[]).reduce((e,t)=>(e[t.id]=t,e),{}),v=s.startsWith(`p:`)?parseInt(s.slice(2),10):void 0,b=s.startsWith(`c:`)?s.slice(2):void 0,{data:x,isLoading:S}=K({queryKey:[`pipeline-runs-all`,r,a,l,s],queryFn:()=>Z.listAllPipelineRuns({limit:W3,offset:l,pipelineId:a??void 0,status:r||void 0,targetPrinterId:v,targetModelClass:b}),refetchInterval:15e3}),C=q({mutationFn:e=>Z.cancelPipelineRun(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),n(e(`pipelineRuns.toast.cancelled`,`Run cancelled`),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.cancelFailed`,`Cancel failed`),`error`)}),w=q({mutationFn:e=>Z.retryFailedPipelineRun(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),n(e(`pipelineRuns.toast.retryStarted`,`Retry started`),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.retryFailed`,`Retry failed`),`error`)}),T=q({mutationFn:()=>Z.clearTerminalPipelineRuns(),onSuccess:r=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),m(!1),u(0),n(e(`pipelineRuns.toast.cleared`,`{{n}} runs cleared`,{n:r.deleted}),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.clearFailed`,`Clear failed`),`error`)}),E=x?.runs??[],D=x?.total??0,O=(h?.pipelines??[]).reduce((e,t)=>(e[t.id]=t,e),{}),k=e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},A=!!(r||a!==null||s),j=(()=>{let e=new Set,t=new Set;for(let n of h?.pipelines??[])n.target_kind===`printer_class`&&n.target_model_class?t.add(n.target_model_class):n.target_printer_id&&e.add(n.target_printer_id);return{printers:(g??[]).filter(t=>e.has(t.id)),classes:Array.from(t).sort()}})();return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4 text-sm`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),"aria-label":e(`common.refresh`,`Refresh`),title:e(`common.refresh`,`Refresh`),className:`p-1.5 text-bambu-gray hover:text-white border border-bambu-dark-tertiary rounded`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(G3,{icon:(0,G.jsx)(ed,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.pipeline`,`Pipeline`),value:a===null?``:String(a),onChange:e=>{u(0),o(e?parseInt(e,10):null)},options:[{value:``,label:e(`pipelineRuns.filter.allPipelines`,`All pipelines`)},...(h?.pipelines??[]).map(e=>({value:String(e.id),label:e.name}))]}),(0,G.jsx)(G3,{icon:(0,G.jsx)(wc,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.status`,`Status`),value:r,onChange:e=>{u(0),i(e)},options:TUe.map(t=>({value:t,label:t===``?e(`pipelineRuns.filter.allStatus`,`All statuses`):e(`settings.pipelines.runs.status.${t}`,t)}))}),(j.printers.length>0||j.classes.length>0)&&(0,G.jsx)(G3,{icon:(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.target`,`Target`),value:s,onChange:e=>{u(0),c(e)},options:[{value:``,label:e(`pipelineRuns.filter.allTargets`,`All targets`)},...j.printers.map(t=>({value:`p:${t.id}`,label:t.name,group:e(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)})),...j.classes.map(t=>({value:`c:${t}`,label:e(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:t}),group:e(`settings.pipelines.field.targetKindClass`,`Printer class`)}))]}),A&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{i(``),o(null),c(``),u(0)},className:`text-xs text-bambu-gray hover:text-white`,children:e(`pipelineRuns.filter.clear`,`Clear filters`)}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2 text-xs text-bambu-gray`,children:[!S&&D>0&&(0,G.jsx)(`span`,{children:e(`pipelineRuns.totalCount`,`{{n}} run`,{n:D,count:D})}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>m(!0),disabled:D===0,className:`flex items-center gap-1 px-2 py-1 text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-500/10 rounded disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,G.jsx)(Pu,{className:`w-3 h-3`}),e(`pipelineRuns.clearLog`,`Clear log`)]})]})]}),p&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/60 flex items-center justify-center p-4`,onClick:()=>m(!1),role:`dialog`,"aria-modal":`true`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl w-full max-w-md p-4`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}),e(`pipelineRuns.clearConfirmTitle`,`Clear log?`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:e(`pipelineRuns.clearConfirmBody`,`Delete every completed, failed, cancelled, and partial-failure pipeline run? In-flight runs are kept. This cannot be undone.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-4`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(!1),disabled:T.isPending,className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white`,children:e(`common.cancel`,`Cancel`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>T.mutate(),disabled:T.isPending,className:`px-3 py-1.5 text-sm bg-red-500 hover:bg-red-600 text-white rounded disabled:opacity-50 flex items-center gap-1`,children:[T.isPending?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),e(`pipelineRuns.clearConfirmAction`,`Clear`)]})]})]})}),S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`pipelineRuns.loading`,`Loading…`)]}),!S&&E.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:A?e(`pipelineRuns.filter.noMatches`,`No runs match the current filters.`):e(`pipelineRuns.empty`,`No pipeline runs yet.`)}),!S&&E.length>0&&(0,G.jsx)(`div`,{className:`space-y-1.5`,children:E.map(e=>(0,G.jsx)(DUe,{run:e,pipeline:e.pipeline_id?O[e.pipeline_id]:void 0,printersById:_,expanded:d.has(e.id),onToggle:()=>k(e.id),onCancel:()=>C.mutate(e.id),onRetry:()=>w.mutate(e.id),cancelling:C.isPending,retrying:w.isPending},e.id))}),!S&&D>W3&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-4 text-sm`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(Math.max(0,l-W3)),disabled:l===0,className:`px-3 py-1.5 rounded border border-bambu-dark-tertiary disabled:opacity-50 text-bambu-gray hover:text-white`,children:e(`common.previous`,`Previous`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e(`pipelineRuns.pagination`,`{{start}}–{{end}} of {{total}}`,{start:l+1,end:Math.min(l+W3,D),total:D})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(l+W3),disabled:l+W3>=D,className:`px-3 py-1.5 rounded border border-bambu-dark-tertiary disabled:opacity-50 text-bambu-gray hover:text-white`,children:e(`common.next`,`Next`)})]})]})}function DUe({run:e,pipeline:t,printersById:n,expanded:r,onToggle:i,onCancel:a,onRetry:o,cancelling:s,retrying:c}){let{t:l}=U(),u=[`queued`,`slicing`,`dispatching`,`in_progress`].includes(e.status),d=e.status===`partial_failure`||e.status===`failed`,f=e.status===`cancelled`&&e.error_message===`Cancelled by user`,p=e.target_kind===`printer_class`&&e.target_model_class?l(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}):e.target_printer_id&&n[e.target_printer_id]?n[e.target_printer_id].name:null;return(0,G.jsxs)(`div`,{className:`rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:i,"aria-label":r?l(`common.collapse`,`Collapse`):l(`common.expand`,`Expand`),"aria-expanded":r,className:`text-bambu-gray hover:text-white flex-shrink-0`,children:r?(0,G.jsx)(ps,{className:`w-4 h-4`}):(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-white`,children:[`#`,e.id]}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:t?.name??e.pipeline_name??`—`}),(0,G.jsx)(OUe,{status:e.status}),p&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),p]}),e.parent_run_id&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70 italic`,children:l(`pipelineRuns.retryOf`,`retry of #{{n}}`,{n:e.parent_run_id})})]}),e.source_filename&&(0,G.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1.5 text-xs text-bambu-gray min-w-0`,children:[(0,G.jsx)(fc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,title:e.source_filename,children:e.source_filename})]}),(0,G.jsxs)(`div`,{className:`mt-0.5 text-xs text-bambu-gray/70 flex flex-wrap items-center gap-x-2`,children:[(0,G.jsx)(`span`,{children:new Date(e.created_at).toLocaleString()}),e.copies>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsx)(`span`,{children:l(`pipelineRuns.copies`,`{{n}} copies`,{n:e.copies})})]}),(e.copies_completed>0||e.copies_failed>0||e.copies_cancelled>0)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`span`,{className:`text-bambu-green`,children:e.copies_completed}),`/`,e.copies]}),e.copies_failed>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:l(`pipelineRuns.failedCount`,`{{n}} failed`,{n:e.copies_failed})})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[u&&(0,G.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":l(`common.cancel`,`Cancel`),className:`text-xs px-2 py-1 text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-500/10 rounded disabled:opacity-50 flex items-center gap-1`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),l(`common.cancel`,`Cancel`)]}),d&&(0,G.jsxs)(`button`,{type:`button`,onClick:o,disabled:c,"aria-label":l(`pipelineRuns.retryFailed`,`Retry failed`),className:`text-xs px-2 py-1 text-bambu-green hover:bg-bambu-green/10 rounded disabled:opacity-50 flex items-center gap-1`,children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),l(`pipelineRuns.retryFailed`,`Retry failed`)]})]})]}),r&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary px-3 py-2 bg-bambu-dark/30`,children:[(0,G.jsx)(`div`,{className:`space-y-1.5`,children:e.jobs.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/60 w-14 flex-shrink-0`,children:l(`pipelineRuns.copyN`,`Copy {{n}}`,{n:e.copy_index+1})}),(0,G.jsx)(kUe,{status:e.status}),e.assigned_printer_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray flex items-center gap-1 truncate`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3 text-bambu-gray/60`}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:e.assigned_printer_name})]}),e.error_message&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 truncate`,title:e.error_message,children:e.error_message})]},e.id))}),e.error_message&&!f&&(0,G.jsx)(`div`,{className:`text-xs text-red-700 dark:text-red-400 mt-2 pt-2 border-t border-bambu-dark-tertiary`,children:e.error_message}),f&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/70 mt-2 pt-2 border-t border-bambu-dark-tertiary italic`,children:l(`pipelineRuns.cancelledByUser`,`Cancelled by user`)})]})]})}function OUe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] uppercase font-semibold tracking-wide whitespace-nowrap ${{queued:`bg-slate-700 text-slate-200`,slicing:`bg-sky-700 text-sky-100`,dispatching:`bg-sky-700 text-sky-100`,in_progress:`bg-emerald-700 text-emerald-100`,completed:`bg-emerald-700 text-emerald-100`,failed:`bg-red-700 text-red-100`,partial_failure:`bg-amber-700 text-amber-100`,cancelled:`bg-rose-900 text-rose-200`}[e]}`,children:t(`settings.pipelines.runs.status.${e}`,e)})}function G3({value:e,onChange:t,options:n,icon:r,ariaLabel:i}){let[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a]);let c=n.find(t=>t.value===e),l=[];for(let e of n){let t=l[l.length-1];t&&t.group===e.group?t.options.push(e):l.push({group:e.group,options:[e]})}return(0,G.jsxs)(`div`,{ref:s,className:`relative`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-label":i,"aria-haspopup":`listbox`,"aria-expanded":a,className:`flex items-center gap-1.5 px-2 py-1 border border-bambu-dark-tertiary rounded bg-bambu-dark/40 text-xs text-white hover:border-bambu-gray/60 focus:outline-none focus:ring-1 focus:ring-bambu-green/40`,children:[r,(0,G.jsx)(`span`,{className:`truncate max-w-[14rem]`,children:c?.label??``}),(0,G.jsx)(ps,{className:`w-3 h-3 text-bambu-gray transition-transform ${a?`rotate-180`:``}`})]}),a&&(0,G.jsx)(`div`,{role:`listbox`,className:`absolute left-0 top-full mt-1 z-30 min-w-full max-h-72 overflow-auto rounded border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-xl py-1`,children:l.map((n,r)=>(0,G.jsxs)(`div`,{children:[n.group&&(0,G.jsx)(`div`,{className:`px-2 pt-1.5 pb-0.5 text-[10px] uppercase tracking-wider text-bambu-gray/60`,children:n.group}),n.options.map(n=>{let r=n.value===e;return(0,G.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":r,onClick:()=>{t(n.value),o(!1)},className:`flex w-full items-center gap-1.5 text-left px-2 py-1 text-xs whitespace-nowrap ${r?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary/60 hover:text-white`}`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 flex-shrink-0 ${r?`opacity-100`:`opacity-0`}`}),(0,G.jsx)(`span`,{className:`truncate`,children:n.label})]},n.value)})]},r))})]})}function kUe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] uppercase font-semibold tracking-wide ${{pending:`bg-slate-700 text-slate-200`,awaiting_printer:`bg-sky-700 text-sky-100`,queued:`bg-sky-700 text-sky-100`,printing:`bg-emerald-700 text-emerald-100`,completed:`bg-emerald-700 text-emerald-100`,failed:`bg-red-700 text-red-100`,cancelled:`bg-rose-900 text-rose-200`}[e]}`,children:t(`pipelineRuns.jobStatus.${e}`,e)})}function AUe(e){return e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}function jUe({activeCount:e,pendingCount:t,totalTime:n,totalWeight:r,historyCount:i,t:a}){return(0,G.jsx)(`div`,{className:`flex items-center gap-3 sm:gap-5 flex-wrap px-4 py-3 bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary mb-6`,children:[{icon:Nl,value:e,label:a(`queue.summary.printing`),color:`text-blue-600 dark:text-blue-400`},{icon:js,value:t,label:a(`queue.summary.queued`),color:`text-yellow-600 dark:text-yellow-400`},{icon:Nu,value:lp(n),label:a(`queue.summary.totalTime`),color:`text-bambu-green`},{icon:Xu,value:AUe(r),label:a(`queue.summary.totalWeight`),color:`text-purple-600 dark:text-purple-400`},{icon:xs,value:i,label:a(`queue.summary.history`),color:`text-bambu-gray`}].map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[t>0&&(0,G.jsx)(`span`,{className:`hidden sm:block text-bambu-dark-tertiary`,children:`|`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(e.icon,{className:`w-4 h-4 ${e.color}`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-white`,children:e.value}),(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-bambu-gray`,children:e.label})]})]},t))})}var K3={completed:{icon:xs,color:`text-emerald-600 dark:text-emerald-400`,border:`border-l-emerald-500`},failed:{icon:Ds,color:`text-red-600 dark:text-red-400`,border:`border-l-red-500`},skipped:{icon:du,color:`text-orange-600 dark:text-orange-400`,border:`border-l-gray-500`},cancelled:{icon:Uo,color:`text-gray-400`,border:`border-l-gray-500`}};function MUe(e){if(!e)return null;let t=e.startsWith(`#`)?e.slice(1):e;return/^0{6,8}$/.test(t)||!/^[0-9a-fA-F]{6,8}$/.test(t)?null:`#${t.slice(0,6)}`}function q3({item:e,onRequeue:t,onRemove:n,timeFormat:r=`system`,hasPermission:i,canModify:a,t:o}){let s=K3[e.status]||K3.cancelled,c=s.icon,l=jT(e),u=e.archive_thumbnail?Z.getArchiveThumbnail(e.archive_id):e.library_file_thumbnail?Z.getLibraryFileThumbnailUrl(e.library_file_id):null,d=e.completed_at||e.created_at,f=MUe(e.filament_color),p=e.filament_used_grams?Math.round(e.filament_used_grams):null,m=!!e.error_message&&(e.status===`failed`||e.status===`skipped`);return(0,G.jsxs)(`div`,{className:`px-3 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary border-l-[3px] ${s.border}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3`,children:[(0,G.jsx)(c,{className:`w-4 h-4 shrink-0 ${s.color}`}),(0,G.jsxs)(`div`,{className:`relative shrink-0 history-thumb-hover`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 bg-bambu-dark rounded overflow-hidden`,children:u?(0,G.jsx)(`img`,{src:u,alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Jc,{className:`w-4 h-4`})})}),u&&(0,G.jsx)(`div`,{className:`history-thumb-preview absolute z-[60] left-full top-0 ml-2 w-48 h-48 pointer-events-none opacity-0 transition-opacity`,children:(0,G.jsx)(`img`,{src:u,alt:``,className:`w-full h-full object-cover rounded-lg shadow-2xl border-2 border-bambu-dark-tertiary bg-bambu-dark`})})]}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium truncate min-w-0 flex-1`,children:l}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray shrink-0`,title:d??void 0,children:up(d,r,o)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 shrink-0`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:t,disabled:!i(`queue:create`),title:i(`queue:create`)?o(`queue.actions.requeue`):o(`queue.permissions.noRequeue`),className:`text-bambu-green hover:text-bambu-green/80 hover:bg-bambu-green/10 p-1.5`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:n,disabled:!a(`queue`,`delete`,e.created_by_id),title:a(`queue`,`delete`,e.created_by_id)?o(`common.remove`):o(`queue.permissions.noRemove`),className:`p-1.5`,children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})]}),(0,G.jsxs)(`div`,{className:`mt-1 ml-[3.25rem] flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-bambu-gray`,children:[e.printer_name&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate max-w-[100px] sm:max-w-[140px]`,children:e.printer_name})]}),(f||p)&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[f?(0,G.jsx)(`span`,{className:`inline-block w-2.5 h-2.5 rounded-full border border-white/15`,style:{backgroundColor:f},"aria-hidden":!0}):(0,G.jsx)(Xu,{className:`w-3 h-3`}),(0,G.jsxs)(`span`,{className:`truncate`,children:[p?`${p}g`:null,p&&e.filament_type?` ${e.filament_type}`:null,!p&&e.filament_type?e.filament_type:null]})]}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3`}),lp(e.print_time_seconds)]}),e.created_by_username&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,title:o(`queue.addedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.created_by_username})]})]}),m&&(0,G.jsxs)(`div`,{className:`mt-1 ml-[3.25rem] flex items-start gap-1 text-xs text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{className:`break-words`,children:e.error_message})]})]})}function J3(e){return e.printer_id==null?e.target_model?`model:${e.target_model}`:`unassigned`:`printer:${e.printer_id}`}function Y3(e,t,n){if(n){let n=+!!e.been_jumped,r=+!!t.been_jumped;if(n!==r)return r-n;let i=e.print_time_seconds??1/0,a=t.print_time_seconds??1/0;if(i!==a)return i-a}return e.position-t.position}function NUe(e,t,n){let r=J3(e),i=J3(t);if(r!==i){if(e.printer_id!=null&&t.printer_id!=null)return e.printer_id-t.printer_id;let n=X3(e),a=X3(t);return n===a?rnew Date);(0,y.useEffect)(()=>{let e=setInterval(()=>s(new Date),6e4);return()=>clearInterval(e)},[]);let[c,l]=(0,y.useState)(0),u=(0,y.useMemo)(()=>{let e=o.getTime()+c;return Math.floor(e/Z3)*Z3},[o,c]),d=u+$3,f=o.getTime(),p=(0,y.useMemo)(()=>{let t=[],i=new Map,a=new Set,o=new Map;for(let r of e)if(r.status===`printing`){let e=r.printer_id==null?void 0:n[r.printer_id],i=rp(r.started_at)||new Date,s;if(e?.remaining_time!=null&&e.remaining_time>0)s=new Date(f+e.remaining_time*60*1e3);else if(r.print_time_seconds){let t=e?.progress||0,n=Math.max(0,1-t/100);s=new Date(f+r.print_time_seconds*n*1e3)}else s=new Date(f+Z3);t.push({item:r,estimatedStart:i,estimatedEnd:s,progress:e?.progress??void 0,type:`printing`});let c=J3(r);a.add(c),o.set(c,Math.max(o.get(c)??f,s.getTime()))}else if(r.status===`pending`){if(r.manual_start||r.waiting_reason)continue;let e=J3(r);i.has(e)||i.set(e,[]),i.get(e).push(r)}let s=Date.now()+4320*Z3;for(let[e,n]of i){n.sort((e,t)=>Y3(e,t,r));let i=a.has(e),c=n[0]?rp(n[0].scheduled_time):null,l=c&&c.getTime()<=s;if(!i&&!l)continue;let u=o.get(e)??f;for(let e of n){let n=rp(e.scheduled_time);n&&n.getTime()<=s&&(u=Math.max(u,n.getTime()));let r=(e.print_time_seconds||3600)*1e3;t.push({item:e,estimatedStart:new Date(u),estimatedEnd:new Date(u+r),type:`queued`}),u+=r}}return t},[e,n,f,r]),m=(0,y.useMemo)(()=>{let e=[];for(let n of t)e.push({key:`printer:${n.id}`,label:n.name,printerId:n.id,targetModel:null});let n=new Set,r=!1;for(let t of p)if(t.item.printer_id==null)if(t.item.target_model){let r=`model:${t.item.target_model}`;n.has(r)||(n.add(r),e.push({key:r,label:`${a(`queue.filter.any`)} ${t.item.target_model}`,printerId:null,targetModel:t.item.target_model}))}else r=!0;return r&&e.push({key:`unassigned`,label:a(`queue.filter.unassigned`),printerId:null,targetModel:null}),e},[t,p,a]),h=(0,y.useMemo)(()=>{let e=new Map;for(let t of p){let n;n=t.item.printer_id==null?t.item.target_model?`model:${t.item.target_model}`:`unassigned`:`printer:${t.item.printer_id}`,e.has(n)||e.set(n,[]),e.get(n).push(t)}return e},[p]),g=(0,y.useMemo)(()=>{let e=[];for(let t=0;t<=Q3;t+=2){let n=u+t*Z3;e.push({ms:n,pct:t/Q3*100,label:IUe(new Date(n))})}return e},[u]),_=(f-u)/$3*100,v=_>=0&&_<=100,b=(0,y.useMemo)(()=>{let e=0;for(let t of p)e=Math.max(e,t.estimatedEnd.getTime());return e>0?new Date(e):null},[p]),x=(0,y.useRef)(null);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 mb-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(e=>e-12*Z3),className:`p-1.5`,title:a(`queue.timeline.window.back12h`),children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white min-w-[180px] text-center`,children:[new Date(u).toLocaleString(void 0,{weekday:`short`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}),` → `,new Date(d).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(e=>e+12*Z3),className:`p-1.5`,title:a(`queue.timeline.window.forward12h`),children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),c!==0&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(0),className:`text-xs text-bambu-green`,children:a(`queue.timeline.window.now`)})]}),b&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),a(`queue.timeline.allDoneBy`,{time:b.toLocaleString(void 0,{weekday:`short`,hour:`2-digit`,minute:`2-digit`})})]})]}),m.length>0&&p.length===0&&(0,G.jsx)(`div`,{className:`mb-4 p-3 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark/40 text-xs text-bambu-gray`,children:a(`queue.timeline.nothingCommitted`)}),m.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:a(`queue.timeline.noData`)})]}):(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`w-32 sm:w-40 shrink-0 px-3 py-2 text-xs font-medium text-bambu-gray border-r border-bambu-dark-tertiary`,children:a(`queue.timeline.printerColumnHeader`)}),(0,G.jsx)(`div`,{className:`relative flex-1 h-9`,children:g.map(e=>(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 border-l border-bambu-dark-tertiary/40 text-[10px] sm:text-xs text-bambu-gray pl-1 flex items-center`,style:{left:`${e.pct}%`},children:e.label},e.ms))})]}),(0,G.jsxs)(`div`,{ref:x,className:`relative`,children:[m.map(e=>{let t=h.get(e.key)??[];return(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary/40 last:border-b-0`,children:[(0,G.jsxs)(`div`,{className:`w-32 sm:w-40 shrink-0 px-3 py-3 border-r border-bambu-dark-tertiary flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 shrink-0 ${e.printerId==null&&e.targetModel==null?`text-orange-600 dark:text-orange-400`:e.targetModel?`text-blue-600 dark:text-blue-400`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:e.label})]}),(0,G.jsxs)(`div`,{className:`relative flex-1`,style:{height:56},children:[g.map(e=>(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 border-l border-bambu-dark-tertiary/30`,style:{left:`${e.pct}%`}},e.ms)),(0,G.jsx)(`div`,{className:`absolute inset-0 opacity-30`,style:{backgroundImage:`repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(255,255,255,0.04) 6px, rgba(255,255,255,0.04) 12px)`},"aria-hidden":!0}),t.map(e=>{let t=Math.max(u,e.estimatedStart.getTime()),n=Math.min(d,e.estimatedEnd.getTime());if(n<=u||t>=d)return null;let r=(t-u)/$3*100,a=(n-t)/$3*100,o=e.item.archive_name||e.item.library_file_name||`#${e.item.id}`,s=e.item.archive_thumbnail?Z.getArchiveThumbnail(e.item.archive_id):e.item.library_file_thumbnail?Z.getLibraryFileThumbnailUrl(e.item.library_file_id):null,c=e.type===`printing`,l=e.item.batch_id!=null;return(0,G.jsxs)(`button`,{onClick:()=>i(e.item),title:[o,`${e6(e.estimatedStart)} → ${e6(e.estimatedEnd)}`,e.item.print_time_seconds?lp(e.item.print_time_seconds):null,c&&e.progress!=null?`${Math.round(e.progress)}%`:null,e.item.batch_name?`batch: ${e.item.batch_name}`:null].filter(Boolean).join(` · `),className:`absolute rounded-md transition-all hover:brightness-110 hover:z-10 overflow-hidden flex items-center gap-1.5 px-1.5 text-left ${c?`bg-blue-500/30 border border-blue-400/60`:l?`bg-cyan-500/20 border border-cyan-400/50`:`bg-bambu-green/20 border border-bambu-green/40`}`,style:{left:`${r}%`,width:`max(${PUe}px, ${a}%)`,top:8,height:FUe},children:[s&&(0,G.jsx)(`img`,{src:s,alt:``,className:`w-7 h-7 rounded object-cover shrink-0 bg-bambu-dark`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`text-xs text-white font-medium truncate leading-tight`,children:o}),(0,G.jsxs)(`div`,{className:`text-[10px] text-bambu-gray truncate leading-tight`,children:[e.item.print_time_seconds?lp(e.item.print_time_seconds):``,c&&e.progress!=null?` · ${Math.round(e.progress)}%`:``]})]}),c&&e.progress!=null&&(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 h-0.5 bg-blue-300`,style:{width:`${e.progress}%`},"aria-hidden":!0})]},e.item.id)})]})]},e.key)}),v&&(0,G.jsxs)(`div`,{className:`absolute top-0 bottom-0 pointer-events-none z-20 flex inset-x-0`,children:[(0,G.jsx)(`div`,{className:`w-32 sm:w-40 shrink-0`}),(0,G.jsx)(`div`,{className:`relative flex-1`,children:(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 w-0.5 bg-red-400 shadow-[0_0_8px_rgba(248,113,113,0.6)]`,style:{left:`${_}%`},children:(0,G.jsx)(`div`,{className:`absolute -top-1 -left-1 w-2.5 h-2.5 bg-red-400 rounded-full`})})})]})]})]})]})}function RUe({hasPermission:e,t}){let n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(`active`),[o,s]=(0,y.useState)(null),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=Lf(c?.currency||`USD`),{data:u,isLoading:d}=K({queryKey:[`batches`,i],queryFn:()=>Z.getBatches(i===`all`?void 0:i)}),f=()=>{n.invalidateQueries({queryKey:[`batches`]}),n.invalidateQueries({queryKey:[`queue`]})},p=q({mutationFn:({id:e,plateId:t})=>Z.dispatchBatch(e,t===void 0?{}:{plate_id:t,only_plate:!0}),onSuccess:e=>{f(),r(t(`queue.batchOrders.dispatched`,{name:e.name}),`success`)},onError:e=>r(e.message,`error`)}),m=q({mutationFn:e=>Z.cancelBatch(e),onSuccess:()=>{f(),s(null),r(t(`queue.batchCancelled`),`success`)},onError:e=>r(e.message,`error`)}),h=e(`queue:create`),g=e(`queue:delete_all`);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`h2`,{className:`text-base sm:text-lg font-semibold text-white`,children:t(`queue.batchOrders.title`)}),(0,G.jsx)(`div`,{className:`flex gap-1 ml-auto`,children:[`active`,`completed`,`cancelled`,`all`].map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:`text-xs px-2.5 py-1 rounded-full border transition-colors ${i===e?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-gray`}`,children:t(`queue.batchOrders.filter.${e}`)},e))})]}),d?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:t(`common.loading`)}):u?.length?(0,G.jsx)(`div`,{className:`space-y-4`,children:u.map(e=>(0,G.jsx)(zUe,{batch:e,currency:l,canDispatch:h,canCancel:g,isDispatching:p.isPending&&p.variables?.id===e.id,onDispatch:t=>p.mutate({id:e.id,plateId:t}),onCancel:()=>s(e),t},e.id))}):(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(Cl,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:t(`queue.batchOrders.emptyTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:t(`queue.batchOrders.emptyDescription`)})]}),o&&(0,G.jsx)(of,{title:t(`queue.cancelBatchConfirmTitle`),message:t(`queue.cancelBatchConfirmMessage`),confirmText:t(`queue.cancelBatch`),variant:`warning`,onConfirm:()=>m.mutate(o.id),onCancel:()=>s(null)})]})}var t6={active:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`,completed:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`,cancelled:`bg-bambu-dark-tertiary text-bambu-gray`};function zUe({batch:e,currency:t,canDispatch:n,canCancel:r,isDispatching:i,onDispatch:a,onCancel:o,t:s}){let c=e.has_targets?e.target_count:e.completed_count+e.pending_count+e.printing_count+e.failed_count,l=c>0?Math.round(e.completed_count/c*100):0,u=e.has_targets?e.remaining_count-e.dispatchable_count:0,d=e.due_date?rp(e.due_date):null,f=d!=null&&e.status===`active`&&d.getTime()0&&e.status!==`cancelled`&&n&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>a(),disabled:i,children:[(0,G.jsx)(Ts,{className:`w-4 h-4 mr-1`}),s(`queue.batchOrders.dispatchRemaining`,{count:e.dispatchable_count})]}),e.status===`active`&&r&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:o,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mr-1`}),s(`queue.cancelBatch`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${e.status===`completed`?`bg-bambu-green`:`bg-blue-500`}`,style:{width:`${Math.min(100,l)}%`}})}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap tabular-nums`,children:s(`queue.batchProgress`,{completed:e.completed_count,total:c})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs text-bambu-gray mb-1`,children:[e.printing_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.printing`,{count:e.printing_count})}),e.pending_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batch.pendingCount`,{count:e.pending_count})}),e.failed_count>0&&(0,G.jsxs)(`span`,{className:`text-orange-600 dark:text-orange-400 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),s(`queue.batchOrders.failed`,{count:e.failed_count})]}),e.has_targets&&e.remaining_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.remaining`,{count:e.remaining_count})}),e.print_time_seconds>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.print_time_seconds)]}),e.actual_cost!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Ls,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:s(`queue.batchOrders.costSoFar`,{amount:`${t} ${e.actual_cost.toFixed(2)}`})}),e.estimated_remaining_cost!=null&&e.estimated_remaining_cost>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.costRemaining`,{amount:`${t} ${e.estimated_remaining_cost.toFixed(2)}`})})]})]}),u>0&&e.status!==`cancelled`&&(0,G.jsxs)(`p`,{className:`flex items-start gap-1.5 text-xs text-orange-600 dark:text-orange-400 mb-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:s(`queue.batchOrders.strandedNotice`,{runs:u,owed:e.remaining_count})})]}),e.has_targets&&e.plates.length>0&&(0,G.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3 space-y-1.5`,children:e.plates.map(r=>(0,G.jsx)(BUe,{plate:r,batchStatus:e.status,currency:t,canDispatch:n,isDispatching:i,onDispatch:()=>a(r.plate_id),t:s},`${r.plate_id??`file`}`))})]})}function BUe({plate:e,batchStatus:t,currency:n,canDispatch:r,isDispatching:i,onDispatch:a,t:o}){let s=e.plate_name||(e.plate_id==null?o(`queue.batchOrders.wholeFile`):o(`queue.plateNumber`,{index:e.plate_id}));return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs`,children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white min-w-0 truncate`,children:s}),(0,G.jsx)(`span`,{className:`text-bambu-gray tabular-nums`,children:o(`queue.batchOrders.plateProgress`,{completed:e.completed_count,target:e.quantity_target})}),e.failed_count>0&&(0,G.jsx)(`span`,{className:`text-orange-600 dark:text-orange-400`,children:o(`queue.batchOrders.failed`,{count:e.failed_count})}),e.actual_cost!=null&&(0,G.jsx)(`span`,{className:`text-bambu-gray tabular-nums`,children:`${n} ${e.actual_cost.toFixed(2)}`}),e.remaining>0&&t!==`cancelled`&&(0,G.jsxs)(`span`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`queue.batchOrders.remaining`,{count:e.remaining})}),e.can_dispatch?r&&(0,G.jsx)(`button`,{type:`button`,onClick:a,disabled:i,className:`text-bambu-green hover:underline disabled:opacity-50`,children:o(`queue.batchOrders.dispatchPlate`)}):(0,G.jsx)(`span`,{className:`text-orange-600 dark:text-orange-400`,children:o(`queue.batchOrders.strandedPlate`)})]})]})}function n6(e,t=!1){return t&&e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}function VUe({status:e,waitingReason:t,printerState:n,t:r}){if(e===`pending`&&t)return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border text-purple-700 dark:text-purple-400 bg-purple-50 dark:bg-purple-400/10 border-purple-200 dark:border-purple-400/20`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),r(`queue.status.waiting`)]});if(e===`printing`&&n===`PAUSE`)return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-400/10 border-yellow-200 dark:border-yellow-400/20`,children:[(0,G.jsx)(Dl,{className:`w-3.5 h-3.5`}),r(`queue.status.paused`)]});let{icon:i,color:a,label:o}={pending:{icon:js,color:`text-status-warning bg-status-warning/10 border-status-warning/20`,label:r(`queue.status.pending`)},printing:{icon:Nl,color:`text-blue-700 dark:text-blue-400 bg-blue-50 dark:bg-blue-400/10 border-blue-200 dark:border-blue-400/20`,label:r(`queue.status.printing`)},completed:{icon:xs,color:`text-status-ok bg-status-ok/10 border-status-ok/20`,label:r(`queue.status.completed`)},failed:{icon:Ds,color:`text-status-error bg-status-error/10 border-status-error/20`,label:r(`queue.status.failed`)},skipped:{icon:du,color:`text-orange-700 dark:text-orange-400 bg-orange-50 dark:bg-orange-400/10 border-orange-200 dark:border-orange-400/20`,label:r(`queue.status.skipped`)},cancelled:{icon:nd,color:`text-gray-400 bg-gray-400/10 border-gray-400/20`,label:r(`queue.status.cancelled`)}}[e];return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${a}`,children:[(0,G.jsx)(i,{className:`w-3.5 h-3.5`}),o]})}function HUe({selectedCount:e,printers:t,onSave:n,onClose:r,isSaving:i,canControlPrinter:a,t:o}){let[s,c]=(0,y.useState)(`unchanged`),[l,u]=(0,y.useState)(`unchanged`),[d,f]=(0,y.useState)(`unchanged`),[p,m]=(0,y.useState)(`unchanged`),[h,g]=(0,y.useState)(`unchanged`),[_,v]=(0,y.useState)(`unchanged`),[b,x]=(0,y.useState)(`unchanged`),[S,C]=(0,y.useState)(`unchanged`),[w,T]=(0,y.useState)(`unchanged`),[E,D]=(0,y.useState)(`unchanged`),[O,k]=(0,y.useState)(`unchanged`),A=t.some(e=>e.nozzle_count===2),j=()=>{let e={};s!==`unchanged`&&(e.printer_id=s),l!==`unchanged`&&(e.manual_start=l),d!==`unchanged`&&(e.auto_off_after=d),p!==`unchanged`&&(e.require_previous_success=p),h!==`unchanged`&&(e.bed_levelling=h),_!==`unchanged`&&(e.flow_cali=_),b!==`unchanged`&&(e.vibration_cali=b),S!==`unchanged`&&(e.layer_inspect=S),w!==`unchanged`&&(e.timelapse=w),E!==`unchanged`&&(e.use_ams=E),O!==`unchanged`&&(e.nozzle_offset_cali=O),n(e)},M=s!==`unchanged`||l!==`unchanged`||d!==`unchanged`||p!==`unchanged`||h!==`unchanged`||_!==`unchanged`||b!==`unchanged`||S!==`unchanged`||w!==`unchanged`||E!==`unchanged`||O!==`unchanged`;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:o(`queue.bulkEdit.title`,{count:e})}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:o(`queue.bulkEdit.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.printer`)}),(0,G.jsxs)(`select`,{value:s===null?`null`:s===`unchanged`?`unchanged`:String(s),onChange:e=>{let t=e.target.value;c(t===`unchanged`?`unchanged`:t===`null`?null:Number(t))},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`unchanged`,children:o(`queue.bulkEdit.noChange`)}),(0,G.jsx)(`option`,{value:`null`,children:o(`queue.filter.unassigned`)}),t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.queueOptions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(r6,{label:o(`queue.bulkEdit.staged`),value:l,onChange:u,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.autoPowerOff`),value:d,onChange:f,disabled:!a,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.requirePrevious`),value:p,onChange:m,t:o})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.printOptions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(i6,{label:o(`queue.bulkEdit.bedLevelling`),value:h,onChange:g,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.flowCalibration`),value:_,onChange:v,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.vibrationCalibration`),value:b,onChange:x,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.layerInspection`),value:S,onChange:C,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.timelapse`),value:w,onChange:T,t:o}),(0,G.jsx)(r6,{label:o(`queue.bulkEdit.useAms`),value:E,onChange:D,t:o}),A&&(0,G.jsx)(i6,{label:o(`queue.bulkEdit.nozzleOffsetCali`),value:O,onChange:k,t:o})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:r,children:o(`common.cancel`)}),(0,G.jsx)(Q,{onClick:j,disabled:!M||i,children:o(i?`common.saving`:`queue.bulkEdit.applyChanges`)})]})]})})}function r6({label:e,value:t,onChange:n,disabled:r,t:i}){return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1 ${r?`opacity-50`:``}`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 bg-bambu-dark rounded-lg p-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>n(`unchanged`),disabled:r,className:`px-2 py-1 text-xs rounded ${t===`unchanged`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:`—`}),(0,G.jsx)(`button`,{onClick:()=>n(!1),disabled:r,className:`px-2 py-1 text-xs rounded ${t===!1?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:i(`common.off`)}),(0,G.jsx)(`button`,{onClick:()=>n(!0),disabled:r,className:`px-2 py-1 text-xs rounded ${t===!0?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:i(`common.on`)})]})]})}function i6({label:e,value:t,onChange:n,t:r}){let i=[{key:`unchanged`,label:`—`,active:`bg-bambu-dark-tertiary text-white`},{key:`off`,label:r(`settings.calibrationMode_off`),active:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`},{key:`auto`,label:r(`settings.calibrationMode_auto`),active:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`},{key:`on`,label:r(`settings.calibrationMode_on`),active:`bg-bambu-green/20 text-bambu-green`}];return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 bg-bambu-dark rounded-lg p-0.5`,children:i.map(({key:e,label:r,active:i})=>(0,G.jsx)(`button`,{onClick:()=>n(e),className:`px-2 py-1 text-xs rounded ${t===e?i:`text-bambu-gray hover:text-white`}`,children:r},e))})]})}function a6({item:e,position:t,onEdit:n,onCancel:r,onRemove:i,onStop:a,onRequeue:o,onStart:s,onMoveUp:c,onMoveDown:l,timeFormat:u=`system`,isSelected:d=!1,onToggleSelect:f,hasPermission:p,canModify:m,printerState:h,showEta:g=!1,etaNow:_,t:v}){let{data:y}=K({queryKey:[`printerStatus`,e.printer_id],queryFn:()=>Z.getPrinterStatus(e.printer_id),refetchInterval:3e4,enabled:e.printer_id!=null&&h===`printing`}),b=!!e.library_file_id&&!e.archive_id,{data:x}=K({queryKey:[`archive-plates`,e.archive_id],queryFn:()=>Z.getArchivePlates(e.archive_id),enabled:!!e.archive_id&&!b&&!e.archive_deleted}),{data:S}=K({queryKey:[`library-file-plates`,e.library_file_id],queryFn:()=>Z.getLibraryFilePlates(e.library_file_id),enabled:b&&!!e.library_file_id}),C=b?S:x,w=C?.plates??[],T=p(`queue:reorder`),{attributes:E,listeners:D,setNodeRef:O,transform:k,transition:A,isDragging:j}=B3({id:e.id,disabled:e.status!==`pending`||!T}),M={transform:v4.Transform.toString(k),transition:A},N=e.status===`printing`,P=e.status===`pending`,F=[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status),I=P&&g&&e.print_time_seconds!=null&&e.print_time_seconds>0?cp(e.print_time_seconds/60,u,v,_):null,L=P&&f;return(0,G.jsxs)(`div`,{ref:O,style:M,className:` + `},XVe={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function ZVe(e){let{announcements:t=XVe,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=YVe}=e,{announce:a,announcement:o}=KVe(),s=p4(`DndLiveRegion`),[c,l]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{l(!0)},[]),qVe((0,y.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=y.createElement(y.Fragment,null,y.createElement(WVe,{id:r,value:i.draggable}),y.createElement(GVe,{id:s,announcement:o}));return n?(0,At.createPortal)(u,n):u}var S4;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(S4||={});function C4(){}function w4(e,t){return(0,y.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function T4(){var e=[...arguments];return(0,y.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var E4=Object.freeze({x:0,y:0});function D4(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function QVe(e,t){let n=v4(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function O4(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function $Ve(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function k4(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function A4(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function j4(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var M4=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=j4(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=D4(j4(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(O4)},eHe=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=k4(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=k4(r),o=i.reduce((e,t,r)=>e+D4(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(O4)};function tHe(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=tHe(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort($Ve)};function rHe(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function N4(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:E4}function iHe(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var aHe=iHe(1);function P4(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function oHe(e,t,n){let r=P4(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var sHe={ignoreTransform:!1};function F4(e,t){t===void 0&&(t=sHe);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=t4(e).getComputedStyle(e);t&&(n=oHe(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function I4(e){return F4(e,{ignoreTransform:!0})}function cHe(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function lHe(e,t){return t===void 0&&(t=t4(e).getComputedStyle(e)),t.position===`fixed`}function uHe(e,t){t===void 0&&(t=t4(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function L4(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(n4(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!r4(i)||i4(i)||n.includes(i))return n;let a=t4(e).getComputedStyle(i);return i!==e&&uHe(i,a)&&n.push(i),lHe(i,a)?n:r(i.parentNode)}return e?r(e):n}function R4(e){let[t]=L4(e,1);return t??null}function z4(e){return!Q2||!e?null:$2(e)?e:e4(e)?n4(e)||e===a4(e).scrollingElement?window:r4(e)?e:null:null}function B4(e){return $2(e)?e.scrollX:e.scrollLeft}function V4(e){return $2(e)?e.scrollY:e.scrollTop}function H4(e){return{x:B4(e),y:V4(e)}}var U4;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(U4||={});function W4(e){return!Q2||!e?!1:e===document.scrollingElement}function G4(e){let t={x:0,y:0},n=W4(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var dHe={x:.2,y:.2};function fHe(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=dHe);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=G4(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=U4.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=U4.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=U4.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=U4.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function pHe(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function K4(e){return e.reduce((e,t)=>h4(e,H4(t)),E4)}function mHe(e){return e.reduce((e,t)=>e+B4(t),0)}function hHe(e){return e.reduce((e,t)=>e+V4(t),0)}function q4(e,t){if(t===void 0&&(t=F4),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);R4(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var gHe=[[`x`,[`left`,`right`],mHe],[`y`,[`top`,`bottom`],hHe]],J4=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=L4(t),r=K4(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of gHe)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Y4=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function _He(e){let{EventTarget:t}=t4(e);return e instanceof t?e:a4(e)}function X4(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var Z4;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Z4||={});function Q4(e){e.preventDefault()}function vHe(e){e.stopPropagation()}var $4;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($4||={});var e3={start:[$4.Space,$4.Enter],cancel:[$4.Esc],end:[$4.Space,$4.Enter,$4.Tab]},yHe=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $4.Right:return{...n,x:n.x+25};case $4.Left:return{...n,x:n.x-25};case $4.Down:return{...n,y:n.y+25};case $4.Up:return{...n,y:n.y-25}}},t3=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Y4(a4(t)),this.windowListeners=new Y4(t4(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Z4.Resize,this.handleCancel),this.windowListeners.add(Z4.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Z4.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&q4(n),t(E4)}handleKeyDown(e){if(_4(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=e3,coordinateGetter:a=yHe,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:E4;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=g4(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=G4(n),p=pHe(n),m={x:Math.min(i===$4.Right?p.right-p.width/2:p.right,Math.max(i===$4.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$4.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$4.Down?p.top:p.top+p.height/2,u.y))},h=i===$4.Right&&!s||i===$4.Left&&!c,g=i===$4.Down&&!l||i===$4.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$4.Right&&e<=d.x||i===$4.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===$4.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$4.Down&&e<=d.y||i===$4.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===$4.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,h4(g4(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};t3.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=e3,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function n3(e){return!!(e&&`distance`in e)}function r3(e){return!!(e&&`delay`in e)}var i3=class{constructor(e,t,n){n===void 0&&(n=_He(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=a4(i),this.documentListeners=new Y4(this.document),this.listeners=new Y4(n),this.windowListeners=new Y4(t4(i)),this.initialCoordinates=v4(r)??E4,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Z4.Resize,this.handleCancel),this.windowListeners.add(Z4.DragStart,Q4),this.windowListeners.add(Z4.VisibilityChange,this.handleCancel),this.windowListeners.add(Z4.ContextMenu,Q4),this.documentListeners.add(Z4.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(r3(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(n3(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Z4.Click,vHe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Z4.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=v4(e)??E4,s=g4(n,o);if(!t&&a){if(n3(a)){if(a.tolerance!=null&&X4(s,a.tolerance))return this.handleCancel();if(X4(s,a.distance))return this.handleStart()}if(r3(a)&&X4(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$4.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},bHe={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},a3=class extends i3{constructor(e){let{event:t}=e,n=a4(t.target);super(e,bHe,n)}};a3.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var xHe={move:{name:`mousemove`},end:{name:`mouseup`}},o3;(function(e){e[e.RightClick=2]=`RightClick`})(o3||={});var SHe=class extends i3{constructor(e){super(e,xHe,a4(e.event.target))}};SHe.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===o3.RightClick?!1:(r?.({event:n}),!0)}}];var s3={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},CHe=class extends i3{constructor(e){super(e,s3)}static setup(){return window.addEventListener(s3.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(s3.move.name,e)};function e(){}}};CHe.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var c3;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(c3||={});var l3;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(l3||={});function wHe(e){let{acceleration:t,activator:n=c3.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=l3.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=EHe({delta:d,disabled:!a}),[m,h]=zVe(),g=(0,y.useRef)({x:0,y:0}),_=(0,y.useRef)({x:0,y:0}),v=(0,y.useMemo)(()=>{switch(n){case c3.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case c3.DraggableRect:return i}},[n,i,c]),b=(0,y.useRef)(null),x=(0,y.useCallback)(()=>{let e=b.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),S=(0,y.useMemo)(()=>s===l3.TreeOrder?[...l].reverse():l,[s,l]);(0,y.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of S){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=fHe(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),b.current=e,m(x,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,x,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,S,u,JSON.stringify(f)])}var THe={x:{[U4.Backward]:!1,[U4.Forward]:!1},y:{[U4.Backward]:!1,[U4.Forward]:!1}};function EHe(e){let{delta:t,disabled:n}=e,r=d4(t);return l4(e=>{if(n||!r||!e)return THe;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[U4.Backward]:e.x[U4.Backward]||i.x===-1,[U4.Forward]:e.x[U4.Forward]||i.x===1},y:{[U4.Backward]:e.y[U4.Backward]||i.y===-1,[U4.Forward]:e.y[U4.Forward]||i.y===1}}},[n,t,r])}function DHe(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return l4(e=>t==null?null:r??e??null,[r,t])}function OHe(e,t){return(0,y.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var u3;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(u3||={});var d3;(function(e){e.Optimized=`optimized`})(d3||={});var f3=new Map;function kHe(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,y.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,y.useRef)(e),d=g(),f=c4(d),p=(0,y.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,y.useRef)(null),h=l4(t=>{if(d&&!n)return f3;if(!t||t===f3||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new J4(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,y.useEffect)(()=>{u.current=e},[e]),(0,y.useEffect)(()=>{d||p()},[n,d]),(0,y.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,y.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case u3.Always:return!1;case u3.BeforeDragging:return n;default:return!n}}}function p3(e,t){return l4(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function AHe(e,t){return p3(e,t)}function jHe(e){let{callback:t,disabled:n}=e,r=s4(t),i=(0,y.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,y.useEffect)(()=>()=>i?.disconnect(),[i]),i}function m3(e){let{callback:t,disabled:n}=e,r=s4(t),i=(0,y.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,y.useEffect)(()=>()=>i?.disconnect(),[i]),i}function MHe(e){return new J4(F4(e),e)}function h3(e,t,n){t===void 0&&(t=MHe);let[r,i]=(0,y.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=jHe({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=m3({callback:a});return o4(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function NHe(e){return N4(e,p3(e))}var g3=[];function PHe(e){let t=(0,y.useRef)(e),n=l4(n=>e?n&&n!==g3&&e&&t.current&&e.parentNode===t.current.parentNode?n:L4(e):g3,[e]);return(0,y.useEffect)(()=>{t.current=e},[e]),n}function FHe(e){let[t,n]=(0,y.useState)(null),r=(0,y.useRef)(e),i=(0,y.useCallback)(e=>{let t=z4(e.target);t&&n(e=>e?(e.set(t,H4(t)),new Map(e)):null)},[]);return(0,y.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=z4(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,H4(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{z4(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,y.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>h4(e,t),E4):K4(e):E4,[e,t])}function _3(e,t){t===void 0&&(t=[]);let n=(0,y.useRef)(null);return(0,y.useEffect)(()=>{n.current=null},t),(0,y.useEffect)(()=>{let t=e!==E4;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?g4(e,n.current):E4}function IHe(e){(0,y.useEffect)(()=>{if(!Q2)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function LHe(e,t){return(0,y.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function v3(e){return(0,y.useMemo)(()=>e?cHe(e):null,[e])}var y3=[];function RHe(e,t){t===void 0&&(t=F4);let[n]=e,r=v3(n?t4(n):null),[i,a]=(0,y.useState)(y3);function o(){a(()=>e.length?e.map(e=>W4(e)?r:new J4(t(e),e)):y3)}let s=m3({callback:o});return o4(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function b3(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return r4(t)?t:e}function zHe(e){let{measure:t}=e,[n,r]=(0,y.useState)(null),i=m3({callback:(0,y.useCallback)(e=>{for(let{target:n}of e)if(r4(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=u4((0,y.useCallback)(e=>{let n=b3(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,y.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var BHe=[{sensor:a3,options:{}},{sensor:t3,options:{}}],VHe={current:{}},x3={draggable:{measure:I4},droppable:{measure:I4,strategy:u3.WhileDragging,frequency:d3.Optimized},dragOverlay:{measure:F4}},S3=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},HHe={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new S3,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:C4},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:x3,measureDroppableContainers:C4,windowRect:null,measuringScheduled:!1},C3={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:C4,draggableNodes:new Map,over:null,measureDroppableContainers:C4},w3=(0,y.createContext)(C3),T3=(0,y.createContext)(HHe);function UHe(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new S3}}}function WHe(e,t){switch(t.type){case S4.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case S4.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case S4.DragEnd:case S4.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case S4.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new S3(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case S4.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new S3(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case S4.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new S3(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function GHe(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,y.useContext)(w3),a=d4(r),o=d4(n?.id);return(0,y.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!_4(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=HVe(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function E3(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function KHe(e){return(0,y.useMemo)(()=>({draggable:{...x3.draggable,...e?.draggable},droppable:{...x3.droppable,...e?.droppable},dragOverlay:{...x3.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function qHe(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,y.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;o4(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=N4(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=R4(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var D3=(0,y.createContext)({...E4,scaleX:1,scaleY:1}),O3;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(O3||={});var k3=(0,y.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=BHe,collisionDetection:o=nHe,measuring:s,modifiers:c,...l}=e,[u,d]=(0,y.useReducer)(WHe,void 0,UHe),[f,p]=JVe(),[m,h]=(0,y.useState)(O3.Uninitialized),g=m===O3.Initialized,{draggable:{active:_,nodes:v,translate:b},droppable:{containers:x}}=u,S=_==null?null:v.get(_),C=(0,y.useRef)({initial:null,translated:null}),w=(0,y.useMemo)(()=>_==null?null:{id:_,data:S?.data??VHe,rect:C},[_,S]),T=(0,y.useRef)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),A=c4(l,Object.values(l)),j=p4(`DndDescribedBy`,t),M=(0,y.useMemo)(()=>x.getEnabled(),[x]),N=KHe(s),{droppableRects:P,measureDroppableContainers:F,measuringScheduled:I}=kHe(M,{dragging:g,dependencies:[b.x,b.y],config:N.droppable}),L=DHe(v,_),R=(0,y.useMemo)(()=>O?v4(O):null,[O]),z=De(),B=AHe(L,N.draggable.measure);qHe({activeNode:_==null?null:v.get(_),config:z.layoutShiftCompensation,initialRect:B,measure:N.draggable.measure});let V=h3(L,N.draggable.measure,B),ee=h3(L?L.parentElement:null),te=(0,y.useRef)({activatorEvent:null,active:null,activeNode:L,collisionRect:null,collisions:null,droppableRects:P,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:x,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=x.getNodeFor(te.current.over?.id),re=zHe({measure:N.dragOverlay.measure}),ie=re.nodeRef.current??L,ae=g?re.rect??V:null,oe=!!(re.nodeRef.current&&re.rect),se=NHe(oe?null:V),H=v3(ie?t4(ie):null),ce=PHe(g?ne??L:null),le=RHe(ce),ue=E3(c,{transform:{x:b.x-se.x,y:b.y-se.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:V,containerNodeRect:ee,draggingNodeRect:ae,over:te.current.over,overlayNodeRect:re.rect,scrollableAncestors:ce,scrollableAncestorRects:le,windowRect:H}),de=R?h4(R,b):null,fe=FHe(ce),pe=_3(fe),me=_3(fe,[V]),he=h4(ue,pe),ge=ae?aHe(ae,ue):null,_e=w&&ge?o({active:w,collisionRect:ge,droppableRects:P,droppableContainers:M,pointerCoordinates:de}):null,ve=A4(_e,`id`),[ye,be]=(0,y.useState)(null),xe=rHe(oe?ue:h4(ue,me),ye?.rect??null,V),Se=(0,y.useRef)(null),Ce=(0,y.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent;Se.current=new n({active:T.current,activeNode:i,event:a,options:r,context:te,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:C}};(0,At.unstable_batchedUpdates)(()=>{r?.(i),h(O3.Initializing),d({type:S4.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(Se.current),k(a)})},onMove(e){d({type:S4.DragMove,coordinates:e})},onEnd:o(S4.DragEnd),onCancel:o(S4.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=te.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===S4.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=S4.DragCancel)}T.current=null,(0,At.unstable_batchedUpdates)(()=>{d({type:e}),h(O3.Uninitialized),be(null),D(null),k(null),Se.current=null;let t=e===S4.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),we=OHe(a,(0,y.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Ce(n,t))},[v,Ce]));IHe(a),o4(()=>{V&&m===O3.Initializing&&h(O3.Initialized)},[V,m]),(0,y.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=te.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:he.x,y:he.y},over:i};(0,At.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[he.x,he.y]),(0,y.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=te.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(ve),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,At.unstable_batchedUpdates)(()=>{be(s),a?.(c),f({type:`onDragOver`,event:c})})},[ve]),o4(()=>{te.current={activatorEvent:O,active:w,activeNode:L,collisionRect:ge,collisions:_e,droppableRects:P,draggableNodes:v,draggingNode:ie,draggingNodeRect:ae,droppableContainers:x,over:ye,scrollableAncestors:ce,scrollAdjustedTranslate:he},C.current={initial:ae,translated:ge}},[w,L,_e,ge,v,ie,ae,P,x,ye,ce,he]),wHe({...z,delta:b,draggingRect:ge,pointerCoordinates:de,scrollableAncestors:ce,scrollableAncestorRects:le});let Te=(0,y.useMemo)(()=>({active:w,activeNode:L,activeNodeRect:V,activatorEvent:O,collisions:_e,containerNodeRect:ee,dragOverlay:re,draggableNodes:v,droppableContainers:x,droppableRects:P,over:ye,measureDroppableContainers:F,scrollableAncestors:ce,scrollableAncestorRects:le,measuringConfiguration:N,measuringScheduled:I,windowRect:H}),[w,L,V,O,_e,ee,re,v,x,P,ye,F,ce,le,N,I,H]),Ee=(0,y.useMemo)(()=>({activatorEvent:O,activators:we,active:w,activeNodeRect:V,ariaDescribedById:{draggable:j},dispatch:d,draggableNodes:v,over:ye,measureDroppableContainers:F}),[O,we,w,V,d,j,v,ye,F]);return y.createElement(x4.Provider,{value:p},y.createElement(w3.Provider,{value:Ee},y.createElement(T3.Provider,{value:Te},y.createElement(D3.Provider,{value:xe},i)),y.createElement(GHe,{disabled:n?.restoreFocus===!1})),y.createElement(ZVe,{...n,hiddenTextDescribedById:j}));function De(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),JHe=(0,y.createContext)(null),A3=`button`,YHe=`Draggable`;function XHe(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=p4(YHe),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,y.useContext)(w3),{role:p=A3,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,y.useContext)(g?D3:JHe),[v,b]=u4(),[x,S]=u4(),C=LHe(o,t),w=c4(n);return o4(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:x,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,y.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===A3?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:C,node:v,over:f,setNodeRef:b,setActivatorNodeRef:S,transform:_}}function j3(){return(0,y.useContext)(T3)}var ZHe=`Droppable`,QHe={timeout:25};function $He(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=p4(ZHe),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,y.useContext)(w3),u=(0,y.useRef)({disabled:n}),d=(0,y.useRef)(!1),f=(0,y.useRef)(null),p=(0,y.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...QHe,...i},_=c4(h??r),v=m3({callback:(0,y.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[b,x]=u4((0,y.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),S=c4(t);return(0,y.useEffect)(()=>{!v||!b.current||(v.disconnect(),d.current=!1,v.observe(b.current))},[b,v]),(0,y.useEffect)(()=>(s({type:S4.RegisterDroppable,element:{id:r,key:a,disabled:n,node:b,rect:f,data:S}}),()=>s({type:S4.UnregisterDroppable,key:a,id:r})),[r]),(0,y.useEffect)(()=>{n!==u.current.disabled&&(s({type:S4.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:b,over:c,setNodeRef:x}}function eUe(e){let{animation:t,children:n}=e,[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null),s=d4(n);return!n&&!r&&s&&i(s),o4(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),y.createElement(y.Fragment,null,n,r?(0,y.cloneElement)(r,{ref:o}):null)}var tUe={x:0,y:0,scaleX:1,scaleY:1};function nUe(e){let{children:t}=e;return y.createElement(w3.Provider,{value:C3},y.createElement(D3.Provider,{value:tUe},t))}var rUe={position:`fixed`,touchAction:`none`},iUe=e=>_4(e)?`transform 250ms ease`:void 0,aUe=(0,y.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=iUe}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...rUe,width:s.width,height:s.height,top:s.top,left:s.left,transform:y4.Transform.toString(d),transformOrigin:i&&r?QVe(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return y.createElement(n,{className:o,style:f,ref:t},a)}),oUe={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:y4.Transform.toString(t)},{transform:y4.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function sUe(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return s4((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=b3(a);if(!c)return;let{transform:l}=t4(a).getComputedStyle(a),u=P4(l);if(!u)return;let d=typeof t==`function`?t:cUe(t);return q4(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function cUe(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...oUe,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var M3=0;function lUe(e){return(0,y.useMemo)(()=>{if(e!=null)return M3++,M3},[e])}var uUe=y.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:b,scrollableAncestorRects:x,windowRect:S}=j3(),C=(0,y.useContext)(D3),w=lUe(d?.id),T=E3(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:b,scrollableAncestorRects:x,transform:C,windowRect:S}),E=p3(f),D=sUe({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),O=E?g.setRef:void 0;return y.createElement(nUe,null,y.createElement(eUe,{animation:D},d&&w?y.createElement(aUe,{key:w,id:d.id,ref:O,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:E,style:{zIndex:l,...i},transform:T},n):null))});function N3(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function dUe(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function P3(e){return e!==null&&e>=0}function fUe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=N3(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},I3={scaleX:1,scaleY:1},mUe=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:tt&&r<=a?{x:0,y:-o.height-s,...I3}:r=a?{x:0,y:o.height+s,...I3}:{x:0,y:0,...I3}};function hUe(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?nr.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,y.useRef)(p),v=!fUe(p,_.current),b=g!==-1&&h===-1||v,x=pUe(a);o4(()=>{v&&m&&u(p)},[v,p,m,u]),(0,y.useEffect)(()=>{_.current=p},[p]);let S=(0,y.useMemo)(()=>({activeIndex:h,containerId:d,disabled:x,disableTransforms:b,items:p,overIndex:g,useDragOverlay:f,sortedRects:dUe(p,c),strategy:i}),[h,d,x.draggable,x.droppable,b,p,g,c,f,i]);return y.createElement(R3.Provider,{value:S},t)}var gUe=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return N3(n,r,i).indexOf(t)},_Ue=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},vUe={duration:200,easing:`ease`},B3=`transform`,yUe=y4.Transition.toString({property:B3,duration:0,easing:`linear`}),bUe={roleDescription:`sortable`};function xUe(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,y.useState)(null),s=(0,y.useRef)(n);return o4(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=F4(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,y.useEffect)(()=>{a&&o(null)},[a]),a}function V3(e){let{animateLayoutChanges:t=_Ue,attributes:n,disabled:r,data:i,getNewIndex:a=gUe,id:o,strategy:s,resizeObserverConfig:c,transition:l=vUe}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,y.useContext)(R3),b=SUe(r,p),x=u.indexOf(o),S=(0,y.useMemo)(()=>({sortable:{containerId:d,index:x,items:u},...i}),[d,i,x,u]),C=(0,y.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=$He({id:o,data:S,disabled:b.droppable,resizeObserverConfig:{updateMeasurementsFor:C,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:P,over:F,setActivatorNodeRef:I,transform:L}=XHe({id:o,data:S,attributes:{...bUe,...n},disabled:b.draggable}),R=RVe(D,M),z=!!O,B=z&&!m&&P3(f)&&P3(g),V=!_&&P,ee=B?(V&&B?L:null)??(s??v)({rects:h,activeNodeRect:A,activeIndex:f,overIndex:g,index:x}):null,te=P3(f)&&P3(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):x,ne=O?.id,re=(0,y.useRef)({activeId:ne,items:u,newIndex:te,containerId:d}),ie=u!==re.current.items,ae=t({active:O,containerId:d,isDragging:P,isSorting:z,id:o,index:x,items:u,newIndex:re.current.newIndex,previousItems:re.current.items,previousContainerId:re.current.containerId,transition:l,wasDragging:re.current.activeId!=null}),oe=xUe({disabled:!ae,index:x,node:T,rect:w});return(0,y.useEffect)(()=>{z&&re.current.newIndex!==te&&(re.current.newIndex=te),d!==re.current.containerId&&(re.current.containerId=d),u!==re.current.items&&(re.current.items=u)},[z,te,d,u]),(0,y.useEffect)(()=>{if(ne===re.current.activeId)return;if(ne!=null&&re.current.activeId==null){re.current.activeId=ne;return}let e=setTimeout(()=>{re.current.activeId=ne},50);return()=>clearTimeout(e)},[ne]),{active:O,activeIndex:f,attributes:j,data:S,rect:w,index:x,newIndex:te,items:u,isOver:E,isSorting:z,isDragging:P,listeners:N,node:T,overIndex:g,over:F,setNodeRef:R,setActivatorNodeRef:I,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:oe??ee,transition:se()};function se(){if(oe||ie&&re.current.newIndex===x)return yUe;if(!(V&&!_4(k)||!l)&&(z||ae))return y4.Transition.toString({...l,property:B3})}}function SUe(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function H3(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var CUe=[$4.Down,$4.Right,$4.Up,$4.Left],U3=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(CUe.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case $4.Down:r.topa.top&&t.push(n);break;case $4.Left:r.left>a.left&&t.push(n);break;case $4.Right:r.left1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=L4(c).some((e,t)=>s[t]!==e),i=W3(e,t),a=wUe(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:g4(u,l)}}}};function W3(e,t){return!H3(e)||!H3(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function wUe(e,t){return!H3(e)||!H3(t)||!W3(e,t)?!1:e.data.current.sortable.indexZ.listSlicerPipelines()}),{data:g}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),_=(g??[]).reduce((e,t)=>(e[t.id]=t,e),{}),v=s.startsWith(`p:`)?parseInt(s.slice(2),10):void 0,b=s.startsWith(`c:`)?s.slice(2):void 0,{data:x,isLoading:S}=K({queryKey:[`pipeline-runs-all`,r,a,l,s],queryFn:()=>Z.listAllPipelineRuns({limit:G3,offset:l,pipelineId:a??void 0,status:r||void 0,targetPrinterId:v,targetModelClass:b}),refetchInterval:15e3}),C=q({mutationFn:e=>Z.cancelPipelineRun(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),n(e(`pipelineRuns.toast.cancelled`,`Run cancelled`),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.cancelFailed`,`Cancel failed`),`error`)}),w=q({mutationFn:e=>Z.retryFailedPipelineRun(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),n(e(`pipelineRuns.toast.retryStarted`,`Retry started`),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.retryFailed`,`Retry failed`),`error`)}),T=q({mutationFn:()=>Z.clearTerminalPipelineRuns(),onSuccess:r=>{t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),m(!1),u(0),n(e(`pipelineRuns.toast.cleared`,`{{n}} runs cleared`,{n:r.deleted}),`success`)},onError:t=>n(t.message||e(`pipelineRuns.toast.clearFailed`,`Clear failed`),`error`)}),E=x?.runs??[],D=x?.total??0,O=(h?.pipelines??[]).reduce((e,t)=>(e[t.id]=t,e),{}),k=e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},A=!!(r||a!==null||s),j=(()=>{let e=new Set,t=new Set;for(let n of h?.pipelines??[])n.target_kind===`printer_class`&&n.target_model_class?t.add(n.target_model_class):n.target_printer_id&&e.add(n.target_printer_id);return{printers:(g??[]).filter(t=>e.has(t.id)),classes:Array.from(t).sort()}})();return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4 text-sm`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>t.invalidateQueries({queryKey:[`pipeline-runs-all`]}),"aria-label":e(`common.refresh`,`Refresh`),title:e(`common.refresh`,`Refresh`),className:`p-1.5 text-bambu-gray hover:text-white border border-bambu-dark-tertiary rounded`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(K3,{icon:(0,G.jsx)(ed,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.pipeline`,`Pipeline`),value:a===null?``:String(a),onChange:e=>{u(0),o(e?parseInt(e,10):null)},options:[{value:``,label:e(`pipelineRuns.filter.allPipelines`,`All pipelines`)},...(h?.pipelines??[]).map(e=>({value:String(e.id),label:e.name}))]}),(0,G.jsx)(K3,{icon:(0,G.jsx)(wc,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.status`,`Status`),value:r,onChange:e=>{u(0),i(e)},options:TUe.map(t=>({value:t,label:t===``?e(`pipelineRuns.filter.allStatus`,`All statuses`):e(`settings.pipelines.runs.status.${t}`,t)}))}),(j.printers.length>0||j.classes.length>0)&&(0,G.jsx)(K3,{icon:(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 text-bambu-gray`}),ariaLabel:e(`pipelineRuns.filter.target`,`Target`),value:s,onChange:e=>{u(0),c(e)},options:[{value:``,label:e(`pipelineRuns.filter.allTargets`,`All targets`)},...j.printers.map(t=>({value:`p:${t.id}`,label:t.name,group:e(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)})),...j.classes.map(t=>({value:`c:${t}`,label:e(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:t}),group:e(`settings.pipelines.field.targetKindClass`,`Printer class`)}))]}),A&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{i(``),o(null),c(``),u(0)},className:`text-xs text-bambu-gray hover:text-white`,children:e(`pipelineRuns.filter.clear`,`Clear filters`)}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2 text-xs text-bambu-gray`,children:[!S&&D>0&&(0,G.jsx)(`span`,{children:e(`pipelineRuns.totalCount`,`{{n}} run`,{n:D,count:D})}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>m(!0),disabled:D===0,className:`flex items-center gap-1 px-2 py-1 text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-500/10 rounded disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,G.jsx)(Pu,{className:`w-3 h-3`}),e(`pipelineRuns.clearLog`,`Clear log`)]})]})]}),p&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/60 flex items-center justify-center p-4`,onClick:()=>m(!1),role:`dialog`,"aria-modal":`true`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl w-full max-w-md p-4`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`}),e(`pipelineRuns.clearConfirmTitle`,`Clear log?`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:e(`pipelineRuns.clearConfirmBody`,`Delete every completed, failed, cancelled, and partial-failure pipeline run? In-flight runs are kept. This cannot be undone.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-4`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(!1),disabled:T.isPending,className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white`,children:e(`common.cancel`,`Cancel`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>T.mutate(),disabled:T.isPending,className:`px-3 py-1.5 text-sm bg-red-500 hover:bg-red-600 text-white rounded disabled:opacity-50 flex items-center gap-1`,children:[T.isPending?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),e(`pipelineRuns.clearConfirmAction`,`Clear`)]})]})]})}),S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`pipelineRuns.loading`,`Loading…`)]}),!S&&E.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:A?e(`pipelineRuns.filter.noMatches`,`No runs match the current filters.`):e(`pipelineRuns.empty`,`No pipeline runs yet.`)}),!S&&E.length>0&&(0,G.jsx)(`div`,{className:`space-y-1.5`,children:E.map(e=>(0,G.jsx)(DUe,{run:e,pipeline:e.pipeline_id?O[e.pipeline_id]:void 0,printersById:_,expanded:d.has(e.id),onToggle:()=>k(e.id),onCancel:()=>C.mutate(e.id),onRetry:()=>w.mutate(e.id),cancelling:C.isPending,retrying:w.isPending},e.id))}),!S&&D>G3&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-4 text-sm`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(Math.max(0,l-G3)),disabled:l===0,className:`px-3 py-1.5 rounded border border-bambu-dark-tertiary disabled:opacity-50 text-bambu-gray hover:text-white`,children:e(`common.previous`,`Previous`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e(`pipelineRuns.pagination`,`{{start}}–{{end}} of {{total}}`,{start:l+1,end:Math.min(l+G3,D),total:D})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>u(l+G3),disabled:l+G3>=D,className:`px-3 py-1.5 rounded border border-bambu-dark-tertiary disabled:opacity-50 text-bambu-gray hover:text-white`,children:e(`common.next`,`Next`)})]})]})}function DUe({run:e,pipeline:t,printersById:n,expanded:r,onToggle:i,onCancel:a,onRetry:o,cancelling:s,retrying:c}){let{t:l}=U(),u=[`queued`,`slicing`,`dispatching`,`in_progress`].includes(e.status),d=e.status===`partial_failure`||e.status===`failed`,f=e.status===`cancelled`&&e.error_message===`Cancelled by user`,p=e.target_kind===`printer_class`&&e.target_model_class?l(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}):e.target_printer_id&&n[e.target_printer_id]?n[e.target_printer_id].name:null;return(0,G.jsxs)(`div`,{className:`rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:i,"aria-label":r?l(`common.collapse`,`Collapse`):l(`common.expand`,`Expand`),"aria-expanded":r,className:`text-bambu-gray hover:text-white flex-shrink-0`,children:r?(0,G.jsx)(ps,{className:`w-4 h-4`}):(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-0.5 text-sm`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-white`,children:[`#`,e.id]}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:t?.name??e.pipeline_name??`—`}),(0,G.jsx)(OUe,{status:e.status}),p&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),p]}),e.parent_run_id&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70 italic`,children:l(`pipelineRuns.retryOf`,`retry of #{{n}}`,{n:e.parent_run_id})})]}),e.source_filename&&(0,G.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1.5 text-xs text-bambu-gray min-w-0`,children:[(0,G.jsx)(fc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,title:e.source_filename,children:e.source_filename})]}),(0,G.jsxs)(`div`,{className:`mt-0.5 text-xs text-bambu-gray/70 flex flex-wrap items-center gap-x-2`,children:[(0,G.jsx)(`span`,{children:new Date(e.created_at).toLocaleString()}),e.copies>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsx)(`span`,{children:l(`pipelineRuns.copies`,`{{n}} copies`,{n:e.copies})})]}),(e.copies_completed>0||e.copies_failed>0||e.copies_cancelled>0)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`span`,{className:`text-bambu-green`,children:e.copies_completed}),`/`,e.copies]}),e.copies_failed>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`·`}),(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:l(`pipelineRuns.failedCount`,`{{n}} failed`,{n:e.copies_failed})})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[u&&(0,G.jsxs)(`button`,{type:`button`,onClick:a,disabled:s,"aria-label":l(`common.cancel`,`Cancel`),className:`text-xs px-2 py-1 text-red-700 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-500/10 rounded disabled:opacity-50 flex items-center gap-1`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),l(`common.cancel`,`Cancel`)]}),d&&(0,G.jsxs)(`button`,{type:`button`,onClick:o,disabled:c,"aria-label":l(`pipelineRuns.retryFailed`,`Retry failed`),className:`text-xs px-2 py-1 text-bambu-green hover:bg-bambu-green/10 rounded disabled:opacity-50 flex items-center gap-1`,children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),l(`pipelineRuns.retryFailed`,`Retry failed`)]})]})]}),r&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary px-3 py-2 bg-bambu-dark/30`,children:[(0,G.jsx)(`div`,{className:`space-y-1.5`,children:e.jobs.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/60 w-14 flex-shrink-0`,children:l(`pipelineRuns.copyN`,`Copy {{n}}`,{n:e.copy_index+1})}),(0,G.jsx)(kUe,{status:e.status}),e.assigned_printer_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray flex items-center gap-1 truncate`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3 text-bambu-gray/60`}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:e.assigned_printer_name})]}),e.error_message&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 truncate`,title:e.error_message,children:e.error_message})]},e.id))}),e.error_message&&!f&&(0,G.jsx)(`div`,{className:`text-xs text-red-700 dark:text-red-400 mt-2 pt-2 border-t border-bambu-dark-tertiary`,children:e.error_message}),f&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/70 mt-2 pt-2 border-t border-bambu-dark-tertiary italic`,children:l(`pipelineRuns.cancelledByUser`,`Cancelled by user`)})]})]})}function OUe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] uppercase font-semibold tracking-wide whitespace-nowrap ${{queued:`bg-slate-700 text-slate-200`,slicing:`bg-sky-700 text-sky-100`,dispatching:`bg-sky-700 text-sky-100`,in_progress:`bg-emerald-700 text-emerald-100`,completed:`bg-emerald-700 text-emerald-100`,failed:`bg-red-700 text-red-100`,partial_failure:`bg-amber-700 text-amber-100`,cancelled:`bg-rose-900 text-rose-200`}[e]}`,children:t(`settings.pipelines.runs.status.${e}`,e)})}function K3({value:e,onChange:t,options:n,icon:r,ariaLabel:i}){let[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a]);let c=n.find(t=>t.value===e),l=[];for(let e of n){let t=l[l.length-1];t&&t.group===e.group?t.options.push(e):l.push({group:e.group,options:[e]})}return(0,G.jsxs)(`div`,{ref:s,className:`relative`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-label":i,"aria-haspopup":`listbox`,"aria-expanded":a,className:`flex items-center gap-1.5 px-2 py-1 border border-bambu-dark-tertiary rounded bg-bambu-dark/40 text-xs text-white hover:border-bambu-gray/60 focus:outline-none focus:ring-1 focus:ring-bambu-green/40`,children:[r,(0,G.jsx)(`span`,{className:`truncate max-w-[14rem]`,children:c?.label??``}),(0,G.jsx)(ps,{className:`w-3 h-3 text-bambu-gray transition-transform ${a?`rotate-180`:``}`})]}),a&&(0,G.jsx)(`div`,{role:`listbox`,className:`absolute left-0 top-full mt-1 z-30 min-w-full max-h-72 overflow-auto rounded border border-bambu-dark-tertiary bg-bambu-dark-secondary shadow-xl py-1`,children:l.map((n,r)=>(0,G.jsxs)(`div`,{children:[n.group&&(0,G.jsx)(`div`,{className:`px-2 pt-1.5 pb-0.5 text-[10px] uppercase tracking-wider text-bambu-gray/60`,children:n.group}),n.options.map(n=>{let r=n.value===e;return(0,G.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":r,onClick:()=>{t(n.value),o(!1)},className:`flex w-full items-center gap-1.5 text-left px-2 py-1 text-xs whitespace-nowrap ${r?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary/60 hover:text-white`}`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 flex-shrink-0 ${r?`opacity-100`:`opacity-0`}`}),(0,G.jsx)(`span`,{className:`truncate`,children:n.label})]},n.value)})]},r))})]})}function kUe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] uppercase font-semibold tracking-wide ${{pending:`bg-slate-700 text-slate-200`,awaiting_printer:`bg-sky-700 text-sky-100`,queued:`bg-sky-700 text-sky-100`,printing:`bg-emerald-700 text-emerald-100`,completed:`bg-emerald-700 text-emerald-100`,failed:`bg-red-700 text-red-100`,cancelled:`bg-rose-900 text-rose-200`}[e]}`,children:t(`pipelineRuns.jobStatus.${e}`,e)})}function AUe(e){return e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}function jUe({activeCount:e,pendingCount:t,totalTime:n,totalWeight:r,historyCount:i,t:a}){return(0,G.jsx)(`div`,{className:`flex items-center gap-3 sm:gap-5 flex-wrap px-4 py-3 bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary mb-6`,children:[{icon:Nl,value:e,label:a(`queue.summary.printing`),color:`text-blue-600 dark:text-blue-400`},{icon:js,value:t,label:a(`queue.summary.queued`),color:`text-yellow-600 dark:text-yellow-400`},{icon:Nu,value:lp(n),label:a(`queue.summary.totalTime`),color:`text-bambu-green`},{icon:Xu,value:AUe(r),label:a(`queue.summary.totalWeight`),color:`text-purple-600 dark:text-purple-400`},{icon:xs,value:i,label:a(`queue.summary.history`),color:`text-bambu-gray`}].map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[t>0&&(0,G.jsx)(`span`,{className:`hidden sm:block text-bambu-dark-tertiary`,children:`|`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(e.icon,{className:`w-4 h-4 ${e.color}`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-white`,children:e.value}),(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-bambu-gray`,children:e.label})]})]},t))})}var q3={completed:{icon:xs,color:`text-emerald-600 dark:text-emerald-400`,border:`border-l-emerald-500`},failed:{icon:Ds,color:`text-red-600 dark:text-red-400`,border:`border-l-red-500`},skipped:{icon:du,color:`text-orange-600 dark:text-orange-400`,border:`border-l-gray-500`},cancelled:{icon:Uo,color:`text-gray-400`,border:`border-l-gray-500`}};function MUe(e){if(!e)return null;let t=e.startsWith(`#`)?e.slice(1):e;return/^0{6,8}$/.test(t)||!/^[0-9a-fA-F]{6,8}$/.test(t)?null:`#${t.slice(0,6)}`}function J3({item:e,onRequeue:t,onRemove:n,timeFormat:r=`system`,hasPermission:i,canModify:a,t:o}){let s=q3[e.status]||q3.cancelled,c=s.icon,l=jT(e),u=e.archive_thumbnail?Z.getArchiveThumbnail(e.archive_id):e.library_file_thumbnail?Z.getLibraryFileThumbnailUrl(e.library_file_id):null,d=e.completed_at||e.created_at,f=MUe(e.filament_color),p=e.filament_used_grams?Math.round(e.filament_used_grams):null,m=!!e.error_message&&(e.status===`failed`||e.status===`skipped`);return(0,G.jsxs)(`div`,{className:`px-3 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary border-l-[3px] ${s.border}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3`,children:[(0,G.jsx)(c,{className:`w-4 h-4 shrink-0 ${s.color}`}),(0,G.jsxs)(`div`,{className:`relative shrink-0 history-thumb-hover`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 bg-bambu-dark rounded overflow-hidden`,children:u?(0,G.jsx)(`img`,{src:u,alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Jc,{className:`w-4 h-4`})})}),u&&(0,G.jsx)(`div`,{className:`history-thumb-preview absolute z-[60] left-full top-0 ml-2 w-48 h-48 pointer-events-none opacity-0 transition-opacity`,children:(0,G.jsx)(`img`,{src:u,alt:``,className:`w-full h-full object-cover rounded-lg shadow-2xl border-2 border-bambu-dark-tertiary bg-bambu-dark`})})]}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium truncate min-w-0 flex-1`,children:l}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray shrink-0`,title:d??void 0,children:up(d,r,o)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 shrink-0`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:t,disabled:!i(`queue:create`),title:i(`queue:create`)?o(`queue.actions.requeue`):o(`queue.permissions.noRequeue`),className:`text-bambu-green hover:text-bambu-green/80 hover:bg-bambu-green/10 p-1.5`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:n,disabled:!a(`queue`,`delete`,e.created_by_id),title:a(`queue`,`delete`,e.created_by_id)?o(`common.remove`):o(`queue.permissions.noRemove`),className:`p-1.5`,children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})]}),(0,G.jsxs)(`div`,{className:`mt-1 ml-[3.25rem] flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-bambu-gray`,children:[e.printer_name&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate max-w-[100px] sm:max-w-[140px]`,children:e.printer_name})]}),(f||p)&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[f?(0,G.jsx)(`span`,{className:`inline-block w-2.5 h-2.5 rounded-full border border-white/15`,style:{backgroundColor:f},"aria-hidden":!0}):(0,G.jsx)(Xu,{className:`w-3 h-3`}),(0,G.jsxs)(`span`,{className:`truncate`,children:[p?`${p}g`:null,p&&e.filament_type?` ${e.filament_type}`:null,!p&&e.filament_type?e.filament_type:null]})]}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3`}),lp(e.print_time_seconds)]}),e.created_by_username&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,title:o(`queue.addedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.created_by_username})]})]}),m&&(0,G.jsxs)(`div`,{className:`mt-1 ml-[3.25rem] flex items-start gap-1 text-xs text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{className:`break-words`,children:e.error_message})]})]})}function Y3(e){return e.printer_id==null?e.target_model?`model:${e.target_model}`:`unassigned`:`printer:${e.printer_id}`}function X3(e,t,n){if(n){let n=+!!e.been_jumped,r=+!!t.been_jumped;if(n!==r)return r-n;let i=e.print_time_seconds??1/0,a=t.print_time_seconds??1/0;if(i!==a)return i-a}return e.position-t.position}function NUe(e,t,n){let r=Y3(e),i=Y3(t);if(r!==i){if(e.printer_id!=null&&t.printer_id!=null)return e.printer_id-t.printer_id;let n=Z3(e),a=Z3(t);return n===a?rnew Date);(0,y.useEffect)(()=>{let e=setInterval(()=>s(new Date),6e4);return()=>clearInterval(e)},[]);let[c,l]=(0,y.useState)(0),u=(0,y.useMemo)(()=>{let e=o.getTime()+c;return Math.floor(e/Q3)*Q3},[o,c]),d=u+e6,f=o.getTime(),p=(0,y.useMemo)(()=>{let t=[],i=new Map,a=new Set,o=new Map;for(let r of e)if(r.status===`printing`){let e=r.printer_id==null?void 0:n[r.printer_id],i=rp(r.started_at)||new Date,s;if(e?.remaining_time!=null&&e.remaining_time>0)s=new Date(f+e.remaining_time*60*1e3);else if(r.print_time_seconds){let t=e?.progress||0,n=Math.max(0,1-t/100);s=new Date(f+r.print_time_seconds*n*1e3)}else s=new Date(f+Q3);t.push({item:r,estimatedStart:i,estimatedEnd:s,progress:e?.progress??void 0,type:`printing`});let c=Y3(r);a.add(c),o.set(c,Math.max(o.get(c)??f,s.getTime()))}else if(r.status===`pending`){if(r.manual_start||r.waiting_reason)continue;let e=Y3(r);i.has(e)||i.set(e,[]),i.get(e).push(r)}let s=Date.now()+4320*Q3;for(let[e,n]of i){n.sort((e,t)=>X3(e,t,r));let i=a.has(e),c=n[0]?rp(n[0].scheduled_time):null,l=c&&c.getTime()<=s;if(!i&&!l)continue;let u=o.get(e)??f;for(let e of n){let n=rp(e.scheduled_time);n&&n.getTime()<=s&&(u=Math.max(u,n.getTime()));let r=(e.print_time_seconds||3600)*1e3;t.push({item:e,estimatedStart:new Date(u),estimatedEnd:new Date(u+r),type:`queued`}),u+=r}}return t},[e,n,f,r]),m=(0,y.useMemo)(()=>{let e=[];for(let n of t)e.push({key:`printer:${n.id}`,label:n.name,printerId:n.id,targetModel:null});let n=new Set,r=!1;for(let t of p)if(t.item.printer_id==null)if(t.item.target_model){let r=`model:${t.item.target_model}`;n.has(r)||(n.add(r),e.push({key:r,label:`${a(`queue.filter.any`)} ${t.item.target_model}`,printerId:null,targetModel:t.item.target_model}))}else r=!0;return r&&e.push({key:`unassigned`,label:a(`queue.filter.unassigned`),printerId:null,targetModel:null}),e},[t,p,a]),h=(0,y.useMemo)(()=>{let e=new Map;for(let t of p){let n;n=t.item.printer_id==null?t.item.target_model?`model:${t.item.target_model}`:`unassigned`:`printer:${t.item.printer_id}`,e.has(n)||e.set(n,[]),e.get(n).push(t)}return e},[p]),g=(0,y.useMemo)(()=>{let e=[];for(let t=0;t<=$3;t+=2){let n=u+t*Q3;e.push({ms:n,pct:t/$3*100,label:IUe(new Date(n))})}return e},[u]),_=(f-u)/e6*100,v=_>=0&&_<=100,b=(0,y.useMemo)(()=>{let e=0;for(let t of p)e=Math.max(e,t.estimatedEnd.getTime());return e>0?new Date(e):null},[p]),x=(0,y.useRef)(null);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 mb-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(e=>e-12*Q3),className:`p-1.5`,title:a(`queue.timeline.window.back12h`),children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white min-w-[180px] text-center`,children:[new Date(u).toLocaleString(void 0,{weekday:`short`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}),` → `,new Date(d).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(e=>e+12*Q3),className:`p-1.5`,title:a(`queue.timeline.window.forward12h`),children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),c!==0&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>l(0),className:`text-xs text-bambu-green`,children:a(`queue.timeline.window.now`)})]}),b&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),a(`queue.timeline.allDoneBy`,{time:b.toLocaleString(void 0,{weekday:`short`,hour:`2-digit`,minute:`2-digit`})})]})]}),m.length>0&&p.length===0&&(0,G.jsx)(`div`,{className:`mb-4 p-3 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark/40 text-xs text-bambu-gray`,children:a(`queue.timeline.nothingCommitted`)}),m.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:a(`queue.timeline.noData`)})]}):(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`w-32 sm:w-40 shrink-0 px-3 py-2 text-xs font-medium text-bambu-gray border-r border-bambu-dark-tertiary`,children:a(`queue.timeline.printerColumnHeader`)}),(0,G.jsx)(`div`,{className:`relative flex-1 h-9`,children:g.map(e=>(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 border-l border-bambu-dark-tertiary/40 text-[10px] sm:text-xs text-bambu-gray pl-1 flex items-center`,style:{left:`${e.pct}%`},children:e.label},e.ms))})]}),(0,G.jsxs)(`div`,{ref:x,className:`relative`,children:[m.map(e=>{let t=h.get(e.key)??[];return(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary/40 last:border-b-0`,children:[(0,G.jsxs)(`div`,{className:`w-32 sm:w-40 shrink-0 px-3 py-3 border-r border-bambu-dark-tertiary flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 shrink-0 ${e.printerId==null&&e.targetModel==null?`text-orange-600 dark:text-orange-400`:e.targetModel?`text-blue-600 dark:text-blue-400`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:e.label})]}),(0,G.jsxs)(`div`,{className:`relative flex-1`,style:{height:56},children:[g.map(e=>(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 border-l border-bambu-dark-tertiary/30`,style:{left:`${e.pct}%`}},e.ms)),(0,G.jsx)(`div`,{className:`absolute inset-0 opacity-30`,style:{backgroundImage:`repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(255,255,255,0.04) 6px, rgba(255,255,255,0.04) 12px)`},"aria-hidden":!0}),t.map(e=>{let t=Math.max(u,e.estimatedStart.getTime()),n=Math.min(d,e.estimatedEnd.getTime());if(n<=u||t>=d)return null;let r=(t-u)/e6*100,a=(n-t)/e6*100,o=e.item.archive_name||e.item.library_file_name||`#${e.item.id}`,s=e.item.archive_thumbnail?Z.getArchiveThumbnail(e.item.archive_id):e.item.library_file_thumbnail?Z.getLibraryFileThumbnailUrl(e.item.library_file_id):null,c=e.type===`printing`,l=e.item.batch_id!=null;return(0,G.jsxs)(`button`,{onClick:()=>i(e.item),title:[o,`${t6(e.estimatedStart)} → ${t6(e.estimatedEnd)}`,e.item.print_time_seconds?lp(e.item.print_time_seconds):null,c&&e.progress!=null?`${Math.round(e.progress)}%`:null,e.item.batch_name?`batch: ${e.item.batch_name}`:null].filter(Boolean).join(` · `),className:`absolute rounded-md transition-all hover:brightness-110 hover:z-10 overflow-hidden flex items-center gap-1.5 px-1.5 text-left ${c?`bg-blue-500/30 border border-blue-400/60`:l?`bg-cyan-500/20 border border-cyan-400/50`:`bg-bambu-green/20 border border-bambu-green/40`}`,style:{left:`${r}%`,width:`max(${PUe}px, ${a}%)`,top:8,height:FUe},children:[s&&(0,G.jsx)(`img`,{src:s,alt:``,className:`w-7 h-7 rounded object-cover shrink-0 bg-bambu-dark`}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`text-xs text-white font-medium truncate leading-tight`,children:o}),(0,G.jsxs)(`div`,{className:`text-[10px] text-bambu-gray truncate leading-tight`,children:[e.item.print_time_seconds?lp(e.item.print_time_seconds):``,c&&e.progress!=null?` · ${Math.round(e.progress)}%`:``]})]}),c&&e.progress!=null&&(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 h-0.5 bg-blue-300`,style:{width:`${e.progress}%`},"aria-hidden":!0})]},e.item.id)})]})]},e.key)}),v&&(0,G.jsxs)(`div`,{className:`absolute top-0 bottom-0 pointer-events-none z-20 flex inset-x-0`,children:[(0,G.jsx)(`div`,{className:`w-32 sm:w-40 shrink-0`}),(0,G.jsx)(`div`,{className:`relative flex-1`,children:(0,G.jsx)(`div`,{className:`absolute top-0 bottom-0 w-0.5 bg-red-400 shadow-[0_0_8px_rgba(248,113,113,0.6)]`,style:{left:`${_}%`},children:(0,G.jsx)(`div`,{className:`absolute -top-1 -left-1 w-2.5 h-2.5 bg-red-400 rounded-full`})})})]})]})]})]})}function RUe({hasPermission:e,t}){let n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(`active`),[o,s]=(0,y.useState)(null),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=Lf(c?.currency||`USD`),{data:u,isLoading:d}=K({queryKey:[`batches`,i],queryFn:()=>Z.getBatches(i===`all`?void 0:i)}),f=()=>{n.invalidateQueries({queryKey:[`batches`]}),n.invalidateQueries({queryKey:[`queue`]})},p=q({mutationFn:({id:e,plateId:t})=>Z.dispatchBatch(e,t===void 0?{}:{plate_id:t,only_plate:!0}),onSuccess:e=>{f(),r(t(`queue.batchOrders.dispatched`,{name:e.name}),`success`)},onError:e=>r(e.message,`error`)}),m=q({mutationFn:e=>Z.cancelBatch(e),onSuccess:()=>{f(),s(null),r(t(`queue.batchCancelled`),`success`)},onError:e=>r(e.message,`error`)}),h=e(`queue:create`),g=e(`queue:delete_all`);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`h2`,{className:`text-base sm:text-lg font-semibold text-white`,children:t(`queue.batchOrders.title`)}),(0,G.jsx)(`div`,{className:`flex gap-1 ml-auto`,children:[`active`,`completed`,`cancelled`,`all`].map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:`text-xs px-2.5 py-1 rounded-full border transition-colors ${i===e?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-gray`}`,children:t(`queue.batchOrders.filter.${e}`)},e))})]}),d?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:t(`common.loading`)}):u?.length?(0,G.jsx)(`div`,{className:`space-y-4`,children:u.map(e=>(0,G.jsx)(zUe,{batch:e,currency:l,canDispatch:h,canCancel:g,isDispatching:p.isPending&&p.variables?.id===e.id,onDispatch:t=>p.mutate({id:e.id,plateId:t}),onCancel:()=>s(e),t},e.id))}):(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(Cl,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:t(`queue.batchOrders.emptyTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:t(`queue.batchOrders.emptyDescription`)})]}),o&&(0,G.jsx)(of,{title:t(`queue.cancelBatchConfirmTitle`),message:t(`queue.cancelBatchConfirmMessage`),confirmText:t(`queue.cancelBatch`),variant:`warning`,onConfirm:()=>m.mutate(o.id),onCancel:()=>s(null)})]})}var n6={active:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`,completed:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`,cancelled:`bg-bambu-dark-tertiary text-bambu-gray`};function zUe({batch:e,currency:t,canDispatch:n,canCancel:r,isDispatching:i,onDispatch:a,onCancel:o,t:s}){let c=e.has_targets?e.target_count:e.completed_count+e.pending_count+e.printing_count+e.failed_count,l=c>0?Math.round(e.completed_count/c*100):0,u=e.has_targets?e.remaining_count-e.dispatchable_count:0,d=e.due_date?rp(e.due_date):null,f=d!=null&&e.status===`active`&&d.getTime()0&&e.status!==`cancelled`&&n&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>a(),disabled:i,children:[(0,G.jsx)(Ts,{className:`w-4 h-4 mr-1`}),s(`queue.batchOrders.dispatchRemaining`,{count:e.dispatchable_count})]}),e.status===`active`&&r&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:o,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mr-1`}),s(`queue.cancelBatch`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${e.status===`completed`?`bg-bambu-green`:`bg-blue-500`}`,style:{width:`${Math.min(100,l)}%`}})}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap tabular-nums`,children:s(`queue.batchProgress`,{completed:e.completed_count,total:c})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1 text-xs text-bambu-gray mb-1`,children:[e.printing_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.printing`,{count:e.printing_count})}),e.pending_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batch.pendingCount`,{count:e.pending_count})}),e.failed_count>0&&(0,G.jsxs)(`span`,{className:`text-orange-600 dark:text-orange-400 flex items-center gap-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),s(`queue.batchOrders.failed`,{count:e.failed_count})]}),e.has_targets&&e.remaining_count>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.remaining`,{count:e.remaining_count})}),e.print_time_seconds>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.print_time_seconds)]}),e.actual_cost!=null&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Ls,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:s(`queue.batchOrders.costSoFar`,{amount:`${t} ${e.actual_cost.toFixed(2)}`})}),e.estimated_remaining_cost!=null&&e.estimated_remaining_cost>0&&(0,G.jsx)(`span`,{children:s(`queue.batchOrders.costRemaining`,{amount:`${t} ${e.estimated_remaining_cost.toFixed(2)}`})})]})]}),u>0&&e.status!==`cancelled`&&(0,G.jsxs)(`p`,{className:`flex items-start gap-1.5 text-xs text-orange-600 dark:text-orange-400 mb-1`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:s(`queue.batchOrders.strandedNotice`,{runs:u,owed:e.remaining_count})})]}),e.has_targets&&e.plates.length>0&&(0,G.jsx)(`div`,{className:`mt-3 border-t border-bambu-dark-tertiary pt-3 space-y-1.5`,children:e.plates.map(r=>(0,G.jsx)(BUe,{plate:r,batchStatus:e.status,currency:t,canDispatch:n,isDispatching:i,onDispatch:()=>a(r.plate_id),t:s},`${r.plate_id??`file`}`))})]})}function BUe({plate:e,batchStatus:t,currency:n,canDispatch:r,isDispatching:i,onDispatch:a,t:o}){let s=e.plate_name||(e.plate_id==null?o(`queue.batchOrders.wholeFile`):o(`queue.plateNumber`,{index:e.plate_id}));return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs`,children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white min-w-0 truncate`,children:s}),(0,G.jsx)(`span`,{className:`text-bambu-gray tabular-nums`,children:o(`queue.batchOrders.plateProgress`,{completed:e.completed_count,target:e.quantity_target})}),e.failed_count>0&&(0,G.jsx)(`span`,{className:`text-orange-600 dark:text-orange-400`,children:o(`queue.batchOrders.failed`,{count:e.failed_count})}),e.actual_cost!=null&&(0,G.jsx)(`span`,{className:`text-bambu-gray tabular-nums`,children:`${n} ${e.actual_cost.toFixed(2)}`}),e.remaining>0&&t!==`cancelled`&&(0,G.jsxs)(`span`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`queue.batchOrders.remaining`,{count:e.remaining})}),e.can_dispatch?r&&(0,G.jsx)(`button`,{type:`button`,onClick:a,disabled:i,className:`text-bambu-green hover:underline disabled:opacity-50`,children:o(`queue.batchOrders.dispatchPlate`)}):(0,G.jsx)(`span`,{className:`text-orange-600 dark:text-orange-400`,children:o(`queue.batchOrders.strandedPlate`)})]})]})}function r6(e,t=!1){return t&&e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}function VUe({status:e,waitingReason:t,printerState:n,t:r}){if(e===`pending`&&t)return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border text-purple-700 dark:text-purple-400 bg-purple-50 dark:bg-purple-400/10 border-purple-200 dark:border-purple-400/20`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),r(`queue.status.waiting`)]});if(e===`printing`&&n===`PAUSE`)return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-400/10 border-yellow-200 dark:border-yellow-400/20`,children:[(0,G.jsx)(Dl,{className:`w-3.5 h-3.5`}),r(`queue.status.paused`)]});let{icon:i,color:a,label:o}={pending:{icon:js,color:`text-status-warning bg-status-warning/10 border-status-warning/20`,label:r(`queue.status.pending`)},printing:{icon:Nl,color:`text-blue-700 dark:text-blue-400 bg-blue-50 dark:bg-blue-400/10 border-blue-200 dark:border-blue-400/20`,label:r(`queue.status.printing`)},completed:{icon:xs,color:`text-status-ok bg-status-ok/10 border-status-ok/20`,label:r(`queue.status.completed`)},failed:{icon:Ds,color:`text-status-error bg-status-error/10 border-status-error/20`,label:r(`queue.status.failed`)},skipped:{icon:du,color:`text-orange-700 dark:text-orange-400 bg-orange-50 dark:bg-orange-400/10 border-orange-200 dark:border-orange-400/20`,label:r(`queue.status.skipped`)},cancelled:{icon:nd,color:`text-gray-400 bg-gray-400/10 border-gray-400/20`,label:r(`queue.status.cancelled`)}}[e];return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${a}`,children:[(0,G.jsx)(i,{className:`w-3.5 h-3.5`}),o]})}function HUe({selectedCount:e,printers:t,onSave:n,onClose:r,isSaving:i,canControlPrinter:a,t:o}){let[s,c]=(0,y.useState)(`unchanged`),[l,u]=(0,y.useState)(`unchanged`),[d,f]=(0,y.useState)(`unchanged`),[p,m]=(0,y.useState)(`unchanged`),[h,g]=(0,y.useState)(`unchanged`),[_,v]=(0,y.useState)(`unchanged`),[b,x]=(0,y.useState)(`unchanged`),[S,C]=(0,y.useState)(`unchanged`),[w,T]=(0,y.useState)(`unchanged`),[E,D]=(0,y.useState)(`unchanged`),[O,k]=(0,y.useState)(`unchanged`),A=t.some(e=>e.nozzle_count===2),j=()=>{let e={};s!==`unchanged`&&(e.printer_id=s),l!==`unchanged`&&(e.manual_start=l),d!==`unchanged`&&(e.auto_off_after=d),p!==`unchanged`&&(e.require_previous_success=p),h!==`unchanged`&&(e.bed_levelling=h),_!==`unchanged`&&(e.flow_cali=_),b!==`unchanged`&&(e.vibration_cali=b),S!==`unchanged`&&(e.layer_inspect=S),w!==`unchanged`&&(e.timelapse=w),E!==`unchanged`&&(e.use_ams=E),O!==`unchanged`&&(e.nozzle_offset_cali=O),n(e)},M=s!==`unchanged`||l!==`unchanged`||d!==`unchanged`||p!==`unchanged`||h!==`unchanged`||_!==`unchanged`||b!==`unchanged`||S!==`unchanged`||w!==`unchanged`||E!==`unchanged`||O!==`unchanged`;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:o(`queue.bulkEdit.title`,{count:e})}),(0,G.jsx)(`button`,{onClick:r,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:o(`queue.bulkEdit.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.printer`)}),(0,G.jsxs)(`select`,{value:s===null?`null`:s===`unchanged`?`unchanged`:String(s),onChange:e=>{let t=e.target.value;c(t===`unchanged`?`unchanged`:t===`null`?null:Number(t))},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`unchanged`,children:o(`queue.bulkEdit.noChange`)}),(0,G.jsx)(`option`,{value:`null`,children:o(`queue.filter.unassigned`)}),t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.queueOptions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(i6,{label:o(`queue.bulkEdit.staged`),value:l,onChange:u,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.autoPowerOff`),value:d,onChange:f,disabled:!a,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.requirePrevious`),value:p,onChange:m,t:o})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:o(`queue.bulkEdit.printOptions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(a6,{label:o(`queue.bulkEdit.bedLevelling`),value:h,onChange:g,t:o}),(0,G.jsx)(a6,{label:o(`queue.bulkEdit.flowCalibration`),value:_,onChange:v,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.vibrationCalibration`),value:b,onChange:x,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.layerInspection`),value:S,onChange:C,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.timelapse`),value:w,onChange:T,t:o}),(0,G.jsx)(i6,{label:o(`queue.bulkEdit.useAms`),value:E,onChange:D,t:o}),A&&(0,G.jsx)(a6,{label:o(`queue.bulkEdit.nozzleOffsetCali`),value:O,onChange:k,t:o})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-3 p-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:r,children:o(`common.cancel`)}),(0,G.jsx)(Q,{onClick:j,disabled:!M||i,children:o(i?`common.saving`:`queue.bulkEdit.applyChanges`)})]})]})})}function i6({label:e,value:t,onChange:n,disabled:r,t:i}){return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1 ${r?`opacity-50`:``}`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 bg-bambu-dark rounded-lg p-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>n(`unchanged`),disabled:r,className:`px-2 py-1 text-xs rounded ${t===`unchanged`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:`—`}),(0,G.jsx)(`button`,{onClick:()=>n(!1),disabled:r,className:`px-2 py-1 text-xs rounded ${t===!1?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:i(`common.off`)}),(0,G.jsx)(`button`,{onClick:()=>n(!0),disabled:r,className:`px-2 py-1 text-xs rounded ${t===!0?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white`} disabled:cursor-not-allowed`,children:i(`common.on`)})]})]})}function a6({label:e,value:t,onChange:n,t:r}){let i=[{key:`unchanged`,label:`—`,active:`bg-bambu-dark-tertiary text-white`},{key:`off`,label:r(`settings.calibrationMode_off`),active:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`},{key:`auto`,label:r(`settings.calibrationMode_auto`),active:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`},{key:`on`,label:r(`settings.calibrationMode_on`),active:`bg-bambu-green/20 text-bambu-green`}];return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 bg-bambu-dark rounded-lg p-0.5`,children:i.map(({key:e,label:r,active:i})=>(0,G.jsx)(`button`,{onClick:()=>n(e),className:`px-2 py-1 text-xs rounded ${t===e?i:`text-bambu-gray hover:text-white`}`,children:r},e))})]})}function o6({item:e,position:t,onEdit:n,onCancel:r,onRemove:i,onStop:a,onRequeue:o,onStart:s,onMoveUp:c,onMoveDown:l,timeFormat:u=`system`,isSelected:d=!1,onToggleSelect:f,hasPermission:p,canModify:m,printerState:h,showEta:g=!1,etaNow:_,t:v}){let{data:y}=K({queryKey:[`printerStatus`,e.printer_id],queryFn:()=>Z.getPrinterStatus(e.printer_id),refetchInterval:3e4,enabled:e.printer_id!=null&&h===`printing`}),b=!!e.library_file_id&&!e.archive_id,{data:x}=K({queryKey:[`archive-plates`,e.archive_id],queryFn:()=>Z.getArchivePlates(e.archive_id),enabled:!!e.archive_id&&!b&&!e.archive_deleted}),{data:S}=K({queryKey:[`library-file-plates`,e.library_file_id],queryFn:()=>Z.getLibraryFilePlates(e.library_file_id),enabled:b&&!!e.library_file_id}),C=b?S:x,w=C?.plates??[],T=p(`queue:reorder`),{attributes:E,listeners:D,setNodeRef:O,transform:k,transition:A,isDragging:j}=V3({id:e.id,disabled:e.status!==`pending`||!T}),M={transform:y4.Transform.toString(k),transition:A},N=e.status===`printing`,P=e.status===`pending`,F=[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status),I=P&&g&&e.print_time_seconds!=null&&e.print_time_seconds>0?cp(e.print_time_seconds/60,u,v,_):null,L=P&&f;return(0,G.jsxs)(`div`,{ref:O,style:M,className:` group relative bg-bambu-dark-secondary rounded-xl border transition-all duration-200 border-l-[3px] ${N?`border-l-blue-500`:P?`border-l-yellow-500`:e.status===`completed`?`border-l-emerald-500`:e.status===`failed`?`border-l-red-500`:`border-l-gray-500`} ${j?`opacity-50 scale-[1.02] shadow-xl z-50`:``} @@ -4360,44 +4360,44 @@ img.ProseMirror-separator { ${d&&L?`sm:border-bambu-dark-tertiary border-bambu-green/40`:``} ${!d&&!N?`border-bambu-dark-tertiary hover:border-bambu-dark-tertiary/80`:``} ${L?`cursor-pointer sm:cursor-default`:``} - `,onClick:L?()=>{window.innerWidth<640&&f()}:void 0,children:[L&&d&&(0,G.jsx)(`div`,{className:`sm:hidden absolute left-0 top-3 bottom-3 w-1 rounded-full bg-bambu-green`}),(0,G.jsxs)(`div`,{className:`flex items-start sm:items-center gap-2 sm:gap-4 p-3 sm:p-4`,children:[P&&(c||l)&&(0,G.jsxs)(`div`,{className:`flex sm:hidden flex-col shrink-0 -my-1`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{type:`button`,onClick:c,disabled:!c,title:v(`queue.moveUp`),"aria-label":v(`queue.moveUp`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(gs,{className:`w-5 h-5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:!l,title:v(`queue.moveDown`),"aria-label":v(`queue.moveDown`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(ps,{className:`w-5 h-5`})})]}),P&&f&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),f()},className:`hidden sm:flex items-center justify-center w-6 h-6 rounded border transition-colors shrink-0 ${d?`bg-bambu-green border-bambu-green text-white`:`border-white/30 bg-black/30 hover:border-bambu-green/50`}`,children:d&&(0,G.jsx)(fs,{className:`w-4 h-4`})}),P?(0,G.jsx)(`div`,{...E,...D,className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark cursor-grab active:cursor-grabbing hover:bg-bambu-dark-tertiary transition-colors touch-none shrink-0`,children:(0,G.jsx)(jc,{className:`w-4 h-4 text-bambu-gray`})}):t===void 0?(0,G.jsx)(`div`,{className:`hidden sm:block w-8 shrink-0`}):(0,G.jsxs)(`div`,{className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark text-bambu-gray text-sm font-medium shrink-0`,children:[`#`,t]}),(0,G.jsx)(`div`,{className:`w-10 h-10 sm:w-14 sm:h-14 flex-shrink-0 bg-bambu-dark rounded-lg overflow-hidden`,children:e.archive_thumbnail?(0,G.jsx)(`img`,{src:e.plate_id==null?Z.getArchiveThumbnail(e.archive_id):Z.getArchivePlateThumbnail(e.archive_id,e.plate_id),alt:``,className:`w-full h-full object-cover`}):e.library_file_thumbnail?(0,G.jsx)(`img`,{src:e.plate_id==null?Z.getLibraryFileThumbnailUrl(e.library_file_id):Z.getLibraryFilePlateThumbnail(e.library_file_id,e.plate_id),alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 sm:w-6 sm:h-6`})})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm sm:text-base text-white font-medium truncate`,children:[jT(e,e=>v(`common.plusNMore`,{count:e})),(C?.is_multi_plate??!1)&&e.plate_id!==void 0&&e.plate_id!==null&&` • ${w.find(t=>t.index===e.plate_id)?.name||v(`queue.plateNumber`,{index:e.plate_id})}`]}),e.archive_id?(0,G.jsx)(Ai,{to:`/archives?highlight=${e.archive_id}`,className:`text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:v(`queue.viewArchive`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):e.library_file_id?(0,G.jsx)(Ai,{to:`/library?highlight=${e.library_file_id}`,className:`text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:v(`queue.viewInFileManager`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):null,e.batch_name&&(0,G.jsx)(`span`,{className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] sm:text-xs bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-300 rounded border border-cyan-300 dark:border-cyan-500/30`,children:e.batch_name})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs sm:text-sm text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5 ${e.printer_id===null&&!e.target_model?`text-orange-700 dark:text-orange-400`:``} ${e.target_model&&!e.printer_id?`text-blue-700 dark:text-blue-400`:``}`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px] sm:max-w-none`,children:(e.variants?.length??0)>1&&!e.printer_id?`${v(`queue.filter.any`)} ${e.variants.map(e=>e.target_model).join(` / `)}${e.target_location?` @ ${e.target_location}`:``}`:e.target_model&&!e.printer_id?`${v(`queue.filter.any`)} ${e.target_model}${e.target_location?` @ ${e.target_location}`:``}${e.required_filament_types?.length?` (${e.required_filament_types.join(`, `)})`:``}`:e.printer_id===null?v(`queue.filter.unassigned`):e.printer_name||`${v(`common.printer`)} #${e.printer_id}`})]}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),lp(e.print_time_seconds)]}),I&&(0,G.jsxs)(`span`,{"data-testid":`queue-item-eta`,className:`text-bambu-green font-medium`,title:v(`queue.time.etaIfStartedNow`),children:[`ETA `,I]}),e.filament_used_grams&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Xu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),n6(e.filament_used_grams)]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,title:t.label,children:[(0,G.jsx)(`img`,{src:t.icon,alt:``,className:`w-3.5 h-3.5 sm:w-4 sm:h-4 object-contain`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px]`,children:t.label})]}):null})(),e.created_by_username&&(0,G.jsxs)(`span`,{className:`hidden sm:flex items-center gap-1.5`,title:v(`queue.addedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3.5 h-3.5`}),e.created_by_username]}),P&&!e.manual_start&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),e.scheduled_time?(rp(e.scheduled_time)?.getTime()??0)-Date.now()<-6e4?v?.(`queue.time.overdue`)??`Overdue`:up(e.scheduled_time,u,v):v?.(`queue.time.whenFree`)??`When a printer is free`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 sm:gap-2 mt-1.5 sm:mt-2`,children:[e.manual_start&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-purple-50 dark:bg-purple-500/10 text-purple-700 dark:text-purple-400 rounded-full border border-purple-200 dark:border-purple-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Nc,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.staged`)]}),e.require_previous_success&&(0,G.jsx)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-orange-50 dark:bg-orange-500/10 text-orange-700 dark:text-orange-400 rounded-full border border-orange-200 dark:border-orange-500/20`,children:v(`queue.badges.requiresPrevious`)}),e.auto_off_after&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400 rounded-full border border-blue-200 dark:border-blue-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Ll,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.autoPowerOff`)]}),e.gcode_injection&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-emerald-50 dark:bg-emerald-500/10 text-emerald-700 dark:text-emerald-400 rounded-full border border-emerald-200 dark:border-emerald-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Fs,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.gcodeInjection`)]})]}),N&&y&&(()=>{let e=y.state===`RUNNING`||y.state===`PAUSE`,t=e&&y.progress||0,n=e?y.remaining_time:null,r=e?y.layer_num:null,i=e?y.total_layers:null;return(0,G.jsxs)(`div`,{className:`mt-2 sm:mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs sm:text-sm`,children:[(0,G.jsx)(`div`,{className:`flex-1 bg-bambu-dark-tertiary rounded-full h-1.5 sm:h-2 mr-3`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-1.5 sm:h-2 rounded-full transition-all`,style:{width:`${t}%`}})}),(0,G.jsxs)(`span`,{className:`text-white`,children:[Math.round(t),`%`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mt-1.5 sm:mt-2 text-[10px] sm:text-xs text-bambu-gray`,children:[n!=null&&n>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(n*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:v(`printers.estimatedCompletion`),children:[`ETA `,cp(n,u,v)]})]}),r!=null&&i!=null&&i>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),r,`/`,i]})]})]})})(),e.waiting_reason&&e.status===`pending`&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-purple-700 dark:text-purple-400 mt-1.5 sm:mt-2 flex items-start gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:e.waiting_reason})]}),e.filament_short&&e.status===`pending`&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-yellow-700 dark:text-yellow-400 mt-1.5 sm:mt-2 flex items-start gap-1`,title:v(`queue.filamentShort.rowTooltip`),children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:v(`queue.filamentShort.rowBadge`)})]}),e.archive_has_slicer_ams_mapping&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-green-700 dark:text-green-400 mt-1.5 sm:mt-2 flex items-start gap-1`,title:v(`queue.slicerAmsMapping.rowTooltip`),children:[(0,G.jsx)(fs,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:v(`queue.slicerAmsMapping.rowBadge`)})]}),e.error_message&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-red-700 dark:text-red-400 mt-1.5 sm:mt-2 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),e.error_message]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-end sm:items-center gap-2 sm:gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(VUe,{status:e.status,waitingReason:e.waiting_reason,printerState:h,t:v}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 sm:gap-1`,children:[N&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:a,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`queue.actions.stopPrint`):v(`queue.permissions.noStopPrint`),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Es,{className:`w-4 h-4`})}),P&&(0,G.jsxs)(G.Fragment,{children:[e.manual_start&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:s,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`queue.actions.startPrint`):v(`queue.permissions.noStartPrint`),className:`text-bambu-green hover:text-bambu-green-light hover:bg-bambu-green/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:n,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`common.edit`):v(`queue.permissions.noEdit`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,disabled:!m(`queue`,`delete`,e.created_by_id),title:m(`queue`,`delete`,e.created_by_id)?v(`common.cancel`):v(`queue.permissions.noCancel`),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),F&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,disabled:!p(`queue:create`),title:p(`queue:create`)?v(`queue.actions.requeue`):v(`queue.permissions.noRequeue`),className:`text-bambu-green hover:text-bambu-green/80 hover:bg-bambu-green/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Hl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,disabled:!m(`queue`,`delete`,e.created_by_id),title:m(`queue`,`delete`,e.created_by_id)?v(`common.remove`):v(`queue.permissions.noRemove`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})]})]})}function o6(e){let{row:t,setEditItem:n,setConfirmAction:r,startMutation:i,selectedItems:a,handleToggleSelect:o,timeFormat:s,hasPermission:c,canModify:l,t:u,etaEligibleIds:d,etaNow:f,onMoveUp:p,onMoveDown:m}=e;return t.kind===`item`?(0,G.jsx)(a6,{item:t.item,onEdit:()=>n(t.item),onCancel:()=>r({type:`cancel`,item:t.item}),onRemove:()=>{},onStop:()=>{},onRequeue:()=>{},onStart:()=>i.mutate({id:t.item.id}),onMoveUp:p,onMoveDown:m,timeFormat:s,isSelected:a.includes(t.item.id),onToggleSelect:()=>o(t.item.id),hasPermission:c,canModify:l,showEta:d.has(t.item.id),etaNow:f,t:u}):(0,G.jsx)(UUe,{...e})}function UUe({row:e,collapsed:t,onToggleBatch:n,onUngroup:r,setEditItem:i,setConfirmAction:a,startMutation:o,selectedItems:s,handleToggleSelect:c,timeFormat:l,hasPermission:u,canModify:d,t:f,etaEligibleIds:p,etaNow:m,aggregateForRows:h,onMoveUp:g,onMoveDown:_,onMoveBlock:v}){let y=e,b=u(`queue:reorder`),{attributes:x,listeners:S,setNodeRef:C,transform:w,transition:T,isDragging:E}=B3({id:`batch-${y.batchId}`,disabled:!b}),D={transform:v4.Transform.toString(w),transition:T},O=h([y]),k=y.items.map(e=>e.id),A=k.length>0&&k.every(e=>s.includes(e)),j=new Set(y.items.map(e=>e.status)),M=j.has(`failed`)?`failed`:j.has(`printing`)?`printing`:`pending`,N=y.items.filter(e=>e.status===`pending`).length;return(0,G.jsxs)(`div`,{ref:C,style:D,className:`bg-bambu-dark-secondary rounded-xl border border-l-[3px] border-l-cyan-400 border-bambu-dark-tertiary overflow-hidden ${E?`opacity-50 scale-[1.01] shadow-xl z-50`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 p-3 sm:p-4`,children:[b&&(g||_)&&(0,G.jsxs)(`div`,{className:`flex sm:hidden flex-col shrink-0 -my-1`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:g,disabled:!g,title:f(`queue.moveUp`),"aria-label":f(`queue.moveUp`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(gs,{className:`w-5 h-5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:_,disabled:!_,title:f(`queue.moveDown`),"aria-label":f(`queue.moveDown`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(ps,{className:`w-5 h-5`})})]}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),k.forEach(e=>{(A&&s.includes(e)||!A&&!s.includes(e))&&c(e)})},className:`hidden sm:flex items-center justify-center w-6 h-6 rounded border transition-colors shrink-0 ${A?`bg-bambu-green border-bambu-green text-white`:`border-white/30 bg-black/30 hover:border-bambu-green/50`}`,title:f(A?`queue.bulkEdit.deselectAll`:`queue.bulkEdit.selectAll`),children:A&&(0,G.jsx)(fs,{className:`w-4 h-4`})}),b&&(0,G.jsx)(`div`,{...x,...S,className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark cursor-grab active:cursor-grabbing hover:bg-bambu-dark-tertiary transition-colors touch-none shrink-0`,title:f(`queue.batch.dragGroup`,{defaultValue:`Drag group`}),children:(0,G.jsx)(jc,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:n,className:`flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors shrink-0`,title:f(t?`queue.batch.expand`:`queue.batch.collapse`),children:t?(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`div`,{className:`w-10 h-10 sm:w-12 sm:h-12 flex-shrink-0 bg-bambu-dark rounded-lg flex items-center justify-center`,children:t?(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}):(0,G.jsx)(Sl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(`p`,{className:`text-sm sm:text-base text-white font-medium truncate`,children:y.batchName}),(0,G.jsx)(`span`,{className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] sm:text-xs bg-cyan-100 dark:bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 rounded border border-cyan-300 dark:border-cyan-500/30`,children:f(`queue.batch.label`,{count:O.count})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs sm:text-sm text-bambu-gray`,children:[O.time>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),lp(O.time)]}),O.weight>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Xu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),n6(O.weight)]}),N>0&&M===`pending`&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(js,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),f(`queue.batch.pendingCount`,{count:N})]})]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:r&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,title:f(`queue.batch.ungroup`),className:`text-cyan-700 dark:text-cyan-300 hover:text-cyan-900 dark:hover:text-cyan-200 hover:bg-cyan-50 dark:hover:bg-cyan-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(zu,{className:`w-4 h-4`})})})]}),!t&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary bg-black/20 p-2 sm:p-3 space-y-2`,children:y.items.map((e,t)=>(0,G.jsx)(a6,{item:e,onEdit:()=>i(e),onCancel:()=>a({type:`cancel`,item:e}),onRemove:()=>{},onStop:()=>{},onRequeue:()=>{},onStart:()=>o.mutate({id:e.id}),onMoveUp:v&&t>0?()=>v([e.id],y.items[t-1].id,!1):void 0,onMoveDown:v&&tv([e.id],y.items[t+1].id,!0):void 0,timeFormat:l,isSelected:s.includes(e.id),onToggleSelect:()=>c(e.id),hasPermission:u,canModify:d,showEta:p.has(e.id),etaNow:m,t:f},e.id))})]})}function WUe({items:e,visibleCount:t,onShowMore:n,sortBy:r,sortAsc:i,onSortByChange:a,onSortAscToggle:o,onRemove:s,onRequeue:c,timeFormat:l,batchCollapsed:u,toggleBatchCollapsed:d,hasPermission:f,canModify:p,t:m}){if(e.length===0)return(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(Qc,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:m(`queue.history.emptyTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:m(`queue.history.emptyDescription`)})]});let h=[],g=new Set;for(let n of e.slice(0,t))if(n.batch_id!=null){if(g.has(n.batch_id))continue;g.add(n.batch_id);let t=e.filter(e=>e.batch_id===n.batch_id);h.push({kind:`batch`,batchId:n.batch_id,batchName:n.batch_name||m(`queue.batch.defaultName`),items:t})}else h.push({kind:`item`,item:n});return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3 sm:mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white flex items-center gap-2`,children:[m(`queue.sections.history`),(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm font-normal text-bambu-gray`,children:[`(`,m(`queue.itemCount`,{count:e.length}),`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-1.5 text-xs sm:text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:r,onChange:e=>a(e.target.value),children:[(0,G.jsx)(`option`,{value:`date`,children:m(`queue.sort.byDate`)}),(0,G.jsx)(`option`,{value:`name`,children:m(`queue.sort.byName`)}),(0,G.jsx)(`option`,{value:`printer`,children:m(`queue.sort.byPrinter`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,title:m(i?`queue.sort.ascendingOldest`:`queue.sort.descendingNewest`),className:`px-2`,children:i?(0,G.jsx)(Ho,{className:`w-4 h-4`}):(0,G.jsx)(Io,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2`,children:h.map(e=>{if(e.kind===`item`)return(0,G.jsx)(q3,{item:e.item,onRemove:()=>s(e.item),onRequeue:()=>c(e.item),timeFormat:l,hasPermission:f,canModify:p,t:m},e.item.id);let t=u[e.batchId]??!0,n=e.items.filter(e=>e.status===`completed`).length,r=e.items.filter(e=>e.status===`failed`).length,i=e.items.filter(e=>e.status===`skipped`).length,a=e.items.filter(e=>e.status===`cancelled`).length,o=e.items.map(e=>e.completed_at||e.created_at).filter(e=>!!e).sort().at(-1);return(0,G.jsxs)(`div`,{className:`md:col-span-2 xl:col-span-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary border-l-[3px] border-l-cyan-400`,children:[(0,G.jsxs)(`button`,{onClick:()=>d(e.batchId),className:`w-full flex items-center gap-2 sm:gap-3 px-3 py-2 hover:bg-bambu-dark/30 transition-colors text-left`,title:m(t?`queue.batch.expand`:`queue.batch.collapse`),children:[t?(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray shrink-0`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0`}),t?(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300 shrink-0`}):(0,G.jsx)(Sl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium truncate min-w-0 flex-1`,children:e.batchName}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray shrink-0`,children:[n>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-emerald-700 dark:text-emerald-400`,children:[(0,G.jsx)(xs,{className:`w-3 h-3`}),n]}),r>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-3 h-3`}),r]}),i>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-orange-700 dark:text-orange-400`,children:[(0,G.jsx)(du,{className:`w-3 h-3`}),i]}),a>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-gray-400`,children:[(0,G.jsx)(Uo,{className:`w-3 h-3`}),a]}),(0,G.jsx)(`span`,{title:o??void 0,children:o?up(o,l,m):null})]})]}),!t&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary bg-black/20 p-2 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2`,children:e.items.map(e=>(0,G.jsx)(q3,{item:e,onRemove:()=>s(e),onRequeue:()=>c(e),timeFormat:l,hasPermission:f,canModify:p,t:m},e.id))})]},`batch-${e.batchId}`)})}),e.length>t&&(0,G.jsxs)(`div`,{className:`mt-4 flex flex-col items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:n,children:m(`queue.history.showMore`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:m(`queue.history.showingCount`,{shown:Math.min(t,e.length),total:e.length})})]})]})}var s6=50;function GUe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i,canModify:a}=Nd(),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)([]),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(null),[D,O]=(0,y.useState)(()=>localStorage.getItem(`queue.historySortBy`)||`date`),[k,A]=(0,y.useState)(()=>{let e=localStorage.getItem(`queue.historySortAsc`);return e===null?!1:e===`true`}),[j,M]=(0,y.useState)(s6),[N,P]=(0,y.useState)(()=>localStorage.getItem(`queue.pendingSortBy`)||`position`),[F,I]=(0,y.useState)(()=>{let e=localStorage.getItem(`queue.pendingSortAsc`);return e===null?!0:e===`true`}),[L,R]=(0,y.useState)(()=>{let e=new URLSearchParams(window.location.search).get(`tab`);if(e===`pipelines`||e===`history`||e===`timeline`||e===`queue`||e===`batches`)return e;let t=localStorage.getItem(`queue.activeTab`);return t===`history`||t===`timeline`||t===`pipelines`||t===`batches`?t:`queue`}),[z,B]=(0,y.useState)(()=>localStorage.getItem(`queue.activeLayout`)===`printer`?`printer`:`position`),[V,ee]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`queue.batchCollapsed`);return e?JSON.parse(e):{}}catch{return{}}}),[te,ne]=(0,y.useState)(null),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(null);(0,y.useEffect)(()=>{localStorage.setItem(`queue.historySortBy`,D)},[D]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.historySortAsc`,String(k))},[k]),(0,y.useEffect)(()=>{M(s6)},[D,k,u]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.pendingSortBy`,N)},[N]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.pendingSortAsc`,String(F))},[F]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.activeTab`,L)},[L]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.activeLayout`,z)},[z]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.batchCollapsed`,JSON.stringify(V))},[V]);let se=w4(C4(i3,{activationConstraint:{distance:8}}),C4(e3,{coordinateGetter:H3})),{data:H}=K({queryKey:[`settings`],queryFn:Z.getSettings}),ce=H?.time_format||`system`,{data:le}=K({queryKey:[`batches`,`active`],queryFn:()=>Z.getBatches(`active`)}),ue=le?.length??0,{data:de,isLoading:fe}=K({queryKey:[`queue`,o,c],queryFn:()=>Z.getQueue(o||void 0,c||void 0),refetchInterval:5e3}),{data:pe}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),me=q({mutationFn:e=>Z.updateSettings({queue_shortest_first:e}),onSuccess:()=>{t.invalidateQueries({queryKey:[`settings`]})}}),he=q({mutationFn:e=>Z.cancelQueueItem(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.cancelled`))},onError:()=>n(e(`queue.toast.cancelFailed`),`error`)}),ge=q({mutationFn:e=>Z.removeFromQueue(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`batches`]}),n(r.deleted===!1?e(`queue.toast.keptForOrder`):e(`queue.toast.removed`))},onError:()=>n(e(`queue.toast.removeFailed`),`error`)}),_e=q({mutationFn:e=>Z.stopQueueItem(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.stopped`))},onError:()=>n(e(`queue.toast.stopFailed`),`error`)}),[ve,ye]=(0,y.useState)(null),be=q({mutationFn:({id:e,skipFilamentCheck:t})=>Z.startQueueItem(e,{skipFilamentCheck:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.released`)),ye(null)},onError:(t,r)=>{if(t instanceof sd&&t.status===409&&t.code===`insufficient_filament`){let e=t.detail?.deficit??[];ye({itemId:r.id,deficit:e});return}n(e(`queue.toast.startFailed`),`error`)}}),xe=q({mutationFn:e=>Z.reorderQueue(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]})},onError:()=>n(e(`queue.toast.reorderFailed`),`error`)}),Se=q({mutationFn:async()=>{let e=de?.filter(e=>[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status))||[],t=0,n=0;for(let r of e)(await Z.removeFromQueue(r.id)).deleted===!1?n+=1:t+=1;return{cleared:t,kept:n}},onSuccess:({cleared:r,kept:i})=>{t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`batches`]}),n(i>0?`${e(`queue.toast.historyCleared`,{count:r})} ${e(`queue.toast.historyKeptForOrders`,{kept:i})}`:e(`queue.toast.historyCleared`,{count:r}))},onError:()=>n(e(`queue.toast.clearHistoryFailed`),`error`)}),Ce=q({mutationFn:e=>Z.bulkUpdateQueue(e),onSuccess:e=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),w(!1),n(e.message)},onError:()=>n(e(`queue.toast.updateFailed`),`error`)}),we=q({mutationFn:async e=>{for(let t of e)await Z.cancelQueueItem(t);return e.length},onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),n(e(`queue.toast.bulkCancelled`,{count:r}))},onError:()=>n(e(`queue.toast.bulkCancelFailed`),`error`)}),Te=q({mutationFn:e=>Z.resumeQueueAfterFailure(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),E(null),n(e(`queue.toast.resumedAfterFailure`,{restored:r.restored,acknowledged:r.acknowledged}))},onError:()=>n(e(`queue.toast.resumeAfterFailureFailed`),`error`)}),Ee=q({mutationFn:e=>Z.createBatch(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),ie(!1),ee(e=>({...e,[r.id]:!1})),n(e(`queue.toast.batchCreated`,{name:r.name}))},onError:()=>n(e(`queue.toast.batchCreateFailed`),`error`)}),De=q({mutationFn:e=>Z.ungroupBatch(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),oe(null),n(e(`queue.toast.batchUngrouped`,{count:r.ungrouped_count}))},onError:()=>n(e(`queue.toast.batchUngroupFailed`),`error`)}),Oe=e=>{S(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ke=(0,y.useMemo)(()=>{let e=new Set;return pe?.forEach(t=>{t.location&&e.add(t.location)}),de?.forEach(t=>{t.target_location&&e.add(t.target_location)}),Array.from(e).sort()},[pe,de]),Ae=(0,y.useCallback)(e=>u?e.target_location?e.target_location===u:e.printer_id?pe?.find(t=>t.id===e.printer_id)?.location===u:!1:!0,[u,pe]),je=(0,y.useMemo)(()=>{let e=de?.filter(e=>e.status===`pending`)||[];u&&(e=e.filter(Ae));let t=e=>{if(!e.scheduled_time)return 0;let t=rp(e.scheduled_time)?.getTime()??0;return t>Date.now()+4320*60*60*1e3?0:t};return H?.queue_shortest_first?[...e].sort((e,t)=>NUe(e,t,!0)):[...e].sort((e,n)=>{let r;if(N===`name`){let t=e.archive_name||e.library_file_name||``,i=n.archive_name||n.library_file_name||``;r=t.localeCompare(i)}else r=N===`printer`?(e.printer_name||``).localeCompare(n.printer_name||``):N===`time`?t(e)-t(n):e.position-n.position;return F?r:-r})},[de,N,F,Ae,u,H?.queue_shortest_first]),Me=()=>{let e=je.map(e=>e.id);x.length===e.length?S([]):S(e)},Ne=(0,y.useMemo)(()=>{let e=de?.filter(e=>e.status===`printing`)||[];return u&&(e=e.filter(Ae)),e},[de,u,Ae]),Pe=(0,y.useMemo)(()=>{let e=new Set;if(!de)return e;let t=new Set;de.forEach(e=>{e.status===`printing`&&e.printer_id&&t.add(e.printer_id)});let n=e=>e.scheduled_time?(rp(e.scheduled_time)?.getTime()??0)>Date.now():!1,r=(e,t)=>Y3(e,t,H?.queue_shortest_first??!1),i=new Map;return de.filter(e=>e.status===`pending`&&e.printer_id!=null&&!e.manual_start&&!n(e)).sort(r).forEach(e=>{let t=i.get(e.printer_id)??[];t.push(e),i.set(e.printer_id,t)}),de.forEach(r=>{if(r.status===`pending`&&!r.waiting_reason&&!n(r)&&!(r.print_time_seconds==null||r.print_time_seconds<=0)&&!r.require_previous_success){if(r.printer_id==null){e.add(r.id);return}if(!t.has(r.printer_id)){if(r.manual_start){e.add(r.id);return}i.get(r.printer_id)?.[0]?.id===r.id&&e.add(r.id)}}}),e},[de,H?.queue_shortest_first]),[Fe,Ie]=(0,y.useState)(()=>Date.now()),Le=Pe.size>0;(0,y.useEffect)(()=>{if(!Le)return;Ie(Date.now());let e=setInterval(()=>Ie(Date.now()),3e4);return()=>clearInterval(e)},[Le]);let Re=(0,y.useMemo)(()=>{let e=new Set;return Ne.forEach(t=>{t.printer_id&&e.add(t.printer_id)}),Array.from(e)},[Ne]),ze=Co({queries:Re.map(e=>({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:5e3}))}),Be=(0,y.useMemo)(()=>{let e={};return Re.forEach((t,n)=>{let r=ze[n];r?.data?.state&&(e[t]=r.data.state)}),e},[Re,ze]),Ve=(0,y.useMemo)(()=>{let e={};return Re.forEach((t,n)=>{let r=ze[n];r?.data&&(e[t]={progress:r.data.progress??void 0,remaining_time:r.data.remaining_time??void 0,state:r.data.state??void 0})}),e},[Re,ze]),He=(0,y.useMemo)(()=>{let e=de?.filter(e=>[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status))||[];return u&&(e=e.filter(Ae)),[...e].sort((e,t)=>{let n;if(D===`name`){let r=e.archive_name||e.library_file_name||``,i=t.archive_name||t.library_file_name||``;n=r.localeCompare(i)}else n=D===`printer`?(e.printer_name||``).localeCompare(t.printer_name||``):(rp(t.completed_at||t.created_at)?.getTime()??0)-(rp(e.completed_at||e.created_at)?.getTime()??0);return k?-n:n})},[de,D,k,Ae,u]),Ue=(0,y.useMemo)(()=>je.reduce((e,t)=>e+(t.print_time_seconds||0),0),[je]),We=(0,y.useMemo)(()=>je.reduce((e,t)=>e+(t.filament_used_grams||0),0),[je]),Ge=e=>{let t=e.active.id;ne(typeof t==`number`||typeof t==`string`?t:null)},Ke=e=>{let{active:t,over:n}=e;if(ne(null),!n||t.id===n.id)return;let r,i=t.id;if(typeof i==`string`&&i.startsWith(`batch-`)){let e=Number(i.slice(6));r=je.filter(t=>t.batch_id===e).map(e=>e.id)}else{let e=i;r=x.includes(e)&&x.length>1?x.slice().sort((e,t)=>je.findIndex(t=>t.id===e)-je.findIndex(e=>e.id===t)):[e]}if(r.length===0)return;let a,o=n.id;if(typeof o==`string`&&o.startsWith(`batch-`)){let e=Number(o.slice(6));a=je.findIndex(t=>t.batch_id===e)}else a=je.findIndex(e=>e.id===o);if(a===-1)return;let s=je[a],c=je.filter(e=>!r.includes(e.id)),l=c.findIndex(e=>e.id===s.id);l===-1&&(l=a),je.findIndex(e=>e.id===r[0])je.find(t=>t.id===e)).filter(e=>!!e),...c.slice(l)].map((e,t)=>({id:e.id,position:t+1}));xe.mutate(u)},qe=(0,y.useMemo)(()=>{let t=[],n=new Set;for(let r of je)if(r.batch_id!=null){if(n.has(r.batch_id))continue;n.add(r.batch_id);let i=je.filter(e=>e.batch_id===r.batch_id);t.push({kind:`batch`,batchId:r.batch_id,batchName:r.batch_name||e(`queue.batch.defaultName`),items:i})}else t.push({kind:`item`,item:r});return t},[je,e]),Je=r(`queue:reorder`)&&N===`position`&&!H?.queue_shortest_first,Ye=e=>e.kind===`item`?[e.item.id]:e.items.map(e=>e.id),Xe=(e,t,n)=>{let r=je.filter(t=>!e.includes(t.id)),i=r.findIndex(e=>e.id===t);if(i===-1)return;n&&(i+=1);let a=e.map(e=>je.find(t=>t.id===e)).filter(e=>!!e),o=[...r.slice(0,i),...a,...r.slice(i)];xe.mutate(o.map((e,t)=>({id:e.id,position:t+1})))},Ze=(e,t)=>{if(!Je)return{};let n=Ye(e[t]);return{onMoveUp:t>0?()=>Xe(n,Ye(e[t-1])[0],!1):void 0,onMoveDown:t{let r=Ye(e[t+1]);Xe(n,r[r.length-1],!0)}:void 0}},Qe=(0,y.useMemo)(()=>{let e=[];for(let t of qe)if(t.kind===`item`)e.push(t.item.id);else if(e.push(`batch-${t.batchId}`),!(V[t.batchId]??!0))for(let n of t.items)e.push(n.id);return e},[qe,V]),$e=(0,y.useMemo)(()=>x.length<2?!1:x.every(e=>{let t=je.find(t=>t.id===e);return t&&t.batch_id==null}),[x,je]),et=e=>{ee(t=>({...t,[e]:!(t[e]??!0)}))},tt=(0,y.useMemo)(()=>{let t=new Map,n=t=>{if(t.printer_id)return{key:`printer:${t.printer_id}`,label:t.printer_name||`Printer #${t.printer_id}`,printerId:t.printer_id,targetModel:null,isUnassigned:!1};if((t.variants?.length??0)>1){let n=t.variants.map(e=>e.target_model).join(` / `);return{key:`models:${n}`,label:`${e(`queue.filter.any`)} ${n}`,printerId:null,targetModel:null,isUnassigned:!1}}return t.target_model?{key:`model:${t.target_model}`,label:`${e(`queue.filter.any`)} ${t.target_model}`,printerId:null,targetModel:t.target_model,isUnassigned:!1}:{key:`unassigned`,label:e(`queue.filter.unassigned`),printerId:null,targetModel:null,isUnassigned:!0}};for(let e of qe){let r=e.kind===`item`?e.item:e.items[0];if(!r)continue;let i=n(r);t.has(i.key)||t.set(i.key,{...i,rows:[]}),t.get(i.key).rows.push(e)}return Array.from(t.values()).sort((e,t)=>e.isUnassigned&&!t.isUnassigned?1:!e.isUnassigned&&t.isUnassigned?-1:e.label.localeCompare(t.label))},[qe,e]),nt=(0,y.useMemo)(()=>{let e=new Map;return de?.forEach(t=>{if(t.status===`skipped`&&t.error_message===`Previous print failed or was aborted`&&t.printer_id){let n=e.get(t.printer_id);n?n.count+=1:e.set(t.printer_id,{name:t.printer_name||`Printer #${t.printer_id}`,count:1})}}),Array.from(e.entries()).map(([e,{name:t,count:n}])=>({printerId:e,printerName:t,skippedCount:n})).sort((e,t)=>e.printerName.localeCompare(t.printerName))},[de]),rt=e=>{let t=0,n=0,r=0;for(let i of e){let e=i.kind===`item`?[i.item]:i.items;for(let i of e)t+=1,n+=i.print_time_seconds||0,r+=i.filament_used_grams||0}return{count:t,time:n,weight:r}};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-6`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Qc,{className:`w-7 h-7 text-bambu-green`}),e(`queue.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`queue.subtitle`)})]})}),(0,G.jsx)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary mb-6 overflow-x-auto`,children:[{id:`queue`,label:e(`queue.tabs.queue`),icon:js,count:je.length+Ne.length},{id:`batches`,label:e(`queue.tabs.batches`),icon:Cl,count:ue},{id:`history`,label:e(`queue.tabs.history`),icon:Qc,count:He.length},{id:`timeline`,label:e(`queue.tabs.timeline`),icon:ds,count:null},{id:`pipelines`,label:e(`queue.tabs.pipelines`),icon:ed,count:null}].map(({id:e,label:t,icon:n,count:r})=>(0,G.jsxs)(`button`,{onClick:()=>R(e),className:`px-4 py-2.5 text-sm flex items-center gap-2 border-b-2 -mb-px transition-colors whitespace-nowrap ${L===e?`text-white border-bambu-green font-medium`:`text-bambu-gray border-transparent hover:text-white`}`,children:[(0,G.jsx)(n,{className:`w-4 h-4`}),t,r!==null&&r>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full ${L===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:r})]},e))}),L!==`pipelines`&&L!==`batches`&&(0,G.jsx)(jUe,{activeCount:Ne.length,pendingCount:je.length,totalTime:Ue,totalWeight:We,historyCount:He.length,t:e}),L===`queue`&&nt.length>0&&r(`queue:update_all`)&&(0,G.jsx)(`div`,{className:`mb-4 space-y-2`,children:nt.map(({printerId:t,printerName:n,skippedCount:r})=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-orange-600 dark:text-orange-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-orange-800 dark:text-orange-200`,children:e(`queue.resumeAfterFailure.banner`,{printer:n,count:r})}),(0,G.jsx)(`div`,{className:`text-xs text-orange-800/80 dark:text-orange-200/70 mt-0.5`,children:e(`queue.resumeAfterFailure.bannerHint`)})]}),(0,G.jsxs)(`button`,{onClick:()=>E({printerId:t,printerName:n,skippedCount:r}),className:`flex items-center gap-1.5 px-3 py-1.5 bg-orange-100 dark:bg-orange-500/20 hover:bg-orange-200 dark:hover:bg-orange-500/30 text-orange-900 dark:text-orange-100 text-sm rounded-md border border-orange-300 dark:border-orange-500/40 transition-colors flex-shrink-0`,children:[(0,G.jsx)(Ts,{className:`w-4 h-4`}),e(`queue.resumeAfterFailure.button`)]})]},t))}),L!==`pipelines`&&L!==`batches`&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-4 mb-6`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:o===-1?`unassigned`:o||``,onChange:e=>{let t=e.target.value;s(t===`unassigned`?-1:t===``?null:Number(t))},children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allPrinters`)}),(0,G.jsx)(`option`,{value:`unassigned`,children:e(`queue.filter.unassigned`)}),pe?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:c,onChange:e=>l(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allStatus`)}),(0,G.jsx)(`option`,{value:`pending`,children:e(`queue.status.pending`)}),(0,G.jsx)(`option`,{value:`printing`,children:e(`queue.status.printing`)}),(0,G.jsx)(`option`,{value:`completed`,children:e(`queue.status.completed`)}),(0,G.jsx)(`option`,{value:`failed`,children:e(`queue.status.failed`)}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`queue.status.skipped`)}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`queue.status.cancelled`)})]}),ke.length>0&&(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:u,onChange:e=>d(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allLocations`)}),ke.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsx)(`div`,{className:`hidden sm:block flex-1`}),L===`history`&&He.length>0&&(0,G.jsxs)(Q,{className:`w-full sm:w-auto`,variant:`secondary`,size:`sm`,onClick:()=>p(!0),disabled:!r(`queue:delete_all`),title:r(`queue:delete_all`)?void 0:e(`queue.permissions.noClearHistory`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`queue.clearHistory`)]})]}),L===`queue`&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 mb-6`,children:[(0,G.jsxs)(`div`,{className:`inline-flex items-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-0.5`,children:[(0,G.jsxs)(`button`,{className:`px-3 py-1.5 text-xs sm:text-sm rounded-md transition-colors flex items-center gap-1.5 ${z===`position`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,onClick:()=>B(`position`),title:e(`queue.layout.flatList`),children:[(0,G.jsx)(el,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.layout.flatList`)})]}),(0,G.jsxs)(`button`,{className:`px-3 py-1.5 text-xs sm:text-sm rounded-md transition-colors flex items-center gap-1.5 ${z===`printer`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,onClick:()=>B(`printer`),title:e(`queue.layout.groupByPrinter`),children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.layout.byPrinter`)})]})]}),(0,G.jsxs)(`button`,{onClick:()=>{let e=!(H?.queue_shortest_first??!1);me.mutate(e)},className:`flex items-center gap-1 px-2 py-1.5 text-xs rounded-lg border transition-colors ${H?.queue_shortest_first?`bg-bambu-green/20 border-bambu-green text-bambu-green`:`bg-bambu-dark-secondary border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,title:e(`queue.sjf.tooltip`,`Shortest Job First — scheduler prioritizes shorter prints`),children:[(0,G.jsx)(hu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.sjf.label`,`SJF`)}),(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full ${H?.queue_shortest_first?`bg-bambu-green`:`bg-bambu-gray`}`})]})]}),L===`pipelines`?(0,G.jsx)(EUe,{}):L===`batches`?(0,G.jsx)(RUe,{hasPermission:r,t:e}):fe?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`common.loading`)}):de?.length===0?(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(as,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:e(`queue.empty.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:e(`queue.empty.description`)})]}):L===`timeline`?(0,G.jsx)(LUe,{queueItems:de||[],printers:pe||[],printerStatuses:Ve,sjfEnabled:H?.queue_shortest_first??!1,onItemClick:e=>{[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status)?_(e):e.status===`pending`?h(e):e.status===`printing`&&b({type:`stop`,item:e})},t:e}):L===`history`?(0,G.jsx)(WUe,{items:He,collapsed:!1,visibleCount:j,onShowMore:()=>M(e=>e+s6),sortBy:D,sortAsc:k,onSortByChange:O,onSortAscToggle:()=>A(!k),onRemove:e=>b({type:`remove`,item:e}),onRequeue:_,timeFormat:ce,batchCollapsed:V,toggleBatchCollapsed:et,hasPermission:r,canModify:a,t:e}):(0,G.jsxs)(`div`,{className:`space-y-6 sm:space-y-8`,children:[Ne.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white mb-3 sm:mb-4 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-blue-400 animate-pulse`}),e(`queue.sections.currentlyPrinting`)]}),(0,G.jsx)(`div`,{className:`space-y-2 sm:space-y-3`,children:Ne.map(t=>(0,G.jsx)(a6,{item:t,onEdit:()=>{},onCancel:()=>{},onRemove:()=>{},onStop:()=>b({type:`stop`,item:t}),onRequeue:()=>{},onStart:()=>{},timeFormat:ce,hasPermission:r,canModify:a,printerState:t.printer_id?Be[t.printer_id]:null,t:e},t.id))})]}),je.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3 sm:mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 sm:w-5 sm:h-5 text-yellow-600 dark:text-yellow-400`}),e(`queue.sections.queued`),(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm font-normal text-bambu-gray`,children:[`(`,e(`queue.itemCount`,{count:je.length}),`)`]}),(0,G.jsx)(`span`,{className:`hidden sm:inline text-xs text-bambu-gray ml-2`,title:e(`queue.reorderHint`),children:e(`queue.dragToReorder`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-1.5 text-xs sm:text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:N,onChange:e=>P(e.target.value),children:[(0,G.jsx)(`option`,{value:`position`,children:e(`queue.sort.byPosition`)}),(0,G.jsx)(`option`,{value:`name`,children:e(`queue.sort.byName`)}),(0,G.jsx)(`option`,{value:`printer`,children:e(`queue.sort.byPrinter`)}),(0,G.jsx)(`option`,{value:`time`,children:e(`queue.sort.bySchedule`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>I(!F),title:e(F?`common.ascending`:`common.descending`),className:`px-2`,children:F?(0,G.jsx)(Ho,{className:`w-4 h-4`}):(0,G.jsx)(Io,{className:`w-4 h-4`})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mb-3 sm:mb-4 p-2 sm:p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:Me,className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm`,children:[x.length===je.length&&je.length>0?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),x.length===je.length&&je.length>0?e(`queue.bulkEdit.deselectAll`):e(`queue.bulkEdit.selectAll`)]}),x.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-bambu-gray`,children:e(`queue.bulkEdit.selected`,{count:x.length})}),(0,G.jsx)(`div`,{className:`hidden sm:block h-4 w-px bg-bambu-dark-tertiary`}),$e&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>ie(!0),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-cyan-700 dark:text-cyan-300 hover:text-cyan-900 dark:hover:text-cyan-200`,title:e(`queue.batch.groupAsBatch`),children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.batch.groupAsBatch`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>w(!0),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-bambu-green hover:text-bambu-green-light`,disabled:!i(`queue:update_own`,`queue:update_all`),title:i(`queue:update_own`,`queue:update_all`)?e(`queue.bulkEdit.editSelected`):e(`queue.permissions.noEditItems`),children:[(0,G.jsx)(Al,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.bulkEdit.editSelected`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>we.mutate(x),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300`,disabled:we.isPending||!i(`queue:delete_own`,`queue:delete_all`),title:i(`queue:delete_own`,`queue:delete_all`)?e(`queue.bulkEdit.cancelSelected`):e(`queue.permissions.noCancelItems`),children:[(0,G.jsx)(nd,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.bulkEdit.cancelSelected`)})]})]})]}),(0,G.jsxs)(O3,{sensors:se,collisionDetection:j4,onDragStart:Ge,onDragEnd:Ke,children:[(0,G.jsx)(R3,{items:Qe,strategy:mUe,children:z===`position`?(0,G.jsx)(`div`,{className:`space-y-2 sm:space-y-3`,children:qe.map((t,n)=>(0,G.jsx)(o6,{row:t,collapsed:t.kind===`batch`?V[t.batchId]??!0:!1,onToggleBatch:t.kind===`batch`?()=>et(t.batchId):void 0,onUngroup:t.kind===`batch`?()=>oe(t.batchId):void 0,setEditItem:h,setConfirmAction:b,startMutation:be,selectedItems:x,handleToggleSelect:Oe,timeFormat:ce,hasPermission:r,canModify:a,t:e,etaEligibleIds:Pe,etaNow:Fe,aggregateForRows:rt,...Ze(qe,n),onMoveBlock:Je?Xe:void 0},t.kind===`item`?`item-${t.item.id}`:`batch-${t.batchId}`))}):(0,G.jsx)(`div`,{className:`space-y-4`,children:tt.map(t=>{let n=rt(t.rows);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-t-lg`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 ${t.isUnassigned?`text-orange-600 dark:text-orange-400`:t.targetModel?`text-blue-600 dark:text-blue-400`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`font-semibold text-white text-sm`,children:t.label}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex flex-wrap gap-x-3`,children:[(0,G.jsx)(`span`,{children:e(`queue.itemCount`,{count:n.count})}),n.time>0&&(0,G.jsx)(`span`,{children:lp(n.time)}),n.weight>0&&(0,G.jsx)(`span`,{children:n6(n.weight)})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark/40 border border-t-0 border-bambu-dark-tertiary rounded-b-lg p-2 space-y-2`,children:t.rows.map((n,i)=>(0,G.jsx)(o6,{row:n,collapsed:n.kind===`batch`?V[n.batchId]??!0:!1,onToggleBatch:n.kind===`batch`?()=>et(n.batchId):void 0,onUngroup:n.kind===`batch`?()=>oe(n.batchId):void 0,setEditItem:h,setConfirmAction:b,startMutation:be,selectedItems:x,handleToggleSelect:Oe,timeFormat:ce,hasPermission:r,canModify:a,t:e,etaEligibleIds:Pe,etaNow:Fe,aggregateForRows:rt,...Ze(t.rows,i),onMoveBlock:Je?Xe:void 0},n.kind===`item`?`item-${n.item.id}`:`batch-${n.batchId}`))})]},t.key)})})}),(0,G.jsx)(uUe,{children:(()=>{if(te===null)return null;if(typeof te==`string`&&te.startsWith(`batch-`)){let t=Number(te.slice(6)),n=je.filter(e=>e.batch_id===t);if(n.length===0)return null;let r=n[0].batch_name||e(`queue.batch.defaultName`);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border-2 border-cyan-400 rounded-lg shadow-2xl`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e(`queue.dragGhost.batch`,{defaultValue:`{{name}} ({{count}} copies)`,name:r,count:n.length})})]})}return typeof te==`number`&&x.includes(te)&&x.length>1?(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border-2 border-cyan-400 rounded-lg shadow-2xl`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e(`queue.dragGhost.multiCount`,{count:x.length})})]}):null})()})]})]})]}),m&&(0,G.jsx)(zU,{mode:`edit-queue-item`,archiveId:m.archive_id??void 0,libraryFileId:m.library_file_id??void 0,archiveName:jT(m,t=>e(`common.plusNMore`,{count:t})),queueItem:m,onClose:()=>h(null)}),g&&(0,G.jsx)(zU,{mode:`create`,archiveId:g.archive_id??void 0,libraryFileId:g.library_file_id??void 0,archiveName:jT(g,t=>e(`common.plusNMore`,{count:t})),onClose:()=>_(null)}),ve&&(0,G.jsx)(of,{title:e(`queue.filamentShort.confirmTitle`),message:e(`queue.filamentShort.confirmIntro`)+` + `,onClick:L?()=>{window.innerWidth<640&&f()}:void 0,children:[L&&d&&(0,G.jsx)(`div`,{className:`sm:hidden absolute left-0 top-3 bottom-3 w-1 rounded-full bg-bambu-green`}),(0,G.jsxs)(`div`,{className:`flex items-start sm:items-center gap-2 sm:gap-4 p-3 sm:p-4`,children:[P&&(c||l)&&(0,G.jsxs)(`div`,{className:`flex sm:hidden flex-col shrink-0 -my-1`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{type:`button`,onClick:c,disabled:!c,title:v(`queue.moveUp`),"aria-label":v(`queue.moveUp`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(gs,{className:`w-5 h-5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:!l,title:v(`queue.moveDown`),"aria-label":v(`queue.moveDown`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(ps,{className:`w-5 h-5`})})]}),P&&f&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),f()},className:`hidden sm:flex items-center justify-center w-6 h-6 rounded border transition-colors shrink-0 ${d?`bg-bambu-green border-bambu-green text-white`:`border-white/30 bg-black/30 hover:border-bambu-green/50`}`,children:d&&(0,G.jsx)(fs,{className:`w-4 h-4`})}),P?(0,G.jsx)(`div`,{...E,...D,className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark cursor-grab active:cursor-grabbing hover:bg-bambu-dark-tertiary transition-colors touch-none shrink-0`,children:(0,G.jsx)(jc,{className:`w-4 h-4 text-bambu-gray`})}):t===void 0?(0,G.jsx)(`div`,{className:`hidden sm:block w-8 shrink-0`}):(0,G.jsxs)(`div`,{className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark text-bambu-gray text-sm font-medium shrink-0`,children:[`#`,t]}),(0,G.jsx)(`div`,{className:`w-10 h-10 sm:w-14 sm:h-14 flex-shrink-0 bg-bambu-dark rounded-lg overflow-hidden`,children:e.archive_thumbnail?(0,G.jsx)(`img`,{src:e.plate_id==null?Z.getArchiveThumbnail(e.archive_id):Z.getArchivePlateThumbnail(e.archive_id,e.plate_id),alt:``,className:`w-full h-full object-cover`}):e.library_file_thumbnail?(0,G.jsx)(`img`,{src:e.plate_id==null?Z.getLibraryFileThumbnailUrl(e.library_file_id):Z.getLibraryFilePlateThumbnail(e.library_file_id,e.plate_id),alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Jc,{className:`w-5 h-5 sm:w-6 sm:h-6`})})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm sm:text-base text-white font-medium truncate`,children:[jT(e,e=>v(`common.plusNMore`,{count:e})),(C?.is_multi_plate??!1)&&e.plate_id!==void 0&&e.plate_id!==null&&` • ${w.find(t=>t.index===e.plate_id)?.name||v(`queue.plateNumber`,{index:e.plate_id})}`]}),e.archive_id?(0,G.jsx)(Ai,{to:`/archives?highlight=${e.archive_id}`,className:`text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:v(`queue.viewArchive`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):e.library_file_id?(0,G.jsx)(Ai,{to:`/library?highlight=${e.library_file_id}`,className:`text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:v(`queue.viewInFileManager`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):null,e.batch_name&&(0,G.jsx)(`span`,{className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] sm:text-xs bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-300 rounded border border-cyan-300 dark:border-cyan-500/30`,children:e.batch_name})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs sm:text-sm text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5 ${e.printer_id===null&&!e.target_model?`text-orange-700 dark:text-orange-400`:``} ${e.target_model&&!e.printer_id?`text-blue-700 dark:text-blue-400`:``}`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px] sm:max-w-none`,children:(e.variants?.length??0)>1&&!e.printer_id?`${v(`queue.filter.any`)} ${e.variants.map(e=>e.target_model).join(` / `)}${e.target_location?` @ ${e.target_location}`:``}`:e.target_model&&!e.printer_id?`${v(`queue.filter.any`)} ${e.target_model}${e.target_location?` @ ${e.target_location}`:``}${e.required_filament_types?.length?` (${e.required_filament_types.join(`, `)})`:``}`:e.printer_id===null?v(`queue.filter.unassigned`):e.printer_name||`${v(`common.printer`)} #${e.printer_id}`})]}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),lp(e.print_time_seconds)]}),I&&(0,G.jsxs)(`span`,{"data-testid":`queue-item-eta`,className:`text-bambu-green font-medium`,title:v(`queue.time.etaIfStartedNow`),children:[`ETA `,I]}),e.filament_used_grams&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Xu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),r6(e.filament_used_grams)]}),(()=>{let t=EU(e.bed_type);return t?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,title:t.label,children:[(0,G.jsx)(`img`,{src:t.icon,alt:``,className:`w-3.5 h-3.5 sm:w-4 sm:h-4 object-contain`}),(0,G.jsx)(`span`,{className:`truncate max-w-[120px]`,children:t.label})]}):null})(),e.created_by_username&&(0,G.jsxs)(`span`,{className:`hidden sm:flex items-center gap-1.5`,title:v(`queue.addedBy`,{name:e.created_by_username}),children:[(0,G.jsx)(Hu,{className:`w-3.5 h-3.5`}),e.created_by_username]}),P&&!e.manual_start&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),e.scheduled_time?(rp(e.scheduled_time)?.getTime()??0)-Date.now()<-6e4?v?.(`queue.time.overdue`)??`Overdue`:up(e.scheduled_time,u,v):v?.(`queue.time.whenFree`)??`When a printer is free`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 sm:gap-2 mt-1.5 sm:mt-2`,children:[e.manual_start&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-purple-50 dark:bg-purple-500/10 text-purple-700 dark:text-purple-400 rounded-full border border-purple-200 dark:border-purple-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Nc,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.staged`)]}),e.require_previous_success&&(0,G.jsx)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-orange-50 dark:bg-orange-500/10 text-orange-700 dark:text-orange-400 rounded-full border border-orange-200 dark:border-orange-500/20`,children:v(`queue.badges.requiresPrevious`)}),e.auto_off_after&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400 rounded-full border border-blue-200 dark:border-blue-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Ll,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.autoPowerOff`)]}),e.gcode_injection&&(0,G.jsxs)(`span`,{className:`text-[10px] sm:text-xs px-1.5 sm:px-2 py-0.5 bg-emerald-50 dark:bg-emerald-500/10 text-emerald-700 dark:text-emerald-400 rounded-full border border-emerald-200 dark:border-emerald-500/20 flex items-center gap-1`,children:[(0,G.jsx)(Fs,{className:`w-2.5 h-2.5 sm:w-3 sm:h-3`}),v(`queue.badges.gcodeInjection`)]})]}),N&&y&&(()=>{let e=y.state===`RUNNING`||y.state===`PAUSE`,t=e&&y.progress||0,n=e?y.remaining_time:null,r=e?y.layer_num:null,i=e?y.total_layers:null;return(0,G.jsxs)(`div`,{className:`mt-2 sm:mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs sm:text-sm`,children:[(0,G.jsx)(`div`,{className:`flex-1 bg-bambu-dark-tertiary rounded-full h-1.5 sm:h-2 mr-3`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-1.5 sm:h-2 rounded-full transition-all`,style:{width:`${t}%`}})}),(0,G.jsxs)(`span`,{className:`text-white`,children:[Math.round(t),`%`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mt-1.5 sm:mt-2 text-[10px] sm:text-xs text-bambu-gray`,children:[n!=null&&n>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(n*60)]}),(0,G.jsxs)(`span`,{className:`text-bambu-green font-medium`,title:v(`printers.estimatedCompletion`),children:[`ETA `,cp(n,u,v)]})]}),r!=null&&i!=null&&i>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),r,`/`,i]})]})]})})(),e.waiting_reason&&e.status===`pending`&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-purple-700 dark:text-purple-400 mt-1.5 sm:mt-2 flex items-start gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:e.waiting_reason})]}),e.filament_short&&e.status===`pending`&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-yellow-700 dark:text-yellow-400 mt-1.5 sm:mt-2 flex items-start gap-1`,title:v(`queue.filamentShort.rowTooltip`),children:[(0,G.jsx)(ys,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:v(`queue.filamentShort.rowBadge`)})]}),e.archive_has_slicer_ams_mapping&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-green-700 dark:text-green-400 mt-1.5 sm:mt-2 flex items-start gap-1`,title:v(`queue.slicerAmsMapping.rowTooltip`),children:[(0,G.jsx)(fs,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:v(`queue.slicerAmsMapping.rowBadge`)})]}),e.error_message&&(0,G.jsxs)(`p`,{className:`text-[10px] sm:text-xs text-red-700 dark:text-red-400 mt-1.5 sm:mt-2 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),e.error_message]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-end sm:items-center gap-2 sm:gap-1 shrink-0`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(VUe,{status:e.status,waitingReason:e.waiting_reason,printerState:h,t:v}),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 sm:gap-1`,children:[N&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:a,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`queue.actions.stopPrint`):v(`queue.permissions.noStopPrint`),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Es,{className:`w-4 h-4`})}),P&&(0,G.jsxs)(G.Fragment,{children:[e.manual_start&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:s,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`queue.actions.startPrint`):v(`queue.permissions.noStartPrint`),className:`text-bambu-green hover:text-bambu-green-light hover:bg-bambu-green/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:n,disabled:!m(`queue`,`update`,e.created_by_id),title:m(`queue`,`update`,e.created_by_id)?v(`common.edit`):v(`queue.permissions.noEdit`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,disabled:!m(`queue`,`delete`,e.created_by_id),title:m(`queue`,`delete`,e.created_by_id)?v(`common.cancel`):v(`queue.permissions.noCancel`),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),F&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,disabled:!p(`queue:create`),title:p(`queue:create`)?v(`queue.actions.requeue`):v(`queue.permissions.noRequeue`),className:`text-bambu-green hover:text-bambu-green/80 hover:bg-bambu-green/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Hl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,disabled:!m(`queue`,`delete`,e.created_by_id),title:m(`queue`,`delete`,e.created_by_id)?v(`common.remove`):v(`queue.permissions.noRemove`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})]})]})}function s6(e){let{row:t,setEditItem:n,setConfirmAction:r,startMutation:i,selectedItems:a,handleToggleSelect:o,timeFormat:s,hasPermission:c,canModify:l,t:u,etaEligibleIds:d,etaNow:f,onMoveUp:p,onMoveDown:m}=e;return t.kind===`item`?(0,G.jsx)(o6,{item:t.item,onEdit:()=>n(t.item),onCancel:()=>r({type:`cancel`,item:t.item}),onRemove:()=>{},onStop:()=>{},onRequeue:()=>{},onStart:()=>i.mutate({id:t.item.id}),onMoveUp:p,onMoveDown:m,timeFormat:s,isSelected:a.includes(t.item.id),onToggleSelect:()=>o(t.item.id),hasPermission:c,canModify:l,showEta:d.has(t.item.id),etaNow:f,t:u}):(0,G.jsx)(UUe,{...e})}function UUe({row:e,collapsed:t,onToggleBatch:n,onUngroup:r,setEditItem:i,setConfirmAction:a,startMutation:o,selectedItems:s,handleToggleSelect:c,timeFormat:l,hasPermission:u,canModify:d,t:f,etaEligibleIds:p,etaNow:m,aggregateForRows:h,onMoveUp:g,onMoveDown:_,onMoveBlock:v}){let y=e,b=u(`queue:reorder`),{attributes:x,listeners:S,setNodeRef:C,transform:w,transition:T,isDragging:E}=V3({id:`batch-${y.batchId}`,disabled:!b}),D={transform:y4.Transform.toString(w),transition:T},O=h([y]),k=y.items.map(e=>e.id),A=k.length>0&&k.every(e=>s.includes(e)),j=new Set(y.items.map(e=>e.status)),M=j.has(`failed`)?`failed`:j.has(`printing`)?`printing`:`pending`,N=y.items.filter(e=>e.status===`pending`).length;return(0,G.jsxs)(`div`,{ref:C,style:D,className:`bg-bambu-dark-secondary rounded-xl border border-l-[3px] border-l-cyan-400 border-bambu-dark-tertiary overflow-hidden ${E?`opacity-50 scale-[1.01] shadow-xl z-50`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3 p-3 sm:p-4`,children:[b&&(g||_)&&(0,G.jsxs)(`div`,{className:`flex sm:hidden flex-col shrink-0 -my-1`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:g,disabled:!g,title:f(`queue.moveUp`),"aria-label":f(`queue.moveUp`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(gs,{className:`w-5 h-5`})}),(0,G.jsx)(`button`,{type:`button`,onClick:_,disabled:!_,title:f(`queue.moveDown`),"aria-label":f(`queue.moveDown`),className:`flex items-center justify-center w-8 h-7 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark disabled:opacity-25 disabled:hover:bg-transparent transition-colors`,children:(0,G.jsx)(ps,{className:`w-5 h-5`})})]}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),k.forEach(e=>{(A&&s.includes(e)||!A&&!s.includes(e))&&c(e)})},className:`hidden sm:flex items-center justify-center w-6 h-6 rounded border transition-colors shrink-0 ${A?`bg-bambu-green border-bambu-green text-white`:`border-white/30 bg-black/30 hover:border-bambu-green/50`}`,title:f(A?`queue.bulkEdit.deselectAll`:`queue.bulkEdit.selectAll`),children:A&&(0,G.jsx)(fs,{className:`w-4 h-4`})}),b&&(0,G.jsx)(`div`,{...x,...S,className:`hidden sm:flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark cursor-grab active:cursor-grabbing hover:bg-bambu-dark-tertiary transition-colors touch-none shrink-0`,title:f(`queue.batch.dragGroup`,{defaultValue:`Drag group`}),children:(0,G.jsx)(jc,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:n,className:`flex items-center justify-center w-8 h-8 rounded-lg bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors shrink-0`,title:f(t?`queue.batch.expand`:`queue.batch.collapse`),children:t?(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`div`,{className:`w-10 h-10 sm:w-12 sm:h-12 flex-shrink-0 bg-bambu-dark rounded-lg flex items-center justify-center`,children:t?(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}):(0,G.jsx)(Sl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(`p`,{className:`text-sm sm:text-base text-white font-medium truncate`,children:y.batchName}),(0,G.jsx)(`span`,{className:`flex-shrink-0 px-1.5 py-0.5 text-[10px] sm:text-xs bg-cyan-100 dark:bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 rounded border border-cyan-300 dark:border-cyan-500/30`,children:f(`queue.batch.label`,{count:O.count})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs sm:text-sm text-bambu-gray`,children:[O.time>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Nu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),lp(O.time)]}),O.weight>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5`,children:[(0,G.jsx)(Xu,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),r6(O.weight)]}),N>0&&M===`pending`&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 sm:gap-1.5 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(js,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5`}),f(`queue.batch.pendingCount`,{count:N})]})]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:r&&(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,title:f(`queue.batch.ungroup`),className:`text-cyan-700 dark:text-cyan-300 hover:text-cyan-900 dark:hover:text-cyan-200 hover:bg-cyan-50 dark:hover:bg-cyan-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(zu,{className:`w-4 h-4`})})})]}),!t&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary bg-black/20 p-2 sm:p-3 space-y-2`,children:y.items.map((e,t)=>(0,G.jsx)(o6,{item:e,onEdit:()=>i(e),onCancel:()=>a({type:`cancel`,item:e}),onRemove:()=>{},onStop:()=>{},onRequeue:()=>{},onStart:()=>o.mutate({id:e.id}),onMoveUp:v&&t>0?()=>v([e.id],y.items[t-1].id,!1):void 0,onMoveDown:v&&tv([e.id],y.items[t+1].id,!0):void 0,timeFormat:l,isSelected:s.includes(e.id),onToggleSelect:()=>c(e.id),hasPermission:u,canModify:d,showEta:p.has(e.id),etaNow:m,t:f},e.id))})]})}function WUe({items:e,visibleCount:t,onShowMore:n,sortBy:r,sortAsc:i,onSortByChange:a,onSortAscToggle:o,onRemove:s,onRequeue:c,timeFormat:l,batchCollapsed:u,toggleBatchCollapsed:d,hasPermission:f,canModify:p,t:m}){if(e.length===0)return(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(Qc,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:m(`queue.history.emptyTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:m(`queue.history.emptyDescription`)})]});let h=[],g=new Set;for(let n of e.slice(0,t))if(n.batch_id!=null){if(g.has(n.batch_id))continue;g.add(n.batch_id);let t=e.filter(e=>e.batch_id===n.batch_id);h.push({kind:`batch`,batchId:n.batch_id,batchName:n.batch_name||m(`queue.batch.defaultName`),items:t})}else h.push({kind:`item`,item:n});return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3 sm:mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white flex items-center gap-2`,children:[m(`queue.sections.history`),(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm font-normal text-bambu-gray`,children:[`(`,m(`queue.itemCount`,{count:e.length}),`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-1.5 text-xs sm:text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:r,onChange:e=>a(e.target.value),children:[(0,G.jsx)(`option`,{value:`date`,children:m(`queue.sort.byDate`)}),(0,G.jsx)(`option`,{value:`name`,children:m(`queue.sort.byName`)}),(0,G.jsx)(`option`,{value:`printer`,children:m(`queue.sort.byPrinter`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:o,title:m(i?`queue.sort.ascendingOldest`:`queue.sort.descendingNewest`),className:`px-2`,children:i?(0,G.jsx)(Ho,{className:`w-4 h-4`}):(0,G.jsx)(Io,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2`,children:h.map(e=>{if(e.kind===`item`)return(0,G.jsx)(J3,{item:e.item,onRemove:()=>s(e.item),onRequeue:()=>c(e.item),timeFormat:l,hasPermission:f,canModify:p,t:m},e.item.id);let t=u[e.batchId]??!0,n=e.items.filter(e=>e.status===`completed`).length,r=e.items.filter(e=>e.status===`failed`).length,i=e.items.filter(e=>e.status===`skipped`).length,a=e.items.filter(e=>e.status===`cancelled`).length,o=e.items.map(e=>e.completed_at||e.created_at).filter(e=>!!e).sort().at(-1);return(0,G.jsxs)(`div`,{className:`md:col-span-2 xl:col-span-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary border-l-[3px] border-l-cyan-400`,children:[(0,G.jsxs)(`button`,{onClick:()=>d(e.batchId),className:`w-full flex items-center gap-2 sm:gap-3 px-3 py-2 hover:bg-bambu-dark/30 transition-colors text-left`,title:m(t?`queue.batch.expand`:`queue.batch.collapse`),children:[t?(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray shrink-0`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0`}),t?(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300 shrink-0`}):(0,G.jsx)(Sl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium truncate min-w-0 flex-1`,children:e.batchName}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray shrink-0`,children:[n>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-emerald-700 dark:text-emerald-400`,children:[(0,G.jsx)(xs,{className:`w-3 h-3`}),n]}),r>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-3 h-3`}),r]}),i>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-orange-700 dark:text-orange-400`,children:[(0,G.jsx)(du,{className:`w-3 h-3`}),i]}),a>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-gray-400`,children:[(0,G.jsx)(Uo,{className:`w-3 h-3`}),a]}),(0,G.jsx)(`span`,{title:o??void 0,children:o?up(o,l,m):null})]})]}),!t&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary bg-black/20 p-2 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2`,children:e.items.map(e=>(0,G.jsx)(J3,{item:e,onRemove:()=>s(e),onRequeue:()=>c(e),timeFormat:l,hasPermission:f,canModify:p,t:m},e.id))})]},`batch-${e.batchId}`)})}),e.length>t&&(0,G.jsxs)(`div`,{className:`mt-4 flex flex-col items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:n,children:m(`queue.history.showMore`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:m(`queue.history.showingCount`,{shown:Math.min(t,e.length),total:e.length})})]})]})}var c6=50;function GUe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i,canModify:a}=Nd(),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)([]),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(null),[D,O]=(0,y.useState)(()=>localStorage.getItem(`queue.historySortBy`)||`date`),[k,A]=(0,y.useState)(()=>{let e=localStorage.getItem(`queue.historySortAsc`);return e===null?!1:e===`true`}),[j,M]=(0,y.useState)(c6),[N,P]=(0,y.useState)(()=>localStorage.getItem(`queue.pendingSortBy`)||`position`),[F,I]=(0,y.useState)(()=>{let e=localStorage.getItem(`queue.pendingSortAsc`);return e===null?!0:e===`true`}),[L,R]=(0,y.useState)(()=>{let e=new URLSearchParams(window.location.search).get(`tab`);if(e===`pipelines`||e===`history`||e===`timeline`||e===`queue`||e===`batches`)return e;let t=localStorage.getItem(`queue.activeTab`);return t===`history`||t===`timeline`||t===`pipelines`||t===`batches`?t:`queue`}),[z,B]=(0,y.useState)(()=>localStorage.getItem(`queue.activeLayout`)===`printer`?`printer`:`position`),[V,ee]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`queue.batchCollapsed`);return e?JSON.parse(e):{}}catch{return{}}}),[te,ne]=(0,y.useState)(null),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(null);(0,y.useEffect)(()=>{localStorage.setItem(`queue.historySortBy`,D)},[D]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.historySortAsc`,String(k))},[k]),(0,y.useEffect)(()=>{M(c6)},[D,k,u]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.pendingSortBy`,N)},[N]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.pendingSortAsc`,String(F))},[F]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.activeTab`,L)},[L]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.activeLayout`,z)},[z]),(0,y.useEffect)(()=>{localStorage.setItem(`queue.batchCollapsed`,JSON.stringify(V))},[V]);let se=T4(w4(a3,{activationConstraint:{distance:8}}),w4(t3,{coordinateGetter:U3})),{data:H}=K({queryKey:[`settings`],queryFn:Z.getSettings}),ce=H?.time_format||`system`,{data:le}=K({queryKey:[`batches`,`active`],queryFn:()=>Z.getBatches(`active`)}),ue=le?.length??0,{data:de,isLoading:fe}=K({queryKey:[`queue`,o,c],queryFn:()=>Z.getQueue(o||void 0,c||void 0),refetchInterval:5e3}),{data:pe}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),me=q({mutationFn:e=>Z.updateSettings({queue_shortest_first:e}),onSuccess:()=>{t.invalidateQueries({queryKey:[`settings`]})}}),he=q({mutationFn:e=>Z.cancelQueueItem(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.cancelled`))},onError:()=>n(e(`queue.toast.cancelFailed`),`error`)}),ge=q({mutationFn:e=>Z.removeFromQueue(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`batches`]}),n(r.deleted===!1?e(`queue.toast.keptForOrder`):e(`queue.toast.removed`))},onError:()=>n(e(`queue.toast.removeFailed`),`error`)}),_e=q({mutationFn:e=>Z.stopQueueItem(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.stopped`))},onError:()=>n(e(`queue.toast.stopFailed`),`error`)}),[ve,ye]=(0,y.useState)(null),be=q({mutationFn:({id:e,skipFilamentCheck:t})=>Z.startQueueItem(e,{skipFilamentCheck:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]}),n(e(`queue.toast.released`)),ye(null)},onError:(t,r)=>{if(t instanceof sd&&t.status===409&&t.code===`insufficient_filament`){let e=t.detail?.deficit??[];ye({itemId:r.id,deficit:e});return}n(e(`queue.toast.startFailed`),`error`)}}),xe=q({mutationFn:e=>Z.reorderQueue(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`queue`]})},onError:()=>n(e(`queue.toast.reorderFailed`),`error`)}),Se=q({mutationFn:async()=>{let e=de?.filter(e=>[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status))||[],t=0,n=0;for(let r of e)(await Z.removeFromQueue(r.id)).deleted===!1?n+=1:t+=1;return{cleared:t,kept:n}},onSuccess:({cleared:r,kept:i})=>{t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`batches`]}),n(i>0?`${e(`queue.toast.historyCleared`,{count:r})} ${e(`queue.toast.historyKeptForOrders`,{kept:i})}`:e(`queue.toast.historyCleared`,{count:r}))},onError:()=>n(e(`queue.toast.clearHistoryFailed`),`error`)}),Ce=q({mutationFn:e=>Z.bulkUpdateQueue(e),onSuccess:e=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),w(!1),n(e.message)},onError:()=>n(e(`queue.toast.updateFailed`),`error`)}),we=q({mutationFn:async e=>{for(let t of e)await Z.cancelQueueItem(t);return e.length},onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),n(e(`queue.toast.bulkCancelled`,{count:r}))},onError:()=>n(e(`queue.toast.bulkCancelFailed`),`error`)}),Te=q({mutationFn:e=>Z.resumeQueueAfterFailure(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),E(null),n(e(`queue.toast.resumedAfterFailure`,{restored:r.restored,acknowledged:r.acknowledged}))},onError:()=>n(e(`queue.toast.resumeAfterFailureFailed`),`error`)}),Ee=q({mutationFn:e=>Z.createBatch(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),S([]),ie(!1),ee(e=>({...e,[r.id]:!1})),n(e(`queue.toast.batchCreated`,{name:r.name}))},onError:()=>n(e(`queue.toast.batchCreateFailed`),`error`)}),De=q({mutationFn:e=>Z.ungroupBatch(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`queue`]}),oe(null),n(e(`queue.toast.batchUngrouped`,{count:r.ungrouped_count}))},onError:()=>n(e(`queue.toast.batchUngroupFailed`),`error`)}),Oe=e=>{S(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},ke=(0,y.useMemo)(()=>{let e=new Set;return pe?.forEach(t=>{t.location&&e.add(t.location)}),de?.forEach(t=>{t.target_location&&e.add(t.target_location)}),Array.from(e).sort()},[pe,de]),Ae=(0,y.useCallback)(e=>u?e.target_location?e.target_location===u:e.printer_id?pe?.find(t=>t.id===e.printer_id)?.location===u:!1:!0,[u,pe]),je=(0,y.useMemo)(()=>{let e=de?.filter(e=>e.status===`pending`)||[];u&&(e=e.filter(Ae));let t=e=>{if(!e.scheduled_time)return 0;let t=rp(e.scheduled_time)?.getTime()??0;return t>Date.now()+4320*60*60*1e3?0:t};return H?.queue_shortest_first?[...e].sort((e,t)=>NUe(e,t,!0)):[...e].sort((e,n)=>{let r;if(N===`name`){let t=e.archive_name||e.library_file_name||``,i=n.archive_name||n.library_file_name||``;r=t.localeCompare(i)}else r=N===`printer`?(e.printer_name||``).localeCompare(n.printer_name||``):N===`time`?t(e)-t(n):e.position-n.position;return F?r:-r})},[de,N,F,Ae,u,H?.queue_shortest_first]),Me=()=>{let e=je.map(e=>e.id);x.length===e.length?S([]):S(e)},Ne=(0,y.useMemo)(()=>{let e=de?.filter(e=>e.status===`printing`)||[];return u&&(e=e.filter(Ae)),e},[de,u,Ae]),Pe=(0,y.useMemo)(()=>{let e=new Set;if(!de)return e;let t=new Set;de.forEach(e=>{e.status===`printing`&&e.printer_id&&t.add(e.printer_id)});let n=e=>e.scheduled_time?(rp(e.scheduled_time)?.getTime()??0)>Date.now():!1,r=(e,t)=>X3(e,t,H?.queue_shortest_first??!1),i=new Map;return de.filter(e=>e.status===`pending`&&e.printer_id!=null&&!e.manual_start&&!n(e)).sort(r).forEach(e=>{let t=i.get(e.printer_id)??[];t.push(e),i.set(e.printer_id,t)}),de.forEach(r=>{if(r.status===`pending`&&!r.waiting_reason&&!n(r)&&!(r.print_time_seconds==null||r.print_time_seconds<=0)&&!r.require_previous_success){if(r.printer_id==null){e.add(r.id);return}if(!t.has(r.printer_id)){if(r.manual_start){e.add(r.id);return}i.get(r.printer_id)?.[0]?.id===r.id&&e.add(r.id)}}}),e},[de,H?.queue_shortest_first]),[Fe,Ie]=(0,y.useState)(()=>Date.now()),Le=Pe.size>0;(0,y.useEffect)(()=>{if(!Le)return;Ie(Date.now());let e=setInterval(()=>Ie(Date.now()),3e4);return()=>clearInterval(e)},[Le]);let Re=(0,y.useMemo)(()=>{let e=new Set;return Ne.forEach(t=>{t.printer_id&&e.add(t.printer_id)}),Array.from(e)},[Ne]),ze=Co({queries:Re.map(e=>({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),refetchInterval:5e3}))}),Be=(0,y.useMemo)(()=>{let e={};return Re.forEach((t,n)=>{let r=ze[n];r?.data?.state&&(e[t]=r.data.state)}),e},[Re,ze]),Ve=(0,y.useMemo)(()=>{let e={};return Re.forEach((t,n)=>{let r=ze[n];r?.data&&(e[t]={progress:r.data.progress??void 0,remaining_time:r.data.remaining_time??void 0,state:r.data.state??void 0})}),e},[Re,ze]),He=(0,y.useMemo)(()=>{let e=de?.filter(e=>[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status))||[];return u&&(e=e.filter(Ae)),[...e].sort((e,t)=>{let n;if(D===`name`){let r=e.archive_name||e.library_file_name||``,i=t.archive_name||t.library_file_name||``;n=r.localeCompare(i)}else n=D===`printer`?(e.printer_name||``).localeCompare(t.printer_name||``):(rp(t.completed_at||t.created_at)?.getTime()??0)-(rp(e.completed_at||e.created_at)?.getTime()??0);return k?-n:n})},[de,D,k,Ae,u]),Ue=(0,y.useMemo)(()=>je.reduce((e,t)=>e+(t.print_time_seconds||0),0),[je]),We=(0,y.useMemo)(()=>je.reduce((e,t)=>e+(t.filament_used_grams||0),0),[je]),Ge=e=>{let t=e.active.id;ne(typeof t==`number`||typeof t==`string`?t:null)},Ke=e=>{let{active:t,over:n}=e;if(ne(null),!n||t.id===n.id)return;let r,i=t.id;if(typeof i==`string`&&i.startsWith(`batch-`)){let e=Number(i.slice(6));r=je.filter(t=>t.batch_id===e).map(e=>e.id)}else{let e=i;r=x.includes(e)&&x.length>1?x.slice().sort((e,t)=>je.findIndex(t=>t.id===e)-je.findIndex(e=>e.id===t)):[e]}if(r.length===0)return;let a,o=n.id;if(typeof o==`string`&&o.startsWith(`batch-`)){let e=Number(o.slice(6));a=je.findIndex(t=>t.batch_id===e)}else a=je.findIndex(e=>e.id===o);if(a===-1)return;let s=je[a],c=je.filter(e=>!r.includes(e.id)),l=c.findIndex(e=>e.id===s.id);l===-1&&(l=a),je.findIndex(e=>e.id===r[0])je.find(t=>t.id===e)).filter(e=>!!e),...c.slice(l)].map((e,t)=>({id:e.id,position:t+1}));xe.mutate(u)},qe=(0,y.useMemo)(()=>{let t=[],n=new Set;for(let r of je)if(r.batch_id!=null){if(n.has(r.batch_id))continue;n.add(r.batch_id);let i=je.filter(e=>e.batch_id===r.batch_id);t.push({kind:`batch`,batchId:r.batch_id,batchName:r.batch_name||e(`queue.batch.defaultName`),items:i})}else t.push({kind:`item`,item:r});return t},[je,e]),Je=r(`queue:reorder`)&&N===`position`&&!H?.queue_shortest_first,Ye=e=>e.kind===`item`?[e.item.id]:e.items.map(e=>e.id),Xe=(e,t,n)=>{let r=je.filter(t=>!e.includes(t.id)),i=r.findIndex(e=>e.id===t);if(i===-1)return;n&&(i+=1);let a=e.map(e=>je.find(t=>t.id===e)).filter(e=>!!e),o=[...r.slice(0,i),...a,...r.slice(i)];xe.mutate(o.map((e,t)=>({id:e.id,position:t+1})))},Ze=(e,t)=>{if(!Je)return{};let n=Ye(e[t]);return{onMoveUp:t>0?()=>Xe(n,Ye(e[t-1])[0],!1):void 0,onMoveDown:t{let r=Ye(e[t+1]);Xe(n,r[r.length-1],!0)}:void 0}},Qe=(0,y.useMemo)(()=>{let e=[];for(let t of qe)if(t.kind===`item`)e.push(t.item.id);else if(e.push(`batch-${t.batchId}`),!(V[t.batchId]??!0))for(let n of t.items)e.push(n.id);return e},[qe,V]),$e=(0,y.useMemo)(()=>x.length<2?!1:x.every(e=>{let t=je.find(t=>t.id===e);return t&&t.batch_id==null}),[x,je]),et=e=>{ee(t=>({...t,[e]:!(t[e]??!0)}))},tt=(0,y.useMemo)(()=>{let t=new Map,n=t=>{if(t.printer_id)return{key:`printer:${t.printer_id}`,label:t.printer_name||`Printer #${t.printer_id}`,printerId:t.printer_id,targetModel:null,isUnassigned:!1};if((t.variants?.length??0)>1){let n=t.variants.map(e=>e.target_model).join(` / `);return{key:`models:${n}`,label:`${e(`queue.filter.any`)} ${n}`,printerId:null,targetModel:null,isUnassigned:!1}}return t.target_model?{key:`model:${t.target_model}`,label:`${e(`queue.filter.any`)} ${t.target_model}`,printerId:null,targetModel:t.target_model,isUnassigned:!1}:{key:`unassigned`,label:e(`queue.filter.unassigned`),printerId:null,targetModel:null,isUnassigned:!0}};for(let e of qe){let r=e.kind===`item`?e.item:e.items[0];if(!r)continue;let i=n(r);t.has(i.key)||t.set(i.key,{...i,rows:[]}),t.get(i.key).rows.push(e)}return Array.from(t.values()).sort((e,t)=>e.isUnassigned&&!t.isUnassigned?1:!e.isUnassigned&&t.isUnassigned?-1:e.label.localeCompare(t.label))},[qe,e]),nt=(0,y.useMemo)(()=>{let e=new Map;return de?.forEach(t=>{if(t.status===`skipped`&&t.error_message===`Previous print failed or was aborted`&&t.printer_id){let n=e.get(t.printer_id);n?n.count+=1:e.set(t.printer_id,{name:t.printer_name||`Printer #${t.printer_id}`,count:1})}}),Array.from(e.entries()).map(([e,{name:t,count:n}])=>({printerId:e,printerName:t,skippedCount:n})).sort((e,t)=>e.printerName.localeCompare(t.printerName))},[de]),rt=e=>{let t=0,n=0,r=0;for(let i of e){let e=i.kind===`item`?[i.item]:i.items;for(let i of e)t+=1,n+=i.print_time_seconds||0,r+=i.filament_used_grams||0}return{count:t,time:n,weight:r}};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-6`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Qc,{className:`w-7 h-7 text-bambu-green`}),e(`queue.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`queue.subtitle`)})]})}),(0,G.jsx)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary mb-6 overflow-x-auto`,children:[{id:`queue`,label:e(`queue.tabs.queue`),icon:js,count:je.length+Ne.length},{id:`batches`,label:e(`queue.tabs.batches`),icon:Cl,count:ue},{id:`history`,label:e(`queue.tabs.history`),icon:Qc,count:He.length},{id:`timeline`,label:e(`queue.tabs.timeline`),icon:ds,count:null},{id:`pipelines`,label:e(`queue.tabs.pipelines`),icon:ed,count:null}].map(({id:e,label:t,icon:n,count:r})=>(0,G.jsxs)(`button`,{onClick:()=>R(e),className:`px-4 py-2.5 text-sm flex items-center gap-2 border-b-2 -mb-px transition-colors whitespace-nowrap ${L===e?`text-white border-bambu-green font-medium`:`text-bambu-gray border-transparent hover:text-white`}`,children:[(0,G.jsx)(n,{className:`w-4 h-4`}),t,r!==null&&r>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full ${L===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:r})]},e))}),L!==`pipelines`&&L!==`batches`&&(0,G.jsx)(jUe,{activeCount:Ne.length,pendingCount:je.length,totalTime:Ue,totalWeight:We,historyCount:He.length,t:e}),L===`queue`&&nt.length>0&&r(`queue:update_all`)&&(0,G.jsx)(`div`,{className:`mb-4 space-y-2`,children:nt.map(({printerId:t,printerName:n,skippedCount:r})=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 bg-orange-50 dark:bg-orange-500/10 border border-orange-300 dark:border-orange-500/30 rounded-lg`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-orange-600 dark:text-orange-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-orange-800 dark:text-orange-200`,children:e(`queue.resumeAfterFailure.banner`,{printer:n,count:r})}),(0,G.jsx)(`div`,{className:`text-xs text-orange-800/80 dark:text-orange-200/70 mt-0.5`,children:e(`queue.resumeAfterFailure.bannerHint`)})]}),(0,G.jsxs)(`button`,{onClick:()=>E({printerId:t,printerName:n,skippedCount:r}),className:`flex items-center gap-1.5 px-3 py-1.5 bg-orange-100 dark:bg-orange-500/20 hover:bg-orange-200 dark:hover:bg-orange-500/30 text-orange-900 dark:text-orange-100 text-sm rounded-md border border-orange-300 dark:border-orange-500/40 transition-colors flex-shrink-0`,children:[(0,G.jsx)(Ts,{className:`w-4 h-4`}),e(`queue.resumeAfterFailure.button`)]})]},t))}),L!==`pipelines`&&L!==`batches`&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-4 mb-6`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:o===-1?`unassigned`:o||``,onChange:e=>{let t=e.target.value;s(t===`unassigned`?-1:t===``?null:Number(t))},children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allPrinters`)}),(0,G.jsx)(`option`,{value:`unassigned`,children:e(`queue.filter.unassigned`)}),pe?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:c,onChange:e=>l(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allStatus`)}),(0,G.jsx)(`option`,{value:`pending`,children:e(`queue.status.pending`)}),(0,G.jsx)(`option`,{value:`printing`,children:e(`queue.status.printing`)}),(0,G.jsx)(`option`,{value:`completed`,children:e(`queue.status.completed`)}),(0,G.jsx)(`option`,{value:`failed`,children:e(`queue.status.failed`)}),(0,G.jsx)(`option`,{value:`skipped`,children:e(`queue.status.skipped`)}),(0,G.jsx)(`option`,{value:`cancelled`,children:e(`queue.status.cancelled`)})]}),ke.length>0&&(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-2 text-sm sm:text-base bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none min-w-0 flex-1 sm:flex-none`,value:u,onChange:e=>d(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`queue.filter.allLocations`)}),ke.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsx)(`div`,{className:`hidden sm:block flex-1`}),L===`history`&&He.length>0&&(0,G.jsxs)(Q,{className:`w-full sm:w-auto`,variant:`secondary`,size:`sm`,onClick:()=>p(!0),disabled:!r(`queue:delete_all`),title:r(`queue:delete_all`)?void 0:e(`queue.permissions.noClearHistory`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`queue.clearHistory`)]})]}),L===`queue`&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 mb-6`,children:[(0,G.jsxs)(`div`,{className:`inline-flex items-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-0.5`,children:[(0,G.jsxs)(`button`,{className:`px-3 py-1.5 text-xs sm:text-sm rounded-md transition-colors flex items-center gap-1.5 ${z===`position`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,onClick:()=>B(`position`),title:e(`queue.layout.flatList`),children:[(0,G.jsx)(el,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.layout.flatList`)})]}),(0,G.jsxs)(`button`,{className:`px-3 py-1.5 text-xs sm:text-sm rounded-md transition-colors flex items-center gap-1.5 ${z===`printer`?`bg-bambu-dark-tertiary text-white`:`text-bambu-gray hover:text-white`}`,onClick:()=>B(`printer`),title:e(`queue.layout.groupByPrinter`),children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.layout.byPrinter`)})]})]}),(0,G.jsxs)(`button`,{onClick:()=>{let e=!(H?.queue_shortest_first??!1);me.mutate(e)},className:`flex items-center gap-1 px-2 py-1.5 text-xs rounded-lg border transition-colors ${H?.queue_shortest_first?`bg-bambu-green/20 border-bambu-green text-bambu-green`:`bg-bambu-dark-secondary border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,title:e(`queue.sjf.tooltip`,`Shortest Job First — scheduler prioritizes shorter prints`),children:[(0,G.jsx)(hu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.sjf.label`,`SJF`)}),(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full ${H?.queue_shortest_first?`bg-bambu-green`:`bg-bambu-gray`}`})]})]}),L===`pipelines`?(0,G.jsx)(EUe,{}):L===`batches`?(0,G.jsx)(RUe,{hasPermission:r,t:e}):fe?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`common.loading`)}):de?.length===0?(0,G.jsxs)(zd,{className:`p-12 text-center border-dashed`,children:[(0,G.jsx)(as,{className:`w-16 h-16 text-bambu-gray mx-auto mb-4 opacity-50`}),(0,G.jsx)(`h3`,{className:`text-xl font-medium text-white mb-2`,children:e(`queue.empty.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray max-w-md mx-auto`,children:e(`queue.empty.description`)})]}):L===`timeline`?(0,G.jsx)(LUe,{queueItems:de||[],printers:pe||[],printerStatuses:Ve,sjfEnabled:H?.queue_shortest_first??!1,onItemClick:e=>{[`completed`,`failed`,`skipped`,`cancelled`].includes(e.status)?_(e):e.status===`pending`?h(e):e.status===`printing`&&b({type:`stop`,item:e})},t:e}):L===`history`?(0,G.jsx)(WUe,{items:He,collapsed:!1,visibleCount:j,onShowMore:()=>M(e=>e+c6),sortBy:D,sortAsc:k,onSortByChange:O,onSortAscToggle:()=>A(!k),onRemove:e=>b({type:`remove`,item:e}),onRequeue:_,timeFormat:ce,batchCollapsed:V,toggleBatchCollapsed:et,hasPermission:r,canModify:a,t:e}):(0,G.jsxs)(`div`,{className:`space-y-6 sm:space-y-8`,children:[Ne.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white mb-3 sm:mb-4 flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-blue-400 animate-pulse`}),e(`queue.sections.currentlyPrinting`)]}),(0,G.jsx)(`div`,{className:`space-y-2 sm:space-y-3`,children:Ne.map(t=>(0,G.jsx)(o6,{item:t,onEdit:()=>{},onCancel:()=>{},onRemove:()=>{},onStop:()=>b({type:`stop`,item:t}),onRequeue:()=>{},onStart:()=>{},timeFormat:ce,hasPermission:r,canModify:a,printerState:t.printer_id?Be[t.printer_id]:null,t:e},t.id))})]}),je.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mb-3 sm:mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-base sm:text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 sm:w-5 sm:h-5 text-yellow-600 dark:text-yellow-400`}),e(`queue.sections.queued`),(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm font-normal text-bambu-gray`,children:[`(`,e(`queue.itemCount`,{count:je.length}),`)`]}),(0,G.jsx)(`span`,{className:`hidden sm:inline text-xs text-bambu-gray ml-2`,title:e(`queue.reorderHint`),children:e(`queue.dragToReorder`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{className:`px-2 sm:px-3 py-1.5 text-xs sm:text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:N,onChange:e=>P(e.target.value),children:[(0,G.jsx)(`option`,{value:`position`,children:e(`queue.sort.byPosition`)}),(0,G.jsx)(`option`,{value:`name`,children:e(`queue.sort.byName`)}),(0,G.jsx)(`option`,{value:`printer`,children:e(`queue.sort.byPrinter`)}),(0,G.jsx)(`option`,{value:`time`,children:e(`queue.sort.bySchedule`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>I(!F),title:e(F?`common.ascending`:`common.descending`),className:`px-2`,children:F?(0,G.jsx)(Ho,{className:`w-4 h-4`}):(0,G.jsx)(Io,{className:`w-4 h-4`})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mb-3 sm:mb-4 p-2 sm:p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:Me,className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm`,children:[x.length===je.length&&je.length>0?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4`}),x.length===je.length&&je.length>0?e(`queue.bulkEdit.deselectAll`):e(`queue.bulkEdit.selectAll`)]}),x.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-bambu-gray`,children:e(`queue.bulkEdit.selected`,{count:x.length})}),(0,G.jsx)(`div`,{className:`hidden sm:block h-4 w-px bg-bambu-dark-tertiary`}),$e&&(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>ie(!0),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-cyan-700 dark:text-cyan-300 hover:text-cyan-900 dark:hover:text-cyan-200`,title:e(`queue.batch.groupAsBatch`),children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.batch.groupAsBatch`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>w(!0),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-bambu-green hover:text-bambu-green-light`,disabled:!i(`queue:update_own`,`queue:update_all`),title:i(`queue:update_own`,`queue:update_all`)?e(`queue.bulkEdit.editSelected`):e(`queue.permissions.noEditItems`),children:[(0,G.jsx)(Al,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.bulkEdit.editSelected`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>we.mutate(x),className:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300`,disabled:we.isPending||!i(`queue:delete_own`,`queue:delete_all`),title:i(`queue:delete_own`,`queue:delete_all`)?e(`queue.bulkEdit.cancelSelected`):e(`queue.permissions.noCancelItems`),children:[(0,G.jsx)(nd,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`queue.bulkEdit.cancelSelected`)})]})]})]}),(0,G.jsxs)(k3,{sensors:se,collisionDetection:M4,onDragStart:Ge,onDragEnd:Ke,children:[(0,G.jsx)(z3,{items:Qe,strategy:mUe,children:z===`position`?(0,G.jsx)(`div`,{className:`space-y-2 sm:space-y-3`,children:qe.map((t,n)=>(0,G.jsx)(s6,{row:t,collapsed:t.kind===`batch`?V[t.batchId]??!0:!1,onToggleBatch:t.kind===`batch`?()=>et(t.batchId):void 0,onUngroup:t.kind===`batch`?()=>oe(t.batchId):void 0,setEditItem:h,setConfirmAction:b,startMutation:be,selectedItems:x,handleToggleSelect:Oe,timeFormat:ce,hasPermission:r,canModify:a,t:e,etaEligibleIds:Pe,etaNow:Fe,aggregateForRows:rt,...Ze(qe,n),onMoveBlock:Je?Xe:void 0},t.kind===`item`?`item-${t.item.id}`:`batch-${t.batchId}`))}):(0,G.jsx)(`div`,{className:`space-y-4`,children:tt.map(t=>{let n=rt(t.rows);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-t-lg`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 ${t.isUnassigned?`text-orange-600 dark:text-orange-400`:t.targetModel?`text-blue-600 dark:text-blue-400`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`font-semibold text-white text-sm`,children:t.label}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex flex-wrap gap-x-3`,children:[(0,G.jsx)(`span`,{children:e(`queue.itemCount`,{count:n.count})}),n.time>0&&(0,G.jsx)(`span`,{children:lp(n.time)}),n.weight>0&&(0,G.jsx)(`span`,{children:r6(n.weight)})]})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark/40 border border-t-0 border-bambu-dark-tertiary rounded-b-lg p-2 space-y-2`,children:t.rows.map((n,i)=>(0,G.jsx)(s6,{row:n,collapsed:n.kind===`batch`?V[n.batchId]??!0:!1,onToggleBatch:n.kind===`batch`?()=>et(n.batchId):void 0,onUngroup:n.kind===`batch`?()=>oe(n.batchId):void 0,setEditItem:h,setConfirmAction:b,startMutation:be,selectedItems:x,handleToggleSelect:Oe,timeFormat:ce,hasPermission:r,canModify:a,t:e,etaEligibleIds:Pe,etaNow:Fe,aggregateForRows:rt,...Ze(t.rows,i),onMoveBlock:Je?Xe:void 0},n.kind===`item`?`item-${n.item.id}`:`batch-${n.batchId}`))})]},t.key)})})}),(0,G.jsx)(uUe,{children:(()=>{if(te===null)return null;if(typeof te==`string`&&te.startsWith(`batch-`)){let t=Number(te.slice(6)),n=je.filter(e=>e.batch_id===t);if(n.length===0)return null;let r=n[0].batch_name||e(`queue.batch.defaultName`);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border-2 border-cyan-400 rounded-lg shadow-2xl`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e(`queue.dragGhost.batch`,{defaultValue:`{{name}} ({{count}} copies)`,name:r,count:n.length})})]})}return typeof te==`number`&&x.includes(te)&&x.length>1?(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-2 bg-bambu-dark-secondary border-2 border-cyan-400 rounded-lg shadow-2xl`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-cyan-700 dark:text-cyan-300`}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e(`queue.dragGhost.multiCount`,{count:x.length})})]}):null})()})]})]})]}),m&&(0,G.jsx)(zU,{mode:`edit-queue-item`,archiveId:m.archive_id??void 0,libraryFileId:m.library_file_id??void 0,archiveName:jT(m,t=>e(`common.plusNMore`,{count:t})),queueItem:m,onClose:()=>h(null)}),g&&(0,G.jsx)(zU,{mode:`create`,archiveId:g.archive_id??void 0,libraryFileId:g.library_file_id??void 0,archiveName:jT(g,t=>e(`common.plusNMore`,{count:t})),onClose:()=>_(null)}),ve&&(0,G.jsx)(of,{title:e(`queue.filamentShort.confirmTitle`),message:e(`queue.filamentShort.confirmIntro`)+` `+ve.deficit.map(t=>e(`queue.filamentShort.lineItem`,{slot:t.slot_id,required:Math.round(t.required_grams),remaining:t.remaining_grams==null?e(`queue.filamentShort.unknown`):Math.round(t.remaining_grams)})).join(` -`),confirmText:e(`queue.filamentShort.printAnyway`),variant:`warning`,onConfirm:()=>{be.mutate({id:ve.itemId,skipFilamentCheck:!0})},onCancel:()=>ye(null)}),v&&(0,G.jsx)(of,{title:v.type===`cancel`?e(`queue.confirm.cancelTitle`):v.type===`stop`?e(`queue.confirm.stopTitle`):e(`queue.confirm.removeTitle`),message:v.type===`cancel`?e(`queue.confirm.cancelMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisPrint`)}):v.type===`stop`?e(`queue.confirm.stopMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisPrint`)}):e(`queue.confirm.removeMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisItem`)}),confirmText:v.type===`cancel`?e(`queue.confirm.cancelButton`):v.type===`stop`?e(`queue.confirm.stopButton`):e(`common.remove`),variant:`danger`,onConfirm:()=>{v.type===`cancel`?he.mutate(v.item.id):v.type===`stop`?_e.mutate(v.item.id):ge.mutate(v.item.id),b(null)},onCancel:()=>b(null)}),T&&(0,G.jsx)(of,{title:e(`queue.resumeAfterFailure.confirmTitle`),message:e(`queue.resumeAfterFailure.confirmMessage`,{printer:T.printerName,count:T.skippedCount}),confirmText:e(`queue.resumeAfterFailure.button`),variant:`warning`,onConfirm:()=>Te.mutate(T.printerId),onCancel:()=>E(null)}),f&&(0,G.jsx)(of,{title:e(`queue.confirm.clearHistoryTitle`),message:e(`queue.confirm.clearHistoryMessage`,{count:He.length}),confirmText:e(`queue.clearHistory`),variant:`danger`,onConfirm:()=>{Se.mutate(),p(!1)},onCancel:()=>p(!1)}),C&&(0,G.jsx)(HUe,{selectedCount:x.length,printers:pe?.map(e=>({id:e.id,name:e.name,nozzle_count:e.nozzle_count}))||[],onSave:e=>{Object.keys(e).length>0&&Ce.mutate({item_ids:x,...e})},onClose:()=>w(!1),isSaving:Ce.isPending,canControlPrinter:r(`printers:control`),t:e}),re&&(0,G.jsx)(KUe,{itemCount:x.length,isSaving:Ee.isPending,defaultName:(()=>{let t=je.find(e=>x.includes(e.id)),n=(t?.archive_name||t?.library_file_name||``).replace(/\.gcode\.3mf$/i,``).replace(/\.3mf$/i,``);return n?`${n}`:e(`queue.batch.defaultName`)})(),onSave:e=>Ee.mutate({name:e,item_ids:x}),onClose:()=>ie(!1),t:e}),ae!==null&&(0,G.jsx)(of,{title:e(`queue.batch.ungroupConfirmTitle`),message:e(`queue.batch.ungroupConfirmMessage`),confirmText:e(`queue.batch.ungroup`),variant:`warning`,onConfirm:()=>De.mutate(ae),onCancel:()=>oe(null)})]})}function KUe({itemCount:e,defaultName:t,isSaving:n,onSave:r,onClose:i,t:a}){let[o,s]=(0,y.useState)(t);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 w-full max-w-md`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white mb-2 flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}),a(`queue.batch.groupAsBatch`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:a(`queue.batch.groupAsBatchDescription`,{count:e})}),(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:a(`queue.batch.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,autoFocus:!0,value:o,onChange:e=>s(e.target.value),placeholder:a(`queue.batch.namePlaceholder`),maxLength:120,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none mb-5`}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,disabled:n,children:a(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>{let e=o.trim();e&&r(e)},disabled:n||!o.trim(),children:a(n?`common.saving`:`queue.batch.create`)})]})]})})}function qUe({printDates:e,months:t=3}){let n=(0,y.useRef)(null),[r,i]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(e=>{i(e[0]?.contentRect.width||0)});return t.observe(e),()=>t.disconnect()},[]);let{weeks:a,monthLabels:o,printCounts:s}=(0,y.useMemo)(()=>{let n={};e.forEach(e=>{let t=pp(e);t&&(n[t]=(n[t]||0)+1)});let r=new Date,i=new Date(r);i.setMonth(i.getMonth()-t),i.setDate(i.getDate()-i.getDay());let a=[],o=[],s=[],c=-1,l=new Date(i),u=0;for(;l<=r;)l.getDay()===0&&s.length>0&&(a.push(s),s=[],u++),l.getMonth()!==c&&(o.push({month:l.toLocaleDateString(`en-US`,{month:`short`}),weekIndex:u}),c=l.getMonth()),s.push(new Date(l)),l.setDate(l.getDate()+1);return s.length>0&&a.push(s),{weeks:a,monthLabels:o,printCounts:n}},[e,t]),c=Math.max(1,...Object.values(s)),l=e=>{if(e===0)return`bg-bambu-dark`;let t=e/c;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`},u=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],d=a.length,f=r-32-16,p=d>0?Math.floor((f-(d-1)*2)/d):12,m=Math.max(8,Math.min(20,p)),h=m<=10?10:12;return(0,G.jsx)(`div`,{ref:n,className:`w-full flex justify-center`,children:r>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`flex mb-1`,style:{marginLeft:36},children:o.map(({month:e,weekIndex:t},n)=>(0,G.jsx)(`div`,{className:`text-bambu-gray`,style:{fontSize:h,marginLeft:n===0?0:`${(t-(o[n-1]?.weekIndex||0))*(m+2)-24}px`},children:e},n))}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`flex flex-col`,style:{gap:2,marginRight:4,width:32},children:u.map((e,t)=>(0,G.jsx)(`div`,{className:`text-bambu-gray flex items-center`,style:{width:32,height:m,fontSize:h,visibility:t%2==1?`visible`:`hidden`},children:e},e))}),a.map((e,t)=>(0,G.jsx)(`div`,{className:`flex flex-col`,style:{gap:2},children:[0,1,2,3,4,5,6].map(t=>{let n=e.find(e=>e.getDay()===t);if(!n)return(0,G.jsx)(`div`,{style:{width:m,height:m}},t);let r=pp(n),i=s[r]||0,a=r===pp(new Date);return(0,G.jsx)(`div`,{className:`rounded-sm ${l(i)} ${a?`ring-1 ring-white`:``}`,style:{width:m,height:m},title:`${n.toLocaleDateString()}: ${i} print${i===1?``:`s`}`},t)})},t))]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray`,style:{fontSize:h},children:[(0,G.jsx)(`span`,{children:`Less`}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:m,height:m}})]}),(0,G.jsx)(`span`,{children:`More`})]})]})})}var c6=[`weight`,`prints`,`time`];function l6({value:e,onChange:t,exclude:n}){let{t:r}=U(),i={weight:r(`stats.filamentByWeight`),prints:r(`stats.filamentByPrints`),time:r(`stats.filamentByTime`)};return(0,G.jsx)(`div`,{className:`flex gap-0.5 bg-bambu-dark rounded-lg p-0.5`,children:(n?c6.filter(e=>!n.includes(e)):c6).map(n=>(0,G.jsx)(`button`,{onClick:()=>t(n),className:`px-2 py-0.5 text-xs rounded-md transition-colors ${e===n?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:i[n]},n))})}function u6(e){if(e>=1e6){let t=e/1e6;return`${t%1==0?t.toFixed(0):t.toFixed(1)}t`}if(e>=1e3){let t=e/1e3;return`${t%1==0?t.toFixed(0):t.toFixed(1)}kg`}return`${Math.round(e)}g`}var d6=[`#00ae42`,`#3b82f6`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`],JUe=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],f6=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`];function YUe({archives:e,currency:t=`$`,dateFrom:n,dateTo:r}){let{t:i}=U(),[a,o]=(0,y.useState)(`weight`),[s,c]=(0,y.useState)(`weight`),l=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||{date:r,filament:0,cost:0,energy:0,prints:0};i.filament+=e.filament_used_grams||0,i.cost+=e.cost||0,i.energy+=e.energy_kwh||0,i.prints+=e.quantity||1,t.set(r,i)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>({...e,dateLabel:new Date(e.date).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}))},[e]),u=(0,y.useMemo)(()=>{if(n&&r)return Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1;if(n)return Math.max((Date.now()-new Date(n).getTime())/864e5,0)+1;if(e.length<2)return 0;let t=e.map(e=>new Date(e.completed_at||e.created_at).getTime());return(Math.max(...t)-Math.min(...t))/864e5},[e,n,r]),d=(0,y.useMemo)(()=>{if(u>7)return[];let t=new Map,n=u>1;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=n.getHours(),i=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}T${String(r).padStart(2,`0`)}`,a=t.get(i)||{date:i,filament:0,cost:0,energy:0,prints:0};a.filament+=e.filament_used_grams||0,a.cost+=e.cost||0,a.energy+=e.energy_kwh||0,a.prints+=e.quantity||1,t.set(i,a)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>{let[t,r]=e.date.split(`T`),i=new Date(t),a=parseInt(r,10),o=n?`${JUe[i.getDay()]} ${f6[a]}`:f6[a];return{...e,dateLabel:o}})},[e,u]),f=(0,y.useMemo)(()=>{if(l.length<=60)return l;let e=new Map;return l.forEach(t=>{let n=new Date(t.date),r=new Date(n);r.setDate(n.getDate()-n.getDay());let i=`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,`0`)}-${String(r.getDate()).padStart(2,`0`)}`,a=e.get(i)||{week:i,filament:0,cost:0,energy:0,prints:0};a.filament+=t.filament,a.cost+=t.cost,a.energy+=t.energy,a.prints+=t.prints,e.set(i,a)}),Array.from(e.values()).sort((e,t)=>e.week.localeCompare(t.week)).map(e=>({date:e.week,dateLabel:`Week of ${new Date(e.week).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`,...e}))},[l]),p=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=(e.filament_type||`Unknown`).split(`, `);n.forEach(r=>{let i=(e.filament_used_grams||0)/n.length;t.set(r,(t.get(r)||0)+i)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t)})).sort((e,t)=>t.value-e.value)},[e]),m=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{(e.filament_type||`Unknown`).split(`, `).forEach(e=>{t.set(e,(t.get(e)||0)+1)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},[e]),h=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=(e.filament_type||`Unknown`).split(`, `),r=(e.actual_time_seconds||e.print_time_seconds||0)/n.length;n.forEach(e=>{t.set(e,(t.get(e)||0)+r)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e]),g=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{e.status!==`completed`&&e.status!==`failed`||(e.filament_type||`Unknown`).split(`, `).forEach(n=>{let r=t.get(n)||{completed:0,failed:0};e.status===`completed`?r.completed++:r.failed++,t.set(n,r)})}),Array.from(t.entries()).filter(([,e])=>e.completed+e.failed>=2).map(([e,t])=>{let n=t.completed+t.failed;return{name:e,rate:Math.round(t.completed/n*100),total:n}}).sort((e,t)=>t.rate-e.rate)},[e]),_=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{if(!e.filament_color)return;let n=e.filament_color.split(`,`).map(e=>e.trim()),r=(e.filament_used_grams||0)/n.length;n.forEach(e=>{let n=t.get(e)||{count:0,weight:0};n.count++,n.weight+=r,t.set(e,n)})}),Array.from(t.entries()).map(([e,t])=>({hex:e,value:s===`prints`?t.count:Math.round(t.weight)})).sort((e,t)=>t.value-e.value)},[e,s]),v=a===`weight`?p:a===`prints`?m:h,b=u<=7&&d.length>0?d:f,x=e.reduce((e,t)=>e+(t.filament_used_grams||0),0),S=e.reduce((e,t)=>e+(t.cost||0),0),C=e.reduce((e,t)=>e+(t.energy_kwh||0),0),w=e.reduce((e,t)=>e+(t.energy_cost||0),0),T=e.reduce((e,t)=>e+(t.quantity||1),0),E=new Set(e.map(e=>e.printer_id).filter(Boolean)).size;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 max-[640px]:grid-cols-1`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.periodFilament`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:u6(x)})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[E,` `,i(`nav.printers`).toLowerCase()]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.periodCost`)}),(0,G.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[t,S.toFixed(2)]})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[T,` `,i(`common.prints`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.avgPerPrint`)}),(0,G.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[T>0?(x/T).toFixed(0):0,`g`]})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[t,T>0?(S/T).toFixed(2):`0.00`,` avg`]})]})]}),b.length>0?(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:i(`stats.usageOverTime`)}),(0,G.jsx)(iA,{width:`100%`,height:250,children:(0,G.jsxs)(dH,{data:b,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`colorFilament`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:`#00ae42`,stopOpacity:.3}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:`#00ae42`,stopOpacity:0})]})}),(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,G.jsx)(EV,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}g`}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(0)}g`,`Filament`]}),(0,G.jsx)(iV,{type:`monotone`,dataKey:`filament`,stroke:`#00ae42`,strokeWidth:2,fillOpacity:1,fill:`url(#colorFilament)`})]})})]}):(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-8 text-center text-bambu-gray`,children:i(`stats.noPrintDataInRange`)}),C>0&&b.length>0&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.energyOverTime`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[C.toFixed(3),` kWh · `,t,w.toFixed(2)]})]}),(0,G.jsx)(iA,{width:`100%`,height:250,children:(0,G.jsxs)(dH,{data:b,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`colorEnergy`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:`#f59e0b`,stopOpacity:.3}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:`#f59e0b`,stopOpacity:0})]})}),(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,G.jsx)(EV,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}kWh`}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(3)} kWh`,i(`stats.energyUsed`)]}),(0,G.jsx)(iV,{type:`monotone`,dataKey:`energy`,stroke:`#f59e0b`,strokeWidth:2,fillOpacity:1,fill:`url(#colorEnergy)`})]})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.byMaterial`)}),(0,G.jsx)(l6,{value:a,onChange:o})]}),v.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(iA,{width:160,height:160,children:(0,G.jsxs)(uH,{children:[(0,G.jsx)(EB,{data:v,cx:`50%`,cy:`50%`,innerRadius:40,outerRadius:70,paddingAngle:2,dataKey:`value`,children:v.map((e,t)=>(0,G.jsx)(lz,{fill:d6[t%d6.length]},`cell-${t}`))}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[a===`weight`?u6(Number(e??0)):a===`time`?`${Number(e??0)}h`:`${e??0}`,a===`weight`?`Usage`:a===`time`?`Time`:`Prints`]})]})}),(0,G.jsx)(`div`,{className:`flex-1 space-y-2 overflow-hidden`,children:v.map((e,t)=>{let n=v.reduce((e,t)=>e+t.value,0),r=n>0?(e.value/n*100).toFixed(0):0;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-sm flex-shrink-0`,style:{backgroundColor:d6[t%d6.length]}}),(0,G.jsx)(`span`,{className:`text-white truncate flex-1`,children:e.name}),(0,G.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0`,children:[a===`weight`?u6(e.value):a===`time`?`${e.value}h`:e.value,` · `,r,`%`]})]},e.name)})})]}):(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noFilamentData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:i(`stats.filamentSuccess`)}),g.length>0?(0,G.jsx)(`div`,{className:`space-y-1.5`,children:g.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white truncate w-20 flex-shrink-0`,children:e.name}),(0,G.jsx)(`div`,{className:`flex-1 h-1.5 bg-bambu-dark-secondary rounded-full`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${e.rate>=90?`bg-status-ok`:e.rate>=70?`bg-status-warning`:`bg-status-error`}`,style:{width:`${e.rate}%`}})}),(0,G.jsxs)(`span`,{className:`font-medium flex-shrink-0 tabular-nums ${e.rate>=90?`text-status-ok`:e.rate>=70?`text-status-warning`:`text-status-error`}`,children:[e.rate,`%`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0 text-xs`,children:[`(`,e.total,`)`]})]},e.name))}):(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.colorDistribution`)}),(0,G.jsx)(l6,{value:s,onChange:c,exclude:[`time`]})]}),_.length>0?(()=>{let e=_.reduce((e,t)=>e+t.value,0);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`relative mx-auto`,style:{width:160,height:160},children:[(0,G.jsx)(iA,{width:`100%`,height:`100%`,children:(0,G.jsxs)(uH,{children:[(0,G.jsx)(EB,{data:_,cx:`50%`,cy:`50%`,innerRadius:45,outerRadius:70,paddingAngle:2,dataKey:`value`,children:_.map((e,t)=>(0,G.jsx)(lz,{fill:e.hex,stroke:`#1a1a1a`,strokeWidth:1},`color-${t}`))}),(0,G.jsx)(cz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[s===`weight`?u6(Number(e??0)):`${e??0}`,i(s===`weight`?`stats.filamentByWeight`:`stats.filamentByPrints`)]})]})}),(0,G.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`span`,{className:`text-lg font-bold text-white`,children:s===`weight`?u6(e):e}),(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[_.length,` `,_.length===1?`color`:`colors`]})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-1 mt-2`,children:_.slice(0,8).map(t=>{let n=e>0?(t.value/e*100).toFixed(0):0;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full flex-shrink-0 border border-black/20`,style:{backgroundColor:t.hex}}),(0,G.jsxs)(`span`,{className:`text-bambu-gray truncate`,children:[n,`%`]})]},t.hex)})}),_.length>8&&(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray mt-1 text-center`,children:[`+`,_.length-8,` more`]})]})})():(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noColorData`)})]})]})]})}function XUe({id:e,title:t,component:n,isHidden:r,size:i,columnSpan:a,onToggleVisibility:o,onToggleSize:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=B3({id:e}),m={transform:v4.Transform.toString(d),transition:f,opacity:p?.5:1};return r?null:(0,G.jsxs)(`div`,{ref:u,style:{...m,gridColumn:`span ${a}`},className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden ${p?`ring-2 ring-bambu-green shadow-lg`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{...c,...l,className:`cursor-grab active:cursor-grabbing p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Drag to reorder`,children:(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray`})}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:t})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:s,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Size: ${i===1?`1/4`:i===2?`1/2`:`Full`} - Click to cycle`,children:i===4?(0,G.jsx)(fl,{className:`w-4 h-4 text-bambu-gray hover:text-white`}):(0,G.jsx)(cl,{className:`w-4 h-4 text-bambu-gray hover:text-white`})}),(0,G.jsx)(`button`,{onClick:o,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Hide widget`,children:(0,G.jsx)(ic,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]})]}),(0,G.jsx)(`div`,{className:`p-4`,children:typeof n==`function`?n(i):n})]})}function ZUe({widgets:e,storageKey:t,columns:n=4,stackBelow:r,hideControls:i=!1,onResetLayout:a,renderControls:o}){let s=()=>{let t={};return e.forEach(e=>{t[e.id]=e.defaultSize||4}),t},[c,l]=(0,y.useState)(()=>{let n=localStorage.getItem(t);if(n)try{let e=JSON.parse(n);if(!e.sizes)e.sizes=s();else{let t=s();for(let n in t)n in e.sizes||(e.sizes[n]=t[n])}return e}catch{}return{order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}}),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(!r)return;let e=window.matchMedia(`(max-width: ${r}px)`),t=e=>{p(e.matches)};t(e);let n=e=>t(e);return e.addEventListener?e.addEventListener(`change`,n):e.addListener(n),()=>{e.removeEventListener?e.removeEventListener(`change`,n):e.removeListener(n)}},[r]);let m=r&&f?1:n;(0,y.useEffect)(()=>{let e=()=>d(e=>!e);return window.addEventListener(`toggle-hidden-panel`,e),()=>window.removeEventListener(`toggle-hidden-panel`,e)},[]),(0,y.useEffect)(()=>{localStorage.setItem(t,JSON.stringify(c))},[c,t]),(0,y.useEffect)(()=>{let t=e.map(e=>e.id).filter(e=>!c.order.includes(e));t.length>0&&l(e=>({...e,order:[...e.order,...t]}))},[e,c.order]);let h=w4(C4(i3,{activationConstraint:{distance:8}}),C4(e3,{coordinateGetter:H3})),g=e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&l(e=>{let r=e.order.indexOf(t.id),i=e.order.indexOf(n.id);return{...e,order:M3(e.order,r,i)}})},_=e=>{l(t=>({...t,hidden:t.hidden.includes(e)?t.hidden.filter(t=>t!==e):[...t.hidden,e]}))},v=e=>{l(t=>{let n=t.sizes[e]||4,r=n===1?2:n===2?4:1;return{...t,sizes:{...t.sizes,[e]:r}}})},b=()=>{l({order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}),a?.()},x=c.order.map(t=>e.find(e=>e.id===t)).filter(Boolean),S=x.filter(e=>!c.hidden.includes(e.id)),C=x.filter(e=>c.hidden.includes(e.id)),w=o?.({hiddenCount:C.length,showHiddenPanel:u,setShowHiddenPanel:d,resetLayout:b});return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[w,!i&&!o&&(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:b,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),`Reset Layout`]}),C.length>0&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>d(!u),children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),C.length,` Hidden`]})]}),u&&C.length>0&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-xl border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:`Hidden widgets (click to show):`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:C.map(e=>(0,G.jsxs)(`button`,{onClick:()=>_(e.id),className:`px-3 py-1.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded-lg text-sm text-white transition-colors flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-3 h-3`}),e.title]},e.id))})]}),(0,G.jsx)(O3,{sensors:h,collisionDetection:j4,onDragEnd:g,children:(0,G.jsx)(R3,{items:S.map(e=>e.id),strategy:P3,children:(0,G.jsx)(`div`,{className:`grid gap-6`,style:{gridTemplateColumns:`repeat(${m}, minmax(0, 1fr))`},children:S.map(e=>{let t=c.sizes[e.id]||2,n=Math.min(t,m);return(0,G.jsx)(XUe,{id:e.id,title:e.title,component:e.component,isHidden:c.hidden.includes(e.id),size:t,columnSpan:n,onToggleVisibility:()=>_(e.id),onToggleSize:()=>v(e.id)},e.id)})})})}),S.length===0&&(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:`All widgets are hidden.`}),(0,G.jsx)(Q,{className:`mt-4`,onClick:b,children:`Reset Layout`})]})]})}function QUe(e){let t=new Date,n=t.getUTCFullYear(),r=t.getUTCMonth(),i=t.getUTCDate(),a=e=>e.toISOString().split(`T`)[0],o=a(t);switch(e){case`today`:return{dateFrom:o,dateTo:o};case`this-week`:{let e=t.getUTCDay();return{dateFrom:a(new Date(Date.UTC(n,r,i-(e===0?6:e-1)))),dateTo:o}}case`this-month`:return{dateFrom:a(new Date(Date.UTC(n,r,1))),dateTo:o};case`last-7`:return{dateFrom:a(new Date(Date.UTC(n,r,i-6))),dateTo:o};case`last-30`:return{dateFrom:a(new Date(Date.UTC(n,r,i-29))),dateTo:o};case`last-90`:return{dateFrom:a(new Date(Date.UTC(n,r,i-89))),dateTo:o};case`this-year`:return{dateFrom:a(new Date(Date.UTC(n,0,1))),dateTo:o};case`all-time`:return{dateFrom:void 0,dateTo:void 0};case`custom`:return{}}}var $Ue=[`today`,`this-week`,`this-month`,`last-7`,`last-30`,`last-90`,`this-year`,`all-time`],eWe=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],p6=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`],m6=[{key:`<30m`,max:1800},{key:`30m-1h`,max:3600},{key:`1-2h`,max:7200},{key:`2-4h`,max:14400},{key:`4-8h`,max:28800},{key:`8-12h`,max:43200},{key:`12-24h`,max:86400},{key:`24h+`,max:1/0}],h6={backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`};function tWe({stats:e,currency:t}){let{t:n}=U(),r=e?.energy_data_warming_up===!0,i=r?n(`stats.energyWarmingUpTooltip`):void 0;return(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-4`,children:[{icon:Cl,color:`text-bambu-green`,label:n(`stats.totalPrints`),value:`${e?.total_prints||0}`},{icon:js,color:`text-blue-600 dark:text-blue-400`,label:n(`stats.printTime`),value:`${e?.total_print_time_hours?.toFixed(1)??`0`}h`},{icon:Cl,color:`text-orange-600 dark:text-orange-400`,label:n(`stats.filamentUsed`),value:u6(e?.total_filament_grams||0)},{icon:qs,color:`text-green-600 dark:text-green-400`,label:n(`stats.filamentCost`),value:`${t} ${e?.total_cost?.toFixed(2)??`0.00`}`},{icon:id,color:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.energyUsed`),value:`${e?.total_energy_kwh?.toFixed(3)??`0.000`} kWh`,warning:r,tooltip:i},{icon:qs,color:`text-yellow-500`,label:n(`stats.energyCost`),value:`${t} ${e?.total_energy_cost?.toFixed(2)??`0.00`}`,warning:r,tooltip:i}].map(e=>(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,title:e.tooltip,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark ${e.color}`,children:(0,G.jsx)(e.icon,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1`,children:[e.label,e.warning&&(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`,"aria-label":e.tooltip})]}),(0,G.jsx)(`p`,{className:`text-xl font-bold text-white`,children:e.value})]})]},e.label))})}function nWe({stats:e,printerMap:t,size:n=1}){let{t:r}=U(),i=(e?.successful_prints||0)+(e?.failed_prints||0),a=i?Math.round((e?.successful_prints||0)/i*100):0,o=n===1?112:n===2?128:144,s=o/2-8,c=s*2*Math.PI;return(0,G.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,G.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:o,height:o},children:[(0,G.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,G.jsx)(`circle`,{cx:o/2,cy:o/2,r:s,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,G.jsx)(`circle`,{cx:o/2,cy:o/2,r:s,fill:`none`,stroke:`#00ae42`,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${a/100*c} ${c}`})]}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsxs)(`span`,{className:`font-bold text-white ${n>=2?`text-2xl`:`text-xl`}`,children:[a,`%`]})})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-status-ok flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.successful`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.successful_prints||0})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 text-status-error flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.failed`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.failed_prints||0})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uo,{className:`w-4 h-4 text-status-warning flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.cancelled`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.cancelled_prints||0})]})]}),n>=2&&e?.prints_by_printer&&Object.keys(e.prints_by_printer).length>0&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:r(`stats.printsByPrinter`)}),(0,G.jsx)(`div`,{className:`grid gap-x-6 gap-y-1 ${n===4?`grid-cols-3`:`grid-cols-2`}`,style:{width:`fit-content`},children:Object.entries(e.prints_by_printer).map(([e,n])=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[120px]`,children:t.get(e)||`${r(`common.printer`)} ${e}`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n})]},e))})]})]})]})}function rWe({stats:e,printerMap:t,size:n=1}){let{t:r}=U(),i=e?.average_time_accuracy;if(i==null)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noTimeAccuracyData`)})});let a=(Math.min(150,Math.max(50,i))-50)/100*100,o=(e=>e>=95&&e<=105?`#00ae42`:e>105?`#3b82f6`:`#f97316`)(i),s=i-100,c=n===1?112:n===2?128:144,l=c/2-8,u=l*2*Math.PI,d=n===1?3:n===2?6:999,f=e?.time_accuracy_by_printer?Object.entries(e.time_accuracy_by_printer).slice(0,d):[];return(0,G.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,G.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:c,height:c},children:[(0,G.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,G.jsx)(`circle`,{cx:c/2,cy:c/2,r:l,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,G.jsx)(`circle`,{cx:c/2,cy:c/2,r:l,fill:`none`,stroke:o,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${a/100*u} ${u}`})]}),(0,G.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,G.jsxs)(`span`,{className:`font-bold text-white ${n>=2?`text-2xl`:`text-xl`}`,children:[i.toFixed(0),`%`]}),(0,G.jsxs)(`span`,{className:`text-xs ${s>=0?`text-blue-700 dark:text-blue-400`:`text-orange-700 dark:text-orange-400`}`,children:[s>=0?`+`:``,s.toFixed(0),`%`]})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:[(0,G.jsx)(Du,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{children:r(`stats.perfectEstimate`)})]}),f.length>0&&(0,G.jsx)(`div`,{className:`mt-2 ${n===4?`grid grid-cols-3 gap-x-6 gap-y-1`:n===2?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,style:{width:`fit-content`},children:f.map(([e,n])=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[100px]`,children:t.get(e)||`${r(`common.printer`)} ${e}`}),(0,G.jsxs)(`span`,{className:`font-medium ${n>=95&&n<=105?`text-status-ok`:n>105?`text-blue-700 dark:text-blue-400`:`text-status-warning`}`,children:[n.toFixed(0),`%`]})]},e))})]})]})}function iWe({printDates:e,dateFrom:t,dateTo:n}){let{days:r,hourlyCounts:i,maxCount:a}=(0,y.useMemo)(()=>{let r=new Date(t+`T00:00:00`),i=new Date(n+`T00:00:00`),a=[],o=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,s=new Date(r);for(;s<=i;)a.push({key:o(s),label:s.toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}),s.setDate(s.getDate()+1);let c={},l=0;return e.forEach(e=>{let t=rp(e);if(!t)return;let n=`${`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}-${t.getHours()}`;c[n]=(c[n]||0)+1,c[n]>l&&(l=c[n])}),{days:a,hourlyCounts:c,maxCount:Math.max(1,l)}},[e,t,n]),o=e=>{if(e===0)return`bg-bambu-dark`;let t=e/a;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`};return(0,G.jsxs)(`div`,{className:`w-full overflow-x-auto`,children:[(0,G.jsxs)(`div`,{className:`inline-flex flex-col`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`flex`,style:{gap:2,marginLeft:84},children:p6.map((e,t)=>(0,G.jsx)(`div`,{className:`text-bambu-gray text-[10px] text-center`,style:{width:20,visibility:t%2==0?`visible`:`hidden`},children:e},t))}),r.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`text-bambu-gray text-[10px] flex-shrink-0 truncate`,style:{width:80},children:e.label}),Array.from({length:24},(t,n)=>{let r=i[`${e.key}-${n}`]||0;return(0,G.jsx)(`div`,{className:`rounded-sm ${o(r)}`,style:{width:20,height:20},title:`${e.label} ${p6[n]}: ${r} print${r===1?``:`s`}`},n)})]},e.key))]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray text-xs`,children:[(0,G.jsx)(`span`,{children:`Less`}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:20,height:20}})]}),(0,G.jsx)(`span`,{children:`More`})]})]})}function aWe({printDates:e,size:t=2,dateFrom:n,dateTo:r}){let i=(0,y.useMemo)(()=>n&&r?Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1:n?Math.max((Date.now()-new Date(n).getTime())/864e5,0)+1:1/0,[n,r]);return i<=7&&n&&r?(0,G.jsx)(iWe,{printDates:e,dateFrom:n,dateTo:r}):(0,G.jsx)(qUe,{printDates:e,months:i===1/0?t===1?3:t===2?6:12:Math.max(1,Math.ceil(i/30))})}function oWe({stats:e,archives:t,printerMap:n}){let{t:r}=U(),[i,a]=(0,y.useState)(`weight`),[o,s]=(0,y.useState)(`weight`),c=(0,y.useMemo)(()=>{let a=new Map;return e?.prints_by_printer&&Object.entries(e.prints_by_printer).forEach(([e,t])=>{let n=a.get(e)||{prints:0,weight:0,time:0};n.prints=t,a.set(e,n)}),t.forEach(t=>{if(!t.printer_id)return;let n=String(t.printer_id),r=a.get(n)||{prints:0,weight:0,time:0};r.weight+=t.filament_used_grams||0,r.time+=t.actual_time_seconds||t.print_time_seconds||0,e?.prints_by_printer||r.prints++,a.set(n,r)}),Array.from(a.entries()).map(([e,t])=>({name:n.get(e)||`${r(`common.printer`)} ${e}`,value:i===`prints`?t.prints:i===`weight`?Math.round(t.weight):Math.round(t.time/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e,t,n,i,r]),l=(0,y.useMemo)(()=>{let e=Array.from({length:24},(e,t)=>({hour:t,label:p6[t],total:0,failures:0}));return t.forEach(t=>{if(!t.started_at)return;let n=rp(t.started_at);if(!n)return;let r=n.getHours();e[r].total++,t.status===`failed`&&e[r].failures++}),e},[t]),u=(0,y.useMemo)(()=>{let e=m6.map(e=>({name:e.key,count:0}));return t.forEach(t=>{let n=t.actual_time_seconds||t.print_time_seconds;if(!(!n||n<=0)){for(let t=0;t{let e=[0,0,0,0,0,0,0],n=new Set;t.forEach(t=>{let r=rp(t.created_at)||new Date(t.created_at),i=r.getDay()-1;i<0&&(i=6),o===`prints`?e[i]++:o===`weight`?e[i]+=t.filament_used_grams||0:e[i]+=(t.actual_time_seconds||t.print_time_seconds||0)/3600;let a=new Date(r);a.setDate(r.getDate()-(r.getDay()+6)%7),n.add(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`)});let r=Math.max(n.size,1);return eWe.map((t,n)=>({name:t,avg:Math.round(e[n]/r*10)/10}))},[t,o]),f=e=>({unit:e===`weight`?`g`:e===`time`?`h`:``,color:e===`weight`?`#00ae42`:e===`time`?`#3b82f6`:`#f59e0b`}),p=f(i),m=r(i===`weight`?`stats.filamentByWeight`:i===`time`?`stats.hours`:`common.prints`),h=f(o),g=r(o===`weight`?`stats.avgWeight`:o===`time`?`stats.avgTime`:`stats.avgPrints`);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:r(`stats.printsByPrinter`)}),(0,G.jsx)(l6,{value:i,onChange:a})]}),c.length>0?(0,G.jsx)(iA,{width:`100%`,height:Math.max(140,c.length*40),children:(0,G.jsxs)(aH,{data:c,layout:`vertical`,margin:{left:10},children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{type:`number`,stroke:`#9ca3af`,tick:{fontSize:11},unit:p.unit}),(0,G.jsx)(EV,{type:`category`,dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11},width:100}),(0,G.jsx)(cz,{contentStyle:h6,formatter:e=>[i===`weight`?u6(Number(e??0)):`${e??0}${p.unit}`,m]}),(0,G.jsx)(pV,{dataKey:`value`,fill:p.color,radius:[0,4,4,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noPrinterData`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:r(`stats.printDuration`)}),t.length>0?(0,G.jsx)(iA,{width:`100%`,height:160,children:(0,G.jsxs)(aH,{data:u,children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,G.jsx)(EV,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,G.jsx)(cz,{contentStyle:h6}),(0,G.jsx)(pV,{dataKey:`count`,name:r(`common.prints`),fill:`#00ae42`,radius:[4,4,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:r(`stats.printHabits`)}),(0,G.jsx)(l6,{value:o,onChange:s})]}),t.length>0?(0,G.jsx)(iA,{width:`100%`,height:160,children:(0,G.jsxs)(aH,{data:d,children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,G.jsx)(EV,{stroke:`#9ca3af`,tick:{fontSize:11},unit:h.unit}),(0,G.jsx)(cz,{contentStyle:h6,formatter:e=>[`${e??0}${h.unit}`,g]}),(0,G.jsx)(pV,{dataKey:`avg`,fill:h.color,radius:[4,4,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:r(`stats.printTimeOfDay`)}),t.length>0?(0,G.jsx)(iA,{width:`100%`,height:160,children:(0,G.jsxs)(aH,{data:l,children:[(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(xV,{dataKey:`label`,stroke:`#9ca3af`,tick:{fontSize:10},interval:5}),(0,G.jsx)(EV,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,G.jsx)(cz,{contentStyle:h6}),(0,G.jsx)(pV,{dataKey:`total`,name:r(`stats.totalPrints`),fill:`#00ae42`,radius:[2,2,0,0]}),(0,G.jsx)(pV,{dataKey:`failures`,name:r(`stats.failed`),fill:`#ef4444`,radius:[2,2,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]})]})]})}function sWe({archives:e,currency:t,dateFrom:n,dateTo:r}){let{t:i}=U();return!e||e.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noPrintData`)}):(0,G.jsx)(YUe,{archives:e,currency:t,dateFrom:n,dateTo:r})}function cWe({size:e=1,dateFrom:t,dateTo:n,createdById:r}){let{t:i}=U(),a=!!(t||n),{data:o,isLoading:s}=K({queryKey:[`failureAnalysis`,t,n,r??`all`],queryFn:()=>Z.getFailureAnalysis({...a?{dateFrom:t,dateTo:n}:{days:30},createdById:r})});if(s)return(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(!o||o.total_prints===0)return(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(a?`stats.noPrintDataInRange`:`stats.noPrintDataLast30Days`)});let c=e===1?5:e===2?8:999,l=Object.entries(o.failures_by_reason).sort(([,e],[,t])=>t-e),u=l.slice(0,c),d=l.length>c;return(0,G.jsxs)(`div`,{className:`${e>=2?`flex gap-8`:`space-y-4`}`,children:[(0,G.jsxs)(`div`,{className:e>=2?`flex-shrink-0`:``,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 ${o.failure_rate>20?`text-status-error`:o.failure_rate>10?`text-status-warning`:`text-status-ok`}`}),(0,G.jsxs)(`span`,{className:`font-bold text-white ${e>=2?`text-3xl`:`text-2xl`}`,children:[o.failure_rate.toFixed(1),`%`]})]})}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray mt-1`,children:i(`stats.failedPrintsCount`,{failed:o.failed_prints,total:o.total_prints})}),o.trend&&o.trend.length>=2&&(0,G.jsx)(`div`,{className:`${e>=2?`mt-4`:`mt-2 pt-2 border-t border-bambu-dark-tertiary`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 ${o.trend[o.trend.length-1].failure_rate0&&(0,G.jsxs)(`div`,{className:`flex-1 ${e>=2?`border-l border-bambu-dark-tertiary pl-8`:`pt-2`}`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:i(e>=2?`stats.failureReasons`:`stats.topFailureReasons`)}),(0,G.jsx)(`div`,{className:`${e===4?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,children:u.map(([t,n])=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white truncate ${e===4?`max-w-[200px]`:`max-w-[160px]`}`,children:t?i(`editArchive.failureReasons.${t}`,{defaultValue:t}):i(`common.unknown`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray ml-2`,children:n})]},t))}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:i(`common.more`,{count:l.length-c})})]})]})}function lWe({archives:e,currency:t}){let{t:n}=U(),r=(0,y.useMemo)(()=>{let r=[];if(e.length===0)return r;let i=t=>{let n=null,r=0;return e.forEach(e=>{let i=t(e);i&&i>r&&(r=i,n=e)}),{archive:n,value:r}},a=i(e=>e.status===`completed`?e.actual_time_seconds:null);a.archive&&r.push({icon:js,iconColor:`text-blue-600 dark:text-blue-400`,label:n(`stats.longestPrint`),value:lp(a.value),detail:a.archive.print_name||null});let o=i(e=>e.filament_used_grams);o.archive&&r.push({icon:Cl,iconColor:`text-orange-600 dark:text-orange-400`,label:n(`stats.heaviestPrint`),value:u6(o.value),detail:o.archive.print_name||null});let s=i(e=>(e.cost??0)+(e.energy_cost??0));s.archive&&r.push({icon:qs,iconColor:`text-green-600 dark:text-green-400`,label:n(`stats.mostExpensivePrint`),value:`${t}${s.value.toFixed(2)}`,detail:s.archive.print_name||null});let c=new Map;e.forEach(e=>{let t=rp(e.created_at)||new Date(e.created_at),n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;c.set(n,(c.get(n)||0)+1)});let l=``,u=0;c.forEach((e,t)=>{e>u&&(u=e,l=t)}),u>1&&r.push({icon:as,iconColor:`text-purple-600 dark:text-purple-400`,label:n(`stats.busiestDay`),value:`${u} ${n(`common.prints`)}`,detail:(()=>{let[e,t,n]=l.split(`-`).map(Number);return new Date(e,t-1,n).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})})()});let d=[...e].filter(e=>e.status===`completed`||e.status===`failed`).sort((e,t)=>new Date(t.completed_at||t.created_at).getTime()-new Date(e.completed_at||e.created_at).getTime()),f=0;for(let e of d)if(e.status===`completed`)f++;else break;return f>0&&r.push({icon:id,iconColor:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.successStreak`),value:`${f}`,detail:f===1?n(`stats.streakPrint`):n(`stats.streakPrints`,{count:f})}),r},[e,t,n]);return r.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:n(`stats.noArchiveData`)}):(0,G.jsx)(`div`,{className:`space-y-3`,children:r.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-1.5 rounded-lg bg-bambu-dark ${e.iconColor}`,children:(0,G.jsx)(e.icon,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.label}),(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-bold text-white`,children:e.value}),e.detail&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.detail})]})]})]},t))})}function uWe(){let{t:e}=U(),{showToast:t}=qd(),{hasPermission:n,authEnabled:r}=Nd(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(0),[u,d]=(0,y.useState)(0),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),v=r&&n(`stats:filter_by_user`),[b,x]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`bambusy-stats-timeframe`);if(e){let t=JSON.parse(e);if(t.preset)return t}}catch{}return{preset:`all-time`,dateFrom:void 0,dateTo:void 0}}),[S,C]=(0,y.useState)(!1);(0,y.useEffect)(()=>{localStorage.setItem(`bambusy-stats-timeframe`,JSON.stringify(b))},[b]);let w=(0,y.useMemo)(()=>b.preset===`custom`?{dateFrom:b.dateFrom,dateTo:b.dateTo}:QUe(b.preset),[b]);(0,y.useEffect)(()=>{let e=()=>{try{let e=localStorage.getItem(`bambusy-dashboard-layout-v2`);e&&d(JSON.parse(e).hidden?.length||0)}catch{d(0)}};e(),window.addEventListener(`storage`,e);let t=setInterval(e,2e3);return()=>{window.removeEventListener(`storage`,e),clearInterval(t)}},[c]);let T=m===null?void 0:m,{data:E,isLoading:D,isFetching:O,refetch:k}=K({queryKey:[`archiveStats`,w.dateFrom,w.dateTo,T??`all`],queryFn:()=>Z.getArchiveStats({dateFrom:w.dateFrom,dateTo:w.dateTo,createdById:T})}),{data:A}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:j,isFetching:M,refetch:N}=K({queryKey:[`archivesSlim`,w.dateFrom,w.dateTo,T??`all`],queryFn:()=>Z.getArchivesSlim(w.dateFrom,w.dateTo,T)}),{data:P}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:F}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:v}),I=(0,y.useMemo)(()=>m===null?e(`stats.allUsers`,`All Users`):m===-1?e(`stats.noUser`,`No User (System)`):F?.find(e=>e.id===m)?.username??`?`,[m,F,e]),L=async n=>{s(!1),a(!0);try{let{blob:r,filename:i}=await Z.exportStats({format:n,days:90,createdById:T}),a=URL.createObjectURL(r),o=document.createElement(`a`);o.href=a,o.download=i,o.click(),URL.revokeObjectURL(a),t(e(`stats.exportDownloaded`))}catch{t(e(`stats.exportFailed`),`error`)}finally{a(!1)}},R=async()=>{p(!0);try{let n=await Z.recalculateCosts();await Promise.all([k(),N()]),t(e(`stats.recalculatedCosts`,{count:n.updated}))}catch{t(e(`stats.recalculateFailed`),`error`)}finally{p(!1)}},z=(O||M)&&!D,B=Lf(P?.currency||`USD`),V=(0,y.useMemo)(()=>new Map([...Object.entries(E?.printer_names||{}),...A?.map(e=>[String(e.id),e.name])||[]]),[E?.printer_names,A]),ee=(0,y.useMemo)(()=>j?.map(e=>e.created_at)||[],[j]);if(D)return(0,G.jsx)(`div`,{className:`p-4 md:p-8`,children:(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`stats.loadingStats`)})});let te=[{id:`quick-stats`,title:e(`stats.quickStats`),component:(0,G.jsx)(tWe,{stats:E,currency:B}),defaultSize:2},{id:`success-rate`,title:e(`stats.successRate`),component:e=>(0,G.jsx)(nWe,{stats:E,printerMap:V,size:e}),defaultSize:1},{id:`time-accuracy`,title:e(`stats.timeAccuracy`),component:e=>(0,G.jsx)(rWe,{stats:E,printerMap:V,size:e}),defaultSize:1},{id:`failure-analysis`,title:e(`stats.failureAnalysis`),component:e=>(0,G.jsx)(cWe,{size:e,dateFrom:w.dateFrom,dateTo:w.dateTo,createdById:T}),defaultSize:1},{id:`print-activity`,title:e(`stats.printActivity`),component:e=>(0,G.jsx)(aWe,{printDates:ee,size:e,dateFrom:w.dateFrom,dateTo:w.dateTo}),defaultSize:2},{id:`records`,title:e(`stats.records`),component:(0,G.jsx)(lWe,{archives:j||[],currency:B}),defaultSize:1},{id:`printer-stats`,title:e(`stats.printerStats`),component:(0,G.jsx)(oWe,{stats:E,archives:j||[],printerMap:V}),defaultSize:4},{id:`filament-trends`,title:e(`stats.filamentTrends`),component:(0,G.jsx)(sWe,{archives:j||[],currency:B,dateFrom:w.dateFrom,dateTo:w.dateTo}),defaultSize:4}];return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(cs,{className:`w-7 h-7 text-bambu-green`}),e(`stats.title`)]}),z&&(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`stats.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[u>0&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{window.dispatchEvent(new CustomEvent(`toggle-hidden-panel`))},children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),e(`stats.hiddenCount`,{count:u})]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{localStorage.removeItem(`bambusy-dashboard-layout-v2`),l(e=>e+1),t(e(`stats.layoutReset`))},disabled:!n(`settings:update`),title:n(`settings:update`)?void 0:e(`stats.noPermissionResetLayout`),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),e(`stats.resetLayout`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:R,disabled:f||!n(`archives:update_all`),title:n(`archives:update_all`)?e(`stats.recalculateCostsHint`):e(`stats.noPermissionRecalculate`),children:[f?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ns,{className:`w-4 h-4`}),e(`stats.recalculateCosts`)]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s(!o),disabled:i,children:[i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(dc,{className:`w-4 h-4`}),e(`stats.exportStats`)]}),o&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-t-lg`,onClick:()=>L(`csv`),children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),e(`stats.exportAsCsv`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-b-lg`,onClick:()=>L(`xlsx`),children:[(0,G.jsx)(dc,{className:`w-4 h-4`}),e(`stats.exportAsExcel`)]})]})]}),v&&F&&F.length>0&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>_(!g),children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),I,(0,G.jsx)(ps,{className:`w-3 h-3`})]}),g&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>_(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2 max-h-64 overflow-y-auto`,children:[(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===null?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(null),_(!1)},children:e(`stats.allUsers`,`All Users`)}),(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===-1?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(-1),_(!1)},children:e(`stats.noUser`,`No User (System)`)}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-1`}),F.map(e=>(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===e.id?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(e.id),_(!1)},children:e.username},e.id))]})]})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!S),children:[(0,G.jsx)(as,{className:`w-4 h-4`}),e(`stats.timeframe.${b.preset}`),(0,G.jsx)(ps,{className:`w-3 h-3`})]}),S&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>C(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-64 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2`,children:[$Ue.map(t=>(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${b.preset===t?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{x({preset:t,dateFrom:void 0,dateTo:void 0}),C(!1)},children:e(`stats.timeframe.${t}`)},t)),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-2`}),(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${b.preset===`custom`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>x(e=>({...e,preset:`custom`})),children:e(`stats.timeframe.custom`)}),b.preset===`custom`&&(0,G.jsxs)(`div`,{className:`mt-2 px-1 pb-1 space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.from`)}),(0,G.jsx)(`input`,{type:`date`,value:b.dateFrom||``,max:b.dateTo||new Date().toISOString().split(`T`)[0],onChange:e=>x(t=>({...t,dateFrom:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.to`)}),(0,G.jsx)(`input`,{type:`date`,value:b.dateTo||``,min:b.dateFrom,max:new Date().toISOString().split(`T`)[0],onChange:e=>x(t=>({...t,dateTo:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>C(!1),className:`w-full`,children:e(`common.apply`)})]})]})]})]})]})]}),(0,G.jsx)(ZUe,{widgets:te,storageKey:`bambusy-dashboard-layout-v2`,stackBelow:640,hideControls:!0},c)]})}function g6(e){return e.length<8?`tooShort`:/[A-Z]/.test(e)?/[a-z]/.test(e)?/\d/.test(e)?/[^A-Za-z0-9]/.test(e)?null:`needsSpecial`:`needsDigit`:`needsLowercase`:`needsUppercase`}var _6=[`inventory-locations`];function v6(e){return e.invalidateQueries({queryKey:_6})}function y6(e,t){return Promise.all([e.invalidateQueries({queryKey:[...t]}),v6(e)])}var b6=`bambuddy-location-sensor-show-on-card-defaults`,x6={alertAbove:``,alertBelow:``,notifyOnAlert:!1,showOnCard:!0};function dWe(){return{temperature:{...x6,alertAbove:`30`,alertBelow:`20`},humidity:{...x6,alertAbove:`30`,alertBelow:`10`},battery:{...x6,alertBelow:`10`}}}function fWe(){try{let e=localStorage.getItem(b6);return e?JSON.parse(e):{}}catch{return{}}}function S6(e){let t=dWe();if(e)try{let n=JSON.parse(e);Object.keys(t).forEach(e=>{let r=n[e];r&&(typeof r.alertAbove==`string`&&(t[e].alertAbove=r.alertAbove),typeof r.alertBelow==`string`&&(t[e].alertBelow=r.alertBelow),typeof r.notifyOnAlert==`boolean`&&(t[e].notifyOnAlert=r.notifyOnAlert))})}catch{}let n=fWe();return Object.keys(t).forEach(e=>{typeof n[e]==`boolean`&&(t[e].showOnCard=n[e])}),t}function pWe(e){let t={};return Object.keys(e).forEach(n=>{t[n]={alertAbove:e[n].alertAbove,alertBelow:e[n].alertBelow,notifyOnAlert:e[n].notifyOnAlert}}),JSON.stringify(t)}function mWe(e){try{let t={};Object.keys(e).forEach(n=>{t[n]=e[n].showOnCard}),localStorage.setItem(b6,JSON.stringify(t))}catch{return}}var C6=`bambuddy-location-sensor-colorize-values`;function w6(){try{let e=localStorage.getItem(C6);return e?e===`true`:!0}catch{return!0}}var T6=`bambuddy:location-sensor-color-prefs-changed`;function E6(){window.dispatchEvent(new Event(T6))}function hWe(e){try{localStorage.setItem(C6,String(e))}catch{return}E6()}var D6=[`red`,`orange`,`yellow`,`green`,`blue`,`purple`,`pink`],O6={red:`text-red-400`,orange:`text-orange-400`,yellow:`text-yellow-400`,green:`text-green-400`,blue:`text-blue-400`,purple:`text-purple-400`,pink:`text-pink-400`},k6=`bambuddy-location-sensor-alert-above-color`,A6=`bambuddy-location-sensor-alert-below-color`,j6=`bambuddy-location-sensor-alert-optimal-color`;function M6(e){return!!e&&D6.includes(e)}function N6(){try{let e=localStorage.getItem(k6);return M6(e)?e:`purple`}catch{return`purple`}}function gWe(e){try{localStorage.setItem(k6,e)}catch{return}E6()}function P6(){try{let e=localStorage.getItem(A6);return M6(e)?e:`red`}catch{return`red`}}function _We(e){try{localStorage.setItem(A6,e)}catch{return}E6()}function F6(){try{let e=localStorage.getItem(j6);return M6(e)?e:`green`}catch{return`green`}}function vWe(e){try{localStorage.setItem(j6,e)}catch{return}E6()}function I6(){return{colorize:w6(),aboveColor:N6(),belowColor:P6(),optimalColor:F6()}}function L6(){let[e,t]=(0,y.useState)(I6);return(0,y.useEffect)(()=>{let e=()=>t(I6());return window.addEventListener(T6,e),()=>window.removeEventListener(T6,e)},[]),e}function R6(e){return!e.reachable||e.state===null?null:e.kind===`numeric`?e.alert_above===null&&e.alert_below===null||e.value===null?null:e.alert_above!==null&&e.value>e.alert_above?`above`:e.alert_below!==null&&e.value{let r=Math.max(0,Math.min(65,Math.round(n)));t(bWe({...i,[e]:r}))};return(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-3 gap-y-1.5`,children:V6.map(e=>{let t=i[e]??B6[e]??0,o=e==="default"?r(`settings.preheatFilamentTargetsDefaultRow`,`Other / unmapped`):e;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs ${e==="default"?`text-bambu-gray italic`:`text-bambu-gray`}`,children:o}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:65,step:1,value:t,onChange:t=>a(e,parseInt(t.target.value,10)||0),disabled:n,className:`w-16 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-xs text-right focus:outline-none focus:border-bambu-green disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`°C`})]})]},e)})})}function H6(e,t,n){if(!e)return null;let r=(e[n.source]?.[t]??[]).find(e=>e.id===n.id);return r?r.name:null}var SWe={orca_cloud:`Orca Cloud`,cloud:`Bambu Cloud`,local:`Imported`,standard:`Standard`};function CWe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{data:r,isLoading:i,error:a}=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines()}),{data:o}=K({queryKey:[`slicer-presets`],queryFn:()=>Z.getSlicerPresets()}),{data:s}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),c=q({mutationFn:({id:e,name:t,description:n,target_printer_id:r,target_kind:i,target_model_class:a,fanout_strategy:o})=>Z.updateSlicerPipeline(e,{name:t,description:n,target_printer_id:r,target_kind:i,target_model_class:a,fanout_strategy:o}),onSuccess:()=>{t.invalidateQueries({queryKey:[`slicer-pipelines`]}),n(e(`settings.pipelines.toast.saved`,`Pipeline saved`),`success`)},onError:t=>{n(t.message||e(`settings.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),l=q({mutationFn:e=>Z.deleteSlicerPipeline(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`slicer-pipelines`]}),n(e(`settings.pipelines.toast.deleted`,`Pipeline deleted`),`success`)},onError:t=>{n(t.message||e(`settings.pipelines.toast.deleteFailed`,`Delete failed`),`error`)}}),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),m=(0,y.useMemo)(()=>r?.pipelines??[],[r?.pipelines]),h=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=!1;for(let r of m)r.target_kind===`printer_class`&&r.target_model_class?t.add(r.target_model_class):r.target_printer_id?e.add(r.target_printer_id):n=!0;return{printers:(s??[]).filter(t=>e.has(t.id)),classes:Array.from(t).sort(),anyWithoutTarget:n}},[m,s]),g=(0,y.useMemo)(()=>{let e=u.trim().toLowerCase();return m.filter(t=>{if(e&&!t.name.toLowerCase().includes(e))return!1;if(f===`none`){if(t.target_kind===`printer_class`?t.target_model_class:t.target_printer_id!==null)return!1}else if(f.startsWith(`p:`)){let e=parseInt(f.slice(2),10);if(t.target_kind===`printer_class`||t.target_printer_id!==e)return!1}else if(f.startsWith(`c:`)){let e=f.slice(2);if(t.target_kind!==`printer_class`||t.target_model_class!==e)return!1}return!0})},[m,u,f]);return(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ed,{className:`w-4 h-4 text-bambu-green`}),e(`settings.pipelines.title`,`Slicer Pipelines`)]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.pipelines.subtitle`,`Reusable preset bundles (printer + process + filaments + bed type). Save one from the Slice dialog and apply it with a single click on the next file.`)})]}),(0,G.jsxs)(Vd,{children:[i&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.pipelines.loading`,`Loading pipelines…`)]}),a&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.pipelines.loadError`,`Could not load pipelines.`)}),!i&&!a&&m.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[12rem]`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`search`,value:u,onChange:e=>d(e.target.value),placeholder:e(`settings.pipelines.searchPlaceholder`,`Search pipelines…`),"aria-label":e(`settings.pipelines.searchPlaceholder`,`Search pipelines…`),className:`w-full pl-7 pr-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`})]}),(0,G.jsxs)(`select`,{value:f,onChange:e=>p(e.target.value),"aria-label":e(`settings.pipelines.filterTarget`,`Filter by target`),className:`text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.pipelines.filter.all`,`All targets`)}),h.printers.length>0&&(0,G.jsx)(`optgroup`,{label:e(`settings.pipelines.field.targetKindSpecific`,`Specific printer`),children:h.printers.map(e=>(0,G.jsx)(`option`,{value:`p:${e.id}`,children:e.name},`p-${e.id}`))}),h.classes.length>0&&(0,G.jsx)(`optgroup`,{label:e(`settings.pipelines.field.targetKindClass`,`Printer class`),children:h.classes.map(t=>(0,G.jsx)(`option`,{value:`c:${t}`,children:e(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:t})},`c-${t}`))}),h.anyWithoutTarget&&(0,G.jsx)(`option`,{value:`none`,children:e(`settings.pipelines.filter.noTarget`,`No target set`)})]}),(u||f)&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e(`settings.pipelines.filter.count`,`{{shown}} / {{total}}`,{shown:g.length,total:m.length})})]}),!i&&!a&&m.length===0&&(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray space-y-2`,children:[(0,G.jsx)(`p`,{children:e(`settings.pipelines.empty.title`,`No pipelines yet.`)}),(0,G.jsx)(`p`,{children:e(`settings.pipelines.empty.howto`,`Open the Slice dialog for any file, pick your printer / process / filaments / bed type, then click "Save as pipeline". Your saved pipelines will appear here.`)})]}),!i&&!a&&m.length>0&&g.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.pipelines.filter.noMatches`,`No pipelines match the current filters.`)}),!i&&!a&&g.length>0&&(0,G.jsx)(`div`,{className:`space-y-2`,children:g.map(t=>(0,G.jsx)(wWe,{pipeline:t,presets:o,printers:s??[],onSave:e=>c.mutate({id:t.id,...e}),onDelete:()=>{confirm(e(`settings.pipelines.confirmDelete`,`Delete this pipeline? This cannot be undone.`))&&l.mutate(t.id)},saving:c.isPending,deleting:l.isPending},t.id))})]})]})}function wWe({pipeline:e,presets:t,printers:n,onSave:r,onDelete:i,saving:a,deleting:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(e.name),[f,p]=(0,y.useState)(e.description??``),[m,h]=(0,y.useState)(e.target_printer_id),[g,_]=(0,y.useState)(e.target_kind===`printer_class`?`printer_class`:`specific_printer`),[v,b]=(0,y.useState)(e.target_model_class??``),[x,S]=(0,y.useState)(e.fanout_strategy??`max_parallel`),C=Array.from(new Set(n.map(e=>e.model).filter(e=>!!e))).sort(),{data:w}=K({queryKey:[`pipeline-runs`,e.id],queryFn:()=>Z.listPipelineRuns(e.id,1),enabled:!c,refetchInterval:15e3}),T=w?.runs?.[0],E=H6(t,`printer`,e.printer_preset),D=H6(t,`process`,e.process_preset),O=e.filament_presets.map(e=>H6(t,`filament`,e)),k=e.filament_presets.length>1&&e.filament_presets.every(t=>t.source===e.filament_presets[0].source&&t.id===e.filament_presets[0].id),A=t!==void 0&&(E===null||D===null||O.some(e=>e===null)),j=e.target_printer_id?n.find(t=>t.id===e.target_printer_id):void 0,M=e.target_kind===`printer_class`,N=M?!e.target_model_class:e.target_printer_id===null;return(0,G.jsxs)(`div`,{className:`rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 px-3 py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:c?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{value:u,onChange:e=>d(e.target.value),"aria-label":s(`settings.pipelines.field.name`,`Pipeline name`),placeholder:s(`settings.pipelines.field.name`,`Pipeline name`),className:`w-full px-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`textarea`,{value:f,onChange:e=>p(e.target.value),"aria-label":s(`settings.pipelines.field.description`,`Description`),placeholder:s(`settings.pipelines.field.description`,`Description`),rows:2,className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetKind`,`Target type`)}),(0,G.jsxs)(`div`,{className:`flex gap-3 text-xs`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-white`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`target-kind-${e.id}`,value:`specific_printer`,checked:g===`specific_printer`,onChange:()=>_(`specific_printer`),"aria-label":s(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)}),s(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-white`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`target-kind-${e.id}`,value:`printer_class`,checked:g===`printer_class`,onChange:()=>_(`printer_class`),"aria-label":s(`settings.pipelines.field.targetKindClass`,`Printer class`)}),s(`settings.pipelines.field.targetKindClass`,`Printer class`)]})]})]}),g===`specific_printer`?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetPrinter`,`Target printer`)}),(0,G.jsxs)(`select`,{value:m??``,onChange:e=>h(e.target.value?parseInt(e.target.value,10):null),"aria-label":s(`settings.pipelines.field.targetPrinter`,`Target printer`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:s(`settings.pipelines.field.noTarget`,`— No target —`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetModelClass`,`Printer model`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>b(e.target.value),"aria-label":s(`settings.pipelines.field.targetModelClass`,`Printer model`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:s(`settings.pipelines.field.noTarget`,`— No target —`)}),C.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.fanoutStrategy`,`Fanout strategy`)}),(0,G.jsxs)(`select`,{value:x,onChange:e=>S(e.target.value),"aria-label":s(`settings.pipelines.field.fanoutStrategy`,`Fanout strategy`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:`max_parallel`,children:s(`settings.pipelines.field.fanout.max_parallel`,`Max parallel — distribute across any idle matching printer`)}),(0,G.jsx)(`option`,{value:`round_robin`,children:s(`settings.pipelines.field.fanout.round_robin`,`Round robin — cycle through eligible printers`)}),(0,G.jsx)(`option`,{value:`fill_one_first`,children:s(`settings.pipelines.field.fanout.fill_one_first`,`Fill one first — pin all copies to one printer`)})]})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded inline-flex items-center gap-1 ${N?`bg-amber-100 dark:bg-amber-500/15 text-amber-700 dark:text-amber-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),N?s(`settings.pipelines.noTargetHint`,`Set a target printer to run this`):M?(0,G.jsxs)(G.Fragment,{children:[s(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}),e.fanout_strategy&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[` · `,s(`settings.pipelines.field.fanoutShort.${e.fanout_strategy}`,e.fanout_strategy)]})]}):j?.name??``]})]}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e.description})]})}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:c?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>{let e=u.trim();e&&(r({name:e,description:f.trim()||null,target_kind:g,target_printer_id:g===`specific_printer`?m??0:0,target_model_class:g===`printer_class`&&v||null,fanout_strategy:x}),l(!1))},disabled:a||!u.trim(),"aria-label":s(`settings.pipelines.action.save`,`Save`),className:`p-1.5 text-bambu-green hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,children:(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{d(e.name),p(e.description??``),h(e.target_printer_id),_(e.target_kind===`printer_class`?`printer_class`:`specific_printer`),b(e.target_model_class??``),S(e.fanout_strategy??`max_parallel`),l(!1)},"aria-label":s(`settings.pipelines.action.cancel`,`Cancel`),className:`p-1.5 text-bambu-gray hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>l(!0),"aria-label":s(`settings.pipelines.action.rename`,`Rename`),className:`p-1.5 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:i,disabled:o,"aria-label":s(`settings.pipelines.action.delete`,`Delete`),className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]}),!c&&(0,G.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-2 text-xs`,children:[(0,G.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,G.jsx)(`div`,{className:`text-[10px] uppercase tracking-wide text-bambu-gray/60`,children:s(`settings.pipelines.group.profiles`,`Profiles`)}),(0,G.jsx)(U6,{label:s(`settings.pipelines.slot.printer`,`Printer`),ref:e.printer_preset,name:E}),(0,G.jsx)(U6,{label:s(`settings.pipelines.slot.process`,`Process`),ref:e.process_preset,name:D}),e.bed_type&&(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[s(`settings.pipelines.slot.bed`,`Bed`),`:`]}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:e.bed_type})]})]}),(0,G.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,G.jsxs)(`div`,{className:`text-[10px] uppercase tracking-wide text-bambu-gray/60`,children:[s(`settings.pipelines.group.filaments`,`Filaments`),e.filament_presets.length>1&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60 normal-case ml-1`,children:[`(`,e.filament_presets.length,`)`]})]}),k?(0,G.jsx)(U6,{label:s(`settings.pipelines.slot.filamentAll`,`All {{n}} slots`,{n:e.filament_presets.length}),ref:e.filament_presets[0],name:O[0]}):e.filament_presets.map((t,n)=>(0,G.jsx)(U6,{label:e.filament_presets.length>1?s(`settings.pipelines.slot.filamentN`,`Filament {{n}}`,{n:n+1}):s(`settings.pipelines.slot.filament`,`Filament`),ref:t,name:O[n]},n))]})]}),!c&&T&&(0,G.jsxs)(`div`,{className:`mt-1.5 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[s(`settings.pipelines.runs.lastRun`,`Last run`),`:`]}),` `,(0,G.jsx)(TWe,{status:T.status}),T.created_at&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[`· `,new Date(T.created_at).toLocaleString()]})]}),N&&!c&&(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-1.5 text-xs text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),s(`settings.pipelines.noTargetWarning`,`Set a target printer before running this pipeline.`)]}),A&&!c&&(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-1.5 text-xs text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),s(`settings.pipelines.staleWarning`,`One or more referenced presets no longer exist. Re-save this pipeline from the Slice dialog to fix.`)]})]})}function TWe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:{queued:`text-bambu-gray`,slicing:`text-blue-700 dark:text-blue-400`,dispatching:`text-blue-700 dark:text-blue-400`,in_progress:`text-bambu-green`,completed:`text-bambu-green`,failed:`text-red-700 dark:text-red-400`,partial_failure:`text-amber-700 dark:text-amber-400`,cancelled:`text-bambu-gray`}[e],children:t(`settings.pipelines.runs.status.${e}`,e)})}function U6({label:e,ref:t,name:n}){return(0,G.jsxs)(`div`,{className:`text-bambu-gray truncate`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[e,`:`]}),` `,n?(0,G.jsx)(`span`,{className:`text-white`,children:n}):(0,G.jsxs)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:[`[`,SWe[t.source],` #`,t.id,`]`]})]})}var W6=90,G6=365;function K6(e){if(!e)return`—`;let t=rp(e);return t?t.toLocaleString():`—`}function EWe(e){let t=rp(e);return t?t.getTime(){if(l.preventDefault(),r.trim()){u(!0);try{e(await Z.createLongLivedCameraToken({name:r.trim(),expires_in_days:a,scope:s})),i(``),o(W6),c(`camera_stream`),n(t(`cameraTokens.toast.created`,`Token created`))}catch(e){n(e instanceof Error?e.message:t(`cameraTokens.toast.createFailed`,`Failed to create token`),`error`)}finally{u(!1)}}},className:`bg-bambu-dark-secondary rounded-lg p-4 mb-6 border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:t(`cameraTokens.create.title`,`Create new token`)}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-[1fr_180px_140px_auto]`,children:[(0,G.jsx)(`input`,{type:`text`,maxLength:100,required:!0,value:r,onChange:e=>i(e.target.value),placeholder:t(`cameraTokens.create.namePlaceholder`,`e.g. Home Assistant`),className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.nameLabel`,`Token name`)}),(0,G.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.scopeLabel`,`Scope`),children:[(0,G.jsx)(`option`,{value:`camera_stream`,children:t(`cameraTokens.scope.camera_stream`,`Camera stream`)}),(0,G.jsx)(`option`,{value:`camwall`,children:t(`cameraTokens.scope.camwall`,`Cam Wall`)}),(0,G.jsx)(`option`,{value:`overlay`,children:t(`cameraTokens.scope.overlay`,`Streaming Overlay`)})]}),(0,G.jsx)(`input`,{type:`number`,min:1,max:G6,required:!0,value:a,onChange:e=>{let t=Number(e.target.value);o(Math.min(Math.max(t,1),G6))},className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.daysLabel`,`Days until expiry`)}),(0,G.jsxs)(`button`,{type:`submit`,disabled:l||!r.trim(),className:`flex items-center gap-2 px-4 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90 disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),t(`cameraTokens.create.submit`,`Create`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:s===`camwall`?t(`cameraTokens.create.hintCamWall`,`A Cam Wall token opens /camwall on a screen with no login — it can see every printer's name and state, and their camera streams. It cannot see filenames, addresses or access codes.`):s===`overlay`?t(`cameraTokens.create.hintOverlay`,`A Streaming Overlay token opens /overlay/{printerId} on a screen with no login — for OBS or any live stream. It can see one printer's camera stream plus its live print status, including the filename shown on screen. It cannot see addresses or access codes.`):t(`cameraTokens.create.hintCameraStream`,`A camera-stream token can only fetch camera streams and snapshots. Use it for Home Assistant, Frigate, or anything embedding a single camera.`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:t(`cameraTokens.create.hint`,`Maximum lifetime is 365 days. The token value is shown only once on creation — copy it now.`)})]})}function OWe({token:e,onConfirm:t,onCancel:n}){let{t:r}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4`,role:`dialog`,"aria-modal":`true`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-md w-full border border-red-500/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-6 h-6 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`cameraTokens.confirmRevoke.title`,`Revoke this token?`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`cameraTokens.confirmRevoke.body`,`Any device using "{{name}}" will lose access immediately. This cannot be undone.`,{name:e.name})})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:n,className:`px-4 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:r(`cameraTokens.confirmRevoke.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 bg-red-500 text-white rounded-md hover:bg-red-600`,children:r(`cameraTokens.confirmRevoke.confirm`,`Revoke`)})]})]})})}function kWe({token:e,onClose:t}){let{t:n}=U(),{showToast:r}=qd(),i=e.token??``,a=e.scope===`camwall`&&i?`${window.location.origin}/camwall?token=${encodeURIComponent(i)}`:null,o=e.scope===`overlay`&&i?`${window.location.origin}/overlay/1?token=${encodeURIComponent(i)}`:null,s=async e=>{if(e)try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{t.select(),document.execCommand(`copy`)}finally{document.body.removeChild(t)}}r(n(`cameraTokens.toast.copied`,`Copied to clipboard`))}catch{r(n(`cameraTokens.toast.copyFailed`,`Copy failed — select and copy manually`),`error`)}};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-2xl w-full border border-bambu-green/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-6 h-6 text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`cameraTokens.created.title`,`Token created — copy it now`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:n(`cameraTokens.created.warning`,`This is the only time this token will be visible. After you close this dialog you can never view it again.`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:i}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(i),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]}),a&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:n(`cameraTokens.created.camWallUrlTitle`,`Cam Wall URL for this display`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`cameraTokens.created.camWallUrlHint`,`Open this on the screen. Anyone who can read the URL can watch the wall, so treat it like a key — revoke the token to cut the display off.`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:a}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(a),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]})]}),o&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:n(`cameraTokens.created.overlayUrlTitle`,`Overlay URL for OBS`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`cameraTokens.created.overlayUrlHint`,`Add this as a Browser Source in OBS. Change the /overlay/1 number to your printer's number (from its URL on the Printers page). Anyone who can read the URL can watch the stream, so treat it like a key — revoke the token to cut it off.`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:o}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(o),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:n(`cameraTokens.created.dismiss`,`I've saved it`)})})]})})}function AWe({token:e,showOwner:t,ownerLabel:n,onRevoke:r}){let{t:i}=U(),a=EWe(e.expires_at);return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary last:border-b-0`,children:[(0,G.jsx)(`td`,{className:`py-3 px-3 text-white`,children:e.name}),t&&(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:n}),(0,G.jsx)(`td`,{className:`py-3 px-3`,children:(0,G.jsx)(`span`,{className:`rounded bg-bambu-dark-tertiary px-2 py-0.5 text-xs text-bambu-gray`,children:i(`cameraTokens.scope.${e.scope}`,e.scope)})}),(0,G.jsxs)(`td`,{className:`py-3 px-3 text-bambu-gray font-mono text-xs`,children:[e.lookup_prefix,`…`]}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:K6(e.created_at)}),(0,G.jsxs)(`td`,{className:`py-3 px-3 ${a?`text-red-700 dark:text-red-400`:`text-bambu-gray`}`,children:[K6(e.expires_at),a&&(0,G.jsx)(`span`,{className:`ml-2 px-2 py-0.5 text-xs bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-300 rounded`,children:i(`cameraTokens.list.expired`,`Expired`)})]}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:K6(e.last_used_at)}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-right`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),className:`inline-flex items-center gap-1 px-2 py-1 text-sm text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-300`,title:i(`cameraTokens.list.revoke`,`Revoke`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`cameraTokens.list.revoke`,`Revoke`)]})})]})}function q6({tokens:e,showOwner:t,userIdToName:n,onRevoke:r,emptyMessage:i}){let{t:a}=U();return e.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:i}):(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`text-bambu-gray text-left border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.name`,`Name`)}),t&&(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.owner`,`Owner`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.scope`,`Scope`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.prefix`,`Prefix`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.created`,`Created`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.expires`,`Expires`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.lastUsed`,`Last used`)}),(0,G.jsx)(`th`,{className:`py-2 px-3`})]})}),(0,G.jsx)(`tbody`,{children:e.map(e=>(0,G.jsx)(AWe,{token:e,showOwner:t,ownerLabel:n?.get(e.user_id)??`#${e.user_id}`,onRevoke:r},e.id))})]})})}function jWe(){let{t:e}=U(),{user:t,isAdmin:n}=Nd(),{showToast:r}=qd(),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(new Map),[u,d]=(0,y.useState)(!0),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),g=async()=>{d(!0);try{if(a(await Z.listMyLongLivedCameraTokens()),n){s(await Z.listAllLongLivedCameraTokens());try{let e=await Z.getUsersSlim();l(new Map(e.map(e=>[e.id,e.username])))}catch{l(new Map)}}}catch(t){r(t instanceof Error?t.message:e(`cameraTokens.toast.loadFailed`,`Failed to load tokens`),`error`)}finally{d(!1)}};(0,y.useEffect)(()=>{g()},[n]);let _=async e=>{let t=[...i,...o].find(t=>t.id===e);t&&h(t)},v=async()=>{if(!m)return;let t=m.id;h(null);try{await Z.revokeLongLivedCameraToken(t),r(e(`cameraTokens.toast.revoked`,`Token revoked`)),await g()}catch(t){r(t instanceof Error?t.message:e(`cameraTokens.toast.revokeFailed`,`Failed to revoke token`),`error`)}},b=(0,y.useMemo)(()=>o.filter(e=>e.user_id!==t?.id),[o,t?.id]);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`cameraTokens.description`,`Long-lived tokens for embedding the camera stream into Home Assistant, Frigate, kiosks, or any other tool that needs a stable URL. Each token is camera-stream-only and can be revoked at any time.`)}),(0,G.jsx)(DWe,{onCreated:e=>{p(e),g()}}),(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:e(`cameraTokens.list.myTitle`,`My tokens`)}),u?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`cameraTokens.loading`,`Loading…`)}):(0,G.jsx)(q6,{tokens:i,onRevoke:_,emptyMessage:e(`cameraTokens.list.empty`,`No tokens yet.`)})]}),n&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:e(`cameraTokens.list.allTitle`,`All users (admin view)`)}),(0,G.jsx)(q6,{tokens:b,showOwner:!0,userIdToName:c,onRevoke:_,emptyMessage:e(`cameraTokens.list.empty`,`No tokens yet.`)})]}),f&&(0,G.jsx)(kWe,{token:f,onClose:()=>p(null)}),m&&(0,G.jsx)(OWe,{token:m,onConfirm:()=>void v(),onCancel:()=>h(null)})]})}var J6=[{key:`printer`,labelKey:`streamOverlay.builder.fieldPrinter`,fallback:`Printer name`},{key:`filename`,labelKey:`streamOverlay.builder.fieldFilename`,fallback:`File name`},{key:`status`,labelKey:`streamOverlay.builder.fieldStatus`,fallback:`Status`},{key:`progress`,labelKey:`streamOverlay.builder.fieldProgress`,fallback:`Progress bar`},{key:`layers`,labelKey:`streamOverlay.builder.fieldLayers`,fallback:`Layer count`},{key:`eta`,labelKey:`streamOverlay.builder.fieldEta`,fallback:`Time remaining and ETA`},{key:`nozzle`,labelKey:`printers.heaterHistory.nozzle`,fallback:`Nozzle`},{key:`bed`,labelKey:`printers.heaterHistory.bed`,fallback:`Bed`},{key:`chamber`,labelKey:`printers.heaterHistory.chamber`,fallback:`Chamber`}],MWe=[`progress`,`layers`,`eta`,`filename`,`status`],Y6=15;function NWe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(MWe),[c,l]=(0,y.useState)(`medium`),[u,d]=(0,y.useState)(Y6),[f,p]=(0,y.useState)(!0),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Z.getPrinters();if(e)return;r(t),t.length>0&&a(t[0].id)}catch{}})(),()=>{e=!0}},[]);let v=(0,y.useMemo)(()=>{let e=i??1,t=new URLSearchParams,n=J6.filter(e=>o.includes(e.key)).map(e=>e.key);return t.set(`show`,n.join(`,`)),c!==`medium`&&t.set(`size`,c),u!==Y6&&t.set(`fps`,String(u)),f||t.set(`camera`,`false`),m.trim()&&t.set(`token`,m.trim()),`${window.location.origin}/overlay/${e}?${t.toString()}`},[i,o,c,u,f,m]),b=e=>{s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},x=async()=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(v);else{let e=document.createElement(`textarea`);e.value=v,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e);try{e.select(),document.execCommand(`copy`)}finally{document.body.removeChild(e)}}t(e(`cameraTokens.toast.copied`,`Copied to clipboard`))}catch{t(e(`cameraTokens.toast.copyFailed`,`Copy failed — select and copy manually`),`error`)}};return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`streamOverlay.builder.description`,`Build the URL for a streaming overlay — a full-screen camera view with live print data drawn over it, for OBS, a wall display, or any browser source. Pick the fields you want and copy the URL.`)}),(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-printer`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.printer`,`Printer`)}),(0,G.jsxs)(`select`,{id:`overlay-builder-printer`,value:i??``,onChange:e=>a(Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,children:[n.length===0&&(0,G.jsx)(`option`,{value:``,children:e(`common.loading`,`Loading…`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-size`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.size`,`Text size`)}),(0,G.jsxs)(`select`,{id:`overlay-builder-size`,value:c,onChange:e=>l(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`small`,children:e(`streamOverlay.builder.sizeSmall`,`Small`)}),(0,G.jsx)(`option`,{value:`medium`,children:e(`streamOverlay.builder.sizeMedium`,`Medium`)}),(0,G.jsx)(`option`,{value:`large`,children:e(`streamOverlay.builder.sizeLarge`,`Large`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-fps`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.fps`,`Frame rate`)}),(0,G.jsx)(`input`,{id:`overlay-builder-fps`,type:`number`,min:1,max:30,value:u,onChange:e=>d(Math.min(Math.max(Number(e.target.value)||1,1),30)),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`streamOverlay.builder.fpsHint`,`A1 and P1 cameras top out around 5 fps whatever you ask for.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-token`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.token`,`Streaming Overlay token (optional)`)}),(0,G.jsx)(`input`,{id:`overlay-builder-token`,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:`bblt_…`,className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none font-mono text-xs`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`streamOverlay.builder.tokenHint`,`Only needed when login is enabled: OBS has no session of its own. Create one above with the Streaming Overlay scope.`)})]})]}),(0,G.jsxs)(`fieldset`,{className:`mt-4`,children:[(0,G.jsx)(`legend`,{className:`text-sm font-medium text-white mb-2`,children:e(`streamOverlay.builder.fields`,`Fields to show`)}),(0,G.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2 md:grid-cols-3`,children:[J6.map(t=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o.includes(t.key),onChange:()=>b(t.key),className:`accent-bambu-green`}),e(t.labelKey,t.fallback)]},t.key)),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked),className:`accent-bambu-green`}),e(`streamOverlay.builder.fieldCamera`,`Camera feed`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:e(`streamOverlay.builder.chamberHint`,`Chamber temperature only appears on models with a real chamber sensor — P1 and A1 printers report a meaningless value, so it is left out there.`)})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.urlTitle`,`Overlay URL`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:v}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>void x(),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),e(`cameraTokens.created.copy`,`Copy`)]}),(0,G.jsxs)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),e(`streamOverlay.builder.open`,`Open`)]})]}),m.trim()&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:e(`streamOverlay.builder.tokenWarning`,`This URL contains a token — anyone who can read it can watch the stream and see the file name. Revoke the token to cut it off.`)})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>_(e=>!e),className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80 text-sm`,children:[g?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`}),g?e(`streamOverlay.builder.hidePreview`,`Hide preview`):e(`streamOverlay.builder.showPreview`,`Show preview`)]}),g&&(0,G.jsx)(`iframe`,{src:v,title:e(`streamOverlay.builder.previewTitle`,`Overlay preview`),className:`mt-3 w-full aspect-video rounded-md border border-bambu-dark-tertiary bg-black`},v)]})]})}function PWe({plug:e,onEdit:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),{data:p,isLoading:m}=K({queryKey:[`smart-plug-status`,e.id],queryFn:()=>Z.getSmartPlugStatus(e.id),refetchInterval:3e4}),{data:h}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),g=h?.find(t=>t.id===e.printer_id),_=q({mutationFn:t=>Z.controlSmartPlug(e.id,t),onMutate:async t=>{await r.cancelQueries({queryKey:[`smart-plug-status`,e.id]});let n=r.getQueryData([`smart-plug-status`,e.id]),i=t===`on`?`ON`:t===`off`||p?.state===`ON`?`OFF`:`ON`;return r.setQueryData([`smart-plug-status`,e.id],e=>({...e,state:i})),{previousStatus:n}},onError:(t,a,o)=>{o?.previousStatus&&r.setQueryData([`smart-plug-status`,e.id],o.previousStatus),i(n(`smartPlugs.failedToTurn`,{action:a,name:e.name}),`error`)},onSettled:()=>{setTimeout(()=>{r.invalidateQueries({queryKey:[`smart-plug-status`,e.id]}),r.invalidateQueries({queryKey:[`smart-plugs`]})},1e3)}}),v=q({mutationFn:t=>Z.updateSmartPlug(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),e.printer_id&&(r.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.printer_id]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`,e.printer_id]}))}}),b=q({mutationFn:()=>Z.deleteSmartPlug(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),e.printer_id&&r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`,e.printer_id]})}}),x=p?.state===`ON`,S=e.plug_type===`mqtt`&&p?.energy?.power!==null&&p?.energy?.power!==void 0,C=(p?.reachable??!1)||S,w=_.isPending,T=(()=>{if(e.plug_type!==`tasmota`||!e.ip_address)return null;let t=e.ip_address;return e.username&&e.password?`http://${encodeURIComponent(e.username)}:${encodeURIComponent(e.password)}@${t}/`:`http://${t}/`})();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{className:`relative`,children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg flex-shrink-0 ${e.plug_type===`mqtt`?C?`bg-teal-100 dark:bg-teal-500/20`:`bg-red-100 dark:bg-red-500/20`:C?x?`bg-bambu-green/20`:`bg-bambu-dark`:`bg-red-100 dark:bg-red-500/20`}`,children:e.plug_type===`mqtt`?(0,G.jsx)(Bl,{className:`w-5 h-5 ${C?`text-teal-600 dark:text-teal-400`:`text-red-600 dark:text-red-400`}`}):e.plug_type===`homeassistant`?(0,G.jsx)(Bc,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`}):e.plug_type===`rest`?(0,G.jsx)(Ac,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`}):(0,G.jsx)(Pl,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h3`,{className:`font-medium text-white truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray truncate`,title:e.plug_type===`mqtt`?e.mqtt_topic??void 0:e.plug_type===`homeassistant`?e.ha_entity_id??void 0:e.plug_type===`rest`?e.rest_on_url??e.rest_off_url??void 0:e.ip_address??void 0,children:e.plug_type===`mqtt`?e.mqtt_topic:e.plug_type===`homeassistant`?e.ha_entity_id:e.plug_type===`rest`?e.rest_on_url||e.rest_off_url:e.ip_address})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-end gap-1 flex-shrink-0`,children:[m?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin`}):e.plug_type===`mqtt`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm whitespace-nowrap`,children:[(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-[10px] font-medium rounded flex-shrink-0`,children:`MQTT`}),C&&(0,G.jsx)(`span`,{className:`text-status-ok`,children:`✓`})]}):e.plug_type===`homeassistant`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-1 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-[10px] font-medium rounded`,children:`HA`}),(0,G.jsx)(`span`,{className:C?x?`text-status-ok`:`text-bambu-gray`:`text-status-error`,children:C?p?.state||`?`:n(`smartPlugs.offline`)})]}):e.plug_type===`rest`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-1 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 text-[10px] font-medium rounded`,children:`REST`}),(0,G.jsx)(`span`,{className:C?x?`text-status-ok`:`text-bambu-gray`:`text-status-error`,children:C?p?.state||`?`:n(`smartPlugs.offline`)})]}):C?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4 text-status-ok`}),(0,G.jsx)(`span`,{className:x?`text-status-ok`:`text-bambu-gray`,children:p?.state||n(`smartPlugs.unknown`)})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm text-status-error`,children:[(0,G.jsx)(Zu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:n(`smartPlugs.offline`)})]}),T&&(0,G.jsxs)(`a`,{href:T,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 px-2 py-0.5 bg-bambu-dark hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white text-xs rounded-full transition-colors`,title:n(`smartPlugs.openPlugAdminPage`),children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),n(`smartPlugs.admin`)]})]})]}),g&&(0,G.jsxs)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[n(`smartPlugs.linkedTo`),` `]}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:g.name})]}),(e.power_alert_enabled||e.schedule_enabled||e.plug_type===`mqtt`)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-3`,children:[e.plug_type===`mqtt`&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-xs rounded-full`,children:[(0,G.jsx)(ac,{className:`w-3 h-3`}),n(`smartPlugs.monitorOnly`)]}),e.power_alert_enabled&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-xs rounded-full`,children:[(0,G.jsx)(qo,{className:`w-3 h-3`}),n(`smartPlugs.alerts`)]}),e.schedule_enabled&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-xs rounded-full`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),e.schedule_on_time&&e.schedule_off_time?`${e.schedule_on_time} - ${e.schedule_off_time}`:e.schedule_on_time?n(`smartPlugs.scheduleOn`,{time:e.schedule_on_time}):n(`smartPlugs.scheduleOff`,{time:e.schedule_off_time})]})]}),e.plug_type!==`mqtt`&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-3`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:x?`primary`:`secondary`,disabled:!C||w,onClick:()=>c(!0),className:`flex-1`,children:[w?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ll,{className:`w-4 h-4`}),n(`smartPlugs.on`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:x?`secondary`:`primary`,disabled:!C||w,onClick:()=>u(!0),className:`flex-1`,children:[w?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Il,{className:`w-4 h-4`}),n(`smartPlugs.off`)]})]}),e.plug_type===`mqtt`&&p?.energy&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-3 px-3 py-2 bg-bambu-dark rounded-lg`,children:[p.energy.power!==null&&p.energy.power!==void 0&&(0,G.jsxs)(`div`,{className:`flex-1 text-center`,children:[(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[Math.round(p.energy.power),`W`]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.power`)})]}),p.energy.today!==null&&p.energy.today!==void 0&&(0,G.jsxs)(`div`,{className:`flex-1 text-center border-l border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:p.energy.today.toFixed(3)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.kwhToday`)})]})]}),(0,G.jsxs)(`button`,{onClick:()=>f(!d),className:`w-full flex items-center justify-between py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),e.plug_type===`mqtt`?n(`smartPlugs.settings`):n(`smartPlugs.automationSettings`)]}),(0,G.jsx)(`span`,{children:d?`-`:`+`})]}),d&&(0,G.jsxs)(`div`,{className:`pt-3 border-t border-bambu-dark-tertiary space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.showInSwitchbar`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.quickAccessSidebar`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.show_in_switchbar,onChange:e=>v.mutate({show_in_switchbar:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.printer_id!=null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ll,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.controlsPrinterPower`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.controlsPrinterPowerDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.controls_printer_power,onChange:e=>v.mutate({controls_printer_power:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.plug_type!==`mqtt`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.enabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.enableAutomation`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.enabled,onChange:e=>v.mutate({enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOn`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOnDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_on,onChange:e=>v.mutate({auto_on:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOff`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off,onChange:e=>v.mutate({auto_off:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOffPersistent`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffPersistentDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off_persistent,onChange:e=>v.mutate({auto_off_persistent:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off&&(0,G.jsxs)(`div`,{className:`space-y-3 pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white mb-2`,children:n(`smartPlugs.turnOffDelayMode`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>v.mutate({off_delay_mode:`time`}),className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${e.off_delay_mode===`time`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(js,{className:`w-4 h-4`}),n(`smartPlugs.time`)]}),(0,G.jsxs)(`button`,{onClick:()=>v.mutate({off_delay_mode:`temperature`}),className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${e.off_delay_mode===`temperature`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Mu,{className:`w-4 h-4`}),n(`smartPlugs.temp`)]})]})]}),e.off_delay_mode===`time`?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.delayMinutes`)}),(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`60`,value:e.off_delay_minutes,onChange:e=>v.mutate({off_delay_minutes:parseInt(e.target.value)||5}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`})]}):(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.tempThreshold`)}),(0,G.jsx)(`input`,{type:`number`,min:`30`,max:`100`,value:e.off_temp_threshold,onChange:e=>v.mutate({off_temp_threshold:parseInt(e.target.value)||70}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`smartPlugs.tempThresholdDescription`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOffAfterDrying`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffAfterDryingDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off_after_drying,onChange:e=>v.mutate({auto_off_after_drying:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off_after_drying&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.delayAfterDryingMinutes`)}),(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`120`,value:e.off_delay_after_drying_minutes,onChange:e=>v.mutate({off_delay_after_drying_minutes:parseInt(e.target.value)||10}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>t(e),className:`flex-1`,children:[(0,G.jsx)(kl,{className:`w-4 h-4`}),n(`smartPlugs.edit`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>o(!0),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})}),a&&(0,G.jsx)(of,{title:n(`smartPlugs.deleteSmartPlug`),message:n(`smartPlugs.deleteConfirm`,{name:e.name}),confirmText:n(`smartPlugs.delete`),variant:`danger`,onConfirm:()=>{b.mutate(),o(!1)},onCancel:()=>o(!1)}),s&&(0,G.jsx)(of,{title:n(`smartPlugs.turnOnSmartPlug`),message:n(`smartPlugs.turnOnConfirm`,{name:e.name}),confirmText:n(`smartPlugs.turnOn`),variant:`default`,onConfirm:()=>{_.mutate(`on`),c(!1)},onCancel:()=>c(!1)}),l&&(0,G.jsx)(of,{title:n(`smartPlugs.turnOffSmartPlug`),message:n(`smartPlugs.turnOffConfirm`,{name:e.name}),confirmText:n(`smartPlugs.turnOff`),variant:`danger`,onConfirm:()=>{_.mutate(`off`),u(!1)},onCancel:()=>u(!1)})]})}function FWe({plug:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,[a,o]=(0,y.useState)(e?.plug_type||`tasmota`),[s,c]=(0,y.useState)(e?.name||``),[l,u]=(0,y.useState)(e?.ip_address||``),[d,f]=(0,y.useState)(e?.username||``),[p,m]=(0,y.useState)(e?.password||``),[h,g]=(0,y.useState)(e?.ha_entity_id||``),[_,v]=(0,y.useState)(e?.mqtt_power_topic||e?.mqtt_topic||``),[b,x]=(0,y.useState)(e?.mqtt_power_path||``),[S,C]=(0,y.useState)((e?.mqtt_power_multiplier??e?.mqtt_multiplier??1).toString()),[w,T]=(0,y.useState)(e?.mqtt_energy_topic||``),[E,D]=(0,y.useState)(e?.mqtt_energy_path||``),[O,k]=(0,y.useState)((e?.mqtt_energy_multiplier??1).toString()),[A,j]=(0,y.useState)(e?.mqtt_state_topic||``),[M,N]=(0,y.useState)(e?.mqtt_state_path||``),[P,F]=(0,y.useState)(e?.mqtt_state_on_value||``),[I,L]=(0,y.useState)(e?.rest_on_url||``),[R,z]=(0,y.useState)(e?.rest_on_body||``),[B,V]=(0,y.useState)(e?.rest_off_url||``),[ee,te]=(0,y.useState)(e?.rest_off_body||``),[ne,re]=(0,y.useState)(e?.rest_method||`POST`),[ie,ae]=(0,y.useState)(e?.rest_headers||``),[oe,se]=(0,y.useState)(e?.rest_status_url||``),[H,ce]=(0,y.useState)(e?.rest_status_path||``),[le,ue]=(0,y.useState)(e?.rest_status_on_value||``),[de,fe]=(0,y.useState)(e?.rest_power_url||``),[pe,me]=(0,y.useState)(e?.rest_power_path||``),[he,ge]=(0,y.useState)((e?.rest_power_multiplier??1).toString()),[_e,ve]=(0,y.useState)(e?.rest_energy_url||``),[ye,be]=(0,y.useState)(e?.rest_energy_path||``),[xe,Se]=(0,y.useState)((e?.rest_energy_multiplier??1).toString()),[Ce,we]=(0,y.useState)(e?.rest_energy_total_path||``),[Te,Ee]=(0,y.useState)((e?.rest_energy_total_multiplier??1).toString()),[De,Oe]=(0,y.useState)(e?.ha_power_entity||``),[ke,Ae]=(0,y.useState)(e?.ha_energy_today_entity||``),[je,Me]=(0,y.useState)(e?.ha_energy_total_entity||``),[Ne,Pe]=(0,y.useState)(``),[Fe,Ie]=(0,y.useState)(``),[Le,Re]=(0,y.useState)(!1),ze=(0,y.useRef)(null),[Be,Ve]=(0,y.useState)(``),[He,Ue]=(0,y.useState)(!1),We=(0,y.useRef)(null),[Ge,Ke]=(0,y.useState)(``),[qe,Je]=(0,y.useState)(!1),Ye=(0,y.useRef)(null),[Xe,Ze]=(0,y.useState)(``),[Qe,$e]=(0,y.useState)(!1),et=(0,y.useRef)(null),[tt,nt]=(0,y.useState)(e?.printer_id||null),[rt,it]=(0,y.useState)(e?.controls_printer_power??!0),[at,ot]=(0,y.useState)(null),[st,ct]=(0,y.useState)(null),[lt,ut]=(0,y.useState)(e?.power_alert_enabled||!1),[dt,ft]=(0,y.useState)(e?.power_alert_high?.toString()||``),[pt,mt]=(0,y.useState)(e?.power_alert_low?.toString()||``),[ht,gt]=(0,y.useState)(e?.schedule_enabled||!1),[_t,vt]=(0,y.useState)(e?.schedule_on_time||``),[yt,bt]=(0,y.useState)(e?.schedule_off_time||``),[xt,St]=(0,y.useState)(e?.show_in_switchbar||!1),[Ct,wt]=(0,y.useState)(e?.show_on_printer_card??!0),[Tt,Et]=(0,y.useState)(!1),[Dt,Ot]=(0,y.useState)({scanned:0,total:0}),[kt,At]=(0,y.useState)([]),jt=(0,y.useRef)(null),{data:Mt}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:Nt}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:Pt}=K({queryKey:[`settings`],queryFn:Z.getSettings}),Ft=!!(Pt?.ha_enabled&&Pt?.ha_url&&Pt?.ha_token);(0,y.useEffect)(()=>{let e=setTimeout(()=>{Ie(Ne)},300);return()=>clearTimeout(e)},[Ne]),(0,y.useEffect)(()=>{let e=e=>{ze.current&&!ze.current.contains(e.target)&&Re(!1),We.current&&!We.current.contains(e.target)&&Ue(!1),Ye.current&&!Ye.current.contains(e.target)&&Je(!1),et.current&&!et.current.contains(e.target)&&$e(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let{data:It,isLoading:Lt,error:Rt}=K({queryKey:[`ha-entities`,Fe],queryFn:()=>Z.getHAEntities(Fe||void 0),enabled:a===`homeassistant`&&Ft,retry:!1,staleTime:0}),{data:zt}=K({queryKey:[`ha-sensor-entities`],queryFn:Z.getHASensorEntities,enabled:a===`homeassistant`&&Ft,retry:!1,staleTime:0});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e),jt.current&&clearInterval(jt.current)}},[t]);let Bt=async()=>{Et(!0),At([]),Ot({scanned:0,total:0}),ct(null);try{await Z.startTasmotaScan();let e=async()=>{try{let e=await Z.getTasmotaScanStatus();Ot({scanned:e.scanned,total:e.total}),At(await Z.getDiscoveredTasmotaDevices()),e.running||(Et(!1),jt.current&&=(clearInterval(jt.current),null))}catch(e){console.error(`Polling error:`,e)}};await e(),jt.current=setInterval(e,500)}catch(e){Et(!1),ct((e instanceof Error?e.message:typeof e==`string`?e:JSON.stringify(e))||n(`smartPlugs.failedToStartScan`))}},Vt=async()=>{try{await Z.stopTasmotaScan()}catch{}Et(!1),jt.current&&=(clearInterval(jt.current),null)},Ht=e=>{u(e.ip_address),c(e.name),ot(null)},Ut=q({mutationFn:()=>Z.testSmartPlugConnection(l,d||null,p||null),onSuccess:e=>{ot(e),ct(null),!s&&e.device_name&&c(e.device_name)},onError:e=>{ot(null),ct(e.message)}}),Wt=q({mutationFn:e=>Z.createSmartPlug(e),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`]}),t()},onError:e=>{ct(e.message)}}),Gt=q({mutationFn:t=>Z.updateSmartPlug(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`]}),t()},onError:e=>{ct(e.message)}}),Kt=Mt?.filter(t=>a===`tasmota`?!Nt?.some(n=>n.printer_id===t.id&&n.id!==e?.id&&n.plug_type===`tasmota`):!0),qt=e=>{if(e.preventDefault(),ct(null),!s.trim()){ct(n(`smartPlugs.nameRequired`));return}if(a===`tasmota`&&!l.trim()){ct(`IP address is required for Tasmota plugs`);return}if(a===`homeassistant`&&!h){ct(n(`smartPlugs.entityRequired`));return}if(a===`mqtt`){let e=_.trim(),t=w.trim(),r=A.trim();if(!e&&!t&&!r){ct(n(`smartPlugs.mqttTopicRequired`));return}}if(a===`rest`&&!I.trim()&&!B.trim()){ct(n(`smartPlugs.restUrlRequired`));return}let t={name:s.trim(),plug_type:a,ip_address:a===`tasmota`?l.trim():null,ha_entity_id:a===`homeassistant`?h:null,ha_power_entity:a===`homeassistant`&&De||null,ha_energy_today_entity:a===`homeassistant`&&ke||null,ha_energy_total_entity:a===`homeassistant`&&je||null,mqtt_power_topic:a===`mqtt`&&_.trim()||null,mqtt_power_path:a===`mqtt`&&b.trim()||null,mqtt_power_multiplier:a===`mqtt`&&parseFloat(S)||1,mqtt_energy_topic:a===`mqtt`&&w.trim()||null,mqtt_energy_path:a===`mqtt`&&E.trim()||null,mqtt_energy_multiplier:a===`mqtt`&&parseFloat(O)||1,mqtt_state_topic:a===`mqtt`&&A.trim()||null,mqtt_state_path:a===`mqtt`&&M.trim()||null,mqtt_state_on_value:a===`mqtt`&&P.trim()||null,rest_on_url:a===`rest`&&I.trim()||null,rest_on_body:a===`rest`&&R.trim()||null,rest_off_url:a===`rest`&&B.trim()||null,rest_off_body:a===`rest`&&ee.trim()||null,rest_method:a===`rest`?ne:null,rest_headers:a===`rest`&&ie.trim()||null,rest_status_url:a===`rest`&&oe.trim()||null,rest_status_path:a===`rest`&&H.trim()||null,rest_status_on_value:a===`rest`&&le.trim()||null,rest_power_url:a===`rest`&&de.trim()||null,rest_power_path:a===`rest`&&pe.trim()||null,rest_power_multiplier:a===`rest`&&parseFloat(he)||1,rest_energy_url:a===`rest`&&_e.trim()||null,rest_energy_path:a===`rest`&&ye.trim()||null,rest_energy_multiplier:a===`rest`&&parseFloat(xe)||1,rest_energy_total_path:a===`rest`&&Ce.trim()||null,rest_energy_total_multiplier:a===`rest`&&parseFloat(Te)||1,username:a===`tasmota`&&d.trim()||null,password:a===`tasmota`&&p.trim()||null,printer_id:tt,controls_printer_power:rt,power_alert_enabled:lt,power_alert_high:dt?parseFloat(dt):null,power_alert_low:pt?parseFloat(pt):null,schedule_enabled:ht,schedule_on_time:_t||null,schedule_off_time:yt||null,show_in_switchbar:xt,show_on_printer_card:Ct};i?Gt.mutate(t):Wt.mutate(t)},Jt=Wt.isPending||Gt.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(i?`smartPlugs.editTitle`:`smartPlugs.addTitle`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:qt,className:`p-6 space-y-4 overflow-y-auto`,children:[st&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:st}),!i&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`tasmota`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`tasmota`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4`}),`Tasmota`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`homeassistant`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`homeassistant`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Bc,{className:`w-4 h-4`}),`HA`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`mqtt`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`mqtt`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Bl,{className:`w-4 h-4`}),`MQTT`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`rest`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`rest`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4`}),`REST`]})]}),!i&&a===`tasmota`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[Tt?(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:Vt,className:`w-full`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),n(`smartPlugs.stopScanning`)]}):(0,G.jsxs)(Q,{type:`button`,variant:`primary`,onClick:Bt,className:`w-full`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4`}),n(`smartPlugs.discoverTasmota`)]}),Tt&&Dt.total>0&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:n(`smartPlugs.addSmartPlug.scanningNetwork`)}),(0,G.jsxs)(`span`,{children:[Dt.scanned,` / `,Dt.total]})]}),(0,G.jsx)(`div`,{className:`w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-2 rounded-full transition-all duration-300`,style:{width:`${Dt.scanned/Dt.total*100}%`}})})]}),kt.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.foundDevices`,{count:kt.length})}),(0,G.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-1`,children:kt.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>Ht(e),className:`w-full flex items-center justify-between p-2 bg-bambu-dark hover:bg-bambu-dark-tertiary rounded-lg transition-colors text-left border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.ip_address})]})]}),e.state&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs ${e.state===`ON`?`text-bambu-green`:`text-bambu-gray`}`,children:[(0,G.jsx)(Ll,{className:`w-3 h-3`}),e.state]})]},e.ip_address))})]}),!Tt&&kt.length===0&&Dt.total>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray text-center py-2`,children:n(`smartPlugs.noDevicesFound`)})]}),a===`homeassistant`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!Ft&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[n(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:n(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 opacity-50`,children:n(`smartPlugs.selectEntity`)}),(0,G.jsx)(`select`,{disabled:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray cursor-not-allowed opacity-50`,children:(0,G.jsx)(`option`,{children:n(`smartPlugs.addSmartPlug.chooseEntity`)})})]})]}),Ft&&(0,G.jsxs)(G.Fragment,{children:[Lt&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-4 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),n(`smartPlugs.loadingEntities`)]}),Rt&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:n(`smartPlugs.failedToLoadEntities`,{error:Rt.message})}),(()=>{let t=Nt?.filter(t=>t.ha_entity_id&&t.id!==e?.id).map(e=>e.ha_entity_id)||[],r=(It||[]).filter(e=>!t.includes(e.entity_id)),i=It?.find(e=>e.entity_id===h);return(0,G.jsxs)(`div`,{ref:ze,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.selectEntity`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:Le?Ne:i?`${i.friendly_name} (${i.entity_id})`:``,onChange:e=>{Pe(e.target.value),Le||Re(!0)},onFocus:()=>{Re(!0),Pe(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEntities`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),h&&!Le&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{g(``),Pe(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})}),Lt&&(0,G.jsx)(Y,{className:`absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray animate-spin`})]}),Le&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-60 overflow-y-auto`,children:[Lt&&(0,G.jsxs)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`smartPlugs.loading`)]}),!Lt&&r.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:Fe?n(`smartPlugs.noEntitiesMatching`,{search:Fe}):n(`smartPlugs.noEntitiesAvailable`)}),!Lt&&r.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{g(e.entity_id),Re(!1),Pe(``),s||c(e.friendly_name)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary transition-colors ${e.entity_id===h?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray flex items-center justify-between`,children:[(0,G.jsx)(`span`,{children:e.entity_id}),(0,G.jsx)(`span`,{className:e.state===`on`?`text-bambu-green`:``,children:e.state})]})]},e.entity_id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(Fe?`smartPlugs.searchingEntities`:`smartPlugs.showingEntities`,{count:r.length})})]})})(),h&&zt&&zt.length>0&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4 mt-4 space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:n(`smartPlugs.energyMonitoringOptional`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:n(`smartPlugs.energyMonitoringHint`)})]}),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`W`||e.unit_of_measurement===`kW`||e.unit_of_measurement===`mW`),t=Be?e.filter(e=>e.entity_id.toLowerCase().includes(Be.toLowerCase())||e.friendly_name.toLowerCase().includes(Be.toLowerCase())):e,r=zt.find(e=>e.entity_id===De);return(0,G.jsxs)(`div`,{ref:We,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.powerSensorW`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:He?Be:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ve(e.target.value),He||Ue(!0)},onFocus:()=>{Ue(!0),Ve(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchPowerSensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),De&&!He&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Oe(``),Ve(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),He&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Oe(``),Ue(!1),Ve(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Oe(e.entity_id),Ue(!1),Ve(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===De?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})(),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`kWh`||e.unit_of_measurement===`Wh`||e.unit_of_measurement===`MWh`),t=Ge?e.filter(e=>e.entity_id.toLowerCase().includes(Ge.toLowerCase())||e.friendly_name.toLowerCase().includes(Ge.toLowerCase())):e,r=zt.find(e=>e.entity_id===ke);return(0,G.jsxs)(`div`,{ref:Ye,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.energyTodayKwh`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:qe?Ge:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ke(e.target.value),qe||Je(!0)},onFocus:()=>{Je(!0),Ke(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEnergySensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),ke&&!qe&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ae(``),Ke(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),qe&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ae(``),Je(!1),Ke(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Ae(e.entity_id),Je(!1),Ke(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===ke?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})(),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`kWh`||e.unit_of_measurement===`Wh`||e.unit_of_measurement===`MWh`),t=Xe?e.filter(e=>e.entity_id.toLowerCase().includes(Xe.toLowerCase())||e.friendly_name.toLowerCase().includes(Xe.toLowerCase())):e,r=zt.find(e=>e.entity_id===je);return(0,G.jsxs)(`div`,{ref:et,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.totalEnergyKwh`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:Qe?Xe:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ze(e.target.value),Qe||$e(!0)},onFocus:()=>{$e(!0),Ze(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEnergySensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),je&&!Qe&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Me(``),Ze(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),Qe&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Me(``),$e(!1),Ze(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Me(e.entity_id),$e(!1),Ze(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===je?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})()]})]})]}),a===`mqtt`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!Pt?.mqtt_broker&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[n(`smartPlugs.mqttNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:n(`smartPlugs.mqttSettingsPath`)}),` `,n(`smartPlugs.mqttNotConfiguredSuffix`)]}),Pt?.mqtt_broker&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg text-sm text-blue-700 dark:text-blue-300`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:n(`smartPlugs.monitorOnly`)}),(0,G.jsx)(`p`,{className:`text-xs opacity-80`,children:n(`smartPlugs.mqttMonitorOnlyDescription`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm`,children:n(`smartPlugs.powerMonitoring`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`zigbee2mqtt/shelly-working-room`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`power_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.multiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttPowerHint`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.energyMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:`Same as power topic, or different`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:E,onChange:e=>D(e.target.value),placeholder:`energy_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.multiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:O,onChange:e=>k(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttEnergyHint`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.stateMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:`Same as power topic, or different`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:M,onChange:e=>N(e.target.value),placeholder:`state_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.onValue`)}),(0,G.jsx)(`input`,{type:`text`,value:P,onChange:e=>F(e.target.value),placeholder:n(`smartPlugs.addSmartPlug.placeholders.mqttStateOnValue`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttStateHint`)})]})]})]}),a===`rest`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm`,children:n(`smartPlugs.restControl`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restMethod`)}),(0,G.jsxs)(`select`,{value:ne,onChange:e=>re(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`GET`,children:`GET`}),(0,G.jsx)(`option`,{value:`POST`,children:`POST`}),(0,G.jsx)(`option`,{value:`PUT`,children:`PUT`}),(0,G.jsx)(`option`,{value:`PATCH`,children:`PATCH`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restOnUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:I,onChange:e=>{L(e.target.value),ot(null)},placeholder:`http://openhab:8080/rest/items/MyPlug`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restOnBody`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>z(e.target.value),placeholder:n(`smartPlugs.restBodyHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restOffUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:B,onChange:e=>{V(e.target.value),ot(null)},placeholder:`http://openhab:8080/rest/items/MyPlug`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restOffBody`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:n(`smartPlugs.restBodyHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.restHeaders`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`textarea`,{value:ie,onChange:e=>ae(e.target.value),placeholder:n(`smartPlugs.restHeadersHint`),rows:2,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none font-mono text-sm`})})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.stateMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:oe,onChange:e=>se(e.target.value),placeholder:n(`smartPlugs.restStatusHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusPath`)}),(0,G.jsx)(`input`,{type:`text`,value:H,onChange:e=>ce(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusOnValue`)}),(0,G.jsx)(`input`,{type:`text`,value:le,onChange:e=>ue(e.target.value),placeholder:`ON`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.energyMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restPowerUrl`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:de,onChange:e=>fe(e.target.value),placeholder:n(`smartPlugs.restPowerUrlHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restPowerPath`)}),(0,G.jsx)(`input`,{type:`text`,value:pe,onChange:e=>me(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restPowerMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:he,onChange:e=>ge(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restEnergyUrl`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:_e,onChange:e=>ve(e.target.value),placeholder:n(`smartPlugs.restEnergyUrlHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyPath`)}),(0,G.jsx)(`input`,{type:`text`,value:ye,onChange:e=>be(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:xe,onChange:e=>Se(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.restEnergyHint`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyTotalPath`)}),(0,G.jsx)(`input`,{type:`text`,value:Ce,onChange:e=>we(e.target.value),placeholder:n(`smartPlugs.restEnergyTotalPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyTotalMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:Te,onChange:e=>Ee(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.restEnergyTotalHint`)})]}),(I.trim()||B.trim())&&(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:async()=>{ot(null);try{let e=I.trim()||B.trim(),t=await Z.testRESTConnection(e,ne,ie.trim()||null);ot({success:t.success}),t.success||ct(t.error||n(`smartPlugs.addSmartPlug.connectionFailed`))}catch{ot({success:!1}),ct(n(`smartPlugs.addSmartPlug.connectionFailed`))}},className:`w-full`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4`}),n(`smartPlugs.testConnection`)]})}),at&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm ${at.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[at.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Zu,{className:`w-4 h-4`}),at.success?n(`smartPlugs.connectionSuccess`):n(`smartPlugs.addSmartPlug.connectionFailed`)]})]}),a===`tasmota`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.ipAddress`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>{u(e.target.value),ot(null)},placeholder:`192.168.1.100`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>Ut.mutate(),disabled:!l.trim()||Ut.isPending,children:[Ut.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Qu,{className:`w-4 h-4`}),n(`smartPlugs.test`)]})]})]}),a===`tasmota`&&at&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg flex items-center gap-2 ${at.success?`bg-bambu-green/20 border border-bambu-green/50 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 text-red-700 dark:text-red-400`}`,children:at.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-5 h-5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`smartPlugs.connectedResult`)}),(0,G.jsxs)(`p`,{className:`text-sm opacity-80`,children:[at.device_name&&n(`smartPlugs.deviceLabel`,{name:at.device_name}),n(`smartPlugs.stateLabel`,{state:at.state})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Zu,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:n(`smartPlugs.addSmartPlug.connectionFailed`)})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:n(`smartPlugs.addSmartPlug.placeholders.plugName`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),a===`tasmota`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.username`)}),(0,G.jsx)(`input`,{type:`text`,value:d,onChange:e=>f(e.target.value),placeholder:`admin`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.password`)}),(0,G.jsx)(`input`,{type:`password`,value:p,onChange:e=>m(e.target.value),placeholder:`********`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray -mt-2`,children:n(`smartPlugs.authHint`)})]}),a!==`mqtt`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.linkToPrinter`)}),(0,G.jsxs)(`select`,{value:tt??``,onChange:e=>nt(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:n(`smartPlugs.noPrinter`)}),Kt?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`smartPlugs.linkingDescription`)}),tt!==null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-3`,children:[(0,G.jsxs)(`div`,{className:`pr-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.controlsPrinterPower`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.controlsPrinterPowerDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer shrink-0`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:rt,onChange:e=>it(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]}),(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(qo,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.powerAlerts`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:lt,onChange:e=>ut(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),lt&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.alertAbove`)}),(0,G.jsx)(`input`,{type:`number`,value:dt,onChange:e=>ft(e.target.value),placeholder:`e.g. 200`,min:`0`,max:`5000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.alertBelow`)}),(0,G.jsx)(`input`,{type:`number`,value:pt,onChange:e=>mt(e.target.value),placeholder:`e.g. 10`,min:`0`,max:`5000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.alertDescription`)})]})]}),a!==`mqtt`&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.dailySchedule`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ht,onChange:e=>gt(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),ht&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.turnOnAt`)}),(0,G.jsx)(`input`,{type:`time`,value:_t,onChange:e=>vt(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.turnOffAt`)}),(0,G.jsx)(`input`,{type:`time`,value:yt,onChange:e=>bt(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.scheduleDescription`)})]})]}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.showInSwitchbar`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.quickAccessSidebar`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:xt,onChange:e=>St(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})}),a===`homeassistant`&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.showOnPrinterCard`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.displayOnPrinterCard`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ct,onChange:e=>wt(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`smartPlugs.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:Jt,className:`flex-1`,children:[Jt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),n(i?`smartPlugs.save`:`smartPlugs.add`)]})]})]})]})})}function IWe({sensor:e,printers:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),o=!!e,[s,c]=(0,y.useState)(e?.printer_id??t[0]?.id??``),[l,u]=(0,y.useState)(e?.entity_id??``),[d,f]=(0,y.useState)(e?.kind??`binary`),[p,m]=(0,y.useState)(e?.device_class??null),[h,g]=(0,y.useState)(e?.unit??null),[_,v]=(0,y.useState)(e?.name??``),[b,x]=(0,y.useState)(e?.alert_state??``),[S,C]=(0,y.useState)(e?.alert_above?.toString()??``),[w,T]=(0,y.useState)(e?.alert_below?.toString()??``),[E,D]=(0,y.useState)(e?.show_on_printer_card??!0),[O,k]=(0,y.useState)(e?.notify_on_alert??!1),[A,j]=(0,y.useState)(e?.block_print??!1),[M,N]=(0,y.useState)(``),[P,F]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let{data:I}=K({queryKey:[`settings`],queryFn:Z.getSettings}),L=!!(I?.ha_enabled&&I?.ha_url&&I?.ha_token),{data:R,isLoading:z,error:B}=K({queryKey:[`bindableHAEntities`],queryFn:()=>Z.getBindableHAEntities(),enabled:L}),V=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase(),t=R??[];return e?t.filter(t=>t.entity_id.toLowerCase().includes(e)||t.friendly_name.toLowerCase().includes(e)):t},[R,M]),ee=e=>{u(e.entity_id),m(e.device_class),g(e.unit_of_measurement);let t=e.domain===`binary_sensor`?`binary`:`numeric`;f(t),t===`numeric`?x(``):(C(``),T(``)),_.trim()||v(e.friendly_name.slice(0,100))},te=()=>{i.invalidateQueries({queryKey:[`haSensors`]}),i.invalidateQueries({queryKey:[`haSensorReadings`]})},ne=q({mutationFn:()=>{let t={name:_.trim(),entity_id:l,kind:d,device_class:p,unit:h,alert_state:d===`binary`&&b?b:null,alert_above:d===`numeric`&&S!==``?Number(S):null,alert_below:d===`numeric`&&w!==``?Number(w):null,block_print:A,notify_on_alert:O,show_on_printer_card:E};return o?Z.updateHASensor(e.id,t):Z.createHASensor({...t,printer_id:Number(s)})},onSuccess:()=>{te(),a(r(o?`haSensors.toast.updated`:`haSensors.toast.created`),`success`),n()},onError:e=>F(e.message)}),re=q({mutationFn:()=>Z.deleteHASensor(e.id),onSuccess:()=>{te(),a(r(`haSensors.toast.deleted`),`success`),n()},onError:e=>F(e.message)}),ie=d===`binary`?b!==``:S!==``||w!==``,ae=e=>{if(e.preventDefault(),F(null),!l)return F(r(`haSensors.error.pickEntity`));if(!_.trim())return F(r(`haSensors.error.nameRequired`));if(s===``)return F(r(`haSensors.error.printerRequired`));if((A||O)&&!ie)return F(r(`haSensors.error.alertRequired`));ne.mutate()},oe=MT[p??``],se=e=>{let t=oe?.[e]??e;return r(`haSensors.states.${t}`,{defaultValue:t})},H=ne.isPending||re.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Tc,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(o?`haSensors.editTitle`:`haSensors.addTitle`)})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:ae,className:`p-6 space-y-4`,children:[P&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:P}),!o&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.printer`)}),(0,G.jsx)(`select`,{value:s,onChange:e=>c(e.target.value===``?``:Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),!L&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[r(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:r(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 ${L?``:`opacity-50`}`,children:r(`haSensors.entity`)}),B&&(0,G.jsx)(`div`,{className:`p-3 mb-2 bg-red-100 dark:bg-red-500/20 rounded-lg text-sm text-red-700 dark:text-red-400`,children:B.message}),(0,G.jsxs)(`div`,{className:`relative mb-2`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:M,onChange:e=>N(e.target.value),placeholder:r(`haSensors.searchPlaceholder`),disabled:!L,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,G.jsxs)(`div`,{className:`max-h-44 overflow-y-auto rounded-lg border border-bambu-dark-tertiary ${L?``:`opacity-50`}`,children:[!L&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),L&&z&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.loading`)]}),L&&!z&&V.length===0&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),L&&!z&&V.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>ee(e),className:`w-full text-left px-3 py-2 text-sm transition-colors ${e.entity_id===l?`bg-bambu-green/20 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,e.state!==null&&` — ${e.state}`,e.unit_of_measurement?` ${e.unit_of_measurement}`:``]})]},e.entity_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.name`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.alertWhen`)}),d===`binary`?(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:[(0,G.jsx)(`option`,{value:``,children:r(`haSensors.alertNever`)}),(0,G.jsx)(`option`,{value:`on`,children:se(`on`)}),(0,G.jsx)(`option`,{value:`off`,children:se(`off`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:S,onChange:e=>C(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:w,onChange:e=>T(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(`haSensors.alertHint`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`haSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked),disabled:!ie,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${ie?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A,onChange:e=>j(e.target.checked),disabled:!ie,className:`w-4 h-4 mt-0.5`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`span`,{className:`block text-sm ${ie?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.blockPrint`)}),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray`,children:r(`haSensors.blockPrintHint`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2`,children:[o?(0,G.jsx)(Q,{type:`button`,variant:`danger`,onClick:()=>re.mutate(),disabled:H,children:r(`common.delete`)}):(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:H,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:H||!L&&!o,children:[H?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})]})]})]})]})})}function X6({open:e,onClose:t,onPickLocation:n,startCreating:r}){let{t:i}=U(),a=co(),{showToast:o}=qd(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(null),{data:h=[],isLoading:g}=K({queryKey:_6,queryFn:Z.getLocations,enabled:e}),{data:_=[]}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors(),enabled:e}),v=_.reduce((e,t)=>(e[t.location_id]=(e[t.location_id]??0)+1,e),{}),b=()=>{v6(a),a.invalidateQueries({queryKey:[`inventory-spools`]}),a.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),a.invalidateQueries({queryKey:[`locationHaSensors`]}),a.invalidateQueries({queryKey:[`locationHaSensorReadings`]})},x=q({mutationFn:async()=>{let e=d.trim();if(!e)throw Error(i(`locations.nameRequired`));return l?Z.updateLocation(l.id,{name:e}):Z.createLocation({name:e})},onSuccess:e=>{if(o(i(l?`locations.updated`:`locations.created`),`success`),b(),!l&&r){n?.(e.id),t();return}c(!1),u(null),f(``)},onError:e=>{o(e.message||i(`locations.saveFailed`),`error`)}}),S=q({mutationFn:e=>Z.deleteLocation(e),onSuccess:()=>{o(i(`locations.deleted`),`success`),m(null),b()},onError:e=>{o(e.message||i(`locations.deleteFailed`),`error`)}}),C=()=>{u(null),f(``),c(!0)};(0,y.useEffect)(()=>{e&&r&&(u(null),f(``),c(!0))},[e,r]);let w=e=>{u(e),f(e.name),c(!0)},T=(0,y.useCallback)(()=>{if(!x.isPending){if(r){t();return}c(!1),u(null),f(``)}},[x.isPending,r,t]);(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(x.isPending||S.isPending||(s?T():p||t()))};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,s,p,x.isPending,S.isPending,T,t]);let E=e=>{e.preventDefault(),x.mutate()};if(!e)return null;let D=`locations-modal-title`,O=`location-editor-title`,k=(0,G.jsxs)(`form`,{onSubmit:E,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`location-name`,children:i(`locations.name`)}),(0,G.jsx)(`input`,{id:`location-name`,type:`text`,maxLength:255,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green mb-4`,placeholder:i(`locations.createPlaceholder`),value:d,onChange:e=>f(e.target.value),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:T,children:i(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:x.isPending||!d.trim(),children:[x.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`common.save`)]})]})]});return r?s?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:T}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":O,children:[(0,G.jsx)(`h3`,{id:O,className:`text-lg font-semibold text-white mb-4`,children:i(`locations.add`)}),k]})]}):null:(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>{x.isPending||S.isPending||t()}}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-2xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":D,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{id:D,className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ol,{className:`w-5 h-5 text-bambu-green`}),i(`locations.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-0.5`,children:i(`locations.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:C,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`locations.add`)]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:t,"aria-label":i(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto`,children:g?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin mr-2`}),i(`common.loading`)]}):h.length===0?(0,G.jsx)(`div`,{className:`py-16 text-center text-bambu-gray`,children:i(`locations.empty`)}):(0,G.jsxs)(`table`,{className:`w-full text-sm table-fixed`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium`,children:i(`locations.name`)}),(0,G.jsx)(`th`,{className:`px-2 py-3 font-medium text-right w-24`,children:i(`locations.sensors`)}),(0,G.jsx)(`th`,{className:`pl-[28px] pr-4 py-3 font-medium text-right w-28`,children:i(`locations.spools`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right w-32`,children:i(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:h.map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 hover:bg-bambu-dark-tertiary/30 cursor-pointer`,onClick:()=>{n&&(n(e.id),t())},children:[(0,G.jsx)(`td`,{className:`px-4 py-3 text-white font-medium truncate`,children:e.name}),(0,G.jsx)(`td`,{className:`px-2 py-3 text-right text-bambu-gray`,children:v[e.id]??0}),(0,G.jsx)(`td`,{className:`pl-[28px] pr-4 py-3 text-right text-bambu-gray`,children:e.spool_count}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded`,onClick:()=>w(e),title:i(`common.edit`),"aria-label":i(`locations.editAria`,{name:e.name,defaultValue:`Edit ${e.name}`}),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded disabled:opacity-40`,disabled:e.spool_count>0,onClick:()=>m(e),title:e.spool_count>0?i(`locations.deleteBlocked`):i(`common.delete`),"aria-label":i(`locations.deleteAria`,{name:e.name,defaultValue:`Delete ${e.name}`}),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},e.id))})]})})]}),s&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:T}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":O,children:[(0,G.jsx)(`h3`,{id:O,className:`text-lg font-semibold text-white mb-4`,children:i(l?`locations.edit`:`locations.add`)}),k]})]}),p&&(0,G.jsx)(of,{title:i(`locations.confirmDelete`,{name:p.name}),message:v[p.id]?i(`locations.confirmDeleteMessageWithSensors`):i(`locations.confirmDeleteMessage`),confirmText:i(`common.delete`),variant:`danger`,isLoading:S.isPending,onConfirm:()=>S.mutate(p.id),onCancel:()=>m(null)})]})}function Z6(e){return e===`temperature`?`temperature`:e===`humidity`?`humidity`:e===`battery`?`battery`:null}var Q6={temperature:`temperature`,humidity:`humidity`,battery:`battery`};function LWe(e,t,n){let r=Q6[t];if(!e.toLowerCase().endsWith(r))return[];let i=e.slice(0,e.length-r.length),a=[];return Object.keys(Q6).forEach(e=>{if(e===t)return;let r=`${i}${Q6[e]}`.toLowerCase(),o=n.find(e=>e.entity_id.toLowerCase()===r);o&&a.push(o)}),a}function RWe({sensor:e,locations:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),o=!!e,[s,c]=(0,y.useState)(e?.location_id??t[0]?.id??``),[l,u]=(0,y.useState)(e?.entity_id??``),[d,f]=(0,y.useState)(e?.kind??`numeric`),[p,m]=(0,y.useState)(e?.device_class??null),[h,g]=(0,y.useState)(e?.unit??null),[_,v]=(0,y.useState)(e?.name??``),b=(0,y.useRef)(e?.name??``),[x,S]=(0,y.useState)(e?.alert_state??``),[C,w]=(0,y.useState)(e?.alert_above?.toString()??``),[T,E]=(0,y.useState)(e?.alert_below?.toString()??``),[D,O]=(0,y.useState)(e?.notify_on_alert??!1),[k,A]=(0,y.useState)(e?.show_on_card??!0),[j,M]=(0,y.useState)(``),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(!1),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)([]),[re,ie]=(0,y.useState)({}),{data:ae}=K({queryKey:[`settings`],queryFn:Z.getSettings}),oe=!!(ae?.ha_enabled&&ae?.ha_url&&ae?.ha_token),{data:se,isLoading:H,error:ce}=K({queryKey:[`bindableLocationHAEntities`],queryFn:()=>Z.getBindableLocationHAEntities(),enabled:oe}),le=(0,y.useMemo)(()=>(se??[]).filter(e=>Z6(e.device_class)!==null),[se]),{data:ue}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),de=le.find(e=>e.entity_id===l),fe=(0,y.useMemo)(()=>{let e=j.trim().toLowerCase(),t=le??[],n=e?t.filter(t=>t.entity_id.toLowerCase().includes(e)||t.friendly_name.toLowerCase().includes(e)):t;return!de||n[0]?.entity_id===de.entity_id?n:[de,...n.filter(e=>e.entity_id!==de.entity_id)]},[le,j,de]),pe=e=>{u(e.entity_id),m(e.device_class),g(e.unit_of_measurement?.slice(0,16)??null);let t=e.domain===`binary_sensor`?`binary`:`numeric`;if(f(t),t===`numeric`?S(``):(w(``),E(``)),_===b.current){let t=e.friendly_name.slice(0,100);v(t),b.current=t}if(!o){let n=Z6(e.device_class);if(n){let e=S6(ae?.location_sensor_alert_defaults)[n];t===`numeric`&&(w(n===`battery`?``:e.alertAbove),E(e.alertBelow)),O(e.notifyOnAlert),A(e.showOnCard)}}},me=()=>{i.invalidateQueries({queryKey:[`locationHaSensors`]}),i.invalidateQueries({queryKey:[`locationHaSensorReadings`]})},he=()=>({name:_.trim(),entity_id:l,kind:d,device_class:p,unit:h,alert_state:d===`binary`&&x?x:null,alert_above:d===`numeric`&&Z6(p)!==`battery`&&C!==``?Number(C):null,alert_below:d===`numeric`&&T!==``?Number(T):null,notify_on_alert:D,show_on_card:k}),ge=q({mutationFn:()=>{let t=he();return o?Z.updateLocationHASensor(e.id,t):Z.createLocationHASensor({...t,location_id:Number(s)})},onSuccess:()=>{me(),a(r(o?`locationHaSensors.toast.updated`:`locationHaSensors.toast.created`),`success`),n()},onError:e=>P(e.message)}),_e=q({mutationFn:async()=>{let e=Number(s);await Z.createLocationHASensor({...he(),location_id:e});let t=S6(ae?.location_sensor_alert_defaults),n=te.filter(e=>re[e.entity_id]);for(let r of n){let n=Z6(r.device_class),i=n?t[n]:null;await Z.createLocationHASensor({name:r.friendly_name.slice(0,100),entity_id:r.entity_id,kind:r.domain===`binary_sensor`?`binary`:`numeric`,device_class:r.device_class,unit:r.unit_of_measurement?.slice(0,16)??null,alert_state:null,alert_above:n!==`battery`&&i&&i.alertAbove!==``?Number(i.alertAbove):null,alert_below:i&&i.alertBelow!==``?Number(i.alertBelow):null,notify_on_alert:i?.notifyOnAlert??!1,show_on_card:i?.showOnCard??k,location_id:e})}return n},onSuccess:e=>{me(),ee(!1),e.length>0?a(r(`locationHaSensors.autoAdd.added`,{names:e.map(e=>e.entity_id).join(`, `)}),`success`):a(r(`locationHaSensors.toast.created`),`success`),n()},onError:e=>{me(),ee(!1),P(e.message)}}),ve=q({mutationFn:()=>Z.deleteLocationHASensor(e.id),onSuccess:()=>{me(),a(r(`locationHaSensors.toast.deleted`),`success`),n()},onError:e=>P(e.message)}),ye=q({mutationFn:()=>Z.updateLocationHASensor(z.id,he()),onSuccess:()=>{me(),R(!1),B(null),a(r(`locationHaSensors.toast.updated`),`success`),n()},onError:e=>{R(!1),B(null),P(e.message)}}),be=d===`binary`?x!==``:C!==``||T!==``,xe=e=>{if(e.preventDefault(),P(null),!l)return P(r(`haSensors.error.pickEntity`));if(!_.trim())return P(r(`haSensors.error.nameRequired`));if(s===``)return P(r(`locationHaSensors.error.locationRequired`));if(D&&!be)return P(r(`haSensors.error.alertRequired`));if(!o){let e=(ue??[]).filter(e=>e.location_id===Number(s)),t=Z6(p);if(t){let n=e.find(e=>Z6(e.device_class)===t);if(n){B(n),R(!0);return}}if(e.length===0&&t){let e=LWe(l,t,le);if(e.length>0){ne(e),ie(Object.fromEntries(e.map(e=>[e.entity_id,!0]))),ee(!0);return}a(r(`locationHaSensors.autoAdd.noneFound`),`info`)}}ge.mutate()},Se=MT[p??``],Ce=e=>{let t=Se?.[e]??e;return r(`haSensors.states.${t}`,{defaultValue:t})},we=ge.isPending||ve.isPending||ye.isPending||_e.isPending,Te=t.find(e=>e.id===Number(s));return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!we&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n,we]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>{we||n()},children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Tc,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(o?`locationHaSensors.editTitle`:`locationHaSensors.addTitle`)})]}),(0,G.jsx)(`button`,{onClick:n,disabled:we,className:`text-bambu-gray hover:text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:xe,className:`p-6 space-y-4`,children:[N&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:N}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`locationHaSensors.location`)}),o?(0,G.jsx)(`div`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.find(t=>t.id===e.location_id)?.name??r(`locationHaSensors.unknownLocation`)}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`select`,{value:s,onChange:e=>c(e.target.value===``?``:Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>I(!0),className:`p-2 rounded-lg bg-bambu-dark-tertiary hover:bg-bambu-gray-dark text-white transition-colors shrink-0`,title:r(`locations.add`),"aria-label":r(`locations.add`),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})})]})]}),!oe&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[r(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:r(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 ${oe?``:`opacity-50`}`,children:r(`haSensors.entity`)}),ce&&(0,G.jsx)(`div`,{className:`p-3 mb-2 bg-red-100 dark:bg-red-500/20 rounded-lg text-sm text-red-700 dark:text-red-400`,children:ce.message}),(0,G.jsxs)(`div`,{className:`relative mb-2`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:j,onChange:e=>M(e.target.value),placeholder:r(`haSensors.searchPlaceholder`),disabled:!oe,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,G.jsxs)(`div`,{className:`max-h-44 overflow-y-auto rounded-lg border border-bambu-dark-tertiary ${oe?``:`opacity-50`}`,children:[l&&!de&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm bg-bambu-green/10 text-bambu-green border-b border-bambu-dark-tertiary`,children:r(`locationHaSensors.currentlyBound`,{entity:l})}),!oe&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),oe&&H&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.loading`)]}),oe&&!H&&fe.length===0&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),oe&&!H&&fe.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>pe(e),className:`w-full text-left px-3 py-2 text-sm transition-colors ${e.entity_id===l?`bg-bambu-green/20 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,e.state!==null&&` — ${e.state}`,e.unit_of_measurement?` ${e.unit_of_measurement}`:``]})]},e.entity_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,htmlFor:`location-ha-sensor-name`,children:r(`haSensors.name`)}),(0,G.jsx)(`input`,{id:`location-ha-sensor-name`,type:`text`,value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),l&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.alertWhen`)}),d===`binary`?(0,G.jsxs)(`select`,{value:x,onChange:e=>S(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:[(0,G.jsx)(`option`,{value:``,children:r(`haSensors.alertNever`)}),(0,G.jsx)(`option`,{value:`on`,children:Ce(`on`)}),(0,G.jsx)(`option`,{value:`off`,children:Ce(`off`)})]}):Z6(p)===`battery`?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:T,onChange:e=>E(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:C,onChange:e=>w(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:T,onChange:e=>E(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(`haSensors.alertHint`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:k,onChange:e=>A(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`locationHaSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D,onChange:e=>O(e.target.checked),disabled:!be,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${be?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2`,children:[o?(0,G.jsx)(Q,{type:`button`,variant:`danger`,onClick:()=>ve.mutate(),disabled:we,children:r(`common.delete`)}):(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:we,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:we||!oe&&!o,children:[we?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})]})]})]})]})}),L&&z&&(0,G.jsx)(of,{title:r(`locationHaSensors.overwriteConfirm.title`),message:r(`locationHaSensors.overwriteConfirm.message${Z6(z.device_class)===`humidity`?`Humidity`:Z6(z.device_class)===`battery`?`Battery`:`Temperature`}`,{location:Te?.name??``,name:z.name}),variant:`warning`,overlayZIndex:`z-[110]`,isLoading:ye.isPending,onConfirm:()=>ye.mutate(),onCancel:()=>{R(!1),B(null)}}),V&&te.length>0&&(0,G.jsx)(of,{title:r(`locationHaSensors.autoAdd.confirmTitle`),message:r(`locationHaSensors.autoAdd.confirmMessage`),overlayZIndex:`z-[110]`,isLoading:_e.isPending,confirmDisabled:!te.some(e=>re[e.entity_id]),onConfirm:()=>_e.mutate(),cancelText:r(`locationHaSensors.autoAdd.onlyThisOne`),onCancel:()=>{ee(!1),ne([]),ie({}),ge.mutate()},children:(0,G.jsx)(`div`,{className:`space-y-2`,children:te.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:re[e.entity_id]??!0,onChange:t=>ie(n=>({...n,[e.entity_id]:t.target.checked})),className:`w-4 h-4`}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[e.friendly_name,(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,e.entity_id]})]})]},e.entity_id))})}),F&&(0,G.jsx)(X6,{open:F,onClose:()=>I(!1),onPickLocation:e=>{c(e),I(!1)},startCreating:!0})]})}var $6=60,e8=120,zWe={temperature:Mu,humidity:Qs,battery:Wo},BWe={temperature:`°C`,humidity:`%`,battery:`%`};function t8(e){return e===`temperature`?`temperature`:e===`humidity`?`humidity`:e===`battery`?`battery`:null}function n8({category:e,state:t,onChange:n}){let{t:r}=U(),i=zWe[e],a=BWe[e],o=t.alertAbove!==``||t.alertBelow!==``;return(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm text-white font-medium`,children:[(0,G.jsx)(i,{className:`w-4 h-4`}),r(`inventory.${e}`)]}),e===`battery`?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertBelow,onChange:e=>n({alertBelow:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertAbove,onChange:e=>n({alertAbove:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertBelow,onChange:e=>n({alertBelow:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t.showOnCard,onChange:e=>n({showOnCard:e.target.checked}),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`locationHaSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t.notifyOnAlert,onChange:e=>n({notifyOnAlert:e.target.checked}),disabled:!o,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${o?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]})]})}function VWe({onClose:e}){let{t}=U(),{showToast:n}=qd(),r=co(),[i,a]=(0,y.useState)(()=>S6()),[o,s]=(0,y.useState)(()=>w6()),[c,l]=(0,y.useState)(()=>N6()),[u,d]=(0,y.useState)(()=>P6()),[f,p]=(0,y.useState)(()=>F6()),[m,h]=(0,y.useState)(!1),{data:g}=K({queryKey:[`settings`],queryFn:Z.getSettings}),[_,v]=(0,y.useState)(e8),b=(0,y.useRef)(!1),x=(0,y.useRef)(new Set);(0,y.useEffect)(()=>{if(!g||b.current)return;b.current=!0,x.current.has(`pollInterval`)||v(g.location_sensor_poll_interval);let e=S6(g.location_sensor_alert_defaults);a(t=>{let n={...e};return Object.keys(n).forEach(e=>{x.current.has(e)&&(n[e]=t[e])}),n})},[g]);let S=(e,t)=>{x.current.add(e),a(n=>({...n,[e]:{...n[e],...t}}))},C=e=>{x.current.add(`pollInterval`),v(e)},w=async()=>{let e=Math.max($6,_),t=pWe({...i,battery:{...i.battery,alertAbove:``}}),n={};g&&e!==g.location_sensor_poll_interval&&(n.location_sensor_poll_interval=e),g&&t!==g.location_sensor_alert_defaults&&(n.location_sensor_alert_defaults=t),Object.keys(n).length>0&&(await Z.updateSettings(n),r.invalidateQueries({queryKey:[`settings`]})),mWe(i),hWe(o),gWe(c),_We(u),vWe(f)},T=q({mutationFn:w,onSuccess:()=>{n(t(`locationHaSensors.options.saved`),`success`),e()},onError:e=>{n(e.message||t(`locationHaSensors.options.saveFailed`),`error`)}}),E=e=>{e.preventDefault(),T.mutate()},D=q({mutationFn:async()=>{let[e,t]=await Promise.all([Z.getLocationHASensors(),Z.getBindableLocationHAEntities()]),n=new Map(t.map(e=>[e.entity_id,e.friendly_name])),r=e.filter(e=>t8(e.device_class)!==null);return await Promise.all(r.map(e=>{let t=t8(e.device_class),r=i[t],a=n.get(e.entity_id);return Z.updateLocationHASensor(e.id,{...a?{name:a.slice(0,100)}:{},alert_above:t!==`battery`&&r.alertAbove!==``?Number(r.alertAbove):null,alert_below:r.alertBelow===``?null:Number(r.alertBelow),notify_on_alert:r.notifyOnAlert,show_on_card:r.showOnCard})})),await w(),r.length},onSuccess:i=>{r.invalidateQueries({queryKey:[`locationHaSensors`]}),r.invalidateQueries({queryKey:[`locationHaSensorReadings`]}),n(t(`locationHaSensors.options.resetDone`,{count:i}),`success`),h(!1),e()},onError:e=>{n(e.message||t(`locationHaSensors.options.resetFailed`),`error`),h(!1)}});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:e,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(nu,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t(`locationHaSensors.options.title`)})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:E,className:`px-6 pb-6 pt-3 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`locationHaSensors.options.description`)}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(n8,{category:`temperature`,state:i.temperature,onChange:e=>S(`temperature`,e)}),(0,G.jsx)(n8,{category:`humidity`,state:i.humidity,onChange:e=>S(`humidity`,e)}),(0,G.jsx)(n8,{category:`battery`,state:i.battery,onChange:e=>S(`battery`,e)})]}),(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-3`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t(`locationHaSensors.options.colorizeValues`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-x-3 gap-y-1 items-end ${o?``:`opacity-50`}`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-below-color`,children:t(`locationHaSensors.options.belowColor`)}),(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-optimal-color`,children:t(`locationHaSensors.options.optimalColor`)}),(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-above-color`,children:t(`locationHaSensors.options.aboveColor`)}),(0,G.jsx)(`select`,{id:`location-sensor-below-color`,value:u,onChange:e=>d(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:D6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))}),(0,G.jsx)(`select`,{id:`location-sensor-optimal-color`,value:f,onChange:e=>p(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:D6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))}),(0,G.jsx)(`select`,{id:`location-sensor-above-color`,value:c,onChange:e=>l(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:D6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))})]})]}),(0,G.jsx)(`div`,{className:`pt-4 mt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider mb-3`,children:t(`locationHaSensors.options.generalSettings`)})}),(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,htmlFor:`location-sensor-poll-interval`,children:t(`locationHaSensors.options.pollInterval`)}),(0,G.jsx)(`input`,{id:`location-sensor-poll-interval`,type:`number`,min:$6,step:`1`,value:_,onChange:e=>C(Number(e.target.value)),onBlur:()=>C(Math.max($6,_||e8)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`locationHaSensors.options.pollIntervalHint`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-2`,children:[(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>h(!0),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),t(`locationHaSensors.options.reset`)]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,children:t(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:T.isPending,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),t(`common.save`)]})]})]})]})]})}),m&&(0,G.jsx)(of,{title:t(`locationHaSensors.options.resetConfirm.title`),message:t(`locationHaSensors.options.resetConfirm.message`),confirmText:t(`locationHaSensors.options.reset`),variant:`danger`,overlayZIndex:`z-[60]`,isLoading:D.isPending,onConfirm:()=>D.mutate(),onCancel:()=>h(!1)})]})}function HWe({provider:e,onEdit:t}){let{t:n}=U(),r=co(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),{data:u}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),d=u?.find(t=>t.id===e.printer_id),f=q({mutationFn:t=>Z.updateNotificationProvider(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]})}}),p=q({mutationFn:()=>Z.deleteNotificationProvider(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]})}}),m=q({mutationFn:()=>Z.testNotificationProvider(e.id),onSuccess:e=>{l(e),r.invalidateQueries({queryKey:[`notification-providers`]})},onError:e=>{l({success:!1,message:e.message})}}),h=e=>e||``;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{className:`relative`,children:(0,G.jsxs)(Vd,{className:`p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between ${e.enabled?`mb-3`:`mb-0`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${e.enabled?`bg-bambu-green/20`:`bg-bambu-dark`}`,children:(0,G.jsx)(qo,{className:`w-5 h-5 ${e.enabled?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.providerTypes.${e.provider_type}`,e.provider_type)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e.last_success&&(0,G.jsx)(`span`,{className:`text-xs text-status-ok hidden sm:inline`,children:n(`notifications.lastSuccess`,{date:ap(e.last_success)})}),e.last_error&&e.last_error_at&&(!e.last_success||(rp(e.last_error_at)?.getTime()||0)>(rp(e.last_success)?.getTime()||0))&&(0,G.jsx)(`span`,{className:`text-xs text-status-error`,title:e.last_error,children:n(`notifications.error`)}),(0,G.jsx)(pH,{checked:e.enabled,onChange:e=>f.mutate({enabled:e})})]})]}),e.enabled&&(0,G.jsxs)(G.Fragment,{children:[d&&(0,G.jsxs)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[n(`notifications.printer`),` `]}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:d.name})]}),!d&&!e.printer_id&&(0,G.jsx)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.allPrinters`)})}),(0,G.jsxs)(`div`,{className:`mb-3 flex flex-wrap gap-1`,children:[e.on_print_start&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-xs rounded`,children:n(`notifications.start`)}),e.on_plate_not_empty&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-600/20 text-rose-700 dark:text-rose-300 text-xs rounded`,children:n(`notifications.plateCheck`)}),e.on_print_complete&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-green/20 text-bambu-green text-xs rounded`,children:n(`notifications.complete`)}),e.on_plate_clear_required&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 text-xs rounded`,children:n(`notifications.plateClear`)}),e.on_print_failed&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 text-xs rounded`,children:n(`notifications.failed`)}),e.on_print_stopped&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 text-xs rounded`,children:n(`notifications.stopped`)}),e.on_billing_charge_failed&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-600/20 text-red-700 dark:text-red-300 text-xs rounded`,children:n(`notifications.billingChargeFailedLabel`)}),e.on_print_progress&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-xs rounded`,children:n(`notifications.progress`)}),e.on_printer_offline&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-gray-500/20 text-gray-400 text-xs rounded`,children:n(`notifications.offline`)}),e.on_printer_error&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-500/20 text-rose-700 dark:text-rose-400 text-xs rounded`,children:n(`notifications.error`)}),e.on_ai_failure_detection&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-fuchsia-100 dark:bg-fuchsia-500/20 text-fuchsia-700 dark:text-fuchsia-300 text-xs rounded`,children:n(`notifications.aiFailureDetection`)}),e.on_ha_sensor_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-300 text-xs rounded`,children:n(`notifications.haSensorAlert`)}),e.on_location_ha_sensor_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-300 text-xs rounded`,children:n(`notifications.locationHaSensorAlert`)}),e.on_filament_low&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400 text-xs rounded`,children:n(`notifications.lowFilament`)}),e.on_maintenance_due&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 text-xs rounded`,children:n(`notifications.maintenance`)}),e.on_ams_humidity_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-blue-100 dark:bg-blue-600/20 text-blue-700 dark:text-blue-300 text-xs rounded`,children:n(`notifications.amsHumidity`)}),e.on_ams_temperature_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-orange-100 dark:bg-orange-600/20 text-orange-700 dark:text-orange-300 text-xs rounded`,children:n(`notifications.amsTemp`)}),e.on_ams_drying_suspended&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-600/20 text-rose-700 dark:text-rose-300 text-xs rounded`,children:n(`notifications.amsDryingSuspended`)}),e.on_ams_ht_humidity_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-cyan-100 dark:bg-cyan-600/20 text-cyan-700 dark:text-cyan-300 text-xs rounded`,children:n(`notifications.amsHtHumidity`)}),e.on_ams_ht_temperature_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-600/20 text-amber-700 dark:text-amber-300 text-xs rounded`,children:n(`notifications.amsHtTemp`)}),e.on_bed_cooled&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-xs rounded`,children:n(`notifications.bedCooled`)}),e.on_first_layer_complete&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-emerald-100 dark:bg-emerald-600/20 text-emerald-700 dark:text-emerald-300 text-xs rounded`,children:n(`notifications.firstLayer`)}),e.on_print_missing_spool_assignment&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-300 text-xs rounded`,children:n(`notifications.missingSpoolAssignmentLabel`)}),e.on_stock_reorder_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-lime-100 dark:bg-lime-500/20 text-lime-700 dark:text-lime-400 text-xs rounded`,children:n(`notifications.stockReorderAlert`)}),e.on_stock_break_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-600/20 text-red-700 dark:text-red-300 text-xs rounded`,children:n(`notifications.stockBreakAlert`)}),e.quiet_hours_enabled&&(0,G.jsxs)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 text-xs rounded flex items-center gap-1`,children:[(0,G.jsx)(_l,{className:`w-3 h-3`}),n(`notifications.quiet`)]}),e.daily_digest_enabled&&(0,G.jsxs)(`span`,{className:`px-2 py-0.5 bg-emerald-100 dark:bg-emerald-500/20 text-emerald-700 dark:text-emerald-400 text-xs rounded flex items-center gap-1`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),n(`notifications.digest`,{time:e.daily_digest_time})]})]}),(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,disabled:m.isPending,onClick:()=>{l(null),m.mutate()},className:`w-full`,children:[m.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),n(`notifications.sendTestNotification`)]})}),c&&(0,G.jsxs)(`div`,{className:`mb-3 p-2 rounded-lg flex items-center gap-2 text-sm ${c.success?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[c.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Ds,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:c.message})]})]}),(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`w-full flex items-center justify-between py-2 text-sm text-bambu-gray hover:text-white transition-colors ${e.enabled?`border-t border-bambu-dark-tertiary`:`mt-2 border-t border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),n(`notifications.eventSettings`)]}),o?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`})]}),o&&(0,G.jsxs)(`div`,{className:`pt-3 border-t border-bambu-dark-tertiary space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.enabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.sendFromProvider`)})]}),(0,G.jsx)(pH,{checked:e.enabled,onChange:e=>f.mutate({enabled:e})})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printEvents`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printStarted`)}),(0,G.jsx)(pH,{checked:e.on_print_start,onChange:e=>f.mutate({on_print_start:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.plateNotEmpty`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.plateNotEmptyDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_plate_not_empty??!0,onChange:e=>f.mutate({on_plate_not_empty:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printCompleted`)}),(0,G.jsx)(pH,{checked:e.on_print_complete,onChange:e=>f.mutate({on_print_complete:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.plateClearRequired`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.plateClearRequiredDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_plate_clear_required??!1,onChange:e=>f.mutate({on_plate_clear_required:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.bedCooledLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.bedCooledDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_bed_cooled??!1,onChange:e=>f.mutate({on_bed_cooled:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.firstLayerCompleteLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.firstLayerCompleteDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_first_layer_complete??!1,onChange:e=>f.mutate({on_first_layer_complete:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.missingSpoolAssignmentLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.missingSpoolAssignmentDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_print_missing_spool_assignment??!1,onChange:e=>f.mutate({on_print_missing_spool_assignment:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printFailed`)}),(0,G.jsx)(pH,{checked:e.on_print_failed,onChange:e=>f.mutate({on_print_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printStopped`)}),(0,G.jsx)(pH,{checked:e.on_print_stopped,onChange:e=>f.mutate({on_print_stopped:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.billingChargeFailedLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.billingChargeFailedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_billing_charge_failed??!0,onChange:e=>f.mutate({on_billing_charge_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.progressMilestones`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.progressMilestonesDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_print_progress,onChange:e=>f.mutate({on_print_progress:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printerStatus`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printerOffline`)}),(0,G.jsx)(pH,{checked:e.on_printer_offline,onChange:e=>f.mutate({on_printer_offline:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printerError`)}),(0,G.jsx)(pH,{checked:e.on_printer_error,onChange:e=>f.mutate({on_printer_error:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.aiFailureDetection`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.aiFailureDetectionDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ai_failure_detection??!1,onChange:e=>f.mutate({on_ai_failure_detection:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.haSensorAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.haSensorAlertDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ha_sensor_alert??!1,onChange:e=>f.mutate({on_ha_sensor_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.locationHaSensorAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.locationHaSensorAlertDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_location_ha_sensor_alert??!1,onChange:e=>f.mutate({on_location_ha_sensor_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.lowFilamentLabel`)}),(0,G.jsx)(pH,{checked:e.on_filament_low,onChange:e=>f.mutate({on_filament_low:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.maintenanceDue`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.maintenanceDueDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_maintenance_due??!1,onChange:e=>f.mutate({on_maintenance_due:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.amsAlarms`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHumidityHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHumidityHighDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ams_humidity_high??!1,onChange:e=>f.mutate({on_ams_humidity_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsTemperatureHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsTemperatureHighDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ams_temperature_high??!1,onChange:e=>f.mutate({on_ams_temperature_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsDryingSuspendedTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsDryingSuspendedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ams_drying_suspended??!1,onChange:e=>f.mutate({on_ams_drying_suspended:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.amsHtAlarms`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHtHumidityHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHtHumidityHighDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ams_ht_humidity_high??!1,onChange:e=>f.mutate({on_ams_ht_humidity_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHtTemperatureHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHtTemperatureHighDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_ams_ht_temperature_high??!1,onChange:e=>f.mutate({on_ams_ht_temperature_high:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.inventoryAlerts`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.stockReorderAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.stockReorderAlertDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_stock_reorder_alert??!1,onChange:e=>f.mutate({on_stock_reorder_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.stockBreakAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.stockBreakAlertDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_stock_break_alert??!1,onChange:e=>f.mutate({on_stock_break_alert:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printQueue`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobAdded`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobAddedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_added??!1,onChange:e=>f.mutate({on_queue_job_added:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobAssigned`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobAssignedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_assigned??!1,onChange:e=>f.mutate({on_queue_job_assigned:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobStarted`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobStartedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_started??!1,onChange:e=>f.mutate({on_queue_job_started:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobWaiting`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobWaitingDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_waiting??!0,onChange:e=>f.mutate({on_queue_job_waiting:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobSkipped`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobSkippedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_skipped??!0,onChange:e=>f.mutate({on_queue_job_skipped:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobFailed`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobFailedDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_job_failed??!0,onChange:e=>f.mutate({on_queue_job_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.queueComplete`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.queueCompleteDescription`)})]}),(0,G.jsx)(pH,{checked:e.on_queue_completed??!1,onChange:e=>f.mutate({on_queue_completed:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(_l,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.quietHours`)})]}),(0,G.jsx)(pH,{checked:e.quiet_hours_enabled,onChange:e=>f.mutate({quiet_hours_enabled:e})})]}),e.quiet_hours_enabled&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.noNotificationsDuring`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[h(e.quiet_hours_start)||`22:00`,` - `,h(e.quiet_hours_end)||`07:00`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.editProviderToChangeQuietHours`)})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-emerald-600 dark:text-emerald-400`}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.dailyDigest`)})]}),(0,G.jsx)(pH,{checked:e.daily_digest_enabled,onChange:e=>f.mutate({daily_digest_enabled:e})})]}),e.daily_digest_enabled&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.batchNotifications`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.sendAt`,{time:h(e.daily_digest_time)||`08:00`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.editProviderToChangeDigestTime`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>t(e),className:`flex-1`,children:[(0,G.jsx)(kl,{className:`w-4 h-4`}),n(`notifications.edit`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>a(!0),className:`text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})}),i&&(0,G.jsx)(of,{title:n(`notifications.deleteProvider`),message:n(`notifications.deleteConfirm`,{name:e.name}),confirmText:n(`notifications.delete`),variant:`danger`,onConfirm:()=>{p.mutate(),a(!1)},onCancel:()=>a(!1)})]})}var UWe=[`email`,`telegram`,`discord`,`ntfy`,`pushover`,`bark`,`callmebot`,`webhook`,`homeassistant`];function WWe({provider:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,[a,o]=(0,y.useState)(e?.name||``),[s,c]=(0,y.useState)(e?.provider_type||`email`),[l,u]=(0,y.useState)(e?.printer_id||null),[d,f]=(0,y.useState)(e?.quiet_hours_enabled||!1),[p,m]=(0,y.useState)(e?.quiet_hours_start||`22:00`),[h,g]=(0,y.useState)(e?.quiet_hours_end||`07:00`),[_,v]=(0,y.useState)(e?.daily_digest_enabled||!1),[b,x]=(0,y.useState)(e?.daily_digest_time||`08:00`),[S,C]=(0,y.useState)(e?.on_print_start??!1),[w,T]=(0,y.useState)(e?.on_print_complete??!0),[E,D]=(0,y.useState)(e?.on_print_failed??!0),[O,k]=(0,y.useState)(e?.on_print_stopped??!0),[A,j]=(0,y.useState)(e?.on_print_progress??!1),[M,N]=(0,y.useState)(e?.on_billing_charge_failed??!0),[P,F]=(0,y.useState)(e?.on_printer_offline??!1),[I,L]=(0,y.useState)(e?.on_printer_error??!1),[R,z]=(0,y.useState)(e?.on_ai_failure_detection??!1),[B,V]=(0,y.useState)(e?.on_filament_low??!1),[ee,te]=(0,y.useState)(e?.on_maintenance_due??!1),[ne,re]=(0,y.useState)(e?.on_stock_reorder_alert??!1),[ie,ae]=(0,y.useState)(e?.on_stock_break_alert??!1),[oe,se]=(0,y.useState)(e?.on_plate_clear_required??!1),[H,ce]=(0,y.useState)(e?.on_bed_cooled??!1),[le,ue]=(0,y.useState)(e?.on_ha_sensor_alert??!1),[de,fe]=(0,y.useState)(e?.on_location_ha_sensor_alert??!1),[pe,me]=(0,y.useState)(e?.on_first_layer_complete??!1),[he,ge]=(0,y.useState)(e?.config?Object.fromEntries(Object.entries(e.config).filter(([e])=>e!==`event_priorities`).map(([e,t])=>[e,String(t)])):{}),[_e,ve]=(0,y.useState)((()=>{let t=e?.config?.event_priorities;if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){let t=Number(r);Number.isInteger(t)&&t>=1&&t<=5&&(n[e]=t)}return n})()),[ye,be]=(0,y.useState)(null),[xe,Se]=(0,y.useState)(null),{data:Ce}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let we=q({mutationFn:()=>Z.testNotificationConfig({provider_type:s,config:he}),onSuccess:e=>{be(e),Se(null)},onError:e=>{be({success:!1,message:e.message})}}),Te=q({mutationFn:e=>Z.createNotificationProvider(e),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]}),t()},onError:e=>{Se(e.message)}}),Ee=q({mutationFn:t=>Z.updateNotificationProvider(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]}),t()},onError:e=>{Se(e.message)}}),De=e=>{if(e.preventDefault(),Se(null),!a.trim()){Se(n(`notifications.nameRequired`));return}let t=Ae(s);for(let e of t)if(!he[e.key]?.trim()){Se(n(`notifications.fieldRequired`,{field:e.label}));return}if(s===`homeassistant`&&he.data?.trim()){let e;try{e=JSON.parse(he.data)}catch{Se(n(`notifications.haDataInvalid`));return}if(typeof e!=`object`||!e||Array.isArray(e)){Se(n(`notifications.haDataInvalid`));return}}if(s===`telegram`&&he.message_thread_id?.trim()&&!/^\d+$/.test(he.message_thread_id.trim())){Se(n(`notifications.telegramThreadIdInvalid`));return}let r=s===`ntfy`&&Object.keys(_e).length>0?{...he,event_priorities:_e}:he,o={name:a.trim(),provider_type:s,config:r,printer_id:l,quiet_hours_enabled:d,quiet_hours_start:d?p:null,quiet_hours_end:d?h:null,daily_digest_enabled:_,daily_digest_time:_?b:null,on_print_start:S,on_print_complete:w,on_print_failed:E,on_print_stopped:O,on_print_progress:A,on_billing_charge_failed:M,on_printer_offline:P,on_printer_error:I,on_ai_failure_detection:R,on_filament_low:B,on_maintenance_due:ee,on_stock_reorder_alert:ne,on_stock_break_alert:ie,on_plate_clear_required:oe,on_bed_cooled:H,on_ha_sensor_alert:le,on_location_ha_sensor_alert:de,on_first_layer_complete:pe};i?Ee.mutate(o):Te.mutate(o)},Oe=Te.isPending||Ee.isPending,ke=e=>{switch(e){case`callmebot`:return[{key:`phone`,label:`Phone Number`,placeholder:`+1234567890`,type:`text`,required:!0},{key:`apikey`,label:`API Key`,placeholder:`Your CallMeBot API key`,type:`text`,required:!0}];case`ntfy`:return[{key:`server`,label:`Server URL`,placeholder:`https://ntfy.sh`,type:`text`,required:!1},{key:`topic`,label:`Topic`,placeholder:`my-bambuddy`,type:`text`,required:!0},{key:`auth_token`,label:`Auth Token`,placeholder:`Optional authentication`,type:`password`,required:!1}];case`pushover`:return[{key:`user_key`,label:`User Key`,placeholder:`Your Pushover user key`,type:`text`,required:!0},{key:`app_token`,label:`App Token`,placeholder:`Your Pushover app token`,type:`text`,required:!0},{key:`priority`,label:`Priority`,placeholder:`0 (normal)`,type:`number`,required:!1},{key:`retry`,label:n(`notifications.pushoverRetry`),placeholder:`60`,type:`number`,required:!1,showIf:e=>e.priority===`2`},{key:`expire`,label:n(`notifications.pushoverExpire`),placeholder:`3600`,type:`number`,required:!1,showIf:e=>e.priority===`2`}];case`telegram`:return[{key:`bot_token`,label:`Bot Token`,placeholder:`Bot token from @BotFather`,type:`password`,required:!0},{key:`chat_id`,label:`Chat ID`,placeholder:`Your chat or group ID`,type:`text`,required:!0},{key:`message_thread_id`,label:n(`notifications.telegramThreadId`),placeholder:`123`,type:`number`,required:!1,help:n(`notifications.telegramThreadIdHelp`)}];case`email`:return[{key:`smtp_server`,label:`SMTP Server`,placeholder:`smtp.gmail.com`,type:`text`,required:!0},{key:`smtp_port`,label:`SMTP Port`,placeholder:`587`,type:`number`,required:!1},{key:`security`,label:`Security`,type:`select`,required:!1,options:[{value:`starttls`,label:`STARTTLS (Port 587)`},{value:`ssl`,label:`SSL/TLS (Port 465)`},{value:`none`,label:`None (Port 25)`}]},{key:`auth_enabled`,label:`Authentication`,type:`select`,required:!1,options:[{value:`true`,label:`Enabled`},{value:`false`,label:`Disabled`}]},{key:`username`,label:`Username`,placeholder:`your@email.com`,type:`text`,required:!1},{key:`password`,label:`Password`,placeholder:`App password`,type:`password`,required:!1},{key:`from_email`,label:`From Email`,placeholder:`your@email.com`,type:`text`,required:!0},{key:`to_email`,label:`To Email`,placeholder:`recipient@email.com`,type:`text`,required:!0}];case`discord`:return[{key:`webhook_url`,label:`Webhook URL`,placeholder:`https://discord.com/api/webhooks/...`,type:`text`,required:!0}];case`webhook`:return[{key:`webhook_url`,label:`Webhook URL`,placeholder:`https://example.com/webhook`,type:`text`,required:!0},{key:`payload_format`,label:`Payload Format`,type:`select`,required:!1,options:[{value:`generic`,label:`Generic JSON`},{value:`slack`,label:`Slack / Mattermost`}]},{key:`auth_header`,label:`Authorization`,placeholder:`Bearer token (optional)`,type:`password`,required:!1},{key:`field_title`,label:`Title Field Name`,placeholder:`title`,type:`text`,required:!1,showIf:e=>e.payload_format!==`slack`},{key:`field_message`,label:`Message Field Name`,placeholder:`message`,type:`text`,required:!1,showIf:e=>e.payload_format!==`slack`}];case`homeassistant`:return[{key:`service`,label:`Home Assistant Service`,placeholder:`notify.mobile_app_myphone`,type:`text`,required:!1},{key:`data`,label:`Data (JSON, optional)`,placeholder:`{"priority": "high", "ttl": 0, "channel": "3D Printing"}`,type:`textarea`,required:!1}];case`bark`:return[{key:`device_key`,label:`Device Key`,placeholder:`Your Bark device key`,type:`text`,required:!0},{key:`server`,label:`Server URL`,placeholder:`https://api.day.app`,type:`text`,required:!1},{key:`group`,label:`Group`,placeholder:`Bambuddy`,type:`text`,required:!1},{key:`sound`,label:`Sound`,placeholder:`minuet`,type:`text`,required:!1},{key:`level`,label:`Interruption Level`,type:`select`,required:!1,options:[{value:``,label:`Default`},{value:`active`,label:`Active`},{value:`timeSensitive`,label:`Time Sensitive`},{value:`critical`,label:`Critical (bypasses Silent/Focus)`},{value:`passive`,label:`Passive (no sound)`}]}];default:return[]}},Ae=e=>ke(e).filter(e=>e.required),je=ke(s);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4 overflow-y-auto`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg my-8 max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(i?`notifications.editTitle`:`notifications.addTitle`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:De,className:`p-6 space-y-4`,children:[xe&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:xe}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`notifications.namePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.providerTypeLabel`)}),(0,G.jsx)(`select`,{value:s,onChange:e=>{c(e.target.value),ge({}),be(null)},disabled:i,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`,children:UWe.map(e=>(0,G.jsx)(`option`,{value:e,children:n(`notifications.providerTypes.${e}`,e)},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.providerDescriptions.${s}`,``)})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.configuration`)}),je.filter(e=>!(`showIf`in e)||e.showIf?.(he)!==!1).map(e=>(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[e.label,` `,e.required&&`*`]}),e.type===`select`&&`options`in e&&e.options?(0,G.jsx)(`select`,{value:he[e.key]||e.options[0]?.value||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:e.options.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))}):e.type===`textarea`?(0,G.jsx)(`textarea`,{value:he[e.key]||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},placeholder:e.placeholder,rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none font-mono text-sm`}):(0,G.jsx)(`input`,{type:e.type,value:he[e.key]||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},placeholder:e.placeholder,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),`help`in e&&e.help&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e.help})]},e.key))]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>{be(null),we.mutate()},disabled:we.isPending||Ae(s).length>0&&!he[Ae(s)[0]?.key],className:`flex-1`,children:[we.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),n(`notifications.testConfiguration`)]})}),ye&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg flex items-center gap-2 ${ye.success?`bg-bambu-green/20 border border-bambu-green/50 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 text-red-700 dark:text-red-400`}`,children:ye.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:ye.message})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ds,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:ye.message})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.printerFilter`)}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:n(`notifications.allPrinters`)}),Ce?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.onlyFromPrinter`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:n(`notifications.quietHoursDnd`)}),(0,G.jsx)(pH,{checked:d,onChange:f})]}),d&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.quietStart`)}),(0,G.jsx)(`input`,{type:`time`,value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.quietEnd`)}),(0,G.jsx)(`input`,{type:`time`,value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:n(`notifications.dailyDigestLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.batchNotifications`)})]}),(0,G.jsx)(pH,{checked:_,onChange:v})]}),_&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.sendDigestAt`)}),(0,G.jsx)(`input`,{type:`time`,value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.digestCollected`)})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.notificationEvents`)}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.printEvents`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.start`)}),(0,G.jsx)(pH,{checked:S,onChange:C})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.complete`)}),(0,G.jsx)(pH,{checked:w,onChange:T})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.failed`)}),(0,G.jsx)(pH,{checked:E,onChange:D})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stopped`)}),(0,G.jsx)(pH,{checked:O,onChange:k})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.progress`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.progressPercent`)})]}),(0,G.jsx)(pH,{checked:A,onChange:j})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.billingChargeFailedLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.billingChargeFailedDescription`)})]}),(0,G.jsx)(pH,{checked:M,onChange:N})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.plateClearRequired`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.plateClearRequiredDescription`)})]}),(0,G.jsx)(pH,{checked:oe,onChange:se})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.bedCooled`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.bedCooledAfterPrint`)})]}),(0,G.jsx)(pH,{checked:H,onChange:ce})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.firstLayerCompleteLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.firstLayerCompleteDescription`)})]}),(0,G.jsx)(pH,{checked:pe,onChange:me})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.printerStatus`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.offline`)}),(0,G.jsx)(pH,{checked:P,onChange:F})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.haSensorAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.haSensorAlertDescription`)})]}),(0,G.jsx)(pH,{checked:le,onChange:ue})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.locationHaSensorAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.locationHaSensorAlertDescription`)})]}),(0,G.jsx)(pH,{checked:de,onChange:fe})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.error`)}),(0,G.jsx)(pH,{checked:I,onChange:L})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.aiFailureDetection`)}),(0,G.jsx)(pH,{checked:R,onChange:z})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.lowFilament`)}),(0,G.jsx)(pH,{checked:B,onChange:V})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.maintenance`)}),(0,G.jsx)(pH,{checked:ee,onChange:te})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.inventoryAlerts`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stockReorderAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.stockReorderAlertDescription`)})]}),(0,G.jsx)(pH,{checked:ne,onChange:re})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stockBreakAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.stockBreakAlertDescription`)})]}),(0,G.jsx)(pH,{checked:ie,onChange:ae})]})]})]}),s===`ntfy`&&(()=>{let e=[];return S&&e.push({key:`on_print_start`,label:n(`notifications.start`)}),w&&e.push({key:`on_print_complete`,label:n(`notifications.complete`)}),E&&e.push({key:`on_print_failed`,label:n(`notifications.failed`)}),O&&e.push({key:`on_print_stopped`,label:n(`notifications.stopped`)}),A&&e.push({key:`on_print_progress`,label:n(`notifications.progress`)}),M&&e.push({key:`on_billing_charge_failed`,label:n(`notifications.billingChargeFailedLabel`)}),oe&&e.push({key:`on_plate_clear_required`,label:n(`notifications.plateClearRequired`)}),H&&e.push({key:`on_bed_cooled`,label:n(`notifications.bedCooled`)}),pe&&e.push({key:`on_first_layer_complete`,label:n(`notifications.firstLayerCompleteLabel`)}),P&&e.push({key:`on_printer_offline`,label:n(`notifications.offline`)}),I&&e.push({key:`on_printer_error`,label:n(`notifications.error`)}),le&&e.push({key:`on_ha_sensor_alert`,label:n(`notifications.haSensorAlert`)}),de&&e.push({key:`on_location_ha_sensor_alert`,label:n(`notifications.locationHaSensorAlert`)}),R&&e.push({key:`on_ai_failure_detection`,label:n(`notifications.aiFailureDetection`)}),B&&e.push({key:`on_filament_low`,label:n(`notifications.lowFilament`)}),ee&&e.push({key:`on_maintenance_due`,label:n(`notifications.maintenance`)}),ne&&e.push({key:`on_stock_reorder_alert`,label:n(`notifications.stockReorderAlert`)}),ie&&e.push({key:`on_stock_break_alert`,label:n(`notifications.stockBreakAlert`)}),e.length===0?null:(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-1`,children:n(`notifications.eventPriority.sectionTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`notifications.eventPriority.helpNtfy`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.label}),(0,G.jsxs)(`select`,{value:_e[e.key]??3,onChange:t=>{let n=Number(t.target.value);ve(t=>({...t,[e.key]:n}))},className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:1,children:n(`notifications.eventPriority.min`)}),(0,G.jsx)(`option`,{value:2,children:n(`notifications.eventPriority.low`)}),(0,G.jsx)(`option`,{value:3,children:n(`notifications.eventPriority.default`)}),(0,G.jsx)(`option`,{value:4,children:n(`notifications.eventPriority.high`)}),(0,G.jsx)(`option`,{value:5,children:n(`notifications.eventPriority.urgent`)})]})]},e.key))})]})})()]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`notifications.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:Oe,className:`flex-1`,children:[Oe?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),n(i?`notifications.save`:`notifications.add`)]})]})]})]})})}function GWe({template:e,onClose:t}){let{t:n}=U(),r=co(),i=(0,y.useRef)(null),[a,o]=(0,y.useState)(e.title_template),[s,c]=(0,y.useState)(e.body_template),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!0),{data:p}=K({queryKey:[`template-variables`],queryFn:Z.getTemplateVariables}),m=p?.find(t=>t.event_type===e.event_type),{data:h,isLoading:g}=K({queryKey:[`template-preview`,e.event_type,a,s],queryFn:()=>Z.previewTemplate({event_type:e.event_type,title_template:a,body_template:s}),enabled:d&&a.length>0&&s.length>0});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let _=q({mutationFn:t=>Z.updateNotificationTemplate(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-templates`]}),t()},onError:e=>{u(e.message)}}),v=q({mutationFn:()=>Z.resetNotificationTemplate(e.id),onSuccess:e=>{o(e.title_template),c(e.body_template),r.invalidateQueries({queryKey:[`notification-templates`]})},onError:e=>{u(e.message)}}),b=e=>{if(e.preventDefault(),u(null),!a.trim()){u(n(`notifications.titleRequired`));return}if(!s.trim()){u(n(`notifications.bodyRequired`));return}_.mutate({title_template:a,body_template:s})},x=e=>{let t=i.current;if(!t)return;let n=t.selectionStart,r=t.selectionEnd,a=s,o=a.substring(0,n),l=a.substring(r);c(o+`{${e}}`+l),setTimeout(()=>{t.focus();let r=n+e.length+2;t.setSelectionRange(r,r)},0)},S=a!==e.title_template||s!==e.body_template;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-2xl max-h-[90vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`notifications.editTemplate`,{name:e.name})}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`form`,{onSubmit:b,className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[l&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-red-700 dark:text-red-400 text-sm`,children:l}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:n(`notifications.titleLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`,placeholder:n(`notifications.titlePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:n(`notifications.bodyLabel`)}),(0,G.jsx)(`textarea`,{ref:i,value:s,onChange:e=>c(e.target.value),rows:4,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green font-mono text-sm resize-none`,placeholder:n(`notifications.bodyPlaceholder`)})]}),m&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-2`,children:n(`notifications.availableVariables`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:m.variables.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>x(e),className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-xs text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsx)(Fl,{className:`w-3 h-3`}),e]},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/60 mt-1`,children:n(`notifications.clickToInsert`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm font-medium text-bambu-gray flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),n(`notifications.livePreview`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(!d),className:`text-xs text-bambu-green hover:text-bambu-green-light`,children:n(d?`notifications.hide`:`notifications.show`)})]}),d&&(0,G.jsx)(`div`,{className:`bg-bambu-dark border border-bambu-dark-tertiary rounded p-3 space-y-2`,children:g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`notifications.loadingPreview`)]}):h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.titlePreview`)}),(0,G.jsx)(`div`,{className:`text-white font-medium`,children:h.title})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.bodyPreview`)}),(0,G.jsx)(`div`,{className:`text-white whitespace-pre-wrap text-sm`,children:h.body})]})]}):(0,G.jsx)(`div`,{className:`text-bambu-gray text-sm`,children:n(`notifications.enterTemplateContent`)})})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(Q,{type:`button`,variant:`ghost`,onClick:()=>v.mutate(),disabled:v.isPending,className:`text-orange-600 dark:text-orange-400 hover:text-orange-700 dark:hover:text-orange-300`,children:[v.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(Wl,{className:`w-4 h-4 mr-2`}),n(`notifications.resetToDefault`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:n(`notifications.cancel`)}),(0,G.jsxs)(Q,{onClick:b,disabled:_.isPending||!S,children:[_.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(ql,{className:`w-4 h-4 mr-2`}),n(`notifications.save`)]})]})]})]})})}var KWe={print_start:`text-blue-700 dark:text-blue-400`,print_complete:`text-bambu-green`,print_failed:`text-red-700 dark:text-red-400`,print_stopped:`text-orange-700 dark:text-orange-400`,print_progress:`text-yellow-700 dark:text-yellow-400`,printer_offline:`text-gray-400`,printer_error:`text-rose-700 dark:text-rose-400`,filament_low:`text-cyan-700 dark:text-cyan-400`,maintenance_due:`text-purple-700 dark:text-purple-400`,test:`text-bambu-gray`};function qWe({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(7),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),{data:u}=K({queryKey:[`settings`],queryFn:Z.getSettings}),d=u?.time_format||`system`,{data:f,isLoading:p,refetch:m,isRefetching:h}=K({queryKey:[`notification-logs`,i,c],queryFn:()=>Z.getNotificationLogs({days:i,limit:100,success:c?!1:void 0})}),{data:g}=K({queryKey:[`notification-log-stats`,i],queryFn:()=>Z.getNotificationLogStats(i)}),_=q({mutationFn:()=>Z.clearNotificationLogs(30),onSuccess:e=>{r(e.message,`success`),n.invalidateQueries({queryKey:[`notification-logs`]}),n.invalidateQueries({queryKey:[`notification-log-stats`]})},onError:e=>{r(`Failed to clear logs: ${e.message}`,`error`)}}),v=e=>{let n=rp(e);if(!n)return``;let r=new Date().getTime()-n.getTime();return r<6e4?t(`notifications.justNow`):r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:n.toLocaleDateString()+` `+sp(n,d)};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg w-full max-w-3xl max-h-[85vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t(`notifications.notificationLog`)})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:`×`})]}),g&&(0,G.jsx)(`div`,{className:`px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/50`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-6 text-sm`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[t(`notifications.statsSummary`,{days:i}),` `,(0,G.jsx)(`span`,{className:`text-white font-medium`,children:g.total}),` `,t(`notifications.statsNotifications`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-green`,children:[(0,G.jsx)(xs,{className:`w-4 h-4`}),t(`notifications.statsSent`,{count:g.success_count})]}),g.failure_count>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4`}),t(`notifications.statsFailed`,{count:g.failure_count})]})]})}),(0,G.jsxs)(`div`,{className:`px-4 py-3 border-b border-bambu-dark-tertiary flex items-center gap-4`,children:[(0,G.jsxs)(`select`,{value:i,onChange:e=>a(Number(e.target.value)),className:`px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:[(0,G.jsx)(`option`,{value:1,children:t(`notifications.last24Hours`)}),(0,G.jsx)(`option`,{value:7,children:t(`notifications.last7Days`)}),(0,G.jsx)(`option`,{value:30,children:t(`notifications.last30Days`)}),(0,G.jsx)(`option`,{value:90,children:t(`notifications.last90Days`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),t(`notifications.showFailedOnly`)]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>m(),disabled:h,children:[h?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),t(`notifications.refresh`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>_.mutate(),disabled:_.isPending,className:`text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300`,children:[_.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),t(`notifications.clearOld`)]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:p?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):f&&f.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>(0,G.jsx)(JWe,{log:e,isExpanded:o===e.id,onToggle:()=>s(o===e.id?null:e.id),formatDate:v,formatFullDate:e=>op(e,d)},e.id))}):(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(zc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:t(c?`notifications.noFailedNotifications`:`notifications.noNotificationsLogged`)})]})})]})})}function JWe({log:e,isExpanded:t,onToggle:n,formatDate:r,formatFullDate:i}){let{t:a}=U();return(0,G.jsxs)(`div`,{className:`border rounded-lg overflow-hidden transition-colors ${e.success?`border-bambu-dark-tertiary bg-bambu-dark/30`:`border-red-500/30 bg-red-500/5`}`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 flex items-center gap-3 text-left hover:bg-bambu-dark/50 transition-colors`,onClick:n,children:[e.success?(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium ${KWe[e.event_type]||`text-bambu-gray`}`,children:a(`notifications.eventTypes.${e.event_type}`,e.event_type)}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate flex-1`,children:e.provider_name||a(`notifications.unknownProvider`)}),e.printer_name&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.printer_name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:r(e.created_at)}),t?(0,G.jsx)(gs,{className:`w-4 h-4 text-bambu-gray shrink-0`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0`})]}),t&&(0,G.jsxs)(`div`,{className:`px-3 py-2 border-t border-bambu-dark-tertiary bg-bambu-dark/20 space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:a(`notifications.logTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.title})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:a(`notifications.logMessage`)}),(0,G.jsx)(`p`,{className:`text-sm text-white whitespace-pre-wrap`,children:e.message})]}),!e.success&&e.error_message&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mb-1`,children:a(`notifications.logError`)}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300`,children:e.error_message})]}),(0,G.jsxs)(`div`,{className:`flex gap-4 text-xs text-bambu-gray pt-1`,children:[(0,G.jsx)(`span`,{children:a(`notifications.logProvider`,{type:e.provider_type})}),(0,G.jsx)(`span`,{children:a(`notifications.logTime`,{time:i(e.created_at)})})]})]})]})}var YWe=Object.defineProperty,r8=Object.getOwnPropertySymbols,i8=Object.prototype.hasOwnProperty,a8=Object.prototype.propertyIsEnumerable,o8=(e,t,n)=>t in e?YWe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,s8=(e,t)=>{for(var n in t||={})i8.call(t,n)&&o8(e,n,t[n]);if(r8)for(var n of r8(t))a8.call(t,n)&&o8(e,n,t[n]);return e},c8=(e,t)=>{var n={};for(var r in e)i8.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&r8)for(var r of r8(e))t.indexOf(r)<0&&a8.call(e,r)&&(n[r]=e[r]);return n},l8;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],et.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.lengthm[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;ne+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.lengtht.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e=1<{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(l8||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(l8||={});var u8=l8,XWe={L:u8.QrCode.Ecc.LOW,M:u8.QrCode.Ecc.MEDIUM,Q:u8.QrCode.Ecc.QUARTILE,H:u8.QrCode.Ecc.HIGH},d8=128,f8=`L`,p8=`#FFFFFF`,m8=`#000000`,h8=!1,g8=1,ZWe=4,QWe=0,$We=.1;function _8(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function v8(e,t){return e.slice().map((e,n)=>n=t.y+t.h?e:e.map((e,n)=>n=t.x+t.w?e:!1))}function eGe(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*$We),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function tGe(e,t){return t==null?e?ZWe:QWe:Math.max(Math.floor(t),0)}function y8({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=y.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...u8.QrSegment.makeSegments(t)),e),[]);return u8.QrCode.encodeSegments(r,XWe[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=y.useMemo(()=>{let e=c.getModules(),t=tGe(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:eGe(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var nGe=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),rGe=y.forwardRef(function(e,t){let n=e,{value:r,size:i=d8,level:a=f8,bgColor:o=p8,fgColor:s=m8,includeMargin:c=h8,minVersion:l=g8,boostLevel:u,marginSize:d,imageSettings:f}=n,p=c8(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=c8(p,[`style`]),g=f?.src,_=y.useRef(null),v=y.useRef(null),b=y.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=y.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=y8({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});y.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=v.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=v8(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,nGe?t.fill(new Path2D(_8(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),y.useEffect(()=>{S(!1)},[g]);let D=s8({height:i,width:i},m),O=null;return g!=null&&(O=y.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{S(!0)},ref:v,crossOrigin:E?.crossOrigin})),y.createElement(y.Fragment,null,y.createElement(`canvas`,s8({style:D,height:i,width:i,ref:b,role:`img`},h)),O)});rGe.displayName=`QRCodeCanvas`;var b8=y.forwardRef(function(e,t){let n=e,{value:r,size:i=d8,level:a=f8,bgColor:o=p8,fgColor:s=m8,includeMargin:c=h8,minVersion:l=g8,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=c8(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=y8({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),b=g,x=null;p!=null&&v!=null&&(v.excavation!=null&&(b=v8(g,v.excavation)),x=y.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let S=_8(b,h);return y.createElement(`svg`,s8({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&y.createElement(`title`,null,d),y.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),y.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});b8.displayName=`QRCodeSVG`;function iGe(e,t){return`bambuddy://config?v=1&url=${encodeURIComponent(e)}&key=${encodeURIComponent(t)}`}function aGe({apiKey:e,baseUrl:t,onClose:n}){let{t:r}=U(),i=iGe(t??window.location.origin,e);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`settings.apiKeyQrTitle`)}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 flex flex-col items-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 text-center`,children:r(`settings.apiKeyQrCaption`)}),(0,G.jsx)(`div`,{className:`bg-white p-4 rounded-lg mb-4`,children:(0,G.jsx)(b8,{value:i,size:256})}),(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-amber-700 dark:text-amber-400 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{children:r(`settings.apiKeyQrWarning`)})]}),(0,G.jsx)(Q,{onClick:n,className:`w-full`,children:r(`common.close`)})]})]})})}var oGe=300,x8=2;function S8({onSuccess:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=r.trim();if(e.lengtho(e),oGe);return()=>clearTimeout(t)},[r]),(0,y.useEffect)(()=>{c(null),u(null)},[a]);let d=K({queryKey:[`ldap-search`,a],queryFn:()=>Z.searchLDAPDirectory(a),enabled:a.length>=x8,staleTime:3e4}),f=q({mutationFn:e=>Z.provisionLDAPUser(e),onSuccess:t=>{n.invalidateQueries({queryKey:[`users`]}),e(t)},onError:e=>{u(e.message||t(`users.modal.ldapErrorProvision`))}}),p=(0,y.useMemo)(()=>d.data?.find(e=>e.dn===s)??null,[d.data,s]),m=r.trim().length>0&&r.trim().length=x8,g=!!d.data&&d.data.length>0,_=!h&&!!d.data&&d.data.length===0&&a.length>=x8;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:t(`users.modal.ldapSearchLabel`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2`}),(0,G.jsx)(`input`,{type:`text`,value:r,onChange:e=>i(e.target.value),className:`w-full pl-9 pr-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`users.modal.ldapSearchPlaceholder`),autoComplete:`off`})]}),m&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:t(`users.modal.ldapMinChars`)})]}),(0,G.jsxs)(`div`,{className:`min-h-[8rem] max-h-64 overflow-y-auto bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[h&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}),(0,G.jsx)(`span`,{children:t(`users.modal.ldapSearching`)})]}),_&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray text-sm`,children:t(`users.modal.ldapNoResults`)}),d.isError&&(0,G.jsx)(`div`,{className:`px-3 py-4 text-sm text-red-700 dark:text-red-400`,children:d.error instanceof Error?d.error.message:t(`users.modal.ldapSearchError`)}),!h&&g&&(0,G.jsx)(`ul`,{className:`divide-y divide-bambu-dark-tertiary`,children:d.data.map(e=>(0,G.jsx)(sGe,{result:e,selected:s===e.dn,onSelect:()=>c(e.dn)},e.dn))}),!h&&!d.data&&!d.isError&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray text-sm`,children:t(`users.modal.ldapTypeToSearch`)})]}),p&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[t(`users.modal.ldapSelectedLabel`),`: `]}),(0,G.jsx)(`span`,{className:`font-medium`,children:p.username}),p.display_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,p.display_name]})]}),p.email&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:p.email}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray break-all`,children:p.dn})]}),l&&(0,G.jsx)(`div`,{className:`bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg p-3`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:l})}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{onClick:()=>{!p||p.already_provisioned||(u(null),f.mutate(p.username))},disabled:!p||p.already_provisioned||f.isPending,children:f.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),t(`users.modal.ldapProvisioning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),t(`users.modal.ldapProvision`)]})})})]})}function sGe({result:e,selected:t,onSelect:n}){let{t:r}=U(),i=e.already_provisioned;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:n,disabled:i,className:`w-full text-left px-3 py-2 flex items-center gap-3 transition-colors ${i?`opacity-50 cursor-not-allowed`:t?`bg-bambu-green/10`:`hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-white truncate`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:e.username}),e.display_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,e.display_name]})]}),e.email&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.email})]}),i&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray whitespace-nowrap`,children:[(0,G.jsx)(Ss,{className:`w-3.5 h-3.5`}),r(`users.modal.ldapAlreadyProvisioned`)]})]})})}function cGe({formData:e,setFormData:t,groups:n,onClose:r,onCreate:i,isCreating:a,isCreateButtonDisabled:o,ldapEnabled:s=!1,onLdapProvisioned:c}){let{t:l}=U(),[u,d]=(0,y.useState)(`local`);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let f=n=>{t({...e,group_ids:e.group_ids.includes(n)?e.group_ids.filter(e=>e!==n):[...e.group_ids,n]})};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:r,children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:l(`users.modal.createUser`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray ml-7`,children:l(`users.modal.advancedAuthSubtitle`)||`with Advanced Authentication`})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[s&&(0,G.jsxs)(`div`,{className:`mb-4 flex items-center gap-1 p-1 bg-bambu-dark-secondary rounded-lg`,role:`tablist`,"aria-label":l(`users.modal.tabsAriaLabel`),children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":u===`local`,onClick:()=>d(`local`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${u===`local`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:l(`users.modal.localTab`)}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":u===`ldap`,onClick:()=>d(`ldap`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${u===`ldap`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:l(`users.modal.ldapTab`)})]}),u===`ldap`&&s?(0,G.jsx)(S8,{onSuccess:e=>{c?.(e)}}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[l(`users.form.username`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:e.username,onChange:n=>t({...e,username:n.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:l(`users.form.usernamePlaceholder`),autoComplete:`username`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[l(`users.form.email`)||`Email`,` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`email`,value:e.email,onChange:n=>t({...e,email:n.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:l(`users.form.emailPlaceholder`)||`user@example.com`,required:!0})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:l(`users.form.autoGeneratedPassword`)||`A secure password will be automatically generated and emailed to the user.`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:l(`users.form.groups`)}),(0,G.jsxs)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[n.map(t=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.group_ids.includes(t.id),onChange:()=>f(t.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t.name}),t.is_system&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,l(`users.system`),`)`]})]},t.id)),n.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:l(`users.noGroupsAvailable`)})]})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:r,children:l(`users.modal.cancel`)}),u===`local`&&(0,G.jsx)(Q,{onClick:i,disabled:o,children:a?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),l(`users.modal.creating`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),l(`users.modal.createUser`)]})})]})]})]})})}function lGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`auto`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!0),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),{data:E,isLoading:D}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings}),{data:O,isLoading:k,refetch:A}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,refetchInterval:3e4}),{data:j}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{E&&(i(E.spoolman_enabled===`true`),o(E.spoolman_url||``),c(E.spoolman_sync_mode||`auto`),u(E.spoolman_disable_weight_sync===`true`),f(E.spoolman_report_partial_usage!==`false`),m(E.auto_add_unknown_rfid!==`false`),v(!0))},[E]),(0,y.useEffect)(()=>{if(!(!_||!E)&&(E.spoolman_enabled===`true`!==r||(E.spoolman_url||``)!==a||(E.spoolman_sync_mode||`auto`)!==s||E.spoolman_disable_weight_sync===`true`!==l||E.spoolman_report_partial_usage!==`false`!==d||E.auto_add_unknown_rfid!==`false`!==p)){let e=setTimeout(()=>{M.mutate()},500);return()=>clearTimeout(e)}},[r,a,s,l,d,p,_]);let M=q({mutationFn:()=>Z.updateSpoolmanSettings({spoolman_enabled:r?`true`:`false`,spoolman_url:a,spoolman_sync_mode:s,spoolman_disable_weight_sync:l?`true`:`false`,spoolman_report_partial_usage:d?`true`:`false`,auto_add_unknown_rfid:p?`true`:`false`}),onSuccess:()=>{t.invalidateQueries({queryKey:[`spoolman-settings`]}),t.invalidateQueries({queryKey:[`spoolman-status`]}),t.invalidateQueries({queryKey:[`spool-assignments`]}),t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`spoolman-inventory-filaments`]}),n(e(`settings.toast.settingsSaved`))},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),N=q({mutationFn:Z.connectSpoolman,onSuccess:()=>{A()},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),P=q({mutationFn:Z.syncAllPrintersAms,onSuccess:t=>{n(e(`settings.spoolmanAmsSyncSuccess`,{synced:t.synced_count,skipped:0}),`success`)},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),F=q({mutationFn:e=>Z.syncPrinterAms(e),onSuccess:t=>{n(e(`settings.spoolmanAmsSyncSuccess`,{synced:t.synced_count,skipped:0}),`success`)},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),I=()=>{h===`all`?P.mutate():F.mutate(h)},L=q({mutationFn:Z.syncWeightsFromAms,onSuccess:r=>{t.invalidateQueries({queryKey:[`spools`]}),t.invalidateQueries({queryKey:[`inventory-spools`]}),n(e(`settings.amsSyncSuccess`,{synced:r.synced,skipped:r.skipped}),`success`),C(!1)},onError:()=>{n(e(`settings.amsSyncError`),`error`),C(!1)}}),R=q({mutationFn:Z.syncSpoolmanAmsWeights,onSuccess:r=>{t.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),n(e(`settings.spoolmanAmsSyncSuccess`,{synced:r.synced,skipped:r.skipped}),`success`),T(!1)},onError:t=>{t instanceof sd&&t.status===503?n(e(`settings.spoolmanAmsSyncErrorUnreachable`),`error`):t instanceof sd&&t.status===400?n(e(`settings.spoolmanAmsSyncErrorNotConfigured`),`error`):n(e(`settings.spoolmanAmsSyncError`),`error`),T(!1)}}),z=P.isPending||F.isPending,B=h===`all`?P.data:F.data,V=h===`all`?P.isSuccess:F.isSuccess;return D?(0,G.jsxs)(zd,{id:`card-spoolman`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.filamentTracking`)})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})})})]}):(0,G.jsxs)(zd,{id:`card-spoolman`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.filamentTracking`)})]}),M.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.filamentTrackingDesc`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(!1),className:`p-3 rounded-lg border-2 text-left transition-colors ${r?`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray/50`:`border-bambu-green bg-bambu-green/10`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 ${r?`text-bambu-gray`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${r?`text-bambu-gray`:`text-white`}`,children:e(`settings.trackingModeBuiltIn`)})]}),(0,G.jsx)(`p`,{className:`text-xs ${r?`text-bambu-gray/60`:`text-bambu-gray`}`,children:e(`settings.trackingModeBuiltInDesc`)}),!r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-2`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:e(`common.enabled`)})]})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),className:`p-3 rounded-lg border-2 text-left transition-colors ${r?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray/50`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(rc,{className:`w-4 h-4 ${r?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${r?`text-white`:`text-bambu-gray`}`,children:`Spoolman`})]}),(0,G.jsx)(`p`,{className:`text-xs ${r?`text-bambu-gray`:`text-bambu-gray/60`}`,children:e(`settings.trackingModeSpoolmanDesc`)}),r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-2`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:e(`common.enabled`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`pr-4`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`settings.autoAddUnknownRfid`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.autoAddUnknownRfidDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:p,onChange:e=>m(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),!r&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/5 border border-bambu-green/20 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-0.5`}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:(0,G.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5`,children:[(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureRfid`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureUsage`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureCatalog`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureThirdParty`)})]})})]})}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:L.isPending,children:[L.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4 mr-2`}),e(`settings.amsSyncButton`)]})]}),r&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs text-blue-700 dark:text-blue-300`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:e(`settings.howSyncWorks`)}),(0,G.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5 text-blue-700/90 dark:text-blue-300/80`,children:[(0,G.jsx)(`li`,{children:e(`settings.syncInfoRfidOnly`)}),(0,G.jsx)(`li`,{children:e(`settings.syncInfoAutoCreate`)}),(0,G.jsx)(`li`,{children:e(`settings.syncInfoThirdPartySkipped`)})]}),(0,G.jsx)(`p`,{className:`font-medium mt-2 mb-1`,children:e(`settings.linkingExistingSpools`)}),(0,G.jsx)(`p`,{className:`text-blue-700/90 dark:text-blue-300/80`,children:e(`settings.linkingExistingSpoolsDesc`)})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`settings.spoolmanUrl`)}),(0,G.jsx)(`input`,{type:`text`,placeholder:`http://192.168.1.100:7912`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.spoolmanUrlHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`settings.syncMode`)}),(0,G.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`auto`,children:e(`settings.syncModeAuto`)}),(0,G.jsx)(`option`,{value:`manual`,children:e(`settings.syncModeManual`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(s===`auto`?`settings.syncModeAutoDesc`:`settings.syncModeManualDesc`)})]}),s===`auto`&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`spoolman.disableWeightSync`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`spoolman.disableWeightSyncDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),l&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`spoolman.reportPartialUsage`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`spoolman.reportPartialUsageDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`settings.status`),`:`]}),k?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin`}):O?.connected?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-sm text-green-500`,children:[(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`settings.spoolmanConnected`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-sm text-red-500`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),e(`settings.spoolmanDisconnected`)]})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:!O?.connected&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>N.mutate(),disabled:N.isPending||!a,children:[N.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xc,{className:`w-4 h-4`}),e(`settings.connect`)]})})]}),N.isError&&(0,G.jsx)(`div`,{className:`mb-3 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:N.error.message}),O?.connected&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e(`settings.syncAmsData`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`settings.syncAmsDataDesc`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value===`all`?`all`:Number(e.target.value)),className:`w-full px-3 py-2 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`settings.allPrinters`)}),j?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:I,disabled:z,children:[z?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`spoolman.sync`)]})]})]}),O?.connected&&(0,G.jsx)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e(`settings.spoolmanAmsSyncButton`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`settings.spoolmanAmsSyncMessage`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>T(!0),disabled:R.isPending,children:[R.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),R.isPending?e(`settings.spoolmanAmsSyncing`):e(`settings.spoolmanAmsSyncButton`)]})]})}),V&&B&&(0,G.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded text-sm ${B.success?`bg-green-100 dark:bg-green-500/20 border border-green-300 dark:border-green-500/50 text-green-700 dark:text-green-400`:`bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-500/50 text-yellow-700 dark:text-yellow-400`}`,children:B.success?`Synced ${B.synced_count} spool${B.synced_count===1?``:`s`} successfully`:`Synced ${B.synced_count} spool${B.synced_count===1?``:`s`} with ${B.errors.length} error${B.errors.length===1?``:`s`}`}),B.skipped_count>0&&(0,G.jsxs)(`div`,{className:`p-2 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-amber-700 dark:text-amber-400 mb-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium`,children:[B.skipped_count,` spool`,B.skipped_count===1?``:`s`,` skipped`]})]}),B.skipped_count>5&&(0,G.jsx)(`button`,{onClick:()=>x(!b),className:`text-xs text-amber-700 dark:text-amber-400 hover:text-amber-800 dark:hover:text-amber-300 underline`,children:b?`Show less`:`Show all`})]}),(0,G.jsxs)(`ul`,{className:`text-xs text-amber-700/90 dark:text-amber-300/80 space-y-0.5`,children:[(b?B.skipped:B.skipped.slice(0,5)).map((e,t)=>(0,G.jsxs)(`li`,{className:`flex items-center gap-2`,children:[e.color&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:`#${e.color}`}}),(0,G.jsx)(`span`,{children:e.location}),(0,G.jsxs)(`span`,{className:`text-amber-700/70 dark:text-amber-300/60`,children:[`- `,e.reason]})]},t)),!b&&B.skipped_count>5&&(0,G.jsxs)(`li`,{className:`text-amber-700/70 dark:text-amber-300/60 italic`,children:[`...and `,B.skipped_count-5,` more`]})]})]}),B.errors.length>0&&(0,G.jsxs)(`div`,{className:`p-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded text-sm`,children:[(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400 font-medium mb-1`,children:`Errors:`}),(0,G.jsx)(`ul`,{className:`text-xs text-red-700/90 dark:text-red-300/80 space-y-0.5`,children:B.errors.map((e,t)=>(0,G.jsx)(`li`,{children:e},t))})]})]})]})]})]}),S&&(0,G.jsx)(of,{title:e(`settings.amsSyncTitle`),message:e(`settings.amsSyncMessage`),confirmText:e(`settings.amsSyncButton`),variant:`warning`,isLoading:L.isPending,loadingText:e(`settings.amsSyncing`),onConfirm:()=>L.mutate(),onCancel:()=>C(!1)}),w&&(0,G.jsx)(of,{title:e(`settings.spoolmanAmsSyncTitle`),message:e(`settings.spoolmanAmsSyncMessage`),confirmText:e(`settings.spoolmanAmsSyncButton`),variant:`warning`,isLoading:R.isPending,loadingText:e(`settings.spoolmanAmsSyncing`),onConfirm:()=>R.mutate(),onCancel:()=>T(!1)})]})}function uGe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(new Set),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(!1),O=(0,y.useCallback)(async()=>{try{r(await Z.getSpoolCatalog())}catch(n){console.error(`SpoolCatalogSettings.loadCatalog failed:`,n),t(e(`settings.catalog.loadFailed`),`error`)}finally{a(!1)}},[t,e]);(0,y.useEffect)(()=>{O()},[O]);let k=n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())),A=async()=>{if(!p.trim()||!h){t(e(`settings.catalog.nameWeightRequired`),`error`);return}v(!0);try{let n=await Z.addCatalogEntry({name:p.trim(),weight:parseInt(h)});r(e=>[...e,n].sort((e,t)=>e.name.localeCompare(t.name))),u(!1),m(``),g(``),t(e(`settings.catalog.entryAdded`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleAdd failed:`,n),t(e(`settings.catalog.addFailed`),`error`)}finally{v(!1)}},j=e=>{f(e.id),m(e.name),g(e.weight.toString())},M=()=>{f(null),m(``),g(``)},N=async n=>{if(!p.trim()||!h){t(e(`settings.catalog.nameWeightRequired`),`error`);return}v(!0);try{let i=await Z.updateCatalogEntry(n,{name:p.trim(),weight:parseInt(h)});r(e=>e.map(e=>e.id===n?i:e).sort((e,t)=>e.name.localeCompare(t.name))),f(null),m(``),g(``),t(e(`settings.catalog.entryUpdated`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleUpdate failed:`,n),t(e(`settings.catalog.updateFailed`),`error`)}finally{v(!1)}},P=async()=>{if(w)try{await Z.deleteCatalogEntry(w.id),r(e=>e.filter(e=>e.id!==w.id)),t(e(`settings.catalog.entryDeleted`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleDelete failed:`,n),t(e(`settings.catalog.deleteFailed`),`error`)}finally{T(null)}},F=async()=>{D(!1),a(!0);try{await Z.resetSpoolCatalog(),await O(),t(e(`settings.catalog.resetSuccess`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleReset failed:`,n),t(e(`settings.catalog.resetFailed`),`error`),a(!1)}},I=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(zd,{id:`card-spool-catalog`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.catalog.spoolCatalog`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,n.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>{let r=n.map(({name:e,weight:t})=>({name:e,weight:t})),i=new Blob([JSON.stringify(r,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`spool-catalog.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a),t(e(`settings.catalog.exported`,{count:n.length}),`success`)},className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.exportTooltip`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.export`)})]}),(0,G.jsxs)(`button`,{onClick:()=>c.current?.click(),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.importTooltip`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.import`)})]}),(0,G.jsx)(`input`,{ref:c,type:`file`,accept:`.json`,className:`hidden`,onChange:async i=>{let a=i.target.files?.[0];if(a){try{let i=await a.text(),o=JSON.parse(i);if(!Array.isArray(o))throw Error(`Invalid format`);let s=0,c=0;for(let e of o){if(!e.name||typeof e.weight!=`number`){c++;continue}if(n.some(t=>t.name.toLowerCase()===e.name.toLowerCase())){c++;continue}try{let t=await Z.addCatalogEntry({name:e.name,weight:e.weight});r(e=>[...e,t].sort((e,t)=>e.name.localeCompare(t.name))),s++}catch(e){console.error(`SpoolCatalogSettings import item failed:`,e),c++}}t(e(`settings.catalog.imported`,{added:s,skipped:c}),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleImport failed:`,n),t(e(`settings.catalog.importFailed`),`error`)}c.current&&(c.current.value=``)}}}),(0,G.jsxs)(`button`,{onClick:()=>D(!0),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.resetTooltip`),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.reset`)})]}),(0,G.jsxs)(`button`,{onClick:()=>u(!0),className:`px-3 py-1.5 text-sm bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.add`)})]})]}),b.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 px-3 py-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.catalog.selectedCount`,{count:b.size})}),(0,G.jsxs)(`button`,{onClick:()=>C(!0),className:`ml-auto px-3 py-1.5 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.catalog.deleteSelected`)]}),(0,G.jsx)(`button`,{onClick:()=>x(new Set),className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white transition-colors`,children:e(`common.cancel`)})]})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.catalog.spoolCatalogDescription`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.catalog.searchCatalog`),value:o,onChange:e=>s(e.target.value)})]}),l&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e(`settings.catalog.addNewEntry`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.catalog.namePlaceholder`),value:p,onChange:e=>m(e.target.value)})}),(0,G.jsx)(`input`,{type:`number`,className:`w-20 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-center focus:border-bambu-green focus:outline-none`,placeholder:`g`,value:h,onChange:e=>g(e.target.value)}),(0,G.jsx)(`span`,{className:`text-bambu-gray shrink-0`,children:`g`}),(0,G.jsxs)(`button`,{onClick:A,disabled:_,className:`px-3 py-2 bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 flex items-center gap-1 shrink-0`,children:[_?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`common.add`)]}),(0,G.jsx)(`button`,{onClick:()=>{u(!1),m(``),g(``)},className:`p-2 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),i?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),e(`common.loading`)]}):(0,G.jsx)(`div`,{className:`max-h-[600px] overflow-y-auto border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-2 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:k.length>0&&b.size===k.length,onChange:()=>{b.size===k.length?x(new Set):x(new Set(k.map(e=>e.id)))},className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-left text-bambu-gray font-medium`,children:e(`common.name`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-right text-bambu-gray font-medium w-24`,children:e(`settings.catalog.weight`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-center text-bambu-gray font-medium w-20`,children:e(`settings.catalog.type`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 w-24`})]})}),(0,G.jsx)(`tbody`,{children:k.length===0?(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:5,className:`px-4 py-8 text-center text-bambu-gray`,children:e(o?`settings.catalog.noMatch`:`settings.catalog.empty`)})}):k.map(t=>(0,G.jsx)(`tr`,{className:`border-t border-bambu-dark-tertiary hover:bg-bambu-dark ${b.has(t.id)?`bg-bambu-dark`:``}`,children:d===t.id?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:b.has(t.id),onChange:()=>I(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white focus:border-bambu-green focus:outline-none`,value:p,onChange:e=>m(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(`input`,{type:`number`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-right focus:border-bambu-green focus:outline-none`,value:h,onChange:e=>g(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-center`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`-`})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>N(t.id),disabled:_,className:`p-1.5 rounded hover:bg-green-500/20 text-green-500`,children:_?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:M,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:b.has(t.id),onChange:()=>I(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-white`,children:t.name}),(0,G.jsxs)(`td`,{className:`px-4 py-2 text-right font-mono text-white`,children:[t.weight,`g`]}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-center`,children:t.is_default?(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray`,children:e(`settings.catalog.default`)}):(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:e(`settings.catalog.custom`)})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>j(t),className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>T(t),className:`p-1.5 rounded bg-red-500/10 hover:bg-red-500/20 text-red-500`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})},t.id))})]})})]}),w&&(0,G.jsx)(of,{title:e(`settings.catalog.deleteEntry`),message:e(`settings.catalog.deleteConfirm`,{name:w.name}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:P,onCancel:()=>T(null)}),S&&(0,G.jsx)(of,{title:e(`settings.catalog.deleteSelected`),message:e(`settings.catalog.bulkDeleteConfirm`,{count:b.size}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:async()=>{if(C(!1),b.size!==0)try{let n=await Z.bulkDeleteCatalogEntries([...b]);r(e=>e.filter(e=>!b.has(e.id))),x(new Set),t(e(`settings.catalog.bulkDeleted`,{count:n.deleted}),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleBulkDelete failed:`,n),t(e(`settings.catalog.bulkDeleteFailed`),`error`)}},onCancel:()=>C(!1)}),E&&(0,G.jsx)(of,{title:e(`settings.catalog.resetCatalog`),message:e(`settings.catalog.resetConfirm`),confirmText:e(`common.reset`),variant:`danger`,onConfirm:F,onCancel:()=>D(!1)})]})}function C8({rgba:e,extraColors:t,effectType:n,subtype:r,className:i=`w-5 h-5`,shape:a=`circle`,style:o,title:s,effectSize:c}){let l=(0,y.useMemo)(()=>bH(t),[t]),u=(0,y.useMemo)(()=>xH({effectSize:c,rgba:e,extraColors:t,effectType:n,subtype:r}),[c,e,t,n,r]),d=u.backgroundImage,f=u.backgroundSize,p=a===`circle`||a===`pill`?`rounded-full`:`rounded`,m=(()=>{if(!e)return;let t=e.replace(/^#/,``);return t.length>=8&&t.substring(6,8).toLowerCase()!==`ff`?`#${t.substring(0,8)}`:`#${t.substring(0,6)}`})(),h=s??(l.length>0?l.join(`, `):m);return(0,G.jsx)(`span`,{"data-testid":`filament-swatch`,className:`${i} ${p} border border-black/20 inline-block flex-shrink-0`,style:{backgroundImage:d,backgroundSize:f,...o},title:h})}function dGe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),u=(0,y.useRef)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`#FFFFFF`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(``),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(new Set),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(null),[B,V]=(0,y.useState)(!1),ee=(0,y.useCallback)(async()=>{try{r(await Z.getColorCatalog())}catch{t(e(`settings.colorCatalog.loadFailed`),`error`)}finally{a(!1)}},[t,e]);(0,y.useEffect)(()=>{ee()},[ee]);let te=[...new Set(n.map(e=>e.manufacturer))].sort(),ne=n.filter(e=>{let t=o===``||e.manufacturer.toLowerCase().includes(o.toLowerCase())||e.color_name.toLowerCase().includes(o.toLowerCase())||(e.material?.toLowerCase().includes(o.toLowerCase())??!1),n=c===``||e.manufacturer===c;return t&&n}),re=()=>{g(``),v(``),x(`#FFFFFF`),C(``),T(``),D(``)},ie=async()=>{if(!h.trim()||!_.trim()||!b){t(e(`settings.colorCatalog.fieldsRequired`),`error`);return}k(!0);try{let n=await Z.addColorEntry({manufacturer:h.trim(),color_name:_.trim(),hex_color:b,material:S.trim()||null,extra_colors:w.trim()||null,effect_type:E.trim()||null});r(e=>[...e,n].sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),f(!1),re(),t(e(`settings.colorCatalog.colorAdded`),`success`)}catch{t(e(`settings.colorCatalog.addFailed`),`error`)}finally{k(!1)}},ae=e=>{m(e.id),g(e.manufacturer),v(e.color_name),x(e.hex_color),C(e.material||``),T(e.extra_colors||``),D(e.effect_type||``)},oe=()=>{m(null),re()},se=async n=>{if(!h.trim()||!_.trim()||!b){t(e(`settings.colorCatalog.fieldsRequired`),`error`);return}k(!0);try{let i=await Z.updateColorEntry(n,{manufacturer:h.trim(),color_name:_.trim(),hex_color:b,material:S.trim()||null,extra_colors:w.trim()||null,effect_type:E.trim()||null});r(e=>e.map(e=>e.id===n?i:e).sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),m(null),re(),t(e(`settings.colorCatalog.colorUpdated`),`success`)}catch{t(e(`settings.colorCatalog.updateFailed`),`error`)}finally{k(!1)}},H=async()=>{if(R)try{await Z.deleteColorEntry(R.id),r(e=>e.filter(e=>e.id!==R.id)),t(e(`settings.colorCatalog.colorDeleted`),`success`)}catch{t(e(`settings.colorCatalog.deleteFailed`),`error`)}finally{z(null)}},ce=async()=>{V(!1),a(!0);try{await Z.resetColorCatalog(),await ee(),t(e(`settings.colorCatalog.resetSuccess`),`success`)}catch{t(e(`settings.colorCatalog.resetFailed`),`error`),a(!1)}},le=async()=>{F(!0),L(null);try{let n={},r=ud();r&&(n.Authorization=`Bearer ${r}`);let i=await fetch(`/api/v1/inventory/colors/sync`,{method:`POST`,headers:n});if(!i.ok)throw Error(`Failed to start sync`);let a=i.body?.getReader();if(!a)throw Error(`No response body`);let o=new TextDecoder,s=``;for(;;){let{done:n,value:r}=await a.read();if(n)break;s+=o.decode(r,{stream:!0});let i=s.split(` -`);s=i.pop()||``;for(let n of i)if(n.startsWith(`data: `))try{let r=JSON.parse(n.slice(6));r.type===`progress`?L({fetched:r.total_fetched,total:r.total_available}):r.type===`complete`?r.added===0?t(e(`settings.colorCatalog.syncUpToDate`,{count:r.total_fetched}),`success`):t(e(`settings.colorCatalog.syncComplete`,{added:r.added,skipped:r.skipped}),`success`):r.type===`error`&&t(`${e(`settings.colorCatalog.syncError`)}: ${r.error}`,`error`)}catch{}}await ee()}catch{t(e(`settings.colorCatalog.syncFailed`),`error`)}finally{F(!1),L(null)}},ue=e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(zd,{id:`card-color-catalog`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(wl,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.colorCatalog.title`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,n.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>{let r=n.map(({manufacturer:e,color_name:t,hex_color:n,material:r,extra_colors:i,effect_type:a})=>({manufacturer:e,color_name:t,hex_color:n,material:r,extra_colors:i,effect_type:a})),i=new Blob([JSON.stringify(r,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`color-catalog.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a),t(e(`settings.colorCatalog.exported`,{count:n.length}),`success`)},className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.export`)})]}),(0,G.jsxs)(`button`,{onClick:()=>u.current?.click(),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.import`)})]}),(0,G.jsx)(`input`,{ref:u,type:`file`,accept:`.json`,className:`hidden`,onChange:async i=>{let a=i.target.files?.[0];if(a){try{let i=await a.text(),o=JSON.parse(i);if(!Array.isArray(o))throw Error(`Invalid format`);let s=0,c=0;for(let e of o){if(!e.manufacturer||!e.color_name||!e.hex_color){c++;continue}if(n.some(t=>t.manufacturer.toLowerCase()===e.manufacturer.toLowerCase()&&t.color_name.toLowerCase()===e.color_name.toLowerCase()&&(t.material||``).toLowerCase()===(e.material||``).toLowerCase())){c++;continue}try{let t=await Z.addColorEntry({manufacturer:e.manufacturer,color_name:e.color_name,hex_color:e.hex_color,material:e.material||null,extra_colors:e.extra_colors||null,effect_type:e.effect_type||null});r(e=>[...e,t].sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),s++}catch{c++}}t(e(`settings.colorCatalog.imported`,{added:s,skipped:c}),`success`)}catch{t(e(`settings.colorCatalog.importFailed`),`error`)}u.current&&(u.current.value=``)}}}),(0,G.jsxs)(`button`,{onClick:le,disabled:P,className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.colorCatalog.syncTooltip`),children:[P?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ps,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:P?I?`${Math.min(I.fetched,I.total)} / ${I.total}`:e(`settings.colorCatalog.starting`):e(`settings.colorCatalog.sync`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(!0),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.reset`)})]}),(0,G.jsxs)(`button`,{onClick:()=>f(!0),className:`px-3 py-1.5 text-sm bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.add`)})]})]}),A.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 px-3 py-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.colorCatalog.selectedCount`,{count:A.size})}),(0,G.jsxs)(`button`,{onClick:()=>N(!0),className:`ml-auto px-3 py-1.5 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.colorCatalog.deleteSelected`)]}),(0,G.jsx)(`button`,{onClick:()=>j(new Set),className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white transition-colors`,children:e(`common.cancel`)})]})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.colorCatalog.description`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.searchColors`),value:o,onChange:e=>s(e.target.value)})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:c,onChange:e=>l(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.colorCatalog.allManufacturers`)}),te.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),d&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e(`settings.colorCatalog.addNewColor`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-2 items-end`,children:[(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.manufacturer`),value:h,onChange:e=>g(e.target.value)}),(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.colorName`),value:_,onChange:e=>v(e.target.value)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,className:`w-20 h-10 rounded cursor-pointer border border-bambu-dark-tertiary`,value:b,onChange:e=>x(e.target.value)}),(0,G.jsx)(`input`,{type:`text`,className:`w-32 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:`#FFFFFF`,value:b,onChange:e=>x(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`text`,className:`flex-1 max-w-lg min-w-[200px] px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.materialOptional`),value:S,onChange:e=>C(e.target.value)}),(0,G.jsxs)(`button`,{onClick:ie,disabled:O,className:`w-24 px-3 py-2 bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 flex items-center justify-center gap-3`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`common.add`)]}),(0,G.jsx)(`button`,{onClick:()=>{f(!1),re()},className:`p-2 ml-2 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 mt-2`,children:[(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`inventory.extraColorsPlaceholder`),value:w,onChange:e=>T(e.target.value)}),(0,G.jsx)(`select`,{className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:E,onChange:e=>D(e.target.value),children:vH.map(t=>(0,G.jsx)(`option`,{value:t.value,children:e(t.labelKey)},t.value||`none`))})]})]}),(o||c)&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:e(`settings.colorCatalog.showing`,{filtered:ne.length,total:n.length})}),i?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),e(`common.loading`)]}):(0,G.jsx)(`div`,{className:`max-h-[600px] overflow-auto border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-2 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:ne.length>0&&A.size===ne.length,onChange:()=>{A.size===ne.length?j(new Set):j(new Set(ne.map(e=>e.id)))},className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium w-12`}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`settings.colorCatalog.manufacturer`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`inventory.material`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`settings.colorCatalog.colorName`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium w-24`,children:e(`settings.colorCatalog.hex`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 w-16`})]})}),(0,G.jsx)(`tbody`,{children:ne.length===0?(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:7,className:`px-3 py-8 text-center text-bambu-gray`,children:e(o||c?`settings.colorCatalog.noMatch`:`settings.colorCatalog.empty`)})}):ne.map(t=>(0,G.jsxs)(y.Fragment,{children:[(0,G.jsx)(`tr`,{className:`border-t border-bambu-dark-tertiary hover:bg-bambu-dark ${A.has(t.id)?`bg-bambu-dark`:``}`,children:p===t.id?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:A.has(t.id),onChange:()=>ue(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`color`,className:`w-8 h-8 rounded cursor-pointer border border-bambu-dark-tertiary`,value:b,onChange:e=>x(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:h,onChange:e=>g(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:S,onChange:e=>C(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:_,onChange:e=>v(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:b,onChange:e=>x(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>se(t.id),disabled:O,className:`p-1.5 rounded hover:bg-green-500/20 text-green-500`,children:O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:oe,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:A.has(t.id),onChange:()=>ue(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(C8,{rgba:t.hex_color.replace(/^#/,``)+(t.hex_color.length===7?`FF`:``),extraColors:t.extra_colors,effectType:t.effect_type,className:`w-8 h-8`,shape:`square`,title:t.hex_color,effectSize:`table`})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:t.manufacturer}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-bambu-gray`,children:t.material||`-`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:t.color_name}),(0,G.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs text-bambu-gray`,children:t.hex_color}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>ae(t),className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>z(t),className:`p-1.5 rounded bg-red-500/10 hover:bg-red-500/20 text-red-500`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}),p===t.id&&(0,G.jsxs)(`tr`,{className:`border-t border-bambu-dark-tertiary/50 bg-bambu-dark`,children:[(0,G.jsx)(`td`,{colSpan:2}),(0,G.jsx)(`td`,{className:`px-3 py-2`,colSpan:2,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`,placeholder:e(`inventory.extraColorsPlaceholder`),value:w,onChange:e=>T(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,colSpan:2,children:(0,G.jsx)(`select`,{className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:E,onChange:e=>D(e.target.value),children:vH.map(t=>(0,G.jsx)(`option`,{value:t.value,children:e(t.labelKey)},t.value||`none`))})}),(0,G.jsx)(`td`,{})]})]},t.id))})]})})]}),R&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.deleteColor`),message:e(`settings.colorCatalog.deleteConfirm`,{name:`${R.manufacturer} - ${R.color_name}`}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:H,onCancel:()=>z(null)}),M&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.deleteSelected`),message:e(`settings.colorCatalog.bulkDeleteConfirm`,{count:A.size}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:async()=>{if(N(!1),A.size!==0)try{let n=await Z.bulkDeleteColorEntries([...A]);r(e=>e.filter(e=>!A.has(e.id))),j(new Set),t(e(`settings.colorCatalog.bulkDeleted`,{count:n.deleted}),`success`)}catch{t(e(`settings.colorCatalog.bulkDeleteFailed`),`error`)}},onCancel:()=>N(!1)}),B&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.resetCatalog`),message:e(`settings.colorCatalog.resetConfirm`),confirmText:e(`common.reset`),variant:`danger`,onConfirm:ce,onCancel:()=>V(!1)})]})}function fGe({link:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,a=(0,y.useRef)(null),[o,s]=(0,y.useState)(e?.name||``),[c,l]=(0,y.useState)(e?.url||``),[u,d]=(0,y.useState)(e?.icon||`link`),[f,p]=(0,y.useState)(e?.open_in_new_tab||!1),[m,h]=(0,y.useState)(!!e?.custom_icon),[g,_]=(0,y.useState)(e?.custom_icon?Z.getExternalLinkIconUrl(e.id):null),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let C=q({mutationFn:async e=>{let t=await Z.createExternalLink(e);return v?await Z.uploadExternalLinkIcon(t.id,v):t},onSuccess:()=>{r.invalidateQueries({queryKey:[`external-links`]}),t()},onError:e=>{S(e.message)}}),w=q({mutationFn:async t=>{let n=await Z.updateExternalLink(e.id,t);return v?n=await Z.uploadExternalLinkIcon(e.id,v):!m&&e?.custom_icon&&(n=await Z.deleteExternalLinkIcon(e.id)),n},onSuccess:()=>{r.invalidateQueries({queryKey:[`external-links`]}),t()},onError:e=>{S(e.message)}}),T=e=>{let t=e.target.files?.[0];if(t){if(![`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`image/webp`,`image/x-icon`].includes(t.type)){S(`Please select a valid image file (PNG, JPG, GIF, SVG, WebP, or ICO)`);return}if(t.size>1024*1024){S(`Image file must be less than 1MB`);return}b(t),h(!0);let e=new FileReader;e.onload=e=>{_(e.target?.result)},e.readAsDataURL(t)}},E=()=>{b(null),_(null),h(!1),a.current&&(a.current.value=``)},D=e=>{if(e.preventDefault(),S(null),!o.trim()){S(`Name is required`);return}if(!c.trim()){S(`URL is required`);return}if(!c.startsWith(`http://`)&&!c.startsWith(`https://`)){S(`URL must start with http:// or https://`);return}let t={name:o.trim(),url:c.trim(),icon:u,open_in_new_tab:f};i?w.mutate(t):C.mutate(t)},O=C.isPending||w.isPending,k=uf(u);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:m&&g?(0,G.jsx)(`img`,{src:g,alt:``,className:`w-5 h-5 rounded`}):(0,G.jsx)(k,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i?`Edit Link`:`Add External Link`})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:D,className:`p-6 space-y-4`,children:[x&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:x}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Name *`}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`My Link`,maxLength:50,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`URL *`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`https://example.com`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:n(`externalLinks.openInNewTab`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>p(!f),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${f?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${f?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray`,children:`Icon`}),(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:`Custom Icon`}),(0,G.jsx)(`input`,{ref:a,type:`file`,accept:`image/png,image/jpeg,image/gif,image/svg+xml,image/webp,image/x-icon`,className:`hidden`,onChange:T}),m&&g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`img`,{src:g,alt:`Custom icon`,className:`w-8 h-8 rounded border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{type:`button`,onClick:E,className:`p-1 text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 transition-colors`,title:`Remove custom icon`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}):(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>a.current?.click(),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),`Upload`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:`PNG, JPG, GIF, SVG, WebP, or ICO. Max 1MB.`})]}),!m&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray block mb-2`,children:`Or choose a preset icon`}),(0,G.jsx)(df,{value:u,onChange:d})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:`Cancel`}),(0,G.jsxs)(Q,{type:`submit`,disabled:O,className:`flex-1`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),i?`Save`:`Add`]})]})]})]})})}function pGe(){let{t:e}=U(),t=co(),{authEnabled:n,hasPermission:r}=Nd(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(fm),[_,v]=(0,y.useState)(()=>um(mm.map(e=>e.id))),{data:b,isLoading:x}=K({queryKey:[`external-links`],queryFn:Z.getExternalLinks}),S=q({mutationFn:e=>Z.deleteExternalLink(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`external-links`]})}}),{data:C}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:n&&r(`settings:update`)}),w=q({mutationFn:e=>Z.updateSettings({default_sidebar_order:e}),onSuccess:(n,r)=>{t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`default-sidebar-order`]}),i(e(r?`settings.sidebarDefaultSet`:`settings.sidebarDefaultCleared`),`success`)},onError:()=>{i(e(`settings.sidebarDefaultFailed`),`error`)}}),T=(0,y.useMemo)(()=>{let e=new Map(mm.map(e=>[e.id,e])),t=new Map((b||[]).map(e=>[`ext-${e.id}`,e])),n=[],r=new Set,i=i=>{if(r.has(i))return;let a=e.get(i);if(a){n.push({type:`system`,id:i,navItem:a}),r.add(i);return}let o=t.get(i);o&&(n.push({type:`external`,id:i,link:o}),r.add(i))};return _.forEach(i),mm.forEach(e=>i(e.id)),(b||[]).forEach(e=>i(`ext-${e.id}`)),n},[b,_]),E=e=>{v(e),dm(e)},D=(e,t)=>{f(t),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t)},O=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,m(t)},k=(e,t)=>{if(e.preventDefault(),d===null||d===t){f(null),m(null);return}let n=T.map(e=>e.id),r=n.indexOf(d),i=n.indexOf(t);if(r===-1||i===-1){f(null),m(null);return}n.splice(r,1),n.splice(i,0,d),E(n),f(null),m(null)},A=()=>{f(null),m(null)},j=e=>{u(e)},M=()=>{l&&(S.mutate(l.id),u(null))},N=()=>{let e=[...mm.map(e=>e.id),...(b||[]).map(e=>`ext-${e.id}`)];g([]),v(e),pm([]),dm(e)},P=e=>{let t=T.map(e=>e.id);w.mutate(e?JSON.stringify({order:t,hiddenSystemItemIds:h}):``)},F=e=>{if(e===`settings`)return;let t=h.includes(e)?h.filter(t=>t!==e):[...h,e];g(t),pm(t)},I=n&&r(`settings:update`),L=!!C?.default_sidebar_order;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(zd,{id:`card-sidebar-links`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-y-2 gap-x-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`externalLinks.sidebarLayout`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[I&&(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:e(`settings.setDefault`)}),(0,G.jsx)(pH,{checked:L,onChange:P,disabled:w.isPending})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:N,className:`whitespace-nowrap`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),e(`settings.reset`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>o(!0),className:`whitespace-nowrap`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),`Add Link`]})]})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`externalLinks.sidebarLayoutDescription`)}),x?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):(0,G.jsx)(`div`,{className:`space-y-2`,children:T.map(t=>{let n=t.type===`system`&&h.includes(t.id),r=t.id===`settings`;if(t.type===`system`){let i=t.navItem.icon;return(0,G.jsxs)(`div`,{draggable:!0,onDragStart:e=>D(e,t.id),onDragOver:e=>O(e,t.id),onDragLeave:()=>m(null),onDrop:e=>k(e,t.id),onDragEnd:A,className:`relative flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary transition-colors ${d===t.id?`opacity-50`:n?`opacity-60`:``} ${p===t.id&&d!==t.id?`before:absolute before:left-3 before:right-3 before:top-0 before:h-0.5 before:bg-bambu-green`:``}`,children:[(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray cursor-grab flex-shrink-0`}),(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(i,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate block`,children:e(t.navItem.labelKey)}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate block`,children:e(r?`externalLinks.requiredInSidebar`:n?`externalLinks.hiddenFromSidebar`:`externalLinks.visibleInSidebar`)})]}),(0,G.jsx)(`button`,{onClick:()=>F(t.id),disabled:r,className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors flex-shrink-0 disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent disabled:hover:text-bambu-gray`,title:e(r?`externalLinks.settingsCannotBeHidden`:n?`externalLinks.showPage`:`externalLinks.hidePage`),"aria-label":e(r?`externalLinks.settingsCannotBeHidden`:n?`externalLinks.showPage`:`externalLinks.hidePage`),children:n?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]},t.id)}let i=t.link,a=uf(i.icon);return(0,G.jsxs)(`div`,{draggable:!0,onDragStart:e=>D(e,t.id),onDragOver:e=>O(e,t.id),onDragLeave:()=>m(null),onDrop:e=>k(e,t.id),onDragEnd:A,className:`relative flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary transition-colors ${d===t.id?`opacity-50`:``} ${p===t.id&&d!==t.id?`before:absolute before:left-3 before:right-3 before:top-0 before:h-0.5 before:bg-bambu-green`:``}`,children:[(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray cursor-grab flex-shrink-0`}),(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-gray`,children:i.custom_icon?(0,G.jsx)(`img`,{src:Z.getExternalLinkIconUrl(i.id),alt:``,className:`w-4 h-4`}):(0,G.jsx)(a,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate`,children:i.name}),(0,G.jsx)(rc,{className:`w-3 h-3 text-bambu-gray flex-shrink-0`})]}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate block`,children:i.url})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`button`,{onClick:()=>c(i),className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:e(`common.edit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>j(i),disabled:S.isPending,className:`p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-500/20 text-bambu-gray hover:text-red-900 dark:hover:text-red-400 transition-colors disabled:opacity-50`,title:e(`externalLinks.deleteLink`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},t.id)})})]})]}),(a||s)&&(0,G.jsx)(fGe,{link:s,onClose:()=>{o(!1),c(null)}}),l&&(0,G.jsx)(of,{title:`Delete Link`,message:`Are you sure you want to delete "${l.name}"? This action cannot be undone.`,confirmText:`Delete`,cancelText:`Cancel`,variant:`danger`,onConfirm:M,onCancel:()=>u(null)})]})}async function w8(e){if(navigator.clipboard&&window.isSecureContext)try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{return t.select(),document.execCommand(`copy`)}catch{return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function mGe(e,t,n=`text/plain`){let r=new Blob([e],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(i)}function hGe({status:e}){return e===`pass`?(0,G.jsx)(Ss,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}):e===`fail`?(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0`}):e===`warn`?(0,G.jsx)(Lu,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0`}):(0,G.jsx)(ws,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`})}function gGe({vpId:e,vpName:t,onClose:n}){let{t:r}=U(),i=q({mutationFn:()=>wd.diagnose(e)});(0,y.useEffect)(()=>{i.mutate()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let a=i.data,o=a?.overall===`ok`?`bg-bambu-green/10 border-bambu-green/30 text-bambu-green`:a?.overall===`warnings`?`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-300`:`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300`;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg flex flex-col max-h-[85vh]`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(Su,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,children:r(`vpDiagnostic.title`,{name:t})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-4 overflow-y-auto`,children:[i.isPending&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:r(`vpDiagnostic.running`)})]}),i.isError&&(0,G.jsx)(`div`,{className:`rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:r(`vpDiagnostic.runFailed`,{error:i.error.message})}),a&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`ol`,{className:`space-y-2`,children:a.checks.map(e=>{let t=r(`vpDiagnostic.check.${e.id}.${e.status}`,{...e.params,defaultValue:``});return(0,G.jsxs)(`li`,{className:`flex items-start gap-3 bg-bambu-dark rounded-lg px-4 py-2.5 ${e.status===`skip`?`opacity-60`:``}`,children:[(0,G.jsx)(`div`,{className:`mt-0.5`,children:(0,G.jsx)(hGe,{status:e.status})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white`,children:r(`vpDiagnostic.check.${e.id}.title`,e.params)}),t&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-0.5`,children:t})]})]},e.id)})}),(0,G.jsx)(`div`,{className:`rounded-lg border px-4 py-3 text-sm ${o}`,children:r(`vpDiagnostic.overall.${a.overall}`)})]})]}),(0,G.jsxs)(`div`,{className:`px-6 py-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>i.mutate(),disabled:i.isPending,className:`px-4 py-2 bg-bambu-dark hover:bg-bambu-dark-tertiary disabled:opacity-50 text-white text-sm rounded-lg transition-colors`,children:r(`vpDiagnostic.retry`)}),(0,G.jsx)(`button`,{onClick:n,className:`px-4 py-2 bg-bambu-green hover:bg-bambu-green/90 text-white text-sm rounded-lg transition-colors`,children:r(`common.close`)})]})]})})}var T8={archive:`archive`,review:`review`,queue:`queue`,proxy:`proxy`};function E8(e){return e===`immediate`?`archive`:e===`print_queue`||e===`queue`?`queue`:e===`archive`||e===`review`||e===`proxy`?e:`archive`}function _Ge({printer:e,models:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(e.enabled),[l,u]=(0,y.useState)(e.name),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(E8(e.mode)),[h,g]=(0,y.useState)(e.target_printer_id),[_,v]=(0,y.useState)(e.bind_ip||``),[b,x]=(0,y.useState)(e.remote_interface_ip||``),[S,C]=(0,y.useState)(e.model||``),[w,T]=(0,y.useState)(e.auto_dispatch??!0),[E,D]=(0,y.useState)(e.queue_force_color_match??!1),[O,k]=(0,y.useState)(e.save_ams_mapping??!1),[A,j]=(0,y.useState)(e.gcode_injection??!1),[M,N]=(0,y.useState)(e.tailscale_disabled??!0),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),{data:ne}=K({queryKey:[`tailscale-status`],queryFn:wd.getTailscaleStatus,enabled:!M,staleTime:6e4}),re=ne?.available?ne.fqdn:``,ie=ne?.available?ne.tailscale_ips?.[0]??``:``,ae=async e=>{e.stopPropagation();let t=re;t&&(await w8(t)?(te(!0),i(n(`printers.copied`)),setTimeout(()=>te(!1),2e3)):i(n(`virtualPrinter.toast.copyFailed`),`error`))};(0,y.useEffect)(()=>{I||(c(e.enabled),m(E8(e.mode)),u(e.name),g(e.target_printer_id),v(e.bind_ip||``),x(e.remote_interface_ip||``),C(e.model||``),T(e.auto_dispatch??!0),D(e.queue_force_color_match??!1),k(e.save_ams_mapping??!1),j(e.gcode_injection??!1),N(e.tailscale_disabled??!0))},[e,I]);let{data:oe}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:se}=K({queryKey:[`network-interfaces`],queryFn:()=>Z.getNetworkInterfaces().then(e=>e.interfaces)}),H=q({mutationFn:t=>wd.update(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`virtual-printers`]}),i(n(`virtualPrinter.toast.updated`)),L(null)},onError:t=>{i(t.message||n(`virtualPrinter.toast.failedToUpdate`),`error`),c(e.enabled),m(E8(e.mode)),g(e.target_printer_id),v(e.bind_ip||``),N(e.tailscale_disabled??!0),D(e.queue_force_color_match??!1),k(e.save_ams_mapping??!1),j(e.gcode_injection??!1),L(null)}}),ce=q({mutationFn:()=>wd.remove(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`virtual-printers`]}),i(n(`virtualPrinter.toast.deleted`)),z(!1)},onError:e=>{i(e.message||n(`virtualPrinter.toast.failedToDelete`),`error`),z(!1)}}),le=t=>{t.stopPropagation();let r=!s;if(r){if(!_){i(n(`virtualPrinter.toast.bindIpRequired`),`error`);return}if(p===`proxy`){if(!h){i(n(`virtualPrinter.toast.targetPrinterRequired`),`error`);return}}else if(!d&&!e.access_code_set){i(n(`virtualPrinter.toast.accessCodeRequired`),`error`);return}}c(r),L(`toggle`),H.mutate({enabled:r})},ue=()=>{l.trim()&&(L(`name`),H.mutate({name:l.trim()}))},de=()=>{if(!d){i(n(`virtualPrinter.toast.accessCodeEmpty`),`error`);return}if(d.length!==8){i(n(`virtualPrinter.toast.accessCodeLength`),`error`);return}L(`accessCode`),H.mutate({access_code:d}),f(``)},fe=e=>{m(e),L(`mode`),H.mutate({mode:e})},pe=e=>{C(e),L(`model`),H.mutate({model:e})},me=e=>{let t=ve?.access_code,r=oe?.find(t=>t.id===e)?.access_code;g(e),L(`targetPrinter`),H.mutate({target_printer_id:e},{onSuccess:()=>{t&&r&&t!==r&&i(n(`virtualPrinter.toast.targetCodeChangedRebind`),`info`)}})},he=e=>{x(e),L(`remoteInterface`),H.mutate({remote_interface_ip:e})},ge=e.status?.running||!1,_e=n(`virtualPrinter.mode.${T8[p]||`archive`}`),ve=oe?.find(e=>e.id===h),ye=ve?.name,be=!!h,xe=be?ve?.access_code??``:``;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(zd,{className:`overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-3 cursor-pointer select-none`,onClick:()=>o(!a),children:[(0,G.jsx)(`button`,{className:`text-bambu-gray flex-shrink-0`,children:a?(0,G.jsx)(ps,{className:`w-4 h-4`}):(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full flex-shrink-0 ${ge?`bg-green-400 animate-pulse`:`bg-gray-500`}`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate max-w-full`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0`,children:_e}),e.model_name&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0`,children:e.model_name}),ye&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray truncate max-w-full`,children:[p===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3 inline mr-1`}),ye]}),_&&(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray flex-shrink-0 font-mono`,children:_}),b&&(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray flex-shrink-0 font-mono`,children:b})]}),(0,G.jsx)(`div`,{className:`ml-auto flex items-center gap-2 flex-shrink-0`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(`button`,{onClick:le,disabled:I===`toggle`,className:`relative w-10 h-5 rounded-full transition-colors ${s?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`toggle`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${s?`translate-x-5`:``}`})})})]}),a&&(0,G.jsxs)(Vd,{className:`pt-0 space-y-4`,children:[(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),onBlur:ue,onKeyDown:e=>e.key===`Enter`&&ue(),className:`flex-1 text-sm text-white bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{onClick:()=>V(!0),className:`p-1.5 text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:n(`vpDiagnostic.runButton`),children:(0,G.jsx)(Su,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>z(!0),className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors flex-shrink-0`,title:n(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 -mt-2`,children:[re&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700/80 dark:text-green-400/70 min-w-0`,children:[(0,G.jsx)(au,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`font-mono text-xs truncate`,children:ie?`${ie} (${re})`:re}),(0,G.jsx)(`button`,{onClick:ae,className:`p-0.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors flex-shrink-0`,title:n(ee?`printers.copied`:`printers.copyToClipboard`),children:ee?(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green`}):(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-mono ml-auto flex-shrink-0`,children:e.serial})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-2`,children:n(`virtualPrinter.mode.title`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:[`archive`,`review`,`queue`,`proxy`].map(e=>(0,G.jsxs)(`button`,{onClick:()=>fe(e),disabled:I===`mode`,className:`p-2 rounded-lg border text-left transition-colors ${p===e?e===`proxy`?`border-blue-500 bg-blue-500/10`:`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-white text-xs font-medium`,children:[e===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3`}),n(`virtualPrinter.mode.${T8[e]}`)]}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.mode.${T8[e]}Desc`)})]},e))})]}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.autoDispatch.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.autoDispatch.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!w;T(e),L(`autoDispatch`),H.mutate({auto_dispatch:e})},disabled:I===`autoDispatch`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${w?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`autoDispatch`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${w?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.queueForceColorMatch.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.queueForceColorMatch.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!E;D(e),L(`queueForceColorMatch`),H.mutate({queue_force_color_match:e})},disabled:I===`queueForceColorMatch`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${E?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`queueForceColorMatch`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${E?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.saveAmsMapping.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.saveAmsMapping.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!O;k(e),L(`saveAmsMapping`),H.mutate({save_ams_mapping:e})},disabled:I===`saveAmsMapping`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${O?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`saveAmsMapping`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${O?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.gcodeInjection.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.gcodeInjection.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!A;j(e),L(`gcodeInjection`),H.mutate({gcode_injection:e})},disabled:I===`gcodeInjection`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${A?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`gcodeInjection`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${A?`translate-x-5`:``}`})})]})}),(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.tailscaleDisabled.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.tailscaleDisabled.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!M;N(e),L(`tailscaleDisabled`),H.mutate({tailscale_disabled:e})},disabled:I===`tailscaleDisabled`,className:`relative w-10 h-5 rounded-full transition-colors shrink-0 ${M?`bg-bambu-dark-tertiary`:`bg-bambu-green`} ${I===`tailscaleDisabled`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${M?``:`translate-x-5`}`})})]})}),p!==`proxy`&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-1`,children:n(`virtualPrinter.model.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`virtualPrinter.model.description`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:S,onChange:e=>pe(e.target.value),disabled:I===`model`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:Object.entries(t).map(([e,t])=>(0,G.jsxs)(`option`,{value:e,children:[t,` (`,e,`)`]},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),p===`proxy`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-2 rounded bg-blue-50 border border-blue-300 dark:bg-blue-500/10 dark:border-blue-500/30`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`virtualPrinter.proxy.accessCodeHint`)})]})}),p!==`proxy`&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.accessCode.title`)}),be?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-blue-700 dark:text-blue-400`,children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.inheritedFromTarget`)]}):e.access_code_set?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.isSet`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.notSet`)]})]}),be?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:P?`text`:`password`,value:xe,readOnly:!0,"aria-label":n(`virtualPrinter.accessCode.title`),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm pr-10 font-mono opacity-90 cursor-default`}),(0,G.jsx)(`button`,{onClick:()=>F(!P),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,"aria-label":n(P?`virtualPrinter.accessCode.hide`:`virtualPrinter.accessCode.reveal`),children:P?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`virtualPrinter.accessCode.derivedFromTargetHint`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:P?`text`:`password`,value:d,onChange:e=>f(e.target.value),placeholder:e.access_code_set?n(`virtualPrinter.accessCode.placeholderChange`):n(`virtualPrinter.accessCode.placeholder`),maxLength:8,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm placeholder-bambu-gray pr-10 font-mono`}),(0,G.jsx)(`button`,{onClick:()=>F(!P),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:P?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]}),(0,G.jsx)(Q,{onClick:de,disabled:!d||I===`accessCode`,variant:`primary`,children:I===`accessCode`?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`common.save`)})]}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:(0,G.jsx)(`span`,{className:d.length===8?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`,children:n(`virtualPrinter.accessCode.charCount`,{count:d.length})})})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-2`,children:n(`virtualPrinter.targetPrinter.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:h??``,onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||me(t)},disabled:I===`targetPrinter`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.targetPrinter.placeholder`)}),oe?.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.ip_address,`)`]},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-1`,children:n(`virtualPrinter.bindIp.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:_,onChange:e=>{v(e.target.value),L(`bindIp`),H.mutate({bind_ip:e.target.value})},disabled:I===`bindIp`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.bindIp.placeholder`)}),se?.map(e=>(0,G.jsxs)(`option`,{value:e.ip,children:[e.name,` (`,e.ip,`)`,e.is_alias?` [alias]`:``,` - `,e.subnet]},e.ip))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`virtualPrinter.bindIp.hint`)})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.remoteInterface.title`)}),b?(0,G.jsx)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400`,children:(0,G.jsx)(fs,{className:`w-3 h-3`})}):(0,G.jsx)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray`,title:n(`virtualPrinter.remoteInterface.optional`),children:(0,G.jsx)(Wc,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:b,onChange:e=>he(e.target.value),disabled:I===`remoteInterface`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.remoteInterface.placeholder`)}),se?.map(e=>(0,G.jsxs)(`option`,{value:e.ip,children:[e.name,` (`,e.ip,`) - `,e.subnet]},e.ip))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]})]})]}),R&&(0,G.jsx)(of,{title:n(`virtualPrinter.deleteConfirm.title`),message:n(`virtualPrinter.deleteConfirm.message`,{name:e.name}),variant:`danger`,confirmText:n(`common.delete`),isLoading:ce.isPending,onConfirm:()=>ce.mutate(),onCancel:()=>z(!1)}),B&&(0,G.jsx)(gGe,{vpId:e.id,vpName:e.name,onClose:()=>V(!1)})]})}var D8={archive:`archive`,review:`review`,queue:`queue`,proxy:`proxy`};function vGe({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(`archive`),[c,l]=(0,y.useState)(null),{data:u}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),d=q({mutationFn:()=>wd.create({name:i.trim()||`Bambuddy`,mode:o,target_printer_id:o===`proxy`?c??void 0:void 0}),onSuccess:()=>{n.invalidateQueries({queryKey:[`virtual-printers`]}),r(t(`virtualPrinter.toast.created`)),e()},onError:e=>{r(e.message||t(`virtualPrinter.toast.failedToCreate`),`error`)}});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:e,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6 space-y-4`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t(`virtualPrinter.addDialog.title`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.addDialog.name`)}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:`Bambuddy`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm placeholder-bambu-gray`,autoFocus:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.mode.title`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:[`archive`,`review`,`queue`,`proxy`].map(e=>(0,G.jsxs)(`button`,{onClick:()=>s(e),className:`p-2 rounded-lg border text-left transition-colors ${o===e?e===`proxy`?`border-blue-500 bg-blue-500/10`:`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-white text-xs font-medium`,children:[e===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3`}),t(`virtualPrinter.mode.${D8[e]}`)]}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:t(`virtualPrinter.mode.${D8[e]}Desc`)})]},e))})]}),o===`proxy`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.targetPrinter.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:c??``,onChange:e=>{let t=parseInt(e.target.value,10);l(isNaN(t)?null:t)},className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm appearance-none cursor-pointer pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:t(`virtualPrinter.targetPrinter.placeholder`)}),u?.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.ip_address,`)`]},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`virtualPrinter.addDialog.hint`)}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,disabled:d.isPending,children:t(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>d.mutate(),className:`flex-1`,disabled:d.isPending,children:d.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):t(`virtualPrinter.addDialog.create`)})]})]})})})}function yGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),{data:a,isLoading:o}=K({queryKey:[`virtual-printers`],queryFn:wd.list,refetchInterval:1e4}),{data:s}=K({queryKey:[`virtual-printer-settings`],queryFn:Cd.getSettings}),c=q({mutationFn:e=>Cd.updateSettings({archive_name_source:e}),onSuccess:()=>{t.invalidateQueries({queryKey:[`virtual-printer-settings`]}),n(e(`virtualPrinter.toast.updated`))},onError:t=>{n(t.message||e(`virtualPrinter.toast.failedToUpdate`),`error`)}}),l=s?.archive_name_source===`filename`,{data:u}=K({queryKey:[`vp-ca-certificate`],queryFn:wd.getCaCertificate,staleTime:1/0}),[d,f]=(0,y.useState)(!1),p=async()=>{u&&(await w8(u.pem)?(f(!0),n(e(`virtualPrinter.caCert.copied`)),setTimeout(()=>f(!1),2e3)):n(e(`virtualPrinter.toast.copyFailed`),`error`))},m=()=>{u&&mGe(u.pem,`bambuddy-virtual-printer-ca.crt`,`application/x-pem-file`)};if(o)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})});let h=a?.printers||[],g=a?.models||{};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4 items-stretch`,children:[(0,G.jsx)(zd,{className:`border-l-4 border-l-yellow-500`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`virtualPrinter.setupRequired.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`virtualPrinter.setupRequired.description`)}),(0,G.jsxs)(`a`,{href:`https://wiki.bambuddy.cool/features/virtual-printer/`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 mt-2 px-3 py-1.5 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-500/50 rounded text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),e(`virtualPrinter.setupRequired.readGuide`)]})]})]})})}),(0,G.jsx)(zd,{className:`lg:col-span-2`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`virtualPrinter.howItWorks.title`)}),(0,G.jsxs)(`ul`,{className:`space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step1`)}),(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step2`)}),(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step3`)})]})]})]})})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4 items-stretch`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(au,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-1`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`virtualPrinter.caCert.title`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsxs)(`button`,{onClick:p,disabled:!u,className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded bg-bambu-dark-secondary border border-bambu-dark-tertiary text-white hover:border-bambu-gray disabled:opacity-50 transition-colors`,children:[d?(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green`}):(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`}),e(d?`virtualPrinter.caCert.copied`:`virtualPrinter.caCert.copy`)]}),(0,G.jsxs)(`button`,{onClick:m,disabled:!u,className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded bg-bambu-dark-secondary border border-bambu-dark-tertiary text-white hover:border-bambu-gray disabled:opacity-50 transition-colors`,children:[(0,G.jsx)(Xs,{className:`w-3.5 h-3.5`}),e(`virtualPrinter.caCert.download`)]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`virtualPrinter.caCert.description`)}),u&&(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray font-mono mt-1 truncate`,title:u.fingerprint_sha256,children:[e(`virtualPrinter.caCert.fingerprint`),`: `,u.fingerprint_sha256]})]})]})})}),(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-1`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`virtualPrinter.archiveNameSource.title`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-xs ${l?`text-bambu-gray`:`text-white`}`,children:e(`virtualPrinter.archiveNameSource.metadata`)}),(0,G.jsx)(pH,{checked:l,onChange:e=>c.mutate(e?`filename`:`metadata`),disabled:c.isPending}),(0,G.jsx)(`span`,{className:`text-xs ${l?`text-white`:`text-bambu-gray`}`,children:e(`virtualPrinter.archiveNameSource.filename`)})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`virtualPrinter.archiveNameSource.description`)})]})]})})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`virtualPrinter.list.title`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,h.length,`)`]})]}),(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>i(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),e(`virtualPrinter.list.add`)]})]}),h.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-8 text-center`,children:[(0,G.jsx)(Rl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`virtualPrinter.list.empty`)}),(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>i(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),e(`virtualPrinter.list.addFirst`)]})]})}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4 items-start`,children:h.map(e=>(0,G.jsx)(_Ge,{printer:e,models:g},e.id))}),r&&(0,G.jsx)(vGe,{onClose:()=>i(!1)})]})}function O8(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;if(n<24)return r?`${n}h ${r}m`:`${n}h`;let i=Math.floor(n/24),a=n%24;return a?`${i}d ${a}h`:`${i}d`}function k8(e){return e==null?`—`:e>=1024?`${(e/1024).toFixed(1)} GB`:`${Math.round(e)} MB`}function bGe({device:e,onUnregister:t,isDeleting:n}){let{t:r}=U(),{showToast:i}=qd(),a=e.system_stats,o=a?.memory,s=a?.disk,c=e.online,[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),p=async t=>{f(t);try{t===`update`?await Od.triggerUpdate(e.device_id):await Od.systemCommand(e.device_id,t),i(r(`settings.spoolbuddy.commandQueued`),`success`)}catch(e){i(e instanceof Error?e.message:r(`settings.spoolbuddy.commandError`),`error`)}finally{f(null),u(null)}},m=[{key:`update`,label:r(`settings.spoolbuddy.update`),icon:Xs},{key:`restart_browser`,label:r(`settings.spoolbuddy.restartBrowser`),icon:gl},{key:`restart_daemon`,label:r(`settings.spoolbuddy.restartDaemon`),icon:Hl},{key:`reboot`,label:r(`settings.spoolbuddy.reboot`),icon:Gl},{key:`shutdown`,label:r(`settings.spoolbuddy.shutdown`),icon:Ll,variant:`danger`}],h={update:r(`settings.spoolbuddy.updateConfirmTitle`),restart_browser:r(`settings.spoolbuddy.restartBrowserConfirmTitle`),restart_daemon:r(`settings.spoolbuddy.restartDaemonConfirmTitle`),reboot:r(`settings.spoolbuddy.rebootConfirmTitle`),shutdown:r(`settings.spoolbuddy.shutdownConfirmTitle`)},g={update:r(`settings.spoolbuddy.updateConfirmBody`,{hostname:e.hostname}),restart_browser:r(`settings.spoolbuddy.restartBrowserConfirmBody`,{hostname:e.hostname}),restart_daemon:r(`settings.spoolbuddy.restartDaemonConfirmBody`,{hostname:e.hostname}),reboot:r(`settings.spoolbuddy.rebootConfirmBody`,{hostname:e.hostname}),shutdown:r(`settings.spoolbuddy.shutdownConfirmBody`,{hostname:e.hostname})};return(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white truncate`,children:e.hostname}),(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium ${c?`bg-green-500/15 text-green-400 border border-green-500/40`:`bg-gray-500/15 text-gray-400 border border-gray-500/40`}`,children:[c?(0,G.jsx)(Qu,{className:`w-3 h-3`}):(0,G.jsx)(Zu,{className:`w-3 h-3`}),r(c?`settings.spoolbuddy.online`:`settings.spoolbuddy.offline`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-mono mt-1 truncate`,children:e.device_id})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>t(e),disabled:n,"aria-label":r(`settings.spoolbuddy.unregister`),children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:r(`settings.spoolbuddy.unregister`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3 text-xs`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.ipAddress`)}),(0,G.jsx)(`div`,{className:`text-white font-mono`,children:e.ip_address})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.firmware`)}),(0,G.jsx)(`div`,{className:`text-white`,children:e.firmware_version??`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),r(`settings.spoolbuddy.lastSeen`)]}),(0,G.jsx)(`div`,{className:`text-white`,children:e.last_seen?up(e.last_seen):r(`settings.spoolbuddy.never`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.daemonUptime`)}),(0,G.jsx)(`div`,{className:`text-white`,children:O8(e.uptime_s)})]})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:m.map(({key:e,label:t,icon:n,variant:r})=>(0,G.jsxs)(Q,{variant:r??`secondary`,size:`sm`,onClick:()=>u(e),disabled:!c||d!==null,"aria-label":t,children:[d===e?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(n,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:t})]},e))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-xs flex-wrap`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[e.nfc_ok?(0,G.jsx)(Ss,{className:`w-3.5 h-3.5 text-green-400`}):(0,G.jsx)(Ds,{className:`w-3.5 h-3.5 text-red-400`}),r(`settings.spoolbuddy.nfc`),e.nfc_reader_type&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[`(`,e.nfc_reader_type,`)`]})]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[e.scale_ok?(0,G.jsx)(Ss,{className:`w-3.5 h-3.5 text-green-400`}):(0,G.jsx)(Ds,{className:`w-3.5 h-3.5 text-red-400`}),r(`settings.spoolbuddy.scale`)]})]}),a&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 text-xs`,children:[a.cpu_temp_c!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Mu,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.cpuTemp`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[a.cpu_temp_c.toFixed(1),`°C`]})]})]}),a.load_avg&&a.load_avg.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Mo,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.cpuLoad`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[a.load_avg[0].toFixed(2),a.cpu_count?` / ${a.cpu_count} (${Math.round(a.load_avg[0]/a.cpu_count*100)}%)`:``]})]})]}),o&&o.percent!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Hs,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.memory`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[o.percent.toFixed(0),`% (`,k8(o.used_mb),` / `,k8(o.total_mb),`)`]})]})]}),s&&s.percent!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Pc,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.disk`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[s.percent.toFixed(0),`% (`,s.used_gb?.toFixed(1),` / `,s.total_gb?.toFixed(1),` GB)`]})]})]}),a.system_uptime_s!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.systemUptime`)}),(0,G.jsx)(`div`,{className:`text-white`,children:O8(a.system_uptime_s)})]})]})]}),a.os&&(0,G.jsx)(`div`,{className:`mt-3 text-xs text-bambu-gray font-mono truncate`,children:[a.os.os,a.os.kernel,a.os.arch,a.os.python&&`Python ${a.os.python}`].filter(Boolean).join(` · `)})]})]}),l&&(0,G.jsx)(of,{variant:l===`shutdown`||l===`reboot`?`danger`:`default`,title:h[l],message:g[l],confirmText:r(`settings.spoolbuddy.commandConfirm`),isLoading:d!==null,onConfirm:()=>p(l),onCancel:()=>u(null)})]})}function xGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(null),{data:a=[],isLoading:o}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:15e3}),s=q({mutationFn:e=>Od.deleteDevice(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`spoolbuddy-devices`]}),n(e(`settings.spoolbuddy.unregisterSuccess`),`success`),i(null)},onError:t=>{n(t.message||e(`settings.spoolbuddy.unregisterError`),`error`)}});if(o)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})});let c=a.length>1;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`settings.spoolbuddy.infoTitle`)}),(0,G.jsx)(`p`,{children:e(`settings.spoolbuddy.infoBody`)})]})]})})}),c&&(0,G.jsx)(zd,{className:`border-l-4 border-l-yellow-500`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`settings.spoolbuddy.duplicatesTitle`,{count:a.length})}),(0,G.jsx)(`p`,{children:e(`settings.spoolbuddy.duplicatesBody`)})]})]})})}),a.length===0?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 text-center text-bambu-gray text-sm`,children:e(`settings.spoolbuddy.empty`)})}):(0,G.jsx)(`div`,{className:`space-y-3`,children:a.map(e=>(0,G.jsx)(bGe,{device:e,onUnregister:i,isDeleting:s.isPending&&s.variables===e.device_id},e.id))}),r&&(0,G.jsx)(of,{variant:`danger`,title:e(`settings.spoolbuddy.confirmTitle`),message:e(`settings.spoolbuddy.confirmBody`,{hostname:r.hostname,deviceId:r.device_id}),confirmText:e(`settings.spoolbuddy.unregister`),isLoading:s.isPending,onConfirm:()=>s.mutate(r.device_id),onCancel:()=>i(null)})]})}function A8(e,t,n,r,i){return n?e(`backup.restoreFromGit.${t}.${n}`,{...r??{},defaultValue:i??n}):i}var j8=[{id:`archives`,labelKey:`backup.printArchives`,icon:(0,G.jsx)(Po,{className:`w-4 h-4`})},{id:`spools`,labelKey:`backup.spoolInventory`,icon:(0,G.jsx)(wl,{className:`w-4 h-4`})},{id:`settings`,labelKey:`backup.appSettings`,icon:(0,G.jsx)(ru,{className:`w-4 h-4`})},{id:`kprofiles`,labelKey:`backup.kProfiles`,icon:(0,G.jsx)(Mu,{className:`w-4 h-4`})}],M8=Object.fromEntries(j8.map(e=>[e.id,e.labelKey])),N8=`HEAD`;function SGe({onClose:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(N8),[a,o]=(0,y.useState)({}),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),p=K({queryKey:[`github-backup-commits`],queryFn:()=>Z.getGitHubBackupCommits(20)}),m=K({queryKey:[`github-restore-preview`,r],queryFn:()=>Z.getGitHubRestorePreview(r)}),h=m.data?.success?m.data.ref:r,g=(0,y.useMemo)(()=>{let e={};return m.data?.categories?.forEach(n=>{e[n.category]={available:n.available,itemCount:n.item_count,detail:A8(t,`details`,n.detail_code,n.detail_params,n.detail)}}),e},[m.data,t]),_=(0,y.useMemo)(()=>j8.filter(e=>a[e.id]&&g[e.id]?.available).map(e=>e.id),[a,g]),v=_.length,b=!s&&_.includes(`kprofiles`),x=q({mutationFn:()=>Z.restoreFromGitHub({ref:h,categories:_,overwrite_existing:s}),onSuccess:e=>{u(!1);let t=Object.keys(e.results??{}).length>0;(e.success||t)&&(f(e),n.invalidateQueries({queryKey:[`spools`]}),n.invalidateQueries({queryKey:[`archives`]}),n.invalidateQueries({queryKey:[`settings`]})),n.invalidateQueries({queryKey:[`github-backup-logs`]}),n.invalidateQueries({queryKey:[`github-backup-status`]})},onError:()=>u(!1)}),S=x.isPending,C=!!(d&&`settings`in d.results),w=(0,y.useCallback)(()=>{if(C){window.location.reload();return}e()},[C,e]);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!S&&!l&&w()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[w,S,l]),(0,y.useEffect)(()=>{if(!S)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[S]),(0,y.useEffect)(()=>{m.data&&o(e=>{let t={};return j8.forEach(n=>{t[n.id]=!!e[n.id]&&!!g[n.id]?.available}),t})},[m.data,g]);let T=p.data?.commits??[],E=(e,t,n)=>{let r=(t||``).split(` -`)[0],i=n?new Date(n).toLocaleString():``;return`${e.slice(0,7)} — ${i}${r?` — ${r}`:``}`},D=e=>e.isError?e.error?.message||t(`backup.restoreFromGit.loadFailed`):null,O=D(m)??(m.data&&!m.data.success?m.data.message:null),k=D(p)??(p.data&&!p.data.success?p.data.message:null);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:S?void 0:w,children:(0,G.jsx)(zd,{className:`w-full max-w-lg`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Wl,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t(`backup.restoreFromGit.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t(`backup.restoreFromGit.subtitle`)})]})]}),(0,G.jsx)(`button`,{onClick:w,disabled:S,"aria-label":t(`common.close`),className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors disabled:opacity-50`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),d?(0,G.jsxs)(`div`,{className:`p-4 space-y-3 max-h-[400px] overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[d.success?(0,G.jsx)(Ss,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}):(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white`,children:d.message})]}),!d.success&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.partialHint`)}),Object.entries(d.results).map(([e,n])=>(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:M8[e]?t(M8[e]):e}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.tally`,{restored:n.restored,skipped:n.skipped,failed:n.failed})})]}),n.notes.length>0&&(0,G.jsx)(`ul`,{className:`mt-2 space-y-1`,children:n.notes.map(e=>(0,G.jsxs)(`li`,{className:`text-xs text-bambu-gray flex items-start gap-1.5`,children:[(0,G.jsx)(Wc,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:A8(t,`notes`,e.code,e.params,e.message)})]},`${e.code}:${JSON.stringify(e.params)}`))})]},e)),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsx)(`p`,{className:`text-xs text-yellow-700 dark:text-yellow-200`,children:t(`backup.restoreFromGit.reloadHint`)})})]}):(0,G.jsxs)(`div`,{className:`p-4 space-y-4 max-h-[400px] overflow-y-auto ${S?`opacity-50 pointer-events-none`:``}`,children:[x.isError&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:x.error?.message||t(`backup.restoreFromGit.failed`)})}),x.data&&!x.data.success&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:x.data.message})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`restore-commit`,className:`block text-sm font-medium text-white mb-1`,children:t(`backup.restoreFromGit.commitLabel`)}),(0,G.jsxs)(`select`,{id:`restore-commit`,value:r,onChange:e=>{i(e.target.value),x.reset()},disabled:S||p.isLoading,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:N8,children:t(`backup.restoreFromGit.latestCommit`)}),T.map(e=>(0,G.jsx)(`option`,{value:e.sha,children:E(e.sha,e.message,e.date)},e.sha))]}),k&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-500 dark:text-red-400`,children:k})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-2`,children:t(`backup.restoreFromGit.categoriesLabel`)}),m.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray p-3`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),t(`backup.restoreFromGit.inspecting`)]}):O?(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:O})}):(0,G.jsx)(`div`,{className:`space-y-2`,children:j8.map(e=>{let n=g[e.id],r=!!n?.available,i=!!a[e.id]&&r;return(0,G.jsxs)(`label`,{className:`flex items-center gap-3 p-3 rounded-lg transition-colors ${r?`cursor-pointer`:`cursor-not-allowed opacity-50`} ${i?`bg-bambu-green/10 border border-bambu-green/30`:`bg-bambu-dark hover:bg-bambu-dark-tertiary border border-transparent`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i,disabled:!r||S,onChange:()=>o(t=>({...t,[e.id]:!t[e.id]})),className:`w-4 h-4 rounded border-bambu-gray bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsx)(`div`,{className:i?`text-bambu-green`:`text-bambu-gray`,children:e.icon}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`text-white text-sm font-medium`,children:[t(e.labelKey),r&&n?.itemCount?(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.itemCount`,{count:n.itemCount})}):null]}),n?.detail&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:n.detail}),e.id===`kprofiles`&&i&&b&&(0,G.jsx)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-200`,children:t(`backup.restoreFromGit.kprofilesOverwriteCaveat`)})]})]},e.id)})})]}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:t(`backup.restoreFromGit.overwriteLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(s?`backup.restoreFromGit.overwriteOn`:`backup.restoreFromGit.overwriteOff`)})]}),(0,G.jsx)(pH,{checked:s,onChange:c,disabled:S})]})})]}),(0,G.jsx)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary`,children:d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:w,children:t(`common.close`)}),(0,G.jsx)(Q,{onClick:()=>window.location.reload(),className:`bg-bambu-green hover:bg-bambu-green-dark`,children:t(`backup.reloadNow`)})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:t(`backup.restoreFromGit.selectedCount`,{count:v})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:w,disabled:S,children:t(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>u(!0),disabled:v===0||S,className:`bg-bambu-green hover:bg-bambu-green-dark disabled:opacity-50 disabled:cursor-not-allowed min-w-[100px]`,children:S?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),t(`backup.restoreFromGit.restoring`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4 mr-2`}),t(`backup.restore`)]})})]})]})})]})})}),l&&(0,G.jsx)(of,{variant:`danger`,overlayZIndex:`z-[110]`,title:t(`backup.restoreFromGit.confirmTitle`),message:s?t(`backup.restoreFromGit.confirmMessageOverwrite`):b?`${t(`backup.restoreFromGit.confirmMessage`)} ${t(`backup.restoreFromGit.kprofilesOverwriteCaveat`)}`:t(`backup.restoreFromGit.confirmMessage`),confirmText:t(`backup.restore`),isLoading:S,loadingText:t(`backup.restoreFromGit.restoring`),onConfirm:()=>x.mutate(),onCancel:()=>u(!1)})]})}function P8(e){if(!e)return`-`;let t=rp(e);return t?t.toLocaleString():`-`}function F8({status:e}){if(!e)return null;let t={success:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,failed:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,skipped:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,running:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`},n={success:(0,G.jsx)(xs,{className:`w-3 h-3`}),failed:(0,G.jsx)(Ds,{className:`w-3 h-3`}),skipped:(0,G.jsx)(du,{className:`w-3 h-3`}),running:(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`})};return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-medium ${t[e]||`bg-gray-500/20 text-gray-400`}`,children:[n[e],e.charAt(0).toUpperCase()+e.slice(1)]})}var CGe={github:`backup.repoUrlPlaceholderGitHub`,gitea:`backup.repoUrlPlaceholderGitea`,forgejo:`backup.repoUrlPlaceholderForgejo`,gitlab:`backup.repoUrlPlaceholderGitLab`},wGe={github:`ghp_xxxxxxxxxxxx`,gitea:`your_access_token`,forgejo:`your_access_token`,gitlab:`glpat-xxxxxxxxxxxx`},TGe={github:`backup.tokenHintGitHub`,gitea:`backup.tokenHintGitea`,forgejo:`backup.tokenHintForgejo`,gitlab:`backup.tokenHintGitLab`};function I8(e){return JSON.stringify(e)}function EGe(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))e[r]!==t[r]&&(n[r]=e[r]);return n}function DGe(){let e=co(),{showToast:t}=qd(),{t:n}=U(),{hasPermission:r}=Nd(),i=r(`github:restore`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`main`),[d,f]=(0,y.useState)(`github`),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(`daily`),[_,v]=(0,y.useState)(!0),[b,x]=(0,y.useState)(!0),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!0),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(``),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(null),ne=(0,y.useRef)(null),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(null),[se,H]=(0,y.useState)(null),[ce,le]=(0,y.useState)(``),{data:ue,refetch:de}=K({queryKey:[`local-backup-status`],queryFn:Z.getLocalBackupStatus,refetchInterval:e=>e.state.data?.is_running?1e3:1e4}),{data:fe,refetch:pe}=K({queryKey:[`local-backup-files`],queryFn:Z.getLocalBackups,refetchInterval:3e4}),{data:me,refetch:he}=K({queryKey:[`local-backup-path-check`],queryFn:Z.checkLocalBackupPath,enabled:ue?.enabled===!0,refetchOnWindowFocus:!1});(0,y.useEffect)(()=>{ue?.path!==void 0&&le(ue.path)},[ue?.path]);let ge=q({mutationFn:Z.triggerLocalBackup,onSuccess:e=>{e.success?t(n(`backup.scheduledBackupComplete`)):t(e.message,`error`),de(),pe(),he()},onError:()=>t(n(`backup.scheduledBackupFailed`),`error`)}),_e=q({mutationFn:e=>Z.deleteLocalBackup(e),onSuccess:()=>{pe(),oe(null)}}),ve=q({mutationFn:async e=>(H(null),F(!0),te(null),L(n(`backup.restoring`)),Z.restoreLocalBackup(e)),onSuccess:e=>{F(!1),L(``),e.success?(te({success:!0,message:e.message}),t(n(`backup.backupRestoredRestart`),`success`)):(te({success:!1,message:e.message}),t(e.message,`error`))},onError:e=>{F(!1),L(``);let r=e instanceof Error?e.message:n(`backup.failedToRestore`);te({success:!1,message:r}),t(r,`error`)}});(0,y.useEffect)(()=>{if(M||P){let e=e=>(e.preventDefault(),e.returnValue=`A backup operation is in progress. Are you sure you want to leave?`,e.returnValue);return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)}},[M,P]);let[ye,be]=(0,y.useState)(!1),[xe,Se]=(0,y.useState)(null),[Ce,we]=(0,y.useState)(null),Te=(0,y.useRef)(null),Ee=(0,y.useRef)(null),De=(0,y.useRef)(null),Oe=(0,y.useRef)(null),ke=(0,y.useRef)(``),[Ae,je]=(0,y.useState)(!1),Me=(0,y.useMemo)(()=>({repository_url:a,branch:l,provider:d,allow_insecure_http:O,schedule_enabled:p,schedule_type:h,backup_kprofiles:_,backup_cloud_profiles:b,backup_settings:S,backup_spools:w,backup_archives:E,enabled:A}),[a,l,d,O,p,h,_,b,S,w,E,A]),Ne=(0,y.useMemo)(()=>I8(Me),[Me]),{data:Pe,isLoading:Fe}=K({queryKey:[`github-backup-config`],queryFn:Z.getGitHubBackupConfig}),{data:Ie}=K({queryKey:[`github-backup-status`],queryFn:Z.getGitHubBackupStatus,refetchInterval:e=>e.state.data?.is_running?500:1e4}),{data:Le}=K({queryKey:[`github-backup-logs`],queryFn:()=>Z.getGitHubBackupLogs(20)}),{data:Re}=K({queryKey:[`cloud-status`],queryFn:Z.getCloudStatus}),{data:ze}=K({queryKey:[`github-backup-cloud-accounts`],queryFn:Z.getGitHubBackupCloudAccounts,staleTime:6e4}),Be=(ze?.bambu??0)+(ze?.orca??0),Ve=ze?Be>0:!!Re?.is_authenticated,{data:He}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),Ue=Co({queries:(He??[]).map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),staleTime:1e4,refetchInterval:3e4}))}),We=(He??[]).map((e,t)=>({printer:e,connected:Ue[t]?.data?.connected??!1})),Ge=We.length,Ke=We.filter(e=>e.connected).length,qe=Ge>0&&Ke===0,Je=Ke>0&&Ke(De.current&&clearTimeout(De.current),Pe?(je(!1),Oe.current={repository_url:Pe.repository_url,branch:Pe.branch,provider:Pe.provider??`github`,allow_insecure_http:Pe.allow_insecure_http??!1,schedule_enabled:Pe.schedule_enabled,schedule_type:Pe.schedule_type,backup_kprofiles:Pe.backup_kprofiles,backup_cloud_profiles:Pe.backup_cloud_profiles,backup_settings:Pe.backup_settings,backup_spools:Pe.backup_spools,backup_archives:Pe.backup_archives,enabled:Pe.enabled},o(Pe.repository_url),u(Pe.branch),f(Pe.provider??`github`),m(Pe.schedule_enabled),g(Pe.schedule_type),v(Pe.backup_kprofiles),x(Pe.backup_cloud_profiles),C(Pe.backup_settings),T(Pe.backup_spools),D(Pe.backup_archives),k(Pe.allow_insecure_http??!1),j(Pe.enabled),c(``),De.current=setTimeout(()=>{je(!0)},100)):(je(!1),Oe.current=null,c(``)),()=>{De.current&&clearTimeout(De.current)}),[Pe]);let Ye=(0,y.useCallback)(async(r=!1)=>{if(Pe)try{r&&s?(await Z.saveGitHubBackupConfig({...Me,access_token:s}),c(``),we(null),t(n(`backup.tokenUpdated`)),ke.current=``):(await Z.updateGitHubBackupConfig(EGe(Me,Oe.current)),we(null),t(n(`backup.settingsSaved`))),Oe.current=Me,e.invalidateQueries({queryKey:[`github-backup-config`]}),e.invalidateQueries({queryKey:[`github-backup-status`]})}catch(e){we(e.message)}},[Pe,s,Me,e,t,n]),Xe=(0,y.useRef)(Ye);(0,y.useEffect)(()=>{Xe.current=Ye},[Ye]),(0,y.useEffect)(()=>{if(!(!Ae||!Pe)&&!(Oe.current&&Ne===I8(Oe.current)))return Te.current&&clearTimeout(Te.current),Te.current=setTimeout(()=>{Ye(!1)},500),()=>{Te.current&&clearTimeout(Te.current)}},[Ae,Pe,Ne,Ye]),(0,y.useEffect)(()=>{if(!(!Ae||!Pe||!s)&&s!==ke.current)return ke.current=s,Ee.current&&clearTimeout(Ee.current),Ee.current=setTimeout(()=>{Xe.current(!0)},1e3),()=>{Ee.current&&clearTimeout(Ee.current)}},[Ae,s,Pe]);let Ze=q({mutationFn:e=>Z.saveGitHubBackupConfig(e),onMutate:()=>{we(null)},onSuccess:()=>{e.invalidateQueries({queryKey:[`github-backup-config`]}),e.invalidateQueries({queryKey:[`github-backup-status`]}),t(n(`backup.githubBackupEnabled`)),c(``),je(!0)},onError:e=>{we(e.message)}}),Qe=q({mutationFn:Z.triggerGitHubBackup,onSuccess:r=>{e.invalidateQueries({queryKey:[`github-backup-status`]}),e.invalidateQueries({queryKey:[`github-backup-logs`]}),r.success?r.files_changed>0?t(n(`backup.backupCompleteFiles`,{count:r.files_changed})):t(n(`backup.backupSkippedNoChanges`)):t(n(`backup.backupFailed2`,{message:r.message}),`error`)},onError:e=>{t(n(`backup.backupFailed2`,{message:e.message}),`error`)}}),$e=q({mutationFn:()=>Z.clearGitHubBackupLogs(0),onSuccess:r=>{e.invalidateQueries({queryKey:[`github-backup-logs`]}),t(n(`backup.clearedLogs`,{count:r.deleted}))},onError:e=>{t(n(`backup.failedToClearLogs`,{message:e.message}),`error`)}}),et=async()=>{be(!0),Se(null);try{let e;if(s){if(!a){t(n(`backup.enterRepoUrl`),`error`),be(!1);return}e=await Z.testGitHubConnection(a,s,d)}else if(Pe?.has_token)e=await Z.testGitHubStoredConnection();else{t(n(`backup.enterRepoAndToken`),`error`),be(!1);return}Se({success:e.success,message:e.message,isPrivate:e.is_private})}catch(e){Se({success:!1,message:e.message,isPrivate:null})}finally{be(!1)}};return Fe?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-backup-github`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(kc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.githubBackup`)})]}),Pe&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`backup.enabled`)}),(0,G.jsx)(pH,{checked:A,onChange:j})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.githubDescription`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`git-provider-select`,className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.provider`)}),(0,G.jsxs)(`select`,{id:`git-provider-select`,value:d,onChange:e=>{f(e.target.value),Se(null),we(null)},className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`github`,children:n(`backup.providerGitHub`)}),(0,G.jsx)(`option`,{value:`gitlab`,children:n(`backup.providerGitLab`)}),(0,G.jsx)(`option`,{value:`gitea`,children:n(`backup.providerGitea`)}),(0,G.jsx)(`option`,{value:`forgejo`,children:n(`backup.providerForgejo`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.repositoryUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>{o(e.target.value),Se(null),we(null)},placeholder:n(CGe[d]),className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>{k(e.target.checked),Se(null)},className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`backup.allowInsecureHttp`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.allowInsecureHttpHint`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`backup.personalAccessToken`),` `,Pe?.has_token&&(0,G.jsx)(`span`,{className:`text-green-700 dark:text-green-400`,children:n(`backup.tokenSaved`)})]}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>{c(e.target.value),Se(null),we(null)},placeholder:Pe?.has_token?n(`backup.enterNewToken`):wGe[d],className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(TGe[d])})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.branch`)}),(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`main`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.autoBackup`)}),(0,G.jsxs)(`select`,{value:p?h:`disabled`,onChange:e=>{e.target.value===`disabled`?m(!1):(m(!0),g(e.target.value))},className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`disabled`,children:n(`backup.manualOnly`)}),(0,G.jsx)(`option`,{value:`hourly`,children:n(`backup.hourly`)}),(0,G.jsx)(`option`,{value:`daily`,children:n(`backup.daily`)}),(0,G.jsx)(`option`,{value:`weekly`,children:n(`backup.weekly`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:n(`backup.includeInBackup`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-start gap-2 ${qe?`cursor-not-allowed opacity-60`:`cursor-pointer`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`,disabled:qe}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm ${qe?`text-bambu-gray`:`text-white`}`,children:n(`backup.kProfiles`)}),qe&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.noPrintersConnected`)]}),Je&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.printersConnected`,{connected:Ke,total:Ge})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.kProfilesDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 ${Ve?`cursor-pointer`:`cursor-not-allowed opacity-60`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>x(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`,disabled:!Ve}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm ${Ve?`text-white`:`text-bambu-gray`}`,children:n(`backup.cloudProfiles`)}),!Ve&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.cloudLoginRequiredShort`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.cloudProfilesDescription`)}),Be>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:n(`backup.cloudProfilesAccounts`,{bambu:ze?.bambu??0,orca:ze?.orca??0})})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.appSettings`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.appSettingsDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>T(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.spoolInventory`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.spoolInventoryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.printArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.printArchivesDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4 space-y-3`,children:[Ie?.configured&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:Ie.last_backup_at?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{children:[n(`backup.lastBackupAt`),` `,up(Ie.last_backup_at,`system`,n)]}),(0,G.jsx)(F8,{status:Ie.last_backup_status})]}):(0,G.jsx)(`span`,{children:n(`backup.noBackupsYet`)})}),Ie.next_scheduled_run&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[(0,G.jsx)(js,{className:`w-3 h-3 inline mr-1`}),n(`backup.next`),` `,up(Ie.next_scheduled_run,`system`,n)]})]}),Ce&&(0,G.jsxs)(`div`,{className:`text-sm text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded p-3 flex items-start gap-2`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`div`,{className:`flex-1 leading-relaxed whitespace-pre-wrap break-words`,children:Ce}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>we(null),className:`text-bambu-gray hover:text-white shrink-0`,"aria-label":n(`common.dismiss`,`Dismiss`),children:(0,G.jsx)(Ds,{className:`w-4 h-4`})})]}),xe&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`text-sm flex items-center gap-1 ${xe.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[xe.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Ds,{className:`w-4 h-4`}),xe.message]}),xe.success&&xe.isPrivate===!0&&(0,G.jsxs)(`div`,{className:`text-xs flex items-center gap-1 text-green-700 dark:text-green-400`,children:[(0,G.jsx)(xs,{className:`w-3.5 h-3.5`}),n(`backup.repoIsPrivate`,`Repository is private — safe to back up to.`)]}),xe.success&&xe.isPrivate===!1&&(0,G.jsxs)(`div`,{className:`text-xs text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded p-2 flex items-start gap-1.5`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`backup.repoIsPublicWarning`,`Repository is PUBLIC. Bambuddy backups include MQTT credentials, Home Assistant tokens, Prometheus tokens, your Bambu Cloud email, and printer access codes via K-profiles. Saving is blocked until you make the repository private in your provider's settings.`)})]}),xe.success&&xe.isPrivate===null&&(0,G.jsxs)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded p-2 flex items-start gap-1.5`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`backup.repoVisibilityUnknown`,`Could not determine repository visibility. Bambuddy refuses to back up to anything not confirmed private; saving will be blocked.`)})]})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:Ie?.configured?(0,G.jsx)(G.Fragment,{children:Qe.isPending||Ie.is_running?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-green`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{className:`text-sm`,children:Ie.progress||n(`backup.startingBackup`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>Qe.mutate(),disabled:!Pe?.enabled,children:[(0,G.jsx)(Nl,{className:`w-4 h-4`}),n(`backup.backupNow`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:et,disabled:ye,children:[ye?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),n(`backup.test`)]}),i&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ie(!0),disabled:Ie.restore_running,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),n(`backup.restoreFromGit.button`)]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>{if(!a){t(n(`backup.repoRequired`),`error`);return}if(!s){t(n(`backup.tokenRequired`),`error`);return}Ze.mutate({repository_url:a,access_token:s,branch:l,provider:d,allow_insecure_http:O,schedule_enabled:p,schedule_type:h,backup_kprofiles:_,backup_cloud_profiles:b,backup_settings:S,backup_spools:w,backup_archives:E,enabled:A})},disabled:Ze.isPending||!a||!s,children:[Ze.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(xs,{className:`w-4 h-4`}),n(`backup.enableBackup`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:et,disabled:ye||!a||!s,children:[ye?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),n(`backup.testConnection`)]})]})})]})]})]}),Le&&Le.length>0&&(0,G.jsxs)(zd,{id:`card-backup-history`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.history`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>$e.mutate(),disabled:$e.isPending,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),n(`backup.clear`)]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.date`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.trigger`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.status`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.commit`)})]})}),(0,G.jsx)(`tbody`,{children:Le.slice(0,10).map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-secondary`,children:[(0,G.jsx)(`td`,{className:`py-2 px-2 text-white`,children:P8(e.started_at)}),(0,G.jsx)(`td`,{className:`py-2 px-2 text-bambu-gray`,children:n(`backup.triggers.${e.trigger}`,{defaultValue:e.trigger})}),(0,G.jsx)(`td`,{className:`py-2 px-2`,children:(0,G.jsx)(F8,{status:e.status})}),(0,G.jsx)(`td`,{className:`py-2 px-2`,children:e.commit_sha?(0,G.jsxs)(`a`,{href:`${Pe?.repository_url}/commit/${e.commit_sha}`,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline inline-flex items-center gap-1`,children:[e.commit_sha.substring(0,7),(0,G.jsx)(rc,{className:`w-3 h-3`})]}):(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`-`})})]},e.id))})]})})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-backup-local`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.localBackup`)})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.localBackupDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:n(`backup.downloadBackupLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.completeBackupZip`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:M||P,onClick:async()=>{N(!0),L(n(`backup.preparingBackup`));try{L(n(`backup.creatingArchive`));let{blob:e,filename:r}=await Z.exportBackup();L(n(`backup.downloadingFile`));let i=URL.createObjectURL(e),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),t(n(`backup.backupDownloaded`))}catch(e){t(n(`backup.failedToCreateBackup`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}finally{N(!1),L(``)}},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),n(`backup.download`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:n(`backup.restoreBackup`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.restoreDescription`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.restoreNote`)})]}),(0,G.jsx)(`input`,{ref:ne,type:`file`,accept:`.zip`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&(V(t),z(!0)),e.target.value=``}}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:P||M,onClick:()=>ne.current?.click(),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`backup.restore`)]})]}),ee&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg ${ee.success?`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30`:`bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`}`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[ee.success?(0,G.jsx)(xs,{className:`w-4 h-4 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}):(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:ee.success?`text-green-800 dark:text-green-200`:`text-red-800 dark:text-red-200`,children:[ee.message,ee.success&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(Q,{size:`sm`,onClick:()=>window.location.reload(),children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),n(`backup.reloadNow`)]})})]})]})}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`text-yellow-800 dark:text-yellow-200`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:n(`backup.restoreReplacesAll`)}),` `,(0,G.jsx)(`span`,{className:`text-yellow-800/80 dark:text-yellow-200/70`,children:n(`backup.restoreReplacesAllDetail`)})]})]})})]})]}),(0,G.jsxs)(zd,{id:`card-backup-scheduled`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(gc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.scheduledBackup`)})]}),(0,G.jsx)(pH,{checked:ue?.enabled??!1,onChange:async r=>{try{await Z.updateSettings({local_backup_enabled:r}),e.invalidateQueries({queryKey:[`settings`]}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.scheduledBackupDescription`)}),ue?.enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.frequency`)}),(0,G.jsxs)(`select`,{value:ue?.schedule??`daily`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{try{await Z.updateSettings({local_backup_schedule:e.target.value}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()},children:[(0,G.jsx)(`option`,{value:`hourly`,children:n(`backup.hourly`)}),(0,G.jsx)(`option`,{value:`daily`,children:n(`backup.daily`)}),(0,G.jsx)(`option`,{value:`weekly`,children:n(`backup.weekly`)})]})]}),(ue?.schedule??`daily`)!==`hourly`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.backupTime`)}),(0,G.jsx)(`input`,{type:`time`,value:ue?.time??`03:00`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{try{await Z.updateSettings({local_backup_time:e.target.value}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.localTimeHint`,{tz:ue?.timezone||`UTC`})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.retention`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:100,value:ue?.retention??5,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{let r=Math.max(1,Math.min(100,parseInt(e.target.value)||5));try{await Z.updateSettings({local_backup_retention:r}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.retentionDescription`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.outputPath`)}),(0,G.jsx)(`input`,{type:`text`,value:ce,onChange:e=>le(e.target.value),className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onBlur:async()=>{try{await Z.updateSettings({local_backup_path:ce}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de(),pe(),he()},onKeyDown:e=>{e.key===`Enter`&&e.target.blur()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:ce?n(`backup.outputPathDescription`):(0,G.jsxs)(G.Fragment,{children:[n(`backup.defaultPathLabel`),` `,(0,G.jsx)(`code`,{className:`text-bambu-gray`,children:ue?.default_path||`...`})]})}),me&&!me.writable&&(0,G.jsx)(`div`,{className:`mt-2 p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0 text-red-800 dark:text-red-200`,children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`backup.pathCheck.title`)}),(0,G.jsx)(`p`,{className:`mt-1 text-red-800/80 dark:text-red-200/80`,children:n(`backup.pathCheck.${me.code}`,{path:me.path,defaultValue:me.message})}),me.remedy&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`mt-2 font-medium`,children:n(`backup.pathCheck.howToFix`)}),(0,G.jsx)(`pre`,{className:`mt-1 p-2 rounded bg-black/10 dark:bg-black/40 text-xs whitespace-pre-wrap break-words`,children:me.remedy})]}),me.detail&&(0,G.jsx)(`p`,{className:`mt-2 text-xs text-red-800/60 dark:text-red-200/60 break-words`,children:me.detail})]})]})}),me?.writable&&me.warning===`container_ephemeral`&&(0,G.jsx)(`div`,{className:`mt-2 p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0 text-yellow-800 dark:text-yellow-200`,children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`backup.pathCheck.ephemeralTitle`)}),(0,G.jsx)(`p`,{className:`mt-1 text-yellow-800/80 dark:text-yellow-200/80`,children:n(`backup.pathCheck.container_ephemeral`,{path:me.path})}),me.remedy&&(0,G.jsx)(`pre`,{className:`mt-1 p-2 rounded bg-black/10 dark:bg-black/40 text-xs whitespace-pre-wrap break-words`,children:me.remedy})]})]})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`text-sm`,children:[ue?.last_backup_at&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsxs)(`span`,{children:[n(`backup.lastBackup`),`:`]}),(0,G.jsx)(F8,{status:ue.last_status}),(0,G.jsx)(`span`,{children:up(ue.last_backup_at)})]}),ue?.next_run&&(0,G.jsxs)(`div`,{className:`text-bambu-gray mt-1`,children:[(0,G.jsxs)(`span`,{children:[n(`backup.nextBackup`),`: `]}),(0,G.jsx)(`span`,{children:P8(ue.next_run)})]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:ue?.is_running||ge.isPending,onClick:()=>ge.mutate(),children:[ue?.is_running||ge.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Nl,{className:`w-4 h-4`}),ue?.is_running?n(`backup.backupRunning`):n(`backup.runNow`)]})]}),fe&&fe.length>0&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-2`,children:n(`backup.backupFiles`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:fe.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1.5 px-2 rounded hover:bg-bambu-dark-tertiary/50 text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-white truncate block`,children:e.filename}),(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[(e.size/1024/1024).toFixed(1),` MB · `,P8(e.created_at)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-bambu-green p-1`,title:n(`backup.download`),onClick:async()=>{try{let{blob:t,filename:n}=await Z.downloadLocalBackup(e.filename),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}catch{t(n(`backup.scheduledBackupFailed`),`error`)}},children:(0,G.jsx)(Xs,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-yellow-600 dark:hover:text-yellow-400 p-1`,title:n(`backup.restore`),onClick:()=>H(e.filename),children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 p-1`,onClick:()=>oe(e.filename),title:n(`backup.deleteBackup`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})]},e.filename))})]}),fe&&fe.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-3 border-t border-bambu-dark-tertiary`,children:n(`backup.noScheduledBackups`)})]})]})]})]}),re&&(0,G.jsx)(SGe,{onClose:()=>ie(!1)}),ae&&(0,G.jsx)(of,{title:n(`backup.deleteBackup`),message:n(`backup.deleteBackupConfirm`),confirmText:n(`backup.deleteBackup`),variant:`danger`,onConfirm:()=>_e.mutate(ae),onCancel:()=>oe(null)}),se&&(0,G.jsx)(of,{title:n(`backup.restoreConfirmTitle`),message:n(`backup.restoreConfirmMessage`,{filename:se}),confirmText:n(`backup.restoreConfirmButton`),variant:`danger`,onConfirm:()=>ve.mutate(se),onCancel:()=>H(null)}),R&&B&&(0,G.jsx)(of,{title:n(`backup.restoreConfirmTitle`),message:n(`backup.restoreConfirmMessage`,{filename:B.name}),confirmText:n(`backup.restoreConfirmButton`),variant:`danger`,onConfirm:async()=>{z(!1),F(!0),te(null);try{L(n(`backup.uploadingFile`));let e=await Z.importBackup(B);te(e),e.success?t(n(`backup.backupRestoredRestart`),`success`):t(e.message,`error`)}catch(e){let r=e instanceof Error?e.message:n(`backup.failedToRestore`);te({success:!1,message:r}),t(r,`error`)}finally{F(!1),L(``),V(null)}},onCancel:()=>{z(!1),V(null)}}),(M||P)&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-[100]`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-8 max-w-md w-full mx-4 text-center`,children:[(0,G.jsx)(`div`,{className:`flex justify-center mb-4`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 border-4 border-bambu-dark-tertiary rounded-full`}),(0,G.jsx)(`div`,{className:`w-16 h-16 border-4 border-bambu-green border-t-transparent rounded-full absolute inset-0 animate-spin`})]})}),(0,G.jsx)(`h3`,{className:`text-xl font-semibold text-white mb-2`,children:n(M?`backup.creatingBackup`:`backup.restoringBackup`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:I||n(M?`backup.preparing`:`backup.processing`)}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-yellow-800 dark:text-yellow-200 text-left`,children:n(`backup.doNotClosePage`)})]})})]})})]})}function OGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`medium`),[d,f]=(0,y.useState)(`notify`),[p,m]=(0,y.useState)(10),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),{data:S}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:C,refetch:w}=K({queryKey:[`obico-status`],queryFn:Z.getObicoStatus,refetchInterval:1e4}),{data:T}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{if(S){i(S.obico_enabled??!1),o(S.obico_ml_url??``),c(S.obico_ml_token??``),u(S.obico_sensitivity??`medium`),f(S.obico_action??`notify`),m(S.obico_poll_interval??10);try{let e=S.obico_enabled_printers?JSON.parse(S.obico_enabled_printers):null;g(Array.isArray(e)?e:null)}catch{g(null)}x(!0)}},[S]);let E=q({mutationFn:()=>Z.updateSettings({obico_enabled:r,obico_ml_url:a,obico_ml_token:s,obico_sensitivity:l,obico_action:d,obico_poll_interval:p,obico_enabled_printers:h===null?``:JSON.stringify(h)}),onSuccess:()=>{t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`obico-status`]}),t.invalidateQueries({queryKey:[`obico-printer-status`]}),n(e(`settings.toast.settingsSaved`))}}),D=(0,y.useMemo)(()=>!b||!S?!1:S.obico_enabled!==r||S.obico_ml_url!==a||(S.obico_ml_token??``)!==s||S.obico_sensitivity!==l||S.obico_action!==d||S.obico_poll_interval!==p||S.obico_enabled_printers!==(h===null?``:JSON.stringify(h)),[S,b,r,a,s,l,d,p,h]);(0,y.useEffect)(()=>{if(!D)return;let e=setTimeout(()=>E.mutate(),500);return()=>clearTimeout(e)},[D,r,a,s,l,d,p,h]);let O=async()=>{v(null);try{D&&await E.mutateAsync();let t=await Z.testObicoConnection(a,s);t.ok?v({ok:!0,message:t.auth_ok===null?e(`failureDetection.testSuccessTokenUnknown`):e(`failureDetection.testSuccess`)}):v({ok:!1,message:t.error||`HTTP ${t.status_code??`?`} — ${t.body??e(`failureDetection.testFailed`)}`})}catch(e){v({ok:!1,message:e instanceof Error?e.message:String(e)})}},k=(e,t)=>{if(h===null){let n=T?.map(e=>e.id)??[];g(t?n:n.filter(t=>t!==e));return}g(t?[...h,e]:h.filter(t=>t!==e))};return(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-fd-ml`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.title`)})]}),(0,G.jsx)(pH,{checked:r,onChange:i})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:e(`failureDetection.description`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.mlUrl`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:`http://192.168.1.10:3333`,className:`flex-1 bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,disabled:!r}),(0,G.jsx)(Q,{onClick:O,disabled:!a||E.isPending,variant:`secondary`,children:e(`failureDetection.test`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.mlUrlHint`)}),(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 mt-3`,children:e(`failureDetection.mlToken`)}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>c(e.target.value),autoComplete:`off`,placeholder:e(`failureDetection.mlTokenPlaceholder`),className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,disabled:!r}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.mlTokenHint`)}),_&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 mt-2 text-sm ${_.ok?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[_.ok?(0,G.jsx)(fs,{className:`w-4 h-4 mt-0.5`}):(0,G.jsx)(nd,{className:`w-4 h-4 mt-0.5`}),(0,G.jsx)(`span`,{children:_.message})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.sensitivity`)}),(0,G.jsxs)(`select`,{value:l,onChange:e=>u(e.target.value),disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:`low`,children:e(`failureDetection.sensitivityLow`)}),(0,G.jsx)(`option`,{value:`medium`,children:e(`failureDetection.sensitivityMedium`)}),(0,G.jsx)(`option`,{value:`high`,children:e(`failureDetection.sensitivityHigh`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.sensitivityHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.action`)}),(0,G.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:`notify`,children:e(`failureDetection.actionNotify`)}),(0,G.jsx)(`option`,{value:`pause`,children:e(`failureDetection.actionPause`)}),(0,G.jsx)(`option`,{value:`pause_and_off`,children:e(`failureDetection.actionPauseOff`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.pollInterval`)}),(0,G.jsx)(`input`,{type:`number`,value:p,onChange:e=>m(Math.max(5,Math.min(120,Number(e.target.value)||10))),min:5,max:120,disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.pollIntervalHint`)})]}),C&&!C.external_url_configured&&r&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 bg-amber-50 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-700 rounded text-sm text-amber-800 dark:text-amber-200`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e(`failureDetection.externalUrlMissing`)}),(0,G.jsx)(`div`,{className:`text-xs mt-1`,children:e(`failureDetection.externalUrlHint`)})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-fd-perprinter`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.perPrinterTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`failureDetection.perPrinterHint`)})]}),(0,G.jsxs)(Vd,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h===null,onChange:e=>g(e.target.checked?null:T?.map(e=>e.id)??[]),disabled:!r}),(0,G.jsx)(`span`,{className:`text-white`,children:e(`failureDetection.monitorAll`)})]}),h!==null&&T&&(0,G.jsx)(`div`,{className:`pl-5 space-y-1 border-l border-gray-700`,children:T.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h.includes(e.id),onChange:t=>k(e.id,t.target.checked),disabled:!r}),(0,G.jsx)(`span`,{className:`text-white`,children:e.name})]},e.id))})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-fd-status`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.statusTitle`)})}),(0,G.jsx)(Vd,{children:C?(0,G.jsxs)(`div`,{className:`space-y-3 text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`failureDetection.serviceRunning`)}),(0,G.jsx)(`span`,{className:C.is_running?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`,children:C.is_running?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`failureDetection.thresholds`)}),(0,G.jsxs)(`span`,{className:`text-white font-mono`,children:[C.thresholds.low.toFixed(2),` / `,C.thresholds.high.toFixed(2)]})]}),C.last_error&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`break-words`,children:C.last_error})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray mb-1`,children:e(`failureDetection.activePrinters`)}),Object.keys(C.per_printer).length===0?(0,G.jsx)(`div`,{className:`text-bambu-gray italic text-xs`,children:e(`failureDetection.noActivePrints`)}):(0,G.jsx)(`div`,{className:`space-y-1`,children:Object.entries(C.per_printer).map(([e,t])=>{let n=T?.find(t=>String(t.id)===e),r=t.class===`failure`?`text-red-700 dark:text-red-400`:t.class===`warning`?`text-amber-700 dark:text-amber-400`:`text-green-700 dark:text-green-400`;return(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:n?.name??`Printer ${e}`}),(0,G.jsxs)(`span`,{className:`font-mono ${r}`,children:[t.class,` (`,t.score.toFixed(3),`, `,t.frame_count,`f)`]})]},e)})})]})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:e(`common.loading`)})]})})]}),(0,G.jsxs)(zd,{id:`card-fd-history`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.historyTitle`)}),(0,G.jsx)(`button`,{onClick:()=>w(),className:`text-xs text-bambu-gray hover:text-white`,children:e(`common.refresh`)})]})}),(0,G.jsx)(Vd,{children:!C||C.history.length===0?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:e(`failureDetection.noHistory`)})]}):(0,G.jsx)(`div`,{className:`space-y-1 max-h-96 overflow-y-auto text-xs font-mono`,children:C.history.map((e,t)=>{let n=T?.find(t=>t.id===e.printer_id),r=e.class===`failure`?`text-red-700 dark:text-red-400`:e.class===`warning`?`text-amber-700 dark:text-amber-400`:`text-bambu-gray`;return(0,G.jsxs)(`div`,{className:`flex justify-between gap-2 py-1 border-b border-gray-800`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:new Date(e.timestamp).toLocaleTimeString()}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:n?.name??`#${e.printer_id}`}),(0,G.jsxs)(`span`,{className:r,children:[e.class,` `,e.score.toFixed(3)]})]},t)})})})]})]})]})}var kGe={starttls:587,ssl:465,none:25},AGe={587:`starttls`,465:`ssl`,25:`none`};function jGe(){let{t:e}=U(),{showToast:t}=qd(),n=co(),[r,i]=(0,y.useState)({smtp_host:``,smtp_port:587,smtp_username:``,smtp_password:``,smtp_security:`starttls`,smtp_auth_enabled:!0,smtp_from_email:``,smtp_from_name:`BamBuddy`}),[a,o]=(0,y.useState)(``),{data:s,isLoading:c}=K({queryKey:[`smtpSettings`],queryFn:()=>Z.getSMTPSettings()}),{authEnabled:l}=Nd(),{data:u}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()});(0,y.useEffect)(()=>{s&&i({...s,smtp_password:``})},[s]);let d=e=>{i({...r,smtp_security:e,smtp_port:kGe[e]})},f=e=>{let t=AGe[e];i({...r,smtp_port:e,...t?{smtp_security:t}:{}})},p=e=>{i({...r,smtp_auth_enabled:e,...e?{}:{smtp_username:``,smtp_password:``}})},m=q({mutationFn:e=>Z.saveSMTPSettings(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`smtpSettings`]}),n.invalidateQueries({queryKey:[`advancedAuthStatus`]}),t(e(`settings.email.success.settingsSaved`),`success`)},onError:e=>{t(e.message,`error`)}}),h=q({mutationFn:e=>Z.testSMTP(e),onSuccess:e=>{t(e.message,e.success?`success`:`error`)},onError:e=>{t(e.message,`error`)}}),g=q({mutationFn:e=>e?Z.enableAdvancedAuth():Z.disableAdvancedAuth(),onSuccess:e=>{n.invalidateQueries({queryKey:[`advancedAuthStatus`]}),t(e.message,`success`)},onError:e=>{t(e.message,`error`)}}),_=()=>{if(!r.smtp_host||!r.smtp_from_email){t(e(`settings.email.errors.requiredFields`),`error`);return}if(r.smtp_auth_enabled&&!r.smtp_username){t(e(`settings.email.errors.usernameRequired`),`error`);return}m.mutate(r)},v=()=>{if(!a){t(e(`settings.email.errors.enterTestEmail`),`error`);return}h.mutate({test_recipient:a})},b=()=>{if(!l){t(e(`settings.email.errors.enableAuthFirst`),`error`);return}if(!u?.advanced_auth_enabled&&!u?.smtp_configured){t(e(`settings.email.errors.configureSmtpFirst`),`error`);return}g.mutate(!u?.advanced_auth_enabled)};if(c)return(0,G.jsx)(`div`,{className:`flex items-center justify-center p-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});let x=u?.advanced_auth_enabled??!1,S=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,C=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white/40 placeholder-bambu-gray/40 cursor-not-allowed`;return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-email-advanced-auth`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.advancedAuth`)||`Advanced Authentication`})]}),(0,G.jsx)(Q,{onClick:b,disabled:g.isPending,variant:x?`danger`:`primary`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),e(`settings.email.disable`)||`Disable`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),e(`settings.email.enable`)||`Enable`]})})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`space-y-3`,children:x?(0,G.jsx)(`div`,{className:`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.email.advancedAuthEnabled`)||`Advanced Authentication is enabled`}),(0,G.jsxs)(`ul`,{className:`text-sm text-green-700 dark:text-green-300 space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`settings.email.feature1`)||`Passwords are auto-generated and emailed to new users`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature2`)||`Users can login with username or email`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature3`)||`Forgot password feature is available`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature4`)||`Admins can reset user passwords via email`})]})]})]})}):(0,G.jsx)(`div`,{className:`bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.email.advancedAuthDisabled`)||`Advanced Authentication is disabled`}),(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-300`,children:e(`settings.email.advancedAuthDisabledDesc`)||`Enable advanced authentication to activate email-based features for user management.`})]})]})})})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsx)(`div`,{className:`lg:col-span-2`,children:(0,G.jsxs)(zd,{id:`card-smtp-config`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.smtpSettings`)||`SMTP Configuration`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.authentication`)||`Authentication`}),(0,G.jsxs)(`select`,{value:r.smtp_auth_enabled?`true`:`false`,onChange:e=>p(e.target.value===`true`),className:S,children:[(0,G.jsx)(`option`,{value:`true`,children:e(`settings.email.authOptions.enabled`)}),(0,G.jsx)(`option`,{value:`false`,children:e(`settings.email.authOptions.disabled`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 transition-opacity ${r.smtp_auth_enabled?``:`opacity-40 pointer-events-none`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.username`)||`Username`}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_username||``,onChange:e=>i({...r,smtp_username:e.target.value}),placeholder:`your.email@gmail.com`,disabled:!r.smtp_auth_enabled,className:r.smtp_auth_enabled?S:C})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.password`)||`Password`}),(0,G.jsx)(`input`,{type:`password`,value:r.smtp_password||``,onChange:e=>i({...r,smtp_password:e.target.value}),placeholder:s?`••••••••`:`App password`,disabled:!r.smtp_auth_enabled,className:r.smtp_auth_enabled?S:C})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:[e(`settings.email.smtpHost`)||`SMTP Server`,` *`]}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_host,onChange:e=>i({...r,smtp_host:e.target.value}),placeholder:`smtp.gmail.com`,className:S})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.smtpPort`)||`SMTP Port`}),(0,G.jsx)(`input`,{type:`number`,value:r.smtp_port,onChange:e=>f(parseInt(e.target.value)||587),placeholder:`587`,className:S})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.security`)||`Security`}),(0,G.jsxs)(`select`,{value:r.smtp_security,onChange:e=>d(e.target.value),className:S,children:[(0,G.jsx)(`option`,{value:`starttls`,children:e(`settings.email.securityOptions.starttls`)}),(0,G.jsx)(`option`,{value:`ssl`,children:e(`settings.email.securityOptions.ssl`)}),(0,G.jsx)(`option`,{value:`none`,children:e(`settings.email.securityOptions.none`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:[e(`settings.email.fromEmail`)||`From Email`,` *`]}),(0,G.jsx)(`input`,{type:`email`,value:r.smtp_from_email,onChange:e=>i({...r,smtp_from_email:e.target.value}),placeholder:`your@email.com`,className:S})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.fromName`)||`From Name`}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_from_name,onChange:e=>i({...r,smtp_from_name:e.target.value}),placeholder:`BamBuddy`,className:S})]})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsx)(Q,{onClick:_,disabled:m.isPending,className:`flex-1`,children:m.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.email.saving`)||`Saving...`]}):e(`settings.email.save`)||`Save Settings`})})]})})]})}),(0,G.jsx)(`div`,{children:(0,G.jsxs)(zd,{id:`card-email-test`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.testConnection`)||`Test SMTP Connection`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.testRecipient`)||`Test Recipient Email`}),(0,G.jsx)(`input`,{type:`email`,value:a,onChange:e=>o(e.target.value),placeholder:`test@example.com`,className:S})]}),(0,G.jsx)(Q,{onClick:v,disabled:h.isPending,variant:`secondary`,children:h.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.email.sending`)||`Sending...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)($l,{className:`w-4 h-4`}),e(`settings.email.sendTest`)||`Send Test Email`]})})]})})]})})]})]})}var MGe={starttls:`389`,ldaps:`636`};function NGe(){let{t:e}=U(),{showToast:t}=qd(),n=co(),{authEnabled:r}=Nd(),[i,a]=(0,y.useState)({ldap_server_url:``,ldap_bind_dn:``,ldap_bind_password:``,ldap_search_base:``,ldap_user_filter:`(sAMAccountName={username})`,ldap_security:`starttls`,ldap_group_mapping:``,ldap_auto_provision:!1,ldap_default_group:``}),{data:o,isLoading:s}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),{data:c}=K({queryKey:[`ldapStatus`],queryFn:()=>Z.getLDAPStatus()}),{data:l=[]}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups()});(0,y.useEffect)(()=>{o&&a({ldap_server_url:o.ldap_server_url||``,ldap_bind_dn:o.ldap_bind_dn||``,ldap_bind_password:``,ldap_search_base:o.ldap_search_base||``,ldap_user_filter:o.ldap_user_filter||`(sAMAccountName={username})`,ldap_security:o.ldap_security||`starttls`,ldap_group_mapping:o.ldap_group_mapping||``,ldap_auto_provision:o.ldap_auto_provision??!1,ldap_default_group:o.ldap_default_group||``})},[o]);let u=q({mutationFn:e=>Z.updateSettings(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`settings`]}),n.invalidateQueries({queryKey:[`ldapStatus`]}),t(e(`settings.ldap.settingsSaved`)||`LDAP settings saved`,`success`)},onError:e=>{t(e.message,`error`)}}),d=q({mutationFn:e=>Z.updateSettings({ldap_enabled:e}),onSuccess:()=>{n.invalidateQueries({queryKey:[`settings`]}),n.invalidateQueries({queryKey:[`ldapStatus`]}),t(c?.ldap_enabled?e(`settings.ldap.disabled`)||`LDAP authentication disabled`:e(`settings.ldap.enabled`)||`LDAP authentication enabled`,`success`)},onError:e=>{t(e.message,`error`)}}),f=q({mutationFn:()=>Z.testLDAP(),onSuccess:e=>{t(e.message,e.success?`success`:`error`)},onError:e=>{t(e.message,`error`)}}),p=()=>{if(!i.ldap_server_url){t(e(`settings.ldap.errors.serverRequired`)||`LDAP server URL is required`,`error`);return}if(!i.ldap_search_base){t(e(`settings.ldap.errors.searchBaseRequired`)||`Search base DN is required`,`error`);return}let n={ldap_server_url:i.ldap_server_url,ldap_bind_dn:i.ldap_bind_dn,ldap_search_base:i.ldap_search_base,ldap_user_filter:i.ldap_user_filter,ldap_security:i.ldap_security,ldap_group_mapping:i.ldap_group_mapping,ldap_auto_provision:i.ldap_auto_provision,ldap_default_group:i.ldap_default_group};i.ldap_bind_password&&(n.ldap_bind_password=i.ldap_bind_password),u.mutate(n)},m=()=>{if(!r){t(e(`settings.ldap.errors.enableAuthFirst`)||`Enable authentication first`,`error`);return}if(!c?.ldap_enabled&&!c?.ldap_configured){t(e(`settings.ldap.errors.configureLdapFirst`)||`Save LDAP settings first`,`error`);return}d.mutate(!c?.ldap_enabled)};if(s)return(0,G.jsx)(`div`,{className:`flex items-center justify-center p-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});let h=c?.ldap_enabled??!1,g=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`;return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-ldap-toggle`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.ldap.title`)||`LDAP Authentication`})]}),(0,G.jsx)(Q,{onClick:m,disabled:d.isPending,variant:h?`danger`:`primary`,children:h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),e(`common.disable`)||`Disable`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),e(`common.enable`)||`Enable`]})})]})}),(0,G.jsx)(Vd,{children:h?(0,G.jsx)(`div`,{className:`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.ldap.enabledDesc`)||`LDAP authentication is enabled`}),(0,G.jsxs)(`ul`,{className:`text-sm text-green-700 dark:text-green-300 space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`settings.ldap.feature1`)||`Users can login with LDAP credentials`}),(0,G.jsx)(`li`,{children:e(`settings.ldap.feature2`)||`Local admin account remains as fallback`}),(0,G.jsx)(`li`,{children:e(`settings.ldap.feature3`)||`LDAP groups are mapped to BamBuddy groups on login`})]})]})]})}):(0,G.jsx)(`div`,{className:`bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.ldap.disabledDesc`)||`LDAP authentication is disabled`}),(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-300 mt-1`,children:e(`settings.ldap.disabledHint`)||`Configure and save LDAP settings below, then enable.`})]})]})})})]}),(0,G.jsxs)(zd,{id:`card-ldap-server`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.ldap.serverConfig`)||`LDAP Server Configuration`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{className:`md:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.serverUrl`)||`Server URL`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`ldaps://ldap.example.com:636`,value:i.ldap_server_url,onChange:e=>a({...i,ldap_server_url:e.target.value})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.serverUrlHint`)||`Use ldaps:// for SSL or ldap:// with StartTLS`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.security`)||`Security`}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:[`starttls`,`ldaps`].map(e=>(0,G.jsx)(`button`,{onClick:()=>a({...i,ldap_security:e}),className:`flex-1 px-2 py-2 rounded-lg text-sm font-medium transition-colors ${i.ldap_security===e?`bg-bambu-green text-black`:`bg-bambu-dark-secondary text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:e===`starttls`?`StartTLS`:`LDAPS`},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.securityHint`)||`Default port: ${MGe[i.ldap_security]}`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.bindDn`)||`Bind DN (Service Account)`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`cn=service-account,ou=service,dc=example,dc=com`,value:i.ldap_bind_dn,onChange:e=>a({...i,ldap_bind_dn:e.target.value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.bindPassword`)||`Bind Password`}),(0,G.jsx)(`input`,{type:`password`,className:g,placeholder:o?.ldap_bind_dn?`••••••••`:``,value:i.ldap_bind_password,onChange:e=>a({...i,ldap_bind_password:e.target.value})})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.searchBase`)||`Search Base DN`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`ou=users,dc=example,dc=com`,value:i.ldap_search_base,onChange:e=>a({...i,ldap_search_base:e.target.value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.userFilter`)||`User Search Filter`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`(sAMAccountName={username})`,value:i.ldap_user_filter,onChange:e=>a({...i,ldap_user_filter:e.target.value})})]})]}),(0,G.jsx)($p,{summary:(0,G.jsx)(`span`,{className:`text-sm font-medium text-bambu-gray`,children:e(`settings.ldap.advanced`)||`Advanced`}),className:`border-t border-bambu-dark-tertiary pt-3`,summaryClassName:`py-1`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white`,children:e(`settings.ldap.autoProvision`)||`Auto-provision users`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e(`settings.ldap.autoProvisionHint`)||`Automatically create a BamBuddy account on first LDAP login`})]}),(0,G.jsx)(`button`,{onClick:()=>a({...i,ldap_auto_provision:!i.ldap_auto_provision}),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors flex-shrink-0 ${i.ldap_auto_provision?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${i.ldap_auto_provision?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.defaultGroup`)||`Default group`}),(0,G.jsxs)(`select`,{className:g,value:i.ldap_default_group,onChange:e=>a({...i,ldap_default_group:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.ldap.defaultGroupNone`)||`— None (reject login) —`}),l.map(e=>(0,G.jsx)(`option`,{value:e.name,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.defaultGroupHint`)||`Fallback group assigned when an LDAP user authenticates but is not listed in any mapped group. Leave empty to leave unmapped users without permissions.`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.groupMapping`)||`Group Mapping (JSON)`}),(0,G.jsx)(`textarea`,{className:`${g} font-mono text-sm`,rows:4,placeholder:`{ +`),confirmText:e(`queue.filamentShort.printAnyway`),variant:`warning`,onConfirm:()=>{be.mutate({id:ve.itemId,skipFilamentCheck:!0})},onCancel:()=>ye(null)}),v&&(0,G.jsx)(of,{title:v.type===`cancel`?e(`queue.confirm.cancelTitle`):v.type===`stop`?e(`queue.confirm.stopTitle`):e(`queue.confirm.removeTitle`),message:v.type===`cancel`?e(`queue.confirm.cancelMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisPrint`)}):v.type===`stop`?e(`queue.confirm.stopMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisPrint`)}):e(`queue.confirm.removeMessage`,{name:v.item.archive_name||v.item.library_file_name||e(`queue.confirm.thisItem`)}),confirmText:v.type===`cancel`?e(`queue.confirm.cancelButton`):v.type===`stop`?e(`queue.confirm.stopButton`):e(`common.remove`),variant:`danger`,onConfirm:()=>{v.type===`cancel`?he.mutate(v.item.id):v.type===`stop`?_e.mutate(v.item.id):ge.mutate(v.item.id),b(null)},onCancel:()=>b(null)}),T&&(0,G.jsx)(of,{title:e(`queue.resumeAfterFailure.confirmTitle`),message:e(`queue.resumeAfterFailure.confirmMessage`,{printer:T.printerName,count:T.skippedCount}),confirmText:e(`queue.resumeAfterFailure.button`),variant:`warning`,onConfirm:()=>Te.mutate(T.printerId),onCancel:()=>E(null)}),f&&(0,G.jsx)(of,{title:e(`queue.confirm.clearHistoryTitle`),message:e(`queue.confirm.clearHistoryMessage`,{count:He.length}),confirmText:e(`queue.clearHistory`),variant:`danger`,onConfirm:()=>{Se.mutate(),p(!1)},onCancel:()=>p(!1)}),C&&(0,G.jsx)(HUe,{selectedCount:x.length,printers:pe?.map(e=>({id:e.id,name:e.name,nozzle_count:e.nozzle_count}))||[],onSave:e=>{Object.keys(e).length>0&&Ce.mutate({item_ids:x,...e})},onClose:()=>w(!1),isSaving:Ce.isPending,canControlPrinter:r(`printers:control`),t:e}),re&&(0,G.jsx)(KUe,{itemCount:x.length,isSaving:Ee.isPending,defaultName:(()=>{let t=je.find(e=>x.includes(e.id)),n=(t?.archive_name||t?.library_file_name||``).replace(/\.gcode\.3mf$/i,``).replace(/\.3mf$/i,``);return n?`${n}`:e(`queue.batch.defaultName`)})(),onSave:e=>Ee.mutate({name:e,item_ids:x}),onClose:()=>ie(!1),t:e}),ae!==null&&(0,G.jsx)(of,{title:e(`queue.batch.ungroupConfirmTitle`),message:e(`queue.batch.ungroupConfirmMessage`),confirmText:e(`queue.batch.ungroup`),variant:`warning`,onConfirm:()=>De.mutate(ae),onCancel:()=>oe(null)})]})}function KUe({itemCount:e,defaultName:t,isSaving:n,onSave:r,onClose:i,t:a}){let[o,s]=(0,y.useState)(t);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 w-full max-w-md`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white mb-2 flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-cyan-700 dark:text-cyan-300`}),a(`queue.batch.groupAsBatch`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:a(`queue.batch.groupAsBatchDescription`,{count:e})}),(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:a(`queue.batch.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,autoFocus:!0,value:o,onChange:e=>s(e.target.value),placeholder:a(`queue.batch.namePlaceholder`),maxLength:120,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none mb-5`}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,disabled:n,children:a(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:()=>{let e=o.trim();e&&r(e)},disabled:n||!o.trim(),children:a(n?`common.saving`:`queue.batch.create`)})]})]})})}function qUe({printDates:e,months:t=3}){let n=(0,y.useRef)(null),[r,i]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(e=>{i(e[0]?.contentRect.width||0)});return t.observe(e),()=>t.disconnect()},[]);let{weeks:a,monthLabels:o,printCounts:s}=(0,y.useMemo)(()=>{let n={};e.forEach(e=>{let t=pp(e);t&&(n[t]=(n[t]||0)+1)});let r=new Date,i=new Date(r);i.setMonth(i.getMonth()-t),i.setDate(i.getDate()-i.getDay());let a=[],o=[],s=[],c=-1,l=new Date(i),u=0;for(;l<=r;)l.getDay()===0&&s.length>0&&(a.push(s),s=[],u++),l.getMonth()!==c&&(o.push({month:l.toLocaleDateString(`en-US`,{month:`short`}),weekIndex:u}),c=l.getMonth()),s.push(new Date(l)),l.setDate(l.getDate()+1);return s.length>0&&a.push(s),{weeks:a,monthLabels:o,printCounts:n}},[e,t]),c=Math.max(1,...Object.values(s)),l=e=>{if(e===0)return`bg-bambu-dark`;let t=e/c;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`},u=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],d=a.length,f=r-32-16,p=d>0?Math.floor((f-(d-1)*2)/d):12,m=Math.max(8,Math.min(20,p)),h=m<=10?10:12;return(0,G.jsx)(`div`,{ref:n,className:`w-full flex justify-center`,children:r>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`flex mb-1`,style:{marginLeft:36},children:o.map(({month:e,weekIndex:t},n)=>(0,G.jsx)(`div`,{className:`text-bambu-gray`,style:{fontSize:h,marginLeft:n===0?0:`${(t-(o[n-1]?.weekIndex||0))*(m+2)-24}px`},children:e},n))}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`flex flex-col`,style:{gap:2,marginRight:4,width:32},children:u.map((e,t)=>(0,G.jsx)(`div`,{className:`text-bambu-gray flex items-center`,style:{width:32,height:m,fontSize:h,visibility:t%2==1?`visible`:`hidden`},children:e},e))}),a.map((e,t)=>(0,G.jsx)(`div`,{className:`flex flex-col`,style:{gap:2},children:[0,1,2,3,4,5,6].map(t=>{let n=e.find(e=>e.getDay()===t);if(!n)return(0,G.jsx)(`div`,{style:{width:m,height:m}},t);let r=pp(n),i=s[r]||0,a=r===pp(new Date);return(0,G.jsx)(`div`,{className:`rounded-sm ${l(i)} ${a?`ring-1 ring-white`:``}`,style:{width:m,height:m},title:`${n.toLocaleDateString()}: ${i} print${i===1?``:`s`}`},t)})},t))]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray`,style:{fontSize:h},children:[(0,G.jsx)(`span`,{children:`Less`}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:m,height:m}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:m,height:m}})]}),(0,G.jsx)(`span`,{children:`More`})]})]})})}var l6=[`weight`,`prints`,`time`];function u6({value:e,onChange:t,exclude:n}){let{t:r}=U(),i={weight:r(`stats.filamentByWeight`),prints:r(`stats.filamentByPrints`),time:r(`stats.filamentByTime`)};return(0,G.jsx)(`div`,{className:`flex gap-0.5 bg-bambu-dark rounded-lg p-0.5`,children:(n?l6.filter(e=>!n.includes(e)):l6).map(n=>(0,G.jsx)(`button`,{onClick:()=>t(n),className:`px-2 py-0.5 text-xs rounded-md transition-colors ${e===n?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:i[n]},n))})}function d6(e){if(e>=1e6){let t=e/1e6;return`${t%1==0?t.toFixed(0):t.toFixed(1)}t`}if(e>=1e3){let t=e/1e3;return`${t%1==0?t.toFixed(0):t.toFixed(1)}kg`}return`${Math.round(e)}g`}var f6=[`#00ae42`,`#3b82f6`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`],JUe=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],p6=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`];function YUe({archives:e,currency:t=`$`,dateFrom:n,dateTo:r}){let{t:i}=U(),[a,o]=(0,y.useState)(`weight`),[s,c]=(0,y.useState)(`weight`),l=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}`,i=t.get(r)||{date:r,filament:0,cost:0,energy:0,prints:0};i.filament+=e.filament_used_grams||0,i.cost+=e.cost||0,i.energy+=e.energy_kwh||0,i.prints+=e.quantity||1,t.set(r,i)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>({...e,dateLabel:new Date(e.date).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}))},[e]),u=(0,y.useMemo)(()=>{if(n&&r)return Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1;if(n)return Math.max((Date.now()-new Date(n).getTime())/864e5,0)+1;if(e.length<2)return 0;let t=e.map(e=>new Date(e.completed_at||e.created_at).getTime());return(Math.max(...t)-Math.min(...t))/864e5},[e,n,r]),d=(0,y.useMemo)(()=>{if(u>7)return[];let t=new Map,n=u>1;return e.forEach(e=>{let n=rp(e.completed_at||e.created_at)||new Date,r=n.getHours(),i=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,`0`)}-${String(n.getDate()).padStart(2,`0`)}T${String(r).padStart(2,`0`)}`,a=t.get(i)||{date:i,filament:0,cost:0,energy:0,prints:0};a.filament+=e.filament_used_grams||0,a.cost+=e.cost||0,a.energy+=e.energy_kwh||0,a.prints+=e.quantity||1,t.set(i,a)}),Array.from(t.values()).sort((e,t)=>e.date.localeCompare(t.date)).map(e=>{let[t,r]=e.date.split(`T`),i=new Date(t),a=parseInt(r,10),o=n?`${JUe[i.getDay()]} ${p6[a]}`:p6[a];return{...e,dateLabel:o}})},[e,u]),f=(0,y.useMemo)(()=>{if(l.length<=60)return l;let e=new Map;return l.forEach(t=>{let n=new Date(t.date),r=new Date(n);r.setDate(n.getDate()-n.getDay());let i=`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,`0`)}-${String(r.getDate()).padStart(2,`0`)}`,a=e.get(i)||{week:i,filament:0,cost:0,energy:0,prints:0};a.filament+=t.filament,a.cost+=t.cost,a.energy+=t.energy,a.prints+=t.prints,e.set(i,a)}),Array.from(e.values()).sort((e,t)=>e.week.localeCompare(t.week)).map(e=>({date:e.week,dateLabel:`Week of ${new Date(e.week).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}`,...e}))},[l]),p=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=(e.filament_type||`Unknown`).split(`, `);n.forEach(r=>{let i=(e.filament_used_grams||0)/n.length;t.set(r,(t.get(r)||0)+i)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t)})).sort((e,t)=>t.value-e.value)},[e]),m=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{(e.filament_type||`Unknown`).split(`, `).forEach(e=>{t.set(e,(t.get(e)||0)+1)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:t})).sort((e,t)=>t.value-e.value)},[e]),h=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{let n=(e.filament_type||`Unknown`).split(`, `),r=(e.actual_time_seconds||e.print_time_seconds||0)/n.length;n.forEach(e=>{t.set(e,(t.get(e)||0)+r)})}),Array.from(t.entries()).map(([e,t])=>({name:e,value:Math.round(t/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e]),g=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{e.status!==`completed`&&e.status!==`failed`||(e.filament_type||`Unknown`).split(`, `).forEach(n=>{let r=t.get(n)||{completed:0,failed:0};e.status===`completed`?r.completed++:r.failed++,t.set(n,r)})}),Array.from(t.entries()).filter(([,e])=>e.completed+e.failed>=2).map(([e,t])=>{let n=t.completed+t.failed;return{name:e,rate:Math.round(t.completed/n*100),total:n}}).sort((e,t)=>t.rate-e.rate)},[e]),_=(0,y.useMemo)(()=>{let t=new Map;return e.forEach(e=>{if(!e.filament_color)return;let n=e.filament_color.split(`,`).map(e=>e.trim()),r=(e.filament_used_grams||0)/n.length;n.forEach(e=>{let n=t.get(e)||{count:0,weight:0};n.count++,n.weight+=r,t.set(e,n)})}),Array.from(t.entries()).map(([e,t])=>({hex:e,value:s===`prints`?t.count:Math.round(t.weight)})).sort((e,t)=>t.value-e.value)},[e,s]),v=a===`weight`?p:a===`prints`?m:h,b=u<=7&&d.length>0?d:f,x=e.reduce((e,t)=>e+(t.filament_used_grams||0),0),S=e.reduce((e,t)=>e+(t.cost||0),0),C=e.reduce((e,t)=>e+(t.energy_kwh||0),0),w=e.reduce((e,t)=>e+(t.energy_cost||0),0),T=e.reduce((e,t)=>e+(t.quantity||1),0),E=new Set(e.map(e=>e.printer_id).filter(Boolean)).size;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 max-[640px]:grid-cols-1`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.periodFilament`)}),(0,G.jsx)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:d6(x)})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[E,` `,i(`nav.printers`).toLowerCase()]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.periodCost`)}),(0,G.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[t,S.toFixed(2)]})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[T,` `,i(`common.prints`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray leading-none`,children:i(`stats.avgPerPrint`)}),(0,G.jsxs)(`p`,{className:`text-2xl font-bold text-white leading-none`,children:[T>0?(x/T).toFixed(0):0,`g`]})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[t,T>0?(S/T).toFixed(2):`0.00`,` avg`]})]})]}),b.length>0?(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:i(`stats.usageOverTime`)}),(0,G.jsx)(rA,{width:`100%`,height:250,children:(0,G.jsxs)(uH,{data:b,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`colorFilament`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:`#00ae42`,stopOpacity:.3}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:`#00ae42`,stopOpacity:0})]})}),(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,G.jsx)(TV,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}g`}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(0)}g`,`Filament`]}),(0,G.jsx)(rV,{type:`monotone`,dataKey:`filament`,stroke:`#00ae42`,strokeWidth:2,fillOpacity:1,fill:`url(#colorFilament)`})]})})]}):(0,G.jsx)(`div`,{className:`bg-bambu-dark rounded-lg p-8 text-center text-bambu-gray`,children:i(`stats.noPrintDataInRange`)}),C>0&&b.length>0&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.energyOverTime`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[C.toFixed(3),` kWh · `,t,w.toFixed(2)]})]}),(0,G.jsx)(rA,{width:`100%`,height:250,children:(0,G.jsxs)(uH,{data:b,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`colorEnergy`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:`#f59e0b`,stopOpacity:.3}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:`#f59e0b`,stopOpacity:0})]})}),(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{dataKey:`dateLabel`,stroke:`#9ca3af`,tick:{fontSize:12},interval:`preserveStartEnd`}),(0,G.jsx)(TV,{stroke:`#9ca3af`,tick:{fontSize:12},tickFormatter:e=>`${e}kWh`}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},labelStyle:{color:`#fff`},formatter:e=>[`${Number(e??0).toFixed(3)} kWh`,i(`stats.energyUsed`)]}),(0,G.jsx)(rV,{type:`monotone`,dataKey:`energy`,stroke:`#f59e0b`,strokeWidth:2,fillOpacity:1,fill:`url(#colorEnergy)`})]})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.byMaterial`)}),(0,G.jsx)(u6,{value:a,onChange:o})]}),v.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(rA,{width:160,height:160,children:(0,G.jsxs)(lH,{children:[(0,G.jsx)(TB,{data:v,cx:`50%`,cy:`50%`,innerRadius:40,outerRadius:70,paddingAngle:2,dataKey:`value`,children:v.map((e,t)=>(0,G.jsx)(cz,{fill:f6[t%f6.length]},`cell-${t}`))}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[a===`weight`?d6(Number(e??0)):a===`time`?`${Number(e??0)}h`:`${e??0}`,a===`weight`?`Usage`:a===`time`?`Time`:`Prints`]})]})}),(0,G.jsx)(`div`,{className:`flex-1 space-y-2 overflow-hidden`,children:v.map((e,t)=>{let n=v.reduce((e,t)=>e+t.value,0),r=n>0?(e.value/n*100).toFixed(0):0;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-sm flex-shrink-0`,style:{backgroundColor:f6[t%f6.length]}}),(0,G.jsx)(`span`,{className:`text-white truncate flex-1`,children:e.name}),(0,G.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0`,children:[a===`weight`?d6(e.value):a===`time`?`${e.value}h`:e.value,` · `,r,`%`]})]},e.name)})})]}):(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noFilamentData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-4`,children:i(`stats.filamentSuccess`)}),g.length>0?(0,G.jsx)(`div`,{className:`space-y-1.5`,children:g.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white truncate w-20 flex-shrink-0`,children:e.name}),(0,G.jsx)(`div`,{className:`flex-1 h-1.5 bg-bambu-dark-secondary rounded-full`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${e.rate>=90?`bg-status-ok`:e.rate>=70?`bg-status-warning`:`bg-status-error`}`,style:{width:`${e.rate}%`}})}),(0,G.jsxs)(`span`,{className:`font-medium flex-shrink-0 tabular-nums ${e.rate>=90?`text-status-ok`:e.rate>=70?`text-status-warning`:`text-status-error`}`,children:[e.rate,`%`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray flex-shrink-0 text-xs`,children:[`(`,e.total,`)`]})]},e.name))}):(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:i(`stats.colorDistribution`)}),(0,G.jsx)(u6,{value:s,onChange:c,exclude:[`time`]})]}),_.length>0?(()=>{let e=_.reduce((e,t)=>e+t.value,0);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`relative mx-auto`,style:{width:160,height:160},children:[(0,G.jsx)(rA,{width:`100%`,height:`100%`,children:(0,G.jsxs)(lH,{children:[(0,G.jsx)(TB,{data:_,cx:`50%`,cy:`50%`,innerRadius:45,outerRadius:70,paddingAngle:2,dataKey:`value`,children:_.map((e,t)=>(0,G.jsx)(cz,{fill:e.hex,stroke:`#1a1a1a`,strokeWidth:1},`color-${t}`))}),(0,G.jsx)(sz,{contentStyle:{backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`},formatter:e=>[s===`weight`?d6(Number(e??0)):`${e??0}`,i(s===`weight`?`stats.filamentByWeight`:`stats.filamentByPrints`)]})]})}),(0,G.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`span`,{className:`text-lg font-bold text-white`,children:s===`weight`?d6(e):e}),(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray`,children:[_.length,` `,_.length===1?`color`:`colors`]})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-1 mt-2`,children:_.slice(0,8).map(t=>{let n=e>0?(t.value/e*100).toFixed(0):0;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full flex-shrink-0 border border-black/20`,style:{backgroundColor:t.hex}}),(0,G.jsxs)(`span`,{className:`text-bambu-gray truncate`,children:[n,`%`]})]},t.hex)})}),_.length>8&&(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray mt-1 text-center`,children:[`+`,_.length-8,` more`]})]})})():(0,G.jsx)(`div`,{className:`h-[160px] flex items-center justify-center text-bambu-gray`,children:i(`stats.noColorData`)})]})]})]})}function XUe({id:e,title:t,component:n,isHidden:r,size:i,columnSpan:a,onToggleVisibility:o,onToggleSize:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=V3({id:e}),m={transform:y4.Transform.toString(d),transition:f,opacity:p?.5:1};return r?null:(0,G.jsxs)(`div`,{ref:u,style:{...m,gridColumn:`span ${a}`},className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden ${p?`ring-2 ring-bambu-green shadow-lg`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`button`,{...c,...l,className:`cursor-grab active:cursor-grabbing p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Drag to reorder`,children:(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray`})}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:t})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:s,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Size: ${i===1?`1/4`:i===2?`1/2`:`Full`} - Click to cycle`,children:i===4?(0,G.jsx)(fl,{className:`w-4 h-4 text-bambu-gray hover:text-white`}):(0,G.jsx)(cl,{className:`w-4 h-4 text-bambu-gray hover:text-white`})}),(0,G.jsx)(`button`,{onClick:o,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,title:`Hide widget`,children:(0,G.jsx)(ic,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]})]}),(0,G.jsx)(`div`,{className:`p-4`,children:typeof n==`function`?n(i):n})]})}function ZUe({widgets:e,storageKey:t,columns:n=4,stackBelow:r,hideControls:i=!1,onResetLayout:a,renderControls:o}){let s=()=>{let t={};return e.forEach(e=>{t[e.id]=e.defaultSize||4}),t},[c,l]=(0,y.useState)(()=>{let n=localStorage.getItem(t);if(n)try{let e=JSON.parse(n);if(!e.sizes)e.sizes=s();else{let t=s();for(let n in t)n in e.sizes||(e.sizes[n]=t[n])}return e}catch{}return{order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}}),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(!r)return;let e=window.matchMedia(`(max-width: ${r}px)`),t=e=>{p(e.matches)};t(e);let n=e=>t(e);return e.addEventListener?e.addEventListener(`change`,n):e.addListener(n),()=>{e.removeEventListener?e.removeEventListener(`change`,n):e.removeListener(n)}},[r]);let m=r&&f?1:n;(0,y.useEffect)(()=>{let e=()=>d(e=>!e);return window.addEventListener(`toggle-hidden-panel`,e),()=>window.removeEventListener(`toggle-hidden-panel`,e)},[]),(0,y.useEffect)(()=>{localStorage.setItem(t,JSON.stringify(c))},[c,t]),(0,y.useEffect)(()=>{let t=e.map(e=>e.id).filter(e=>!c.order.includes(e));t.length>0&&l(e=>({...e,order:[...e.order,...t]}))},[e,c.order]);let h=T4(w4(a3,{activationConstraint:{distance:8}}),w4(t3,{coordinateGetter:U3})),g=e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&l(e=>{let r=e.order.indexOf(t.id),i=e.order.indexOf(n.id);return{...e,order:N3(e.order,r,i)}})},_=e=>{l(t=>({...t,hidden:t.hidden.includes(e)?t.hidden.filter(t=>t!==e):[...t.hidden,e]}))},v=e=>{l(t=>{let n=t.sizes[e]||4,r=n===1?2:n===2?4:1;return{...t,sizes:{...t.sizes,[e]:r}}})},b=()=>{l({order:e.map(e=>e.id),hidden:e.filter(e=>e.defaultVisible===!1).map(e=>e.id),sizes:s()}),a?.()},x=c.order.map(t=>e.find(e=>e.id===t)).filter(Boolean),S=x.filter(e=>!c.hidden.includes(e.id)),C=x.filter(e=>c.hidden.includes(e.id)),w=o?.({hiddenCount:C.length,showHiddenPanel:u,setShowHiddenPanel:d,resetLayout:b});return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[w,!i&&!o&&(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:b,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),`Reset Layout`]}),C.length>0&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>d(!u),children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),C.length,` Hidden`]})]}),u&&C.length>0&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-xl border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:`Hidden widgets (click to show):`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:C.map(e=>(0,G.jsxs)(`button`,{onClick:()=>_(e.id),className:`px-3 py-1.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded-lg text-sm text-white transition-colors flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-3 h-3`}),e.title]},e.id))})]}),(0,G.jsx)(k3,{sensors:h,collisionDetection:M4,onDragEnd:g,children:(0,G.jsx)(z3,{items:S.map(e=>e.id),strategy:F3,children:(0,G.jsx)(`div`,{className:`grid gap-6`,style:{gridTemplateColumns:`repeat(${m}, minmax(0, 1fr))`},children:S.map(e=>{let t=c.sizes[e.id]||2,n=Math.min(t,m);return(0,G.jsx)(XUe,{id:e.id,title:e.title,component:e.component,isHidden:c.hidden.includes(e.id),size:t,columnSpan:n,onToggleVisibility:()=>_(e.id),onToggleSize:()=>v(e.id)},e.id)})})})}),S.length===0&&(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(`p`,{children:`All widgets are hidden.`}),(0,G.jsx)(Q,{className:`mt-4`,onClick:b,children:`Reset Layout`})]})]})}function QUe(e){let t=new Date,n=t.getUTCFullYear(),r=t.getUTCMonth(),i=t.getUTCDate(),a=e=>e.toISOString().split(`T`)[0],o=a(t);switch(e){case`today`:return{dateFrom:o,dateTo:o};case`this-week`:{let e=t.getUTCDay();return{dateFrom:a(new Date(Date.UTC(n,r,i-(e===0?6:e-1)))),dateTo:o}}case`this-month`:return{dateFrom:a(new Date(Date.UTC(n,r,1))),dateTo:o};case`last-7`:return{dateFrom:a(new Date(Date.UTC(n,r,i-6))),dateTo:o};case`last-30`:return{dateFrom:a(new Date(Date.UTC(n,r,i-29))),dateTo:o};case`last-90`:return{dateFrom:a(new Date(Date.UTC(n,r,i-89))),dateTo:o};case`this-year`:return{dateFrom:a(new Date(Date.UTC(n,0,1))),dateTo:o};case`all-time`:return{dateFrom:void 0,dateTo:void 0};case`custom`:return{}}}var $Ue=[`today`,`this-week`,`this-month`,`last-7`,`last-30`,`last-90`,`this-year`,`all-time`],eWe=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],m6=[`12am`,`1am`,`2am`,`3am`,`4am`,`5am`,`6am`,`7am`,`8am`,`9am`,`10am`,`11am`,`12pm`,`1pm`,`2pm`,`3pm`,`4pm`,`5pm`,`6pm`,`7pm`,`8pm`,`9pm`,`10pm`,`11pm`],h6=[{key:`<30m`,max:1800},{key:`30m-1h`,max:3600},{key:`1-2h`,max:7200},{key:`2-4h`,max:14400},{key:`4-8h`,max:28800},{key:`8-12h`,max:43200},{key:`12-24h`,max:86400},{key:`24h+`,max:1/0}],g6={backgroundColor:`#2d2d2d`,border:`1px solid #3d3d3d`,borderRadius:`8px`};function tWe({stats:e,currency:t}){let{t:n}=U(),r=e?.energy_data_warming_up===!0,i=r?n(`stats.energyWarmingUpTooltip`):void 0;return(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-4`,children:[{icon:Cl,color:`text-bambu-green`,label:n(`stats.totalPrints`),value:`${e?.total_prints||0}`},{icon:js,color:`text-blue-600 dark:text-blue-400`,label:n(`stats.printTime`),value:`${e?.total_print_time_hours?.toFixed(1)??`0`}h`},{icon:Cl,color:`text-orange-600 dark:text-orange-400`,label:n(`stats.filamentUsed`),value:d6(e?.total_filament_grams||0)},{icon:qs,color:`text-green-600 dark:text-green-400`,label:n(`stats.filamentCost`),value:`${t} ${e?.total_cost?.toFixed(2)??`0.00`}`},{icon:id,color:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.energyUsed`),value:`${e?.total_energy_kwh?.toFixed(3)??`0.000`} kWh`,warning:r,tooltip:i},{icon:qs,color:`text-yellow-500`,label:n(`stats.energyCost`),value:`${t} ${e?.total_energy_cost?.toFixed(2)??`0.00`}`,warning:r,tooltip:i}].map(e=>(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,title:e.tooltip,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark ${e.color}`,children:(0,G.jsx)(e.icon,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray flex items-center gap-1`,children:[e.label,e.warning&&(0,G.jsx)(Lu,{className:`w-3 h-3 text-yellow-600 dark:text-yellow-400`,"aria-label":e.tooltip})]}),(0,G.jsx)(`p`,{className:`text-xl font-bold text-white`,children:e.value})]})]},e.label))})}function nWe({stats:e,printerMap:t,size:n=1}){let{t:r}=U(),i=(e?.successful_prints||0)+(e?.failed_prints||0),a=i?Math.round((e?.successful_prints||0)/i*100):0,o=n===1?112:n===2?128:144,s=o/2-8,c=s*2*Math.PI;return(0,G.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,G.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:o,height:o},children:[(0,G.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,G.jsx)(`circle`,{cx:o/2,cy:o/2,r:s,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,G.jsx)(`circle`,{cx:o/2,cy:o/2,r:s,fill:`none`,stroke:`#00ae42`,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${a/100*c} ${c}`})]}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsxs)(`span`,{className:`font-bold text-white ${n>=2?`text-2xl`:`text-xl`}`,children:[a,`%`]})})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-status-ok flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.successful`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.successful_prints||0})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 text-status-error flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.failed`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.failed_prints||0})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uo,{className:`w-4 h-4 text-status-warning flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:r(`stats.cancelled`)}),(0,G.jsx)(`span`,{className:`text-sm text-white font-medium`,children:e?.cancelled_prints||0})]})]}),n>=2&&e?.prints_by_printer&&Object.keys(e.prints_by_printer).length>0&&(0,G.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:r(`stats.printsByPrinter`)}),(0,G.jsx)(`div`,{className:`grid gap-x-6 gap-y-1 ${n===4?`grid-cols-3`:`grid-cols-2`}`,style:{width:`fit-content`},children:Object.entries(e.prints_by_printer).map(([e,n])=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[120px]`,children:t.get(e)||`${r(`common.printer`)} ${e}`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n})]},e))})]})]})]})}function rWe({stats:e,printerMap:t,size:n=1}){let{t:r}=U(),i=e?.average_time_accuracy;if(i==null)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noTimeAccuracyData`)})});let a=(Math.min(150,Math.max(50,i))-50)/100*100,o=(e=>e>=95&&e<=105?`#00ae42`:e>105?`#3b82f6`:`#f97316`)(i),s=i-100,c=n===1?112:n===2?128:144,l=c/2-8,u=l*2*Math.PI,d=n===1?3:n===2?6:999,f=e?.time_accuracy_by_printer?Object.entries(e.time_accuracy_by_printer).slice(0,d):[];return(0,G.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,G.jsxs)(`div`,{className:`relative flex-shrink-0`,style:{width:c,height:c},children:[(0,G.jsxs)(`svg`,{className:`w-full h-full -rotate-90`,children:[(0,G.jsx)(`circle`,{cx:c/2,cy:c/2,r:l,fill:`none`,stroke:`#3d3d3d`,strokeWidth:`10`}),(0,G.jsx)(`circle`,{cx:c/2,cy:c/2,r:l,fill:`none`,stroke:o,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:`${a/100*u} ${u}`})]}),(0,G.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,G.jsxs)(`span`,{className:`font-bold text-white ${n>=2?`text-2xl`:`text-xl`}`,children:[i.toFixed(0),`%`]}),(0,G.jsxs)(`span`,{className:`text-xs ${s>=0?`text-blue-700 dark:text-blue-400`:`text-orange-700 dark:text-orange-400`}`,children:[s>=0?`+`:``,s.toFixed(0),`%`]})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:[(0,G.jsx)(Du,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{children:r(`stats.perfectEstimate`)})]}),f.length>0&&(0,G.jsx)(`div`,{className:`mt-2 ${n===4?`grid grid-cols-3 gap-x-6 gap-y-1`:n===2?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,style:{width:`fit-content`},children:f.map(([e,n])=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray truncate max-w-[100px]`,children:t.get(e)||`${r(`common.printer`)} ${e}`}),(0,G.jsxs)(`span`,{className:`font-medium ${n>=95&&n<=105?`text-status-ok`:n>105?`text-blue-700 dark:text-blue-400`:`text-status-warning`}`,children:[n.toFixed(0),`%`]})]},e))})]})]})}function iWe({printDates:e,dateFrom:t,dateTo:n}){let{days:r,hourlyCounts:i,maxCount:a}=(0,y.useMemo)(()=>{let r=new Date(t+`T00:00:00`),i=new Date(n+`T00:00:00`),a=[],o=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`,s=new Date(r);for(;s<=i;)a.push({key:o(s),label:s.toLocaleDateString(void 0,{weekday:`short`,month:`short`,day:`numeric`})}),s.setDate(s.getDate()+1);let c={},l=0;return e.forEach(e=>{let t=rp(e);if(!t)return;let n=`${`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}-${t.getHours()}`;c[n]=(c[n]||0)+1,c[n]>l&&(l=c[n])}),{days:a,hourlyCounts:c,maxCount:Math.max(1,l)}},[e,t,n]),o=e=>{if(e===0)return`bg-bambu-dark`;let t=e/a;return t<=.25?`bg-bambu-green/30`:t<=.5?`bg-bambu-green/50`:t<=.75?`bg-bambu-green/75`:`bg-bambu-green`};return(0,G.jsxs)(`div`,{className:`w-full overflow-x-auto`,children:[(0,G.jsxs)(`div`,{className:`inline-flex flex-col`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`flex`,style:{gap:2,marginLeft:84},children:m6.map((e,t)=>(0,G.jsx)(`div`,{className:`text-bambu-gray text-[10px] text-center`,style:{width:20,visibility:t%2==0?`visible`:`hidden`},children:e},t))}),r.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`text-bambu-gray text-[10px] flex-shrink-0 truncate`,style:{width:80},children:e.label}),Array.from({length:24},(t,n)=>{let r=i[`${e.key}-${n}`]||0;return(0,G.jsx)(`div`,{className:`rounded-sm ${o(r)}`,style:{width:20,height:20},title:`${e.label} ${m6[n]}: ${r} print${r===1?``:`s`}`},n)})]},e.key))]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-3 text-bambu-gray text-xs`,children:[(0,G.jsx)(`span`,{children:`Less`}),(0,G.jsxs)(`div`,{className:`flex`,style:{gap:2},children:[(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-dark`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/30`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/50`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green/75`,style:{width:20,height:20}}),(0,G.jsx)(`div`,{className:`rounded-sm bg-bambu-green`,style:{width:20,height:20}})]}),(0,G.jsx)(`span`,{children:`More`})]})]})}function aWe({printDates:e,size:t=2,dateFrom:n,dateTo:r}){let i=(0,y.useMemo)(()=>n&&r?Math.max((new Date(r).getTime()-new Date(n).getTime())/864e5,0)+1:n?Math.max((Date.now()-new Date(n).getTime())/864e5,0)+1:1/0,[n,r]);return i<=7&&n&&r?(0,G.jsx)(iWe,{printDates:e,dateFrom:n,dateTo:r}):(0,G.jsx)(qUe,{printDates:e,months:i===1/0?t===1?3:t===2?6:12:Math.max(1,Math.ceil(i/30))})}function oWe({stats:e,archives:t,printerMap:n}){let{t:r}=U(),[i,a]=(0,y.useState)(`weight`),[o,s]=(0,y.useState)(`weight`),c=(0,y.useMemo)(()=>{let a=new Map;return e?.prints_by_printer&&Object.entries(e.prints_by_printer).forEach(([e,t])=>{let n=a.get(e)||{prints:0,weight:0,time:0};n.prints=t,a.set(e,n)}),t.forEach(t=>{if(!t.printer_id)return;let n=String(t.printer_id),r=a.get(n)||{prints:0,weight:0,time:0};r.weight+=t.filament_used_grams||0,r.time+=t.actual_time_seconds||t.print_time_seconds||0,e?.prints_by_printer||r.prints++,a.set(n,r)}),Array.from(a.entries()).map(([e,t])=>({name:n.get(e)||`${r(`common.printer`)} ${e}`,value:i===`prints`?t.prints:i===`weight`?Math.round(t.weight):Math.round(t.time/3600*10)/10})).sort((e,t)=>t.value-e.value)},[e,t,n,i,r]),l=(0,y.useMemo)(()=>{let e=Array.from({length:24},(e,t)=>({hour:t,label:m6[t],total:0,failures:0}));return t.forEach(t=>{if(!t.started_at)return;let n=rp(t.started_at);if(!n)return;let r=n.getHours();e[r].total++,t.status===`failed`&&e[r].failures++}),e},[t]),u=(0,y.useMemo)(()=>{let e=h6.map(e=>({name:e.key,count:0}));return t.forEach(t=>{let n=t.actual_time_seconds||t.print_time_seconds;if(!(!n||n<=0)){for(let t=0;t{let e=[0,0,0,0,0,0,0],n=new Set;t.forEach(t=>{let r=rp(t.created_at)||new Date(t.created_at),i=r.getDay()-1;i<0&&(i=6),o===`prints`?e[i]++:o===`weight`?e[i]+=t.filament_used_grams||0:e[i]+=(t.actual_time_seconds||t.print_time_seconds||0)/3600;let a=new Date(r);a.setDate(r.getDate()-(r.getDay()+6)%7),n.add(`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`)});let r=Math.max(n.size,1);return eWe.map((t,n)=>({name:t,avg:Math.round(e[n]/r*10)/10}))},[t,o]),f=e=>({unit:e===`weight`?`g`:e===`time`?`h`:``,color:e===`weight`?`#00ae42`:e===`time`?`#3b82f6`:`#f59e0b`}),p=f(i),m=r(i===`weight`?`stats.filamentByWeight`:i===`time`?`stats.hours`:`common.prints`),h=f(o),g=r(o===`weight`?`stats.avgWeight`:o===`time`?`stats.avgTime`:`stats.avgPrints`);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:r(`stats.printsByPrinter`)}),(0,G.jsx)(u6,{value:i,onChange:a})]}),c.length>0?(0,G.jsx)(rA,{width:`100%`,height:Math.max(140,c.length*40),children:(0,G.jsxs)(iH,{data:c,layout:`vertical`,margin:{left:10},children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{type:`number`,stroke:`#9ca3af`,tick:{fontSize:11},unit:p.unit}),(0,G.jsx)(TV,{type:`category`,dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11},width:100}),(0,G.jsx)(sz,{contentStyle:g6,formatter:e=>[i===`weight`?d6(Number(e??0)):`${e??0}${p.unit}`,m]}),(0,G.jsx)(fV,{dataKey:`value`,fill:p.color,radius:[0,4,4,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noPrinterData`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:r(`stats.printDuration`)}),t.length>0?(0,G.jsx)(rA,{width:`100%`,height:160,children:(0,G.jsxs)(iH,{data:u,children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,G.jsx)(TV,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,G.jsx)(sz,{contentStyle:g6}),(0,G.jsx)(fV,{dataKey:`count`,name:r(`common.prints`),fill:`#00ae42`,radius:[4,4,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray`,children:r(`stats.printHabits`)}),(0,G.jsx)(u6,{value:o,onChange:s})]}),t.length>0?(0,G.jsx)(rA,{width:`100%`,height:160,children:(0,G.jsxs)(iH,{data:d,children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{dataKey:`name`,stroke:`#9ca3af`,tick:{fontSize:11}}),(0,G.jsx)(TV,{stroke:`#9ca3af`,tick:{fontSize:11},unit:h.unit}),(0,G.jsx)(sz,{contentStyle:g6,formatter:e=>[`${e??0}${h.unit}`,g]}),(0,G.jsx)(fV,{dataKey:`avg`,fill:h.color,radius:[4,4,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-bambu-gray mb-3`,children:r(`stats.printTimeOfDay`)}),t.length>0?(0,G.jsx)(rA,{width:`100%`,height:160,children:(0,G.jsxs)(iH,{data:l,children:[(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#3d3d3d`}),(0,G.jsx)(bV,{dataKey:`label`,stroke:`#9ca3af`,tick:{fontSize:10},interval:5}),(0,G.jsx)(TV,{stroke:`#9ca3af`,tick:{fontSize:11},allowDecimals:!1}),(0,G.jsx)(sz,{contentStyle:g6}),(0,G.jsx)(fV,{dataKey:`total`,name:r(`stats.totalPrints`),fill:`#00ae42`,radius:[2,2,0,0]}),(0,G.jsx)(fV,{dataKey:`failures`,name:r(`stats.failed`),fill:`#ef4444`,radius:[2,2,0,0]})]})}):(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:r(`stats.noArchiveData`)})]})]})]})}function sWe({archives:e,currency:t,dateFrom:n,dateTo:r}){let{t:i}=U();return!e||e.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(`stats.noPrintData`)}):(0,G.jsx)(YUe,{archives:e,currency:t,dateFrom:n,dateTo:r})}function cWe({size:e=1,dateFrom:t,dateTo:n,createdById:r}){let{t:i}=U(),a=!!(t||n),{data:o,isLoading:s}=K({queryKey:[`failureAnalysis`,t,n,r??`all`],queryFn:()=>Z.getFailureAnalysis({...a?{dateFrom:t,dateTo:n}:{days:30},createdById:r})});if(s)return(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})});if(!o||o.total_prints===0)return(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:i(a?`stats.noPrintDataInRange`:`stats.noPrintDataLast30Days`)});let c=e===1?5:e===2?8:999,l=Object.entries(o.failures_by_reason).sort(([,e],[,t])=>t-e),u=l.slice(0,c),d=l.length>c;return(0,G.jsxs)(`div`,{className:`${e>=2?`flex gap-8`:`space-y-4`}`,children:[(0,G.jsxs)(`div`,{className:e>=2?`flex-shrink-0`:``,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 ${o.failure_rate>20?`text-status-error`:o.failure_rate>10?`text-status-warning`:`text-status-ok`}`}),(0,G.jsxs)(`span`,{className:`font-bold text-white ${e>=2?`text-3xl`:`text-2xl`}`,children:[o.failure_rate.toFixed(1),`%`]})]})}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray mt-1`,children:i(`stats.failedPrintsCount`,{failed:o.failed_prints,total:o.total_prints})}),o.trend&&o.trend.length>=2&&(0,G.jsx)(`div`,{className:`${e>=2?`mt-4`:`mt-2 pt-2 border-t border-bambu-dark-tertiary`}`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 ${o.trend[o.trend.length-1].failure_rate0&&(0,G.jsxs)(`div`,{className:`flex-1 ${e>=2?`border-l border-bambu-dark-tertiary pl-8`:`pt-2`}`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-medium mb-2`,children:i(e>=2?`stats.failureReasons`:`stats.topFailureReasons`)}),(0,G.jsx)(`div`,{className:`${e===4?`grid grid-cols-2 gap-x-6 gap-y-1`:`space-y-1`}`,children:u.map(([t,n])=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white truncate ${e===4?`max-w-[200px]`:`max-w-[160px]`}`,children:t?i(`editArchive.failureReasons.${t}`,{defaultValue:t}):i(`common.unknown`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray ml-2`,children:n})]},t))}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:i(`common.more`,{count:l.length-c})})]})]})}function lWe({archives:e,currency:t}){let{t:n}=U(),r=(0,y.useMemo)(()=>{let r=[];if(e.length===0)return r;let i=t=>{let n=null,r=0;return e.forEach(e=>{let i=t(e);i&&i>r&&(r=i,n=e)}),{archive:n,value:r}},a=i(e=>e.status===`completed`?e.actual_time_seconds:null);a.archive&&r.push({icon:js,iconColor:`text-blue-600 dark:text-blue-400`,label:n(`stats.longestPrint`),value:lp(a.value),detail:a.archive.print_name||null});let o=i(e=>e.filament_used_grams);o.archive&&r.push({icon:Cl,iconColor:`text-orange-600 dark:text-orange-400`,label:n(`stats.heaviestPrint`),value:d6(o.value),detail:o.archive.print_name||null});let s=i(e=>(e.cost??0)+(e.energy_cost??0));s.archive&&r.push({icon:qs,iconColor:`text-green-600 dark:text-green-400`,label:n(`stats.mostExpensivePrint`),value:`${t}${s.value.toFixed(2)}`,detail:s.archive.print_name||null});let c=new Map;e.forEach(e=>{let t=rp(e.created_at)||new Date(e.created_at),n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`;c.set(n,(c.get(n)||0)+1)});let l=``,u=0;c.forEach((e,t)=>{e>u&&(u=e,l=t)}),u>1&&r.push({icon:as,iconColor:`text-purple-600 dark:text-purple-400`,label:n(`stats.busiestDay`),value:`${u} ${n(`common.prints`)}`,detail:(()=>{let[e,t,n]=l.split(`-`).map(Number);return new Date(e,t-1,n).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})})()});let d=[...e].filter(e=>e.status===`completed`||e.status===`failed`).sort((e,t)=>new Date(t.completed_at||t.created_at).getTime()-new Date(e.completed_at||e.created_at).getTime()),f=0;for(let e of d)if(e.status===`completed`)f++;else break;return f>0&&r.push({icon:id,iconColor:`text-yellow-600 dark:text-yellow-400`,label:n(`stats.successStreak`),value:`${f}`,detail:f===1?n(`stats.streakPrint`):n(`stats.streakPrints`,{count:f})}),r},[e,t,n]);return r.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray text-center py-4`,children:n(`stats.noArchiveData`)}):(0,G.jsx)(`div`,{className:`space-y-3`,children:r.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-1.5 rounded-lg bg-bambu-dark ${e.iconColor}`,children:(0,G.jsx)(e.icon,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.label}),(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-bold text-white`,children:e.value}),e.detail&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray truncate`,children:e.detail})]})]})]},t))})}function uWe(){let{t:e}=U(),{showToast:t}=qd(),{hasPermission:n,authEnabled:r}=Nd(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(0),[u,d]=(0,y.useState)(0),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),v=r&&n(`stats:filter_by_user`),[b,x]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`bambusy-stats-timeframe`);if(e){let t=JSON.parse(e);if(t.preset)return t}}catch{}return{preset:`all-time`,dateFrom:void 0,dateTo:void 0}}),[S,C]=(0,y.useState)(!1);(0,y.useEffect)(()=>{localStorage.setItem(`bambusy-stats-timeframe`,JSON.stringify(b))},[b]);let w=(0,y.useMemo)(()=>b.preset===`custom`?{dateFrom:b.dateFrom,dateTo:b.dateTo}:QUe(b.preset),[b]);(0,y.useEffect)(()=>{let e=()=>{try{let e=localStorage.getItem(`bambusy-dashboard-layout-v2`);e&&d(JSON.parse(e).hidden?.length||0)}catch{d(0)}};e(),window.addEventListener(`storage`,e);let t=setInterval(e,2e3);return()=>{window.removeEventListener(`storage`,e),clearInterval(t)}},[c]);let T=m===null?void 0:m,{data:E,isLoading:D,isFetching:O,refetch:k}=K({queryKey:[`archiveStats`,w.dateFrom,w.dateTo,T??`all`],queryFn:()=>Z.getArchiveStats({dateFrom:w.dateFrom,dateTo:w.dateTo,createdById:T})}),{data:A}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:j,isFetching:M,refetch:N}=K({queryKey:[`archivesSlim`,w.dateFrom,w.dateTo,T??`all`],queryFn:()=>Z.getArchivesSlim(w.dateFrom,w.dateTo,T)}),{data:P}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:F}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:v}),I=(0,y.useMemo)(()=>m===null?e(`stats.allUsers`,`All Users`):m===-1?e(`stats.noUser`,`No User (System)`):F?.find(e=>e.id===m)?.username??`?`,[m,F,e]),L=async n=>{s(!1),a(!0);try{let{blob:r,filename:i}=await Z.exportStats({format:n,days:90,createdById:T}),a=URL.createObjectURL(r),o=document.createElement(`a`);o.href=a,o.download=i,o.click(),URL.revokeObjectURL(a),t(e(`stats.exportDownloaded`))}catch{t(e(`stats.exportFailed`),`error`)}finally{a(!1)}},R=async()=>{p(!0);try{let n=await Z.recalculateCosts();await Promise.all([k(),N()]),t(e(`stats.recalculatedCosts`,{count:n.updated}))}catch{t(e(`stats.recalculateFailed`),`error`)}finally{p(!1)}},z=(O||M)&&!D,B=Lf(P?.currency||`USD`),V=(0,y.useMemo)(()=>new Map([...Object.entries(E?.printer_names||{}),...A?.map(e=>[String(e.id),e.name])||[]]),[E?.printer_names,A]),ee=(0,y.useMemo)(()=>j?.map(e=>e.created_at)||[],[j]);if(D)return(0,G.jsx)(`div`,{className:`p-4 md:p-8`,children:(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:e(`stats.loadingStats`)})});let te=[{id:`quick-stats`,title:e(`stats.quickStats`),component:(0,G.jsx)(tWe,{stats:E,currency:B}),defaultSize:2},{id:`success-rate`,title:e(`stats.successRate`),component:e=>(0,G.jsx)(nWe,{stats:E,printerMap:V,size:e}),defaultSize:1},{id:`time-accuracy`,title:e(`stats.timeAccuracy`),component:e=>(0,G.jsx)(rWe,{stats:E,printerMap:V,size:e}),defaultSize:1},{id:`failure-analysis`,title:e(`stats.failureAnalysis`),component:e=>(0,G.jsx)(cWe,{size:e,dateFrom:w.dateFrom,dateTo:w.dateTo,createdById:T}),defaultSize:1},{id:`print-activity`,title:e(`stats.printActivity`),component:e=>(0,G.jsx)(aWe,{printDates:ee,size:e,dateFrom:w.dateFrom,dateTo:w.dateTo}),defaultSize:2},{id:`records`,title:e(`stats.records`),component:(0,G.jsx)(lWe,{archives:j||[],currency:B}),defaultSize:1},{id:`printer-stats`,title:e(`stats.printerStats`),component:(0,G.jsx)(oWe,{stats:E,archives:j||[],printerMap:V}),defaultSize:4},{id:`filament-trends`,title:e(`stats.filamentTrends`),component:(0,G.jsx)(sWe,{archives:j||[],currency:B,dateFrom:w.dateFrom,dateTo:w.dateTo}),defaultSize:4}];return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(cs,{className:`w-7 h-7 text-bambu-green`}),e(`stats.title`)]}),z&&(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`stats.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[u>0&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{window.dispatchEvent(new CustomEvent(`toggle-hidden-panel`))},children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),e(`stats.hiddenCount`,{count:u})]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{localStorage.removeItem(`bambusy-dashboard-layout-v2`),l(e=>e+1),t(e(`stats.layoutReset`))},disabled:!n(`settings:update`),title:n(`settings:update`)?void 0:e(`stats.noPermissionResetLayout`),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),e(`stats.resetLayout`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:R,disabled:f||!n(`archives:update_all`),title:n(`archives:update_all`)?e(`stats.recalculateCostsHint`):e(`stats.noPermissionRecalculate`),children:[f?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ns,{className:`w-4 h-4`}),e(`stats.recalculateCosts`)]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s(!o),disabled:i,children:[i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(dc,{className:`w-4 h-4`}),e(`stats.exportStats`)]}),o&&(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20`,children:[(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-t-lg`,onClick:()=>L(`csv`),children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),e(`stats.exportAsCsv`)]}),(0,G.jsxs)(`button`,{className:`w-full px-4 py-2 text-left text-white hover:bg-bambu-dark-tertiary transition-colors flex items-center gap-2 rounded-b-lg`,onClick:()=>L(`xlsx`),children:[(0,G.jsx)(dc,{className:`w-4 h-4`}),e(`stats.exportAsExcel`)]})]})]}),v&&F&&F.length>0&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>_(!g),children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),I,(0,G.jsx)(ps,{className:`w-3 h-3`})]}),g&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>_(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2 max-h-64 overflow-y-auto`,children:[(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===null?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(null),_(!1)},children:e(`stats.allUsers`,`All Users`)}),(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===-1?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(-1),_(!1)},children:e(`stats.noUser`,`No User (System)`)}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-1`}),F.map(e=>(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${m===e.id?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{h(e.id),_(!1)},children:e.username},e.id))]})]})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!S),children:[(0,G.jsx)(as,{className:`w-4 h-4`}),e(`stats.timeframe.${b.preset}`),(0,G.jsx)(ps,{className:`w-3 h-3`})]}),S&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>C(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 w-64 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 p-2`,children:[$Ue.map(t=>(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${b.preset===t?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>{x({preset:t,dateFrom:void 0,dateTo:void 0}),C(!1)},children:e(`stats.timeframe.${t}`)},t)),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary my-2`}),(0,G.jsx)(`button`,{className:`w-full px-3 py-2 text-left text-sm rounded-md transition-colors ${b.preset===`custom`?`bg-bambu-green text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,onClick:()=>x(e=>({...e,preset:`custom`})),children:e(`stats.timeframe.custom`)}),b.preset===`custom`&&(0,G.jsxs)(`div`,{className:`mt-2 px-1 pb-1 space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.from`)}),(0,G.jsx)(`input`,{type:`date`,value:b.dateFrom||``,max:b.dateTo||new Date().toISOString().split(`T`)[0],onChange:e=>x(t=>({...t,dateFrom:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:e(`stats.timeframe.to`)}),(0,G.jsx)(`input`,{type:`date`,value:b.dateTo||``,min:b.dateFrom,max:new Date().toISOString().split(`T`)[0],onChange:e=>x(t=>({...t,dateTo:e.target.value||void 0})),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-sm text-white`})]}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>C(!1),className:`w-full`,children:e(`common.apply`)})]})]})]})]})]})]}),(0,G.jsx)(ZUe,{widgets:te,storageKey:`bambusy-dashboard-layout-v2`,stackBelow:640,hideControls:!0},c)]})}function _6(e){return e.length<8?`tooShort`:/[A-Z]/.test(e)?/[a-z]/.test(e)?/\d/.test(e)?/[^A-Za-z0-9]/.test(e)?null:`needsSpecial`:`needsDigit`:`needsLowercase`:`needsUppercase`}var v6=[`inventory-locations`];function y6(e){return e.invalidateQueries({queryKey:v6})}function b6(e,t){return Promise.all([e.invalidateQueries({queryKey:[...t]}),y6(e)])}var x6=`bambuddy-location-sensor-show-on-card-defaults`,S6={alertAbove:``,alertBelow:``,notifyOnAlert:!1,showOnCard:!0};function dWe(){return{temperature:{...S6,alertAbove:`30`,alertBelow:`20`},humidity:{...S6,alertAbove:`30`,alertBelow:`10`},battery:{...S6,alertBelow:`10`}}}function fWe(){try{let e=localStorage.getItem(x6);return e?JSON.parse(e):{}}catch{return{}}}function C6(e){let t=dWe();if(e)try{let n=JSON.parse(e);Object.keys(t).forEach(e=>{let r=n[e];r&&(typeof r.alertAbove==`string`&&(t[e].alertAbove=r.alertAbove),typeof r.alertBelow==`string`&&(t[e].alertBelow=r.alertBelow),typeof r.notifyOnAlert==`boolean`&&(t[e].notifyOnAlert=r.notifyOnAlert))})}catch{}let n=fWe();return Object.keys(t).forEach(e=>{typeof n[e]==`boolean`&&(t[e].showOnCard=n[e])}),t}function pWe(e){let t={};return Object.keys(e).forEach(n=>{t[n]={alertAbove:e[n].alertAbove,alertBelow:e[n].alertBelow,notifyOnAlert:e[n].notifyOnAlert}}),JSON.stringify(t)}function mWe(e){try{let t={};Object.keys(e).forEach(n=>{t[n]=e[n].showOnCard}),localStorage.setItem(x6,JSON.stringify(t))}catch{return}}var w6=`bambuddy-location-sensor-colorize-values`;function T6(){try{let e=localStorage.getItem(w6);return e?e===`true`:!0}catch{return!0}}var E6=`bambuddy:location-sensor-color-prefs-changed`;function D6(){window.dispatchEvent(new Event(E6))}function hWe(e){try{localStorage.setItem(w6,String(e))}catch{return}D6()}var O6=[`red`,`orange`,`yellow`,`green`,`blue`,`purple`,`pink`],k6={red:`text-red-400`,orange:`text-orange-400`,yellow:`text-yellow-400`,green:`text-green-400`,blue:`text-blue-400`,purple:`text-purple-400`,pink:`text-pink-400`},A6=`bambuddy-location-sensor-alert-above-color`,j6=`bambuddy-location-sensor-alert-below-color`,M6=`bambuddy-location-sensor-alert-optimal-color`;function N6(e){return!!e&&O6.includes(e)}function P6(){try{let e=localStorage.getItem(A6);return N6(e)?e:`purple`}catch{return`purple`}}function gWe(e){try{localStorage.setItem(A6,e)}catch{return}D6()}function F6(){try{let e=localStorage.getItem(j6);return N6(e)?e:`red`}catch{return`red`}}function _We(e){try{localStorage.setItem(j6,e)}catch{return}D6()}function I6(){try{let e=localStorage.getItem(M6);return N6(e)?e:`green`}catch{return`green`}}function vWe(e){try{localStorage.setItem(M6,e)}catch{return}D6()}function L6(){return{colorize:T6(),aboveColor:P6(),belowColor:F6(),optimalColor:I6()}}function R6(){let[e,t]=(0,y.useState)(L6);return(0,y.useEffect)(()=>{let e=()=>t(L6());return window.addEventListener(E6,e),()=>window.removeEventListener(E6,e)},[]),e}function z6(e){return!e.reachable||e.state===null?null:e.kind===`numeric`?e.alert_above===null&&e.alert_below===null||e.value===null?null:e.alert_above!==null&&e.value>e.alert_above?`above`:e.alert_below!==null&&e.value{let r=Math.max(0,Math.min(65,Math.round(n)));t(bWe({...i,[e]:r}))};return(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-3 gap-y-1.5`,children:H6.map(e=>{let t=i[e]??V6[e]??0,o=e==="default"?r(`settings.preheatFilamentTargetsDefaultRow`,`Other / unmapped`):e;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs ${e==="default"?`text-bambu-gray italic`:`text-bambu-gray`}`,children:o}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:65,step:1,value:t,onChange:t=>a(e,parseInt(t.target.value,10)||0),disabled:n,className:`w-16 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-xs text-right focus:outline-none focus:border-bambu-green disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`°C`})]})]},e)})})}function U6(e,t,n){if(!e)return null;let r=(e[n.source]?.[t]??[]).find(e=>e.id===n.id);return r?r.name:null}var SWe={orca_cloud:`Orca Cloud`,cloud:`Bambu Cloud`,local:`Imported`,standard:`Standard`};function CWe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{data:r,isLoading:i,error:a}=K({queryKey:[`slicer-pipelines`],queryFn:()=>Z.listSlicerPipelines()}),{data:o}=K({queryKey:[`slicer-presets`],queryFn:()=>Z.getSlicerPresets()}),{data:s}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),c=q({mutationFn:({id:e,name:t,description:n,target_printer_id:r,target_kind:i,target_model_class:a,fanout_strategy:o})=>Z.updateSlicerPipeline(e,{name:t,description:n,target_printer_id:r,target_kind:i,target_model_class:a,fanout_strategy:o}),onSuccess:()=>{t.invalidateQueries({queryKey:[`slicer-pipelines`]}),n(e(`settings.pipelines.toast.saved`,`Pipeline saved`),`success`)},onError:t=>{n(t.message||e(`settings.pipelines.toast.saveFailed`,`Save failed`),`error`)}}),l=q({mutationFn:e=>Z.deleteSlicerPipeline(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`slicer-pipelines`]}),n(e(`settings.pipelines.toast.deleted`,`Pipeline deleted`),`success`)},onError:t=>{n(t.message||e(`settings.pipelines.toast.deleteFailed`,`Delete failed`),`error`)}}),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),m=(0,y.useMemo)(()=>r?.pipelines??[],[r?.pipelines]),h=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=!1;for(let r of m)r.target_kind===`printer_class`&&r.target_model_class?t.add(r.target_model_class):r.target_printer_id?e.add(r.target_printer_id):n=!0;return{printers:(s??[]).filter(t=>e.has(t.id)),classes:Array.from(t).sort(),anyWithoutTarget:n}},[m,s]),g=(0,y.useMemo)(()=>{let e=u.trim().toLowerCase();return m.filter(t=>{if(e&&!t.name.toLowerCase().includes(e))return!1;if(f===`none`){if(t.target_kind===`printer_class`?t.target_model_class:t.target_printer_id!==null)return!1}else if(f.startsWith(`p:`)){let e=parseInt(f.slice(2),10);if(t.target_kind===`printer_class`||t.target_printer_id!==e)return!1}else if(f.startsWith(`c:`)){let e=f.slice(2);if(t.target_kind!==`printer_class`||t.target_model_class!==e)return!1}return!0})},[m,u,f]);return(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ed,{className:`w-4 h-4 text-bambu-green`}),e(`settings.pipelines.title`,`Slicer Pipelines`)]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.pipelines.subtitle`,`Reusable preset bundles (printer + process + filaments + bed type). Save one from the Slice dialog and apply it with a single click on the next file.`)})]}),(0,G.jsxs)(Vd,{children:[i&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.pipelines.loading`,`Loading pipelines…`)]}),a&&(0,G.jsx)(`div`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.pipelines.loadError`,`Could not load pipelines.`)}),!i&&!a&&m.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[12rem]`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`search`,value:u,onChange:e=>d(e.target.value),placeholder:e(`settings.pipelines.searchPlaceholder`,`Search pipelines…`),"aria-label":e(`settings.pipelines.searchPlaceholder`,`Search pipelines…`),className:`w-full pl-7 pr-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`})]}),(0,G.jsxs)(`select`,{value:f,onChange:e=>p(e.target.value),"aria-label":e(`settings.pipelines.filterTarget`,`Filter by target`),className:`text-xs px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.pipelines.filter.all`,`All targets`)}),h.printers.length>0&&(0,G.jsx)(`optgroup`,{label:e(`settings.pipelines.field.targetKindSpecific`,`Specific printer`),children:h.printers.map(e=>(0,G.jsx)(`option`,{value:`p:${e.id}`,children:e.name},`p-${e.id}`))}),h.classes.length>0&&(0,G.jsx)(`optgroup`,{label:e(`settings.pipelines.field.targetKindClass`,`Printer class`),children:h.classes.map(t=>(0,G.jsx)(`option`,{value:`c:${t}`,children:e(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:t})},`c-${t}`))}),h.anyWithoutTarget&&(0,G.jsx)(`option`,{value:`none`,children:e(`settings.pipelines.filter.noTarget`,`No target set`)})]}),(u||f)&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e(`settings.pipelines.filter.count`,`{{shown}} / {{total}}`,{shown:g.length,total:m.length})})]}),!i&&!a&&m.length===0&&(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray space-y-2`,children:[(0,G.jsx)(`p`,{children:e(`settings.pipelines.empty.title`,`No pipelines yet.`)}),(0,G.jsx)(`p`,{children:e(`settings.pipelines.empty.howto`,`Open the Slice dialog for any file, pick your printer / process / filaments / bed type, then click "Save as pipeline". Your saved pipelines will appear here.`)})]}),!i&&!a&&m.length>0&&g.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.pipelines.filter.noMatches`,`No pipelines match the current filters.`)}),!i&&!a&&g.length>0&&(0,G.jsx)(`div`,{className:`space-y-2`,children:g.map(t=>(0,G.jsx)(wWe,{pipeline:t,presets:o,printers:s??[],onSave:e=>c.mutate({id:t.id,...e}),onDelete:()=>{confirm(e(`settings.pipelines.confirmDelete`,`Delete this pipeline? This cannot be undone.`))&&l.mutate(t.id)},saving:c.isPending,deleting:l.isPending},t.id))})]})]})}function wWe({pipeline:e,presets:t,printers:n,onSave:r,onDelete:i,saving:a,deleting:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(e.name),[f,p]=(0,y.useState)(e.description??``),[m,h]=(0,y.useState)(e.target_printer_id),[g,_]=(0,y.useState)(e.target_kind===`printer_class`?`printer_class`:`specific_printer`),[v,b]=(0,y.useState)(e.target_model_class??``),[x,S]=(0,y.useState)(e.fanout_strategy??`max_parallel`),C=Array.from(new Set(n.map(e=>e.model).filter(e=>!!e))).sort(),{data:w}=K({queryKey:[`pipeline-runs`,e.id],queryFn:()=>Z.listPipelineRuns(e.id,1),enabled:!c,refetchInterval:15e3}),T=w?.runs?.[0],E=U6(t,`printer`,e.printer_preset),D=U6(t,`process`,e.process_preset),O=e.filament_presets.map(e=>U6(t,`filament`,e)),k=e.filament_presets.length>1&&e.filament_presets.every(t=>t.source===e.filament_presets[0].source&&t.id===e.filament_presets[0].id),A=t!==void 0&&(E===null||D===null||O.some(e=>e===null)),j=e.target_printer_id?n.find(t=>t.id===e.target_printer_id):void 0,M=e.target_kind===`printer_class`,N=M?!e.target_model_class:e.target_printer_id===null;return(0,G.jsxs)(`div`,{className:`rounded-md border border-bambu-dark-tertiary bg-bambu-dark/40 px-3 py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:c?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{value:u,onChange:e=>d(e.target.value),"aria-label":s(`settings.pipelines.field.name`,`Pipeline name`),placeholder:s(`settings.pipelines.field.name`,`Pipeline name`),className:`w-full px-2 py-1 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsx)(`textarea`,{value:f,onChange:e=>p(e.target.value),"aria-label":s(`settings.pipelines.field.description`,`Description`),placeholder:s(`settings.pipelines.field.description`,`Description`),rows:2,className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetKind`,`Target type`)}),(0,G.jsxs)(`div`,{className:`flex gap-3 text-xs`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-white`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`target-kind-${e.id}`,value:`specific_printer`,checked:g===`specific_printer`,onChange:()=>_(`specific_printer`),"aria-label":s(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)}),s(`settings.pipelines.field.targetKindSpecific`,`Specific printer`)]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-1 text-white`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`target-kind-${e.id}`,value:`printer_class`,checked:g===`printer_class`,onChange:()=>_(`printer_class`),"aria-label":s(`settings.pipelines.field.targetKindClass`,`Printer class`)}),s(`settings.pipelines.field.targetKindClass`,`Printer class`)]})]})]}),g===`specific_printer`?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetPrinter`,`Target printer`)}),(0,G.jsxs)(`select`,{value:m??``,onChange:e=>h(e.target.value?parseInt(e.target.value,10):null),"aria-label":s(`settings.pipelines.field.targetPrinter`,`Target printer`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:s(`settings.pipelines.field.noTarget`,`— No target —`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.targetModelClass`,`Printer model`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>b(e.target.value),"aria-label":s(`settings.pipelines.field.targetModelClass`,`Printer model`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:``,children:s(`settings.pipelines.field.noTarget`,`— No target —`)}),C.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray block mb-1`,children:s(`settings.pipelines.field.fanoutStrategy`,`Fanout strategy`)}),(0,G.jsxs)(`select`,{value:x,onChange:e=>S(e.target.value),"aria-label":s(`settings.pipelines.field.fanoutStrategy`,`Fanout strategy`),className:`w-full px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded text-white`,children:[(0,G.jsx)(`option`,{value:`max_parallel`,children:s(`settings.pipelines.field.fanout.max_parallel`,`Max parallel — distribute across any idle matching printer`)}),(0,G.jsx)(`option`,{value:`round_robin`,children:s(`settings.pipelines.field.fanout.round_robin`,`Round robin — cycle through eligible printers`)}),(0,G.jsx)(`option`,{value:`fill_one_first`,children:s(`settings.pipelines.field.fanout.fill_one_first`,`Fill one first — pin all copies to one printer`)})]})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded inline-flex items-center gap-1 ${N?`bg-amber-100 dark:bg-amber-500/15 text-amber-700 dark:text-amber-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),N?s(`settings.pipelines.noTargetHint`,`Set a target printer to run this`):M?(0,G.jsxs)(G.Fragment,{children:[s(`library.runWithPipeline.classTarget`,`Any {{model}}`,{model:e.target_model_class}),e.fanout_strategy&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[` · `,s(`settings.pipelines.field.fanoutShort.${e.fanout_strategy}`,e.fanout_strategy)]})]}):j?.name??``]})]}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e.description})]})}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:c?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>{let e=u.trim();e&&(r({name:e,description:f.trim()||null,target_kind:g,target_printer_id:g===`specific_printer`?m??0:0,target_model_class:g===`printer_class`&&v||null,fanout_strategy:x}),l(!1))},disabled:a||!u.trim(),"aria-label":s(`settings.pipelines.action.save`,`Save`),className:`p-1.5 text-bambu-green hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,children:(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{d(e.name),p(e.description??``),h(e.target_printer_id),_(e.target_kind===`printer_class`?`printer_class`:`specific_printer`),b(e.target_model_class??``),S(e.fanout_strategy??`max_parallel`),l(!1)},"aria-label":s(`settings.pipelines.action.cancel`,`Cancel`),className:`p-1.5 text-bambu-gray hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>l(!0),"aria-label":s(`settings.pipelines.action.rename`,`Rename`),className:`p-1.5 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:i,disabled:o,"aria-label":s(`settings.pipelines.action.delete`,`Delete`),className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]}),!c&&(0,G.jsxs)(`div`,{className:`mt-2 grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-2 text-xs`,children:[(0,G.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,G.jsx)(`div`,{className:`text-[10px] uppercase tracking-wide text-bambu-gray/60`,children:s(`settings.pipelines.group.profiles`,`Profiles`)}),(0,G.jsx)(W6,{label:s(`settings.pipelines.slot.printer`,`Printer`),ref:e.printer_preset,name:E}),(0,G.jsx)(W6,{label:s(`settings.pipelines.slot.process`,`Process`),ref:e.process_preset,name:D}),e.bed_type&&(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[s(`settings.pipelines.slot.bed`,`Bed`),`:`]}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:e.bed_type})]})]}),(0,G.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,G.jsxs)(`div`,{className:`text-[10px] uppercase tracking-wide text-bambu-gray/60`,children:[s(`settings.pipelines.group.filaments`,`Filaments`),e.filament_presets.length>1&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60 normal-case ml-1`,children:[`(`,e.filament_presets.length,`)`]})]}),k?(0,G.jsx)(W6,{label:s(`settings.pipelines.slot.filamentAll`,`All {{n}} slots`,{n:e.filament_presets.length}),ref:e.filament_presets[0],name:O[0]}):e.filament_presets.map((t,n)=>(0,G.jsx)(W6,{label:e.filament_presets.length>1?s(`settings.pipelines.slot.filamentN`,`Filament {{n}}`,{n:n+1}):s(`settings.pipelines.slot.filament`,`Filament`),ref:t,name:O[n]},n))]})]}),!c&&T&&(0,G.jsxs)(`div`,{className:`mt-1.5 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[s(`settings.pipelines.runs.lastRun`,`Last run`),`:`]}),` `,(0,G.jsx)(TWe,{status:T.status}),T.created_at&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[`· `,new Date(T.created_at).toLocaleString()]})]}),N&&!c&&(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-1.5 text-xs text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),s(`settings.pipelines.noTargetWarning`,`Set a target printer before running this pipeline.`)]}),A&&!c&&(0,G.jsxs)(`div`,{className:`mt-2 flex items-center gap-1.5 text-xs text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),s(`settings.pipelines.staleWarning`,`One or more referenced presets no longer exist. Re-save this pipeline from the Slice dialog to fix.`)]})]})}function TWe({status:e}){let{t}=U();return(0,G.jsx)(`span`,{className:{queued:`text-bambu-gray`,slicing:`text-blue-700 dark:text-blue-400`,dispatching:`text-blue-700 dark:text-blue-400`,in_progress:`text-bambu-green`,completed:`text-bambu-green`,failed:`text-red-700 dark:text-red-400`,partial_failure:`text-amber-700 dark:text-amber-400`,cancelled:`text-bambu-gray`}[e],children:t(`settings.pipelines.runs.status.${e}`,e)})}function W6({label:e,ref:t,name:n}){return(0,G.jsxs)(`div`,{className:`text-bambu-gray truncate`,children:[(0,G.jsxs)(`span`,{className:`font-medium text-bambu-gray/80`,children:[e,`:`]}),` `,n?(0,G.jsx)(`span`,{className:`text-white`,children:n}):(0,G.jsxs)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:[`[`,SWe[t.source],` #`,t.id,`]`]})]})}var G6=90,K6=365;function q6(e){if(!e)return`—`;let t=rp(e);return t?t.toLocaleString():`—`}function EWe(e){let t=rp(e);return t?t.getTime(){if(l.preventDefault(),r.trim()){u(!0);try{e(await Z.createLongLivedCameraToken({name:r.trim(),expires_in_days:a,scope:s})),i(``),o(G6),c(`camera_stream`),n(t(`cameraTokens.toast.created`,`Token created`))}catch(e){n(e instanceof Error?e.message:t(`cameraTokens.toast.createFailed`,`Failed to create token`),`error`)}finally{u(!1)}}},className:`bg-bambu-dark-secondary rounded-lg p-4 mb-6 border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:t(`cameraTokens.create.title`,`Create new token`)}),(0,G.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-[1fr_180px_140px_auto]`,children:[(0,G.jsx)(`input`,{type:`text`,maxLength:100,required:!0,value:r,onChange:e=>i(e.target.value),placeholder:t(`cameraTokens.create.namePlaceholder`,`e.g. Home Assistant`),className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.nameLabel`,`Token name`)}),(0,G.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.scopeLabel`,`Scope`),children:[(0,G.jsx)(`option`,{value:`camera_stream`,children:t(`cameraTokens.scope.camera_stream`,`Camera stream`)}),(0,G.jsx)(`option`,{value:`camwall`,children:t(`cameraTokens.scope.camwall`,`Cam Wall`)}),(0,G.jsx)(`option`,{value:`overlay`,children:t(`cameraTokens.scope.overlay`,`Streaming Overlay`)})]}),(0,G.jsx)(`input`,{type:`number`,min:1,max:K6,required:!0,value:a,onChange:e=>{let t=Number(e.target.value);o(Math.min(Math.max(t,1),K6))},className:`px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,"aria-label":t(`cameraTokens.create.daysLabel`,`Days until expiry`)}),(0,G.jsxs)(`button`,{type:`submit`,disabled:l||!r.trim(),className:`flex items-center gap-2 px-4 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90 disabled:opacity-50 disabled:cursor-not-allowed`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),t(`cameraTokens.create.submit`,`Create`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:s===`camwall`?t(`cameraTokens.create.hintCamWall`,`A Cam Wall token opens /camwall on a screen with no login — it can see every printer's name and state, and their camera streams. It cannot see filenames, addresses or access codes.`):s===`overlay`?t(`cameraTokens.create.hintOverlay`,`A Streaming Overlay token opens /overlay/{printerId} on a screen with no login — for OBS or any live stream. It can see one printer's camera stream plus its live print status, including the filename shown on screen. It cannot see addresses or access codes.`):t(`cameraTokens.create.hintCameraStream`,`A camera-stream token can only fetch camera streams and snapshots. Use it for Home Assistant, Frigate, or anything embedding a single camera.`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:t(`cameraTokens.create.hint`,`Maximum lifetime is 365 days. The token value is shown only once on creation — copy it now.`)})]})}function OWe({token:e,onConfirm:t,onCancel:n}){let{t:r}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4`,role:`dialog`,"aria-modal":`true`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-md w-full border border-red-500/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-6 h-6 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`cameraTokens.confirmRevoke.title`,`Revoke this token?`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`cameraTokens.confirmRevoke.body`,`Any device using "{{name}}" will lose access immediately. This cannot be undone.`,{name:e.name})})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:n,className:`px-4 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:r(`cameraTokens.confirmRevoke.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 bg-red-500 text-white rounded-md hover:bg-red-600`,children:r(`cameraTokens.confirmRevoke.confirm`,`Revoke`)})]})]})})}function kWe({token:e,onClose:t}){let{t:n}=U(),{showToast:r}=qd(),i=e.token??``,a=e.scope===`camwall`&&i?`${window.location.origin}/camwall?token=${encodeURIComponent(i)}`:null,o=e.scope===`overlay`&&i?`${window.location.origin}/overlay/1?token=${encodeURIComponent(i)}`:null,s=async e=>{if(e)try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(e);else{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{t.select(),document.execCommand(`copy`)}finally{document.body.removeChild(t)}}r(n(`cameraTokens.toast.copied`,`Copied to clipboard`))}catch{r(n(`cameraTokens.toast.copyFailed`,`Copy failed — select and copy manually`),`error`)}};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-2xl w-full border border-bambu-green/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-3 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-6 h-6 text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`cameraTokens.created.title`,`Token created — copy it now`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:n(`cameraTokens.created.warning`,`This is the only time this token will be visible. After you close this dialog you can never view it again.`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:i}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(i),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]}),a&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:n(`cameraTokens.created.camWallUrlTitle`,`Cam Wall URL for this display`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`cameraTokens.created.camWallUrlHint`,`Open this on the screen. Anyone who can read the URL can watch the wall, so treat it like a key — revoke the token to cut the display off.`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:a}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(a),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]})]}),o&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:n(`cameraTokens.created.overlayUrlTitle`,`Overlay URL for OBS`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`cameraTokens.created.overlayUrlHint`,`Add this as a Browser Source in OBS. Change the /overlay/1 number to your printer's number (from its URL on the Printers page). Anyone who can read the URL can watch the stream, so treat it like a key — revoke the token to cut it off.`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:o}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(o),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(`cameraTokens.created.copy`,`Copy`)]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:n(`cameraTokens.created.dismiss`,`I've saved it`)})})]})})}function AWe({token:e,showOwner:t,ownerLabel:n,onRevoke:r}){let{t:i}=U(),a=EWe(e.expires_at);return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary last:border-b-0`,children:[(0,G.jsx)(`td`,{className:`py-3 px-3 text-white`,children:e.name}),t&&(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:n}),(0,G.jsx)(`td`,{className:`py-3 px-3`,children:(0,G.jsx)(`span`,{className:`rounded bg-bambu-dark-tertiary px-2 py-0.5 text-xs text-bambu-gray`,children:i(`cameraTokens.scope.${e.scope}`,e.scope)})}),(0,G.jsxs)(`td`,{className:`py-3 px-3 text-bambu-gray font-mono text-xs`,children:[e.lookup_prefix,`…`]}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:q6(e.created_at)}),(0,G.jsxs)(`td`,{className:`py-3 px-3 ${a?`text-red-700 dark:text-red-400`:`text-bambu-gray`}`,children:[q6(e.expires_at),a&&(0,G.jsx)(`span`,{className:`ml-2 px-2 py-0.5 text-xs bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-300 rounded`,children:i(`cameraTokens.list.expired`,`Expired`)})]}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-bambu-gray`,children:q6(e.last_used_at)}),(0,G.jsx)(`td`,{className:`py-3 px-3 text-right`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),className:`inline-flex items-center gap-1 px-2 py-1 text-sm text-red-700 dark:text-red-400 hover:text-red-900 dark:hover:text-red-300`,title:i(`cameraTokens.list.revoke`,`Revoke`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`cameraTokens.list.revoke`,`Revoke`)]})})]})}function J6({tokens:e,showOwner:t,userIdToName:n,onRevoke:r,emptyMessage:i}){let{t:a}=U();return e.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:i}):(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`text-bambu-gray text-left border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.name`,`Name`)}),t&&(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.owner`,`Owner`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.scope`,`Scope`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.prefix`,`Prefix`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.created`,`Created`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.expires`,`Expires`)}),(0,G.jsx)(`th`,{className:`py-2 px-3 font-medium`,children:a(`cameraTokens.list.lastUsed`,`Last used`)}),(0,G.jsx)(`th`,{className:`py-2 px-3`})]})}),(0,G.jsx)(`tbody`,{children:e.map(e=>(0,G.jsx)(AWe,{token:e,showOwner:t,ownerLabel:n?.get(e.user_id)??`#${e.user_id}`,onRevoke:r},e.id))})]})})}function jWe(){let{t:e}=U(),{user:t,isAdmin:n}=Nd(),{showToast:r}=qd(),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(new Map),[u,d]=(0,y.useState)(!0),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),g=async()=>{d(!0);try{if(a(await Z.listMyLongLivedCameraTokens()),n){s(await Z.listAllLongLivedCameraTokens());try{let e=await Z.getUsersSlim();l(new Map(e.map(e=>[e.id,e.username])))}catch{l(new Map)}}}catch(t){r(t instanceof Error?t.message:e(`cameraTokens.toast.loadFailed`,`Failed to load tokens`),`error`)}finally{d(!1)}};(0,y.useEffect)(()=>{g()},[n]);let _=async e=>{let t=[...i,...o].find(t=>t.id===e);t&&h(t)},v=async()=>{if(!m)return;let t=m.id;h(null);try{await Z.revokeLongLivedCameraToken(t),r(e(`cameraTokens.toast.revoked`,`Token revoked`)),await g()}catch(t){r(t instanceof Error?t.message:e(`cameraTokens.toast.revokeFailed`,`Failed to revoke token`),`error`)}},b=(0,y.useMemo)(()=>o.filter(e=>e.user_id!==t?.id),[o,t?.id]);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`cameraTokens.description`,`Long-lived tokens for embedding the camera stream into Home Assistant, Frigate, kiosks, or any other tool that needs a stable URL. Each token is camera-stream-only and can be revoked at any time.`)}),(0,G.jsx)(DWe,{onCreated:e=>{p(e),g()}}),(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:e(`cameraTokens.list.myTitle`,`My tokens`)}),u?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`cameraTokens.loading`,`Loading…`)}):(0,G.jsx)(J6,{tokens:i,onRevoke:_,emptyMessage:e(`cameraTokens.list.empty`,`No tokens yet.`)})]}),n&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white mb-3`,children:e(`cameraTokens.list.allTitle`,`All users (admin view)`)}),(0,G.jsx)(J6,{tokens:b,showOwner:!0,userIdToName:c,onRevoke:_,emptyMessage:e(`cameraTokens.list.empty`,`No tokens yet.`)})]}),f&&(0,G.jsx)(kWe,{token:f,onClose:()=>p(null)}),m&&(0,G.jsx)(OWe,{token:m,onConfirm:()=>void v(),onCancel:()=>h(null)})]})}var Y6=[{key:`printer`,labelKey:`streamOverlay.builder.fieldPrinter`,fallback:`Printer name`},{key:`filename`,labelKey:`streamOverlay.builder.fieldFilename`,fallback:`File name`},{key:`status`,labelKey:`streamOverlay.builder.fieldStatus`,fallback:`Status`},{key:`progress`,labelKey:`streamOverlay.builder.fieldProgress`,fallback:`Progress bar`},{key:`layers`,labelKey:`streamOverlay.builder.fieldLayers`,fallback:`Layer count`},{key:`eta`,labelKey:`streamOverlay.builder.fieldEta`,fallback:`Time remaining and ETA`},{key:`nozzle`,labelKey:`printers.heaterHistory.nozzle`,fallback:`Nozzle`},{key:`bed`,labelKey:`printers.heaterHistory.bed`,fallback:`Bed`},{key:`chamber`,labelKey:`printers.heaterHistory.chamber`,fallback:`Chamber`}],MWe=[`progress`,`layers`,`eta`,`filename`,`status`],X6=15;function NWe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(MWe),[c,l]=(0,y.useState)(`medium`),[u,d]=(0,y.useState)(X6),[f,p]=(0,y.useState)(!0),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await Z.getPrinters();if(e)return;r(t),t.length>0&&a(t[0].id)}catch{}})(),()=>{e=!0}},[]);let v=(0,y.useMemo)(()=>{let e=i??1,t=new URLSearchParams,n=Y6.filter(e=>o.includes(e.key)).map(e=>e.key);return t.set(`show`,n.join(`,`)),c!==`medium`&&t.set(`size`,c),u!==X6&&t.set(`fps`,String(u)),f||t.set(`camera`,`false`),m.trim()&&t.set(`token`,m.trim()),`${window.location.origin}/overlay/${e}?${t.toString()}`},[i,o,c,u,f,m]),b=e=>{s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},x=async()=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(v);else{let e=document.createElement(`textarea`);e.value=v,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e);try{e.select(),document.execCommand(`copy`)}finally{document.body.removeChild(e)}}t(e(`cameraTokens.toast.copied`,`Copied to clipboard`))}catch{t(e(`cameraTokens.toast.copyFailed`,`Copy failed — select and copy manually`),`error`)}};return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`streamOverlay.builder.description`,`Build the URL for a streaming overlay — a full-screen camera view with live print data drawn over it, for OBS, a wall display, or any browser source. Pick the fields you want and copy the URL.`)}),(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-printer`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.printer`,`Printer`)}),(0,G.jsxs)(`select`,{id:`overlay-builder-printer`,value:i??``,onChange:e=>a(Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,children:[n.length===0&&(0,G.jsx)(`option`,{value:``,children:e(`common.loading`,`Loading…`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-size`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.size`,`Text size`)}),(0,G.jsxs)(`select`,{id:`overlay-builder-size`,value:c,onChange:e=>l(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`small`,children:e(`streamOverlay.builder.sizeSmall`,`Small`)}),(0,G.jsx)(`option`,{value:`medium`,children:e(`streamOverlay.builder.sizeMedium`,`Medium`)}),(0,G.jsx)(`option`,{value:`large`,children:e(`streamOverlay.builder.sizeLarge`,`Large`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-fps`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.fps`,`Frame rate`)}),(0,G.jsx)(`input`,{id:`overlay-builder-fps`,type:`number`,min:1,max:30,value:u,onChange:e=>d(Math.min(Math.max(Number(e.target.value)||1,1),30)),className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`streamOverlay.builder.fpsHint`,`A1 and P1 cameras top out around 5 fps whatever you ask for.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`overlay-builder-token`,className:`block text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.token`,`Streaming Overlay token (optional)`)}),(0,G.jsx)(`input`,{id:`overlay-builder-token`,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:`bblt_…`,className:`w-full px-3 py-2 bg-bambu-dark rounded-md text-white border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none font-mono text-xs`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`streamOverlay.builder.tokenHint`,`Only needed when login is enabled: OBS has no session of its own. Create one above with the Streaming Overlay scope.`)})]})]}),(0,G.jsxs)(`fieldset`,{className:`mt-4`,children:[(0,G.jsx)(`legend`,{className:`text-sm font-medium text-white mb-2`,children:e(`streamOverlay.builder.fields`,`Fields to show`)}),(0,G.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2 md:grid-cols-3`,children:[Y6.map(t=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o.includes(t.key),onChange:()=>b(t.key),className:`accent-bambu-green`}),e(t.labelKey,t.fallback)]},t.key)),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked),className:`accent-bambu-green`}),e(`streamOverlay.builder.fieldCamera`,`Camera feed`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:e(`streamOverlay.builder.chamberHint`,`Chamber temperature only appears on models with a real chamber sensor — P1 and A1 printers report a meaningless value, so it is left out there.`)})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-1`,children:e(`streamOverlay.builder.urlTitle`,`Overlay URL`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 px-3 py-2 bg-bambu-dark rounded-md text-bambu-green text-xs break-all font-mono select-all`,children:v}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>void x(),className:`flex items-center gap-2 px-3 py-2 bg-bambu-green text-white rounded-md hover:bg-bambu-green/90`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),e(`cameraTokens.created.copy`,`Copy`)]}),(0,G.jsxs)(`a`,{href:v,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),e(`streamOverlay.builder.open`,`Open`)]})]}),m.trim()&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:e(`streamOverlay.builder.tokenWarning`,`This URL contains a token — anyone who can read it can watch the stream and see the file name. Revoke the token to cut it off.`)})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>_(e=>!e),className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary text-white rounded-md hover:bg-bambu-dark-tertiary/80 text-sm`,children:[g?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`}),g?e(`streamOverlay.builder.hidePreview`,`Hide preview`):e(`streamOverlay.builder.showPreview`,`Show preview`)]}),g&&(0,G.jsx)(`iframe`,{src:v,title:e(`streamOverlay.builder.previewTitle`,`Overlay preview`),className:`mt-3 w-full aspect-video rounded-md border border-bambu-dark-tertiary bg-black`},v)]})]})}function PWe({plug:e,onEdit:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),{data:p,isLoading:m}=K({queryKey:[`smart-plug-status`,e.id],queryFn:()=>Z.getSmartPlugStatus(e.id),refetchInterval:3e4}),{data:h}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),g=h?.find(t=>t.id===e.printer_id),_=q({mutationFn:t=>Z.controlSmartPlug(e.id,t),onMutate:async t=>{await r.cancelQueries({queryKey:[`smart-plug-status`,e.id]});let n=r.getQueryData([`smart-plug-status`,e.id]),i=t===`on`?`ON`:t===`off`||p?.state===`ON`?`OFF`:`ON`;return r.setQueryData([`smart-plug-status`,e.id],e=>({...e,state:i})),{previousStatus:n}},onError:(t,a,o)=>{o?.previousStatus&&r.setQueryData([`smart-plug-status`,e.id],o.previousStatus),i(n(`smartPlugs.failedToTurn`,{action:a,name:e.name}),`error`)},onSettled:()=>{setTimeout(()=>{r.invalidateQueries({queryKey:[`smart-plug-status`,e.id]}),r.invalidateQueries({queryKey:[`smart-plugs`]})},1e3)}}),v=q({mutationFn:t=>Z.updateSmartPlug(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),e.printer_id&&(r.invalidateQueries({queryKey:[`smartPlugByPrinter`,e.printer_id]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`,e.printer_id]}))}}),b=q({mutationFn:()=>Z.deleteSmartPlug(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),e.printer_id&&r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`,e.printer_id]})}}),x=p?.state===`ON`,S=e.plug_type===`mqtt`&&p?.energy?.power!==null&&p?.energy?.power!==void 0,C=(p?.reachable??!1)||S,w=_.isPending,T=(()=>{if(e.plug_type!==`tasmota`||!e.ip_address)return null;let t=e.ip_address;return e.username&&e.password?`http://${encodeURIComponent(e.username)}:${encodeURIComponent(e.password)}@${t}/`:`http://${t}/`})();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{className:`relative`,children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg flex-shrink-0 ${e.plug_type===`mqtt`?C?`bg-teal-100 dark:bg-teal-500/20`:`bg-red-100 dark:bg-red-500/20`:C?x?`bg-bambu-green/20`:`bg-bambu-dark`:`bg-red-100 dark:bg-red-500/20`}`,children:e.plug_type===`mqtt`?(0,G.jsx)(Bl,{className:`w-5 h-5 ${C?`text-teal-600 dark:text-teal-400`:`text-red-600 dark:text-red-400`}`}):e.plug_type===`homeassistant`?(0,G.jsx)(Bc,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`}):e.plug_type===`rest`?(0,G.jsx)(Ac,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`}):(0,G.jsx)(Pl,{className:`w-5 h-5 ${C?x?`text-bambu-green`:`text-bambu-gray`:`text-red-600 dark:text-red-400`}`})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h3`,{className:`font-medium text-white truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray truncate`,title:e.plug_type===`mqtt`?e.mqtt_topic??void 0:e.plug_type===`homeassistant`?e.ha_entity_id??void 0:e.plug_type===`rest`?e.rest_on_url??e.rest_off_url??void 0:e.ip_address??void 0,children:e.plug_type===`mqtt`?e.mqtt_topic:e.plug_type===`homeassistant`?e.ha_entity_id:e.plug_type===`rest`?e.rest_on_url||e.rest_off_url:e.ip_address})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-end gap-1 flex-shrink-0`,children:[m?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin`}):e.plug_type===`mqtt`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm whitespace-nowrap`,children:[(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-[10px] font-medium rounded flex-shrink-0`,children:`MQTT`}),C&&(0,G.jsx)(`span`,{className:`text-status-ok`,children:`✓`})]}):e.plug_type===`homeassistant`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-1 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-[10px] font-medium rounded`,children:`HA`}),(0,G.jsx)(`span`,{className:C?x?`text-status-ok`:`text-bambu-gray`:`text-status-error`,children:C?p?.state||`?`:n(`smartPlugs.offline`)})]}):e.plug_type===`rest`?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-1 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 text-[10px] font-medium rounded`,children:`REST`}),(0,G.jsx)(`span`,{className:C?x?`text-status-ok`:`text-bambu-gray`:`text-status-error`,children:C?p?.state||`?`:n(`smartPlugs.offline`)})]}):C?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4 text-status-ok`}),(0,G.jsx)(`span`,{className:x?`text-status-ok`:`text-bambu-gray`,children:p?.state||n(`smartPlugs.unknown`)})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm text-status-error`,children:[(0,G.jsx)(Zu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:n(`smartPlugs.offline`)})]}),T&&(0,G.jsxs)(`a`,{href:T,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 px-2 py-0.5 bg-bambu-dark hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white text-xs rounded-full transition-colors`,title:n(`smartPlugs.openPlugAdminPage`),children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),n(`smartPlugs.admin`)]})]})]}),g&&(0,G.jsxs)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[n(`smartPlugs.linkedTo`),` `]}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:g.name})]}),(e.power_alert_enabled||e.schedule_enabled||e.plug_type===`mqtt`)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5 mb-3`,children:[e.plug_type===`mqtt`&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-xs rounded-full`,children:[(0,G.jsx)(ac,{className:`w-3 h-3`}),n(`smartPlugs.monitorOnly`)]}),e.power_alert_enabled&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-xs rounded-full`,children:[(0,G.jsx)(qo,{className:`w-3 h-3`}),n(`smartPlugs.alerts`)]}),e.schedule_enabled&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-xs rounded-full`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),e.schedule_on_time&&e.schedule_off_time?`${e.schedule_on_time} - ${e.schedule_off_time}`:e.schedule_on_time?n(`smartPlugs.scheduleOn`,{time:e.schedule_on_time}):n(`smartPlugs.scheduleOff`,{time:e.schedule_off_time})]})]}),e.plug_type!==`mqtt`&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-3`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:x?`primary`:`secondary`,disabled:!C||w,onClick:()=>c(!0),className:`flex-1`,children:[w?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ll,{className:`w-4 h-4`}),n(`smartPlugs.on`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:x?`secondary`:`primary`,disabled:!C||w,onClick:()=>u(!0),className:`flex-1`,children:[w?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Il,{className:`w-4 h-4`}),n(`smartPlugs.off`)]})]}),e.plug_type===`mqtt`&&p?.energy&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-3 px-3 py-2 bg-bambu-dark rounded-lg`,children:[p.energy.power!==null&&p.energy.power!==void 0&&(0,G.jsxs)(`div`,{className:`flex-1 text-center`,children:[(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[Math.round(p.energy.power),`W`]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.power`)})]}),p.energy.today!==null&&p.energy.today!==void 0&&(0,G.jsxs)(`div`,{className:`flex-1 text-center border-l border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:p.energy.today.toFixed(3)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.kwhToday`)})]})]}),(0,G.jsxs)(`button`,{onClick:()=>f(!d),className:`w-full flex items-center justify-between py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),e.plug_type===`mqtt`?n(`smartPlugs.settings`):n(`smartPlugs.automationSettings`)]}),(0,G.jsx)(`span`,{children:d?`-`:`+`})]}),d&&(0,G.jsxs)(`div`,{className:`pt-3 border-t border-bambu-dark-tertiary space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.showInSwitchbar`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.quickAccessSidebar`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.show_in_switchbar,onChange:e=>v.mutate({show_in_switchbar:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.printer_id!=null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ll,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.controlsPrinterPower`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.controlsPrinterPowerDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.controls_printer_power,onChange:e=>v.mutate({controls_printer_power:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.plug_type!==`mqtt`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.enabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.enableAutomation`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.enabled,onChange:e=>v.mutate({enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOn`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOnDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_on,onChange:e=>v.mutate({auto_on:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOff`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off,onChange:e=>v.mutate({auto_off:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOffPersistent`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffPersistentDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off_persistent,onChange:e=>v.mutate({auto_off_persistent:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off&&(0,G.jsxs)(`div`,{className:`space-y-3 pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white mb-2`,children:n(`smartPlugs.turnOffDelayMode`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>v.mutate({off_delay_mode:`time`}),className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${e.off_delay_mode===`time`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(js,{className:`w-4 h-4`}),n(`smartPlugs.time`)]}),(0,G.jsxs)(`button`,{onClick:()=>v.mutate({off_delay_mode:`temperature`}),className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${e.off_delay_mode===`temperature`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Mu,{className:`w-4 h-4`}),n(`smartPlugs.temp`)]})]})]}),e.off_delay_mode===`time`?(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.delayMinutes`)}),(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`60`,value:e.off_delay_minutes,onChange:e=>v.mutate({off_delay_minutes:parseInt(e.target.value)||5}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`})]}):(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.tempThreshold`)}),(0,G.jsx)(`input`,{type:`number`,min:`30`,max:`100`,value:e.off_temp_threshold,onChange:e=>v.mutate({off_temp_threshold:parseInt(e.target.value)||70}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`smartPlugs.tempThresholdDescription`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.autoOffAfterDrying`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.autoOffAfterDryingDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.auto_off_after_drying,onChange:e=>v.mutate({auto_off_after_drying:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.auto_off_after_drying&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`smartPlugs.delayAfterDryingMinutes`)}),(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`120`,value:e.off_delay_after_drying_minutes,onChange:e=>v.mutate({off_delay_after_drying_minutes:parseInt(e.target.value)||10}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>t(e),className:`flex-1`,children:[(0,G.jsx)(kl,{className:`w-4 h-4`}),n(`smartPlugs.edit`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>o(!0),className:`text-red-600 dark:text-red-400 hover:text-red-700 dark:hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})}),a&&(0,G.jsx)(of,{title:n(`smartPlugs.deleteSmartPlug`),message:n(`smartPlugs.deleteConfirm`,{name:e.name}),confirmText:n(`smartPlugs.delete`),variant:`danger`,onConfirm:()=>{b.mutate(),o(!1)},onCancel:()=>o(!1)}),s&&(0,G.jsx)(of,{title:n(`smartPlugs.turnOnSmartPlug`),message:n(`smartPlugs.turnOnConfirm`,{name:e.name}),confirmText:n(`smartPlugs.turnOn`),variant:`default`,onConfirm:()=>{_.mutate(`on`),c(!1)},onCancel:()=>c(!1)}),l&&(0,G.jsx)(of,{title:n(`smartPlugs.turnOffSmartPlug`),message:n(`smartPlugs.turnOffConfirm`,{name:e.name}),confirmText:n(`smartPlugs.turnOff`),variant:`danger`,onConfirm:()=>{_.mutate(`off`),u(!1)},onCancel:()=>u(!1)})]})}function FWe({plug:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,[a,o]=(0,y.useState)(e?.plug_type||`tasmota`),[s,c]=(0,y.useState)(e?.name||``),[l,u]=(0,y.useState)(e?.ip_address||``),[d,f]=(0,y.useState)(e?.username||``),[p,m]=(0,y.useState)(e?.password||``),[h,g]=(0,y.useState)(e?.ha_entity_id||``),[_,v]=(0,y.useState)(e?.mqtt_power_topic||e?.mqtt_topic||``),[b,x]=(0,y.useState)(e?.mqtt_power_path||``),[S,C]=(0,y.useState)((e?.mqtt_power_multiplier??e?.mqtt_multiplier??1).toString()),[w,T]=(0,y.useState)(e?.mqtt_energy_topic||``),[E,D]=(0,y.useState)(e?.mqtt_energy_path||``),[O,k]=(0,y.useState)((e?.mqtt_energy_multiplier??1).toString()),[A,j]=(0,y.useState)(e?.mqtt_state_topic||``),[M,N]=(0,y.useState)(e?.mqtt_state_path||``),[P,F]=(0,y.useState)(e?.mqtt_state_on_value||``),[I,L]=(0,y.useState)(e?.rest_on_url||``),[R,z]=(0,y.useState)(e?.rest_on_body||``),[B,V]=(0,y.useState)(e?.rest_off_url||``),[ee,te]=(0,y.useState)(e?.rest_off_body||``),[ne,re]=(0,y.useState)(e?.rest_method||`POST`),[ie,ae]=(0,y.useState)(e?.rest_headers||``),[oe,se]=(0,y.useState)(e?.rest_status_url||``),[H,ce]=(0,y.useState)(e?.rest_status_path||``),[le,ue]=(0,y.useState)(e?.rest_status_on_value||``),[de,fe]=(0,y.useState)(e?.rest_power_url||``),[pe,me]=(0,y.useState)(e?.rest_power_path||``),[he,ge]=(0,y.useState)((e?.rest_power_multiplier??1).toString()),[_e,ve]=(0,y.useState)(e?.rest_energy_url||``),[ye,be]=(0,y.useState)(e?.rest_energy_path||``),[xe,Se]=(0,y.useState)((e?.rest_energy_multiplier??1).toString()),[Ce,we]=(0,y.useState)(e?.rest_energy_total_path||``),[Te,Ee]=(0,y.useState)((e?.rest_energy_total_multiplier??1).toString()),[De,Oe]=(0,y.useState)(e?.ha_power_entity||``),[ke,Ae]=(0,y.useState)(e?.ha_energy_today_entity||``),[je,Me]=(0,y.useState)(e?.ha_energy_total_entity||``),[Ne,Pe]=(0,y.useState)(``),[Fe,Ie]=(0,y.useState)(``),[Le,Re]=(0,y.useState)(!1),ze=(0,y.useRef)(null),[Be,Ve]=(0,y.useState)(``),[He,Ue]=(0,y.useState)(!1),We=(0,y.useRef)(null),[Ge,Ke]=(0,y.useState)(``),[qe,Je]=(0,y.useState)(!1),Ye=(0,y.useRef)(null),[Xe,Ze]=(0,y.useState)(``),[Qe,$e]=(0,y.useState)(!1),et=(0,y.useRef)(null),[tt,nt]=(0,y.useState)(e?.printer_id||null),[rt,it]=(0,y.useState)(e?.controls_printer_power??!0),[at,ot]=(0,y.useState)(null),[st,ct]=(0,y.useState)(null),[lt,ut]=(0,y.useState)(e?.power_alert_enabled||!1),[dt,ft]=(0,y.useState)(e?.power_alert_high?.toString()||``),[pt,mt]=(0,y.useState)(e?.power_alert_low?.toString()||``),[ht,gt]=(0,y.useState)(e?.schedule_enabled||!1),[_t,vt]=(0,y.useState)(e?.schedule_on_time||``),[yt,bt]=(0,y.useState)(e?.schedule_off_time||``),[xt,St]=(0,y.useState)(e?.show_in_switchbar||!1),[Ct,wt]=(0,y.useState)(e?.show_on_printer_card??!0),[Tt,Et]=(0,y.useState)(!1),[Dt,Ot]=(0,y.useState)({scanned:0,total:0}),[kt,At]=(0,y.useState)([]),jt=(0,y.useRef)(null),{data:Mt}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:Nt}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:Pt}=K({queryKey:[`settings`],queryFn:Z.getSettings}),Ft=!!(Pt?.ha_enabled&&Pt?.ha_url&&Pt?.ha_token);(0,y.useEffect)(()=>{let e=setTimeout(()=>{Ie(Ne)},300);return()=>clearTimeout(e)},[Ne]),(0,y.useEffect)(()=>{let e=e=>{ze.current&&!ze.current.contains(e.target)&&Re(!1),We.current&&!We.current.contains(e.target)&&Ue(!1),Ye.current&&!Ye.current.contains(e.target)&&Je(!1),et.current&&!et.current.contains(e.target)&&$e(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let{data:It,isLoading:Lt,error:Rt}=K({queryKey:[`ha-entities`,Fe],queryFn:()=>Z.getHAEntities(Fe||void 0),enabled:a===`homeassistant`&&Ft,retry:!1,staleTime:0}),{data:zt}=K({queryKey:[`ha-sensor-entities`],queryFn:Z.getHASensorEntities,enabled:a===`homeassistant`&&Ft,retry:!1,staleTime:0});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e),jt.current&&clearInterval(jt.current)}},[t]);let Bt=async()=>{Et(!0),At([]),Ot({scanned:0,total:0}),ct(null);try{await Z.startTasmotaScan();let e=async()=>{try{let e=await Z.getTasmotaScanStatus();Ot({scanned:e.scanned,total:e.total}),At(await Z.getDiscoveredTasmotaDevices()),e.running||(Et(!1),jt.current&&=(clearInterval(jt.current),null))}catch(e){console.error(`Polling error:`,e)}};await e(),jt.current=setInterval(e,500)}catch(e){Et(!1),ct((e instanceof Error?e.message:typeof e==`string`?e:JSON.stringify(e))||n(`smartPlugs.failedToStartScan`))}},Vt=async()=>{try{await Z.stopTasmotaScan()}catch{}Et(!1),jt.current&&=(clearInterval(jt.current),null)},Ht=e=>{u(e.ip_address),c(e.name),ot(null)},Ut=q({mutationFn:()=>Z.testSmartPlugConnection(l,d||null,p||null),onSuccess:e=>{ot(e),ct(null),!s&&e.device_name&&c(e.device_name)},onError:e=>{ot(null),ct(e.message)}}),Wt=q({mutationFn:e=>Z.createSmartPlug(e),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`]}),t()},onError:e=>{ct(e.message)}}),Gt=q({mutationFn:t=>Z.updateSmartPlug(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`smart-plugs`]}),r.invalidateQueries({queryKey:[`scriptPlugsByPrinter`]}),t()},onError:e=>{ct(e.message)}}),Kt=Mt?.filter(t=>a===`tasmota`?!Nt?.some(n=>n.printer_id===t.id&&n.id!==e?.id&&n.plug_type===`tasmota`):!0),qt=e=>{if(e.preventDefault(),ct(null),!s.trim()){ct(n(`smartPlugs.nameRequired`));return}if(a===`tasmota`&&!l.trim()){ct(`IP address is required for Tasmota plugs`);return}if(a===`homeassistant`&&!h){ct(n(`smartPlugs.entityRequired`));return}if(a===`mqtt`){let e=_.trim(),t=w.trim(),r=A.trim();if(!e&&!t&&!r){ct(n(`smartPlugs.mqttTopicRequired`));return}}if(a===`rest`&&!I.trim()&&!B.trim()){ct(n(`smartPlugs.restUrlRequired`));return}let t={name:s.trim(),plug_type:a,ip_address:a===`tasmota`?l.trim():null,ha_entity_id:a===`homeassistant`?h:null,ha_power_entity:a===`homeassistant`&&De||null,ha_energy_today_entity:a===`homeassistant`&&ke||null,ha_energy_total_entity:a===`homeassistant`&&je||null,mqtt_power_topic:a===`mqtt`&&_.trim()||null,mqtt_power_path:a===`mqtt`&&b.trim()||null,mqtt_power_multiplier:a===`mqtt`&&parseFloat(S)||1,mqtt_energy_topic:a===`mqtt`&&w.trim()||null,mqtt_energy_path:a===`mqtt`&&E.trim()||null,mqtt_energy_multiplier:a===`mqtt`&&parseFloat(O)||1,mqtt_state_topic:a===`mqtt`&&A.trim()||null,mqtt_state_path:a===`mqtt`&&M.trim()||null,mqtt_state_on_value:a===`mqtt`&&P.trim()||null,rest_on_url:a===`rest`&&I.trim()||null,rest_on_body:a===`rest`&&R.trim()||null,rest_off_url:a===`rest`&&B.trim()||null,rest_off_body:a===`rest`&&ee.trim()||null,rest_method:a===`rest`?ne:null,rest_headers:a===`rest`&&ie.trim()||null,rest_status_url:a===`rest`&&oe.trim()||null,rest_status_path:a===`rest`&&H.trim()||null,rest_status_on_value:a===`rest`&&le.trim()||null,rest_power_url:a===`rest`&&de.trim()||null,rest_power_path:a===`rest`&&pe.trim()||null,rest_power_multiplier:a===`rest`&&parseFloat(he)||1,rest_energy_url:a===`rest`&&_e.trim()||null,rest_energy_path:a===`rest`&&ye.trim()||null,rest_energy_multiplier:a===`rest`&&parseFloat(xe)||1,rest_energy_total_path:a===`rest`&&Ce.trim()||null,rest_energy_total_multiplier:a===`rest`&&parseFloat(Te)||1,username:a===`tasmota`&&d.trim()||null,password:a===`tasmota`&&p.trim()||null,printer_id:tt,controls_printer_power:rt,power_alert_enabled:lt,power_alert_high:dt?parseFloat(dt):null,power_alert_low:pt?parseFloat(pt):null,schedule_enabled:ht,schedule_on_time:_t||null,schedule_off_time:yt||null,show_in_switchbar:xt,show_on_printer_card:Ct};i?Gt.mutate(t):Wt.mutate(t)},Jt=Wt.isPending||Gt.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(i?`smartPlugs.editTitle`:`smartPlugs.addTitle`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:qt,className:`p-6 space-y-4 overflow-y-auto`,children:[st&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:st}),!i&&(0,G.jsxs)(`div`,{className:`flex gap-2 mb-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`tasmota`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`tasmota`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4`}),`Tasmota`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`homeassistant`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`homeassistant`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Bc,{className:`w-4 h-4`}),`HA`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`mqtt`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`mqtt`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Bl,{className:`w-4 h-4`}),`MQTT`]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o(`rest`),ot(null),ct(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2.5 rounded-lg font-medium transition-colors ${a===`rest`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4`}),`REST`]})]}),!i&&a===`tasmota`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[Tt?(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:Vt,className:`w-full`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),n(`smartPlugs.stopScanning`)]}):(0,G.jsxs)(Q,{type:`button`,variant:`primary`,onClick:Bt,className:`w-full`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4`}),n(`smartPlugs.discoverTasmota`)]}),Tt&&Dt.total>0&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:n(`smartPlugs.addSmartPlug.scanningNetwork`)}),(0,G.jsxs)(`span`,{children:[Dt.scanned,` / `,Dt.total]})]}),(0,G.jsx)(`div`,{className:`w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-2 rounded-full transition-all duration-300`,style:{width:`${Dt.scanned/Dt.total*100}%`}})})]}),kt.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.foundDevices`,{count:kt.length})}),(0,G.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-1`,children:kt.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>Ht(e),className:`w-full flex items-center justify-between p-2 bg-bambu-dark hover:bg-bambu-dark-tertiary rounded-lg transition-colors text-left border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e.ip_address})]})]}),e.state&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs ${e.state===`ON`?`text-bambu-green`:`text-bambu-gray`}`,children:[(0,G.jsx)(Ll,{className:`w-3 h-3`}),e.state]})]},e.ip_address))})]}),!Tt&&kt.length===0&&Dt.total>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray text-center py-2`,children:n(`smartPlugs.noDevicesFound`)})]}),a===`homeassistant`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!Ft&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[n(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:n(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 opacity-50`,children:n(`smartPlugs.selectEntity`)}),(0,G.jsx)(`select`,{disabled:!0,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray cursor-not-allowed opacity-50`,children:(0,G.jsx)(`option`,{children:n(`smartPlugs.addSmartPlug.chooseEntity`)})})]})]}),Ft&&(0,G.jsxs)(G.Fragment,{children:[Lt&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-4 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),n(`smartPlugs.loadingEntities`)]}),Rt&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:n(`smartPlugs.failedToLoadEntities`,{error:Rt.message})}),(()=>{let t=Nt?.filter(t=>t.ha_entity_id&&t.id!==e?.id).map(e=>e.ha_entity_id)||[],r=(It||[]).filter(e=>!t.includes(e.entity_id)),i=It?.find(e=>e.entity_id===h);return(0,G.jsxs)(`div`,{ref:ze,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.selectEntity`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:Le?Ne:i?`${i.friendly_name} (${i.entity_id})`:``,onChange:e=>{Pe(e.target.value),Le||Re(!0)},onFocus:()=>{Re(!0),Pe(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEntities`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),h&&!Le&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{g(``),Pe(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})}),Lt&&(0,G.jsx)(Y,{className:`absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray animate-spin`})]}),Le&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-60 overflow-y-auto`,children:[Lt&&(0,G.jsxs)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`smartPlugs.loading`)]}),!Lt&&r.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:Fe?n(`smartPlugs.noEntitiesMatching`,{search:Fe}):n(`smartPlugs.noEntitiesAvailable`)}),!Lt&&r.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{g(e.entity_id),Re(!1),Pe(``),s||c(e.friendly_name)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary transition-colors ${e.entity_id===h?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray flex items-center justify-between`,children:[(0,G.jsx)(`span`,{children:e.entity_id}),(0,G.jsx)(`span`,{className:e.state===`on`?`text-bambu-green`:``,children:e.state})]})]},e.entity_id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(Fe?`smartPlugs.searchingEntities`:`smartPlugs.showingEntities`,{count:r.length})})]})})(),h&&zt&&zt.length>0&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4 mt-4 space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:n(`smartPlugs.energyMonitoringOptional`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:n(`smartPlugs.energyMonitoringHint`)})]}),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`W`||e.unit_of_measurement===`kW`||e.unit_of_measurement===`mW`),t=Be?e.filter(e=>e.entity_id.toLowerCase().includes(Be.toLowerCase())||e.friendly_name.toLowerCase().includes(Be.toLowerCase())):e,r=zt.find(e=>e.entity_id===De);return(0,G.jsxs)(`div`,{ref:We,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.powerSensorW`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:He?Be:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ve(e.target.value),He||Ue(!0)},onFocus:()=>{Ue(!0),Ve(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchPowerSensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),De&&!He&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Oe(``),Ve(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),He&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Oe(``),Ue(!1),Ve(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Oe(e.entity_id),Ue(!1),Ve(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===De?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})(),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`kWh`||e.unit_of_measurement===`Wh`||e.unit_of_measurement===`MWh`),t=Ge?e.filter(e=>e.entity_id.toLowerCase().includes(Ge.toLowerCase())||e.friendly_name.toLowerCase().includes(Ge.toLowerCase())):e,r=zt.find(e=>e.entity_id===ke);return(0,G.jsxs)(`div`,{ref:Ye,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.energyTodayKwh`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:qe?Ge:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ke(e.target.value),qe||Je(!0)},onFocus:()=>{Je(!0),Ke(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEnergySensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),ke&&!qe&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ae(``),Ke(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),qe&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Ae(``),Je(!1),Ke(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Ae(e.entity_id),Je(!1),Ke(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===ke?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})(),(()=>{let e=zt.filter(e=>e.unit_of_measurement===`kWh`||e.unit_of_measurement===`Wh`||e.unit_of_measurement===`MWh`),t=Xe?e.filter(e=>e.entity_id.toLowerCase().includes(Xe.toLowerCase())||e.friendly_name.toLowerCase().includes(Xe.toLowerCase())):e,r=zt.find(e=>e.entity_id===je);return(0,G.jsxs)(`div`,{ref:et,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.totalEnergyKwh`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:Qe?Xe:r?`${r.friendly_name} (${r.state} ${r.unit_of_measurement})`:``,onChange:e=>{Ze(e.target.value),Qe||$e(!0)},onFocus:()=>{$e(!0),Ze(``)},placeholder:n(`smartPlugs.addSmartPlug.placeholders.searchEnergySensors`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),je&&!Qe&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Me(``),Ze(``)},className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(nd,{className:`w-4 h-4 text-bambu-gray hover:text-white`})})]}),Qe&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>{Me(``),$e(!1),Ze(``)},className:`w-full px-3 py-2 text-left text-sm text-bambu-gray hover:bg-bambu-dark-tertiary`,children:n(`smartPlugs.none`)}),t.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{Me(e.entity_id),$e(!1),Ze(``)},className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.entity_id===je?`bg-bambu-green/20 text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,` • `,e.state,` `,e.unit_of_measurement]})]},e.entity_id)),t.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:n(`smartPlugs.noMatchingSensors`)})]})]})})()]})]})]}),a===`mqtt`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[!Pt?.mqtt_broker&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[n(`smartPlugs.mqttNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:n(`smartPlugs.mqttSettingsPath`)}),` `,n(`smartPlugs.mqttNotConfiguredSuffix`)]}),Pt?.mqtt_broker&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg text-sm text-blue-700 dark:text-blue-300`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:n(`smartPlugs.monitorOnly`)}),(0,G.jsx)(`p`,{className:`text-xs opacity-80`,children:n(`smartPlugs.mqttMonitorOnlyDescription`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm`,children:n(`smartPlugs.powerMonitoring`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`zigbee2mqtt/shelly-working-room`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:`power_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.multiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttPowerHint`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.energyMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:`Same as power topic, or different`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:E,onChange:e=>D(e.target.value),placeholder:`energy_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.multiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:O,onChange:e=>k(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttEnergyHint`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.stateMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.topic`)}),(0,G.jsx)(`input`,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:`Same as power topic, or different`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.jsonPath`)}),(0,G.jsx)(`input`,{type:`text`,value:M,onChange:e=>N(e.target.value),placeholder:`state_l1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.onValue`)}),(0,G.jsx)(`input`,{type:`text`,value:P,onChange:e=>F(e.target.value),placeholder:n(`smartPlugs.addSmartPlug.placeholders.mqttStateOnValue`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,style:{whiteSpace:`pre-line`},children:n(`smartPlugs.mqttStateHint`)})]})]})]}),a===`rest`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm`,children:n(`smartPlugs.restControl`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restMethod`)}),(0,G.jsxs)(`select`,{value:ne,onChange:e=>re(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`GET`,children:`GET`}),(0,G.jsx)(`option`,{value:`POST`,children:`POST`}),(0,G.jsx)(`option`,{value:`PUT`,children:`PUT`}),(0,G.jsx)(`option`,{value:`PATCH`,children:`PATCH`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restOnUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:I,onChange:e=>{L(e.target.value),ot(null)},placeholder:`http://openhab:8080/rest/items/MyPlug`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restOnBody`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>z(e.target.value),placeholder:n(`smartPlugs.restBodyHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restOffUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:B,onChange:e=>{V(e.target.value),ot(null)},placeholder:`http://openhab:8080/rest/items/MyPlug`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restOffBody`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:ee,onChange:e=>te(e.target.value),placeholder:n(`smartPlugs.restBodyHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.restHeaders`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`textarea`,{value:ie,onChange:e=>ae(e.target.value),placeholder:n(`smartPlugs.restHeadersHint`),rows:2,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none font-mono text-sm`})})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.stateMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:oe,onChange:e=>se(e.target.value),placeholder:n(`smartPlugs.restStatusHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusPath`)}),(0,G.jsx)(`input`,{type:`text`,value:H,onChange:e=>ce(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restStatusOnValue`)}),(0,G.jsx)(`input`,{type:`text`,value:le,onChange:e=>ue(e.target.value),placeholder:`ON`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`p`,{className:`text-white font-medium text-sm`,children:[n(`smartPlugs.energyMonitoring`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restPowerUrl`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:de,onChange:e=>fe(e.target.value),placeholder:n(`smartPlugs.restPowerUrlHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restPowerPath`)}),(0,G.jsx)(`input`,{type:`text`,value:pe,onChange:e=>me(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restPowerMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:he,onChange:e=>ge(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`smartPlugs.restEnergyUrl`),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,n(`smartPlugs.optional`),`)`]})]}),(0,G.jsx)(`input`,{type:`text`,value:_e,onChange:e=>ve(e.target.value),placeholder:n(`smartPlugs.restEnergyUrlHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyPath`)}),(0,G.jsx)(`input`,{type:`text`,value:ye,onChange:e=>be(e.target.value),placeholder:n(`smartPlugs.restPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:xe,onChange:e=>Se(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.restEnergyHint`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyTotalPath`)}),(0,G.jsx)(`input`,{type:`text`,value:Ce,onChange:e=>we(e.target.value),placeholder:n(`smartPlugs.restEnergyTotalPathHint`),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.restEnergyTotalMultiplier`)}),(0,G.jsx)(`input`,{type:`text`,value:Te,onChange:e=>Ee(e.target.value),placeholder:`1`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.restEnergyTotalHint`)})]}),(I.trim()||B.trim())&&(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:async()=>{ot(null);try{let e=I.trim()||B.trim(),t=await Z.testRESTConnection(e,ne,ie.trim()||null);ot({success:t.success}),t.success||ct(t.error||n(`smartPlugs.addSmartPlug.connectionFailed`))}catch{ot({success:!1}),ct(n(`smartPlugs.addSmartPlug.connectionFailed`))}},className:`w-full`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4`}),n(`smartPlugs.testConnection`)]})}),at&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm ${at.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[at.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Zu,{className:`w-4 h-4`}),at.success?n(`smartPlugs.connectionSuccess`):n(`smartPlugs.addSmartPlug.connectionFailed`)]})]}),a===`tasmota`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.ipAddress`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>{u(e.target.value),ot(null)},placeholder:`192.168.1.100`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>Ut.mutate(),disabled:!l.trim()||Ut.isPending,children:[Ut.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Qu,{className:`w-4 h-4`}),n(`smartPlugs.test`)]})]})]}),a===`tasmota`&&at&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg flex items-center gap-2 ${at.success?`bg-bambu-green/20 border border-bambu-green/50 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 border border-red-400 dark:border-red-500/50 text-red-700 dark:text-red-400`}`,children:at.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-5 h-5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`smartPlugs.connectedResult`)}),(0,G.jsxs)(`p`,{className:`text-sm opacity-80`,children:[at.device_name&&n(`smartPlugs.deviceLabel`,{name:at.device_name}),n(`smartPlugs.stateLabel`,{state:at.state})]})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Zu,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:n(`smartPlugs.addSmartPlug.connectionFailed`)})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:n(`smartPlugs.addSmartPlug.placeholders.plugName`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),a===`tasmota`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.username`)}),(0,G.jsx)(`input`,{type:`text`,value:d,onChange:e=>f(e.target.value),placeholder:`admin`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.password`)}),(0,G.jsx)(`input`,{type:`password`,value:p,onChange:e=>m(e.target.value),placeholder:`********`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray -mt-2`,children:n(`smartPlugs.authHint`)})]}),a!==`mqtt`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.linkToPrinter`)}),(0,G.jsxs)(`select`,{value:tt??``,onChange:e=>nt(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:n(`smartPlugs.noPrinter`)}),Kt?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`smartPlugs.linkingDescription`)}),tt!==null&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-3`,children:[(0,G.jsxs)(`div`,{className:`pr-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`smartPlugs.controlsPrinterPower`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.controlsPrinterPowerDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer shrink-0`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:rt,onChange:e=>it(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]}),(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(qo,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.powerAlerts`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:lt,onChange:e=>ut(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),lt&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.alertAbove`)}),(0,G.jsx)(`input`,{type:`number`,value:dt,onChange:e=>ft(e.target.value),placeholder:`e.g. 200`,min:`0`,max:`5000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.alertBelow`)}),(0,G.jsx)(`input`,{type:`number`,value:pt,onChange:e=>mt(e.target.value),placeholder:`e.g. 10`,min:`0`,max:`5000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.alertDescription`)})]})]}),a!==`mqtt`&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.dailySchedule`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ht,onChange:e=>gt(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),ht&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.turnOnAt`)}),(0,G.jsx)(`input`,{type:`time`,value:_t,onChange:e=>vt(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`smartPlugs.turnOffAt`)}),(0,G.jsx)(`input`,{type:`time`,value:yt,onChange:e=>bt(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.scheduleDescription`)})]})]}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.showInSwitchbar`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.quickAccessSidebar`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:xt,onChange:e=>St(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})}),a===`homeassistant`&&(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white font-medium`,children:n(`smartPlugs.showOnPrinterCard`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`smartPlugs.displayOnPrinterCard`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ct,onChange:e=>wt(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`smartPlugs.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:Jt,className:`flex-1`,children:[Jt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),n(i?`smartPlugs.save`:`smartPlugs.add`)]})]})]})]})})}function IWe({sensor:e,printers:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),o=!!e,[s,c]=(0,y.useState)(e?.printer_id??t[0]?.id??``),[l,u]=(0,y.useState)(e?.entity_id??``),[d,f]=(0,y.useState)(e?.kind??`binary`),[p,m]=(0,y.useState)(e?.device_class??null),[h,g]=(0,y.useState)(e?.unit??null),[_,v]=(0,y.useState)(e?.name??``),[b,x]=(0,y.useState)(e?.alert_state??``),[S,C]=(0,y.useState)(e?.alert_above?.toString()??``),[w,T]=(0,y.useState)(e?.alert_below?.toString()??``),[E,D]=(0,y.useState)(e?.show_on_printer_card??!0),[O,k]=(0,y.useState)(e?.notify_on_alert??!1),[A,j]=(0,y.useState)(e?.block_print??!1),[M,N]=(0,y.useState)(``),[P,F]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let{data:I}=K({queryKey:[`settings`],queryFn:Z.getSettings}),L=!!(I?.ha_enabled&&I?.ha_url&&I?.ha_token),{data:R,isLoading:z,error:B}=K({queryKey:[`bindableHAEntities`],queryFn:()=>Z.getBindableHAEntities(),enabled:L}),V=(0,y.useMemo)(()=>{let e=M.trim().toLowerCase(),t=R??[];return e?t.filter(t=>t.entity_id.toLowerCase().includes(e)||t.friendly_name.toLowerCase().includes(e)):t},[R,M]),ee=e=>{u(e.entity_id),m(e.device_class),g(e.unit_of_measurement);let t=e.domain===`binary_sensor`?`binary`:`numeric`;f(t),t===`numeric`?x(``):(C(``),T(``)),_.trim()||v(e.friendly_name.slice(0,100))},te=()=>{i.invalidateQueries({queryKey:[`haSensors`]}),i.invalidateQueries({queryKey:[`haSensorReadings`]})},ne=q({mutationFn:()=>{let t={name:_.trim(),entity_id:l,kind:d,device_class:p,unit:h,alert_state:d===`binary`&&b?b:null,alert_above:d===`numeric`&&S!==``?Number(S):null,alert_below:d===`numeric`&&w!==``?Number(w):null,block_print:A,notify_on_alert:O,show_on_printer_card:E};return o?Z.updateHASensor(e.id,t):Z.createHASensor({...t,printer_id:Number(s)})},onSuccess:()=>{te(),a(r(o?`haSensors.toast.updated`:`haSensors.toast.created`),`success`),n()},onError:e=>F(e.message)}),re=q({mutationFn:()=>Z.deleteHASensor(e.id),onSuccess:()=>{te(),a(r(`haSensors.toast.deleted`),`success`),n()},onError:e=>F(e.message)}),ie=d===`binary`?b!==``:S!==``||w!==``,ae=e=>{if(e.preventDefault(),F(null),!l)return F(r(`haSensors.error.pickEntity`));if(!_.trim())return F(r(`haSensors.error.nameRequired`));if(s===``)return F(r(`haSensors.error.printerRequired`));if((A||O)&&!ie)return F(r(`haSensors.error.alertRequired`));ne.mutate()},oe=MT[p??``],se=e=>{let t=oe?.[e]??e;return r(`haSensors.states.${t}`,{defaultValue:t})},H=ne.isPending||re.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Tc,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(o?`haSensors.editTitle`:`haSensors.addTitle`)})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:ae,className:`p-6 space-y-4`,children:[P&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:P}),!o&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.printer`)}),(0,G.jsx)(`select`,{value:s,onChange:e=>c(e.target.value===``?``:Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),!L&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[r(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:r(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 ${L?``:`opacity-50`}`,children:r(`haSensors.entity`)}),B&&(0,G.jsx)(`div`,{className:`p-3 mb-2 bg-red-100 dark:bg-red-500/20 rounded-lg text-sm text-red-700 dark:text-red-400`,children:B.message}),(0,G.jsxs)(`div`,{className:`relative mb-2`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:M,onChange:e=>N(e.target.value),placeholder:r(`haSensors.searchPlaceholder`),disabled:!L,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,G.jsxs)(`div`,{className:`max-h-44 overflow-y-auto rounded-lg border border-bambu-dark-tertiary ${L?``:`opacity-50`}`,children:[!L&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),L&&z&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.loading`)]}),L&&!z&&V.length===0&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),L&&!z&&V.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>ee(e),className:`w-full text-left px-3 py-2 text-sm transition-colors ${e.entity_id===l?`bg-bambu-green/20 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,e.state!==null&&` — ${e.state}`,e.unit_of_measurement?` ${e.unit_of_measurement}`:``]})]},e.entity_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.name`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.alertWhen`)}),d===`binary`?(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:[(0,G.jsx)(`option`,{value:``,children:r(`haSensors.alertNever`)}),(0,G.jsx)(`option`,{value:`on`,children:se(`on`)}),(0,G.jsx)(`option`,{value:`off`,children:se(`off`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:S,onChange:e=>C(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:w,onChange:e=>T(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(`haSensors.alertHint`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`haSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked),disabled:!ie,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${ie?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A,onChange:e=>j(e.target.checked),disabled:!ie,className:`w-4 h-4 mt-0.5`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`span`,{className:`block text-sm ${ie?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.blockPrint`)}),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray`,children:r(`haSensors.blockPrintHint`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2`,children:[o?(0,G.jsx)(Q,{type:`button`,variant:`danger`,onClick:()=>re.mutate(),disabled:H,children:r(`common.delete`)}):(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:H,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:H||!L&&!o,children:[H?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})]})]})]})]})})}function Z6({open:e,onClose:t,onPickLocation:n,startCreating:r}){let{t:i}=U(),a=co(),{showToast:o}=qd(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(null),{data:h=[],isLoading:g}=K({queryKey:v6,queryFn:Z.getLocations,enabled:e}),{data:_=[]}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors(),enabled:e}),v=_.reduce((e,t)=>(e[t.location_id]=(e[t.location_id]??0)+1,e),{}),b=()=>{y6(a),a.invalidateQueries({queryKey:[`inventory-spools`]}),a.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),a.invalidateQueries({queryKey:[`locationHaSensors`]}),a.invalidateQueries({queryKey:[`locationHaSensorReadings`]})},x=q({mutationFn:async()=>{let e=d.trim();if(!e)throw Error(i(`locations.nameRequired`));return l?Z.updateLocation(l.id,{name:e}):Z.createLocation({name:e})},onSuccess:e=>{if(o(i(l?`locations.updated`:`locations.created`),`success`),b(),!l&&r){n?.(e.id),t();return}c(!1),u(null),f(``)},onError:e=>{o(e.message||i(`locations.saveFailed`),`error`)}}),S=q({mutationFn:e=>Z.deleteLocation(e),onSuccess:()=>{o(i(`locations.deleted`),`success`),m(null),b()},onError:e=>{o(e.message||i(`locations.deleteFailed`),`error`)}}),C=()=>{u(null),f(``),c(!0)};(0,y.useEffect)(()=>{e&&r&&(u(null),f(``),c(!0))},[e,r]);let w=e=>{u(e),f(e.name),c(!0)},T=(0,y.useCallback)(()=>{if(!x.isPending){if(r){t();return}c(!1),u(null),f(``)}},[x.isPending,r,t]);(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(x.isPending||S.isPending||(s?T():p||t()))};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,s,p,x.isPending,S.isPending,T,t]);let E=e=>{e.preventDefault(),x.mutate()};if(!e)return null;let D=`locations-modal-title`,O=`location-editor-title`,k=(0,G.jsxs)(`form`,{onSubmit:E,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`location-name`,children:i(`locations.name`)}),(0,G.jsx)(`input`,{id:`location-name`,type:`text`,maxLength:255,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green mb-4`,placeholder:i(`locations.createPlaceholder`),value:d,onChange:e=>f(e.target.value),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:T,children:i(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:x.isPending||!d.trim(),children:[x.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`common.save`)]})]})]});return r?s?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:T}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":O,children:[(0,G.jsx)(`h3`,{id:O,className:`text-lg font-semibold text-white mb-4`,children:i(`locations.add`)}),k]})]}):null:(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>{x.isPending||S.isPending||t()}}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-2xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":D,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{id:D,className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ol,{className:`w-5 h-5 text-bambu-green`}),i(`locations.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-0.5`,children:i(`locations.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:C,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`locations.add`)]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:t,"aria-label":i(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto`,children:g?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin mr-2`}),i(`common.loading`)]}):h.length===0?(0,G.jsx)(`div`,{className:`py-16 text-center text-bambu-gray`,children:i(`locations.empty`)}):(0,G.jsxs)(`table`,{className:`w-full text-sm table-fixed`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium`,children:i(`locations.name`)}),(0,G.jsx)(`th`,{className:`px-2 py-3 font-medium text-right w-24`,children:i(`locations.sensors`)}),(0,G.jsx)(`th`,{className:`pl-[28px] pr-4 py-3 font-medium text-right w-28`,children:i(`locations.spools`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right w-32`,children:i(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:h.map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 hover:bg-bambu-dark-tertiary/30 cursor-pointer`,onClick:()=>{n&&(n(e.id),t())},children:[(0,G.jsx)(`td`,{className:`px-4 py-3 text-white font-medium truncate`,children:e.name}),(0,G.jsx)(`td`,{className:`px-2 py-3 text-right text-bambu-gray`,children:v[e.id]??0}),(0,G.jsx)(`td`,{className:`pl-[28px] pr-4 py-3 text-right text-bambu-gray`,children:e.spool_count}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded`,onClick:()=>w(e),title:i(`common.edit`),"aria-label":i(`locations.editAria`,{name:e.name,defaultValue:`Edit ${e.name}`}),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded disabled:opacity-40`,disabled:e.spool_count>0,onClick:()=>m(e),title:e.spool_count>0?i(`locations.deleteBlocked`):i(`common.delete`),"aria-label":i(`locations.deleteAria`,{name:e.name,defaultValue:`Delete ${e.name}`}),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},e.id))})]})})]}),s&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:T}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":O,children:[(0,G.jsx)(`h3`,{id:O,className:`text-lg font-semibold text-white mb-4`,children:i(l?`locations.edit`:`locations.add`)}),k]})]}),p&&(0,G.jsx)(of,{title:i(`locations.confirmDelete`,{name:p.name}),message:v[p.id]?i(`locations.confirmDeleteMessageWithSensors`):i(`locations.confirmDeleteMessage`),confirmText:i(`common.delete`),variant:`danger`,isLoading:S.isPending,onConfirm:()=>S.mutate(p.id),onCancel:()=>m(null)})]})}function Q6(e){return e===`temperature`?`temperature`:e===`humidity`?`humidity`:e===`battery`?`battery`:null}var $6={temperature:`temperature`,humidity:`humidity`,battery:`battery`};function LWe(e,t,n){let r=$6[t];if(!e.toLowerCase().endsWith(r))return[];let i=e.slice(0,e.length-r.length),a=[];return Object.keys($6).forEach(e=>{if(e===t)return;let r=`${i}${$6[e]}`.toLowerCase(),o=n.find(e=>e.entity_id.toLowerCase()===r);o&&a.push(o)}),a}function RWe({sensor:e,locations:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),o=!!e,[s,c]=(0,y.useState)(e?.location_id??t[0]?.id??``),[l,u]=(0,y.useState)(e?.entity_id??``),[d,f]=(0,y.useState)(e?.kind??`numeric`),[p,m]=(0,y.useState)(e?.device_class??null),[h,g]=(0,y.useState)(e?.unit??null),[_,v]=(0,y.useState)(e?.name??``),b=(0,y.useRef)(e?.name??``),[x,S]=(0,y.useState)(e?.alert_state??``),[C,w]=(0,y.useState)(e?.alert_above?.toString()??``),[T,E]=(0,y.useState)(e?.alert_below?.toString()??``),[D,O]=(0,y.useState)(e?.notify_on_alert??!1),[k,A]=(0,y.useState)(e?.show_on_card??!0),[j,M]=(0,y.useState)(``),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(!1),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)([]),[re,ie]=(0,y.useState)({}),{data:ae}=K({queryKey:[`settings`],queryFn:Z.getSettings}),oe=!!(ae?.ha_enabled&&ae?.ha_url&&ae?.ha_token),{data:se,isLoading:H,error:ce}=K({queryKey:[`bindableLocationHAEntities`],queryFn:()=>Z.getBindableLocationHAEntities(),enabled:oe}),le=(0,y.useMemo)(()=>(se??[]).filter(e=>Q6(e.device_class)!==null),[se]),{data:ue}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),de=le.find(e=>e.entity_id===l),fe=(0,y.useMemo)(()=>{let e=j.trim().toLowerCase(),t=le??[],n=e?t.filter(t=>t.entity_id.toLowerCase().includes(e)||t.friendly_name.toLowerCase().includes(e)):t;return!de||n[0]?.entity_id===de.entity_id?n:[de,...n.filter(e=>e.entity_id!==de.entity_id)]},[le,j,de]),pe=e=>{u(e.entity_id),m(e.device_class),g(e.unit_of_measurement?.slice(0,16)??null);let t=e.domain===`binary_sensor`?`binary`:`numeric`;if(f(t),t===`numeric`?S(``):(w(``),E(``)),_===b.current){let t=e.friendly_name.slice(0,100);v(t),b.current=t}if(!o){let n=Q6(e.device_class);if(n){let e=C6(ae?.location_sensor_alert_defaults)[n];t===`numeric`&&(w(n===`battery`?``:e.alertAbove),E(e.alertBelow)),O(e.notifyOnAlert),A(e.showOnCard)}}},me=()=>{i.invalidateQueries({queryKey:[`locationHaSensors`]}),i.invalidateQueries({queryKey:[`locationHaSensorReadings`]})},he=()=>({name:_.trim(),entity_id:l,kind:d,device_class:p,unit:h,alert_state:d===`binary`&&x?x:null,alert_above:d===`numeric`&&Q6(p)!==`battery`&&C!==``?Number(C):null,alert_below:d===`numeric`&&T!==``?Number(T):null,notify_on_alert:D,show_on_card:k}),ge=q({mutationFn:()=>{let t=he();return o?Z.updateLocationHASensor(e.id,t):Z.createLocationHASensor({...t,location_id:Number(s)})},onSuccess:()=>{me(),a(r(o?`locationHaSensors.toast.updated`:`locationHaSensors.toast.created`),`success`),n()},onError:e=>P(e.message)}),_e=q({mutationFn:async()=>{let e=Number(s);await Z.createLocationHASensor({...he(),location_id:e});let t=C6(ae?.location_sensor_alert_defaults),n=te.filter(e=>re[e.entity_id]);for(let r of n){let n=Q6(r.device_class),i=n?t[n]:null;await Z.createLocationHASensor({name:r.friendly_name.slice(0,100),entity_id:r.entity_id,kind:r.domain===`binary_sensor`?`binary`:`numeric`,device_class:r.device_class,unit:r.unit_of_measurement?.slice(0,16)??null,alert_state:null,alert_above:n!==`battery`&&i&&i.alertAbove!==``?Number(i.alertAbove):null,alert_below:i&&i.alertBelow!==``?Number(i.alertBelow):null,notify_on_alert:i?.notifyOnAlert??!1,show_on_card:i?.showOnCard??k,location_id:e})}return n},onSuccess:e=>{me(),ee(!1),e.length>0?a(r(`locationHaSensors.autoAdd.added`,{names:e.map(e=>e.entity_id).join(`, `)}),`success`):a(r(`locationHaSensors.toast.created`),`success`),n()},onError:e=>{me(),ee(!1),P(e.message)}}),ve=q({mutationFn:()=>Z.deleteLocationHASensor(e.id),onSuccess:()=>{me(),a(r(`locationHaSensors.toast.deleted`),`success`),n()},onError:e=>P(e.message)}),ye=q({mutationFn:()=>Z.updateLocationHASensor(z.id,he()),onSuccess:()=>{me(),R(!1),B(null),a(r(`locationHaSensors.toast.updated`),`success`),n()},onError:e=>{R(!1),B(null),P(e.message)}}),be=d===`binary`?x!==``:C!==``||T!==``,xe=e=>{if(e.preventDefault(),P(null),!l)return P(r(`haSensors.error.pickEntity`));if(!_.trim())return P(r(`haSensors.error.nameRequired`));if(s===``)return P(r(`locationHaSensors.error.locationRequired`));if(D&&!be)return P(r(`haSensors.error.alertRequired`));if(!o){let e=(ue??[]).filter(e=>e.location_id===Number(s)),t=Q6(p);if(t){let n=e.find(e=>Q6(e.device_class)===t);if(n){B(n),R(!0);return}}if(e.length===0&&t){let e=LWe(l,t,le);if(e.length>0){ne(e),ie(Object.fromEntries(e.map(e=>[e.entity_id,!0]))),ee(!0);return}a(r(`locationHaSensors.autoAdd.noneFound`),`info`)}}ge.mutate()},Se=MT[p??``],Ce=e=>{let t=Se?.[e]??e;return r(`haSensors.states.${t}`,{defaultValue:t})},we=ge.isPending||ve.isPending||ye.isPending||_e.isPending,Te=t.find(e=>e.id===Number(s));return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!we&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n,we]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>{we||n()},children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Tc,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(o?`locationHaSensors.editTitle`:`locationHaSensors.addTitle`)})]}),(0,G.jsx)(`button`,{onClick:n,disabled:we,className:`text-bambu-gray hover:text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:xe,className:`p-6 space-y-4`,children:[N&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:N}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`locationHaSensors.location`)}),o?(0,G.jsx)(`div`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.find(t=>t.id===e.location_id)?.name??r(`locationHaSensors.unknownLocation`)}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`select`,{value:s,onChange:e=>c(e.target.value===``?``:Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:t.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>I(!0),className:`p-2 rounded-lg bg-bambu-dark-tertiary hover:bg-bambu-gray-dark text-white transition-colors shrink-0`,title:r(`locations.add`),"aria-label":r(`locations.add`),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})})]})]}),!oe&&(0,G.jsxs)(`div`,{className:`p-3 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-400 dark:border-yellow-500/50 rounded-lg text-sm text-yellow-700 dark:text-yellow-400`,children:[r(`smartPlugs.haNotConfigured`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:r(`smartPlugs.haSettingsPath`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 ${oe?``:`opacity-50`}`,children:r(`haSensors.entity`)}),ce&&(0,G.jsx)(`div`,{className:`p-3 mb-2 bg-red-100 dark:bg-red-500/20 rounded-lg text-sm text-red-700 dark:text-red-400`,children:ce.message}),(0,G.jsxs)(`div`,{className:`relative mb-2`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:j,onChange:e=>M(e.target.value),placeholder:r(`haSensors.searchPlaceholder`),disabled:!oe,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,G.jsxs)(`div`,{className:`max-h-44 overflow-y-auto rounded-lg border border-bambu-dark-tertiary ${oe?``:`opacity-50`}`,children:[l&&!de&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm bg-bambu-green/10 text-bambu-green border-b border-bambu-dark-tertiary`,children:r(`locationHaSensors.currentlyBound`,{entity:l})}),!oe&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),oe&&H&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-3 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.loading`)]}),oe&&!H&&fe.length===0&&(0,G.jsx)(`div`,{className:`p-3 text-sm text-bambu-gray`,children:r(`haSensors.noEntities`)}),oe&&!H&&fe.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>pe(e),className:`w-full text-left px-3 py-2 text-sm transition-colors ${e.entity_id===l?`bg-bambu-green/20 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e.friendly_name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[e.entity_id,e.state!==null&&` — ${e.state}`,e.unit_of_measurement?` ${e.unit_of_measurement}`:``]})]},e.entity_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,htmlFor:`location-ha-sensor-name`,children:r(`haSensors.name`)}),(0,G.jsx)(`input`,{id:`location-ha-sensor-name`,type:`text`,value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),l&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`haSensors.alertWhen`)}),d===`binary`?(0,G.jsxs)(`select`,{value:x,onChange:e=>S(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`,children:[(0,G.jsx)(`option`,{value:``,children:r(`haSensors.alertNever`)}),(0,G.jsx)(`option`,{value:`on`,children:Ce(`on`)}),(0,G.jsx)(`option`,{value:`off`,children:Ce(`off`)})]}):Q6(p)===`battery`?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:T,onChange:e=>E(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:C,onChange:e=>w(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,h??``]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:T,onChange:e=>E(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:r(`haSensors.alertHint`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:k,onChange:e=>A(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`locationHaSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D,onChange:e=>O(e.target.checked),disabled:!be,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${be?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2`,children:[o?(0,G.jsx)(Q,{type:`button`,variant:`danger`,onClick:()=>ve.mutate(),disabled:we,children:r(`common.delete`)}):(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:we,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:we||!oe&&!o,children:[we?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})]})]})]})]})}),L&&z&&(0,G.jsx)(of,{title:r(`locationHaSensors.overwriteConfirm.title`),message:r(`locationHaSensors.overwriteConfirm.message${Q6(z.device_class)===`humidity`?`Humidity`:Q6(z.device_class)===`battery`?`Battery`:`Temperature`}`,{location:Te?.name??``,name:z.name}),variant:`warning`,overlayZIndex:`z-[110]`,isLoading:ye.isPending,onConfirm:()=>ye.mutate(),onCancel:()=>{R(!1),B(null)}}),V&&te.length>0&&(0,G.jsx)(of,{title:r(`locationHaSensors.autoAdd.confirmTitle`),message:r(`locationHaSensors.autoAdd.confirmMessage`),overlayZIndex:`z-[110]`,isLoading:_e.isPending,confirmDisabled:!te.some(e=>re[e.entity_id]),onConfirm:()=>_e.mutate(),cancelText:r(`locationHaSensors.autoAdd.onlyThisOne`),onCancel:()=>{ee(!1),ne([]),ie({}),ge.mutate()},children:(0,G.jsx)(`div`,{className:`space-y-2`,children:te.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:re[e.entity_id]??!0,onChange:t=>ie(n=>({...n,[e.entity_id]:t.target.checked})),className:`w-4 h-4`}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[e.friendly_name,(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,e.entity_id]})]})]},e.entity_id))})}),F&&(0,G.jsx)(Z6,{open:F,onClose:()=>I(!1),onPickLocation:e=>{c(e),I(!1)},startCreating:!0})]})}var e8=60,t8=120,zWe={temperature:Mu,humidity:Qs,battery:Wo},BWe={temperature:`°C`,humidity:`%`,battery:`%`};function n8(e){return e===`temperature`?`temperature`:e===`humidity`?`humidity`:e===`battery`?`battery`:null}function r8({category:e,state:t,onChange:n}){let{t:r}=U(),i=zWe[e],a=BWe[e],o=t.alertAbove!==``||t.alertBelow!==``;return(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm text-white font-medium`,children:[(0,G.jsx)(i,{className:`w-4 h-4`}),r(`inventory.${e}`)]}),e===`battery`?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertBelow,onChange:e=>n({alertBelow:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertAbove`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertAbove,onChange:e=>n({alertAbove:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:[r(`haSensors.alertBelow`),` `,a]}),(0,G.jsx)(`input`,{type:`number`,step:`any`,value:t.alertBelow,onChange:e=>n({alertBelow:e.target.value}),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t.showOnCard,onChange:e=>n({showOnCard:e.target.checked}),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`locationHaSensors.showOnCard`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t.notifyOnAlert,onChange:e=>n({notifyOnAlert:e.target.checked}),disabled:!o,className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm ${o?`text-white`:`text-bambu-gray`}`,children:r(`haSensors.notifyOnAlert`)})]})]})}function VWe({onClose:e}){let{t}=U(),{showToast:n}=qd(),r=co(),[i,a]=(0,y.useState)(()=>C6()),[o,s]=(0,y.useState)(()=>T6()),[c,l]=(0,y.useState)(()=>P6()),[u,d]=(0,y.useState)(()=>F6()),[f,p]=(0,y.useState)(()=>I6()),[m,h]=(0,y.useState)(!1),{data:g}=K({queryKey:[`settings`],queryFn:Z.getSettings}),[_,v]=(0,y.useState)(t8),b=(0,y.useRef)(!1),x=(0,y.useRef)(new Set);(0,y.useEffect)(()=>{if(!g||b.current)return;b.current=!0,x.current.has(`pollInterval`)||v(g.location_sensor_poll_interval);let e=C6(g.location_sensor_alert_defaults);a(t=>{let n={...e};return Object.keys(n).forEach(e=>{x.current.has(e)&&(n[e]=t[e])}),n})},[g]);let S=(e,t)=>{x.current.add(e),a(n=>({...n,[e]:{...n[e],...t}}))},C=e=>{x.current.add(`pollInterval`),v(e)},w=async()=>{let e=Math.max(e8,_),t=pWe({...i,battery:{...i.battery,alertAbove:``}}),n={};g&&e!==g.location_sensor_poll_interval&&(n.location_sensor_poll_interval=e),g&&t!==g.location_sensor_alert_defaults&&(n.location_sensor_alert_defaults=t),Object.keys(n).length>0&&(await Z.updateSettings(n),r.invalidateQueries({queryKey:[`settings`]})),mWe(i),hWe(o),gWe(c),_We(u),vWe(f)},T=q({mutationFn:w,onSuccess:()=>{n(t(`locationHaSensors.options.saved`),`success`),e()},onError:e=>{n(e.message||t(`locationHaSensors.options.saveFailed`),`error`)}}),E=e=>{e.preventDefault(),T.mutate()},D=q({mutationFn:async()=>{let[e,t]=await Promise.all([Z.getLocationHASensors(),Z.getBindableLocationHAEntities()]),n=new Map(t.map(e=>[e.entity_id,e.friendly_name])),r=e.filter(e=>n8(e.device_class)!==null);return await Promise.all(r.map(e=>{let t=n8(e.device_class),r=i[t],a=n.get(e.entity_id);return Z.updateLocationHASensor(e.id,{...a?{name:a.slice(0,100)}:{},alert_above:t!==`battery`&&r.alertAbove!==``?Number(r.alertAbove):null,alert_below:r.alertBelow===``?null:Number(r.alertBelow),notify_on_alert:r.notifyOnAlert,show_on_card:r.showOnCard})})),await w(),r.length},onSuccess:i=>{r.invalidateQueries({queryKey:[`locationHaSensors`]}),r.invalidateQueries({queryKey:[`locationHaSensorReadings`]}),n(t(`locationHaSensors.options.resetDone`,{count:i}),`success`),h(!1),e()},onError:e=>{n(e.message||t(`locationHaSensors.options.resetFailed`),`error`),h(!1)}});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:e,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(nu,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t(`locationHaSensors.options.title`)})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:E,className:`px-6 pb-6 pt-3 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`locationHaSensors.options.description`)}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(r8,{category:`temperature`,state:i.temperature,onChange:e=>S(`temperature`,e)}),(0,G.jsx)(r8,{category:`humidity`,state:i.humidity,onChange:e=>S(`humidity`,e)}),(0,G.jsx)(r8,{category:`battery`,state:i.battery,onChange:e=>S(`battery`,e)})]}),(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-3`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t(`locationHaSensors.options.colorizeValues`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-x-3 gap-y-1 items-end ${o?``:`opacity-50`}`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-below-color`,children:t(`locationHaSensors.options.belowColor`)}),(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-optimal-color`,children:t(`locationHaSensors.options.optimalColor`)}),(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray`,htmlFor:`location-sensor-above-color`,children:t(`locationHaSensors.options.aboveColor`)}),(0,G.jsx)(`select`,{id:`location-sensor-below-color`,value:u,onChange:e=>d(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:O6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))}),(0,G.jsx)(`select`,{id:`location-sensor-optimal-color`,value:f,onChange:e=>p(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:O6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))}),(0,G.jsx)(`select`,{id:`location-sensor-above-color`,value:c,onChange:e=>l(e.target.value),disabled:!o,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white disabled:cursor-not-allowed`,children:O6.map(e=>(0,G.jsx)(`option`,{value:e,children:t(`locationHaSensors.options.colors.${e}`)},e))})]})]}),(0,G.jsx)(`div`,{className:`pt-4 mt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider mb-3`,children:t(`locationHaSensors.options.generalSettings`)})}),(0,G.jsxs)(`div`,{className:`p-3 border border-bambu-dark-tertiary rounded-lg space-y-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,htmlFor:`location-sensor-poll-interval`,children:t(`locationHaSensors.options.pollInterval`)}),(0,G.jsx)(`input`,{id:`location-sensor-poll-interval`,type:`number`,min:e8,step:`1`,value:_,onChange:e=>C(Number(e.target.value)),onBlur:()=>C(Math.max(e8,_||t8)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`locationHaSensors.options.pollIntervalHint`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-2`,children:[(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>h(!0),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),t(`locationHaSensors.options.reset`)]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,children:t(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:T.isPending,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),t(`common.save`)]})]})]})]})]})}),m&&(0,G.jsx)(of,{title:t(`locationHaSensors.options.resetConfirm.title`),message:t(`locationHaSensors.options.resetConfirm.message`),confirmText:t(`locationHaSensors.options.reset`),variant:`danger`,overlayZIndex:`z-[60]`,isLoading:D.isPending,onConfirm:()=>D.mutate(),onCancel:()=>h(!1)})]})}function HWe({provider:e,onEdit:t}){let{t:n}=U(),r=co(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),{data:u}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),d=u?.find(t=>t.id===e.printer_id),f=q({mutationFn:t=>Z.updateNotificationProvider(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]})}}),p=q({mutationFn:()=>Z.deleteNotificationProvider(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]})}}),m=q({mutationFn:()=>Z.testNotificationProvider(e.id),onSuccess:e=>{l(e),r.invalidateQueries({queryKey:[`notification-providers`]})},onError:e=>{l({success:!1,message:e.message})}}),h=e=>e||``;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{className:`relative`,children:(0,G.jsxs)(Vd,{className:`p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between ${e.enabled?`mb-3`:`mb-0`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${e.enabled?`bg-bambu-green/20`:`bg-bambu-dark`}`,children:(0,G.jsx)(qo,{className:`w-5 h-5 ${e.enabled?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.providerTypes.${e.provider_type}`,e.provider_type)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e.last_success&&(0,G.jsx)(`span`,{className:`text-xs text-status-ok hidden sm:inline`,children:n(`notifications.lastSuccess`,{date:ap(e.last_success)})}),e.last_error&&e.last_error_at&&(!e.last_success||(rp(e.last_error_at)?.getTime()||0)>(rp(e.last_success)?.getTime()||0))&&(0,G.jsx)(`span`,{className:`text-xs text-status-error`,title:e.last_error,children:n(`notifications.error`)}),(0,G.jsx)(fH,{checked:e.enabled,onChange:e=>f.mutate({enabled:e})})]})]}),e.enabled&&(0,G.jsxs)(G.Fragment,{children:[d&&(0,G.jsxs)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[n(`notifications.printer`),` `]}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:d.name})]}),!d&&!e.printer_id&&(0,G.jsx)(`div`,{className:`mb-3 px-2 py-1.5 bg-bambu-dark rounded-lg`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.allPrinters`)})}),(0,G.jsxs)(`div`,{className:`mb-3 flex flex-wrap gap-1`,children:[e.on_print_start&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 text-xs rounded`,children:n(`notifications.start`)}),e.on_plate_not_empty&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-600/20 text-rose-700 dark:text-rose-300 text-xs rounded`,children:n(`notifications.plateCheck`)}),e.on_print_complete&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-green/20 text-bambu-green text-xs rounded`,children:n(`notifications.complete`)}),e.on_plate_clear_required&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 text-xs rounded`,children:n(`notifications.plateClear`)}),e.on_print_failed&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 text-xs rounded`,children:n(`notifications.failed`)}),e.on_print_stopped&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 text-xs rounded`,children:n(`notifications.stopped`)}),e.on_billing_charge_failed&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-600/20 text-red-700 dark:text-red-300 text-xs rounded`,children:n(`notifications.billingChargeFailedLabel`)}),e.on_print_progress&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-xs rounded`,children:n(`notifications.progress`)}),e.on_printer_offline&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-gray-500/20 text-gray-400 text-xs rounded`,children:n(`notifications.offline`)}),e.on_printer_error&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-500/20 text-rose-700 dark:text-rose-400 text-xs rounded`,children:n(`notifications.error`)}),e.on_ai_failure_detection&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-fuchsia-100 dark:bg-fuchsia-500/20 text-fuchsia-700 dark:text-fuchsia-300 text-xs rounded`,children:n(`notifications.aiFailureDetection`)}),e.on_ha_sensor_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-300 text-xs rounded`,children:n(`notifications.haSensorAlert`)}),e.on_location_ha_sensor_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-300 text-xs rounded`,children:n(`notifications.locationHaSensorAlert`)}),e.on_filament_low&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400 text-xs rounded`,children:n(`notifications.lowFilament`)}),e.on_maintenance_due&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 text-xs rounded`,children:n(`notifications.maintenance`)}),e.on_ams_humidity_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-blue-100 dark:bg-blue-600/20 text-blue-700 dark:text-blue-300 text-xs rounded`,children:n(`notifications.amsHumidity`)}),e.on_ams_temperature_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-orange-100 dark:bg-orange-600/20 text-orange-700 dark:text-orange-300 text-xs rounded`,children:n(`notifications.amsTemp`)}),e.on_ams_drying_suspended&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-rose-100 dark:bg-rose-600/20 text-rose-700 dark:text-rose-300 text-xs rounded`,children:n(`notifications.amsDryingSuspended`)}),e.on_ams_ht_humidity_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-cyan-100 dark:bg-cyan-600/20 text-cyan-700 dark:text-cyan-300 text-xs rounded`,children:n(`notifications.amsHtHumidity`)}),e.on_ams_ht_temperature_high&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-600/20 text-amber-700 dark:text-amber-300 text-xs rounded`,children:n(`notifications.amsHtTemp`)}),e.on_bed_cooled&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 text-xs rounded`,children:n(`notifications.bedCooled`)}),e.on_first_layer_complete&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-emerald-100 dark:bg-emerald-600/20 text-emerald-700 dark:text-emerald-300 text-xs rounded`,children:n(`notifications.firstLayer`)}),e.on_print_missing_spool_assignment&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-300 text-xs rounded`,children:n(`notifications.missingSpoolAssignmentLabel`)}),e.on_stock_reorder_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-lime-100 dark:bg-lime-500/20 text-lime-700 dark:text-lime-400 text-xs rounded`,children:n(`notifications.stockReorderAlert`)}),e.on_stock_break_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-red-100 dark:bg-red-600/20 text-red-700 dark:text-red-300 text-xs rounded`,children:n(`notifications.stockBreakAlert`)}),e.quiet_hours_enabled&&(0,G.jsxs)(`span`,{className:`px-2 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 text-xs rounded flex items-center gap-1`,children:[(0,G.jsx)(_l,{className:`w-3 h-3`}),n(`notifications.quiet`)]}),e.daily_digest_enabled&&(0,G.jsxs)(`span`,{className:`px-2 py-0.5 bg-emerald-100 dark:bg-emerald-500/20 text-emerald-700 dark:text-emerald-400 text-xs rounded flex items-center gap-1`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),n(`notifications.digest`,{time:e.daily_digest_time})]})]}),(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,disabled:m.isPending,onClick:()=>{l(null),m.mutate()},className:`w-full`,children:[m.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),n(`notifications.sendTestNotification`)]})}),c&&(0,G.jsxs)(`div`,{className:`mb-3 p-2 rounded-lg flex items-center gap-2 text-sm ${c.success?`bg-bambu-green/20 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`}`,children:[c.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Ds,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:c.message})]})]}),(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`w-full flex items-center justify-between py-2 text-sm text-bambu-gray hover:text-white transition-colors ${e.enabled?`border-t border-bambu-dark-tertiary`:`mt-2 border-t border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(nu,{className:`w-4 h-4`}),n(`notifications.eventSettings`)]}),o?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`})]}),o&&(0,G.jsxs)(`div`,{className:`pt-3 border-t border-bambu-dark-tertiary space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.enabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.sendFromProvider`)})]}),(0,G.jsx)(fH,{checked:e.enabled,onChange:e=>f.mutate({enabled:e})})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printEvents`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printStarted`)}),(0,G.jsx)(fH,{checked:e.on_print_start,onChange:e=>f.mutate({on_print_start:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.plateNotEmpty`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.plateNotEmptyDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_plate_not_empty??!0,onChange:e=>f.mutate({on_plate_not_empty:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printCompleted`)}),(0,G.jsx)(fH,{checked:e.on_print_complete,onChange:e=>f.mutate({on_print_complete:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.plateClearRequired`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.plateClearRequiredDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_plate_clear_required??!1,onChange:e=>f.mutate({on_plate_clear_required:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.bedCooledLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.bedCooledDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_bed_cooled??!1,onChange:e=>f.mutate({on_bed_cooled:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.firstLayerCompleteLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.firstLayerCompleteDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_first_layer_complete??!1,onChange:e=>f.mutate({on_first_layer_complete:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.missingSpoolAssignmentLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.missingSpoolAssignmentDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_print_missing_spool_assignment??!1,onChange:e=>f.mutate({on_print_missing_spool_assignment:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printFailed`)}),(0,G.jsx)(fH,{checked:e.on_print_failed,onChange:e=>f.mutate({on_print_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printStopped`)}),(0,G.jsx)(fH,{checked:e.on_print_stopped,onChange:e=>f.mutate({on_print_stopped:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.billingChargeFailedLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.billingChargeFailedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_billing_charge_failed??!0,onChange:e=>f.mutate({on_billing_charge_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.progressMilestones`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.progressMilestonesDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_print_progress,onChange:e=>f.mutate({on_print_progress:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printerStatus`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printerOffline`)}),(0,G.jsx)(fH,{checked:e.on_printer_offline,onChange:e=>f.mutate({on_printer_offline:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.printerError`)}),(0,G.jsx)(fH,{checked:e.on_printer_error,onChange:e=>f.mutate({on_printer_error:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.aiFailureDetection`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.aiFailureDetectionDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ai_failure_detection??!1,onChange:e=>f.mutate({on_ai_failure_detection:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.haSensorAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.haSensorAlertDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ha_sensor_alert??!1,onChange:e=>f.mutate({on_ha_sensor_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.locationHaSensorAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.locationHaSensorAlertDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_location_ha_sensor_alert??!1,onChange:e=>f.mutate({on_location_ha_sensor_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.lowFilamentLabel`)}),(0,G.jsx)(fH,{checked:e.on_filament_low,onChange:e=>f.mutate({on_filament_low:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.maintenanceDue`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.maintenanceDueDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_maintenance_due??!1,onChange:e=>f.mutate({on_maintenance_due:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.amsAlarms`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHumidityHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHumidityHighDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ams_humidity_high??!1,onChange:e=>f.mutate({on_ams_humidity_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsTemperatureHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsTemperatureHighDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ams_temperature_high??!1,onChange:e=>f.mutate({on_ams_temperature_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsDryingSuspendedTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsDryingSuspendedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ams_drying_suspended??!1,onChange:e=>f.mutate({on_ams_drying_suspended:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.amsHtAlarms`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHtHumidityHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHtHumidityHighDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ams_ht_humidity_high??!1,onChange:e=>f.mutate({on_ams_ht_humidity_high:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.amsHtTemperatureHigh`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.amsHtTemperatureHighDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_ams_ht_temperature_high??!1,onChange:e=>f.mutate({on_ams_ht_temperature_high:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.inventoryAlerts`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.stockReorderAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.stockReorderAlertDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_stock_reorder_alert??!1,onChange:e=>f.mutate({on_stock_reorder_alert:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.stockBreakAlert`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.stockBreakAlertDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_stock_break_alert??!1,onChange:e=>f.mutate({on_stock_break_alert:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide`,children:n(`notifications.printQueue`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobAdded`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobAddedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_added??!1,onChange:e=>f.mutate({on_queue_job_added:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobAssigned`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobAssignedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_assigned??!1,onChange:e=>f.mutate({on_queue_job_assigned:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobStarted`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobStartedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_started??!1,onChange:e=>f.mutate({on_queue_job_started:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobWaiting`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobWaitingDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_waiting??!0,onChange:e=>f.mutate({on_queue_job_waiting:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobSkipped`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobSkippedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_skipped??!0,onChange:e=>f.mutate({on_queue_job_skipped:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.jobFailed`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.jobFailedDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_job_failed??!0,onChange:e=>f.mutate({on_queue_job_failed:e})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.queueComplete`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.queueCompleteDescription`)})]}),(0,G.jsx)(fH,{checked:e.on_queue_completed??!1,onChange:e=>f.mutate({on_queue_completed:e})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(_l,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.quietHours`)})]}),(0,G.jsx)(fH,{checked:e.quiet_hours_enabled,onChange:e=>f.mutate({quiet_hours_enabled:e})})]}),e.quiet_hours_enabled&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.noNotificationsDuring`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[h(e.quiet_hours_start)||`22:00`,` - `,h(e.quiet_hours_end)||`07:00`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.editProviderToChangeQuietHours`)})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-emerald-600 dark:text-emerald-400`}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:n(`notifications.dailyDigest`)})]}),(0,G.jsx)(fH,{checked:e.daily_digest_enabled,onChange:e=>f.mutate({daily_digest_enabled:e})})]}),e.daily_digest_enabled&&(0,G.jsxs)(`div`,{className:`pl-4 border-l-2 border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.batchNotifications`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.sendAt`,{time:h(e.daily_digest_time)||`08:00`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.editProviderToChangeDigestTime`)})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>t(e),className:`flex-1`,children:[(0,G.jsx)(kl,{className:`w-4 h-4`}),n(`notifications.edit`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>a(!0),className:`text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})]})}),i&&(0,G.jsx)(of,{title:n(`notifications.deleteProvider`),message:n(`notifications.deleteConfirm`,{name:e.name}),confirmText:n(`notifications.delete`),variant:`danger`,onConfirm:()=>{p.mutate(),a(!1)},onCancel:()=>a(!1)})]})}var UWe=[`email`,`telegram`,`discord`,`ntfy`,`pushover`,`bark`,`callmebot`,`webhook`,`homeassistant`];function WWe({provider:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,[a,o]=(0,y.useState)(e?.name||``),[s,c]=(0,y.useState)(e?.provider_type||`email`),[l,u]=(0,y.useState)(e?.printer_id||null),[d,f]=(0,y.useState)(e?.quiet_hours_enabled||!1),[p,m]=(0,y.useState)(e?.quiet_hours_start||`22:00`),[h,g]=(0,y.useState)(e?.quiet_hours_end||`07:00`),[_,v]=(0,y.useState)(e?.daily_digest_enabled||!1),[b,x]=(0,y.useState)(e?.daily_digest_time||`08:00`),[S,C]=(0,y.useState)(e?.on_print_start??!1),[w,T]=(0,y.useState)(e?.on_print_complete??!0),[E,D]=(0,y.useState)(e?.on_print_failed??!0),[O,k]=(0,y.useState)(e?.on_print_stopped??!0),[A,j]=(0,y.useState)(e?.on_print_progress??!1),[M,N]=(0,y.useState)(e?.on_billing_charge_failed??!0),[P,F]=(0,y.useState)(e?.on_printer_offline??!1),[I,L]=(0,y.useState)(e?.on_printer_error??!1),[R,z]=(0,y.useState)(e?.on_ai_failure_detection??!1),[B,V]=(0,y.useState)(e?.on_filament_low??!1),[ee,te]=(0,y.useState)(e?.on_maintenance_due??!1),[ne,re]=(0,y.useState)(e?.on_stock_reorder_alert??!1),[ie,ae]=(0,y.useState)(e?.on_stock_break_alert??!1),[oe,se]=(0,y.useState)(e?.on_plate_clear_required??!1),[H,ce]=(0,y.useState)(e?.on_bed_cooled??!1),[le,ue]=(0,y.useState)(e?.on_ha_sensor_alert??!1),[de,fe]=(0,y.useState)(e?.on_location_ha_sensor_alert??!1),[pe,me]=(0,y.useState)(e?.on_first_layer_complete??!1),[he,ge]=(0,y.useState)(e?.config?Object.fromEntries(Object.entries(e.config).filter(([e])=>e!==`event_priorities`).map(([e,t])=>[e,String(t)])):{}),[_e,ve]=(0,y.useState)((()=>{let t=e?.config?.event_priorities;if(!t||typeof t!=`object`)return{};let n={};for(let[e,r]of Object.entries(t)){let t=Number(r);Number.isInteger(t)&&t>=1&&t<=5&&(n[e]=t)}return n})()),[ye,be]=(0,y.useState)(null),[xe,Se]=(0,y.useState)(null),{data:Ce}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let we=q({mutationFn:()=>Z.testNotificationConfig({provider_type:s,config:he}),onSuccess:e=>{be(e),Se(null)},onError:e=>{be({success:!1,message:e.message})}}),Te=q({mutationFn:e=>Z.createNotificationProvider(e),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]}),t()},onError:e=>{Se(e.message)}}),Ee=q({mutationFn:t=>Z.updateNotificationProvider(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-providers`]}),t()},onError:e=>{Se(e.message)}}),De=e=>{if(e.preventDefault(),Se(null),!a.trim()){Se(n(`notifications.nameRequired`));return}let t=Ae(s);for(let e of t)if(!he[e.key]?.trim()){Se(n(`notifications.fieldRequired`,{field:e.label}));return}if(s===`homeassistant`&&he.data?.trim()){let e;try{e=JSON.parse(he.data)}catch{Se(n(`notifications.haDataInvalid`));return}if(typeof e!=`object`||!e||Array.isArray(e)){Se(n(`notifications.haDataInvalid`));return}}if(s===`telegram`&&he.message_thread_id?.trim()&&!/^\d+$/.test(he.message_thread_id.trim())){Se(n(`notifications.telegramThreadIdInvalid`));return}let r=s===`ntfy`&&Object.keys(_e).length>0?{...he,event_priorities:_e}:he,o={name:a.trim(),provider_type:s,config:r,printer_id:l,quiet_hours_enabled:d,quiet_hours_start:d?p:null,quiet_hours_end:d?h:null,daily_digest_enabled:_,daily_digest_time:_?b:null,on_print_start:S,on_print_complete:w,on_print_failed:E,on_print_stopped:O,on_print_progress:A,on_billing_charge_failed:M,on_printer_offline:P,on_printer_error:I,on_ai_failure_detection:R,on_filament_low:B,on_maintenance_due:ee,on_stock_reorder_alert:ne,on_stock_break_alert:ie,on_plate_clear_required:oe,on_bed_cooled:H,on_ha_sensor_alert:le,on_location_ha_sensor_alert:de,on_first_layer_complete:pe};i?Ee.mutate(o):Te.mutate(o)},Oe=Te.isPending||Ee.isPending,ke=e=>{switch(e){case`callmebot`:return[{key:`phone`,label:`Phone Number`,placeholder:`+1234567890`,type:`text`,required:!0},{key:`apikey`,label:`API Key`,placeholder:`Your CallMeBot API key`,type:`text`,required:!0}];case`ntfy`:return[{key:`server`,label:`Server URL`,placeholder:`https://ntfy.sh`,type:`text`,required:!1},{key:`topic`,label:`Topic`,placeholder:`my-bambuddy`,type:`text`,required:!0},{key:`auth_token`,label:`Auth Token`,placeholder:`Optional authentication`,type:`password`,required:!1}];case`pushover`:return[{key:`user_key`,label:`User Key`,placeholder:`Your Pushover user key`,type:`text`,required:!0},{key:`app_token`,label:`App Token`,placeholder:`Your Pushover app token`,type:`text`,required:!0},{key:`priority`,label:`Priority`,placeholder:`0 (normal)`,type:`number`,required:!1},{key:`retry`,label:n(`notifications.pushoverRetry`),placeholder:`60`,type:`number`,required:!1,showIf:e=>e.priority===`2`},{key:`expire`,label:n(`notifications.pushoverExpire`),placeholder:`3600`,type:`number`,required:!1,showIf:e=>e.priority===`2`}];case`telegram`:return[{key:`bot_token`,label:`Bot Token`,placeholder:`Bot token from @BotFather`,type:`password`,required:!0},{key:`chat_id`,label:`Chat ID`,placeholder:`Your chat or group ID`,type:`text`,required:!0},{key:`message_thread_id`,label:n(`notifications.telegramThreadId`),placeholder:`123`,type:`number`,required:!1,help:n(`notifications.telegramThreadIdHelp`)}];case`email`:return[{key:`smtp_server`,label:`SMTP Server`,placeholder:`smtp.gmail.com`,type:`text`,required:!0},{key:`smtp_port`,label:`SMTP Port`,placeholder:`587`,type:`number`,required:!1},{key:`security`,label:`Security`,type:`select`,required:!1,options:[{value:`starttls`,label:`STARTTLS (Port 587)`},{value:`ssl`,label:`SSL/TLS (Port 465)`},{value:`none`,label:`None (Port 25)`}]},{key:`auth_enabled`,label:`Authentication`,type:`select`,required:!1,options:[{value:`true`,label:`Enabled`},{value:`false`,label:`Disabled`}]},{key:`username`,label:`Username`,placeholder:`your@email.com`,type:`text`,required:!1},{key:`password`,label:`Password`,placeholder:`App password`,type:`password`,required:!1},{key:`from_email`,label:`From Email`,placeholder:`your@email.com`,type:`text`,required:!0},{key:`to_email`,label:`To Email`,placeholder:`recipient@email.com`,type:`text`,required:!0}];case`discord`:return[{key:`webhook_url`,label:`Webhook URL`,placeholder:`https://discord.com/api/webhooks/...`,type:`text`,required:!0}];case`webhook`:return[{key:`webhook_url`,label:`Webhook URL`,placeholder:`https://example.com/webhook`,type:`text`,required:!0},{key:`payload_format`,label:`Payload Format`,type:`select`,required:!1,options:[{value:`generic`,label:`Generic JSON`},{value:`slack`,label:`Slack / Mattermost`}]},{key:`auth_header`,label:`Authorization`,placeholder:`Bearer token (optional)`,type:`password`,required:!1},{key:`field_title`,label:`Title Field Name`,placeholder:`title`,type:`text`,required:!1,showIf:e=>e.payload_format!==`slack`},{key:`field_message`,label:`Message Field Name`,placeholder:`message`,type:`text`,required:!1,showIf:e=>e.payload_format!==`slack`}];case`homeassistant`:return[{key:`service`,label:`Home Assistant Service`,placeholder:`notify.mobile_app_myphone`,type:`text`,required:!1},{key:`data`,label:`Data (JSON, optional)`,placeholder:`{"priority": "high", "ttl": 0, "channel": "3D Printing"}`,type:`textarea`,required:!1}];case`bark`:return[{key:`device_key`,label:`Device Key`,placeholder:`Your Bark device key`,type:`text`,required:!0},{key:`server`,label:`Server URL`,placeholder:`https://api.day.app`,type:`text`,required:!1},{key:`group`,label:`Group`,placeholder:`Bambuddy`,type:`text`,required:!1},{key:`sound`,label:`Sound`,placeholder:`minuet`,type:`text`,required:!1},{key:`level`,label:`Interruption Level`,type:`select`,required:!1,options:[{value:``,label:`Default`},{value:`active`,label:`Active`},{value:`timeSensitive`,label:`Time Sensitive`},{value:`critical`,label:`Critical (bypasses Silent/Focus)`},{value:`passive`,label:`Passive (no sound)`}]}];default:return[]}},Ae=e=>ke(e).filter(e=>e.required),je=ke(s);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4 overflow-y-auto`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg my-8 max-h-[90vh] overflow-y-auto`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(i?`notifications.editTitle`:`notifications.addTitle`)}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:De,className:`p-6 space-y-4`,children:[xe&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:xe}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.nameLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`notifications.namePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.providerTypeLabel`)}),(0,G.jsx)(`select`,{value:s,onChange:e=>{c(e.target.value),ge({}),be(null)},disabled:i,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`,children:UWe.map(e=>(0,G.jsx)(`option`,{value:e,children:n(`notifications.providerTypes.${e}`,e)},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.providerDescriptions.${s}`,``)})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.configuration`)}),je.filter(e=>!(`showIf`in e)||e.showIf?.(he)!==!1).map(e=>(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[e.label,` `,e.required&&`*`]}),e.type===`select`&&`options`in e&&e.options?(0,G.jsx)(`select`,{value:he[e.key]||e.options[0]?.value||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:e.options.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))}):e.type===`textarea`?(0,G.jsx)(`textarea`,{value:he[e.key]||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},placeholder:e.placeholder,rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none font-mono text-sm`}):(0,G.jsx)(`input`,{type:e.type,value:he[e.key]||``,onChange:t=>{ge({...he,[e.key]:t.target.value}),be(null)},placeholder:e.placeholder,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),`help`in e&&e.help&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e.help})]},e.key))]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>{be(null),we.mutate()},disabled:we.isPending||Ae(s).length>0&&!he[Ae(s)[0]?.key],className:`flex-1`,children:[we.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),n(`notifications.testConfiguration`)]})}),ye&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg flex items-center gap-2 ${ye.success?`bg-bambu-green/20 border border-bambu-green/50 text-bambu-green`:`bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 text-red-700 dark:text-red-400`}`,children:ye.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:ye.message})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ds,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{children:ye.message})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`notifications.printerFilter`)}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:n(`notifications.allPrinters`)}),Ce?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.onlyFromPrinter`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:n(`notifications.quietHoursDnd`)}),(0,G.jsx)(fH,{checked:d,onChange:f})]}),d&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.quietStart`)}),(0,G.jsx)(`input`,{type:`time`,value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.quietEnd`)}),(0,G.jsx)(`input`,{type:`time`,value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:n(`notifications.dailyDigestLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`notifications.batchNotifications`)})]}),(0,G.jsx)(fH,{checked:_,onChange:v})]}),_&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:n(`notifications.sendDigestAt`)}),(0,G.jsx)(`input`,{type:`time`,value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`notifications.digestCollected`)})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`notifications.notificationEvents`)}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.printEvents`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.start`)}),(0,G.jsx)(fH,{checked:S,onChange:C})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.complete`)}),(0,G.jsx)(fH,{checked:w,onChange:T})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.failed`)}),(0,G.jsx)(fH,{checked:E,onChange:D})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stopped`)}),(0,G.jsx)(fH,{checked:O,onChange:k})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.progress`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.progressPercent`)})]}),(0,G.jsx)(fH,{checked:A,onChange:j})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.billingChargeFailedLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.billingChargeFailedDescription`)})]}),(0,G.jsx)(fH,{checked:M,onChange:N})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.plateClearRequired`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.plateClearRequiredDescription`)})]}),(0,G.jsx)(fH,{checked:oe,onChange:se})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.bedCooled`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.bedCooledAfterPrint`)})]}),(0,G.jsx)(fH,{checked:H,onChange:ce})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.firstLayerCompleteLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.firstLayerCompleteDescription`)})]}),(0,G.jsx)(fH,{checked:pe,onChange:me})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.printerStatus`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.offline`)}),(0,G.jsx)(fH,{checked:P,onChange:F})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.haSensorAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.haSensorAlertDescription`)})]}),(0,G.jsx)(fH,{checked:le,onChange:ue})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between col-span-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.locationHaSensorAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.locationHaSensorAlertDescription`)})]}),(0,G.jsx)(fH,{checked:de,onChange:fe})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.error`)}),(0,G.jsx)(fH,{checked:I,onChange:L})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.aiFailureDetection`)}),(0,G.jsx)(fH,{checked:R,onChange:z})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.lowFilament`)}),(0,G.jsx)(fH,{checked:B,onChange:V})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.maintenance`)}),(0,G.jsx)(fH,{checked:ee,onChange:te})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-2`,children:n(`notifications.inventoryAlerts`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stockReorderAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.stockReorderAlertDescription`)})]}),(0,G.jsx)(fH,{checked:ne,onChange:re})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`notifications.stockBreakAlert`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1`,children:n(`notifications.stockBreakAlertDescription`)})]}),(0,G.jsx)(fH,{checked:ie,onChange:ae})]})]})]}),s===`ntfy`&&(()=>{let e=[];return S&&e.push({key:`on_print_start`,label:n(`notifications.start`)}),w&&e.push({key:`on_print_complete`,label:n(`notifications.complete`)}),E&&e.push({key:`on_print_failed`,label:n(`notifications.failed`)}),O&&e.push({key:`on_print_stopped`,label:n(`notifications.stopped`)}),A&&e.push({key:`on_print_progress`,label:n(`notifications.progress`)}),M&&e.push({key:`on_billing_charge_failed`,label:n(`notifications.billingChargeFailedLabel`)}),oe&&e.push({key:`on_plate_clear_required`,label:n(`notifications.plateClearRequired`)}),H&&e.push({key:`on_bed_cooled`,label:n(`notifications.bedCooled`)}),pe&&e.push({key:`on_first_layer_complete`,label:n(`notifications.firstLayerCompleteLabel`)}),P&&e.push({key:`on_printer_offline`,label:n(`notifications.offline`)}),I&&e.push({key:`on_printer_error`,label:n(`notifications.error`)}),le&&e.push({key:`on_ha_sensor_alert`,label:n(`notifications.haSensorAlert`)}),de&&e.push({key:`on_location_ha_sensor_alert`,label:n(`notifications.locationHaSensorAlert`)}),R&&e.push({key:`on_ai_failure_detection`,label:n(`notifications.aiFailureDetection`)}),B&&e.push({key:`on_filament_low`,label:n(`notifications.lowFilament`)}),ee&&e.push({key:`on_maintenance_due`,label:n(`notifications.maintenance`)}),ne&&e.push({key:`on_stock_reorder_alert`,label:n(`notifications.stockReorderAlert`)}),ie&&e.push({key:`on_stock_break_alert`,label:n(`notifications.stockBreakAlert`)}),e.length===0?null:(0,G.jsxs)(`div`,{className:`space-y-2 p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase tracking-wide mb-1`,children:n(`notifications.eventPriority.sectionTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`notifications.eventPriority.helpNtfy`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.label}),(0,G.jsxs)(`select`,{value:_e[e.key]??3,onChange:t=>{let n=Number(t.target.value);ve(t=>({...t,[e.key]:n}))},className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:1,children:n(`notifications.eventPriority.min`)}),(0,G.jsx)(`option`,{value:2,children:n(`notifications.eventPriority.low`)}),(0,G.jsx)(`option`,{value:3,children:n(`notifications.eventPriority.default`)}),(0,G.jsx)(`option`,{value:4,children:n(`notifications.eventPriority.high`)}),(0,G.jsx)(`option`,{value:5,children:n(`notifications.eventPriority.urgent`)})]})]},e.key))})]})})()]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:n(`notifications.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:Oe,className:`flex-1`,children:[Oe?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),n(i?`notifications.save`:`notifications.add`)]})]})]})]})})}function GWe({template:e,onClose:t}){let{t:n}=U(),r=co(),i=(0,y.useRef)(null),[a,o]=(0,y.useState)(e.title_template),[s,c]=(0,y.useState)(e.body_template),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!0),{data:p}=K({queryKey:[`template-variables`],queryFn:Z.getTemplateVariables}),m=p?.find(t=>t.event_type===e.event_type),{data:h,isLoading:g}=K({queryKey:[`template-preview`,e.event_type,a,s],queryFn:()=>Z.previewTemplate({event_type:e.event_type,title_template:a,body_template:s}),enabled:d&&a.length>0&&s.length>0});(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let _=q({mutationFn:t=>Z.updateNotificationTemplate(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`notification-templates`]}),t()},onError:e=>{u(e.message)}}),v=q({mutationFn:()=>Z.resetNotificationTemplate(e.id),onSuccess:e=>{o(e.title_template),c(e.body_template),r.invalidateQueries({queryKey:[`notification-templates`]})},onError:e=>{u(e.message)}}),b=e=>{if(e.preventDefault(),u(null),!a.trim()){u(n(`notifications.titleRequired`));return}if(!s.trim()){u(n(`notifications.bodyRequired`));return}_.mutate({title_template:a,body_template:s})},x=e=>{let t=i.current;if(!t)return;let n=t.selectionStart,r=t.selectionEnd,a=s,o=a.substring(0,n),l=a.substring(r);c(o+`{${e}}`+l),setTimeout(()=>{t.focus();let r=n+e.length+2;t.setSelectionRange(r,r)},0)},S=a!==e.title_template||s!==e.body_template;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-2xl max-h-[90vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`notifications.editTemplate`,{name:e.name})}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark-tertiary rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`form`,{onSubmit:b,className:`flex-1 overflow-y-auto p-4 space-y-4`,children:[l&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-red-700 dark:text-red-400 text-sm`,children:l}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:n(`notifications.titleLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green`,placeholder:n(`notifications.titlePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:n(`notifications.bodyLabel`)}),(0,G.jsx)(`textarea`,{ref:i,value:s,onChange:e=>c(e.target.value),rows:4,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white focus:outline-none focus:ring-1 focus:ring-bambu-green font-mono text-sm resize-none`,placeholder:n(`notifications.bodyPlaceholder`)})]}),m&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-2`,children:n(`notifications.availableVariables`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:m.variables.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>x(e),className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-dark hover:bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-xs text-bambu-gray hover:text-white transition-colors`,children:[(0,G.jsx)(Fl,{className:`w-3 h-3`}),e]},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/60 mt-1`,children:n(`notifications.clickToInsert`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm font-medium text-bambu-gray flex items-center gap-2`,children:[(0,G.jsx)(ac,{className:`w-4 h-4`}),n(`notifications.livePreview`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(!d),className:`text-xs text-bambu-green hover:text-bambu-green-light`,children:n(d?`notifications.hide`:`notifications.show`)})]}),d&&(0,G.jsx)(`div`,{className:`bg-bambu-dark border border-bambu-dark-tertiary rounded p-3 space-y-2`,children:g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`notifications.loadingPreview`)]}):h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.titlePreview`)}),(0,G.jsx)(`div`,{className:`text-white font-medium`,children:h.title})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n(`notifications.bodyPreview`)}),(0,G.jsx)(`div`,{className:`text-white whitespace-pre-wrap text-sm`,children:h.body})]})]}):(0,G.jsx)(`div`,{className:`text-bambu-gray text-sm`,children:n(`notifications.enterTemplateContent`)})})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary shrink-0`,children:[(0,G.jsxs)(Q,{type:`button`,variant:`ghost`,onClick:()=>v.mutate(),disabled:v.isPending,className:`text-orange-600 dark:text-orange-400 hover:text-orange-700 dark:hover:text-orange-300`,children:[v.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(Wl,{className:`w-4 h-4 mr-2`}),n(`notifications.resetToDefault`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:n(`notifications.cancel`)}),(0,G.jsxs)(Q,{onClick:b,disabled:_.isPending||!S,children:[_.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(ql,{className:`w-4 h-4 mr-2`}),n(`notifications.save`)]})]})]})]})})}var KWe={print_start:`text-blue-700 dark:text-blue-400`,print_complete:`text-bambu-green`,print_failed:`text-red-700 dark:text-red-400`,print_stopped:`text-orange-700 dark:text-orange-400`,print_progress:`text-yellow-700 dark:text-yellow-400`,printer_offline:`text-gray-400`,printer_error:`text-rose-700 dark:text-rose-400`,filament_low:`text-cyan-700 dark:text-cyan-400`,maintenance_due:`text-purple-700 dark:text-purple-400`,test:`text-bambu-gray`};function qWe({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(7),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),{data:u}=K({queryKey:[`settings`],queryFn:Z.getSettings}),d=u?.time_format||`system`,{data:f,isLoading:p,refetch:m,isRefetching:h}=K({queryKey:[`notification-logs`,i,c],queryFn:()=>Z.getNotificationLogs({days:i,limit:100,success:c?!1:void 0})}),{data:g}=K({queryKey:[`notification-log-stats`,i],queryFn:()=>Z.getNotificationLogStats(i)}),_=q({mutationFn:()=>Z.clearNotificationLogs(30),onSuccess:e=>{r(e.message,`success`),n.invalidateQueries({queryKey:[`notification-logs`]}),n.invalidateQueries({queryKey:[`notification-log-stats`]})},onError:e=>{r(`Failed to clear logs: ${e.message}`,`error`)}}),v=e=>{let n=rp(e);if(!n)return``;let r=new Date().getTime()-n.getTime();return r<6e4?t(`notifications.justNow`):r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:n.toLocaleDateString()+` `+sp(n,d)};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg w-full max-w-3xl max-h-[85vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:t(`notifications.notificationLog`)})]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white transition-colors`,children:`×`})]}),g&&(0,G.jsx)(`div`,{className:`px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/50`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-6 text-sm`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[t(`notifications.statsSummary`,{days:i}),` `,(0,G.jsx)(`span`,{className:`text-white font-medium`,children:g.total}),` `,t(`notifications.statsNotifications`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-green`,children:[(0,G.jsx)(xs,{className:`w-4 h-4`}),t(`notifications.statsSent`,{count:g.success_count})]}),g.failure_count>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4`}),t(`notifications.statsFailed`,{count:g.failure_count})]})]})}),(0,G.jsxs)(`div`,{className:`px-4 py-3 border-b border-bambu-dark-tertiary flex items-center gap-4`,children:[(0,G.jsxs)(`select`,{value:i,onChange:e=>a(Number(e.target.value)),className:`px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:[(0,G.jsx)(`option`,{value:1,children:t(`notifications.last24Hours`)}),(0,G.jsx)(`option`,{value:7,children:t(`notifications.last7Days`)}),(0,G.jsx)(`option`,{value:30,children:t(`notifications.last30Days`)}),(0,G.jsx)(`option`,{value:90,children:t(`notifications.last90Days`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),t(`notifications.showFailedOnly`)]}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>m(),disabled:h,children:[h?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),t(`notifications.refresh`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>_.mutate(),disabled:_.isPending,className:`text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300`,children:[_.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),t(`notifications.clearOld`)]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:p?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):f&&f.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>(0,G.jsx)(JWe,{log:e,isExpanded:o===e.id,onToggle:()=>s(o===e.id?null:e.id),formatDate:v,formatFullDate:e=>op(e,d)},e.id))}):(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(zc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:t(c?`notifications.noFailedNotifications`:`notifications.noNotificationsLogged`)})]})})]})})}function JWe({log:e,isExpanded:t,onToggle:n,formatDate:r,formatFullDate:i}){let{t:a}=U();return(0,G.jsxs)(`div`,{className:`border rounded-lg overflow-hidden transition-colors ${e.success?`border-bambu-dark-tertiary bg-bambu-dark/30`:`border-red-500/30 bg-red-500/5`}`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 flex items-center gap-3 text-left hover:bg-bambu-dark/50 transition-colors`,onClick:n,children:[e.success?(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium ${KWe[e.event_type]||`text-bambu-gray`}`,children:a(`notifications.eventTypes.${e.event_type}`,e.event_type)}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate flex-1`,children:e.provider_name||a(`notifications.unknownProvider`)}),e.printer_name&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.printer_name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:r(e.created_at)}),t?(0,G.jsx)(gs,{className:`w-4 h-4 text-bambu-gray shrink-0`}):(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0`})]}),t&&(0,G.jsxs)(`div`,{className:`px-3 py-2 border-t border-bambu-dark-tertiary bg-bambu-dark/20 space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:a(`notifications.logTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.title})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:a(`notifications.logMessage`)}),(0,G.jsx)(`p`,{className:`text-sm text-white whitespace-pre-wrap`,children:e.message})]}),!e.success&&e.error_message&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mb-1`,children:a(`notifications.logError`)}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300`,children:e.error_message})]}),(0,G.jsxs)(`div`,{className:`flex gap-4 text-xs text-bambu-gray pt-1`,children:[(0,G.jsx)(`span`,{children:a(`notifications.logProvider`,{type:e.provider_type})}),(0,G.jsx)(`span`,{children:a(`notifications.logTime`,{time:i(e.created_at)})})]})]})]})}var YWe=Object.defineProperty,i8=Object.getOwnPropertySymbols,a8=Object.prototype.hasOwnProperty,o8=Object.prototype.propertyIsEnumerable,s8=(e,t,n)=>t in e?YWe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,c8=(e,t)=>{for(var n in t||={})a8.call(t,n)&&s8(e,n,t[n]);if(i8)for(var n of i8(t))o8.call(t,n)&&s8(e,n,t[n]);return e},l8=(e,t)=>{var n={};for(var r in e)a8.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&i8)for(var r of i8(e))t.indexOf(r)<0&&o8.call(e,r)&&(n[r]=e[r]);return n},u8;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],et.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.lengthm[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;ne+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.lengtht.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e=1<{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(u8||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(u8||={});var d8=u8,XWe={L:d8.QrCode.Ecc.LOW,M:d8.QrCode.Ecc.MEDIUM,Q:d8.QrCode.Ecc.QUARTILE,H:d8.QrCode.Ecc.HIGH},f8=128,p8=`L`,m8=`#FFFFFF`,h8=`#000000`,g8=!1,_8=1,ZWe=4,QWe=0,$We=.1;function v8(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function y8(e,t){return e.slice().map((e,n)=>n=t.y+t.h?e:e.map((e,n)=>n=t.x+t.w?e:!1))}function eGe(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*$We),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function tGe(e,t){return t==null?e?ZWe:QWe:Math.max(Math.floor(t),0)}function b8({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=y.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...d8.QrSegment.makeSegments(t)),e),[]);return d8.QrCode.encodeSegments(r,XWe[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=y.useMemo(()=>{let e=c.getModules(),t=tGe(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:eGe(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var nGe=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),rGe=y.forwardRef(function(e,t){let n=e,{value:r,size:i=f8,level:a=p8,bgColor:o=m8,fgColor:s=h8,includeMargin:c=g8,minVersion:l=_8,boostLevel:u,marginSize:d,imageSettings:f}=n,p=l8(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=l8(p,[`style`]),g=f?.src,_=y.useRef(null),v=y.useRef(null),b=y.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=y.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=b8({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});y.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=v.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=y8(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,nGe?t.fill(new Path2D(v8(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),y.useEffect(()=>{S(!1)},[g]);let D=c8({height:i,width:i},m),O=null;return g!=null&&(O=y.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{S(!0)},ref:v,crossOrigin:E?.crossOrigin})),y.createElement(y.Fragment,null,y.createElement(`canvas`,c8({style:D,height:i,width:i,ref:b,role:`img`},h)),O)});rGe.displayName=`QRCodeCanvas`;var x8=y.forwardRef(function(e,t){let n=e,{value:r,size:i=f8,level:a=p8,bgColor:o=m8,fgColor:s=h8,includeMargin:c=g8,minVersion:l=_8,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=l8(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=b8({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),b=g,x=null;p!=null&&v!=null&&(v.excavation!=null&&(b=y8(g,v.excavation)),x=y.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let S=v8(b,h);return y.createElement(`svg`,c8({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&y.createElement(`title`,null,d),y.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),y.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});x8.displayName=`QRCodeSVG`;function iGe(e,t){return`bambuddy://config?v=1&url=${encodeURIComponent(e)}&key=${encodeURIComponent(t)}`}function aGe({apiKey:e,baseUrl:t,onClose:n}){let{t:r}=U(),i=iGe(t??window.location.origin,e);return(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`settings.apiKeyQrTitle`)}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 flex flex-col items-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 text-center`,children:r(`settings.apiKeyQrCaption`)}),(0,G.jsx)(`div`,{className:`bg-white p-4 rounded-lg mb-4`,children:(0,G.jsx)(x8,{value:i,size:256})}),(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-amber-700 dark:text-amber-400 mb-4`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`span`,{children:r(`settings.apiKeyQrWarning`)})]}),(0,G.jsx)(Q,{onClick:n,className:`w-full`,children:r(`common.close`)})]})]})})}var oGe=300,S8=2;function C8({onSuccess:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=r.trim();if(e.lengtho(e),oGe);return()=>clearTimeout(t)},[r]),(0,y.useEffect)(()=>{c(null),u(null)},[a]);let d=K({queryKey:[`ldap-search`,a],queryFn:()=>Z.searchLDAPDirectory(a),enabled:a.length>=S8,staleTime:3e4}),f=q({mutationFn:e=>Z.provisionLDAPUser(e),onSuccess:t=>{n.invalidateQueries({queryKey:[`users`]}),e(t)},onError:e=>{u(e.message||t(`users.modal.ldapErrorProvision`))}}),p=(0,y.useMemo)(()=>d.data?.find(e=>e.dn===s)??null,[d.data,s]),m=r.trim().length>0&&r.trim().length=S8,g=!!d.data&&d.data.length>0,_=!h&&!!d.data&&d.data.length===0&&a.length>=S8;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:t(`users.modal.ldapSearchLabel`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2`}),(0,G.jsx)(`input`,{type:`text`,value:r,onChange:e=>i(e.target.value),className:`w-full pl-9 pr-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`users.modal.ldapSearchPlaceholder`),autoComplete:`off`})]}),m&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray`,children:t(`users.modal.ldapMinChars`)})]}),(0,G.jsxs)(`div`,{className:`min-h-[8rem] max-h-64 overflow-y-auto bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[h&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}),(0,G.jsx)(`span`,{children:t(`users.modal.ldapSearching`)})]}),_&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray text-sm`,children:t(`users.modal.ldapNoResults`)}),d.isError&&(0,G.jsx)(`div`,{className:`px-3 py-4 text-sm text-red-700 dark:text-red-400`,children:d.error instanceof Error?d.error.message:t(`users.modal.ldapSearchError`)}),!h&&g&&(0,G.jsx)(`ul`,{className:`divide-y divide-bambu-dark-tertiary`,children:d.data.map(e=>(0,G.jsx)(sGe,{result:e,selected:s===e.dn,onSelect:()=>c(e.dn)},e.dn))}),!h&&!d.data&&!d.isError&&(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray text-sm`,children:t(`users.modal.ldapTypeToSearch`)})]}),p&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[t(`users.modal.ldapSelectedLabel`),`: `]}),(0,G.jsx)(`span`,{className:`font-medium`,children:p.username}),p.display_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,p.display_name]})]}),p.email&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:p.email}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray break-all`,children:p.dn})]}),l&&(0,G.jsx)(`div`,{className:`bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg p-3`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:l})}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{onClick:()=>{!p||p.already_provisioned||(u(null),f.mutate(p.username))},disabled:!p||p.already_provisioned||f.isPending,children:f.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),t(`users.modal.ldapProvisioning`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),t(`users.modal.ldapProvision`)]})})})]})}function sGe({result:e,selected:t,onSelect:n}){let{t:r}=U(),i=e.already_provisioned;return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:n,disabled:i,className:`w-full text-left px-3 py-2 flex items-center gap-3 transition-colors ${i?`opacity-50 cursor-not-allowed`:t?`bg-bambu-green/10`:`hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm text-white truncate`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:e.username}),e.display_name&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` — `,e.display_name]})]}),e.email&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.email})]}),i&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray whitespace-nowrap`,children:[(0,G.jsx)(Ss,{className:`w-3.5 h-3.5`}),r(`users.modal.ldapAlreadyProvisioned`)]})]})})}function cGe({formData:e,setFormData:t,groups:n,onClose:r,onCreate:i,isCreating:a,isCreateButtonDisabled:o,ldapEnabled:s=!1,onLdapProvisioned:c}){let{t:l}=U(),[u,d]=(0,y.useState)(`local`);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let f=n=>{t({...e,group_ids:e.group_ids.includes(n)?e.group_ids.filter(e=>e!==n):[...e.group_ids,n]})};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:r,children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:l(`users.modal.createUser`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray ml-7`,children:l(`users.modal.advancedAuthSubtitle`)||`with Advanced Authentication`})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:r,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[s&&(0,G.jsxs)(`div`,{className:`mb-4 flex items-center gap-1 p-1 bg-bambu-dark-secondary rounded-lg`,role:`tablist`,"aria-label":l(`users.modal.tabsAriaLabel`),children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":u===`local`,onClick:()=>d(`local`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${u===`local`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:l(`users.modal.localTab`)}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":u===`ldap`,onClick:()=>d(`ldap`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${u===`ldap`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:l(`users.modal.ldapTab`)})]}),u===`ldap`&&s?(0,G.jsx)(C8,{onSuccess:e=>{c?.(e)}}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[l(`users.form.username`),` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:e.username,onChange:n=>t({...e,username:n.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:l(`users.form.usernamePlaceholder`),autoComplete:`username`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[l(`users.form.email`)||`Email`,` `,(0,G.jsx)(`span`,{className:`text-red-600 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`email`,value:e.email,onChange:n=>t({...e,email:n.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:l(`users.form.emailPlaceholder`)||`user@example.com`,required:!0})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:l(`users.form.autoGeneratedPassword`)||`A secure password will be automatically generated and emailed to the user.`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:l(`users.form.groups`)}),(0,G.jsxs)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[n.map(t=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.group_ids.includes(t.id),onChange:()=>f(t.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t.name}),t.is_system&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,l(`users.system`),`)`]})]},t.id)),n.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:l(`users.noGroupsAvailable`)})]})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:r,children:l(`users.modal.cancel`)}),u===`local`&&(0,G.jsx)(Q,{onClick:i,disabled:o,children:a?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),l(`users.modal.creating`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),l(`users.modal.createUser`)]})})]})]})]})})}function lGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`auto`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!0),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),{data:E,isLoading:D}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings}),{data:O,isLoading:k,refetch:A}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,refetchInterval:3e4}),{data:j}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{E&&(i(E.spoolman_enabled===`true`),o(E.spoolman_url||``),c(E.spoolman_sync_mode||`auto`),u(E.spoolman_disable_weight_sync===`true`),f(E.spoolman_report_partial_usage!==`false`),m(E.auto_add_unknown_rfid!==`false`),v(!0))},[E]),(0,y.useEffect)(()=>{if(!(!_||!E)&&(E.spoolman_enabled===`true`!==r||(E.spoolman_url||``)!==a||(E.spoolman_sync_mode||`auto`)!==s||E.spoolman_disable_weight_sync===`true`!==l||E.spoolman_report_partial_usage!==`false`!==d||E.auto_add_unknown_rfid!==`false`!==p)){let e=setTimeout(()=>{M.mutate()},500);return()=>clearTimeout(e)}},[r,a,s,l,d,p,_]);let M=q({mutationFn:()=>Z.updateSpoolmanSettings({spoolman_enabled:r?`true`:`false`,spoolman_url:a,spoolman_sync_mode:s,spoolman_disable_weight_sync:l?`true`:`false`,spoolman_report_partial_usage:d?`true`:`false`,auto_add_unknown_rfid:p?`true`:`false`}),onSuccess:()=>{t.invalidateQueries({queryKey:[`spoolman-settings`]}),t.invalidateQueries({queryKey:[`spoolman-status`]}),t.invalidateQueries({queryKey:[`spool-assignments`]}),t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`spoolman-inventory-filaments`]}),n(e(`settings.toast.settingsSaved`))},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),N=q({mutationFn:Z.connectSpoolman,onSuccess:()=>{A()},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),P=q({mutationFn:Z.syncAllPrintersAms,onSuccess:t=>{n(e(`settings.spoolmanAmsSyncSuccess`,{synced:t.synced_count,skipped:0}),`success`)},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),F=q({mutationFn:e=>Z.syncPrinterAms(e),onSuccess:t=>{n(e(`settings.spoolmanAmsSyncSuccess`,{synced:t.synced_count,skipped:0}),`success`)},onError:()=>{n(e(`settings.toast.saveFailed`),`error`)}}),I=()=>{h===`all`?P.mutate():F.mutate(h)},L=q({mutationFn:Z.syncWeightsFromAms,onSuccess:r=>{t.invalidateQueries({queryKey:[`spools`]}),t.invalidateQueries({queryKey:[`inventory-spools`]}),n(e(`settings.amsSyncSuccess`,{synced:r.synced,skipped:r.skipped}),`success`),C(!1)},onError:()=>{n(e(`settings.amsSyncError`),`error`),C(!1)}}),R=q({mutationFn:Z.syncSpoolmanAmsWeights,onSuccess:r=>{t.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),n(e(`settings.spoolmanAmsSyncSuccess`,{synced:r.synced,skipped:r.skipped}),`success`),T(!1)},onError:t=>{t instanceof sd&&t.status===503?n(e(`settings.spoolmanAmsSyncErrorUnreachable`),`error`):t instanceof sd&&t.status===400?n(e(`settings.spoolmanAmsSyncErrorNotConfigured`),`error`):n(e(`settings.spoolmanAmsSyncError`),`error`),T(!1)}}),z=P.isPending||F.isPending,B=h===`all`?P.data:F.data,V=h===`all`?P.isSuccess:F.isSuccess;return D?(0,G.jsxs)(zd,{id:`card-spoolman`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.filamentTracking`)})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})})})]}):(0,G.jsxs)(zd,{id:`card-spoolman`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.filamentTracking`)})]}),M.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-green animate-spin`})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.filamentTrackingDesc`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(!1),className:`p-3 rounded-lg border-2 text-left transition-colors ${r?`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray/50`:`border-bambu-green bg-bambu-green/10`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 ${r?`text-bambu-gray`:`text-bambu-green`}`}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${r?`text-bambu-gray`:`text-white`}`,children:e(`settings.trackingModeBuiltIn`)})]}),(0,G.jsx)(`p`,{className:`text-xs ${r?`text-bambu-gray/60`:`text-bambu-gray`}`,children:e(`settings.trackingModeBuiltInDesc`)}),!r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-2`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:e(`common.enabled`)})]})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),className:`p-3 rounded-lg border-2 text-left transition-colors ${r?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray/50`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(rc,{className:`w-4 h-4 ${r?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${r?`text-white`:`text-bambu-gray`}`,children:`Spoolman`})]}),(0,G.jsx)(`p`,{className:`text-xs ${r?`text-bambu-gray`:`text-bambu-gray/60`}`,children:e(`settings.trackingModeSpoolmanDesc`)}),r&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-2`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:e(`common.enabled`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`pr-4`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`settings.autoAddUnknownRfid`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.autoAddUnknownRfidDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:p,onChange:e=>m(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),!r&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/5 border border-bambu-green/20 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-0.5`}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:(0,G.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5`,children:[(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureRfid`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureUsage`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureCatalog`)}),(0,G.jsx)(`li`,{children:e(`settings.builtInFeatureThirdParty`)})]})})]})}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>C(!0),disabled:L.isPending,children:[L.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4 mr-2`}),e(`settings.amsSyncButton`)]})]}),r&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-blue-50 dark:bg-blue-500/10 border border-blue-300 dark:border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs text-blue-700 dark:text-blue-300`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:e(`settings.howSyncWorks`)}),(0,G.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5 text-blue-700/90 dark:text-blue-300/80`,children:[(0,G.jsx)(`li`,{children:e(`settings.syncInfoRfidOnly`)}),(0,G.jsx)(`li`,{children:e(`settings.syncInfoAutoCreate`)}),(0,G.jsx)(`li`,{children:e(`settings.syncInfoThirdPartySkipped`)})]}),(0,G.jsx)(`p`,{className:`font-medium mt-2 mb-1`,children:e(`settings.linkingExistingSpools`)}),(0,G.jsx)(`p`,{className:`text-blue-700/90 dark:text-blue-300/80`,children:e(`settings.linkingExistingSpoolsDesc`)})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`settings.spoolmanUrl`)}),(0,G.jsx)(`input`,{type:`text`,placeholder:`http://192.168.1.100:7912`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.spoolmanUrlHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`settings.syncMode`)}),(0,G.jsxs)(`select`,{value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`auto`,children:e(`settings.syncModeAuto`)}),(0,G.jsx)(`option`,{value:`manual`,children:e(`settings.syncModeManual`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(s===`auto`?`settings.syncModeAutoDesc`:`settings.syncModeManualDesc`)})]}),s===`auto`&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`spoolman.disableWeightSync`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`spoolman.disableWeightSyncDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),l&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:e(`spoolman.reportPartialUsage`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`spoolman.reportPartialUsageDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`settings.status`),`:`]}),k?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin`}):O?.connected?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-sm text-green-500`,children:[(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`settings.spoolmanConnected`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-sm text-red-500`,children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),e(`settings.spoolmanDisconnected`)]})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:!O?.connected&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>N.mutate(),disabled:N.isPending||!a,children:[N.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xc,{className:`w-4 h-4`}),e(`settings.connect`)]})})]}),N.isError&&(0,G.jsx)(`div`,{className:`mb-3 p-2 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded text-sm text-red-700 dark:text-red-400`,children:N.error.message}),O?.connected&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e(`settings.syncAmsData`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`settings.syncAmsDataDesc`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value===`all`?`all`:Number(e.target.value)),className:`w-full px-3 py-2 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`settings.allPrinters`)}),j?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:I,disabled:z,children:[z?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`spoolman.sync`)]})]})]}),O?.connected&&(0,G.jsx)(`div`,{className:`mt-4 pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e(`settings.spoolmanAmsSyncButton`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:e(`settings.spoolmanAmsSyncMessage`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>T(!0),disabled:R.isPending,children:[R.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),R.isPending?e(`settings.spoolmanAmsSyncing`):e(`settings.spoolmanAmsSyncButton`)]})]})}),V&&B&&(0,G.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded text-sm ${B.success?`bg-green-100 dark:bg-green-500/20 border border-green-300 dark:border-green-500/50 text-green-700 dark:text-green-400`:`bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-300 dark:border-yellow-500/50 text-yellow-700 dark:text-yellow-400`}`,children:B.success?`Synced ${B.synced_count} spool${B.synced_count===1?``:`s`} successfully`:`Synced ${B.synced_count} spool${B.synced_count===1?``:`s`} with ${B.errors.length} error${B.errors.length===1?``:`s`}`}),B.skipped_count>0&&(0,G.jsxs)(`div`,{className:`p-2 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-amber-700 dark:text-amber-400 mb-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium`,children:[B.skipped_count,` spool`,B.skipped_count===1?``:`s`,` skipped`]})]}),B.skipped_count>5&&(0,G.jsx)(`button`,{onClick:()=>x(!b),className:`text-xs text-amber-700 dark:text-amber-400 hover:text-amber-800 dark:hover:text-amber-300 underline`,children:b?`Show less`:`Show all`})]}),(0,G.jsxs)(`ul`,{className:`text-xs text-amber-700/90 dark:text-amber-300/80 space-y-0.5`,children:[(b?B.skipped:B.skipped.slice(0,5)).map((e,t)=>(0,G.jsxs)(`li`,{className:`flex items-center gap-2`,children:[e.color&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:`#${e.color}`}}),(0,G.jsx)(`span`,{children:e.location}),(0,G.jsxs)(`span`,{className:`text-amber-700/70 dark:text-amber-300/60`,children:[`- `,e.reason]})]},t)),!b&&B.skipped_count>5&&(0,G.jsxs)(`li`,{className:`text-amber-700/70 dark:text-amber-300/60 italic`,children:[`...and `,B.skipped_count-5,` more`]})]})]}),B.errors.length>0&&(0,G.jsxs)(`div`,{className:`p-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded text-sm`,children:[(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400 font-medium mb-1`,children:`Errors:`}),(0,G.jsx)(`ul`,{className:`text-xs text-red-700/90 dark:text-red-300/80 space-y-0.5`,children:B.errors.map((e,t)=>(0,G.jsx)(`li`,{children:e},t))})]})]})]})]})]}),S&&(0,G.jsx)(of,{title:e(`settings.amsSyncTitle`),message:e(`settings.amsSyncMessage`),confirmText:e(`settings.amsSyncButton`),variant:`warning`,isLoading:L.isPending,loadingText:e(`settings.amsSyncing`),onConfirm:()=>L.mutate(),onCancel:()=>C(!1)}),w&&(0,G.jsx)(of,{title:e(`settings.spoolmanAmsSyncTitle`),message:e(`settings.spoolmanAmsSyncMessage`),confirmText:e(`settings.spoolmanAmsSyncButton`),variant:`warning`,isLoading:R.isPending,loadingText:e(`settings.spoolmanAmsSyncing`),onConfirm:()=>R.mutate(),onCancel:()=>T(!1)})]})}function uGe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),c=(0,y.useRef)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(new Set),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(!1),O=(0,y.useCallback)(async()=>{try{r(await Z.getSpoolCatalog())}catch(n){console.error(`SpoolCatalogSettings.loadCatalog failed:`,n),t(e(`settings.catalog.loadFailed`),`error`)}finally{a(!1)}},[t,e]);(0,y.useEffect)(()=>{O()},[O]);let k=n.filter(e=>e.name.toLowerCase().includes(o.toLowerCase())),A=async()=>{if(!p.trim()||!h){t(e(`settings.catalog.nameWeightRequired`),`error`);return}v(!0);try{let n=await Z.addCatalogEntry({name:p.trim(),weight:parseInt(h)});r(e=>[...e,n].sort((e,t)=>e.name.localeCompare(t.name))),u(!1),m(``),g(``),t(e(`settings.catalog.entryAdded`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleAdd failed:`,n),t(e(`settings.catalog.addFailed`),`error`)}finally{v(!1)}},j=e=>{f(e.id),m(e.name),g(e.weight.toString())},M=()=>{f(null),m(``),g(``)},N=async n=>{if(!p.trim()||!h){t(e(`settings.catalog.nameWeightRequired`),`error`);return}v(!0);try{let i=await Z.updateCatalogEntry(n,{name:p.trim(),weight:parseInt(h)});r(e=>e.map(e=>e.id===n?i:e).sort((e,t)=>e.name.localeCompare(t.name))),f(null),m(``),g(``),t(e(`settings.catalog.entryUpdated`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleUpdate failed:`,n),t(e(`settings.catalog.updateFailed`),`error`)}finally{v(!1)}},P=async()=>{if(w)try{await Z.deleteCatalogEntry(w.id),r(e=>e.filter(e=>e.id!==w.id)),t(e(`settings.catalog.entryDeleted`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleDelete failed:`,n),t(e(`settings.catalog.deleteFailed`),`error`)}finally{T(null)}},F=async()=>{D(!1),a(!0);try{await Z.resetSpoolCatalog(),await O(),t(e(`settings.catalog.resetSuccess`),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleReset failed:`,n),t(e(`settings.catalog.resetFailed`),`error`),a(!1)}},I=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(zd,{id:`card-spool-catalog`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.catalog.spoolCatalog`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,n.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>{let r=n.map(({name:e,weight:t})=>({name:e,weight:t})),i=new Blob([JSON.stringify(r,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`spool-catalog.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a),t(e(`settings.catalog.exported`,{count:n.length}),`success`)},className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.exportTooltip`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.export`)})]}),(0,G.jsxs)(`button`,{onClick:()=>c.current?.click(),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.importTooltip`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.import`)})]}),(0,G.jsx)(`input`,{ref:c,type:`file`,accept:`.json`,className:`hidden`,onChange:async i=>{let a=i.target.files?.[0];if(a){try{let i=await a.text(),o=JSON.parse(i);if(!Array.isArray(o))throw Error(`Invalid format`);let s=0,c=0;for(let e of o){if(!e.name||typeof e.weight!=`number`){c++;continue}if(n.some(t=>t.name.toLowerCase()===e.name.toLowerCase())){c++;continue}try{let t=await Z.addCatalogEntry({name:e.name,weight:e.weight});r(e=>[...e,t].sort((e,t)=>e.name.localeCompare(t.name))),s++}catch(e){console.error(`SpoolCatalogSettings import item failed:`,e),c++}}t(e(`settings.catalog.imported`,{added:s,skipped:c}),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleImport failed:`,n),t(e(`settings.catalog.importFailed`),`error`)}c.current&&(c.current.value=``)}}}),(0,G.jsxs)(`button`,{onClick:()=>D(!0),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.catalog.resetTooltip`),children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.reset`)})]}),(0,G.jsxs)(`button`,{onClick:()=>u(!0),className:`px-3 py-1.5 text-sm bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.add`)})]})]}),b.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 px-3 py-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.catalog.selectedCount`,{count:b.size})}),(0,G.jsxs)(`button`,{onClick:()=>C(!0),className:`ml-auto px-3 py-1.5 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.catalog.deleteSelected`)]}),(0,G.jsx)(`button`,{onClick:()=>x(new Set),className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white transition-colors`,children:e(`common.cancel`)})]})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.catalog.spoolCatalogDescription`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.catalog.searchCatalog`),value:o,onChange:e=>s(e.target.value)})]}),l&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e(`settings.catalog.addNewEntry`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.catalog.namePlaceholder`),value:p,onChange:e=>m(e.target.value)})}),(0,G.jsx)(`input`,{type:`number`,className:`w-20 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-center focus:border-bambu-green focus:outline-none`,placeholder:`g`,value:h,onChange:e=>g(e.target.value)}),(0,G.jsx)(`span`,{className:`text-bambu-gray shrink-0`,children:`g`}),(0,G.jsxs)(`button`,{onClick:A,disabled:_,className:`px-3 py-2 bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 flex items-center gap-1 shrink-0`,children:[_?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`common.add`)]}),(0,G.jsx)(`button`,{onClick:()=>{u(!1),m(``),g(``)},className:`p-2 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),i?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),e(`common.loading`)]}):(0,G.jsx)(`div`,{className:`max-h-[600px] overflow-y-auto border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-2 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:k.length>0&&b.size===k.length,onChange:()=>{b.size===k.length?x(new Set):x(new Set(k.map(e=>e.id)))},className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-left text-bambu-gray font-medium`,children:e(`common.name`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-right text-bambu-gray font-medium w-24`,children:e(`settings.catalog.weight`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-center text-bambu-gray font-medium w-20`,children:e(`settings.catalog.type`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 w-24`})]})}),(0,G.jsx)(`tbody`,{children:k.length===0?(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:5,className:`px-4 py-8 text-center text-bambu-gray`,children:e(o?`settings.catalog.noMatch`:`settings.catalog.empty`)})}):k.map(t=>(0,G.jsx)(`tr`,{className:`border-t border-bambu-dark-tertiary hover:bg-bambu-dark ${b.has(t.id)?`bg-bambu-dark`:``}`,children:d===t.id?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:b.has(t.id),onChange:()=>I(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white focus:border-bambu-green focus:outline-none`,value:p,onChange:e=>m(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(`input`,{type:`number`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-right focus:border-bambu-green focus:outline-none`,value:h,onChange:e=>g(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-center`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`-`})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>N(t.id),disabled:_,className:`p-1.5 rounded hover:bg-green-500/20 text-green-500`,children:_?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:M,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:b.has(t.id),onChange:()=>I(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-white`,children:t.name}),(0,G.jsxs)(`td`,{className:`px-4 py-2 text-right font-mono text-white`,children:[t.weight,`g`]}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-center`,children:t.is_default?(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray`,children:e(`settings.catalog.default`)}):(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:e(`settings.catalog.custom`)})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>j(t),className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>T(t),className:`p-1.5 rounded bg-red-500/10 hover:bg-red-500/20 text-red-500`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})},t.id))})]})})]}),w&&(0,G.jsx)(of,{title:e(`settings.catalog.deleteEntry`),message:e(`settings.catalog.deleteConfirm`,{name:w.name}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:P,onCancel:()=>T(null)}),S&&(0,G.jsx)(of,{title:e(`settings.catalog.deleteSelected`),message:e(`settings.catalog.bulkDeleteConfirm`,{count:b.size}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:async()=>{if(C(!1),b.size!==0)try{let n=await Z.bulkDeleteCatalogEntries([...b]);r(e=>e.filter(e=>!b.has(e.id))),x(new Set),t(e(`settings.catalog.bulkDeleted`,{count:n.deleted}),`success`)}catch(n){console.error(`SpoolCatalogSettings.handleBulkDelete failed:`,n),t(e(`settings.catalog.bulkDeleteFailed`),`error`)}},onCancel:()=>C(!1)}),E&&(0,G.jsx)(of,{title:e(`settings.catalog.resetCatalog`),message:e(`settings.catalog.resetConfirm`),confirmText:e(`common.reset`),variant:`danger`,onConfirm:F,onCancel:()=>D(!1)})]})}function w8({rgba:e,extraColors:t,effectType:n,subtype:r,className:i=`w-5 h-5`,shape:a=`circle`,style:o,title:s,effectSize:c}){let l=(0,y.useMemo)(()=>yH(t),[t]),u=(0,y.useMemo)(()=>bH({effectSize:c,rgba:e,extraColors:t,effectType:n,subtype:r}),[c,e,t,n,r]),d=u.backgroundImage,f=u.backgroundSize,p=a===`circle`||a===`pill`?`rounded-full`:`rounded`,m=(()=>{if(!e)return;let t=e.replace(/^#/,``);return t.length>=8&&t.substring(6,8).toLowerCase()!==`ff`?`#${t.substring(0,8)}`:`#${t.substring(0,6)}`})(),h=s??(l.length>0?l.join(`, `):m);return(0,G.jsx)(`span`,{"data-testid":`filament-swatch`,className:`${i} ${p} border border-black/20 inline-block flex-shrink-0`,style:{backgroundImage:d,backgroundSize:f,...o},title:h})}function dGe(){let{t:e}=U(),{showToast:t}=qd(),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),u=(0,y.useRef)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`#FFFFFF`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(``),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(new Set),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(null),[B,V]=(0,y.useState)(!1),ee=(0,y.useCallback)(async()=>{try{r(await Z.getColorCatalog())}catch{t(e(`settings.colorCatalog.loadFailed`),`error`)}finally{a(!1)}},[t,e]);(0,y.useEffect)(()=>{ee()},[ee]);let te=[...new Set(n.map(e=>e.manufacturer))].sort(),ne=n.filter(e=>{let t=o===``||e.manufacturer.toLowerCase().includes(o.toLowerCase())||e.color_name.toLowerCase().includes(o.toLowerCase())||(e.material?.toLowerCase().includes(o.toLowerCase())??!1),n=c===``||e.manufacturer===c;return t&&n}),re=()=>{g(``),v(``),x(`#FFFFFF`),C(``),T(``),D(``)},ie=async()=>{if(!h.trim()||!_.trim()||!b){t(e(`settings.colorCatalog.fieldsRequired`),`error`);return}k(!0);try{let n=await Z.addColorEntry({manufacturer:h.trim(),color_name:_.trim(),hex_color:b,material:S.trim()||null,extra_colors:w.trim()||null,effect_type:E.trim()||null});r(e=>[...e,n].sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),f(!1),re(),t(e(`settings.colorCatalog.colorAdded`),`success`)}catch{t(e(`settings.colorCatalog.addFailed`),`error`)}finally{k(!1)}},ae=e=>{m(e.id),g(e.manufacturer),v(e.color_name),x(e.hex_color),C(e.material||``),T(e.extra_colors||``),D(e.effect_type||``)},oe=()=>{m(null),re()},se=async n=>{if(!h.trim()||!_.trim()||!b){t(e(`settings.colorCatalog.fieldsRequired`),`error`);return}k(!0);try{let i=await Z.updateColorEntry(n,{manufacturer:h.trim(),color_name:_.trim(),hex_color:b,material:S.trim()||null,extra_colors:w.trim()||null,effect_type:E.trim()||null});r(e=>e.map(e=>e.id===n?i:e).sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),m(null),re(),t(e(`settings.colorCatalog.colorUpdated`),`success`)}catch{t(e(`settings.colorCatalog.updateFailed`),`error`)}finally{k(!1)}},H=async()=>{if(R)try{await Z.deleteColorEntry(R.id),r(e=>e.filter(e=>e.id!==R.id)),t(e(`settings.colorCatalog.colorDeleted`),`success`)}catch{t(e(`settings.colorCatalog.deleteFailed`),`error`)}finally{z(null)}},ce=async()=>{V(!1),a(!0);try{await Z.resetColorCatalog(),await ee(),t(e(`settings.colorCatalog.resetSuccess`),`success`)}catch{t(e(`settings.colorCatalog.resetFailed`),`error`),a(!1)}},le=async()=>{F(!0),L(null);try{let n={},r=ud();r&&(n.Authorization=`Bearer ${r}`);let i=await fetch(`/api/v1/inventory/colors/sync`,{method:`POST`,headers:n});if(!i.ok)throw Error(`Failed to start sync`);let a=i.body?.getReader();if(!a)throw Error(`No response body`);let o=new TextDecoder,s=``;for(;;){let{done:n,value:r}=await a.read();if(n)break;s+=o.decode(r,{stream:!0});let i=s.split(` +`);s=i.pop()||``;for(let n of i)if(n.startsWith(`data: `))try{let r=JSON.parse(n.slice(6));r.type===`progress`?L({fetched:r.total_fetched,total:r.total_available}):r.type===`complete`?r.added===0?t(e(`settings.colorCatalog.syncUpToDate`,{count:r.total_fetched}),`success`):t(e(`settings.colorCatalog.syncComplete`,{added:r.added,skipped:r.skipped}),`success`):r.type===`error`&&t(`${e(`settings.colorCatalog.syncError`)}: ${r.error}`,`error`)}catch{}}await ee()}catch{t(e(`settings.colorCatalog.syncFailed`),`error`)}finally{F(!1),L(null)}},ue=e=>{j(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(zd,{id:`card-color-catalog`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(wl,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.colorCatalog.title`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,n.length,`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>{let r=n.map(({manufacturer:e,color_name:t,hex_color:n,material:r,extra_colors:i,effect_type:a})=>({manufacturer:e,color_name:t,hex_color:n,material:r,extra_colors:i,effect_type:a})),i=new Blob([JSON.stringify(r,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`color-catalog.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a),t(e(`settings.colorCatalog.exported`,{count:n.length}),`success`)},className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.export`)})]}),(0,G.jsxs)(`button`,{onClick:()=>u.current?.click(),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.import`)})]}),(0,G.jsx)(`input`,{ref:u,type:`file`,accept:`.json`,className:`hidden`,onChange:async i=>{let a=i.target.files?.[0];if(a){try{let i=await a.text(),o=JSON.parse(i);if(!Array.isArray(o))throw Error(`Invalid format`);let s=0,c=0;for(let e of o){if(!e.manufacturer||!e.color_name||!e.hex_color){c++;continue}if(n.some(t=>t.manufacturer.toLowerCase()===e.manufacturer.toLowerCase()&&t.color_name.toLowerCase()===e.color_name.toLowerCase()&&(t.material||``).toLowerCase()===(e.material||``).toLowerCase())){c++;continue}try{let t=await Z.addColorEntry({manufacturer:e.manufacturer,color_name:e.color_name,hex_color:e.hex_color,material:e.material||null,extra_colors:e.extra_colors||null,effect_type:e.effect_type||null});r(e=>[...e,t].sort((e,t)=>e.manufacturer.localeCompare(t.manufacturer)||(e.material||``).localeCompare(t.material||``)||e.color_name.localeCompare(t.color_name))),s++}catch{c++}}t(e(`settings.colorCatalog.imported`,{added:s,skipped:c}),`success`)}catch{t(e(`settings.colorCatalog.importFailed`),`error`)}u.current&&(u.current.value=``)}}}),(0,G.jsxs)(`button`,{onClick:le,disabled:P,className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,title:e(`settings.colorCatalog.syncTooltip`),children:[P?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ps,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:P?I?`${Math.min(I.fetched,I.total)} / ${I.total}`:e(`settings.colorCatalog.starting`):e(`settings.colorCatalog.sync`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(!0),className:`px-3 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.reset`)})]}),(0,G.jsxs)(`button`,{onClick:()=>f(!0),className:`px-3 py-1.5 text-sm bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.add`)})]})]}),A.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 px-3 py-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-sm text-red-700 dark:text-red-400`,children:e(`settings.colorCatalog.selectedCount`,{count:A.size})}),(0,G.jsxs)(`button`,{onClick:()=>N(!0),className:`ml-auto px-3 py-1.5 text-sm bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors flex items-center gap-1.5`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.colorCatalog.deleteSelected`)]}),(0,G.jsx)(`button`,{onClick:()=>j(new Set),className:`px-3 py-1.5 text-sm text-bambu-gray hover:text-white transition-colors`,children:e(`common.cancel`)})]})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`settings.colorCatalog.description`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-[200px]`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.searchColors`),value:o,onChange:e=>s(e.target.value)})]}),(0,G.jsxs)(`select`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,value:c,onChange:e=>l(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.colorCatalog.allManufacturers`)}),te.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]})]}),d&&(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e(`settings.colorCatalog.addNewColor`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-2 items-end`,children:[(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.manufacturer`),value:h,onChange:e=>g(e.target.value)}),(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.colorName`),value:_,onChange:e=>v(e.target.value)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,className:`w-20 h-10 rounded cursor-pointer border border-bambu-dark-tertiary`,value:b,onChange:e=>x(e.target.value)}),(0,G.jsx)(`input`,{type:`text`,className:`w-32 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:`#FFFFFF`,value:b,onChange:e=>x(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`text`,className:`flex-1 max-w-lg min-w-[200px] px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`settings.colorCatalog.materialOptional`),value:S,onChange:e=>C(e.target.value)}),(0,G.jsxs)(`button`,{onClick:ie,disabled:O,className:`w-24 px-3 py-2 bg-bambu-green text-white rounded-lg hover:bg-bambu-green/80 flex items-center justify-center gap-3`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),e(`common.add`)]}),(0,G.jsx)(`button`,{onClick:()=>{f(!1),re()},className:`p-2 ml-2 rounded-lg text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 mt-2`,children:[(0,G.jsx)(`input`,{type:`text`,className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono placeholder-bambu-gray focus:border-bambu-green focus:outline-none`,placeholder:e(`inventory.extraColorsPlaceholder`),value:w,onChange:e=>T(e.target.value)}),(0,G.jsx)(`select`,{className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,value:E,onChange:e=>D(e.target.value),children:_H.map(t=>(0,G.jsx)(`option`,{value:t.value,children:e(t.labelKey)},t.value||`none`))})]})]}),(o||c)&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:e(`settings.colorCatalog.showing`,{filtered:ne.length,total:n.length})}),i?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),e(`common.loading`)]}):(0,G.jsx)(`div`,{className:`max-h-[600px] overflow-auto border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-2 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:ne.length>0&&A.size===ne.length,onChange:()=>{A.size===ne.length?j(new Set):j(new Set(ne.map(e=>e.id)))},className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium w-12`}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`settings.colorCatalog.manufacturer`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`inventory.material`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium`,children:e(`settings.colorCatalog.colorName`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-bambu-gray font-medium w-24`,children:e(`settings.colorCatalog.hex`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 w-16`})]})}),(0,G.jsx)(`tbody`,{children:ne.length===0?(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:7,className:`px-3 py-8 text-center text-bambu-gray`,children:e(o||c?`settings.colorCatalog.noMatch`:`settings.colorCatalog.empty`)})}):ne.map(t=>(0,G.jsxs)(y.Fragment,{children:[(0,G.jsx)(`tr`,{className:`border-t border-bambu-dark-tertiary hover:bg-bambu-dark ${A.has(t.id)?`bg-bambu-dark`:``}`,children:p===t.id?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:A.has(t.id),onChange:()=>ue(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`color`,className:`w-8 h-8 rounded cursor-pointer border border-bambu-dark-tertiary`,value:b,onChange:e=>x(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:h,onChange:e=>g(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:S,onChange:e=>C(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:_,onChange:e=>v(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:b,onChange:e=>x(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>se(t.id),disabled:O,className:`p-1.5 rounded hover:bg-green-500/20 text-green-500`,children:O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:oe,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`td`,{className:`px-2 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:A.has(t.id),onChange:()=>ue(t.id),className:`w-4 h-4 accent-bambu-green cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(w8,{rgba:t.hex_color.replace(/^#/,``)+(t.hex_color.length===7?`FF`:``),extraColors:t.extra_colors,effectType:t.effect_type,className:`w-8 h-8`,shape:`square`,title:t.hex_color,effectSize:`table`})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:t.manufacturer}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-bambu-gray`,children:t.material||`-`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:t.color_name}),(0,G.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs text-bambu-gray`,children:t.hex_color}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>ae(t),className:`p-1.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>z(t),className:`p-1.5 rounded bg-red-500/10 hover:bg-red-500/20 text-red-500`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}),p===t.id&&(0,G.jsxs)(`tr`,{className:`border-t border-bambu-dark-tertiary/50 bg-bambu-dark`,children:[(0,G.jsx)(`td`,{colSpan:2}),(0,G.jsx)(`td`,{className:`px-3 py-2`,colSpan:2,children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`,placeholder:e(`inventory.extraColorsPlaceholder`),value:w,onChange:e=>T(e.target.value)})}),(0,G.jsx)(`td`,{className:`px-3 py-2`,colSpan:2,children:(0,G.jsx)(`select`,{className:`w-full px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,value:E,onChange:e=>D(e.target.value),children:_H.map(t=>(0,G.jsx)(`option`,{value:t.value,children:e(t.labelKey)},t.value||`none`))})}),(0,G.jsx)(`td`,{})]})]},t.id))})]})})]}),R&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.deleteColor`),message:e(`settings.colorCatalog.deleteConfirm`,{name:`${R.manufacturer} - ${R.color_name}`}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:H,onCancel:()=>z(null)}),M&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.deleteSelected`),message:e(`settings.colorCatalog.bulkDeleteConfirm`,{count:A.size}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:async()=>{if(N(!1),A.size!==0)try{let n=await Z.bulkDeleteColorEntries([...A]);r(e=>e.filter(e=>!A.has(e.id))),j(new Set),t(e(`settings.colorCatalog.bulkDeleted`,{count:n.deleted}),`success`)}catch{t(e(`settings.colorCatalog.bulkDeleteFailed`),`error`)}},onCancel:()=>N(!1)}),B&&(0,G.jsx)(of,{title:e(`settings.colorCatalog.resetCatalog`),message:e(`settings.colorCatalog.resetConfirm`),confirmText:e(`common.reset`),variant:`danger`,onConfirm:ce,onCancel:()=>V(!1)})]})}function fGe({link:e,onClose:t}){let{t:n}=U(),r=co(),i=!!e,a=(0,y.useRef)(null),[o,s]=(0,y.useState)(e?.name||``),[c,l]=(0,y.useState)(e?.url||``),[u,d]=(0,y.useState)(e?.icon||`link`),[f,p]=(0,y.useState)(e?.open_in_new_tab||!1),[m,h]=(0,y.useState)(!!e?.custom_icon),[g,_]=(0,y.useState)(e?.custom_icon?Z.getExternalLinkIconUrl(e.id):null),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]);let C=q({mutationFn:async e=>{let t=await Z.createExternalLink(e);return v?await Z.uploadExternalLinkIcon(t.id,v):t},onSuccess:()=>{r.invalidateQueries({queryKey:[`external-links`]}),t()},onError:e=>{S(e.message)}}),w=q({mutationFn:async t=>{let n=await Z.updateExternalLink(e.id,t);return v?n=await Z.uploadExternalLinkIcon(e.id,v):!m&&e?.custom_icon&&(n=await Z.deleteExternalLinkIcon(e.id)),n},onSuccess:()=>{r.invalidateQueries({queryKey:[`external-links`]}),t()},onError:e=>{S(e.message)}}),T=e=>{let t=e.target.files?.[0];if(t){if(![`image/png`,`image/jpeg`,`image/gif`,`image/svg+xml`,`image/webp`,`image/x-icon`].includes(t.type)){S(`Please select a valid image file (PNG, JPG, GIF, SVG, WebP, or ICO)`);return}if(t.size>1024*1024){S(`Image file must be less than 1MB`);return}b(t),h(!0);let e=new FileReader;e.onload=e=>{_(e.target?.result)},e.readAsDataURL(t)}},E=()=>{b(null),_(null),h(!1),a.current&&(a.current.value=``)},D=e=>{if(e.preventDefault(),S(null),!o.trim()){S(`Name is required`);return}if(!c.trim()){S(`URL is required`);return}if(!c.startsWith(`http://`)&&!c.startsWith(`https://`)){S(`URL must start with http:// or https://`);return}let t={name:o.trim(),url:c.trim(),icon:u,open_in_new_tab:f};i?w.mutate(t):C.mutate(t)},O=C.isPending||w.isPending,k=uf(u);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:m&&g?(0,G.jsx)(`img`,{src:g,alt:``,className:`w-5 h-5 rounded`}):(0,G.jsx)(k,{className:`w-5 h-5`})}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i?`Edit Link`:`Add External Link`})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:D,className:`p-6 space-y-4`,children:[x&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 dark:bg-red-500/20 border border-red-300 dark:border-red-500/50 rounded-lg text-sm text-red-700 dark:text-red-400`,children:x}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`Name *`}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:`My Link`,maxLength:50,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:`URL *`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`https://example.com`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray`,children:n(`externalLinks.openInNewTab`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>p(!f),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${f?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${f?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray`,children:`Icon`}),(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:`Custom Icon`}),(0,G.jsx)(`input`,{ref:a,type:`file`,accept:`image/png,image/jpeg,image/gif,image/svg+xml,image/webp,image/x-icon`,className:`hidden`,onChange:T}),m&&g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`img`,{src:g,alt:`Custom icon`,className:`w-8 h-8 rounded border border-bambu-dark-tertiary`}),(0,G.jsx)(`button`,{type:`button`,onClick:E,className:`p-1 text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 transition-colors`,title:`Remove custom icon`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}):(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>a.current?.click(),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),`Upload`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:`PNG, JPG, GIF, SVG, WebP, or ICO. Max 1MB.`})]}),!m&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray block mb-2`,children:`Or choose a preset icon`}),(0,G.jsx)(df,{value:u,onChange:d})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,className:`flex-1`,children:`Cancel`}),(0,G.jsxs)(Q,{type:`submit`,disabled:O,className:`flex-1`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(ql,{className:`w-4 h-4`}),i?`Save`:`Add`]})]})]})]})})}function pGe(){let{t:e}=U(),t=co(),{authEnabled:n,hasPermission:r}=Nd(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(fm),[_,v]=(0,y.useState)(()=>um(mm.map(e=>e.id))),{data:b,isLoading:x}=K({queryKey:[`external-links`],queryFn:Z.getExternalLinks}),S=q({mutationFn:e=>Z.deleteExternalLink(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`external-links`]})}}),{data:C}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:n&&r(`settings:update`)}),w=q({mutationFn:e=>Z.updateSettings({default_sidebar_order:e}),onSuccess:(n,r)=>{t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`default-sidebar-order`]}),i(e(r?`settings.sidebarDefaultSet`:`settings.sidebarDefaultCleared`),`success`)},onError:()=>{i(e(`settings.sidebarDefaultFailed`),`error`)}}),T=(0,y.useMemo)(()=>{let e=new Map(mm.map(e=>[e.id,e])),t=new Map((b||[]).map(e=>[`ext-${e.id}`,e])),n=[],r=new Set,i=i=>{if(r.has(i))return;let a=e.get(i);if(a){n.push({type:`system`,id:i,navItem:a}),r.add(i);return}let o=t.get(i);o&&(n.push({type:`external`,id:i,link:o}),r.add(i))};return _.forEach(i),mm.forEach(e=>i(e.id)),(b||[]).forEach(e=>i(`ext-${e.id}`)),n},[b,_]),E=e=>{v(e),dm(e)},D=(e,t)=>{f(t),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t)},O=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,m(t)},k=(e,t)=>{if(e.preventDefault(),d===null||d===t){f(null),m(null);return}let n=T.map(e=>e.id),r=n.indexOf(d),i=n.indexOf(t);if(r===-1||i===-1){f(null),m(null);return}n.splice(r,1),n.splice(i,0,d),E(n),f(null),m(null)},A=()=>{f(null),m(null)},j=e=>{u(e)},M=()=>{l&&(S.mutate(l.id),u(null))},N=()=>{let e=[...mm.map(e=>e.id),...(b||[]).map(e=>`ext-${e.id}`)];g([]),v(e),pm([]),dm(e)},P=e=>{let t=T.map(e=>e.id);w.mutate(e?JSON.stringify({order:t,hiddenSystemItemIds:h}):``)},F=e=>{if(e===`settings`)return;let t=h.includes(e)?h.filter(t=>t!==e):[...h,e];g(t),pm(t)},I=n&&r(`settings:update`),L=!!C?.default_sidebar_order;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(zd,{id:`card-sidebar-links`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-y-2 gap-x-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`externalLinks.sidebarLayout`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[I&&(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:e(`settings.setDefault`)}),(0,G.jsx)(fH,{checked:L,onChange:P,disabled:w.isPending})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:N,className:`whitespace-nowrap`,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),e(`settings.reset`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>o(!0),className:`whitespace-nowrap`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),`Add Link`]})]})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`externalLinks.sidebarLayoutDescription`)}),x?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):(0,G.jsx)(`div`,{className:`space-y-2`,children:T.map(t=>{let n=t.type===`system`&&h.includes(t.id),r=t.id===`settings`;if(t.type===`system`){let i=t.navItem.icon;return(0,G.jsxs)(`div`,{draggable:!0,onDragStart:e=>D(e,t.id),onDragOver:e=>O(e,t.id),onDragLeave:()=>m(null),onDrop:e=>k(e,t.id),onDragEnd:A,className:`relative flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary transition-colors ${d===t.id?`opacity-50`:n?`opacity-60`:``} ${p===t.id&&d!==t.id?`before:absolute before:left-3 before:right-3 before:top-0 before:h-0.5 before:bg-bambu-green`:``}`,children:[(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray cursor-grab flex-shrink-0`}),(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-gray`,children:(0,G.jsx)(i,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate block`,children:e(t.navItem.labelKey)}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate block`,children:e(r?`externalLinks.requiredInSidebar`:n?`externalLinks.hiddenFromSidebar`:`externalLinks.visibleInSidebar`)})]}),(0,G.jsx)(`button`,{onClick:()=>F(t.id),disabled:r,className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors flex-shrink-0 disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent disabled:hover:text-bambu-gray`,title:e(r?`externalLinks.settingsCannotBeHidden`:n?`externalLinks.showPage`:`externalLinks.hidePage`),"aria-label":e(r?`externalLinks.settingsCannotBeHidden`:n?`externalLinks.showPage`:`externalLinks.hidePage`),children:n?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]},t.id)}let i=t.link,a=uf(i.icon);return(0,G.jsxs)(`div`,{draggable:!0,onDragStart:e=>D(e,t.id),onDragOver:e=>O(e,t.id),onDragLeave:()=>m(null),onDrop:e=>k(e,t.id),onDragEnd:A,className:`relative flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary transition-colors ${d===t.id?`opacity-50`:``} ${p===t.id&&d!==t.id?`before:absolute before:left-3 before:right-3 before:top-0 before:h-0.5 before:bg-bambu-green`:``}`,children:[(0,G.jsx)(jc,{className:`w-6 h-6 md:w-4 md:h-4 text-bambu-gray cursor-grab flex-shrink-0`}),(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-gray`,children:i.custom_icon?(0,G.jsx)(`img`,{src:Z.getExternalLinkIconUrl(i.id),alt:``,className:`w-4 h-4`}):(0,G.jsx)(a,{className:`w-4 h-4`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate`,children:i.name}),(0,G.jsx)(rc,{className:`w-3 h-3 text-bambu-gray flex-shrink-0`})]}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate block`,children:i.url})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`button`,{onClick:()=>c(i),className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,title:e(`common.edit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>j(i),disabled:S.isPending,className:`p-2 rounded-lg hover:bg-red-100 dark:hover:bg-red-500/20 text-bambu-gray hover:text-red-900 dark:hover:text-red-400 transition-colors disabled:opacity-50`,title:e(`externalLinks.deleteLink`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},t.id)})})]})]}),(a||s)&&(0,G.jsx)(fGe,{link:s,onClose:()=>{o(!1),c(null)}}),l&&(0,G.jsx)(of,{title:`Delete Link`,message:`Are you sure you want to delete "${l.name}"? This action cannot be undone.`,confirmText:`Delete`,cancelText:`Cancel`,variant:`danger`,onConfirm:M,onCancel:()=>u(null)})]})}async function T8(e){if(navigator.clipboard&&window.isSecureContext)try{return await navigator.clipboard.writeText(e),!0}catch{}let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t);try{return t.select(),document.execCommand(`copy`)}catch{return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function mGe(e,t,n=`text/plain`){let r=new Blob([e],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(i)}function hGe({status:e}){return e===`pass`?(0,G.jsx)(Ss,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}):e===`fail`?(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0`}):e===`warn`?(0,G.jsx)(Lu,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 flex-shrink-0`}):(0,G.jsx)(ws,{className:`w-5 h-5 text-bambu-gray flex-shrink-0`})}function gGe({vpId:e,vpName:t,onClose:n}){let{t:r}=U(),i=q({mutationFn:()=>wd.diagnose(e)});(0,y.useEffect)(()=>{i.mutate()},[]),(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]);let a=i.data,o=a?.overall===`ok`?`bg-bambu-green/10 border-bambu-green/30 text-bambu-green`:a?.overall===`warnings`?`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-300`:`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300`;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-lg flex flex-col max-h-[85vh]`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(Su,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,children:r(`vpDiagnostic.title`,{name:t})})]}),(0,G.jsx)(`button`,{onClick:n,className:`text-bambu-gray hover:text-white transition-colors`,title:r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-6 space-y-4 overflow-y-auto`,children:[i.isPending&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:r(`vpDiagnostic.running`)})]}),i.isError&&(0,G.jsx)(`div`,{className:`rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 px-4 py-3 text-sm text-red-700 dark:text-red-300`,children:r(`vpDiagnostic.runFailed`,{error:i.error.message})}),a&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`ol`,{className:`space-y-2`,children:a.checks.map(e=>{let t=r(`vpDiagnostic.check.${e.id}.${e.status}`,{...e.params,defaultValue:``});return(0,G.jsxs)(`li`,{className:`flex items-start gap-3 bg-bambu-dark rounded-lg px-4 py-2.5 ${e.status===`skip`?`opacity-60`:``}`,children:[(0,G.jsx)(`div`,{className:`mt-0.5`,children:(0,G.jsx)(hGe,{status:e.status})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white`,children:r(`vpDiagnostic.check.${e.id}.title`,e.params)}),t&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-0.5`,children:t})]})]},e.id)})}),(0,G.jsx)(`div`,{className:`rounded-lg border px-4 py-3 text-sm ${o}`,children:r(`vpDiagnostic.overall.${a.overall}`)})]})]}),(0,G.jsxs)(`div`,{className:`px-6 py-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>i.mutate(),disabled:i.isPending,className:`px-4 py-2 bg-bambu-dark hover:bg-bambu-dark-tertiary disabled:opacity-50 text-white text-sm rounded-lg transition-colors`,children:r(`vpDiagnostic.retry`)}),(0,G.jsx)(`button`,{onClick:n,className:`px-4 py-2 bg-bambu-green hover:bg-bambu-green/90 text-white text-sm rounded-lg transition-colors`,children:r(`common.close`)})]})]})})}var E8={archive:`archive`,review:`review`,queue:`queue`,proxy:`proxy`};function D8(e){return e===`immediate`?`archive`:e===`print_queue`||e===`queue`?`queue`:e===`archive`||e===`review`||e===`proxy`?e:`archive`}function _Ge({printer:e,models:t}){let{t:n}=U(),r=co(),{showToast:i}=qd(),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(e.enabled),[l,u]=(0,y.useState)(e.name),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(D8(e.mode)),[h,g]=(0,y.useState)(e.target_printer_id),[_,v]=(0,y.useState)(e.bind_ip||``),[b,x]=(0,y.useState)(e.remote_interface_ip||``),[S,C]=(0,y.useState)(e.model||``),[w,T]=(0,y.useState)(e.auto_dispatch??!0),[E,D]=(0,y.useState)(e.queue_force_color_match??!1),[O,k]=(0,y.useState)(e.save_ams_mapping??!1),[A,j]=(0,y.useState)(e.gcode_injection??!1),[M,N]=(0,y.useState)(e.tailscale_disabled??!0),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(!1),[ee,te]=(0,y.useState)(!1),{data:ne}=K({queryKey:[`tailscale-status`],queryFn:wd.getTailscaleStatus,enabled:!M,staleTime:6e4}),re=ne?.available?ne.fqdn:``,ie=ne?.available?ne.tailscale_ips?.[0]??``:``,ae=async e=>{e.stopPropagation();let t=re;t&&(await T8(t)?(te(!0),i(n(`printers.copied`)),setTimeout(()=>te(!1),2e3)):i(n(`virtualPrinter.toast.copyFailed`),`error`))};(0,y.useEffect)(()=>{I||(c(e.enabled),m(D8(e.mode)),u(e.name),g(e.target_printer_id),v(e.bind_ip||``),x(e.remote_interface_ip||``),C(e.model||``),T(e.auto_dispatch??!0),D(e.queue_force_color_match??!1),k(e.save_ams_mapping??!1),j(e.gcode_injection??!1),N(e.tailscale_disabled??!0))},[e,I]);let{data:oe}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:se}=K({queryKey:[`network-interfaces`],queryFn:()=>Z.getNetworkInterfaces().then(e=>e.interfaces)}),H=q({mutationFn:t=>wd.update(e.id,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`virtual-printers`]}),i(n(`virtualPrinter.toast.updated`)),L(null)},onError:t=>{i(t.message||n(`virtualPrinter.toast.failedToUpdate`),`error`),c(e.enabled),m(D8(e.mode)),g(e.target_printer_id),v(e.bind_ip||``),N(e.tailscale_disabled??!0),D(e.queue_force_color_match??!1),k(e.save_ams_mapping??!1),j(e.gcode_injection??!1),L(null)}}),ce=q({mutationFn:()=>wd.remove(e.id),onSuccess:()=>{r.invalidateQueries({queryKey:[`virtual-printers`]}),i(n(`virtualPrinter.toast.deleted`)),z(!1)},onError:e=>{i(e.message||n(`virtualPrinter.toast.failedToDelete`),`error`),z(!1)}}),le=t=>{t.stopPropagation();let r=!s;if(r){if(!_){i(n(`virtualPrinter.toast.bindIpRequired`),`error`);return}if(p===`proxy`){if(!h){i(n(`virtualPrinter.toast.targetPrinterRequired`),`error`);return}}else if(!d&&!e.access_code_set){i(n(`virtualPrinter.toast.accessCodeRequired`),`error`);return}}c(r),L(`toggle`),H.mutate({enabled:r})},ue=()=>{l.trim()&&(L(`name`),H.mutate({name:l.trim()}))},de=()=>{if(!d){i(n(`virtualPrinter.toast.accessCodeEmpty`),`error`);return}if(d.length!==8){i(n(`virtualPrinter.toast.accessCodeLength`),`error`);return}L(`accessCode`),H.mutate({access_code:d}),f(``)},fe=e=>{m(e),L(`mode`),H.mutate({mode:e})},pe=e=>{C(e),L(`model`),H.mutate({model:e})},me=e=>{let t=ve?.access_code,r=oe?.find(t=>t.id===e)?.access_code;g(e),L(`targetPrinter`),H.mutate({target_printer_id:e},{onSuccess:()=>{t&&r&&t!==r&&i(n(`virtualPrinter.toast.targetCodeChangedRebind`),`info`)}})},he=e=>{x(e),L(`remoteInterface`),H.mutate({remote_interface_ip:e})},ge=e.status?.running||!1,_e=n(`virtualPrinter.mode.${E8[p]||`archive`}`),ve=oe?.find(e=>e.id===h),ye=ve?.name,be=!!h,xe=be?ve?.access_code??``:``;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(zd,{className:`overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`px-4 py-3 flex items-center gap-3 cursor-pointer select-none`,onClick:()=>o(!a),children:[(0,G.jsx)(`button`,{className:`text-bambu-gray flex-shrink-0`,children:a?(0,G.jsx)(ps,{className:`w-4 h-4`}):(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full flex-shrink-0 ${ge?`bg-green-400 animate-pulse`:`bg-gray-500`}`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium truncate max-w-full`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0`,children:_e}),e.model_name&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0`,children:e.model_name}),ye&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray truncate max-w-full`,children:[p===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3 inline mr-1`}),ye]}),_&&(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray flex-shrink-0 font-mono`,children:_}),b&&(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray flex-shrink-0 font-mono`,children:b})]}),(0,G.jsx)(`div`,{className:`ml-auto flex items-center gap-2 flex-shrink-0`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(`button`,{onClick:le,disabled:I===`toggle`,className:`relative w-10 h-5 rounded-full transition-colors ${s?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`toggle`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${s?`translate-x-5`:``}`})})})]}),a&&(0,G.jsxs)(Vd,{className:`pt-0 space-y-4`,children:[(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),onBlur:ue,onKeyDown:e=>e.key===`Enter`&&ue(),className:`flex-1 text-sm text-white bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`button`,{onClick:()=>V(!0),className:`p-1.5 text-bambu-gray hover:text-bambu-green transition-colors flex-shrink-0`,title:n(`vpDiagnostic.runButton`),children:(0,G.jsx)(Su,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>z(!0),className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors flex-shrink-0`,title:n(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 -mt-2`,children:[re&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700/80 dark:text-green-400/70 min-w-0`,children:[(0,G.jsx)(au,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`font-mono text-xs truncate`,children:ie?`${ie} (${re})`:re}),(0,G.jsx)(`button`,{onClick:ae,className:`p-0.5 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors flex-shrink-0`,title:n(ee?`printers.copied`:`printers.copyToClipboard`),children:ee?(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green`}):(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-mono ml-auto flex-shrink-0`,children:e.serial})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-2`,children:n(`virtualPrinter.mode.title`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:[`archive`,`review`,`queue`,`proxy`].map(e=>(0,G.jsxs)(`button`,{onClick:()=>fe(e),disabled:I===`mode`,className:`p-2 rounded-lg border text-left transition-colors ${p===e?e===`proxy`?`border-blue-500 bg-blue-500/10`:`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-white text-xs font-medium`,children:[e===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3`}),n(`virtualPrinter.mode.${E8[e]}`)]}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.mode.${E8[e]}Desc`)})]},e))})]}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.autoDispatch.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.autoDispatch.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!w;T(e),L(`autoDispatch`),H.mutate({auto_dispatch:e})},disabled:I===`autoDispatch`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${w?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`autoDispatch`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${w?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.queueForceColorMatch.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.queueForceColorMatch.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!E;D(e),L(`queueForceColorMatch`),H.mutate({queue_force_color_match:e})},disabled:I===`queueForceColorMatch`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${E?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`queueForceColorMatch`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${E?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.saveAmsMapping.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.saveAmsMapping.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!O;k(e),L(`saveAmsMapping`),H.mutate({save_ams_mapping:e})},disabled:I===`saveAmsMapping`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${O?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`saveAmsMapping`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${O?`translate-x-5`:``}`})})]})}),p===`queue`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.gcodeInjection.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.gcodeInjection.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!A;j(e),L(`gcodeInjection`),H.mutate({gcode_injection:e})},disabled:I===`gcodeInjection`,className:`relative w-10 h-5 rounded-full transition-colors flex-shrink-0 ${A?`bg-bambu-green`:`bg-bambu-dark-tertiary`} ${I===`gcodeInjection`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${A?`translate-x-5`:``}`})})]})}),(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.tailscaleDisabled.title`)}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:n(`virtualPrinter.tailscaleDisabled.description`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=!M;N(e),L(`tailscaleDisabled`),H.mutate({tailscale_disabled:e})},disabled:I===`tailscaleDisabled`,className:`relative w-10 h-5 rounded-full transition-colors shrink-0 ${M?`bg-bambu-dark-tertiary`:`bg-bambu-green`} ${I===`tailscaleDisabled`?`opacity-50`:``}`,children:(0,G.jsx)(`span`,{className:`absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full transition-transform ${M?``:`translate-x-5`}`})})]})}),p!==`proxy`&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-1`,children:n(`virtualPrinter.model.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:n(`virtualPrinter.model.description`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:S,onChange:e=>pe(e.target.value),disabled:I===`model`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:Object.entries(t).map(([e,t])=>(0,G.jsxs)(`option`,{value:e,children:[t,` (`,e,`)`]},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),p===`proxy`&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-2 rounded bg-blue-50 border border-blue-300 dark:bg-blue-500/10 dark:border-blue-500/30`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`virtualPrinter.proxy.accessCodeHint`)})]})}),p!==`proxy`&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.accessCode.title`)}),be?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-blue-700 dark:text-blue-400`,children:[(0,G.jsx)(Wc,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.inheritedFromTarget`)]}):e.access_code_set?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.isSet`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`virtualPrinter.accessCode.notSet`)]})]}),be?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:P?`text`:`password`,value:xe,readOnly:!0,"aria-label":n(`virtualPrinter.accessCode.title`),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm pr-10 font-mono opacity-90 cursor-default`}),(0,G.jsx)(`button`,{onClick:()=>F(!P),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,"aria-label":n(P?`virtualPrinter.accessCode.hide`:`virtualPrinter.accessCode.reveal`),children:P?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`virtualPrinter.accessCode.derivedFromTargetHint`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:P?`text`:`password`,value:d,onChange:e=>f(e.target.value),placeholder:e.access_code_set?n(`virtualPrinter.accessCode.placeholderChange`):n(`virtualPrinter.accessCode.placeholder`),maxLength:8,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm placeholder-bambu-gray pr-10 font-mono`}),(0,G.jsx)(`button`,{onClick:()=>F(!P),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:P?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})})]}),(0,G.jsx)(Q,{onClick:de,disabled:!d||I===`accessCode`,variant:`primary`,children:I===`accessCode`?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`common.save`)})]}),d&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:(0,G.jsx)(`span`,{className:d.length===8?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`,children:n(`virtualPrinter.accessCode.charCount`,{count:d.length})})})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-2`,children:n(`virtualPrinter.targetPrinter.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:h??``,onChange:e=>{let t=parseInt(e.target.value,10);isNaN(t)||me(t)},disabled:I===`targetPrinter`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.targetPrinter.placeholder`)}),oe?.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.ip_address,`)`]},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium mb-1`,children:n(`virtualPrinter.bindIp.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:_,onChange:e=>{v(e.target.value),L(`bindIp`),H.mutate({bind_ip:e.target.value})},disabled:I===`bindIp`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.bindIp.placeholder`)}),se?.map(e=>(0,G.jsxs)(`option`,{value:e.ip,children:[e.name,` (`,e.ip,`)`,e.is_alias?` [alias]`:``,` - `,e.subnet]},e.ip))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(`virtualPrinter.bindIp.hint`)})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(`div`,{className:`text-white text-sm font-medium`,children:n(`virtualPrinter.remoteInterface.title`)}),b?(0,G.jsx)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400`,children:(0,G.jsx)(fs,{className:`w-3 h-3`})}):(0,G.jsx)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray`,title:n(`virtualPrinter.remoteInterface.optional`),children:(0,G.jsx)(Wc,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:b,onChange:e=>he(e.target.value),disabled:I===`remoteInterface`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-1.5 text-white text-sm appearance-none cursor-pointer disabled:opacity-50 pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:n(`virtualPrinter.remoteInterface.placeholder`)}),se?.map(e=>(0,G.jsxs)(`option`,{value:e.ip,children:[e.name,` (`,e.ip,`) - `,e.subnet]},e.ip))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]})]})]}),R&&(0,G.jsx)(of,{title:n(`virtualPrinter.deleteConfirm.title`),message:n(`virtualPrinter.deleteConfirm.message`,{name:e.name}),variant:`danger`,confirmText:n(`common.delete`),isLoading:ce.isPending,onConfirm:()=>ce.mutate(),onCancel:()=>z(!1)}),B&&(0,G.jsx)(gGe,{vpId:e.id,vpName:e.name,onClose:()=>V(!1)})]})}var O8={archive:`archive`,review:`review`,queue:`queue`,proxy:`proxy`};function vGe({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(`archive`),[c,l]=(0,y.useState)(null),{data:u}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),d=q({mutationFn:()=>wd.create({name:i.trim()||`Bambuddy`,mode:o,target_printer_id:o===`proxy`?c??void 0:void 0}),onSuccess:()=>{n.invalidateQueries({queryKey:[`virtual-printers`]}),r(t(`virtualPrinter.toast.created`)),e()},onError:e=>{r(e.message||t(`virtualPrinter.toast.failedToCreate`),`error`)}});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:e,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-6 space-y-4`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t(`virtualPrinter.addDialog.title`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.addDialog.name`)}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:`Bambuddy`,className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm placeholder-bambu-gray`,autoFocus:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.mode.title`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:[`archive`,`review`,`queue`,`proxy`].map(e=>(0,G.jsxs)(`button`,{onClick:()=>s(e),className:`p-2 rounded-lg border text-left transition-colors ${o===e?e===`proxy`?`border-blue-500 bg-blue-500/10`:`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-white text-xs font-medium`,children:[e===`proxy`&&(0,G.jsx)(Ro,{className:`w-3 h-3`}),t(`virtualPrinter.mode.${O8[e]}`)]}),(0,G.jsx)(`div`,{className:`text-[10px] text-bambu-gray`,children:t(`virtualPrinter.mode.${O8[e]}Desc`)})]},e))})]}),o===`proxy`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`text-sm text-white font-medium block mb-1`,children:t(`virtualPrinter.targetPrinter.title`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:c??``,onChange:e=>{let t=parseInt(e.target.value,10);l(isNaN(t)?null:t)},className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-md px-3 py-2 text-white text-sm appearance-none cursor-pointer pr-10`,children:[(0,G.jsx)(`option`,{value:``,children:t(`virtualPrinter.targetPrinter.placeholder`)}),u?.map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.ip_address,`)`]},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`virtualPrinter.addDialog.hint`)}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,disabled:d.isPending,children:t(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,onClick:()=>d.mutate(),className:`flex-1`,disabled:d.isPending,children:d.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):t(`virtualPrinter.addDialog.create`)})]})]})})})}function yGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),{data:a,isLoading:o}=K({queryKey:[`virtual-printers`],queryFn:wd.list,refetchInterval:1e4}),{data:s}=K({queryKey:[`virtual-printer-settings`],queryFn:Cd.getSettings}),c=q({mutationFn:e=>Cd.updateSettings({archive_name_source:e}),onSuccess:()=>{t.invalidateQueries({queryKey:[`virtual-printer-settings`]}),n(e(`virtualPrinter.toast.updated`))},onError:t=>{n(t.message||e(`virtualPrinter.toast.failedToUpdate`),`error`)}}),l=s?.archive_name_source===`filename`,{data:u}=K({queryKey:[`vp-ca-certificate`],queryFn:wd.getCaCertificate,staleTime:1/0}),[d,f]=(0,y.useState)(!1),p=async()=>{u&&(await T8(u.pem)?(f(!0),n(e(`virtualPrinter.caCert.copied`)),setTimeout(()=>f(!1),2e3)):n(e(`virtualPrinter.toast.copyFailed`),`error`))},m=()=>{u&&mGe(u.pem,`bambuddy-virtual-printer-ca.crt`,`application/x-pem-file`)};if(o)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})});let h=a?.printers||[],g=a?.models||{};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4 items-stretch`,children:[(0,G.jsx)(zd,{className:`border-l-4 border-l-yellow-500`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`virtualPrinter.setupRequired.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`virtualPrinter.setupRequired.description`)}),(0,G.jsxs)(`a`,{href:`https://wiki.bambuddy.cool/features/virtual-printer/`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 mt-2 px-3 py-1.5 bg-yellow-100 dark:bg-yellow-500/20 border border-yellow-500/50 rounded text-yellow-700 dark:text-yellow-400 hover:bg-yellow-500/30 transition-colors text-xs`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),e(`virtualPrinter.setupRequired.readGuide`)]})]})]})})}),(0,G.jsx)(zd,{className:`lg:col-span-2`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`virtualPrinter.howItWorks.title`)}),(0,G.jsxs)(`ul`,{className:`space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step1`)}),(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step2`)}),(0,G.jsx)(`li`,{children:e(`virtualPrinter.howItWorks.step3`)})]})]})]})})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4 items-stretch`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(au,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-1`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`virtualPrinter.caCert.title`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsxs)(`button`,{onClick:p,disabled:!u,className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded bg-bambu-dark-secondary border border-bambu-dark-tertiary text-white hover:border-bambu-gray disabled:opacity-50 transition-colors`,children:[d?(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green`}):(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`}),e(d?`virtualPrinter.caCert.copied`:`virtualPrinter.caCert.copy`)]}),(0,G.jsxs)(`button`,{onClick:m,disabled:!u,className:`inline-flex items-center gap-1.5 px-2.5 py-1 text-xs rounded bg-bambu-dark-secondary border border-bambu-dark-tertiary text-white hover:border-bambu-gray disabled:opacity-50 transition-colors`,children:[(0,G.jsx)(Xs,{className:`w-3.5 h-3.5`}),e(`virtualPrinter.caCert.download`)]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`virtualPrinter.caCert.description`)}),u&&(0,G.jsxs)(`p`,{className:`text-[10px] text-bambu-gray font-mono mt-1 truncate`,title:u.fingerprint_sha256,children:[e(`virtualPrinter.caCert.fingerprint`),`: `,u.fingerprint_sha256]})]})]})})}),(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0 mt-1`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`virtualPrinter.archiveNameSource.title`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-xs ${l?`text-bambu-gray`:`text-white`}`,children:e(`virtualPrinter.archiveNameSource.metadata`)}),(0,G.jsx)(fH,{checked:l,onChange:e=>c.mutate(e?`filename`:`metadata`),disabled:c.isPending}),(0,G.jsx)(`span`,{className:`text-xs ${l?`text-white`:`text-bambu-gray`}`,children:e(`virtualPrinter.archiveNameSource.filename`)})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`virtualPrinter.archiveNameSource.description`)})]})]})})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`virtualPrinter.list.title`)}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,h.length,`)`]})]}),(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>i(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),e(`virtualPrinter.list.add`)]})]}),h.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-8 text-center`,children:[(0,G.jsx)(Rl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`virtualPrinter.list.empty`)}),(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>i(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),e(`virtualPrinter.list.addFirst`)]})]})}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4 items-start`,children:h.map(e=>(0,G.jsx)(_Ge,{printer:e,models:g},e.id))}),r&&(0,G.jsx)(vGe,{onClose:()=>i(!1)})]})}function k8(e){if(e<60)return`${e}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;if(n<24)return r?`${n}h ${r}m`:`${n}h`;let i=Math.floor(n/24),a=n%24;return a?`${i}d ${a}h`:`${i}d`}function A8(e){return e==null?`—`:e>=1024?`${(e/1024).toFixed(1)} GB`:`${Math.round(e)} MB`}function bGe({device:e,onUnregister:t,isDeleting:n}){let{t:r}=U(),{showToast:i}=qd(),a=e.system_stats,o=a?.memory,s=a?.disk,c=e.online,[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),p=async t=>{f(t);try{t===`update`?await Od.triggerUpdate(e.device_id):await Od.systemCommand(e.device_id,t),i(r(`settings.spoolbuddy.commandQueued`),`success`)}catch(e){i(e instanceof Error?e.message:r(`settings.spoolbuddy.commandError`),`error`)}finally{f(null),u(null)}},m=[{key:`update`,label:r(`settings.spoolbuddy.update`),icon:Xs},{key:`restart_browser`,label:r(`settings.spoolbuddy.restartBrowser`),icon:gl},{key:`restart_daemon`,label:r(`settings.spoolbuddy.restartDaemon`),icon:Hl},{key:`reboot`,label:r(`settings.spoolbuddy.reboot`),icon:Gl},{key:`shutdown`,label:r(`settings.spoolbuddy.shutdown`),icon:Ll,variant:`danger`}],h={update:r(`settings.spoolbuddy.updateConfirmTitle`),restart_browser:r(`settings.spoolbuddy.restartBrowserConfirmTitle`),restart_daemon:r(`settings.spoolbuddy.restartDaemonConfirmTitle`),reboot:r(`settings.spoolbuddy.rebootConfirmTitle`),shutdown:r(`settings.spoolbuddy.shutdownConfirmTitle`)},g={update:r(`settings.spoolbuddy.updateConfirmBody`,{hostname:e.hostname}),restart_browser:r(`settings.spoolbuddy.restartBrowserConfirmBody`,{hostname:e.hostname}),restart_daemon:r(`settings.spoolbuddy.restartDaemonConfirmBody`,{hostname:e.hostname}),reboot:r(`settings.spoolbuddy.rebootConfirmBody`,{hostname:e.hostname}),shutdown:r(`settings.spoolbuddy.shutdownConfirmBody`,{hostname:e.hostname})};return(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white truncate`,children:e.hostname}),(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium ${c?`bg-green-500/15 text-green-400 border border-green-500/40`:`bg-gray-500/15 text-gray-400 border border-gray-500/40`}`,children:[c?(0,G.jsx)(Qu,{className:`w-3 h-3`}):(0,G.jsx)(Zu,{className:`w-3 h-3`}),r(c?`settings.spoolbuddy.online`:`settings.spoolbuddy.offline`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray font-mono mt-1 truncate`,children:e.device_id})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>t(e),disabled:n,"aria-label":r(`settings.spoolbuddy.unregister`),children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:r(`settings.spoolbuddy.unregister`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3 text-xs`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.ipAddress`)}),(0,G.jsx)(`div`,{className:`text-white font-mono`,children:e.ip_address})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.firmware`)}),(0,G.jsx)(`div`,{className:`text-white`,children:e.firmware_version??`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),r(`settings.spoolbuddy.lastSeen`)]}),(0,G.jsx)(`div`,{className:`text-white`,children:e.last_seen?up(e.last_seen):r(`settings.spoolbuddy.never`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.daemonUptime`)}),(0,G.jsx)(`div`,{className:`text-white`,children:k8(e.uptime_s)})]})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:m.map(({key:e,label:t,icon:n,variant:r})=>(0,G.jsxs)(Q,{variant:r??`secondary`,size:`sm`,onClick:()=>u(e),disabled:!c||d!==null,"aria-label":t,children:[d===e?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(n,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:t})]},e))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-xs flex-wrap`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[e.nfc_ok?(0,G.jsx)(Ss,{className:`w-3.5 h-3.5 text-green-400`}):(0,G.jsx)(Ds,{className:`w-3.5 h-3.5 text-red-400`}),r(`settings.spoolbuddy.nfc`),e.nfc_reader_type&&(0,G.jsxs)(`span`,{className:`text-bambu-gray/70`,children:[`(`,e.nfc_reader_type,`)`]})]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[e.scale_ok?(0,G.jsx)(Ss,{className:`w-3.5 h-3.5 text-green-400`}):(0,G.jsx)(Ds,{className:`w-3.5 h-3.5 text-red-400`}),r(`settings.spoolbuddy.scale`)]})]}),a&&(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 text-xs`,children:[a.cpu_temp_c!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Mu,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.cpuTemp`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[a.cpu_temp_c.toFixed(1),`°C`]})]})]}),a.load_avg&&a.load_avg.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Mo,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.cpuLoad`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[a.load_avg[0].toFixed(2),a.cpu_count?` / ${a.cpu_count} (${Math.round(a.load_avg[0]/a.cpu_count*100)}%)`:``]})]})]}),o&&o.percent!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Hs,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.memory`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[o.percent.toFixed(0),`% (`,A8(o.used_mb),` / `,A8(o.total_mb),`)`]})]})]}),s&&s.percent!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Pc,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.disk`)}),(0,G.jsxs)(`div`,{className:`text-white`,children:[s.percent.toFixed(0),`% (`,s.used_gb?.toFixed(1),` / `,s.total_gb?.toFixed(1),` GB)`]})]})]}),a.system_uptime_s!==void 0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5 text-bambu-gray`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:r(`settings.spoolbuddy.systemUptime`)}),(0,G.jsx)(`div`,{className:`text-white`,children:k8(a.system_uptime_s)})]})]})]}),a.os&&(0,G.jsx)(`div`,{className:`mt-3 text-xs text-bambu-gray font-mono truncate`,children:[a.os.os,a.os.kernel,a.os.arch,a.os.python&&`Python ${a.os.python}`].filter(Boolean).join(` · `)})]})]}),l&&(0,G.jsx)(of,{variant:l===`shutdown`||l===`reboot`?`danger`:`default`,title:h[l],message:g[l],confirmText:r(`settings.spoolbuddy.commandConfirm`),isLoading:d!==null,onConfirm:()=>p(l),onCancel:()=>u(null)})]})}function xGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(null),{data:a=[],isLoading:o}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:15e3}),s=q({mutationFn:e=>Od.deleteDevice(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`spoolbuddy-devices`]}),n(e(`settings.spoolbuddy.unregisterSuccess`),`success`),i(null)},onError:t=>{n(t.message||e(`settings.spoolbuddy.unregisterError`),`error`)}});if(o)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})})});let c=a.length>1;return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-blue-400 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`settings.spoolbuddy.infoTitle`)}),(0,G.jsx)(`p`,{children:e(`settings.spoolbuddy.infoBody`)})]})]})})}),c&&(0,G.jsx)(zd,{className:`border-l-4 border-l-yellow-500`,children:(0,G.jsx)(Vd,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:e(`settings.spoolbuddy.duplicatesTitle`,{count:a.length})}),(0,G.jsx)(`p`,{children:e(`settings.spoolbuddy.duplicatesBody`)})]})]})})}),a.length===0?(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 text-center text-bambu-gray text-sm`,children:e(`settings.spoolbuddy.empty`)})}):(0,G.jsx)(`div`,{className:`space-y-3`,children:a.map(e=>(0,G.jsx)(bGe,{device:e,onUnregister:i,isDeleting:s.isPending&&s.variables===e.device_id},e.id))}),r&&(0,G.jsx)(of,{variant:`danger`,title:e(`settings.spoolbuddy.confirmTitle`),message:e(`settings.spoolbuddy.confirmBody`,{hostname:r.hostname,deviceId:r.device_id}),confirmText:e(`settings.spoolbuddy.unregister`),isLoading:s.isPending,onConfirm:()=>s.mutate(r.device_id),onCancel:()=>i(null)})]})}function j8(e,t,n,r,i){return n?e(`backup.restoreFromGit.${t}.${n}`,{...r??{},defaultValue:i??n}):i}var M8=[{id:`archives`,labelKey:`backup.printArchives`,icon:(0,G.jsx)(Po,{className:`w-4 h-4`})},{id:`spools`,labelKey:`backup.spoolInventory`,icon:(0,G.jsx)(wl,{className:`w-4 h-4`})},{id:`settings`,labelKey:`backup.appSettings`,icon:(0,G.jsx)(ru,{className:`w-4 h-4`})},{id:`kprofiles`,labelKey:`backup.kProfiles`,icon:(0,G.jsx)(Mu,{className:`w-4 h-4`})}],N8=Object.fromEntries(M8.map(e=>[e.id,e.labelKey])),P8=`HEAD`;function SGe({onClose:e}){let{t}=U(),n=co(),[r,i]=(0,y.useState)(P8),[a,o]=(0,y.useState)({}),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),p=K({queryKey:[`github-backup-commits`],queryFn:()=>Z.getGitHubBackupCommits(20)}),m=K({queryKey:[`github-restore-preview`,r],queryFn:()=>Z.getGitHubRestorePreview(r)}),h=m.data?.success?m.data.ref:r,g=(0,y.useMemo)(()=>{let e={};return m.data?.categories?.forEach(n=>{e[n.category]={available:n.available,itemCount:n.item_count,detail:j8(t,`details`,n.detail_code,n.detail_params,n.detail)}}),e},[m.data,t]),_=(0,y.useMemo)(()=>M8.filter(e=>a[e.id]&&g[e.id]?.available).map(e=>e.id),[a,g]),v=_.length,b=!s&&_.includes(`kprofiles`),x=q({mutationFn:()=>Z.restoreFromGitHub({ref:h,categories:_,overwrite_existing:s}),onSuccess:e=>{u(!1);let t=Object.keys(e.results??{}).length>0;(e.success||t)&&(f(e),n.invalidateQueries({queryKey:[`spools`]}),n.invalidateQueries({queryKey:[`archives`]}),n.invalidateQueries({queryKey:[`settings`]})),n.invalidateQueries({queryKey:[`github-backup-logs`]}),n.invalidateQueries({queryKey:[`github-backup-status`]})},onError:()=>u(!1)}),S=x.isPending,C=!!(d&&`settings`in d.results),w=(0,y.useCallback)(()=>{if(C){window.location.reload();return}e()},[C,e]);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!S&&!l&&w()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[w,S,l]),(0,y.useEffect)(()=>{if(!S)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[S]),(0,y.useEffect)(()=>{m.data&&o(e=>{let t={};return M8.forEach(n=>{t[n.id]=!!e[n.id]&&!!g[n.id]?.available}),t})},[m.data,g]);let T=p.data?.commits??[],E=(e,t,n)=>{let r=(t||``).split(` +`)[0],i=n?new Date(n).toLocaleString():``;return`${e.slice(0,7)} — ${i}${r?` — ${r}`:``}`},D=e=>e.isError?e.error?.message||t(`backup.restoreFromGit.loadFailed`):null,O=D(m)??(m.data&&!m.data.success?m.data.message:null),k=D(p)??(p.data&&!p.data.success?p.data.message:null);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:S?void 0:w,children:(0,G.jsx)(zd,{className:`w-full max-w-lg`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-full bg-bambu-green/20 text-bambu-green`,children:(0,G.jsx)(Wl,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:t(`backup.restoreFromGit.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t(`backup.restoreFromGit.subtitle`)})]})]}),(0,G.jsx)(`button`,{onClick:w,disabled:S,"aria-label":t(`common.close`),className:`p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors disabled:opacity-50`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),d?(0,G.jsxs)(`div`,{className:`p-4 space-y-3 max-h-[400px] overflow-y-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[d.success?(0,G.jsx)(Ss,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}):(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-500 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-white`,children:d.message})]}),!d.success&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.partialHint`)}),Object.entries(d.results).map(([e,n])=>(0,G.jsxs)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:N8[e]?t(N8[e]):e}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.tally`,{restored:n.restored,skipped:n.skipped,failed:n.failed})})]}),n.notes.length>0&&(0,G.jsx)(`ul`,{className:`mt-2 space-y-1`,children:n.notes.map(e=>(0,G.jsxs)(`li`,{className:`text-xs text-bambu-gray flex items-start gap-1.5`,children:[(0,G.jsx)(Wc,{className:`w-3 h-3 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:j8(t,`notes`,e.code,e.params,e.message)})]},`${e.code}:${JSON.stringify(e.params)}`))})]},e)),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsx)(`p`,{className:`text-xs text-yellow-700 dark:text-yellow-200`,children:t(`backup.restoreFromGit.reloadHint`)})})]}):(0,G.jsxs)(`div`,{className:`p-4 space-y-4 max-h-[400px] overflow-y-auto ${S?`opacity-50 pointer-events-none`:``}`,children:[x.isError&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:x.error?.message||t(`backup.restoreFromGit.failed`)})}),x.data&&!x.data.success&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:x.data.message})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`restore-commit`,className:`block text-sm font-medium text-white mb-1`,children:t(`backup.restoreFromGit.commitLabel`)}),(0,G.jsxs)(`select`,{id:`restore-commit`,value:r,onChange:e=>{i(e.target.value),x.reset()},disabled:S||p.isLoading,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:P8,children:t(`backup.restoreFromGit.latestCommit`)}),T.map(e=>(0,G.jsx)(`option`,{value:e.sha,children:E(e.sha,e.message,e.date)},e.sha))]}),k&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-500 dark:text-red-400`,children:k})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-2`,children:t(`backup.restoreFromGit.categoriesLabel`)}),m.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray p-3`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),t(`backup.restoreFromGit.inspecting`)]}):O?(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400`,children:O})}):(0,G.jsx)(`div`,{className:`space-y-2`,children:M8.map(e=>{let n=g[e.id],r=!!n?.available,i=!!a[e.id]&&r;return(0,G.jsxs)(`label`,{className:`flex items-center gap-3 p-3 rounded-lg transition-colors ${r?`cursor-pointer`:`cursor-not-allowed opacity-50`} ${i?`bg-bambu-green/10 border border-bambu-green/30`:`bg-bambu-dark hover:bg-bambu-dark-tertiary border border-transparent`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i,disabled:!r||S,onChange:()=>o(t=>({...t,[e.id]:!t[e.id]})),className:`w-4 h-4 rounded border-bambu-gray bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0`}),(0,G.jsx)(`div`,{className:i?`text-bambu-green`:`text-bambu-gray`,children:e.icon}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`text-white text-sm font-medium`,children:[t(e.labelKey),r&&n?.itemCount?(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-gray`,children:t(`backup.restoreFromGit.itemCount`,{count:n.itemCount})}):null]}),n?.detail&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:n.detail}),e.id===`kprofiles`&&i&&b&&(0,G.jsx)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-200`,children:t(`backup.restoreFromGit.kprofilesOverwriteCaveat`)})]})]},e.id)})})]}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:t(`backup.restoreFromGit.overwriteLabel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:t(s?`backup.restoreFromGit.overwriteOn`:`backup.restoreFromGit.overwriteOff`)})]}),(0,G.jsx)(fH,{checked:s,onChange:c,disabled:S})]})})]}),(0,G.jsx)(`div`,{className:`flex items-center justify-between p-4 border-t border-bambu-dark-tertiary`,children:d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:w,children:t(`common.close`)}),(0,G.jsx)(Q,{onClick:()=>window.location.reload(),className:`bg-bambu-green hover:bg-bambu-green-dark`,children:t(`backup.reloadNow`)})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:t(`backup.restoreFromGit.selectedCount`,{count:v})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:w,disabled:S,children:t(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>u(!0),disabled:v===0||S,className:`bg-bambu-green hover:bg-bambu-green-dark disabled:opacity-50 disabled:cursor-not-allowed min-w-[100px]`,children:S?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),t(`backup.restoreFromGit.restoring`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4 mr-2`}),t(`backup.restore`)]})})]})]})})]})})}),l&&(0,G.jsx)(of,{variant:`danger`,overlayZIndex:`z-[110]`,title:t(`backup.restoreFromGit.confirmTitle`),message:s?t(`backup.restoreFromGit.confirmMessageOverwrite`):b?`${t(`backup.restoreFromGit.confirmMessage`)} ${t(`backup.restoreFromGit.kprofilesOverwriteCaveat`)}`:t(`backup.restoreFromGit.confirmMessage`),confirmText:t(`backup.restore`),isLoading:S,loadingText:t(`backup.restoreFromGit.restoring`),onConfirm:()=>x.mutate(),onCancel:()=>u(!1)})]})}function F8(e){if(!e)return`-`;let t=rp(e);return t?t.toLocaleString():`-`}function I8({status:e}){if(!e)return null;let t={success:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,failed:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,skipped:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,running:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`},n={success:(0,G.jsx)(xs,{className:`w-3 h-3`}),failed:(0,G.jsx)(Ds,{className:`w-3 h-3`}),skipped:(0,G.jsx)(du,{className:`w-3 h-3`}),running:(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`})};return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-medium ${t[e]||`bg-gray-500/20 text-gray-400`}`,children:[n[e],e.charAt(0).toUpperCase()+e.slice(1)]})}var CGe={github:`backup.repoUrlPlaceholderGitHub`,gitea:`backup.repoUrlPlaceholderGitea`,forgejo:`backup.repoUrlPlaceholderForgejo`,gitlab:`backup.repoUrlPlaceholderGitLab`},wGe={github:`ghp_xxxxxxxxxxxx`,gitea:`your_access_token`,forgejo:`your_access_token`,gitlab:`glpat-xxxxxxxxxxxx`},TGe={github:`backup.tokenHintGitHub`,gitea:`backup.tokenHintGitea`,forgejo:`backup.tokenHintForgejo`,gitlab:`backup.tokenHintGitLab`};function L8(e){return JSON.stringify(e)}function EGe(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))e[r]!==t[r]&&(n[r]=e[r]);return n}function DGe(){let e=co(),{showToast:t}=qd(),{t:n}=U(),{hasPermission:r}=Nd(),i=r(`github:restore`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`main`),[d,f]=(0,y.useState)(`github`),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(`daily`),[_,v]=(0,y.useState)(!0),[b,x]=(0,y.useState)(!0),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!0),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(``),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(null),ne=(0,y.useRef)(null),[re,ie]=(0,y.useState)(!1),[ae,oe]=(0,y.useState)(null),[se,H]=(0,y.useState)(null),[ce,le]=(0,y.useState)(``),{data:ue,refetch:de}=K({queryKey:[`local-backup-status`],queryFn:Z.getLocalBackupStatus,refetchInterval:e=>e.state.data?.is_running?1e3:1e4}),{data:fe,refetch:pe}=K({queryKey:[`local-backup-files`],queryFn:Z.getLocalBackups,refetchInterval:3e4}),{data:me,refetch:he}=K({queryKey:[`local-backup-path-check`],queryFn:Z.checkLocalBackupPath,enabled:ue?.enabled===!0,refetchOnWindowFocus:!1});(0,y.useEffect)(()=>{ue?.path!==void 0&&le(ue.path)},[ue?.path]);let ge=q({mutationFn:Z.triggerLocalBackup,onSuccess:e=>{e.success?t(n(`backup.scheduledBackupComplete`)):t(e.message,`error`),de(),pe(),he()},onError:()=>t(n(`backup.scheduledBackupFailed`),`error`)}),_e=q({mutationFn:e=>Z.deleteLocalBackup(e),onSuccess:()=>{pe(),oe(null)}}),ve=q({mutationFn:async e=>(H(null),F(!0),te(null),L(n(`backup.restoring`)),Z.restoreLocalBackup(e)),onSuccess:e=>{F(!1),L(``),e.success?(te({success:!0,message:e.message}),t(n(`backup.backupRestoredRestart`),`success`)):(te({success:!1,message:e.message}),t(e.message,`error`))},onError:e=>{F(!1),L(``);let r=e instanceof Error?e.message:n(`backup.failedToRestore`);te({success:!1,message:r}),t(r,`error`)}});(0,y.useEffect)(()=>{if(M||P){let e=e=>(e.preventDefault(),e.returnValue=`A backup operation is in progress. Are you sure you want to leave?`,e.returnValue);return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)}},[M,P]);let[ye,be]=(0,y.useState)(!1),[xe,Se]=(0,y.useState)(null),[Ce,we]=(0,y.useState)(null),Te=(0,y.useRef)(null),Ee=(0,y.useRef)(null),De=(0,y.useRef)(null),Oe=(0,y.useRef)(null),ke=(0,y.useRef)(``),[Ae,je]=(0,y.useState)(!1),Me=(0,y.useMemo)(()=>({repository_url:a,branch:l,provider:d,allow_insecure_http:O,schedule_enabled:p,schedule_type:h,backup_kprofiles:_,backup_cloud_profiles:b,backup_settings:S,backup_spools:w,backup_archives:E,enabled:A}),[a,l,d,O,p,h,_,b,S,w,E,A]),Ne=(0,y.useMemo)(()=>L8(Me),[Me]),{data:Pe,isLoading:Fe}=K({queryKey:[`github-backup-config`],queryFn:Z.getGitHubBackupConfig}),{data:Ie}=K({queryKey:[`github-backup-status`],queryFn:Z.getGitHubBackupStatus,refetchInterval:e=>e.state.data?.is_running?500:1e4}),{data:Le}=K({queryKey:[`github-backup-logs`],queryFn:()=>Z.getGitHubBackupLogs(20)}),{data:Re}=K({queryKey:[`cloud-status`],queryFn:Z.getCloudStatus}),{data:ze}=K({queryKey:[`github-backup-cloud-accounts`],queryFn:Z.getGitHubBackupCloudAccounts,staleTime:6e4}),Be=(ze?.bambu??0)+(ze?.orca??0),Ve=ze?Be>0:!!Re?.is_authenticated,{data:He}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),Ue=Co({queries:(He??[]).map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),staleTime:1e4,refetchInterval:3e4}))}),We=(He??[]).map((e,t)=>({printer:e,connected:Ue[t]?.data?.connected??!1})),Ge=We.length,Ke=We.filter(e=>e.connected).length,qe=Ge>0&&Ke===0,Je=Ke>0&&Ke(De.current&&clearTimeout(De.current),Pe?(je(!1),Oe.current={repository_url:Pe.repository_url,branch:Pe.branch,provider:Pe.provider??`github`,allow_insecure_http:Pe.allow_insecure_http??!1,schedule_enabled:Pe.schedule_enabled,schedule_type:Pe.schedule_type,backup_kprofiles:Pe.backup_kprofiles,backup_cloud_profiles:Pe.backup_cloud_profiles,backup_settings:Pe.backup_settings,backup_spools:Pe.backup_spools,backup_archives:Pe.backup_archives,enabled:Pe.enabled},o(Pe.repository_url),u(Pe.branch),f(Pe.provider??`github`),m(Pe.schedule_enabled),g(Pe.schedule_type),v(Pe.backup_kprofiles),x(Pe.backup_cloud_profiles),C(Pe.backup_settings),T(Pe.backup_spools),D(Pe.backup_archives),k(Pe.allow_insecure_http??!1),j(Pe.enabled),c(``),De.current=setTimeout(()=>{je(!0)},100)):(je(!1),Oe.current=null,c(``)),()=>{De.current&&clearTimeout(De.current)}),[Pe]);let Ye=(0,y.useCallback)(async(r=!1)=>{if(Pe)try{r&&s?(await Z.saveGitHubBackupConfig({...Me,access_token:s}),c(``),we(null),t(n(`backup.tokenUpdated`)),ke.current=``):(await Z.updateGitHubBackupConfig(EGe(Me,Oe.current)),we(null),t(n(`backup.settingsSaved`))),Oe.current=Me,e.invalidateQueries({queryKey:[`github-backup-config`]}),e.invalidateQueries({queryKey:[`github-backup-status`]})}catch(e){we(e.message)}},[Pe,s,Me,e,t,n]),Xe=(0,y.useRef)(Ye);(0,y.useEffect)(()=>{Xe.current=Ye},[Ye]),(0,y.useEffect)(()=>{if(!(!Ae||!Pe)&&!(Oe.current&&Ne===L8(Oe.current)))return Te.current&&clearTimeout(Te.current),Te.current=setTimeout(()=>{Ye(!1)},500),()=>{Te.current&&clearTimeout(Te.current)}},[Ae,Pe,Ne,Ye]),(0,y.useEffect)(()=>{if(!(!Ae||!Pe||!s)&&s!==ke.current)return ke.current=s,Ee.current&&clearTimeout(Ee.current),Ee.current=setTimeout(()=>{Xe.current(!0)},1e3),()=>{Ee.current&&clearTimeout(Ee.current)}},[Ae,s,Pe]);let Ze=q({mutationFn:e=>Z.saveGitHubBackupConfig(e),onMutate:()=>{we(null)},onSuccess:()=>{e.invalidateQueries({queryKey:[`github-backup-config`]}),e.invalidateQueries({queryKey:[`github-backup-status`]}),t(n(`backup.githubBackupEnabled`)),c(``),je(!0)},onError:e=>{we(e.message)}}),Qe=q({mutationFn:Z.triggerGitHubBackup,onSuccess:r=>{e.invalidateQueries({queryKey:[`github-backup-status`]}),e.invalidateQueries({queryKey:[`github-backup-logs`]}),r.success?r.files_changed>0?t(n(`backup.backupCompleteFiles`,{count:r.files_changed})):t(n(`backup.backupSkippedNoChanges`)):t(n(`backup.backupFailed2`,{message:r.message}),`error`)},onError:e=>{t(n(`backup.backupFailed2`,{message:e.message}),`error`)}}),$e=q({mutationFn:()=>Z.clearGitHubBackupLogs(0),onSuccess:r=>{e.invalidateQueries({queryKey:[`github-backup-logs`]}),t(n(`backup.clearedLogs`,{count:r.deleted}))},onError:e=>{t(n(`backup.failedToClearLogs`,{message:e.message}),`error`)}}),et=async()=>{be(!0),Se(null);try{let e;if(s){if(!a){t(n(`backup.enterRepoUrl`),`error`),be(!1);return}e=await Z.testGitHubConnection(a,s,d)}else if(Pe?.has_token)e=await Z.testGitHubStoredConnection();else{t(n(`backup.enterRepoAndToken`),`error`),be(!1);return}Se({success:e.success,message:e.message,isPrivate:e.is_private})}catch(e){Se({success:!1,message:e.message,isPrivate:null})}finally{be(!1)}};return Fe?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-backup-github`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(kc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.githubBackup`)})]}),Pe&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`backup.enabled`)}),(0,G.jsx)(fH,{checked:A,onChange:j})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.githubDescription`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`git-provider-select`,className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.provider`)}),(0,G.jsxs)(`select`,{id:`git-provider-select`,value:d,onChange:e=>{f(e.target.value),Se(null),we(null)},className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`github`,children:n(`backup.providerGitHub`)}),(0,G.jsx)(`option`,{value:`gitlab`,children:n(`backup.providerGitLab`)}),(0,G.jsx)(`option`,{value:`gitea`,children:n(`backup.providerGitea`)}),(0,G.jsx)(`option`,{value:`forgejo`,children:n(`backup.providerForgejo`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.repositoryUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>{o(e.target.value),Se(null),we(null)},placeholder:n(CGe[d]),className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 mt-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>{k(e.target.checked),Se(null)},className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:n(`backup.allowInsecureHttp`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.allowInsecureHttpHint`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[n(`backup.personalAccessToken`),` `,Pe?.has_token&&(0,G.jsx)(`span`,{className:`text-green-700 dark:text-green-400`,children:n(`backup.tokenSaved`)})]}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>{c(e.target.value),Se(null),we(null)},placeholder:Pe?.has_token?n(`backup.enterNewToken`):wGe[d],className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:n(TGe[d])})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.branch`)}),(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`main`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.autoBackup`)}),(0,G.jsxs)(`select`,{value:p?h:`disabled`,onChange:e=>{e.target.value===`disabled`?m(!1):(m(!0),g(e.target.value))},className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`disabled`,children:n(`backup.manualOnly`)}),(0,G.jsx)(`option`,{value:`hourly`,children:n(`backup.hourly`)}),(0,G.jsx)(`option`,{value:`daily`,children:n(`backup.daily`)}),(0,G.jsx)(`option`,{value:`weekly`,children:n(`backup.weekly`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:n(`backup.includeInBackup`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-start gap-2 ${qe?`cursor-not-allowed opacity-60`:`cursor-pointer`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`,disabled:qe}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm ${qe?`text-bambu-gray`:`text-white`}`,children:n(`backup.kProfiles`)}),qe&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.noPrintersConnected`)]}),Je&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.printersConnected`,{connected:Ke,total:Ge})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.kProfilesDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 ${Ve?`cursor-pointer`:`cursor-not-allowed opacity-60`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>x(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`,disabled:!Ve}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm ${Ve?`text-white`:`text-bambu-gray`}`,children:n(`backup.cloudProfiles`)}),!Ve&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),n(`backup.cloudLoginRequiredShort`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.cloudProfilesDescription`)}),Be>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:n(`backup.cloudProfilesAccounts`,{bambu:ze?.bambu??0,orca:ze?.orca??0})})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:S,onChange:e=>C(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.appSettings`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.appSettingsDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>T(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.spoolInventory`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.spoolInventoryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`w-4 h-4 mt-0.5 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white text-sm`,children:n(`backup.printArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`backup.printArchivesDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4 space-y-3`,children:[Ie?.configured&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:Ie.last_backup_at?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{children:[n(`backup.lastBackupAt`),` `,up(Ie.last_backup_at,`system`,n)]}),(0,G.jsx)(I8,{status:Ie.last_backup_status})]}):(0,G.jsx)(`span`,{children:n(`backup.noBackupsYet`)})}),Ie.next_scheduled_run&&(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[(0,G.jsx)(js,{className:`w-3 h-3 inline mr-1`}),n(`backup.next`),` `,up(Ie.next_scheduled_run,`system`,n)]})]}),Ce&&(0,G.jsxs)(`div`,{className:`text-sm text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded p-3 flex items-start gap-2`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`div`,{className:`flex-1 leading-relaxed whitespace-pre-wrap break-words`,children:Ce}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>we(null),className:`text-bambu-gray hover:text-white shrink-0`,"aria-label":n(`common.dismiss`,`Dismiss`),children:(0,G.jsx)(Ds,{className:`w-4 h-4`})})]}),xe&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`text-sm flex items-center gap-1 ${xe.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[xe.success?(0,G.jsx)(xs,{className:`w-4 h-4`}):(0,G.jsx)(Ds,{className:`w-4 h-4`}),xe.message]}),xe.success&&xe.isPrivate===!0&&(0,G.jsxs)(`div`,{className:`text-xs flex items-center gap-1 text-green-700 dark:text-green-400`,children:[(0,G.jsx)(xs,{className:`w-3.5 h-3.5`}),n(`backup.repoIsPrivate`,`Repository is private — safe to back up to.`)]}),xe.success&&xe.isPrivate===!1&&(0,G.jsxs)(`div`,{className:`text-xs text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded p-2 flex items-start gap-1.5`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`backup.repoIsPublicWarning`,`Repository is PUBLIC. Bambuddy backups include MQTT credentials, Home Assistant tokens, Prometheus tokens, your Bambu Cloud email, and printer access codes via K-profiles. Saving is blocked until you make the repository private in your provider's settings.`)})]}),xe.success&&xe.isPrivate===null&&(0,G.jsxs)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded p-2 flex items-start gap-1.5`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:n(`backup.repoVisibilityUnknown`,`Could not determine repository visibility. Bambuddy refuses to back up to anything not confirmed private; saving will be blocked.`)})]})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:Ie?.configured?(0,G.jsx)(G.Fragment,{children:Qe.isPending||Ie.is_running?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-green`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{className:`text-sm`,children:Ie.progress||n(`backup.startingBackup`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>Qe.mutate(),disabled:!Pe?.enabled,children:[(0,G.jsx)(Nl,{className:`w-4 h-4`}),n(`backup.backupNow`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:et,disabled:ye,children:[ye?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),n(`backup.test`)]}),i&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ie(!0),disabled:Ie.restore_running,children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),n(`backup.restoreFromGit.button`)]})]})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>{if(!a){t(n(`backup.repoRequired`),`error`);return}if(!s){t(n(`backup.tokenRequired`),`error`);return}Ze.mutate({repository_url:a,access_token:s,branch:l,provider:d,allow_insecure_http:O,schedule_enabled:p,schedule_type:h,backup_kprofiles:_,backup_cloud_profiles:b,backup_settings:S,backup_spools:w,backup_archives:E,enabled:A})},disabled:Ze.isPending||!a||!s,children:[Ze.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(xs,{className:`w-4 h-4`}),n(`backup.enableBackup`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:et,disabled:ye||!a||!s,children:[ye?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),n(`backup.testConnection`)]})]})})]})]})]}),Le&&Le.length>0&&(0,G.jsxs)(zd,{id:`card-backup-history`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(zc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.history`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>$e.mutate(),disabled:$e.isPending,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),n(`backup.clear`)]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.date`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.trigger`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.status`)}),(0,G.jsx)(`th`,{className:`text-left py-2 px-2`,children:n(`backup.commit`)})]})}),(0,G.jsx)(`tbody`,{children:Le.slice(0,10).map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-secondary`,children:[(0,G.jsx)(`td`,{className:`py-2 px-2 text-white`,children:F8(e.started_at)}),(0,G.jsx)(`td`,{className:`py-2 px-2 text-bambu-gray`,children:n(`backup.triggers.${e.trigger}`,{defaultValue:e.trigger})}),(0,G.jsx)(`td`,{className:`py-2 px-2`,children:(0,G.jsx)(I8,{status:e.status})}),(0,G.jsx)(`td`,{className:`py-2 px-2`,children:e.commit_sha?(0,G.jsxs)(`a`,{href:`${Pe?.repository_url}/commit/${e.commit_sha}`,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline inline-flex items-center gap-1`,children:[e.commit_sha.substring(0,7),(0,G.jsx)(rc,{className:`w-3 h-3`})]}):(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`-`})})]},e.id))})]})})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-backup-local`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Gs,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.localBackup`)})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.localBackupDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:n(`backup.downloadBackupLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.completeBackupZip`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:M||P,onClick:async()=>{N(!0),L(n(`backup.preparingBackup`));try{L(n(`backup.creatingArchive`));let{blob:e,filename:r}=await Z.exportBackup();L(n(`backup.downloadingFile`));let i=URL.createObjectURL(e),a=document.createElement(`a`);a.href=i,a.download=r,a.click(),URL.revokeObjectURL(i),t(n(`backup.backupDownloaded`))}catch(e){t(n(`backup.failedToCreateBackup`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}finally{N(!1),L(``)}},children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),n(`backup.download`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:n(`backup.restoreBackup`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.restoreDescription`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.restoreNote`)})]}),(0,G.jsx)(`input`,{ref:ne,type:`file`,accept:`.zip`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&(V(t),z(!0)),e.target.value=``}}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:P||M,onClick:()=>ne.current?.click(),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`backup.restore`)]})]}),ee&&(0,G.jsx)(`div`,{className:`p-3 rounded-lg ${ee.success?`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30`:`bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`}`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[ee.success?(0,G.jsx)(xs,{className:`w-4 h-4 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}):(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:ee.success?`text-green-800 dark:text-green-200`:`text-red-800 dark:text-red-200`,children:[ee.message,ee.success&&(0,G.jsx)(`div`,{className:`mt-2`,children:(0,G.jsxs)(Q,{size:`sm`,onClick:()=>window.location.reload(),children:[(0,G.jsx)(Wl,{className:`w-3 h-3`}),n(`backup.reloadNow`)]})})]})]})}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`text-yellow-800 dark:text-yellow-200`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:n(`backup.restoreReplacesAll`)}),` `,(0,G.jsx)(`span`,{className:`text-yellow-800/80 dark:text-yellow-200/70`,children:n(`backup.restoreReplacesAllDetail`)})]})]})})]})]}),(0,G.jsxs)(zd,{id:`card-backup-scheduled`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(gc,{className:`w-5 h-5 text-gray-400`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`backup.scheduledBackup`)})]}),(0,G.jsx)(fH,{checked:ue?.enabled??!1,onChange:async r=>{try{await Z.updateSettings({local_backup_enabled:r}),e.invalidateQueries({queryKey:[`settings`]}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}})]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`backup.scheduledBackupDescription`)}),ue?.enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.frequency`)}),(0,G.jsxs)(`select`,{value:ue?.schedule??`daily`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{try{await Z.updateSettings({local_backup_schedule:e.target.value}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()},children:[(0,G.jsx)(`option`,{value:`hourly`,children:n(`backup.hourly`)}),(0,G.jsx)(`option`,{value:`daily`,children:n(`backup.daily`)}),(0,G.jsx)(`option`,{value:`weekly`,children:n(`backup.weekly`)})]})]}),(ue?.schedule??`daily`)!==`hourly`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.backupTime`)}),(0,G.jsx)(`input`,{type:`time`,value:ue?.time??`03:00`,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{try{await Z.updateSettings({local_backup_time:e.target.value}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.localTimeHint`,{tz:ue?.timezone||`UTC`})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.retention`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:100,value:ue?.retention??5,className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onChange:async e=>{let r=Math.max(1,Math.min(100,parseInt(e.target.value)||5));try{await Z.updateSettings({local_backup_retention:r}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:n(`backup.retentionDescription`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:n(`backup.outputPath`)}),(0,G.jsx)(`input`,{type:`text`,value:ce,onChange:e=>le(e.target.value),className:`w-full h-10 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,onBlur:async()=>{try{await Z.updateSettings({local_backup_path:ce}),t(n(`backup.settingsSaved`))}catch(e){t(n(`backup.failedToSave`,{message:e instanceof Error?e.message:`Unknown error`}),`error`)}de(),pe(),he()},onKeyDown:e=>{e.key===`Enter`&&e.target.blur()}}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-light mt-1`,children:ce?n(`backup.outputPathDescription`):(0,G.jsxs)(G.Fragment,{children:[n(`backup.defaultPathLabel`),` `,(0,G.jsx)(`code`,{className:`text-bambu-gray`,children:ue?.default_path||`...`})]})}),me&&!me.writable&&(0,G.jsx)(`div`,{className:`mt-2 p-3 rounded-lg bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0 text-red-800 dark:text-red-200`,children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`backup.pathCheck.title`)}),(0,G.jsx)(`p`,{className:`mt-1 text-red-800/80 dark:text-red-200/80`,children:n(`backup.pathCheck.${me.code}`,{path:me.path,defaultValue:me.message})}),me.remedy&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`mt-2 font-medium`,children:n(`backup.pathCheck.howToFix`)}),(0,G.jsx)(`pre`,{className:`mt-1 p-2 rounded bg-black/10 dark:bg-black/40 text-xs whitespace-pre-wrap break-words`,children:me.remedy})]}),me.detail&&(0,G.jsx)(`p`,{className:`mt-2 text-xs text-red-800/60 dark:text-red-200/60 break-words`,children:me.detail})]})]})}),me?.writable&&me.warning===`container_ephemeral`&&(0,G.jsx)(`div`,{className:`mt-2 p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0 text-yellow-800 dark:text-yellow-200`,children:[(0,G.jsx)(`p`,{className:`font-medium`,children:n(`backup.pathCheck.ephemeralTitle`)}),(0,G.jsx)(`p`,{className:`mt-1 text-yellow-800/80 dark:text-yellow-200/80`,children:n(`backup.pathCheck.container_ephemeral`,{path:me.path})}),me.remedy&&(0,G.jsx)(`pre`,{className:`mt-1 p-2 rounded bg-black/10 dark:bg-black/40 text-xs whitespace-pre-wrap break-words`,children:me.remedy})]})]})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`text-sm`,children:[ue?.last_backup_at&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsxs)(`span`,{children:[n(`backup.lastBackup`),`:`]}),(0,G.jsx)(I8,{status:ue.last_status}),(0,G.jsx)(`span`,{children:up(ue.last_backup_at)})]}),ue?.next_run&&(0,G.jsxs)(`div`,{className:`text-bambu-gray mt-1`,children:[(0,G.jsxs)(`span`,{children:[n(`backup.nextBackup`),`: `]}),(0,G.jsx)(`span`,{children:F8(ue.next_run)})]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:ue?.is_running||ge.isPending,onClick:()=>ge.mutate(),children:[ue?.is_running||ge.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Nl,{className:`w-4 h-4`}),ue?.is_running?n(`backup.backupRunning`):n(`backup.runNow`)]})]}),fe&&fe.length>0&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-2`,children:n(`backup.backupFiles`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:fe.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-1.5 px-2 rounded hover:bg-bambu-dark-tertiary/50 text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-white truncate block`,children:e.filename}),(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[(e.size/1024/1024).toFixed(1),` MB · `,F8(e.created_at)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-bambu-green p-1`,title:n(`backup.download`),onClick:async()=>{try{let{blob:t,filename:n}=await Z.downloadLocalBackup(e.filename),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}catch{t(n(`backup.scheduledBackupFailed`),`error`)}},children:(0,G.jsx)(Xs,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-yellow-600 dark:hover:text-yellow-400 p-1`,title:n(`backup.restore`),onClick:()=>H(e.filename),children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{className:`text-bambu-gray hover:text-red-600 dark:hover:text-red-400 p-1`,onClick:()=>oe(e.filename),title:n(`backup.deleteBackup`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})]},e.filename))})]}),fe&&fe.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-3 border-t border-bambu-dark-tertiary`,children:n(`backup.noScheduledBackups`)})]})]})]})]}),re&&(0,G.jsx)(SGe,{onClose:()=>ie(!1)}),ae&&(0,G.jsx)(of,{title:n(`backup.deleteBackup`),message:n(`backup.deleteBackupConfirm`),confirmText:n(`backup.deleteBackup`),variant:`danger`,onConfirm:()=>_e.mutate(ae),onCancel:()=>oe(null)}),se&&(0,G.jsx)(of,{title:n(`backup.restoreConfirmTitle`),message:n(`backup.restoreConfirmMessage`,{filename:se}),confirmText:n(`backup.restoreConfirmButton`),variant:`danger`,onConfirm:()=>ve.mutate(se),onCancel:()=>H(null)}),R&&B&&(0,G.jsx)(of,{title:n(`backup.restoreConfirmTitle`),message:n(`backup.restoreConfirmMessage`,{filename:B.name}),confirmText:n(`backup.restoreConfirmButton`),variant:`danger`,onConfirm:async()=>{z(!1),F(!0),te(null);try{L(n(`backup.uploadingFile`));let e=await Z.importBackup(B);te(e),e.success?t(n(`backup.backupRestoredRestart`),`success`):t(e.message,`error`)}catch(e){let r=e instanceof Error?e.message:n(`backup.failedToRestore`);te({success:!1,message:r}),t(r,`error`)}finally{F(!1),L(``),V(null)}},onCancel:()=>{z(!1),V(null)}}),(M||P)&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-[100]`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-8 max-w-md w-full mx-4 text-center`,children:[(0,G.jsx)(`div`,{className:`flex justify-center mb-4`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 border-4 border-bambu-dark-tertiary rounded-full`}),(0,G.jsx)(`div`,{className:`w-16 h-16 border-4 border-bambu-green border-t-transparent rounded-full absolute inset-0 animate-spin`})]})}),(0,G.jsx)(`h3`,{className:`text-xl font-semibold text-white mb-2`,children:n(M?`backup.creatingBackup`:`backup.restoringBackup`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:I||n(M?`backup.preparing`:`backup.processing`)}),(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-yellow-800 dark:text-yellow-200 text-left`,children:n(`backup.doNotClosePage`)})]})})]})})]})}function OGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`medium`),[d,f]=(0,y.useState)(`notify`),[p,m]=(0,y.useState)(10),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),{data:S}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:C,refetch:w}=K({queryKey:[`obico-status`],queryFn:Z.getObicoStatus,refetchInterval:1e4}),{data:T}=K({queryKey:[`printers`],queryFn:Z.getPrinters});(0,y.useEffect)(()=>{if(S){i(S.obico_enabled??!1),o(S.obico_ml_url??``),c(S.obico_ml_token??``),u(S.obico_sensitivity??`medium`),f(S.obico_action??`notify`),m(S.obico_poll_interval??10);try{let e=S.obico_enabled_printers?JSON.parse(S.obico_enabled_printers):null;g(Array.isArray(e)?e:null)}catch{g(null)}x(!0)}},[S]);let E=q({mutationFn:()=>Z.updateSettings({obico_enabled:r,obico_ml_url:a,obico_ml_token:s,obico_sensitivity:l,obico_action:d,obico_poll_interval:p,obico_enabled_printers:h===null?``:JSON.stringify(h)}),onSuccess:()=>{t.invalidateQueries({queryKey:[`settings`]}),t.invalidateQueries({queryKey:[`obico-status`]}),t.invalidateQueries({queryKey:[`obico-printer-status`]}),n(e(`settings.toast.settingsSaved`))}}),D=(0,y.useMemo)(()=>!b||!S?!1:S.obico_enabled!==r||S.obico_ml_url!==a||(S.obico_ml_token??``)!==s||S.obico_sensitivity!==l||S.obico_action!==d||S.obico_poll_interval!==p||S.obico_enabled_printers!==(h===null?``:JSON.stringify(h)),[S,b,r,a,s,l,d,p,h]);(0,y.useEffect)(()=>{if(!D)return;let e=setTimeout(()=>E.mutate(),500);return()=>clearTimeout(e)},[D,r,a,s,l,d,p,h]);let O=async()=>{v(null);try{D&&await E.mutateAsync();let t=await Z.testObicoConnection(a,s);t.ok?v({ok:!0,message:t.auth_ok===null?e(`failureDetection.testSuccessTokenUnknown`):e(`failureDetection.testSuccess`)}):v({ok:!1,message:t.error||`HTTP ${t.status_code??`?`} — ${t.body??e(`failureDetection.testFailed`)}`})}catch(e){v({ok:!1,message:e instanceof Error?e.message:String(e)})}},k=(e,t)=>{if(h===null){let n=T?.map(e=>e.id)??[];g(t?n:n.filter(t=>t!==e));return}g(t?[...h,e]:h.filter(t=>t!==e))};return(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-fd-ml`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Yl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.title`)})]}),(0,G.jsx)(fH,{checked:r,onChange:i})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-2`,children:e(`failureDetection.description`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.mlUrl`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:`http://192.168.1.10:3333`,className:`flex-1 bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,disabled:!r}),(0,G.jsx)(Q,{onClick:O,disabled:!a||E.isPending,variant:`secondary`,children:e(`failureDetection.test`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.mlUrlHint`)}),(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1 mt-3`,children:e(`failureDetection.mlToken`)}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>c(e.target.value),autoComplete:`off`,placeholder:e(`failureDetection.mlTokenPlaceholder`),className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,disabled:!r}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.mlTokenHint`)}),_&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 mt-2 text-sm ${_.ok?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:[_.ok?(0,G.jsx)(fs,{className:`w-4 h-4 mt-0.5`}):(0,G.jsx)(nd,{className:`w-4 h-4 mt-0.5`}),(0,G.jsx)(`span`,{children:_.message})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.sensitivity`)}),(0,G.jsxs)(`select`,{value:l,onChange:e=>u(e.target.value),disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:`low`,children:e(`failureDetection.sensitivityLow`)}),(0,G.jsx)(`option`,{value:`medium`,children:e(`failureDetection.sensitivityMedium`)}),(0,G.jsx)(`option`,{value:`high`,children:e(`failureDetection.sensitivityHigh`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.sensitivityHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.action`)}),(0,G.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`,children:[(0,G.jsx)(`option`,{value:`notify`,children:e(`failureDetection.actionNotify`)}),(0,G.jsx)(`option`,{value:`pause`,children:e(`failureDetection.actionPause`)}),(0,G.jsx)(`option`,{value:`pause_and_off`,children:e(`failureDetection.actionPauseOff`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`failureDetection.pollInterval`)}),(0,G.jsx)(`input`,{type:`number`,value:p,onChange:e=>m(Math.max(5,Math.min(120,Number(e.target.value)||10))),min:5,max:120,disabled:!r,className:`w-full bg-gray-800 border border-gray-700 rounded px-3 py-2 text-white text-sm`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`failureDetection.pollIntervalHint`)})]}),C&&!C.external_url_configured&&r&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 bg-amber-50 dark:bg-amber-900/30 border border-amber-300 dark:border-amber-700 rounded text-sm text-amber-800 dark:text-amber-200`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`font-medium`,children:e(`failureDetection.externalUrlMissing`)}),(0,G.jsx)(`div`,{className:`text-xs mt-1`,children:e(`failureDetection.externalUrlHint`)})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-fd-perprinter`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.perPrinterTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`failureDetection.perPrinterHint`)})]}),(0,G.jsxs)(Vd,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h===null,onChange:e=>g(e.target.checked?null:T?.map(e=>e.id)??[]),disabled:!r}),(0,G.jsx)(`span`,{className:`text-white`,children:e(`failureDetection.monitorAll`)})]}),h!==null&&T&&(0,G.jsx)(`div`,{className:`pl-5 space-y-1 border-l border-gray-700`,children:T.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:h.includes(e.id),onChange:t=>k(e.id,t.target.checked),disabled:!r}),(0,G.jsx)(`span`,{className:`text-white`,children:e.name})]},e.id))})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-fd-status`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.statusTitle`)})}),(0,G.jsx)(Vd,{children:C?(0,G.jsxs)(`div`,{className:`space-y-3 text-sm`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`failureDetection.serviceRunning`)}),(0,G.jsx)(`span`,{className:C.is_running?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`,children:C.is_running?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`failureDetection.thresholds`)}),(0,G.jsxs)(`span`,{className:`text-white font-mono`,children:[C.thresholds.low.toFixed(2),` / `,C.thresholds.high.toFixed(2)]})]}),C.last_error&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`break-words`,children:C.last_error})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-bambu-gray mb-1`,children:e(`failureDetection.activePrinters`)}),Object.keys(C.per_printer).length===0?(0,G.jsx)(`div`,{className:`text-bambu-gray italic text-xs`,children:e(`failureDetection.noActivePrints`)}):(0,G.jsx)(`div`,{className:`space-y-1`,children:Object.entries(C.per_printer).map(([e,t])=>{let n=T?.find(t=>String(t.id)===e),r=t.class===`failure`?`text-red-700 dark:text-red-400`:t.class===`warning`?`text-amber-700 dark:text-amber-400`:`text-green-700 dark:text-green-400`;return(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:n?.name??`Printer ${e}`}),(0,G.jsxs)(`span`,{className:`font-mono ${r}`,children:[t.class,` (`,t.score.toFixed(3),`, `,t.frame_count,`f)`]})]},e)})})]})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:e(`common.loading`)})]})})]}),(0,G.jsxs)(zd,{id:`card-fd-history`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`failureDetection.historyTitle`)}),(0,G.jsx)(`button`,{onClick:()=>w(),className:`text-xs text-bambu-gray hover:text-white`,children:e(`common.refresh`)})]})}),(0,G.jsx)(Vd,{children:!C||C.history.length===0?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-sm`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:e(`failureDetection.noHistory`)})]}):(0,G.jsx)(`div`,{className:`space-y-1 max-h-96 overflow-y-auto text-xs font-mono`,children:C.history.map((e,t)=>{let n=T?.find(t=>t.id===e.printer_id),r=e.class===`failure`?`text-red-700 dark:text-red-400`:e.class===`warning`?`text-amber-700 dark:text-amber-400`:`text-bambu-gray`;return(0,G.jsxs)(`div`,{className:`flex justify-between gap-2 py-1 border-b border-gray-800`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:new Date(e.timestamp).toLocaleTimeString()}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:n?.name??`#${e.printer_id}`}),(0,G.jsxs)(`span`,{className:r,children:[e.class,` `,e.score.toFixed(3)]})]},t)})})})]})]})]})}var kGe={starttls:587,ssl:465,none:25},AGe={587:`starttls`,465:`ssl`,25:`none`};function jGe(){let{t:e}=U(),{showToast:t}=qd(),n=co(),[r,i]=(0,y.useState)({smtp_host:``,smtp_port:587,smtp_username:``,smtp_password:``,smtp_security:`starttls`,smtp_auth_enabled:!0,smtp_from_email:``,smtp_from_name:`BamBuddy`}),[a,o]=(0,y.useState)(``),{data:s,isLoading:c}=K({queryKey:[`smtpSettings`],queryFn:()=>Z.getSMTPSettings()}),{authEnabled:l}=Nd(),{data:u}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()});(0,y.useEffect)(()=>{s&&i({...s,smtp_password:``})},[s]);let d=e=>{i({...r,smtp_security:e,smtp_port:kGe[e]})},f=e=>{let t=AGe[e];i({...r,smtp_port:e,...t?{smtp_security:t}:{}})},p=e=>{i({...r,smtp_auth_enabled:e,...e?{}:{smtp_username:``,smtp_password:``}})},m=q({mutationFn:e=>Z.saveSMTPSettings(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`smtpSettings`]}),n.invalidateQueries({queryKey:[`advancedAuthStatus`]}),t(e(`settings.email.success.settingsSaved`),`success`)},onError:e=>{t(e.message,`error`)}}),h=q({mutationFn:e=>Z.testSMTP(e),onSuccess:e=>{t(e.message,e.success?`success`:`error`)},onError:e=>{t(e.message,`error`)}}),g=q({mutationFn:e=>e?Z.enableAdvancedAuth():Z.disableAdvancedAuth(),onSuccess:e=>{n.invalidateQueries({queryKey:[`advancedAuthStatus`]}),t(e.message,`success`)},onError:e=>{t(e.message,`error`)}}),_=()=>{if(!r.smtp_host||!r.smtp_from_email){t(e(`settings.email.errors.requiredFields`),`error`);return}if(r.smtp_auth_enabled&&!r.smtp_username){t(e(`settings.email.errors.usernameRequired`),`error`);return}m.mutate(r)},v=()=>{if(!a){t(e(`settings.email.errors.enterTestEmail`),`error`);return}h.mutate({test_recipient:a})},b=()=>{if(!l){t(e(`settings.email.errors.enableAuthFirst`),`error`);return}if(!u?.advanced_auth_enabled&&!u?.smtp_configured){t(e(`settings.email.errors.configureSmtpFirst`),`error`);return}g.mutate(!u?.advanced_auth_enabled)};if(c)return(0,G.jsx)(`div`,{className:`flex items-center justify-center p-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});let x=u?.advanced_auth_enabled??!1,S=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,C=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white/40 placeholder-bambu-gray/40 cursor-not-allowed`;return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-email-advanced-auth`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.advancedAuth`)||`Advanced Authentication`})]}),(0,G.jsx)(Q,{onClick:b,disabled:g.isPending,variant:x?`danger`:`primary`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),e(`settings.email.disable`)||`Disable`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),e(`settings.email.enable`)||`Enable`]})})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`space-y-3`,children:x?(0,G.jsx)(`div`,{className:`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.email.advancedAuthEnabled`)||`Advanced Authentication is enabled`}),(0,G.jsxs)(`ul`,{className:`text-sm text-green-700 dark:text-green-300 space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`settings.email.feature1`)||`Passwords are auto-generated and emailed to new users`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature2`)||`Users can login with username or email`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature3`)||`Forgot password feature is available`}),(0,G.jsx)(`li`,{children:e(`settings.email.feature4`)||`Admins can reset user passwords via email`})]})]})]})}):(0,G.jsx)(`div`,{className:`bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.email.advancedAuthDisabled`)||`Advanced Authentication is disabled`}),(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-300`,children:e(`settings.email.advancedAuthDisabledDesc`)||`Enable advanced authentication to activate email-based features for user management.`})]})]})})})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-4`,children:[(0,G.jsx)(`div`,{className:`lg:col-span-2`,children:(0,G.jsxs)(zd,{id:`card-smtp-config`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.smtpSettings`)||`SMTP Configuration`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.authentication`)||`Authentication`}),(0,G.jsxs)(`select`,{value:r.smtp_auth_enabled?`true`:`false`,onChange:e=>p(e.target.value===`true`),className:S,children:[(0,G.jsx)(`option`,{value:`true`,children:e(`settings.email.authOptions.enabled`)}),(0,G.jsx)(`option`,{value:`false`,children:e(`settings.email.authOptions.disabled`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 transition-opacity ${r.smtp_auth_enabled?``:`opacity-40 pointer-events-none`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.username`)||`Username`}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_username||``,onChange:e=>i({...r,smtp_username:e.target.value}),placeholder:`your.email@gmail.com`,disabled:!r.smtp_auth_enabled,className:r.smtp_auth_enabled?S:C})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.password`)||`Password`}),(0,G.jsx)(`input`,{type:`password`,value:r.smtp_password||``,onChange:e=>i({...r,smtp_password:e.target.value}),placeholder:s?`••••••••`:`App password`,disabled:!r.smtp_auth_enabled,className:r.smtp_auth_enabled?S:C})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:[e(`settings.email.smtpHost`)||`SMTP Server`,` *`]}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_host,onChange:e=>i({...r,smtp_host:e.target.value}),placeholder:`smtp.gmail.com`,className:S})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.smtpPort`)||`SMTP Port`}),(0,G.jsx)(`input`,{type:`number`,value:r.smtp_port,onChange:e=>f(parseInt(e.target.value)||587),placeholder:`587`,className:S})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.security`)||`Security`}),(0,G.jsxs)(`select`,{value:r.smtp_security,onChange:e=>d(e.target.value),className:S,children:[(0,G.jsx)(`option`,{value:`starttls`,children:e(`settings.email.securityOptions.starttls`)}),(0,G.jsx)(`option`,{value:`ssl`,children:e(`settings.email.securityOptions.ssl`)}),(0,G.jsx)(`option`,{value:`none`,children:e(`settings.email.securityOptions.none`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:[e(`settings.email.fromEmail`)||`From Email`,` *`]}),(0,G.jsx)(`input`,{type:`email`,value:r.smtp_from_email,onChange:e=>i({...r,smtp_from_email:e.target.value}),placeholder:`your@email.com`,className:S})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.fromName`)||`From Name`}),(0,G.jsx)(`input`,{type:`text`,value:r.smtp_from_name,onChange:e=>i({...r,smtp_from_name:e.target.value}),placeholder:`BamBuddy`,className:S})]})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsx)(Q,{onClick:_,disabled:m.isPending,className:`flex-1`,children:m.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.email.saving`)||`Saving...`]}):e(`settings.email.save`)||`Save Settings`})})]})})]})}),(0,G.jsx)(`div`,{children:(0,G.jsxs)(zd,{id:`card-email-test`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.email.testConnection`)||`Test SMTP Connection`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:e(`settings.email.testRecipient`)||`Test Recipient Email`}),(0,G.jsx)(`input`,{type:`email`,value:a,onChange:e=>o(e.target.value),placeholder:`test@example.com`,className:S})]}),(0,G.jsx)(Q,{onClick:v,disabled:h.isPending,variant:`secondary`,children:h.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`settings.email.sending`)||`Sending...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)($l,{className:`w-4 h-4`}),e(`settings.email.sendTest`)||`Send Test Email`]})})]})})]})})]})]})}var MGe={starttls:`389`,ldaps:`636`};function NGe(){let{t:e}=U(),{showToast:t}=qd(),n=co(),{authEnabled:r}=Nd(),[i,a]=(0,y.useState)({ldap_server_url:``,ldap_bind_dn:``,ldap_bind_password:``,ldap_search_base:``,ldap_user_filter:`(sAMAccountName={username})`,ldap_security:`starttls`,ldap_group_mapping:``,ldap_auto_provision:!1,ldap_default_group:``}),{data:o,isLoading:s}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),{data:c}=K({queryKey:[`ldapStatus`],queryFn:()=>Z.getLDAPStatus()}),{data:l=[]}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups()});(0,y.useEffect)(()=>{o&&a({ldap_server_url:o.ldap_server_url||``,ldap_bind_dn:o.ldap_bind_dn||``,ldap_bind_password:``,ldap_search_base:o.ldap_search_base||``,ldap_user_filter:o.ldap_user_filter||`(sAMAccountName={username})`,ldap_security:o.ldap_security||`starttls`,ldap_group_mapping:o.ldap_group_mapping||``,ldap_auto_provision:o.ldap_auto_provision??!1,ldap_default_group:o.ldap_default_group||``})},[o]);let u=q({mutationFn:e=>Z.updateSettings(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`settings`]}),n.invalidateQueries({queryKey:[`ldapStatus`]}),t(e(`settings.ldap.settingsSaved`)||`LDAP settings saved`,`success`)},onError:e=>{t(e.message,`error`)}}),d=q({mutationFn:e=>Z.updateSettings({ldap_enabled:e}),onSuccess:()=>{n.invalidateQueries({queryKey:[`settings`]}),n.invalidateQueries({queryKey:[`ldapStatus`]}),t(c?.ldap_enabled?e(`settings.ldap.disabled`)||`LDAP authentication disabled`:e(`settings.ldap.enabled`)||`LDAP authentication enabled`,`success`)},onError:e=>{t(e.message,`error`)}}),f=q({mutationFn:()=>Z.testLDAP(),onSuccess:e=>{t(e.message,e.success?`success`:`error`)},onError:e=>{t(e.message,`error`)}}),p=()=>{if(!i.ldap_server_url){t(e(`settings.ldap.errors.serverRequired`)||`LDAP server URL is required`,`error`);return}if(!i.ldap_search_base){t(e(`settings.ldap.errors.searchBaseRequired`)||`Search base DN is required`,`error`);return}let n={ldap_server_url:i.ldap_server_url,ldap_bind_dn:i.ldap_bind_dn,ldap_search_base:i.ldap_search_base,ldap_user_filter:i.ldap_user_filter,ldap_security:i.ldap_security,ldap_group_mapping:i.ldap_group_mapping,ldap_auto_provision:i.ldap_auto_provision,ldap_default_group:i.ldap_default_group};i.ldap_bind_password&&(n.ldap_bind_password=i.ldap_bind_password),u.mutate(n)},m=()=>{if(!r){t(e(`settings.ldap.errors.enableAuthFirst`)||`Enable authentication first`,`error`);return}if(!c?.ldap_enabled&&!c?.ldap_configured){t(e(`settings.ldap.errors.configureLdapFirst`)||`Save LDAP settings first`,`error`);return}d.mutate(!c?.ldap_enabled)};if(s)return(0,G.jsx)(`div`,{className:`flex items-center justify-center p-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});let h=c?.ldap_enabled??!1,g=`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`;return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-ldap-toggle`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.ldap.title`)||`LDAP Authentication`})]}),(0,G.jsx)(Q,{onClick:m,disabled:d.isPending,variant:h?`danger`:`primary`,children:h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),e(`common.disable`)||`Disable`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),e(`common.enable`)||`Enable`]})})]})}),(0,G.jsx)(Vd,{children:h?(0,G.jsx)(`div`,{className:`bg-green-50 dark:bg-green-500/10 border border-green-300 dark:border-green-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-green-600 dark:text-green-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.ldap.enabledDesc`)||`LDAP authentication is enabled`}),(0,G.jsxs)(`ul`,{className:`text-sm text-green-700 dark:text-green-300 space-y-1 list-disc list-inside`,children:[(0,G.jsx)(`li`,{children:e(`settings.ldap.feature1`)||`Users can login with LDAP credentials`}),(0,G.jsx)(`li`,{children:e(`settings.ldap.feature2`)||`Local admin account remains as fallback`}),(0,G.jsx)(`li`,{children:e(`settings.ldap.feature3`)||`LDAP groups are mapped to BamBuddy groups on login`})]})]})]})}):(0,G.jsx)(`div`,{className:`bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-600 dark:text-yellow-400 mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`settings.ldap.disabledDesc`)||`LDAP authentication is disabled`}),(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-300 mt-1`,children:e(`settings.ldap.disabledHint`)||`Configure and save LDAP settings below, then enable.`})]})]})})})]}),(0,G.jsxs)(zd,{id:`card-ldap-server`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`settings.ldap.serverConfig`)||`LDAP Server Configuration`})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{className:`md:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.serverUrl`)||`Server URL`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`ldaps://ldap.example.com:636`,value:i.ldap_server_url,onChange:e=>a({...i,ldap_server_url:e.target.value})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.serverUrlHint`)||`Use ldaps:// for SSL or ldap:// with StartTLS`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.security`)||`Security`}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:[`starttls`,`ldaps`].map(e=>(0,G.jsx)(`button`,{onClick:()=>a({...i,ldap_security:e}),className:`flex-1 px-2 py-2 rounded-lg text-sm font-medium transition-colors ${i.ldap_security===e?`bg-bambu-green text-black`:`bg-bambu-dark-secondary text-bambu-gray hover:text-white border border-bambu-dark-tertiary`}`,children:e===`starttls`?`StartTLS`:`LDAPS`},e))}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.securityHint`)||`Default port: ${MGe[i.ldap_security]}`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.bindDn`)||`Bind DN (Service Account)`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`cn=service-account,ou=service,dc=example,dc=com`,value:i.ldap_bind_dn,onChange:e=>a({...i,ldap_bind_dn:e.target.value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.bindPassword`)||`Bind Password`}),(0,G.jsx)(`input`,{type:`password`,className:g,placeholder:o?.ldap_bind_dn?`••••••••`:``,value:i.ldap_bind_password,onChange:e=>a({...i,ldap_bind_password:e.target.value})})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.searchBase`)||`Search Base DN`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`ou=users,dc=example,dc=com`,value:i.ldap_search_base,onChange:e=>a({...i,ldap_search_base:e.target.value})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.userFilter`)||`User Search Filter`}),(0,G.jsx)(`input`,{type:`text`,className:g,placeholder:`(sAMAccountName={username})`,value:i.ldap_user_filter,onChange:e=>a({...i,ldap_user_filter:e.target.value})})]})]}),(0,G.jsx)($p,{summary:(0,G.jsx)(`span`,{className:`text-sm font-medium text-bambu-gray`,children:e(`settings.ldap.advanced`)||`Advanced`}),className:`border-t border-bambu-dark-tertiary pt-3`,summaryClassName:`py-1`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white`,children:e(`settings.ldap.autoProvision`)||`Auto-provision users`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e(`settings.ldap.autoProvisionHint`)||`Automatically create a BamBuddy account on first LDAP login`})]}),(0,G.jsx)(`button`,{onClick:()=>a({...i,ldap_auto_provision:!i.ldap_auto_provision}),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors flex-shrink-0 ${i.ldap_auto_provision?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${i.ldap_auto_provision?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.defaultGroup`)||`Default group`}),(0,G.jsxs)(`select`,{className:g,value:i.ldap_default_group,onChange:e=>a({...i,ldap_default_group:e.target.value}),children:[(0,G.jsx)(`option`,{value:``,children:e(`settings.ldap.defaultGroupNone`)||`— None (reject login) —`}),l.map(e=>(0,G.jsx)(`option`,{value:e.name,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`settings.ldap.defaultGroupHint`)||`Fallback group assigned when an LDAP user authenticates but is not listed in any mapped group. Leave empty to leave unmapped users without permissions.`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:e(`settings.ldap.groupMapping`)||`Group Mapping (JSON)`}),(0,G.jsx)(`textarea`,{className:`${g} font-mono text-sm`,rows:4,placeholder:`{ "CN=PrintFarm_Admins,OU=Groups,DC=example,DC=com": "Administrators", "CN=PrintFarm_Users,OU=Groups,DC=example,DC=com": "Operators" -}`,value:i.ldap_group_mapping,onChange:e=>a({...i,ldap_group_mapping:e.target.value})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[e(`settings.ldap.groupMappingHint`)||`Map LDAP group DNs to BamBuddy groups. Available groups: `,l.map(e=>e.name).join(`, `)]})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsxs)(Q,{onClick:p,disabled:u.isPending,children:[u.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(xs,{className:`w-4 h-4`}),e(`common.save`)||`Save`]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>f.mutate(),disabled:f.isPending,children:[f.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),e(`settings.ldap.testConnection`)||`Test Connection`]})]})]})})]})]})}function L8({value:e,onChange:t,placeholder:n,maxLength:r=6}){return(0,G.jsx)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value.toUpperCase().replace(/\s/g,``)),maxLength:r,className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors font-mono tracking-widest text-center`,placeholder:n,autoComplete:`one-time-code`})}function R8({codes:e,onDone:t}){let{t:n}=U(),[r,i]=(0,y.useState)(!1);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`div`,{className:`bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-lg p-4`,children:(0,G.jsx)(`p`,{className:`text-amber-700 dark:text-amber-400 text-sm font-medium`,children:n(`settings.twoFa.backupCodesWarning`)})}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:e.map((e,t)=>(0,G.jsx)(`code`,{className:`bg-bambu-dark-secondary rounded px-3 py-2 text-center font-mono text-sm text-white tracking-widest`,children:e},t))}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{navigator.clipboard.writeText(e.join(` -`)),i(!0),setTimeout(()=>i(!1),2e3)},className:`flex items-center gap-2`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(r?`common.copied`:`common.copy`)]}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:t,className:`flex-1`,children:n(`settings.twoFa.savedCodes`)})]})]})}function PGe({onDone:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(`qr`),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(!1),{data:f,isLoading:p}=K({queryKey:[`totp-setup`],queryFn:()=>Z.setupTOTP(),staleTime:1/0}),m=q({mutationFn:e=>Z.enableTOTP(e),onSuccess:e=>{l(e.backup_codes),a(`backup`),n.invalidateQueries({queryKey:[`2fa-status`]})},onError:()=>r(t(`settings.twoFa.invalidCode`),`error`)});return p||!f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})}):i===`qr`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:t(`settings.twoFa.setupInstructions`)}),(0,G.jsx)(`div`,{className:`flex justify-center`,children:(0,G.jsx)(`img`,{src:`data:image/png;base64,${f.qr_code_b64}`,alt:`TOTP QR Code`,className:`w-48 h-48 rounded-lg`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:t(`settings.twoFa.manualEntry`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-bambu-dark-secondary rounded-lg px-3 py-2`,children:[(0,G.jsx)(`code`,{className:`text-white text-xs font-mono flex-1 break-all`,children:u?f.secret:`••••••••••••••••`}),(0,G.jsx)(`button`,{onClick:()=>d(!u),className:`text-bambu-gray hover:text-white`,children:u?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{navigator.clipboard.writeText(f.secret)},className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(Q,{variant:`primary`,className:`w-full`,onClick:()=>a(`confirm`),children:t(`settings.twoFa.scannedContinue`)})]}):i===`confirm`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:t(`settings.twoFa.enterCodeToConfirm`)}),(0,G.jsx)(L8,{value:o,onChange:s,placeholder:`000000`}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>a(`qr`),className:`flex-1`,children:t(`common.back`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:o.length!==6||m.isPending,onClick:()=>m.mutate(o),children:m.isPending?t(`common.saving`):t(`settings.twoFa.activate`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:t(`settings.twoFa.backupCodesTitle`)}),(0,G.jsx)(R8,{codes:c,onDone:e})]})}function FGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{user:r}=Nd(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(!1),{data:D,isLoading:O}=K({queryKey:[`2fa-status`],queryFn:()=>Z.get2FAStatus()}),{data:k}=K({queryKey:[`oidc-links`],queryFn:()=>Z.getOIDCLinks()}),A=q({mutationFn:()=>Z.enableEmailOTP(),onSuccess:e=>{_(e.setup_token),n(e.message,`success`)},onError:t=>{let r=t.message??``;r.toLowerCase().includes(`smtp`)?n(e(`settings.twoFa.smtpRequired`),`error`):n(r,`error`)}}),j=q({mutationFn:()=>Z.confirmEnableEmailOTP(g,v),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),_(null),b(``),n(e(`settings.twoFa.emailOtpEnabled`),`success`)},onError:e=>n(e.message,`error`)}),M=q({mutationFn:e=>Z.disableEmailOTP(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),S(!1),w(``),n(e(`settings.twoFa.emailOtpDisabled`),`success`)},onError:e=>n(e.message,`error`)}),N=q({mutationFn:e=>Z.disableTOTP(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),s(!1),d(``),n(e(`settings.twoFa.totpDisabled`),`success`)},onError:()=>n(e(`settings.twoFa.invalidCode`),`error`)}),P=q({mutationFn:e=>Z.regenerateBackupCodes(e),onSuccess:e=>{t.invalidateQueries({queryKey:[`2fa-status`]}),l(!1),p(``),h(e.backup_codes)},onError:()=>n(e(`settings.twoFa.invalidCode`),`error`)}),F=q({mutationFn:e=>Z.deleteOIDCLink(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-links`]}),n(e(`settings.twoFa.oidcUnlinked`),`success`)},onError:e=>n(e.message,`error`)});if(O)return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})});let I=!!r?.email;return(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-2fa-totp`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${D?.totp_enabled?`bg-green-100 dark:bg-green-500/20`:`bg-gray-500/20`}`,children:(0,G.jsx)(mu,{className:`w-5 h-5 ${D?.totp_enabled?`text-green-600 dark:text-green-400`:`text-gray-400`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.totpTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.twoFa.totpDesc`)})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:D?.totp_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400 text-sm font-medium`,children:[(0,G.jsx)(au,{className:`w-4 h-4`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray text-sm`,children:[(0,G.jsx)(ou,{className:`w-4 h-4`}),` `,e(`common.disabled`)]})})]})}),(0,G.jsx)(Vd,{children:i?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:e(`settings.twoFa.setupAuthApp`)}),(0,G.jsx)(`button`,{onClick:()=>{a(!1),t.removeQueries({queryKey:[`totp-setup`]})},className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(PGe,{onDone:()=>{a(!1),t.removeQueries({queryKey:[`totp-setup`]})}})]}):o?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.disableConfirmHint`)}),(0,G.jsx)(L8,{value:u,onChange:d,placeholder:`000000 or XXXXXXXX`,maxLength:8}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{s(!1),d(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,className:`flex-1`,disabled:u.length<6||N.isPending,onClick:()=>N.mutate(u),children:N.isPending?e(`common.saving`):e(`settings.twoFa.disableTotp`)})]})]}):c?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.regenBackupHint`)}),(0,G.jsx)(L8,{value:f,onChange:p,placeholder:`000000 or XXXXXXXX`,maxLength:8}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{l(!1),p(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:f.length<6||P.isPending,onClick:()=>P.mutate(f),children:P.isPending?e(`common.saving`):e(`settings.twoFa.regenBackup`)})]})]}):m?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:e(`settings.twoFa.newBackupCodes`)}),(0,G.jsx)(R8,{codes:m,onDone:()=>h(null)})]}):(0,G.jsx)(`div`,{className:`space-y-3`,children:D?.totp_enabled?(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray-light`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),e(`settings.twoFa.backupCodesRemaining`,{count:D.backup_codes_remaining})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>l(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`settings.twoFa.regenBackup`)]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>s(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.twoFa.disableTotp`)]})]}):(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>a(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),e(`settings.twoFa.setupTotp`)]})})})]}),(0,G.jsxs)(zd,{id:`card-2fa-emailotp`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${D?.email_otp_enabled?`bg-green-100 dark:bg-green-500/20`:`bg-gray-500/20`}`,children:(0,G.jsx)(al,{className:`w-5 h-5 ${D?.email_otp_enabled?`text-green-600 dark:text-green-400`:`text-gray-400`}`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.emailOtpTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:I?e(`settings.twoFa.emailOtpDesc`,{email:r?.email}):e(`settings.twoFa.emailOtpNoEmail`)})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:D?.email_otp_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400 text-sm font-medium`,children:[(0,G.jsx)(au,{className:`w-4 h-4`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray text-sm`,children:[(0,G.jsx)(ou,{className:`w-4 h-4`}),` `,e(`common.disabled`)]})})]})}),(0,G.jsx)(Vd,{children:I?g?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.emailSetupEnterCode`)}),(0,G.jsx)(L8,{value:v,onChange:b,placeholder:`000000`}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{_(null),b(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:v.length!==6||j.isPending,onClick:()=>j.mutate(),children:j.isPending?e(`common.saving`):e(`settings.twoFa.verifyAndEnable`)})]})]}):x?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.emailDisablePasswordHint`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:T?`text`:`password`,value:C,onChange:e=>w(e.target.value),placeholder:e(`settings.twoFa.passwordPlaceholder`),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>E(!T),className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:T?(0,G.jsx)(ic,{className:`w-5 h-5`}):(0,G.jsx)(ac,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{S(!1),w(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,className:`flex-1`,disabled:!C||M.isPending,onClick:()=>M.mutate(C),children:M.isPending?e(`common.saving`):e(`settings.twoFa.disableEmailOtp`)})]})]}):(0,G.jsx)(`div`,{className:`flex gap-3`,children:D?.email_otp_enabled?(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>S(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.twoFa.disableEmailOtp`)]}):(0,G.jsxs)(Q,{variant:`primary`,disabled:!I||A.isPending,onClick:()=>A.mutate(),className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),A.isPending?e(`common.saving`):e(`settings.twoFa.enableEmailOtp`)]})}):(0,G.jsx)(`p`,{className:`text-amber-700 dark:text-amber-400 text-sm`,children:e(`settings.twoFa.addEmailFirst`)})})]}),k&&k.length>0&&(0,G.jsxs)(zd,{id:`card-2fa-linked`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.linkedAccounts`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.twoFa.linkedAccountsDesc`)})]}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`space-y-3`,children:k.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-2 border-b border-bambu-dark-tertiary last:border-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:e.provider_name}),e.provider_email&&(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:e.provider_email})]}),(0,G.jsx)(Q,{variant:`danger`,size:`sm`,onClick:()=>F.mutate(e.provider_id),disabled:F.isPending,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]},e.id))})})]})]})}var IGe={name:``,issuer_url:``,client_id:``,client_secret:``,scopes:`openid email profile`,is_enabled:!0,auto_create_users:!1,auto_link_existing_accounts:!1,email_claim:`email`,require_email_verified:!0,icon_url:void 0,default_group_id:null,is_autologin:!1};function z8({initial:e,isEdit:t=!1,groups:n=[],onSave:r,onCancel:i,isPending:a}){let{t:o}=U(),[s,c]=(0,y.useState)(e),[l,u]=(0,y.useState)(!1),d=(e,t)=>c(n=>({...n,[e]:t})),f=`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors text-sm`,p=`block text-sm font-medium text-white mb-1`,m=()=>{let e={...s};t&&!l&&delete e.client_secret,r(e)},h=s.auto_link_existing_accounts===!0,g=s.require_email_verified??!0,_;return _=h?o(`settings.oidc.form.requireEmailVerifiedAutoLink`):g?o(`settings.oidc.form.requireEmailVerifiedDesc`):(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:o(`settings.oidc.form.requireEmailVerifiedWarning`)}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.name`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.name,onChange:e=>d(`name`,e.target.value),placeholder:`Google`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.issuerUrl`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.issuer_url,onChange:e=>d(`issuer_url`,e.target.value),placeholder:`https://accounts.google.com`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.clientId`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.client_id,onChange:e=>d(`client_id`,e.target.value),placeholder:`your-client-id`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.clientSecret`),!t&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:` *`}),t&&(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs ml-1`,children:[`(`,o(`settings.oidc.form.secretHint`),`)`]})]}),(0,G.jsx)(`input`,{className:f,type:`password`,value:l?s.client_secret:``,placeholder:t&&!l?`••••••••`:o(`settings.oidc.form.secretPlaceholder`),onChange:e=>{u(!0),d(`client_secret`,e.target.value)}})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.scopes`)}),(0,G.jsx)(`input`,{className:f,value:s.scopes,onChange:e=>d(`scopes`,e.target.value),placeholder:`openid email profile`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.iconUrl`)}),(0,G.jsx)(`input`,{className:f,value:s.icon_url??``,onChange:e=>d(`icon_url`,e.target.value===``?null:e.target.value),placeholder:`https://...`})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-6 pt-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(pH,{checked:s.is_enabled??!0,onChange:e=>d(`is_enabled`,e)}),(0,G.jsx)(`span`,{className:`text-white text-sm`,children:o(`settings.oidc.form.enabled`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(pH,{checked:s.auto_create_users??!1,onChange:e=>d(`auto_create_users`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autoCreate`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autoCreateDesc`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(pH,{checked:s.auto_link_existing_accounts??!1,onChange:e=>d(`auto_link_existing_accounts`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autoLink`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autoLinkDesc`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(pH,{checked:g,onChange:e=>d(`require_email_verified`,e),disabled:h}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.requireEmailVerified`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:_})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(pH,{checked:s.is_autologin??!1,onChange:e=>d(`is_autologin`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autologin`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autologinDesc`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.emailClaim`)}),(0,G.jsx)(`input`,{className:f,value:s.email_claim,onChange:e=>d(`email_claim`,e.target.value||`email`),placeholder:o(`settings.oidc.form.emailClaimPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:o(`settings.oidc.form.emailClaimDesc`)}),h&&s.email_claim!==`email`&&(0,G.jsx)(`p`,{className:`text-yellow-700 dark:text-yellow-400 text-xs mt-1`,children:o(`settings.oidc.form.emailClaimCustomClaimAutoLinkWarning`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.defaultGroup`)}),(0,G.jsxs)(`select`,{className:f,value:s.default_group_id??``,onChange:e=>d(`default_group_id`,e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:o(`settings.oidc.form.defaultGroupViewersFallback`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:o(`settings.oidc.form.defaultGroupDesc`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:i,className:`flex-1`,children:o(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:!s.name||!s.issuer_url||!s.client_id||!t&&!s.client_secret||t&&l&&!s.client_secret||a,onClick:m,children:o(a?`common.saving`:`common.save`)})]})]})}function LGe({provider:e}){let[t,n]=(0,y.useState)(!1);return e.has_icon&&!t?(0,G.jsx)(`img`,{src:Z.oidcProviderIconUrl(e.id),alt:e.name,className:`w-8 h-8 rounded object-contain`,onError:()=>n(!0)}):(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Ac,{className:`w-4 h-4 text-bambu-gray`})})}function RGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),{data:l,isLoading:u}=K({queryKey:[`oidc-providers-all`],queryFn:()=>Z.getOIDCProvidersAll()}),{data:d=[]}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups()}),f=q({mutationFn:e=>Z.createOIDCProvider(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),i(!1),n(e(`settings.oidc.created`),`success`)},onError:e=>n(e.message,`error`)}),p=q({mutationFn:({id:e,data:t})=>Z.updateOIDCProvider(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),o(null),n(e(`settings.oidc.updated`),`success`)},onError:e=>n(e.message,`error`)}),m=q({mutationFn:e=>Z.deleteOIDCProvider(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),c(null),n(e(`settings.oidc.deleted`),`success`)},onError:e=>n(e.message,`error`)}),h=q({mutationFn:e=>Z.refreshOIDCProviderIcon(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),t.invalidateQueries({queryKey:[`oidc-providers`]}),n(e(`settings.oidc.iconRefreshed`),`success`)},onError:t=>n(t.message||e(`settings.oidc.iconFetchFailed`),`error`)}),g=q({mutationFn:e=>Z.deleteOIDCProviderIcon(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),t.invalidateQueries({queryKey:[`oidc-providers`]}),n(e(`settings.oidc.iconRemoved`),`success`)},onError:e=>n(e.message,`error`)}),_=e=>p.mutate({id:e.id,data:{is_enabled:!e.is_enabled}});return u?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-oidc`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.oidc.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.oidc.desc`)})]}),!r&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>i(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`settings.oidc.addProvider`)]})]})}),r&&(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium mb-4`,children:e(`settings.oidc.newProvider`)}),(0,G.jsx)(z8,{initial:IGe,groups:d,onSave:e=>f.mutate(e),onCancel:()=>i(!1),isPending:f.isPending})]})})]}),l&&l.length===0&&!r&&(0,G.jsx)(zd,{id:`card-oidc-empty`,children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`text-center py-8 space-y-3`,children:[(0,G.jsx)(Ac,{className:`w-12 h-12 text-bambu-gray mx-auto`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.oidc.empty`)}),(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>i(!0),className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`settings.oidc.addProvider`)]})]})})}),l?.map(t=>(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(LGe,{provider:t}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:t.name}),t.is_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-400/10 px-2 py-0.5 rounded-full`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray bg-bambu-dark-tertiary px-2 py-0.5 rounded-full`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),` `,e(`common.disabled`)]}),t.is_env_managed&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-green`,children:[(0,G.jsx)(nl,{className:`w-3 h-3`}),` `,e(`settings.environmentManagedLabel`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-bambu-gray text-xs mt-0.5`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:t.issuer_url})]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:!t.is_env_managed&&(0,G.jsxs)(G.Fragment,{children:[t.icon_url&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h.mutate(t.id),disabled:h.isPending,title:e(`settings.oidc.refreshIcon`),"data-testid":`refresh-icon-${t.id}`,children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${h.isPending?`animate-spin`:``}`})}),t.has_icon&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>g.mutate(t.id),disabled:g.isPending,title:e(`settings.oidc.removeIcon`),"data-testid":`remove-icon-${t.id}`,children:(0,G.jsx)(Vc,{className:`w-4 h-4`})}),(0,G.jsx)(pH,{checked:t.is_enabled,onChange:()=>_(t),disabled:p.isPending}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>o(a===t.id?null:t.id),"data-testid":`edit-provider-${t.id}`,children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`danger`,size:`sm`,onClick:()=>c(t),"data-testid":`delete-provider-${t.id}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}),a===t.id&&(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsx)(z8,{isEdit:!0,groups:d,initial:{name:t.name,issuer_url:t.issuer_url,client_id:t.client_id,client_secret:``,scopes:t.scopes,is_enabled:t.is_enabled,auto_create_users:t.auto_create_users,auto_link_existing_accounts:t.auto_link_existing_accounts,email_claim:t.email_claim,require_email_verified:t.require_email_verified,icon_url:t.icon_url??void 0,default_group_id:t.default_group_id??null,is_autologin:t.is_autologin},onSave:e=>p.mutate({id:t.id,data:e}),onCancel:()=>o(null),isPending:p.isPending})})}),a!==t.id&&(0,G.jsx)(Vd,{children:(0,G.jsxs)(`dl`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-x-6 gap-y-2 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.clientId`)}),(0,G.jsx)(`dd`,{className:`text-white font-mono truncate`,children:t.client_id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.scopes`)}),(0,G.jsx)(`dd`,{className:`text-white`,children:t.scopes})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.autoCreate`)}),(0,G.jsx)(`dd`,{className:t.auto_create_users?`text-green-700 dark:text-green-400`:`text-bambu-gray`,children:t.auto_create_users?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.autoLink`)}),(0,G.jsx)(`dd`,{className:t.auto_link_existing_accounts?`text-green-700 dark:text-green-400`:`text-bambu-gray`,children:t.auto_link_existing_accounts?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.emailClaim`)}),(0,G.jsx)(`dd`,{className:`text-white font-mono`,children:t.email_claim})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.requireEmailVerified`)}),(0,G.jsx)(`dd`,{className:t.require_email_verified?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`,children:t.require_email_verified?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.defaultGroup`)}),(0,G.jsx)(`dd`,{className:`text-white`,children:t.default_group_id?d.find(e=>e.id===t.default_group_id)?.name??e(`settings.oidc.form.defaultGroupViewersFallback`):e(`settings.oidc.form.defaultGroupViewersFallback`)})]})]})})]},t.id)),s&&(0,G.jsx)(of,{title:e(`settings.oidc.deleteTitle`),message:e(`settings.oidc.deleteMessage`,{name:s.name}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:()=>m.mutate(s.id),onCancel:()=>c(null)})]})}var B8=new Map;function V8(e){B8.set(e.anchor,e)}function zGe(){return Array.from(B8.values())}V8({labelKey:`settings.encryption.title`,labelFallback:`MFA Encryption Status`,tab:`users`,subTab:`security`,keywords:`mfa encryption status security backup totp oidc fernet`,anchor:`card-mfa-encryption`});function BGe(){let{t:e}=U(),{data:t,isLoading:n,isError:r,refetch:i}=K({queryKey:[`encryptionStatus`],queryFn:()=>Z.getEncryptionStatus(),refetchInterval:e=>{if(!e.state.error)return 3e4;let t=e.state.fetchFailureCount??0;return t<=3?Math.min(5e3*Math.max(1,t),3e4):!1}});if(n)return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`text-bambu-gray`,size:20}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,"data-testid":`encryption-loading`,children:[(0,G.jsx)(Y,{className:`animate-spin`,size:16}),(0,G.jsx)(`span`,{children:e(`common.loading`)})]})})]});if(r||!t)return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`text-bambu-gray`,size:20}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400`,"data-testid":`encryption-error`,children:e(`common.errorLoading`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(),className:`mt-2 text-sm text-blue-700 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-300`,"data-testid":`encryption-retry-button`,children:e(`common.retry`)})]})]});let a=t.legacy_plaintext_rows.oidc_providers+t.legacy_plaintext_rows.user_totp,o=t.encrypted_rows.oidc_providers+t.encrypted_rows.user_totp,s,c,l,u;t.decryption_broken?(s=`bg-red-100 dark:bg-red-500/20 border-red-400 dark:border-red-500/50 text-red-700 dark:text-red-400`,c=(0,G.jsx)(Ds,{className:`text-red-600 dark:text-red-400`,size:20}),l=e(`settings.encryption.decryptionBrokenTitle`),u=e(`settings.encryption.decryptionBrokenError`,{count:o})):t.key_source===`generated`?(s=`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,c=(0,G.jsx)(au,{className:`text-amber-600 dark:text-amber-400`,size:20}),l=e(`settings.encryption.enabledGenerated`),u=e(`settings.encryption.backupHint`)):a>0?(s=`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,c=(0,G.jsx)(Lu,{className:`text-amber-600 dark:text-amber-400`,size:20}),l=t.key_source===`env`?e(`settings.encryption.enabledFromEnv`):e(`settings.encryption.enabledFromFile`),u=e(`settings.encryption.legacyRowsWarning`,{count:a})):t.key_configured?(s=`bg-green-100 dark:bg-green-500/20 border-green-300 dark:border-green-500/30 text-green-700 dark:text-green-400`,c=(0,G.jsx)(au,{className:`text-green-600 dark:text-green-400`,size:20}),l=t.key_source===`env`?e(`settings.encryption.enabledFromEnv`):e(`settings.encryption.enabledFromFile`),u=e(`settings.encryption.allEncrypted`)):(s=`bg-gray-500/20 border-gray-500/30 text-gray-400`,c=(0,G.jsx)(ou,{className:`text-gray-400`,size:20}),l=e(`settings.encryption.notConfigured`),u=e(`settings.encryption.notConfiguredDesc`));let d=t.key_source===`generated`&&a>0;return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`p-3 border rounded-lg ${s}`,"data-testid":`encryption-status`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:l}),(0,G.jsx)(`p`,{className:`text-sm`,children:u})]}),d&&(0,G.jsx)(`div`,{className:`mt-2 p-3 border rounded-lg bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,"data-testid":`encryption-legacy-warning`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:e(`settings.encryption.legacyRowsWarning`,{count:a})})}),t.migration_error_count>0&&(0,G.jsx)(`div`,{className:`mt-2 p-3 border rounded-lg bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,"data-testid":`encryption-migration-warning`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:e(`settings.encryption.migrationErrorWarning`,{count:t.migration_error_count})})}),(0,G.jsxs)(`div`,{className:`mt-4 grid grid-cols-2 gap-4 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.encryption.encryptedRowsLabel`)}),(0,G.jsxs)(`p`,{className:`font-medium`,children:[`OIDC: `,t.encrypted_rows.oidc_providers,` · TOTP: `,t.encrypted_rows.user_totp]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.encryption.legacyRowsLabel`)}),(0,G.jsxs)(`p`,{className:`font-medium`,children:[`OIDC: `,t.legacy_plaintext_rows.oidc_providers,` · TOTP: `,t.legacy_plaintext_rows.user_totp]})]})]})]})]})}var VGe={get:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 border-blue-300 dark:border-blue-500/30`,post:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400 border-green-300 dark:border-green-500/30`,put:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 border-yellow-300 dark:border-yellow-500/30`,patch:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 border-orange-300 dark:border-orange-500/30`,delete:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 border-red-300 dark:border-red-500/30`};function HGe(e,t){let n=t.replace(`#/`,``).split(`/`),r=e;for(let e of n)r=r[e];return r}function H8(e,t,n=0){if(n>5)return`...`;if(t.$ref)return H8(e,HGe(e,t.$ref),n+1);if(t.allOf){let r={};for(let i of t.allOf){let t=H8(e,i,n+1);typeof t==`object`&&t&&Object.assign(r,t)}return r}if(t.example!==void 0)return t.example;if(t.default!==void 0)return t.default;switch(t.type){case`string`:return t.enum?t.enum[0]:`string`;case`integer`:case`number`:return 0;case`boolean`:return!1;case`array`:return t.items?[H8(e,t.items,n+1)]:[];case`object`:if(t.properties){let r={};for(let[i,a]of Object.entries(t.properties))r[i]=H8(e,a,n+1);return r}return{};default:return null}}function UGe({path:e,method:t,spec:n,schema:r,apiKey:i}){let[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)({}),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(a&&n.parameters){let e={};for(let t of n.parameters)t.schema?.default!==void 0&&(e[t.name]=String(t.schema.default));c(t=>({...e,...t}))}},[a,n.parameters]),(0,y.useEffect)(()=>{if(a&&n.requestBody?.content?.[`application/json`]?.schema&&!l){let e=n.requestBody.content[`application/json`].schema,t=H8(r,e);u(JSON.stringify(t,null,2))}},[a,n.requestBody,r,l]);let _=(()=>{let e=[];for(let t of n.parameters||[])if(t.in===`path`||t.required){let n=s[t.name];(n===void 0||n===``)&&e.push(t.name)}return e})(),v=async()=>{if(_.length>0){f({status:0,statusText:`Validation Error`,headers:{},body:`Missing required parameters: ${_.join(`, `)}`,duration:0});return}m(!0),f(null);try{let r=e,a=new URLSearchParams;for(let e of n.parameters||[]){let t=s[e.name];t!==void 0&&t!==``&&(e.in===`path`?r=r.replace(`{${e.name}}`,encodeURIComponent(t)):e.in===`query`&&a.append(e.name,t))}let o=a.toString(),c=`${r}${o?`?${o}`:``}`,u={"Content-Type":`application/json`};i&&(u[`X-API-Key`]=i);let d={method:t.toUpperCase(),headers:u};[`post`,`put`,`patch`].includes(t)&&l&&(d.body=l);let p=performance.now(),m=await fetch(c,d),h=Math.round(performance.now()-p),g={};m.headers.forEach((e,t)=>{g[t]=e});let _;_=m.headers.get(`content-type`)?.includes(`application/json`)?await m.json():await m.text(),f({status:m.status,statusText:m.statusText,headers:g,body:_,duration:h})}catch(e){f({status:0,statusText:`Network Error`,headers:{},body:e instanceof Error?e.message:`Unknown error`,duration:0})}finally{m(!1)}},b=async()=>{if(d){let e=typeof d.body==`string`?d.body:JSON.stringify(d.body,null,2);try{await navigator.clipboard.writeText(e),g(!0),setTimeout(()=>g(!1),2e3)}catch{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-999999px`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t),g(!0),setTimeout(()=>g(!1),2e3)}}},x=(n.parameters||[]).filter(e=>e.in===`path`),S=(n.parameters||[]).filter(e=>e.in===`query`),C=[`post`,`put`,`patch`].includes(t)&&n.requestBody;return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>o(!a),className:`w-full flex items-center gap-3 p-3 hover:bg-bambu-dark-tertiary/50 transition-colors text-left`,children:[a?(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}):(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs font-mono font-semibold uppercase rounded border ${VGe[t]||`bg-gray-500/20 text-gray-400`}`,children:t}),(0,G.jsx)(`code`,{className:`text-sm text-white font-mono flex-1 truncate`,children:e}),n.summary&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate max-w-[40%]`,children:n.summary})]}),a&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary p-4 space-y-4 bg-bambu-dark/50`,children:[n.description&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n.description}),x.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Path Parameters`}),(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray w-32 flex-shrink-0`,children:[e.name,e.required&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 ml-1`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),placeholder:e.description||e.schema?.type||`value`,className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`})]},e.name))})]}),S.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Query Parameters`}),(0,G.jsx)(`div`,{className:`space-y-2`,children:S.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray w-32 flex-shrink-0`,children:[e.name,e.required&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 ml-1`,children:`*`})]}),e.schema?.enum?(0,G.jsxs)(`select`,{value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:`-- Select --`}),e.schema.enum.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}):(0,G.jsx)(`input`,{type:`text`,value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),placeholder:e.description||e.schema?.type||`value`,className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`})]},e.name))})]}),C&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Request Body`}),(0,G.jsx)(`textarea`,{value:l,onChange:e=>u(e.target.value),rows:8,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono focus:border-bambu-green focus:outline-none resize-y`,placeholder:`JSON request body...`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:v,disabled:p,children:[p?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Nl,{className:`w-4 h-4`}),`Execute`]}),_.length>0&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Fill in: `,_.join(`, `)]})]}),d&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[`Response`,(0,G.jsxs)(`span`,{className:`px-2 py-0.5 text-xs rounded ${d.status>=200&&d.status<300?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:d.status>=400?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`}`,children:[d.status,` `,d.statusText]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[d.duration,`ms`]})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:b,children:h?(0,G.jsx)(xs,{className:`w-3 h-3 text-green-600 dark:text-green-400`}):(0,G.jsx)(Vs,{className:`w-3 h-3`})})]}),(0,G.jsx)(`pre`,{className:`p-3 bg-bambu-dark rounded-lg text-sm font-mono text-white overflow-auto max-h-96 border border-bambu-dark-tertiary`,children:typeof d.body==`string`?d.body:JSON.stringify(d.body,null,2)})]})]})]})}function WGe({apiKey:e=``}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!0),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(``);if((0,y.useEffect)(()=>{async function e(){try{let e=await fetch(`/openapi.json`);if(!e.ok)throw Error(`Failed to fetch OpenAPI schema`);n(await e.json())}catch(e){o(e instanceof Error?e.message:`Unknown error`)}finally{i(!1)}}e()},[]),r)return(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});if(a||!t)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ys,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{children:`Failed to load API schema`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:a})]})})});let d={};for(let[e,n]of Object.entries(t.paths))for(let[t,r]of Object.entries(n)){if(t===`parameters`)continue;let n=r.tags||[`Other`];for(let i of n)d[i]||(d[i]=[]),d[i].push({path:e,method:t,spec:r})}let f=Object.entries(d).map(([e,t])=>l?{tag:e,endpoints:t.filter(({path:e,method:t,spec:n})=>{let r=l.toLowerCase();return e.toLowerCase().includes(r)||t.toLowerCase().includes(r)||(n.summary?.toLowerCase()||``).includes(r)||(n.description?.toLowerCase()||``).includes(r)})}:{tag:e,endpoints:t}).filter(({endpoints:e})=>e.length>0).sort((e,t)=>e.tag.localeCompare(t.tag)),p=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`div`,{className:`flex-1`,children:(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search endpoints...`,className:`w-full max-w-md px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{c(new Set(f.map(e=>e.tag)))},children:`Expand All`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{c(new Set)},children:`Collapse All`}),(0,G.jsxs)(`a`,{href:`/docs`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 text-sm text-bambu-green hover:underline`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`Swagger UI`]})]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[f.reduce((e,t)=>e+t.endpoints.length,0),` endpoints in `,f.length,` categories`]}),(0,G.jsx)(`div`,{className:`space-y-3`,children:f.map(({tag:n,endpoints:r})=>(0,G.jsxs)(zd,{children:[(0,G.jsx)(`button`,{onClick:()=>p(n),className:`w-full flex items-center justify-between p-4 hover:bg-bambu-dark-tertiary/30 transition-colors text-left`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[s.has(n)?(0,G.jsx)(ps,{className:`w-5 h-5 text-bambu-gray`}):(0,G.jsx)(ms,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white capitalize`,children:n.replace(/-/g,` `)}),(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-2 py-0.5 rounded-full text-bambu-gray`,children:r.length})]})}),s.has(n)&&(0,G.jsx)(Vd,{className:`pt-0 space-y-2`,children:r.map(({path:n,method:r,spec:i})=>(0,G.jsx)(UGe,{path:n,method:r,spec:i,schema:t,apiKey:e},`${r}-${n}`))})]},n))})]})}var GGe=[{id:`sidecar`,labelKey:`settings.sliceEngineSidecar`,descriptionKey:`settings.sliceEngineSidecarHint`,available:!0},{id:`browser`,labelKey:`settings.sliceEngineBrowser`,descriptionKey:`settings.sliceEngineBrowserHint`,available:!1}];function U8(){return GGe.filter(e=>e.available)}function KGe(){return U8().length>1}function W8(e){return U8().find(t=>t.id===e)?.id??`sidecar`}var qGe=[`general`,`plugs`,`sensors`,`notifications`,`queue`,`filament`,`network`,`apikeys`,`virtual-printer`,`spoolbuddy`,`failure-detection`,`users`,`backup`];V8({labelKey:`settings.general`,tab:`general`,keywords:`language date time format printer model printers cards`,anchor:`card-general`}),V8({labelKey:`settings.appearance`,tab:`general`,keywords:`theme dark light mode colors`,anchor:`card-appearance`}),V8({labelKey:`settings.archiveSettings`,tab:`general`,keywords:`archive auto save thumbnails captures`,anchor:`card-archive`}),V8({labelKey:`settings.camera`,tab:`general`,keywords:`camera external video stream`,anchor:`card-camera`}),V8({labelKey:`settings.costTracking`,tab:`general`,keywords:`currency filament cost energy kwh price`,anchor:`card-cost`}),V8({labelKey:`settings.fileManager`,tab:`general`,keywords:`file manager archive mode disk warning storage`,anchor:`card-filemanager`}),V8({labelKey:`settings.updates`,tab:`general`,keywords:`updates version firmware beta check`,anchor:`card-updates`}),V8({labelKey:`settings.dataManagement`,tab:`general`,keywords:`data reset clear logs notifications preferences`,anchor:`card-data`}),V8({labelKey:`settings.smartPlugs`,tab:`plugs`,keywords:`smart plug energy power automation tapo kasa tplink shelly`,anchor:`card-plugs`}),V8({labelKey:`haSensors.sectionTitle`,tab:`sensors`,keywords:`home assistant sensor printer temperature humidity alert notify block print`,anchor:`card-ha-sensors`}),V8({labelKey:`locationHaSensors.sectionTitle`,tab:`sensors`,keywords:`home assistant sensor location storage box temperature humidity battery alert notify`,anchor:`card-location-sensors`}),V8({labelKey:`settings.providers`,tab:`notifications`,keywords:`telegram discord email notification providers webhook`,anchor:`card-providers`}),V8({labelKey:`settings.messageTemplates`,tab:`notifications`,keywords:`message templates notification text edit`,anchor:`card-templates`}),V8({labelKey:`settings.defaultPrintOptions`,labelFallback:`Default Print Options`,tab:`queue`,keywords:`print bed leveling flow calibration vibration first layer timelapse`,anchor:`card-print-options`}),V8({labelKey:`settings.tempFanPresetsTitle`,labelFallback:`Temperature & Fan Presets`,tab:`queue`,keywords:`temperature fan presets nozzle bed chamber quick buttons popover`,anchor:`card-temp-fan-presets`}),V8({labelKey:`settings.staggeredStart`,labelFallback:`Staggered Start`,tab:`queue`,keywords:`staggered batch delay start queue group`,anchor:`card-staggered`}),V8({labelKey:`settings.plateClear`,labelFallback:`Plate-Clear Confirmation`,tab:`queue`,keywords:`plate clear confirm auto queue`,anchor:`card-plate`}),V8({labelKey:`settings.concurrentUploadsTitle`,labelFallback:`Concurrent Uploads`,tab:`queue`,keywords:`concurrent parallel upload transfer ftp queue slow farm simultaneous`,anchor:`card-concurrent-uploads`}),V8({labelKey:`settings.gcodeInjection`,labelFallback:`G-code Injection`,tab:`queue`,keywords:`gcode injection start end autoprint farmloop swapmod autoclear printflow`,anchor:`card-gcode`}),V8({labelKey:`settings.slicerCard`,labelFallback:`Slicer`,tab:`queue`,keywords:`slicer orcaslicer bambustudio orca bambu api sidecar url docker preferred`,anchor:`card-slicer`}),V8({labelKey:`settings.queueDrying`,tab:`queue`,keywords:`drying presets temperature time humidity ams`,anchor:`card-drying`}),V8({labelKey:`settings.filamentChecks`,tab:`filament`,keywords:`filament check warning runout remaining`,anchor:`card-filamentchecks`}),V8({labelKey:`settings.printModal`,tab:`filament`,keywords:`print modal custom mapping`,anchor:`card-printmodal`}),V8({labelKey:`settings.amsDisplayThresholds`,tab:`filament`,keywords:`ams humidity temperature threshold history retention`,anchor:`card-amsthresholds`}),V8({labelKey:`settings.externalUrl`,tab:`network`,keywords:`external url reverse proxy public notification link`,anchor:`card-externalurl`}),V8({labelKey:`settings.ftpRetry`,tab:`network`,keywords:`ftp retry upload retries backoff`,anchor:`card-ftpretry`}),V8({labelKey:`settings.homeAssistant`,tab:`network`,keywords:`home assistant ha hass mqtt integration`,anchor:`card-ha`}),V8({labelKey:`settings.mqttPublishing`,tab:`network`,keywords:`mqtt publish broker topic`,anchor:`card-mqtt`}),V8({labelKey:`settings.prometheusMetrics`,tab:`network`,keywords:`prometheus metrics grafana monitoring bearer token`,anchor:`card-prometheus`}),V8({labelKey:`settings.createNewApiKey`,tab:`apikeys`,keywords:`api key create permission scope`,anchor:`card-createapi`}),V8({labelKey:`settings.webhookEndpoints`,tab:`apikeys`,keywords:`webhook endpoint post http`,anchor:`card-webhooks`}),V8({labelKey:`settings.apiBrowser`,tab:`apikeys`,keywords:`api browser endpoint documentation test`,anchor:`card-apibrowser`}),V8({labelKey:`cameraTokens.title`,tab:`apikeys`,keywords:`camera token long-lived home assistant frigate kiosk stream`,anchor:`card-camera-tokens`}),V8({labelKey:`settings.tabs.virtualPrinter`,tab:`virtual-printer`,keywords:`virtual printer proxy archive slicer bambustudio orcaslicer ip bind`,anchor:`card-vp`}),V8({labelKey:`settings.tabs.spoolbuddy`,tab:`spoolbuddy`,keywords:`spoolbuddy device scale nfc rfid kiosk unregister`,anchor:`card-spoolbuddy`}),V8({labelKey:`settings.currentUser`,tab:`users`,subTab:`users`,keywords:`current user profile password change`,anchor:`card-currentuser`}),V8({labelKey:`settings.users`,tab:`users`,subTab:`users`,keywords:`users accounts list`,anchor:`card-users`}),V8({labelKey:`settings.groups`,tab:`users`,subTab:`users`,keywords:`groups roles permissions administrators operators viewers`,anchor:`card-groups`}),V8({labelKey:`settings.sessionPolicy.title`,labelFallback:`Session Policy`,tab:`users`,subTab:`users`,keywords:`session timeout expiry logout remember me jwt token lifetime`,anchor:`card-session-policy`}),V8({labelKey:`settings.email.smtpSettings`,labelFallback:`SMTP Configuration`,tab:`users`,subTab:`email`,keywords:`smtp email send server port password auth starttls ssl`,anchor:`card-smtp`}),V8({labelKey:`settings.ldap.title`,labelFallback:`LDAP Authentication`,tab:`users`,subTab:`ldap`,keywords:`ldap active directory ad authentication bind dn search base group mapping`,anchor:`card-ldap`}),V8({labelKey:`settings.tabs.backup`,tab:`backup`,keywords:`backup github restore download cloud sync profiles archives`,anchor:`card-backup`}),V8({labelKey:`externalLinks.sidebarLayout`,labelFallback:`Sidebar`,tab:`general`,keywords:`sidebar layout links pages hide show external custom navigation url add`,anchor:`card-sidebar-links`}),V8({labelKey:`settings.filamentTracking`,tab:`filament`,keywords:`spoolman filament tracking inventory sync remote integration`,anchor:`card-spoolman`}),V8({labelKey:`settings.catalog.spoolCatalog`,labelFallback:`Spool Catalog`,tab:`filament`,keywords:`spool catalog entries brand material reset import export`,anchor:`card-spool-catalog`}),V8({labelKey:`settings.colorCatalog.title`,labelFallback:`Color Catalog`,tab:`filament`,keywords:`color catalog hex swatch palette sync reset`,anchor:`card-color-catalog`}),V8({labelKey:`settings.tabs.failureDetection`,labelFallback:`Failure Detection`,tab:`failure-detection`,keywords:`failure detection ai ml obico spaghetti detect monitoring`,anchor:`card-fd-ml`}),V8({labelKey:`failureDetection.perPrinterTitle`,labelFallback:`Per-Printer Settings`,tab:`failure-detection`,keywords:`failure detection per printer enable per-printer sensitivity`,anchor:`card-fd-perprinter`}),V8({labelKey:`failureDetection.statusTitle`,labelFallback:`Detection Status`,tab:`failure-detection`,keywords:`failure detection status running connection`,anchor:`card-fd-status`}),V8({labelKey:`failureDetection.historyTitle`,labelFallback:`Detection History`,tab:`failure-detection`,keywords:`failure detection history log events`,anchor:`card-fd-history`}),V8({labelKey:`settings.email.advancedAuth`,labelFallback:`Advanced Email Authentication`,tab:`users`,subTab:`email`,keywords:`email authentication advanced password reset self-service forgot`,anchor:`card-email-advanced-auth`}),V8({labelKey:`settings.email.testConnection`,labelFallback:`Test SMTP Connection`,tab:`users`,subTab:`email`,keywords:`email smtp test connection send check`,anchor:`card-email-test`}),V8({labelKey:`settings.twoFa.totpTitle`,labelFallback:`Authenticator App (TOTP)`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa totp authenticator app google authy otp`,anchor:`card-2fa-totp`}),V8({labelKey:`settings.twoFa.emailOtpTitle`,labelFallback:`Email One-Time Codes`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa email otp one time code`,anchor:`card-2fa-emailotp`}),V8({labelKey:`settings.twoFa.linkedAccounts`,labelFallback:`Linked Accounts`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa linked accounts sso oidc provider google github`,anchor:`card-2fa-linked`}),V8({labelKey:`settings.oidc.title`,labelFallback:`Single Sign-On (OIDC)`,tab:`users`,subTab:`oidc`,keywords:`sso oidc openid single sign-on pocketid authentik keycloak google okta azure provider`,anchor:`card-oidc`}),V8({labelKey:`settings.ldap.serverConfig`,labelFallback:`LDAP Server Configuration`,tab:`users`,subTab:`ldap`,keywords:`ldap server url bind dn user search base group filter tls`,anchor:`card-ldap-server`}),V8({labelKey:`backup.githubBackup`,labelFallback:`GitHub Backup`,tab:`backup`,keywords:`github backup cloud remote sync profiles token`,anchor:`card-backup-github`}),V8({labelKey:`backup.history`,labelFallback:`Backup History`,tab:`backup`,keywords:`backup history log runs github commits`,anchor:`card-backup-history`}),V8({labelKey:`backup.localBackup`,labelFallback:`Local Backup`,tab:`backup`,keywords:`local backup download zip manual export`,anchor:`card-backup-local`}),V8({labelKey:`backup.scheduledBackup`,labelFallback:`Scheduled Backups`,tab:`backup`,keywords:`scheduled backup automatic hourly daily weekly retention local path`,anchor:`card-backup-scheduled`});var G8=20,JGe={database:`bg-blue-600`,library_files:`bg-green-500`,library_thumbnails:`bg-teal-500`,library_other:`bg-emerald-700`,archive_timelapses:`bg-red-500`,archive_thumbnails:`bg-amber-500`,archive_files:`bg-sky-500`,virtual_printer_uploads:`bg-purple-500`,virtual_printer_upload_cache:`bg-fuchsia-500`,virtual_printer_certs:`bg-violet-500`,virtual_printer_other:`bg-purple-700`,downloads:`bg-cyan-500`,plate_calibration:`bg-lime-500`,logs:`bg-orange-500`,other_data:`bg-yellow-500`},K8=[`bg-blue-500`,`bg-green-500`,`bg-yellow-500`,`bg-red-500`,`bg-orange-500`,`bg-teal-500`,`bg-cyan-500`,`bg-purple-500`],q8=(e,t)=>JGe[e]||K8[t%K8.length],J8={temperature:0,humidity:1,battery:2};function YGe(e,t){return e?PT(e,t,{decimals:2}):null}function XGe(){let e=co(),t=or(),[n,r]=Ri(),{t:i,i18n:a}=U(),{showToast:o}=qd(),{authEnabled:s,user:c,isAdmin:l,refreshAuth:u,hasPermission:d}=Nd(),{mode:f,resolvedMode:p,darkStyle:m,darkBackground:h,darkAccent:g,lightStyle:_,lightBackground:v,lightAccent:b,setMode:x,setDarkStyle:S,setDarkBackground:C,setDarkAccent:w,setLightStyle:T,setLightBackground:E,setLightAccent:D,progressInTitle:O,setProgressInTitle:k}=Id(),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)({}),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(null),[ie,ae]=(0,y.useState)(!1),{colorize:oe,aboveColor:se,belowColor:H,optimalColor:ce}=L6(),[le,ue]=(0,y.useState)(null),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(null),[_e,ve]=(0,y.useState)(``),[ye,be]=(0,y.useState)(``),[xe,Se]=(0,y.useState)(!1),[Ce,we]=(0,y.useState)(!1),[Te,Ee]=(0,y.useState)(!1),[De,Oe]=(0,y.useState)(hm()),ke=n.get(`tab`),Ae=ke===`email`,[je,Me]=(0,y.useState)(Ae?`users`:ke&&qGe.includes(ke)?ke:`general`),[Ne,Pe]=(0,y.useState)(Ae?`email`:`users`),[Fe,Ie]=(0,y.useState)(ke===`queue`&&n.get(`sub`)===`pipelines`?`pipelines`:`dispatch`),Le=e=>{Me(e),e===`users`&&Pe(`users`),e===`queue`&&(Ie(`dispatch`),n.delete(`sub`)),e===`general`?n.delete(`tab`):n.set(`tab`,e),r(n,{replace:!0})},Re=e=>{Ie(e),e===`pipelines`?n.set(`sub`,`pipelines`):n.delete(`sub`),r(n,{replace:!0})},[ze,Be]=(0,y.useState)(!1),[Ve,He]=(0,y.useState)(``),[Ue,We]=(0,y.useState)({can_queue:!0,can_control_printer:!1,can_read_status:!0,can_manage_library:!0,can_manage_inventory:!0,can_manage_maintenance:!0,can_manage_archives:!0,can_manage_projects:!0,can_access_cloud:!1,can_update_energy_cost:!1}),[Ge,Ke]=(0,y.useState)(null),[qe,Je]=(0,y.useState)(!1),[Ye,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(``),[$e,et]=(0,y.useState)(!1),[tt,nt]=(0,y.useState)(!1),[rt,it]=(0,y.useState)(null),[at,ot]=(0,y.useState)(!1),[st,ct]=(0,y.useState)(!1),[lt,ut]=(0,y.useState)(!1),[dt,ft]=(0,y.useState)({currentPassword:``,newPassword:``,confirmPassword:``}),[pt,mt]=(0,y.useState)(!1),[ht,gt]=(0,y.useState)(!1),[_t,vt]=(0,y.useState)(!1),[yt,bt]=(0,y.useState)(`local`),[xt,St]=(0,y.useState)(!1),[Ct,wt]=(0,y.useState)(null),[Tt,Et]=(0,y.useState)(null),[Dt,Ot]=(0,y.useState)(null),[At,jt]=(0,y.useState)(!1),[Mt,Nt]=(0,y.useState)({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),[Pt,Ft]=(0,y.useState)(null),[It,Lt]=(0,y.useState)(null),[Rt,zt]=(0,y.useState)(!1),[Bt,Vt]=(0,y.useState)({}),[Ht,Ut]=(0,y.useState)({}),Wt=e=>{Oe(e),hee(e),o(i(`settings.toast.settingsSaved`),`success`)},{data:Gt,isLoading:Kt}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:qt,isLoading:Jt,isFetching:Yt}=K({queryKey:[`storage-usage`],queryFn:()=>Z.getStorageUsage(),enabled:je===`general`,staleTime:1/0,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1}),Xt=async()=>{gt(!0);try{let t=await Z.getStorageUsage({refresh:!0});e.setQueryData([`storage-usage`],t)}catch(e){o(e instanceof Error?e.message:`Failed to refresh storage usage`,`error`)}finally{gt(!1)}},{data:Zt,isLoading:Qt}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:$t,isLoading:en}=K({queryKey:[`smart-plugs-energy`,Zt?.map(e=>e.id)],queryFn:async()=>{if(!Zt||Zt.length===0)return null;let e=await Promise.all(Zt.filter(e=>e.enabled).map(async e=>{try{return{plug:e,status:await Z.getSmartPlugStatus(e.id)}}catch{return{plug:e,status:null}}})),t=0,n=0,r=0,i=0,a=0;for(let{plug:o,status:s}of e){let e=o.plug_type===`mqtt`&&s?.energy?.power!=null;(s?.reachable||e)&&(a++,s?.energy?.power!=null&&(t+=s.energy.power),s?.energy?.today!=null&&(n+=s.energy.today),s?.energy?.yesterday!=null&&(r+=s.energy.yesterday),s?.energy?.total!=null&&(i+=s.energy.total))}return{totalPower:t,totalToday:n,totalYesterday:r,totalLifetime:i,reachableCount:a,totalPlugs:Zt.filter(e=>e.enabled).length}},enabled:je===`plugs`&&!!Zt&&Zt.length>0,refetchInterval:je===`plugs`?1e4:!1}),{data:tn,isLoading:W}=K({queryKey:[`notification-providers`],queryFn:Z.getNotificationProviders}),{data:nn,isLoading:rn}=K({queryKey:[`api-keys`],queryFn:Z.getAPIKeys}),an=q({mutationFn:e=>Z.createAPIKey(e),onSuccess:t=>{Ke(t.key||null),Be(!1),He(``),e.invalidateQueries({queryKey:[`api-keys`]}),o(i(`settings.toast.apiKeyCreated`))},onError:e=>{o(`Failed to create API key: ${e.message}`,`error`)}}),on=q({mutationFn:e=>Z.deleteAPIKey(e),onSuccess:(t,n)=>{e.setQueryData([`api-keys`],e=>(e??[]).filter(e=>e.id!==n)),o(i(`settings.toast.apiKeyDeleted`))},onError:e=>{o(`Failed to delete API key: ${e.message}`,`error`)}}),{data:sn}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:cn}=K({queryKey:[`haSensors`],queryFn:()=>Z.getHASensors()}),{data:ln}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),{data:un}=K({queryKey:_6,queryFn:Z.getLocations,enabled:je===`sensors`}),dn=Co({queries:(0,y.useMemo)(()=>Array.from(new Set((ln??[]).map(e=>e.location_id))),[ln]).map(e=>({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),enabled:je===`sensors`,refetchInterval:je===`sensors`?(Gt?.location_sensor_poll_interval||120)*1e3:!1}))}),fn=(0,y.useMemo)(()=>{let e=new Map;for(let t of dn)for(let n of t.data??[])e.set(n.id,n);return e},[dn]),pn=q({mutationFn:async e=>{for(let t of e)await Z.deleteLocationHASensor(t)},onSuccess:()=>{o(i(`locationHaSensors.toast.deleted`),`success`)},onError:e=>{o(e.message,`error`)},onSettled:()=>{e.invalidateQueries({queryKey:[`locationHaSensors`]}),e.invalidateQueries({queryKey:[`locationHaSensorReadings`]}),ue(null)}}),mn=zf(sn?.length??0),{data:hn,isLoading:gn}=K({queryKey:[`notification-templates`],queryFn:Z.getNotificationTemplates}),{data:_n}=K({queryKey:[`virtual-printer-settings`],queryFn:Cd.getSettings,refetchInterval:1e4}),vn=_n?.status?.running??!1,{data:yn}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:15e3}),bn=yn?.length??0,xn=yn?.some(e=>e.online)??!1,{data:Sn}=K({queryKey:[`obico-status`],queryFn:Z.getObicoStatus,refetchInterval:15e3}),Cn=!!(Sn?.is_running&&Sn?.enabled),{data:wn}=K({queryKey:[`ffmpeg-status`],queryFn:Z.checkFfmpeg}),{data:Tn}=K({queryKey:[`version`],queryFn:Z.getVersion}),En=!s||d(`library:purge`),{data:Dn}=K({queryKey:[`library-trash-settings`],queryFn:()=>Z.getLibraryTrashSettings(),enabled:En}),On=q({mutationFn:e=>Z.updateLibraryTrashSettings(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`library-trash-settings`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>o(e.message||i(`libraryAutoPurge.saveFailed`),`error`)}),kn=e=>{Dn&&On.mutate({retention_days:Dn.retention_days,auto_purge_enabled:Dn.auto_purge_enabled,auto_purge_days:Dn.auto_purge_days,auto_purge_include_never_printed:Dn.auto_purge_include_never_printed,...e})},An=!s||d(`archives:purge`),{data:jn}=K({queryKey:[`archive-purge-settings`],queryFn:()=>Z.getArchivePurgeSettings(),enabled:An}),Mn=q({mutationFn:e=>Z.updateArchivePurgeSettings(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`archive-purge-settings`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>o(e.message||i(`archiveAutoPurge.saveFailed`),`error`)}),Nn=e=>{jn&&Mn.mutate({enabled:jn.enabled,days:jn.days,purge_stats:jn.purge_stats,...e})},{data:Pn,refetch:Fn,isRefetching:In}=K({queryKey:[`updateCheck`],queryFn:Z.checkForUpdates,enabled:Gt?.check_updates!==!1,staleTime:300*1e3}),{data:Ln,refetch:Rn}=K({queryKey:[`updateStatus`],queryFn:Z.getUpdateStatus,refetchInterval:e=>{let t=e.state.data;return t?.status===`downloading`||t?.status===`installing`?1e3:!1}}),{data:zn}=K({queryKey:[`mqtt-status`],queryFn:Z.getMQTTStatus,refetchInterval:je===`network`?5e3:!1}),{data:Bn}=K({queryKey:[`github-backup-status`],queryFn:Z.getGitHubBackupStatus}),{data:Vn}=K({queryKey:[`cloud-status`],queryFn:Z.getCloudStatus}),{data:Hn={advanced_auth_enabled:!1,smtp_configured:!1,local_login_enabled:!0,autologin_provider_id:null}}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()}),{data:Un}=K({queryKey:[`ldapStatus`],queryFn:()=>Z.getLDAPStatus()}),{data:Wn}=K({queryKey:[`twoFAStatus`],queryFn:()=>Z.get2FAStatus()}),{data:Gn=[]}=K({queryKey:[`oidcProvidersAll`],queryFn:()=>Z.getOIDCProvidersAll(),enabled:l}),{data:Kn=[],isLoading:qn}=K({queryKey:[`users`],queryFn:()=>Z.getUsers(),enabled:s&&d(`users:read`)}),{data:Jn=[],isLoading:Yn}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups(),enabled:s&&d(`groups:read`)}),Xn=q({mutationFn:e=>Z.createUser(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),e.invalidateQueries({queryKey:[`groups`]}),vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`settings.toast.userCreated`))},onError:e=>{o(e.message,`error`)}}),Zn=q({mutationFn:({id:e,data:t})=>Z.updateUser(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),e.invalidateQueries({queryKey:[`groups`]}),St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`settings.toast.userUpdated`))},onError:e=>{o(e.message,`error`)}}),Qn=q({mutationFn:({id:e,deleteItems:t})=>Z.deleteUser(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),o(i(`settings.toast.userDeleted`)),Et(null),Ot(null)},onError:e=>{o(e.message,`error`)}}),$n=q({mutationFn:e=>Z.resetUserPassword({user_id:e}),onSuccess:e=>{o(e.message,`success`)},onError:e=>{o(e.message,`error`)}}),er=async e=>{Et(e),jt(!0);try{Ot(await Z.getUserItemsCount(e))}catch{Ot({archives:0,queue_items:0,library_files:0})}finally{jt(!1)}},tr=q({mutationFn:e=>Z.deleteGroup(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`groups`]}),o(i(`settings.toast.groupDeleted`))},onError:e=>{o(e.message,`error`)}}),nr=()=>{let e=Hn?.advanced_auth_enabled||!1;if(!Mt.username){o(i(`settings.toast.fillRequiredFields`),`error`);return}if(e&&!Mt.email){o(`Email is required when advanced authentication is enabled`,`error`);return}if(!e){if(!Mt.password){o(i(`settings.toast.fillRequiredFields`),`error`);return}if(Mt.password!==Mt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}let e=g6(Mt.password);if(e){o(i({tooShort:`settings.toast.passwordTooShort`,needsUppercase:`settings.toast.passwordNeedsUppercase`,needsLowercase:`settings.toast.passwordNeedsLowercase`,needsDigit:`settings.toast.passwordNeedsDigit`,needsSpecial:`settings.toast.passwordNeedsSpecial`}[e]),`error`);return}}Xn.mutate({username:Mt.username,password:e?void 0:Mt.password,email:Mt.email||void 0,role:Mt.role,group_ids:Mt.group_ids.length>0?Mt.group_ids:void 0})},rr=e=>{if(Mt.password){if(Mt.password!==Mt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}let e=g6(Mt.password);if(e){o(i({tooShort:`settings.toast.passwordTooShort`,needsUppercase:`settings.toast.passwordNeedsUppercase`,needsLowercase:`settings.toast.passwordNeedsLowercase`,needsDigit:`settings.toast.passwordNeedsDigit`,needsSpecial:`settings.toast.passwordNeedsSpecial`}[e]),`error`);return}}let t={username:Mt.username||void 0,password:Mt.password||void 0,email:Mt.email||void 0,role:Mt.role,group_ids:Mt.group_ids};t.password||delete t.password,Zn.mutate({id:e,data:t})},ir=e=>{wt(e.id),Nt({username:e.username,password:``,email:e.email||``,confirmPassword:``,role:e.role,group_ids:e.groups?.map(e=>e.id)||[]}),St(!0)},ar=e=>{Nt(t=>({...t,group_ids:t.group_ids.includes(e)?t.group_ids.filter(t=>t!==e):[...t.group_ids,e]}))},sr=q({mutationFn:Z.applyUpdate,onSuccess:e=>{e.is_ha_addon||e.is_docker||e.is_windows_installer?o(e.message,`error`):Rn()}}),[cr,lr]=(0,y.useState)(null),ur=q({mutationFn:Z.testAllNotificationProviders,onSuccess:t=>{lr(t),e.invalidateQueries({queryKey:[`notification-providers`]}),t.failed===0?o(`All ${t.tested} providers tested successfully!`,`success`):o(`${t.success}/${t.tested} providers succeeded`,t.failed>0?`error`:`success`)},onError:e=>{o(`Failed to test providers: ${e.message}`,`error`)}}),dr=q({mutationFn:async e=>{if(!Zt)return{success:0,failed:0};let t=Zt.filter(e=>e.enabled),n=await Promise.all(t.map(async t=>{try{return await Z.controlSmartPlug(t.id,e),{success:!0}}catch{return{success:!1}}}));return{success:n.filter(e=>e.success).length,failed:n.filter(e=>!e.success).length}},onSuccess:(t,n)=>{e.invalidateQueries({queryKey:[`smart-plugs`]}),e.invalidateQueries({queryKey:[`smart-plugs-energy`]}),t.failed===0?o(`All ${t.success} plugs turned ${n}`,`success`):o(`${t.success} plugs turned ${n}, ${t.failed} failed`,`error`)},onError:e=>{o(`Failed: ${e.message}`,`error`)}}),fr=(0,y.useRef)(null),pr=(0,y.useRef)(null),mr=(0,y.useRef)(!1),hr=(0,y.useRef)(!0),gr=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(Gt&&!A){let e={...Gt,external_url:Gt.external_url||window.location.origin};gr.current=Gt,j(e),setTimeout(()=>{hr.current=!1},100)}},[Gt,A]),(0,y.useEffect)(()=>{let e=gr.current;if(!Gt||!A||!e||Gt===e)return;let t={};for(let n of Object.keys(Gt))Gt[n]!==e[n]&&A[n]===e[n]&&(t[n]=Gt[n]);gr.current=Gt,Object.keys(t).length>0&&j(e=>e&&{...e,...t})},[Gt,A]);let _r=q({mutationFn:Z.updateSettings,onSuccess:t=>{gr.current=t,e.setQueryData([`settings`],t),e.invalidateQueries({queryKey:[`archiveStats`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>{o(`Failed to save: ${e.message}`,`error`)},onSettled:()=>{mr.current=!1}}),vr=q({mutationFn:({id:e,data:t})=>Z.updatePrinter(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`printers`]}),o(i(`settings.toast.cameraSettingsSaved`),`success`)},onError:e=>{o(`Failed to update printer: ${e.message}`,`error`)}});(0,y.useEffect)(()=>{let e=gr.current;if(!(hr.current||!A||!Gt||!e)&&!(s&&!d(`settings:update`))&&(e.auto_archive!==A.auto_archive||e.save_thumbnails!==A.save_thumbnails||e.capture_finish_photo!==A.capture_finish_photo||(e.finish_photo_restore_plate??!0)!==(A.finish_photo_restore_plate??!0)||e.default_filament_cost!==A.default_filament_cost||e.currency!==A.currency||e.energy_cost_per_kwh!==A.energy_cost_per_kwh||e.energy_tracking_mode!==A.energy_tracking_mode||e.check_updates!==A.check_updates||(e.check_printer_firmware??!0)!==(A.check_printer_firmware??!0)||(e.include_beta_updates??!1)!==(A.include_beta_updates??!1)||(e.local_login_enabled??!0)!==(A.local_login_enabled??!0)||e.notification_language!==A.notification_language||(e.bed_cooled_threshold??35)!==(A.bed_cooled_threshold??35)||e.ams_humidity_good!==A.ams_humidity_good||e.ams_humidity_fair!==A.ams_humidity_fair||e.ams_temp_good!==A.ams_temp_good||e.ams_temp_fair!==A.ams_temp_fair||(e.ams_temp_alarm??null)!==(A.ams_temp_alarm??null)||e.ams_history_retention_days!==A.ams_history_retention_days||e.disable_filament_warnings!==A.disable_filament_warnings||e.prefer_lowest_filament!==A.prefer_lowest_filament||(e.queue_drying_enabled??!1)!==(A.queue_drying_enabled??!1)||(e.queue_drying_block??!1)!==(A.queue_drying_block??!1)||(e.ambient_drying_enabled??!1)!==(A.ambient_drying_enabled??!1)||(e.print_drying_enabled??!1)!==(A.print_drying_enabled??!1)||(e.drying_presets??``)!==(A.drying_presets??``)||(e.ams_humidity_thresholds??``)!==(A.ams_humidity_thresholds??``)||e.per_printer_mapping_expanded!==A.per_printer_mapping_expanded||e.date_format!==A.date_format||e.time_format!==A.time_format||e.default_printer_id!==A.default_printer_id||e.ftp_retry_enabled!==A.ftp_retry_enabled||e.ftp_retry_count!==A.ftp_retry_count||e.ftp_retry_delay!==A.ftp_retry_delay||e.ftp_timeout!==A.ftp_timeout||e.mqtt_enabled!==A.mqtt_enabled||e.mqtt_broker!==A.mqtt_broker||e.mqtt_port!==A.mqtt_port||e.mqtt_username!==A.mqtt_username||e.mqtt_password!==A.mqtt_password||e.mqtt_topic_prefix!==A.mqtt_topic_prefix||e.mqtt_use_tls!==A.mqtt_use_tls||e.external_url!==A.external_url||e.ha_enabled!==A.ha_enabled||e.ha_url!==A.ha_url||e.ha_token!==A.ha_token||(e.library_archive_mode??`ask`)!==(A.library_archive_mode??`ask`)||Number(e.library_disk_warning_gb??5)!==Number(A.library_disk_warning_gb??5)||(e.preferred_slicer??`bambu_studio`)!==(A.preferred_slicer??`bambu_studio`)||W8(e.slice_engine)!==W8(A.slice_engine)||(e.open_in_slicer??null)!==(A.open_in_slicer??null)||(e.use_slicer_api??!1)!==(A.use_slicer_api??!1)||(e.orcaslicer_api_url??``)!==(A.orcaslicer_api_url??``)||(e.slicer_stall_timeout_minutes??15)!==(A.slicer_stall_timeout_minutes??15)||(e.bambu_studio_api_url??``)!==(A.bambu_studio_api_url??``)||e.prometheus_enabled!==A.prometheus_enabled||e.prometheus_token!==A.prometheus_token||(e.user_notifications_enabled??!0)!==(A.user_notifications_enabled??!0)||(e.default_bed_levelling??`auto`)!==(A.default_bed_levelling??`auto`)||(e.default_flow_cali??`auto`)!==(A.default_flow_cali??`auto`)||(e.default_vibration_cali??!0)!==(A.default_vibration_cali??!0)||(e.default_layer_inspect??!1)!==(A.default_layer_inspect??!1)||(e.default_timelapse??!1)!==(A.default_timelapse??!1)||(e.default_nozzle_offset_cali??`auto`)!==(A.default_nozzle_offset_cali??`auto`)||(e.stagger_group_size??2)!==(A.stagger_group_size??2)||(e.stagger_interval_minutes??5)!==(A.stagger_interval_minutes??5)||(e.require_plate_clear??!1)!==(A.require_plate_clear??!1)||(e.queue_max_concurrent_uploads??4)!==(A.queue_max_concurrent_uploads??4)||(e.preheat_enabled??!1)!==(A.preheat_enabled??!1)||(e.preheat_filament_targets??``)!==(A.preheat_filament_targets??``)||(e.preheat_max_wait_seconds??900)!==(A.preheat_max_wait_seconds??900)||(e.preheat_soak_seconds??300)!==(A.preheat_soak_seconds??300)||(e.queue_keep_bed_warm??!1)!==(A.queue_keep_bed_warm??!1)||(e.queue_keep_warm_bed_temp??90)!==(A.queue_keep_warm_bed_temp??90)||(e.queue_keep_warm_max_minutes??120)!==(A.queue_keep_warm_max_minutes??120)||(e.nozzle_temp_presets??``)!==(A.nozzle_temp_presets??``)||(e.bed_temp_presets??``)!==(A.bed_temp_presets??``)||(e.chamber_temp_presets??``)!==(A.chamber_temp_presets??``)||(e.fan_speed_presets??``)!==(A.fan_speed_presets??``)||(e.session_max_hours??24)!==(A.session_max_hours??24)||(e.billing_enabled??!1)!==(A.billing_enabled??!1)||(e.printer_kill_switch_enabled??!1)!==(A.printer_kill_switch_enabled??!1)||(e.finance_budget_reset_day??1)!==(A.finance_budget_reset_day??1)||(e.finance_budget_reset_timezone??`UTC`)!==(A.finance_budget_reset_timezone??`UTC`))&&!mr.current)return fr.current&&clearTimeout(fr.current),fr.current=setTimeout(()=>{if(mr.current)return;mr.current=!0;let e={auto_archive:A.auto_archive,save_thumbnails:A.save_thumbnails,capture_finish_photo:A.capture_finish_photo,finish_photo_restore_plate:A.finish_photo_restore_plate??!0,default_filament_cost:A.default_filament_cost,currency:A.currency,energy_cost_per_kwh:A.energy_cost_per_kwh,energy_tracking_mode:A.energy_tracking_mode,check_updates:A.check_updates,check_printer_firmware:A.check_printer_firmware,include_beta_updates:A.include_beta_updates,local_login_enabled:A.local_login_enabled,notification_language:A.notification_language,bed_cooled_threshold:A.bed_cooled_threshold,ams_humidity_good:A.ams_humidity_good,ams_humidity_fair:A.ams_humidity_fair,ams_temp_good:A.ams_temp_good,ams_temp_fair:A.ams_temp_fair,ams_temp_alarm:A.ams_temp_alarm??null,ams_history_retention_days:A.ams_history_retention_days,disable_filament_warnings:A.disable_filament_warnings,prefer_lowest_filament:A.prefer_lowest_filament,queue_drying_enabled:A.queue_drying_enabled,queue_drying_block:A.queue_drying_block,ambient_drying_enabled:A.ambient_drying_enabled,print_drying_enabled:A.print_drying_enabled,drying_presets:A.drying_presets,ams_humidity_thresholds:A.ams_humidity_thresholds,per_printer_mapping_expanded:A.per_printer_mapping_expanded,date_format:A.date_format,time_format:A.time_format,default_printer_id:A.default_printer_id,ftp_retry_enabled:A.ftp_retry_enabled,ftp_retry_count:A.ftp_retry_count,ftp_retry_delay:A.ftp_retry_delay,ftp_timeout:A.ftp_timeout,mqtt_enabled:A.mqtt_enabled,mqtt_broker:A.mqtt_broker,mqtt_port:A.mqtt_port,mqtt_username:A.mqtt_username,mqtt_password:A.mqtt_password,mqtt_topic_prefix:A.mqtt_topic_prefix,mqtt_use_tls:A.mqtt_use_tls,external_url:A.external_url,ha_enabled:A.ha_enabled,ha_url:A.ha_url,ha_token:A.ha_token,library_archive_mode:A.library_archive_mode,library_disk_warning_gb:A.library_disk_warning_gb,preferred_slicer:A.preferred_slicer,slice_engine:A.slice_engine,open_in_slicer:A.open_in_slicer,use_slicer_api:A.use_slicer_api,orcaslicer_api_url:A.orcaslicer_api_url,slicer_stall_timeout_minutes:A.slicer_stall_timeout_minutes,bambu_studio_api_url:A.bambu_studio_api_url,prometheus_enabled:A.prometheus_enabled,prometheus_token:A.prometheus_token,user_notifications_enabled:A.user_notifications_enabled,default_bed_levelling:A.default_bed_levelling,default_flow_cali:A.default_flow_cali,default_vibration_cali:A.default_vibration_cali,default_layer_inspect:A.default_layer_inspect,default_timelapse:A.default_timelapse,default_nozzle_offset_cali:A.default_nozzle_offset_cali,stagger_group_size:A.stagger_group_size,stagger_interval_minutes:A.stagger_interval_minutes,require_plate_clear:A.require_plate_clear,queue_max_concurrent_uploads:A.queue_max_concurrent_uploads,preheat_enabled:A.preheat_enabled,preheat_filament_targets:A.preheat_filament_targets,preheat_max_wait_seconds:A.preheat_max_wait_seconds,preheat_soak_seconds:A.preheat_soak_seconds,queue_keep_bed_warm:A.queue_keep_bed_warm,queue_keep_warm_bed_temp:A.queue_keep_warm_bed_temp,queue_keep_warm_max_minutes:A.queue_keep_warm_max_minutes,nozzle_temp_presets:A.nozzle_temp_presets,bed_temp_presets:A.bed_temp_presets,chamber_temp_presets:A.chamber_temp_presets,fan_speed_presets:A.fan_speed_presets,session_max_hours:A.session_max_hours,billing_enabled:A.billing_enabled,printer_kill_switch_enabled:A.printer_kill_switch_enabled,finance_budget_reset_day:A.finance_budget_reset_day,finance_budget_reset_timezone:A.finance_budget_reset_timezone};_r.mutate(e)},500),()=>{fr.current&&clearTimeout(fr.current)}},[A,Gt,_r,s,d,o,i]);let yr=(0,y.useCallback)((e,t)=>{if(s&&!d(`settings:update`)){o(i(`settings.toast.noPermissionUpdate`),`error`);return}j(n=>n?{...n,[e]:t}:null)},[s,d,o,i]),br=async(e,t,n)=>{if(!t){o(i(`settings.toast.enterCameraUrl`),`error`);return}Ut(t=>({...t,[e]:!0})),Vt(t=>({...t,[e]:null}));try{let r=await Z.testExternalCamera(e,t,n);Vt(t=>({...t,[e]:r})),r.success?o(r.coalesced?i(`settings.toast.cameraConnectedCoalesced`,{resolution:r.resolution||``}):i(`settings.toast.cameraConnected`,{resolution:r.resolution||``}),`success`):o(r.error||i(`settings.toast.connectionFailed`),`error`)}catch(t){let n=t instanceof Error?t.message:i(`settings.toast.testFailed`);Vt(t=>({...t,[e]:{success:!1,error:n}})),o(n,`error`)}finally{Ut(t=>({...t,[e]:!1}))}},[xr,Sr]=(0,y.useState)({}),Cr=(0,y.useRef)({}),wr=(0,y.useRef)(new Set),[Tr,Er]=(0,y.useState)({}),Dr=(0,y.useRef)({}),Or=(0,y.useRef)(new Set);(0,y.useEffect)(()=>{if(sn){let e={},t={};sn.forEach(n=>{n.external_camera_url&&!wr.current.has(n.id)&&(e[n.id]=n.external_camera_url,wr.current.add(n.id)),n.external_camera_snapshot_url&&!Or.current.has(n.id)&&(t[n.id]=n.external_camera_snapshot_url,Or.current.add(n.id))}),Object.keys(e).length>0&&Sr(t=>({...t,...e})),Object.keys(t).length>0&&Er(e=>({...e,...t}))}},[sn]);let kr=(e,t)=>{Sr(n=>({...n,[e]:t})),Cr.current[e]&&clearTimeout(Cr.current[e]),Cr.current[e]=setTimeout(()=>{vr.mutate({id:e,data:{external_camera_url:t||null}})},800)},Ar=(e,t)=>{Er(n=>({...n,[e]:t})),Dr.current[e]&&clearTimeout(Dr.current[e]),Dr.current[e]=setTimeout(()=>{vr.mutate({id:e,data:{external_camera_snapshot_url:t||null}})},800)},jr=(e,t)=>{let n={};t.type!==void 0&&(n.external_camera_type=t.type||null),t.enabled!==void 0&&(n.external_camera_enabled=t.enabled),t.rotation!==void 0&&(n.camera_rotation=t.rotation),vr.mutate({id:e,data:n})};if(Kt||!A)return(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});let Mr=zGe().map(e=>({...e,label:i(e.labelKey,e.labelFallback??e.labelKey)})),Nr=ye.trim().toLowerCase(),Pr=Nr?Mr.filter(e=>e.label.toLowerCase().includes(Nr)||e.keywords.toLowerCase().includes(Nr)).slice(0,8):[],Fr=e=>{Le(e.tab),e.subTab&&Pe(e.subTab),be(``),setTimeout(()=>{let t=document.getElementById(e.anchor);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),t.classList.add(`ring-2`,`ring-bambu-green`),setTimeout(()=>t.classList.remove(`ring-2`,`ring-bambu-green`),1500))},50)},Ir=(A?.docker_compose_dir??``).trim()||(Pn?.compose_dir_detected??``),Lr=Ir?`cd ${/\s/.test(Ir)?`"${Ir}"`:Ir} && docker compose pull && docker compose up -d`:`docker compose pull && docker compose up -d`;return(0,G.jsx)(Rd,{density:`dense`,children:(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(ru,{className:`w-7 h-7 text-bambu-green`}),i(`settings.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i(`settings.configureBambuddy`)})]}),(0,G.jsxs)(`div`,{className:`relative sm:w-72`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:ye,onChange:e=>be(e.target.value),placeholder:i(`settings.searchPlaceholder`,`Search settings…`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),ye&&(0,G.jsx)(`button`,{onClick:()=>be(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-bambu-gray hover:text-white`,"aria-label":`Clear`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})}),Pr.length>0&&(0,G.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-30 overflow-hidden`,children:Pr.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Fr(e),className:`w-full px-3 py-2 text-left hover:bg-bambu-dark-tertiary transition-colors border-b border-bambu-dark-tertiary last:border-b-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.label}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[i(`settings.tabs.${e.tab===`virtual-printer`?`virtualPrinter`:e.tab===`failure-detection`?`failureDetection`:e.tab}`),e.subTab?` › ${i(`settings.tabs.${e.subTab}`,e.subTab)}`:``]})]},e.anchor))}),Nr&&Pr.length===0&&(0,G.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-30 p-3`,children:(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray italic`,children:i(`settings.noSearchResults`,`No matching settings.`)})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`nav`,{className:`flex flex-wrap gap-1 border-b border-bambu-dark-tertiary lg:flex-col lg:flex-nowrap lg:gap-0 lg:border-b-0 lg:border-r lg:w-48 lg:flex-shrink-0 lg:self-start lg:sticky lg:top-4`,children:[(0,G.jsxs)(`button`,{onClick:()=>Le(`general`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`general`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(ru,{className:`w-4 h-4`}),i(`settings.tabs.general`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`plugs`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`plugs`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4`}),i(`settings.tabs.smartPlugs`),Zt&&Zt.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:Zt.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`sensors`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`sensors`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Tc,{className:`w-4 h-4`}),i(`settings.tabs.sensors`),(cn?.length??0)+(ln?.length??0)>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:(cn?.length??0)+(ln?.length??0)})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`notifications`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`notifications`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(qo,{className:`w-4 h-4`}),i(`settings.tabs.notifications`),tn&&tn.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:tn.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`queue`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`queue`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),i(`settings.tabs.queue`,`Workflow`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`filament`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`filament`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ws,{className:`w-4 h-4`}),i(`settings.tabs.filament`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`network`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`network`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4`}),i(`settings.tabs.network`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${zn?.enabled?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`apikeys`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`apikeys`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.tabs.apiKeys`),nn&&nn.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:nn.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`virtual-printer`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`virtual-printer`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),i(`settings.tabs.virtualPrinter`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${vn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`spoolbuddy`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`spoolbuddy`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Jl,{className:`w-4 h-4`}),i(`settings.tabs.spoolbuddy`),bn>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:bn}),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${xn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`failure-detection`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`failure-detection`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Yl,{className:`w-4 h-4`}),i(`settings.tabs.failureDetection`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Cn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`users`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`users`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),i(`settings.tabs.users`),s&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`backup`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`backup`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Gs,{className:`w-4 h-4`}),i(`settings.tabs.backup`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Vn?.is_authenticated&&Bn?.configured&&Bn?.enabled||Gt?.local_backup_enabled?`bg-green-400`:`bg-gray-500`}`})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[je===`general`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`a`,{href:Bf(mn,`app-settings`),target:`_blank`,rel:`noopener noreferrer`,className:`group block mb-4 lg:mb-6 rounded-xl border border-bambu-green/30 bg-gradient-to-br from-bambu-green/15 via-bambu-green/5 to-transparent hover:border-bambu-green/50 hover:from-bambu-green/20 transition-colors`,children:(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row items-start md:items-center gap-4 p-4 md:p-5`,children:[(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-bambu-green/20 text-bambu-green flex-shrink-0`,children:mn===`business`?(0,G.jsx)(Qo,{className:`w-6 h-6`}):(0,G.jsx)(Rc,{className:`w-6 h-6`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-base font-semibold text-white`,children:mn===`business`?i(`sponsors.businessTitle`,`Bambuddy for business`):i(`sponsors.sectionTitle`,`Independent & community-funded`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-0.5`,children:mn===`business`?i(`sponsors.businessTagline`,`You're running {{count}} printers. Priority support, commercial licensing and invoicing are available for teams and print farms.`,{count:sn?.length??0}):i(`sponsors.tagline`,`Bambuddy is free and stays that way because people choose to support it. No VC, no cloud lock-in.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 rounded-lg bg-bambu-green/20 text-bambu-green group-hover:bg-bambu-green/30 text-sm font-medium whitespace-nowrap self-start md:self-auto`,children:[mn===`business`?i(`sponsors.businessCta`,`Bambuddy for business`):i(`sponsors.viewSupporters`,`View supporters`),(0,G.jsx)(rc,{className:`w-4 h-4`})]})]})}),(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-general`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.general`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4 inline mr-1`}),i(`settings.language`)]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:a.language,onChange:e=>{let t=e.target.value;if(s&&!d(`settings:update`)){o(i(`settings.toast.noPermissionUpdate`),`error`);return}a.changeLanguage(t),_r.mutate({language:t})},className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:kt.map(e=>(0,G.jsxs)(`option`,{value:e.code,children:[e.nativeName,` (`,e.name,`)`]},e.code))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.languageDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultView`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:De,onChange:e=>Wt(e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:mm.map(e=>(0,G.jsx)(`option`,{value:e.to,children:i(e.labelKey)},e.id))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.defaultViewDescription`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.dateFormat`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.date_format||`system`,onChange:e=>yr(`date_format`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`system`,children:i(`settings.systemDefault`)}),(0,G.jsx)(`option`,{value:`us`,children:i(`settings.dateFormatUs`)}),(0,G.jsx)(`option`,{value:`eu`,children:i(`settings.dateFormatEu`)}),(0,G.jsx)(`option`,{value:`iso`,children:i(`settings.dateFormatIso`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.timeFormat`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.time_format||`system`,onChange:e=>yr(`time_format`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`system`,children:i(`settings.systemDefault`)}),(0,G.jsx)(`option`,{value:`12h`,children:i(`settings.timeFormat12`)}),(0,G.jsx)(`option`,{value:`24h`,children:i(`settings.timeFormat24`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultPrinter`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.default_printer_id??``,onChange:e=>yr(`default_printer_id`,e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:``,children:i(`settings.noDefaultPrinter`)}),sn?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.defaultPrinterDescription`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-appearance`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(wl,{className:`w-5 h-5`}),i(`settings.appearance`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray`,children:[i(`settings.theme`),`:`]}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[{id:`dark`,label:i(`settings.themeDark`)},{id:`light`,label:i(`settings.themeLight`)},{id:`system`,label:i(`settings.themeSystem`)}].map(({id:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{x(e),o(i(`settings.toast.settingsSaved`),`success`)},className:`px-3 py-1 text-xs rounded-lg border transition-colors ${f===e?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-gray-300 dark:border-bambu-dark-tertiary text-gray-500 dark:text-bambu-gray hover:text-gray-900 dark:hover:text-white cursor-pointer`}`,children:t},e))})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-4 rounded-lg border ${p===`dark`?`border-bambu-green bg-bambu-green/5`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[i(`settings.darkMode`),p===`dark`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.active`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.background`)}),(0,G.jsxs)(`select`,{value:h,onChange:e=>{C(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`neutral`,children:i(`settings.bgNeutral`)}),(0,G.jsx)(`option`,{value:`warm`,children:i(`settings.bgWarm`)}),(0,G.jsx)(`option`,{value:`cool`,children:i(`settings.bgCool`)}),(0,G.jsx)(`option`,{value:`oled`,children:i(`settings.bgOled`)}),(0,G.jsx)(`option`,{value:`slate`,children:i(`settings.bgSlate`)}),(0,G.jsx)(`option`,{value:`forest`,children:i(`settings.bgForest`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.accent`)}),(0,G.jsxs)(`select`,{value:g,onChange:e=>{w(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`green`,children:i(`settings.accentGreen`)}),(0,G.jsx)(`option`,{value:`teal`,children:i(`settings.accentTeal`)}),(0,G.jsx)(`option`,{value:`blue`,children:i(`settings.accentBlue`)}),(0,G.jsx)(`option`,{value:`orange`,children:i(`settings.accentOrange`)}),(0,G.jsx)(`option`,{value:`purple`,children:i(`settings.accentPurple`)}),(0,G.jsx)(`option`,{value:`red`,children:i(`settings.accentRed`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.style`)}),(0,G.jsxs)(`select`,{value:m,onChange:e=>{S(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`classic`,children:i(`settings.styleClassic`)}),(0,G.jsx)(`option`,{value:`glow`,children:i(`settings.styleGlow`)}),(0,G.jsx)(`option`,{value:`vibrant`,children:i(`settings.styleVibrant`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-4 rounded-lg border ${p===`light`?`border-bambu-green bg-bambu-green/5`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[i(`settings.lightMode`),p===`light`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.active`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.background`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>{E(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`neutral`,children:i(`settings.bgNeutral`)}),(0,G.jsx)(`option`,{value:`warm`,children:i(`settings.bgWarm`)}),(0,G.jsx)(`option`,{value:`cool`,children:i(`settings.bgCool`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.accent`)}),(0,G.jsxs)(`select`,{value:b,onChange:e=>{D(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`green`,children:i(`settings.accentGreen`)}),(0,G.jsx)(`option`,{value:`teal`,children:i(`settings.accentTeal`)}),(0,G.jsx)(`option`,{value:`blue`,children:i(`settings.accentBlue`)}),(0,G.jsx)(`option`,{value:`orange`,children:i(`settings.accentOrange`)}),(0,G.jsx)(`option`,{value:`purple`,children:i(`settings.accentPurple`)}),(0,G.jsx)(`option`,{value:`red`,children:i(`settings.accentRed`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.style`)}),(0,G.jsxs)(`select`,{value:_,onChange:e=>{T(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`classic`,children:i(`settings.styleClassic`)}),(0,G.jsx)(`option`,{value:`glow`,children:i(`settings.styleGlow`)}),(0,G.jsx)(`option`,{value:`vibrant`,children:i(`settings.styleVibrant`)})]})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.themeToggleHint`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.progressInTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.progressInTitleDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>{k(e.target.checked),o(i(`settings.toast.settingsSaved`),`success`)},className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-archive`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.archiveSettings`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.autoArchivePrints`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoArchiveDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.auto_archive,onChange:e=>yr(`auto_archive`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.saveThumbnails`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.saveThumbnailsDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.save_thumbnails,onChange:e=>yr(`save_thumbnails`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.captureFinishPhoto`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.captureFinishPhotoDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.capture_finish_photo,onChange:e=>yr(`capture_finish_photo`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.capture_finish_photo&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.finishPhotoRestorePlate`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.finishPhotoRestorePlateDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.finish_photo_restore_plate??!0,onChange:e=>yr(`finish_photo_restore_plate`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.capture_finish_photo&&wn&&!wn.installed&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`text-yellow-500 font-medium`,children:i(`settings.ffmpegNotInstalled`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i(`settings.ffmpegRequired`)})]})]}),An&&jn&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3 mt-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`archiveAutoPurge.enableLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`archiveAutoPurge.enableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:jn.enabled,onChange:e=>Nn({enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`archiveAutoPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:7,max:3650,disabled:!jn.enabled,value:jn.days,onChange:e=>Nn({days:Math.max(7,Math.min(3650,parseInt(e.target.value||`0`,10)||0))}),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`archiveAutoPurge.days`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`archiveAutoPurge.ageDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,disabled:!jn.enabled,checked:jn.purge_stats,onChange:e=>Nn({purge_stats:e.target.checked}),className:`mt-0.5 shrink-0 disabled:opacity-50`}),(0,G.jsxs)(`span`,{className:`text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white block`,children:i(`archiveAutoPurge.purgeStatsLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray block mt-0.5`,children:i(`archiveAutoPurge.purgeStatsDescription`)})]})]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-md`,children:[(0,G.jsxs)(zd,{id:`card-camera`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Gu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.camera`)]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-2`,children:i(`settings.externalCameras`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:i(`settings.externalCamerasDescription`)}),sn&&sn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:sn.map(e=>(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium text-sm`,children:e.name}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.external_camera_enabled,onChange:t=>jr(e.id,{enabled:t.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.external_camera_enabled&&(0,G.jsxs)(`div`,{className:`space-y-2 mt-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:e.external_camera_type===`usb`?i(`settings.cameraPlaceholderUsb`):i(`settings.cameraPlaceholderUrl`),value:xr[e.id]??e.external_camera_url??``,onChange:t=>kr(e.id,t.target.value),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`select`,{value:e.external_camera_type||`mjpeg`,onChange:t=>jr(e.id,{type:t.target.value}),className:`flex-1 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`mjpeg`,children:i(`settings.cameraTypeMjpeg`)}),(0,G.jsx)(`option`,{value:`rtsp`,children:i(`settings.cameraTypeRtsp`)}),(0,G.jsx)(`option`,{value:`snapshot`,children:i(`settings.cameraTypeSnapshot`)}),(0,G.jsx)(`option`,{value:`usb`,children:i(`settings.cameraTypeUsb`)})]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>br(e.id,xr[e.id]??e.external_camera_url??``,e.external_camera_type||`mjpeg`),disabled:Ht[e.id]||!(xr[e.id]??e.external_camera_url),children:Ht[e.id]?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`settings.test`)})]}),Bt[e.id]&&(0,G.jsx)(`div`,{className:`text-xs flex items-center gap-1 ${Bt[e.id]?.success?`text-green-500`:`text-red-500`}`,children:Bt[e.id]?.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-3 h-3`}),i(`settings.connected`),Bt[e.id]?.resolution&&` (${Bt[e.id]?.resolution})`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ds,{className:`w-3 h-3`}),Bt[e.id]?.error||i(`settings.toast.connectionFailed`)]})}),(e.external_camera_type===`mjpeg`||e.external_camera_type===`rtsp`||e.external_camera_type===`usb`)&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:i(`settings.cameraSnapshotUrl`,`Snapshot URL (optional)`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:i(`settings.cameraSnapshotUrlPlaceholder`,`http://192.168.1.61:1984/api/frame.jpeg?src=printer`),value:Tr[e.id]??e.external_camera_snapshot_url??``,onChange:t=>Ar(e.id,t.target.value),className:`flex-1 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>br(e.id,Tr[e.id]??e.external_camera_snapshot_url??``,`snapshot`),disabled:Ht[e.id]||!(Tr[e.id]??e.external_camera_snapshot_url),children:Ht[e.id]?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`settings.test`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray opacity-75`,children:i(`settings.cameraSnapshotUrlHelp`,`Single-frame URL used for notification thumbnails, finish photos, timelapse and plate detection. Leave blank to capture from the live stream above. Useful for go2rtc (/api/frame.jpeg) and IP cameras with a dedicated snapshot endpoint.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:i(`settings.cameraRotation`)}),(0,G.jsxs)(`select`,{value:e.camera_rotation||0,onChange:t=>jr(e.id,{rotation:parseInt(t.target.value)}),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:0,children:`0°`}),(0,G.jsx)(`option`,{value:90,children:`90°`}),(0,G.jsx)(`option`,{value:180,children:`180°`}),(0,G.jsx)(`option`,{value:270,children:`270°`})]})]})]})]},e.id))}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray italic`,children:i(`settings.noPrintersConfigured`)})]})})]}),(0,G.jsxs)(zd,{id:`card-cost`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.costTracking`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.currency`)}),(0,G.jsx)(`select`,{value:A.currency,onChange:e=>yr(`currency`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:Rf.map(e=>(0,G.jsx)(`option`,{value:e.code,children:e.label},e.code))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultFilamentCost`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:Lf(A.currency)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:A.default_filament_cost,onChange:e=>yr(`default_filament_cost`,parseFloat(e.target.value)||0),style:{paddingLeft:`${Math.max(2,Lf(A.currency).length*.6+1)}rem`},className:`w-full pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.electricityCost`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:Lf(A.currency)}),(0,G.jsx)(`input`,{type:`number`,step:`0.001`,min:`0`,value:A.energy_cost_per_kwh,onChange:e=>yr(`energy_cost_per_kwh`,parseFloat(e.target.value)||0),style:{paddingLeft:`${Math.max(2,Lf(A.currency).length*.6+1)}rem`},className:`w-full pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.energyDisplayMode`)}),(0,G.jsxs)(`select`,{value:A.energy_tracking_mode||`total`,onChange:e=>yr(`energy_tracking_mode`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`print`,children:i(`settings.printsOnly`)}),(0,G.jsx)(`option`,{value:`total`,children:i(`settings.totalConsumption`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:A.energy_tracking_mode===`print`?i(`settings.energyModePrintDescription`):i(`settings.energyModeTotalDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.billingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.billingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.billing_enabled??!1,onChange:e=>yr(`billing_enabled`,e.target.checked),className:`peer sr-only`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary rounded-full peer-checked:bg-bambu-green peer-checked:after:translate-x-5 after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border after:rounded-full after:h-5 after:w-5 after:transition-all`})]})]}),A.billing_enabled&&(0,G.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-4 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-4 py-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.printerKillSwitch`,`Unauthorized print kill switch`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.printerKillSwitchDescription`,`Immediately stop prints that start without authorization.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.printer_kill_switch_enabled??!1,onChange:e=>yr(`printer_kill_switch_enabled`,e.target.checked),className:`peer sr-only`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary rounded-full peer-checked:bg-bambu-green peer-checked:after:translate-x-5 after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border after:rounded-full after:h-5 after:w-5 after:transition-all`})]})]}),A.billing_enabled&&(0,G.jsxs)(`div`,{className:`mt-4 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-4`,children:[(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsxs)(`h4`,{className:`text-base font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-bambu-green`}),i(`settings.financeBudgetReset`,`Finance Monthly Budget Reset`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.financeBudgetResetDay`,`Reset Day`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:31,value:A.finance_budget_reset_day??1,onChange:e=>yr(`finance_budget_reset_day`,Math.max(1,Math.min(31,parseInt(e.target.value,10)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.financeBudgetResetDayHelp`,`For short months, reset uses the last day of the month.`)})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.financeBudgetResetTimezone`,`Reset timezone`)}),(0,G.jsxs)(`select`,{value:A.finance_budget_reset_timezone??`UTC`,onChange:e=>yr(`finance_budget_reset_timezone`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`UTC`,children:`UTC`}),(0,G.jsx)(`option`,{value:`Europe/Berlin`,children:`Europe/Berlin`}),(0,G.jsx)(`option`,{value:`Europe/Vienna`,children:`Europe/Vienna`}),(0,G.jsx)(`option`,{value:`Europe/Zurich`,children:`Europe/Zurich`}),(0,G.jsx)(`option`,{value:`America/New_York`,children:`America/New_York`}),(0,G.jsx)(`option`,{value:`America/Chicago`,children:`America/Chicago`}),(0,G.jsx)(`option`,{value:`America/Denver`,children:`America/Denver`}),(0,G.jsx)(`option`,{value:`America/Los_Angeles`,children:`America/Los_Angeles`}),(0,G.jsx)(`option`,{value:`Asia/Tokyo`,children:`Asia/Tokyo`}),(0,G.jsx)(`option`,{value:`Asia/Singapore`,children:`Asia/Singapore`}),(0,G.jsx)(`option`,{value:`Australia/Sydney`,children:`Australia/Sydney`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.financeBudgetResetTimezoneHelp`,`Budget window start is calculated in this timezone.`)})]})]})]}),A.billing_enabled&&l&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>we(!0),disabled:Te,children:Te?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),i(`settings.rebuildLedgerInProgress`,`Starting...`)]}):i(`settings.rebuildLedger`,`Rebuild wallet ledger`)}),Ce&&(0,G.jsx)(of,{title:i(`settings.rebuildLedgerConfirmTitle`,`Rebuild wallet ledger?`),message:i(`settings.rebuildLedgerConfirmMessage`,`This will rebuild the wallet ledger to repair historical balance values. Run this only if you know what you are doing.`),confirmText:i(`common.run`,`Run`),cancelText:i(`common.cancel`,`Cancel`),isLoading:Te,loadingText:i(`common.running`,`Running`),variant:`warning`,onCancel:()=>we(!1),onConfirm:async()=>{Ee(!0);try{await Z.rebuildBalanceLedger(),o(i(`settings.rebuildLedgerStarted`,`Ledger rebuild started`),`success`),we(!1)}catch(e){o(e.message||`Failed to start ledger rebuild`,`error`)}finally{Ee(!1)}}})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-filemanager`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.fileManager`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.createArchiveEntry`)}),(0,G.jsxs)(`select`,{value:A.library_archive_mode??`ask`,onChange:e=>yr(`library_archive_mode`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`always`,children:i(`settings.archiveMode.always`)}),(0,G.jsx)(`option`,{value:`never`,children:i(`settings.archiveMode.never`)}),(0,G.jsx)(`option`,{value:`ask`,children:i(`settings.archiveMode.ask`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.createArchiveEntryDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.lowDiskSpaceWarning`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0.5`,max:`100`,step:`0.5`,value:A.library_disk_warning_gb??5,onChange:e=>yr(`library_disk_warning_gb`,parseFloat(e.target.value)||5),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`GB`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.lowDiskSpaceDescription`)})]}),En&&Dn&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3 mt-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`libraryAutoPurge.enableLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`libraryAutoPurge.enableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Dn.auto_purge_enabled,onChange:e=>kn({auto_purge_enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`libraryAutoPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:7,max:3650,disabled:!Dn.auto_purge_enabled,value:Dn.auto_purge_days,onChange:e=>kn({auto_purge_days:Math.max(7,Math.min(3650,parseInt(e.target.value||`0`,10)||0))}),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`libraryAutoPurge.days`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`libraryAutoPurge.ageDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-white cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,disabled:!Dn.auto_purge_enabled,checked:Dn.auto_purge_include_never_printed,onChange:e=>kn({auto_purge_include_never_printed:e.target.checked}),className:`rounded border-gray-300 disabled:opacity-50`}),i(`libraryAutoPurge.includeNeverPrinted`)]})]})]})]}),(0,G.jsxs)(zd,{id:`card-data`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.dataManagement`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.clearNotificationLogs`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.clearNotificationLogsDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>et(!0),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`common.clear`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.resetUiPreferences`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.resetUiPreferencesDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>nt(!0),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`settings.reset`)]})]}),(0,G.jsxs)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.storageUsage`,`Storage Usage`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.storageUsageDescription`,`Breakdown of data usage by category`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:Xt,disabled:Yt||ht,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${Yt||ht?`animate-spin`:``}`}),i(`common.refresh`,`Refresh`)]})]}),(0,G.jsx)(`div`,{className:`mt-3`,children:Jt?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`common.loading`,`Loading`)]}):qt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-full h-3 bg-bambu-dark rounded-full overflow-hidden flex`,children:qt.categories.filter(e=>e.bytes>0).map((e,t)=>(0,G.jsx)(`div`,{className:`${q8(e.key,t)} h-full`,style:{width:`${e.percent_of_total}%`},title:`${e.label}: ${e.formatted}`},e.key))}),(0,G.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-3`,children:qt.categories.filter(e=>e.bytes>0).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full ${q8(e.key,t)}`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e.label}),(0,G.jsx)(`span`,{className:`text-white`,children:e.formatted}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.percent_of_total.toFixed(1),`%)`]})]},e.key))}),(0,G.jsxs)(`div`,{className:`mt-2 text-xs text-bambu-gray`,children:[i(`settings.storageUsageTotal`,`Total`),`: `,(0,G.jsx)(`span`,{className:`text-white`,children:qt.total_formatted}),qt.scan_errors>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-amber-700 dark:text-amber-400`,children:[i(`settings.storageUsageErrors`,`Scan errors`),`: `,qt.scan_errors]})]}),qt.other_breakdown?.length>0&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.storageUsageOtherBreakdown`,`Other breakdown`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:qt.other_breakdown.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:e.label}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full border ${e.kind===`system`?`border-slate-500 text-slate-300`:`border-bambu-green text-bambu-green`}`,children:e.kind===`system`?i(`settings.storageUsageSystem`,`System`):i(`settings.storageUsageData`,`Data`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:e.formatted}),(0,G.jsxs)(`span`,{children:[`(`,e.percent_of_total.toFixed(1),`%)`]})]})]},`${e.bucket}-${e.kind}`))})]})]}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.storageUsageUnavailable`,`Storage usage data is unavailable`)})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.backupRestore`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.backupRestoreDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(`backup`),children:[(0,G.jsx)(Gs,{className:`w-4 h-4`}),i(`settings.goToBackup`)]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-sm`,children:[(0,G.jsxs)(zd,{id:`card-updates`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.updates`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider`,children:i(`settings.printerFirmware`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.checkPrinterFirmware`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.checkFirmwareDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.check_printer_firmware??!0,onChange:e=>yr(`check_printer_firmware`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider mb-4`,children:i(`settings.bambuddySoftware`)})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.checkForUpdatesLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoCheckDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.check_updates,onChange:e=>yr(`check_updates`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between ${A.check_updates?``:`opacity-50`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.includeBetaUpdates`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.includeBetaUpdatesDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.include_beta_updates??!1,onChange:e=>yr(`include_beta_updates`,e.target.checked),disabled:!A.check_updates,className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.currentVersion`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`v`,Tn?.version||`...`]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Fn(),disabled:In,children:[In?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),i(`settings.checkNow`)]})]}),Pn?.update_available?(0,G.jsxs)(`div`,{className:`mt-4 p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-bambu-green font-medium`,children:[`Update available: v`,Pn.latest_version]}),Pn.release_name&&Pn.release_name!==Pn.latest_version&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:Pn.release_name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Pn.release_notes&&(0,G.jsx)(`button`,{onClick:()=>ot(!0),className:`text-bambu-gray hover:text-white transition-colors text-sm underline`,children:i(`settings.releaseNotes`)}),Pn.release_url&&(0,G.jsx)(`a`,{href:Pn.release_url,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-gray hover:text-white transition-colors`,title:i(`settings.viewReleaseOnGitHub`),children:(0,G.jsx)(rc,{className:`w-4 h-4`})})]})]}),Ln?.status===`downloading`||Ln?.status===`installing`?(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:Ln.message})]}),(0,G.jsx)(`div`,{className:`mt-2 w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-2 rounded-full transition-all duration-300`,style:{width:`${Ln.progress}%`}})})]}):Ln?.status===`complete`?(0,G.jsx)(`div`,{className:`mt-3 p-2 bg-bambu-green/20 rounded text-sm text-bambu-green`,children:Ln.message}):Ln?.status===`error`?(0,G.jsx)(`div`,{className:`mt-3 p-2 bg-red-100 dark:bg-red-500/20 rounded text-sm text-red-700 dark:text-red-400`,children:Ln.error||Ln.message}):Pn?.is_ha_addon?(0,G.jsx)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.updateViaHomeAssistant`)})}):Pn?.is_docker?(0,G.jsxs)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:i(`settings.updateViaDocker`)}),(0,G.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,G.jsx)(`code`,{className:`flex-1 block text-xs bg-bambu-dark p-2 rounded text-bambu-green font-mono break-all select-all`,children:Lr}),(0,G.jsx)(BU,{value:Lr,titleKey:`settings.copyUpdateCommand`,copiedTitleKey:`printers.copied`,className:`ml-0 p-2 rounded hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors flex-shrink-0`,iconClassName:`w-4 h-4`})]}),(0,G.jsxs)(`label`,{className:`block mt-3`,children:[(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.composeDirectory`)}),(0,G.jsx)(`input`,{type:`text`,value:A?.docker_compose_dir??``,onChange:e=>yr(`docker_compose_dir`,e.target.value),placeholder:Pn?.compose_dir_detected||`/opt/bambuddy`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white font-mono placeholder:text-bambu-gray/60 focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mt-1`,children:i(`settings.composeDirectoryHint`)})]})]}):Pn?.update_method===`windows_installer`?(0,G.jsxs)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:i(`settings.updateViaWindowsInstaller`)}),(0,G.jsxs)(`a`,{href:Pn.installer_download_url||Pn.release_url||`https://github.com/maziggy/bambuddy/releases/tag/v${Pn.latest_version}`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center font-medium rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-bambu-dark disabled:opacity-50 bg-bambu-green hover:bg-bambu-green-light text-white focus:ring-bambu-green px-4 py-2 text-sm gap-2 min-h-[44px] md:min-h-0`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),i(`settings.downloadWindowsInstaller`,{version:Pn.latest_version})]})]}):(0,G.jsxs)(Q,{className:`mt-3`,onClick:()=>sr.mutate(),disabled:sr.isPending,children:[sr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xs,{className:`w-4 h-4`}),i(`settings.installUpdate`)]})]}):Pn?.error?(0,G.jsx)(`div`,{className:`mt-2 p-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded text-sm text-red-700 dark:text-red-400`,children:i(`settings.failedToCheckUpdates`,{error:Pn.error})}):Pn&&!Pn.update_available?(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:i(`settings.latestVersionRunning`)}):null]})]})]}),(0,G.jsx)(pGe,{})]})]})]}),je===`network`&&A&&(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 lg:max-w-xl space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-externalurl`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Ac,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.externalUrl`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.externalUrlDescription`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.bambuddyUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:A.external_url??``,onChange:e=>yr(`external_url`,e.target.value),placeholder:`http://192.168.1.100:8000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.externalUrlHint`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-ftpretry`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Hl,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.ftpRetry`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.ftpRetryDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableRetry`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoRetryDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ftp_retry_enabled??!0,onChange:e=>yr(`ftp_retry_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.ftp_retry_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.retryAttempts`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_retry_count??3,onChange:e=>yr(`ftp_retry_count`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[1,2,3,4,5,6,7,8,9,10].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.time`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.retryDelay`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_retry_delay??2,onChange:e=>yr(`ftp_retry_delay`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[1,2,3,5,10,15,20,30].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.second`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.connectionTimeout`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_timeout??30,onChange:e=>yr(`ftp_timeout`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[10,15,20,30,45,60,90,120,180,300].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.nSeconds`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.increaseForWeakWifi`)})]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 lg:max-w-xl space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-ha`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Bc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.homeAssistant`)]}),A.ha_enabled&&It&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full ${It.success?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-sm ${It.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:It.success?i(`settings.connected`):i(`settings.disconnected`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.homeAssistantFullDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableHomeAssistant`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.homeAssistantDescription`)}),A.ha_env_managed&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-1`,children:[(0,G.jsx)(nl,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.autoEnabledViaEnv`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ha_enabled??!1,onChange:e=>yr(`ha_enabled`,e.target.checked),disabled:A.ha_env_managed,className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green ${A.ha_env_managed?`opacity-60 cursor-not-allowed`:``}`})]})]}),A.ha_enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.homeAssistantUrl`),A.ha_url_from_env&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-green`,children:i(`settings.environmentManagedLabel`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,value:A.ha_url??``,onChange:e=>yr(`ha_url`,e.target.value),placeholder:`http://192.168.1.100:8123`,disabled:A.ha_url_from_env,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${A.ha_url_from_env?`opacity-60 cursor-not-allowed`:``}`}),A.ha_url_from_env&&(0,G.jsx)(nl,{className:`absolute right-3 top-2.5 w-4 h-4 text-bambu-gray`})]}),A.ha_url_from_env&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.urlFromEnvReadOnly`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.longLivedAccessToken`),A.ha_token_from_env&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-green`,children:i(`settings.environmentManagedLabel`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`password`,value:A.ha_token??``,onChange:e=>yr(`ha_token`,e.target.value),placeholder:`eyJ0eXAiOiJKV1QiLC...`,disabled:A.ha_token_from_env,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${A.ha_token_from_env?`opacity-60 cursor-not-allowed`:``}`}),A.ha_token_from_env&&(0,G.jsx)(nl,{className:`absolute right-3 top-2.5 w-4 h-4 text-bambu-gray`})]}),A.ha_token_from_env?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.tokenFromEnvReadOnly`)}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.haTokenHint`)})]}),A.ha_url&&A.ha_token&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:Rt,onClick:async()=>{zt(!0),Lt(null);try{Lt(await Z.testHAConnection(A.ha_url,A.ha_token))}catch(e){Lt({success:!1,message:null,error:e instanceof Error?e.message:i(`common.unknownError`)})}finally{zt(!1)}},children:[Rt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Qu,{className:`w-4 h-4`}),i(`settings.testConnection`)]})})]})]})]}),(0,G.jsxs)(zd,{id:`card-mqtt`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Qu,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.mqttPublishing`)]}),zn?.enabled&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full ${zn.connected?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-sm ${zn.connected?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:zn.connected?i(`settings.connected`):i(`settings.disconnected`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.mqttDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableMqtt`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.mqttEnableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.mqtt_enabled??!1,onChange:e=>yr(`mqtt_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.mqtt_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.brokerHostname`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_broker??``,onChange:e=>yr(`mqtt_broker`,e.target.value),placeholder:`mqtt.example.com or 192.168.1.100`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-end gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.port`)}),(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`65535`,value:A.mqtt_port??1883,onChange:e=>yr(`mqtt_port`,Math.min(65535,Math.max(1,parseInt(e.target.value)||1883))),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.mqtt_use_tls??!1,onChange:e=>{let t=e.target.checked;yr(`mqtt_use_tls`,t);let n=A.mqtt_port??1883;t&&n===1883?yr(`mqtt_port`,8883):!t&&n===8883&&yr(`mqtt_port`,1883)},className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]}),(0,G.jsx)(`span`,{className:`text-white text-sm`,children:i(`settings.useTls`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.usernameOptional`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_username??``,onChange:e=>yr(`mqtt_username`,e.target.value),placeholder:i(`settings.leaveEmptyForAnonymous`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.passwordOptional`)}),(0,G.jsx)(`input`,{type:`password`,value:A.mqtt_password??``,onChange:e=>yr(`mqtt_password`,e.target.value),placeholder:i(`settings.leaveEmptyForAnonymous`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.topicPrefix`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_topic_prefix??`bambuddy`,onChange:e=>yr(`mqtt_topic_prefix`,e.target.value),placeholder:`bambuddy`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.topicPrefixHint`,{prefix:A.mqtt_topic_prefix||`bambuddy`})})]}),zn&&(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${zn.connected?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:zn.connected?(0,G.jsxs)(G.Fragment,{children:[i(`settings.mqttConnectedTo`),` `,(0,G.jsxs)(`span`,{className:`text-white`,children:[zn.broker,`:`,zn.port]})]}):i(`settings.spoolmanDisconnected`)})]})})]})]})]})]}),(0,G.jsx)(`div`,{className:`flex-1 lg:max-w-md space-y-3`,children:(0,G.jsxs)(zd,{id:`card-prometheus`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Iu,{className:`w-5 h-5 text-orange-600 dark:text-orange-400`}),i(`settings.prometheusMetrics`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.prometheusEndpointDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableMetricsEndpoint`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.prometheusDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.prometheus_enabled??!1,onChange:e=>yr(`prometheus_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.prometheus_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.bearerTokenOptional`)}),(0,G.jsx)(`input`,{type:`password`,value:A.prometheus_token??``,onChange:e=>yr(`prometheus_token`,e.target.value),placeholder:i(`settings.leaveEmptyForNoAuth`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.bearerTokenHint`)})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white mb-2`,children:i(`settings.availableMetrics`)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray space-y-1`,children:[(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_printer_connected`}),` - `,i(`settings.metricsConnectionStatus`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_printer_state`}),` - `,i(`settings.metricsPrinterState`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_print_progress`}),` - `,i(`settings.metricsPrintProgress`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_bed_temp_celsius`}),` - `,i(`settings.metricsBedTemp`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_nozzle_temp_celsius`}),` - `,i(`settings.metricsNozzleTemp`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_prints_total`}),` - `,i(`settings.metricsPrintsTotal`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray/70 italic`,children:i(`settings.metricsMore`)})]})]})]})]})]})})]}),It&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-md w-full mx-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[It.success?(0,G.jsx)(xs,{className:`w-8 h-8 text-green-600 dark:text-green-400`}):(0,G.jsx)(Ds,{className:`w-8 h-8 text-red-600 dark:text-red-400`}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white`,children:It.success?i(`settings.connectionSuccessful`):i(`settings.connectionFailed`)})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:It.success?It.message||i(`settings.haConnectionSuccess`):It.error||i(`settings.haConnectionFailed`)}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{variant:`primary`,onClick:()=>Lt(null),children:i(`settings.ok`)})})]})}),je===`plugs`&&(0,G.jsxs)(`div`,{id:`card-plugs`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Pl,{className:`w-5 h-5 text-bambu-green`}),i(`settings.smartPlugs`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.smartPlugsDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-1 shrink-0`,children:[Zt&&Zt.filter(e=>e.enabled).length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>it(`on`),disabled:dr.isPending,title:i(`settings.turnAllPlugsOn`),children:[dr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ll,{className:`w-4 h-4 text-bambu-green`}),i(`settings.allOn`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>it(`off`),disabled:dr.isPending,title:i(`settings.turnAllPlugsOff`),children:[dr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Il,{className:`w-4 h-4 text-red-600 dark:text-red-400`}),i(`settings.allOff`)]})]}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,onClick:()=>{L(null),F(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addSmartPlug`)]})]})]}),Zt&&Zt.length>0&&(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`}),i(`settings.energySummary`),en&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray ml-2`})]})}),(0,G.jsx)(Vd,{children:$t?(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(id,{className:`w-3 h-3`}),i(`settings.currentPower`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalPower.toFixed(1),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`W`})]}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.plugsOnline`,{reachable:$t.reachableCount,total:$t.totalPlugs})})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),i(`settings.today`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalToday.toFixed(3),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalToday*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(Iu,{className:`w-3 h-3`}),i(`settings.yesterday`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalYesterday.toFixed(3),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalYesterday*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(qs,{className:`w-3 h-3`}),i(`settings.total`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalLifetime.toFixed(1),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalLifetime*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]})]}):en?null:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.enablePlugsForSummary`)})})]}),Qt?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):Zt&&Zt.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:Zt.map(e=>(0,G.jsx)(PWe,{plug:e,onEdit:e=>{L(e),F(!0)}},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-12`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Pl,{className:`w-16 h-16 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.noSmartPlugsTitle`)}),(0,G.jsx)(`p`,{className:`text-sm mb-4`,children:i(`settings.noSmartPlugsDescription`)}),(0,G.jsxs)(Q,{onClick:()=>{L(null),F(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addFirstSmartPlug`)]})]})})})]}),je===`sensors`&&(0,G.jsxs)(`div`,{id:`card-sensors`,children:[(0,G.jsxs)(`div`,{id:`card-ha-sensors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Tc,{className:`w-5 h-5 text-bambu-green`}),i(`haSensors.sectionTitle`)]}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,disabled:!sn?.length,onClick:()=>{V(null),z(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`haSensors.add`)]})]}),cn&&cn.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:cn.map(e=>{let t=sn?.find(t=>t.id===e.printer_id);return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray truncate`,children:e.entity_id}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:t?.name??i(`haSensors.unknownPrinter`)})]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{V(e),z(!0)},children:i(`common.edit`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-3`,children:[e.block_print&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:i(`haSensors.badgeBlocks`)}),e.notify_on_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:i(`haSensors.badgeNotifies`)}),!e.show_on_printer_card&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:i(`haSensors.badgeHidden`)})]})]})},e.id)})}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`haSensors.empty`)})]})})})]}),(0,G.jsxs)(`div`,{id:`card-location-sensors`,className:`mt-8`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-[20px] mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Tc,{className:`w-5 h-5 text-bambu-green`}),i(`locationHaSensors.sectionTitle`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`locationHaSensors.sectionDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-1 shrink-0`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>ae(!0),className:`p-2 rounded-lg bg-bambu-dark-tertiary hover:bg-bambu-gray-dark text-white transition-colors`,title:i(`locationHaSensors.options.buttonLabel`),"aria-label":i(`locationHaSensors.options.buttonLabel`),children:(0,G.jsx)(Rs,{className:`w-4 h-4`})}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,disabled:!un?.length,onClick:()=>{re(null),te(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`locationHaSensors.add`)]})]})]}),ln&&ln.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:(()=>{let e=new Map((un??[]).map((e,t)=>[e.id,t])),t=ln.reduce((e,t)=>{let n=e.get(t.location_id)??[];return n.push(t),e.set(t.location_id,n),e},new Map);return Array.from(t.entries()).sort(([t],[n])=>(e.get(t)??2**53-1)-(e.get(n)??2**53-1))})().map(([e,t])=>{let n=un?.find(t=>t.id===e),r=e=>FT({device_class:e.device_class,state:e.last_state,kind:e.kind}),a=[...t].sort((e,t)=>(J8[e.device_class??``]??99)-(J8[t.device_class??``]??99));return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsx)(`div`,{className:`text-white font-medium truncate`,children:n?.name??i(`locationHaSensors.unknownLocation`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>ue({locationName:n?.name??i(`locationHaSensors.unknownLocation`),sensorIds:a.map(e=>e.id)}),className:`p-1 text-bambu-gray hover:text-red-500 rounded transition-colors shrink-0`,title:i(`common.delete`),"aria-label":i(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`mt-2 space-y-1.5`,children:a.map(e=>{let t=r(e),n=fn.get(e.id),a=YGe(n,i),o=z6(oe&&n?R6(n):null,se,H,ce)||`text-white`;return(0,G.jsxs)(`div`,{className:`flex items-center min-w-0 text-xs text-bambu-gray`,children:[(0,G.jsx)(t,{className:`w-3.5 h-3.5 shrink-0 mr-1.5`}),a&&(0,G.jsx)(`span`,{className:`${o} shrink-0 w-[52px] text-center`,children:a}),a&&(0,G.jsx)(`span`,{className:`shrink-0 mr-1.5`,children:`-`}),(0,G.jsx)(`span`,{className:`truncate mr-1.5`,title:e.name,children:e.entity_id}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{re(e),te(!0)},className:`p-1 text-bambu-gray hover:text-white rounded transition-colors shrink-0`,title:i(`common.edit`),"aria-label":i(`common.edit`),children:(0,G.jsx)(Al,{className:`w-3.5 h-3.5`})})]},e.id)})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-3`,children:[(()=>{let e=a.filter(e=>e.notify_on_alert);return e.length?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:[i(`haSensors.badgeNotifies`),e.map(e=>(0,G.jsx)(r(e),{className:`w-3 h-3`},e.id))]}):null})(),(()=>{let e=a.filter(e=>!e.show_on_card);return e.length?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:[i(`haSensors.badgeHidden`),e.map(e=>(0,G.jsx)(r(e),{className:`w-3 h-3`},e.id))]}):null})()]})]})},e)})}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`locationHaSensors.empty`)})]})})})]})]}),je===`notifications`&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-providers`,children:[(0,G.jsx)(qo,{className:`w-5 h-5 text-bambu-green`}),i(`settings.providers`)]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Se(!0),children:[(0,G.jsx)(zc,{className:`w-4 h-4`}),i(`settings.log`)]}),tn&&tn.length>0&&(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{lr(null),ur.mutate()},disabled:ur.isPending,children:[ur.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),i(`settings.testAll`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{me(null),fe(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addNotificationProvider`)]})]})]}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.notificationLanguage`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.notificationLanguageDescription`)})]}),(0,G.jsx)(`select`,{value:A.notification_language||`en`,onChange:e=>yr(`notification_language`,e.target.value),className:`px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:kt.map(e=>(0,G.jsx)(`option`,{value:e.code,children:e.nativeName},e.code))})]})})}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.bedCooledThreshold`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.bedCooledThresholdDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:20,max:80,step:1,value:A.bed_cooled_threshold??35,onChange:e=>yr(`bed_cooled_threshold`,Number(e.target.value)),className:`w-16 px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm text-center focus:outline-none focus:ring-1 focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`°C`})]})]})})}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between ${Hn?.advanced_auth_enabled?``:`opacity-50`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.userNotificationsEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:Hn?.advanced_auth_enabled?i(`settings.userNotificationsEnabledDescription`):i(`settings.userNotificationsDisabledHint`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`sr-only peer`,checked:A.user_notifications_enabled??!0,disabled:!Hn?.advanced_auth_enabled,onChange:e=>yr(`user_notifications_enabled`,e.target.checked)}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green peer-disabled:cursor-not-allowed`})]})]})})}),cr&&(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:i(`settings.testResults`)}),(0,G.jsx)(`button`,{onClick:()=>lr(null),className:`text-bambu-gray hover:text-white text-xs`,children:i(`common.dismiss`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm mb-2`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-green`,children:[(0,G.jsx)(xs,{className:`w-4 h-4`}),i(`settings.testPassedCount`,{count:cr.success})]}),cr.failed>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4`}),i(`settings.testFailedCount`,{count:cr.failed})]})]}),cr.results.filter(e=>!e.success).length>0&&(0,G.jsx)(`div`,{className:`space-y-1 mt-2 pt-2 border-t border-bambu-dark-tertiary`,children:cr.results.filter(e=>!e.success).map(e=>(0,G.jsxs)(`div`,{className:`text-xs text-red-700 dark:text-red-400`,children:[(0,G.jsxs)(`span`,{className:`font-medium`,children:[e.provider_name,`:`]}),` `,e.message]},e.provider_id))})]})}),W?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):tn&&tn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:tn.map(e=>(0,G.jsx)(HWe,{provider:e,onEdit:e=>{me(e),fe(!0)}},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(qo,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-2`,children:i(`settings.noProvidersTitle`)}),(0,G.jsx)(`p`,{className:`text-xs mb-3`,children:i(`settings.noProvidersDescription`)}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{me(null),fe(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addProvider`)]})]})})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-2`,id:`card-templates`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.messageTemplates`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:i(`settings.messageTemplatesDescription`)}),(0,G.jsxs)(`div`,{className:`relative mb-3`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:_e,onChange:e=>ve(e.target.value),placeholder:i(`settings.filterTemplates`,`Filter templates…`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),_e&&(0,G.jsx)(`button`,{onClick:()=>ve(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-bambu-gray hover:text-white`,"aria-label":`Clear filter`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})})]}),gn?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):hn&&hn.length>0?(()=>{let e=_e.trim().toLowerCase(),t=[...hn].sort((e,t)=>e.name.localeCompare(t.name)).filter(t=>!e||t.name.toLowerCase().includes(e)||(t.title_template||``).toLowerCase().includes(e));return t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic text-center py-6`,children:i(`settings.noTemplatesMatch`,`No templates match your filter.`)}):(0,G.jsx)(`div`,{className:`space-y-2`,children:t.map(e=>(0,G.jsx)(zd,{className:`cursor-pointer hover:border-bambu-green/50 transition-colors`,onClick:()=>ge(e),children:(0,G.jsx)(Vd,{className:`py-2.5 px-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs truncate mt-0.5`,children:e.title_template})]}),(0,G.jsx)(`button`,{className:`p-1.5 hover:bg-bambu-dark-tertiary rounded transition-colors shrink-0 ml-2`,onClick:t=>{t.stopPropagation(),ge(e)},children:(0,G.jsx)(kl,{className:`w-4 h-4 text-bambu-gray`})})]})})},e.id))})})():(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(fc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`settings.noTemplatesAvailable`)})]})})})]})]}),je===`apikeys`&&(0,G.jsxs)(`div`,{className:d(`api_keys:read`)?`grid grid-cols-1 xl:grid-cols-2 gap-4`:`grid grid-cols-1 gap-4`,children:[(0,G.jsxs)(`div`,{children:[d(`api_keys:read`)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-createapi`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.apiKeys`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.apiKeysDescription`)})]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>Be(!0),className:`flex-shrink-0`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createKey`)]})]}),Ge&&(0,G.jsx)(zd,{className:`mb-6 border-bambu-green`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-bambu-green flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:i(`settings.apiKeyCreated`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:i(`settings.apiKeyCopyWarning`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-bambu-dark rounded-lg p-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 text-sm text-bambu-green font-mono break-all`,children:Ge}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:async()=>{try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(Ge);else{let e=document.createElement(`textarea`);e.value=Ge,e.style.position=`fixed`,e.style.left=`-999999px`,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)}o(i(`settings.toast.keyCopied`))}catch{o(i(`settings.toast.copyFailed`),`error`)}},children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 mt-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{Qe(Ge),o(i(`settings.toast.keyAddedToBrowser`))},children:i(`settings.useInApiBrowser`)}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Je(!0),children:[(0,G.jsx)(zl,{className:`w-4 h-4`}),i(`settings.apiKeyQrButton`)]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{Je(!1),Ke(null)},children:i(`common.dismiss`)})]})]})]})})}),qe&&Ge&&(0,G.jsx)(aGe,{apiKey:Ge,baseUrl:A?.external_url||void 0,onClose:()=>Je(!1)}),ze&&(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,children:i(`settings.createNewApiKey`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.keyName`)}),(0,G.jsx)(`input`,{type:`text`,value:Ve,onChange:e=>He(e.target.value),placeholder:i(`settings.keyNamePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:i(`common.permissions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_read_status,onChange:e=>We(t=>({...t,can_read_status:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.readStatus`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.readStatusDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_queue,onChange:e=>We(t=>({...t,can_queue:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageQueue`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageQueueDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_control_printer,onChange:e=>We(t=>({...t,can_control_printer:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.controlPrinter`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.controlPrinterDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_library,onChange:e=>We(t=>({...t,can_manage_library:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageLibrary`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageLibraryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_inventory,onChange:e=>We(t=>({...t,can_manage_inventory:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageInventory`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageInventoryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_maintenance,onChange:e=>We(t=>({...t,can_manage_maintenance:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageMaintenance`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageMaintenanceDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_archives,onChange:e=>We(t=>({...t,can_manage_archives:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageArchivesDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_projects,onChange:e=>We(t=>({...t,can_manage_projects:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageProjects`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageProjectsDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_access_cloud,onChange:e=>We(t=>({...t,can_access_cloud:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.cloudAccess`,`Allow cloud access`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.cloudAccessDescription`,`Read Bambu Cloud presets and filaments on your behalf. Requires you to be signed into Bambu Cloud.`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_update_energy_cost,onChange:e=>We(t=>({...t,can_update_energy_cost:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.updateEnergyCost`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.updateEnergyCostDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-2`,children:[(0,G.jsxs)(Q,{onClick:()=>an.mutate({name:Ve||i(`settings.unnamedKey`),...Ue}),disabled:an.isPending,children:[an.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createKey`)]}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Be(!1),children:i(`common.cancel`)})]})]})]}),rn?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):nn&&nn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:nn.map(e=>(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 ${e.enabled?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[e.key_prefix,`••••••••`,e.last_used&&` · ${i(`settings.lastUsed`)}: ${ap(e.last_used)}`]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 text-xs flex-wrap justify-end`,children:[e.can_read_status&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 rounded`,children:i(`settings.read`)}),e.can_queue&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400 rounded`,children:i(`queue.title`)}),e.can_control_printer&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 rounded`,children:i(`settings.control`)}),e.can_manage_library&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400 rounded`,children:i(`settings.libraryBadge`)}),e.can_manage_inventory&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-pink-100 dark:bg-pink-500/20 text-pink-700 dark:text-pink-400 rounded`,children:i(`settings.inventoryBadge`)}),e.can_manage_maintenance&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 rounded`,children:i(`settings.maintenanceBadge`)}),e.can_manage_archives&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 rounded`,children:i(`settings.archivesBadge`)}),e.can_manage_projects&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-lime-100 dark:bg-lime-500/20 text-lime-700 dark:text-lime-400 rounded`,children:i(`settings.projectsBadge`)}),e.can_access_cloud&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 rounded`,children:i(`settings.cloudBadge`,`Cloud`)}),e.can_update_energy_cost&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 rounded`,children:i(`settings.energyCostBadge`)}),e.user_id===null&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 rounded`,title:i(`settings.legacyKeyTooltip`,`Created before per-user ownership; recreate to use cloud access`),children:i(`settings.legacyKey`,`Legacy`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Xe(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]})]})})},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-12`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Kc,{className:`w-16 h-16 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.apiKeysEmptyTitle`)}),(0,G.jsx)(`p`,{className:`text-sm mb-4`,children:i(`settings.apiKeysEmptyDescription`)}),(0,G.jsxs)(Q,{onClick:()=>Be(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createFirstKey`)]})]})})}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,id:`card-webhooks`,children:i(`settings.webhookEndpoints`)})}),(0,G.jsxs)(Vd,{className:`space-y-3 text-sm`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`settings.webhookApiKeyHint`)}),(0,G.jsxs)(`div`,{className:`space-y-2 font-mono text-xs`,children:[(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-blue-700 dark:text-blue-400`,children:`GET`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/status`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.getAllStatus`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-blue-700 dark:text-blue-400`,children:`GET`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/status/:id`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.getSpecificStatus`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-green-700 dark:text-green-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/queue`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.addToQueue`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/pause`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.pausePrint`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/resume`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.resumePrint`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/stop`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.stopPrint`)]})]})]})]})]})]}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-camera-tokens`,children:[(0,G.jsx)(Gu,{className:`w-4 h-4 text-bambu-green`}),i(`cameraTokens.title`,`Camera API Tokens`)]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(jWe,{})})]}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-stream-overlay`,children:[(0,G.jsx)(hl,{className:`w-4 h-4 text-bambu-green`}),i(`streamOverlay.builder.title`,`Streaming Overlay`)]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(NWe,{})})]})]}),d(`api_keys:read`)&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-apibrowser`,children:[(0,G.jsx)(Ac,{className:`w-5 h-5 text-bambu-green`}),i(`settings.apiBrowser`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.apiBrowserDescription`)})]}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:i(`settings.apiKeyForTesting`)}),(0,G.jsx)(`input`,{type:`text`,value:Ze,onChange:e=>Qe(e.target.value),placeholder:i(`settings.apiKeyPlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white font-mono text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:i(`settings.apiKeyHint`)})]})}),(0,G.jsx)(WGe,{apiKey:Ze})]})]}),je===`virtual-printer`&&(0,G.jsx)(`div`,{id:`card-vp`,children:(0,G.jsx)(yGe,{})}),je===`spoolbuddy`&&(0,G.jsx)(`div`,{id:`card-spoolbuddy`,children:(0,G.jsx)(xGe,{})}),je===`queue`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`button`,{onClick:()=>Re(`dispatch`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Fe===`dispatch`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),i(`settings.tabs.queueDispatch`,`Queue & Dispatch`)]}),(0,G.jsxs)(`button`,{onClick:()=>Re(`pipelines`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Fe===`pipelines`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(ed,{className:`w-4 h-4`}),i(`settings.tabs.queuePipelines`,`Pipelines`)]})]}),Fe===`pipelines`&&(0,G.jsx)(CWe,{}),Fe===`dispatch`&&A&&(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`lg:w-1/2 space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-print-options`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4 text-bambu-green`}),i(`settings.defaultPrintOptions`,`Default Print Options`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.defaultPrintOptionsDescription`,`Set default values for print options when starting new prints. These can be overridden per print in the print dialog.`)}),[{key:`default_bed_levelling`,label:i(`settings.defaultBedLevelling`,`Bed Levelling`),desc:i(`settings.defaultBedLevellingDesc`,`Auto-level bed before print`),fallback:!0,dualNozzleOnly:!1,tristate:!0},{key:`default_flow_cali`,label:i(`settings.defaultFlowCali`,`Flow Calibration`),desc:i(`settings.defaultFlowCaliDesc`,`Calibrate extrusion flow`),fallback:!1,dualNozzleOnly:!1,tristate:!0},{key:`default_vibration_cali`,label:i(`settings.defaultVibrationCali`,`Vibration Calibration`),desc:i(`settings.defaultVibrationCaliDesc`,`Reduce ringing artifacts`),fallback:!0,dualNozzleOnly:!1,tristate:!1},{key:`default_layer_inspect`,label:i(`settings.defaultLayerInspect`,`First Layer Inspection`),desc:i(`settings.defaultLayerInspectDesc`,`AI inspection of first layer`),fallback:!1,dualNozzleOnly:!1,tristate:!1},{key:`default_timelapse`,label:i(`settings.defaultTimelapse`,`Timelapse`),desc:i(`settings.defaultTimelapseDesc`,`Record timelapse video`),fallback:!1,dualNozzleOnly:!1,tristate:!1},{key:`default_nozzle_offset_cali`,label:i(`settings.defaultNozzleOffsetCali`,`Nozzle Offset Calibration`),desc:i(`settings.defaultNozzleOffsetCaliDesc`,`Calibrate nozzle offsets between extruders`),fallback:!0,dualNozzleOnly:!0,tristate:!0}].filter(({dualNozzleOnly:e})=>!e||(sn||[]).some(e=>e.nozzle_count===2)).map(({key:e,label:t,desc:n,fallback:r,tristate:a})=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:t}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:n})]}),a?(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:PU.map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e,t),className:`px-2.5 py-1 text-xs rounded transition-colors ${(A[e]??`auto`)===t?FU[t]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${t}`)},t))}):(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:[`off`,`on`].map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e,t===`on`),className:`px-2.5 py-1 text-xs rounded transition-colors ${(A[e]??r?`on`:`off`)===t?FU[t]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${t}`)},t))})]},e))]})]}),(0,G.jsxs)(zd,{id:`card-plate`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-4 h-4 text-bambu-green`}),i(`settings.plateClear`,`Plate-Clear Confirmation`)]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.requirePlateClear`,`Require plate-clear confirmation`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.requirePlateClearDescription`,`When enabled, the scheduler waits for per-printer plate-clear confirmation before starting queued prints on printers with finished jobs. Disabling this also hides the plate status badge and the "Mark plate as cleared" button on printer cards.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.require_plate_clear??!1,onChange:e=>yr(`require_plate_clear`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})})]}),(0,G.jsxs)(zd,{id:`card-temp-fan-presets`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Mu,{className:`w-4 h-4 text-bambu-green`}),i(`settings.tempFanPresetsTitle`,`Temperature & Fan Presets`)]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.tempFanPresetsDescription`,`Customize the quick-select values shown in printer-card temperature and fan-speed popovers. The Off button is always shown.`)}),kee.map(e=>{let t=Am(A?.[e.key]??``,e.defaults,e.lo,e.hi),n=e.unit===`C`?`°C`:`%`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-white`,children:[i(`settings.${{nozzle_temp_presets:`tempFanPresetsNozzle`,bed_temp_presets:`tempFanPresetsBed`,chamber_temp_presets:`tempFanPresetsChamber`,fan_speed_presets:`tempFanPresetsFan`}[e.key]}`,{nozzle_temp_presets:`Nozzle temperature`,bed_temp_presets:`Bed temperature`,chamber_temp_presets:`Chamber temperature`,fan_speed_presets:`Fan speed`}[e.key]),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[`(`,n,` · `,e.lo,`–`,e.hi,`)`]})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e.key,``),title:i(`settings.tempFanPresetsReset`,`Reset to defaults`),className:`text-bambu-gray hover:text-white transition-colors p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:[0,1,2].map(n=>(0,G.jsx)(`input`,{type:`number`,min:e.lo,max:e.hi,value:t[n],onChange:r=>{let i=[t[0],t[1],t[2]],a=parseInt(r.target.value,10);i[n]=Math.max(e.lo,Math.min(e.hi,Number.isFinite(a)?a:e.lo)),yr(e.key,JSON.stringify(i))},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`},n))})]},e.key)})]})]}),(0,G.jsxs)(zd,{id:`card-staggered`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-green`}),i(`settings.staggeredStart`,`Staggered Start`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.staggeredStartDescription`,`Default group size and interval when staggering multi-printer batch starts. Can be overridden per batch in the print modal.`)}),(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.staggerGroupSize`,`Group size`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:50,value:A.stagger_group_size??2,onChange:e=>yr(`stagger_group_size`,Math.max(1,Math.min(50,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.staggerGroupSizeHelp`,`Printers to start simultaneously per group`)})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.staggerInterval`,`Interval (minutes)`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:60,value:A.stagger_interval_minutes??5,onChange:e=>yr(`stagger_interval_minutes`,Math.max(1,Math.min(60,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.staggerIntervalHelp`,`Delay between each group starting`)})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-concurrent-uploads`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Ns,{className:`w-4 h-4 text-bambu-green`}),i(`settings.concurrentUploadsTitle`,`Concurrent Uploads`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.concurrentUploadsDescription`,`How many printers the queue may send files to at the same time. Printers receive files slowly (a large print can take several minutes), and each one waits its turn — so on a bigger fleet, raising this is what stops the last printer in a batch from waiting out every transfer before it. Lower it if your network or Bambuddy host struggles with parallel transfers.`)}),(0,G.jsxs)(`div`,{className:`w-full sm:w-1/2`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.concurrentUploadsLabel`,`Printers uploaded to at once`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:16,value:A.queue_max_concurrent_uploads??4,onChange:e=>yr(`queue_max_concurrent_uploads`,Math.max(1,Math.min(16,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.concurrentUploadsHelp`,`1 sends to one printer at a time (the old behaviour). Default is 4.`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-preheat`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(hc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),i(`settings.preheatTitle`,`Preheat & Heat Soak`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.preheatDescription`,`Heat the bed (and chamber, if supported) and hold at temperature before each queued print starts. Helpful for engineering filaments (PA, ABS) on printers without an active chamber heater — the bed warms the chamber by radiation while the soak timer runs. The bed target is read from the print file; chamber behaviour depends on printer model.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.preheatEnabled`,`Enable preheat & soak`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.preheatEnabledDesc`,`When off, queued prints dispatch immediately.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.preheat_enabled??!1,onChange:e=>yr(`preheat_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 pt-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.preheatMaxWait`,`Max wait (seconds)`)}),(0,G.jsx)(`input`,{type:`number`,min:60,max:3600,value:A.preheat_max_wait_seconds??900,onChange:e=>yr(`preheat_max_wait_seconds`,Math.max(60,Math.min(3600,parseInt(e.target.value)||900))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preheatMaxWaitHelp`,`Cap on the chamber warm-up phase before falling through.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.preheatSoak`,`Soak (seconds)`)}),(0,G.jsx)(`input`,{type:`number`,min:0,max:1800,value:A.preheat_soak_seconds??300,onChange:e=>yr(`preheat_soak_seconds`,Math.max(0,Math.min(1800,parseInt(e.target.value)||0))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preheatSoakHelp`,`Hold time after target reached or max-wait elapsed.`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.keepBedWarm`,`Keep bed warm between prints`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.keepBedWarmDesc`,`While awaiting plate-clear, hold the bed at the keep-warm temperature below so the chamber stays hot — or at the next print's own bed temperature when that is higher. Only applies when the next print needs chamber heating (ASA, ABS, PA, PC etc.). Requires plate-clear confirmation to be enabled.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_keep_bed_warm??!1,onChange:e=>yr(`queue_keep_bed_warm`,e.target.checked),className:`sr-only peer`,disabled:!(A.preheat_enabled??!1)||!(A.require_plate_clear??!1)}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green peer-disabled:opacity-50 peer-disabled:cursor-not-allowed`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 mt-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.keepWarmBedTemp`,`Keep-warm bed temperature (°C)`)}),(0,G.jsx)(`input`,{type:`number`,min:40,max:110,value:A.queue_keep_warm_bed_temp??90,onChange:e=>yr(`queue_keep_warm_bed_temp`,Math.max(40,Math.min(110,parseInt(e.target.value)||90))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.keepWarmBedTempHelp`,`Used whenever the bed's job is to heat the chamber — the keep-warm hold, and preheat when the print file carries no bed temperature. A higher bed temperature from the print file always wins.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.keepWarmMaxMinutes`,`Stop keeping warm after (minutes)`)}),(0,G.jsx)(`input`,{type:`number`,min:5,max:480,value:A.queue_keep_warm_max_minutes??120,onChange:e=>yr(`queue_keep_warm_max_minutes`,Math.max(5,Math.min(480,parseInt(e.target.value)||120))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.queue_keep_bed_warm??!1)||!(A.preheat_enabled??!1)||!(A.require_plate_clear??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.keepWarmMaxMinutesHelp`,`If the plate is not cleared within this time, the heaters are switched off rather than held indefinitely.`)})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:i(`settings.preheatFilamentTargetsLabel`,`Per-filament chamber target (°C)`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(`preheat_filament_targets`,``),title:i(`settings.preheatFilamentTargetsReset`,`Reset to defaults`),className:`text-bambu-gray hover:text-white transition-colors p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.preheatFilamentTargetsHint`,`Bambuddy picks the highest target across the loaded AMS slots; PLA-only prints derive 0 and skip the chamber phase automatically.`)}),(0,G.jsx)(xWe,{value:A.preheat_filament_targets??``,onChange:e=>yr(`preheat_filament_targets`,e),disabled:!(A.preheat_enabled??!1)})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray pt-1 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`span`,{className:`font-medium text-bambu-gray/90`,children:i(`settings.preheatHardwareTitle`,`Per-printer behaviour:`)}),` `,i(`settings.preheatHardwareDetail`,`H2C/H2D/H2D Pro/H2S/X2D/X1E actively heat the chamber via M141. X1C/P2S read chamber temp but rely on bed-radiation heating. P1S/P1P/A1/A1 Mini have no chamber sensor — only the soak timer applies.`)]})]})]})]}),(0,G.jsxs)(`div`,{className:`lg:w-1/2 space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-pipelines`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ed,{className:`w-4 h-4 text-bambu-green`}),i(`settings.pipelineLimits.title`,`Slicer Pipeline limits`)]})}),(0,G.jsx)(Vd,{className:`space-y-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.pipelineLimits.maxCopiesLabel`,`Max copies per run`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.pipelineLimits.maxCopiesDesc`,`Upper bound on the copies operators can request when running a pipeline. Server-side hard cap is 1000.`)})]}),(0,G.jsx)(`input`,{type:`number`,min:1,max:1e3,value:A.pipeline_max_copies??50,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||yr(`pipeline_max_copies`,Math.max(1,Math.min(1e3,t)))},"aria-label":i(`settings.pipelineLimits.maxCopiesLabel`,`Max copies per run`),className:`w-24 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm`})]})})]}),(0,G.jsxs)(zd,{id:`card-slicer`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-4 h-4 text-bambu-green`}),i(`settings.slicerCard`,`Slicer`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[KGe()&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.sliceEngine`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:W8(A.slice_engine),onChange:e=>yr(`slice_engine`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:U8().map(e=>(0,G.jsx)(`option`,{value:e.id,children:i(e.labelKey)},e.id))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(U8().find(e=>e.id===W8(A.slice_engine))?.descriptionKey??`settings.sliceEngineSidecarHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.preferredSlicer`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.preferred_slicer??`bambu_studio`,onChange:e=>yr(`preferred_slicer`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`bambu_studio`,children:i(`settings.slicerBambuStudio`)}),(0,G.jsx)(`option`,{value:`orcaslicer`,children:i(`settings.slicerOrcaSlicer`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preferredSlicerDescription`)}),(A.preferred_slicer??`bambu_studio`)===`orcaslicer`&&(0,G.jsx)(`div`,{role:`alert`,className:`text-xs text-amber-800 dark:text-amber-200 bg-amber-50 dark:bg-amber-900/20 border border-amber-300 dark:border-amber-700/40 rounded p-2 mt-2`,children:i(`settings.orcaslicerKnownIssuesWarning`,`OrcaSlicer 2.3.2 / 2.4.0-dev have known CLI bugs that block slicing many Bambu-authored 3MFs — see upstream issues #12426 (segfault on painted multi-extruder files) and #13386 (parameter-range strict-validation reject). Bambu Studio is recommended until the upstream fixes land.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.openInSlicerLabel`,`Open in Slicer`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.open_in_slicer??``,onChange:e=>yr(`open_in_slicer`,e.target.value===``?null:e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:``,children:i(`settings.openInSlicerInherit`,`Same as API slicer`)}),(0,G.jsx)(`option`,{value:`bambu_studio`,children:i(`settings.slicerBambuStudio`)}),(0,G.jsx)(`option`,{value:`orcaslicer`,children:i(`settings.slicerOrcaSlicer`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.openInSlicerDescription`,`Desktop slicer used by the 'Open in Slicer' button. Leave on 'Same as API slicer' to inherit, or pick a different slicer to use locally.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.useSlicerApi`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.useSlicerApiDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center cursor-pointer shrink-0`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.use_slicer_api??!1,onChange:e=>yr(`use_slicer_api`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`relative w-11 h-6 bg-bambu-dark-tertiary rounded-full peer peer-checked:bg-bambu-green peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-bambu-green/50 transition-colors after:content-[''] after:absolute after:top-0.5 after:left-0.5 after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-transform peer-checked:after:translate-x-5`})]})]}),(A.use_slicer_api??!1)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:(A.preferred_slicer??`bambu_studio`)===`orcaslicer`?i(`settings.orcaslicerApiUrl`,`OrcaSlicer sidecar URL`):i(`settings.bambuStudioApiUrl`,`Bambu Studio sidecar URL`)}),(0,G.jsx)(`input`,{type:`text`,value:((A.preferred_slicer??`bambu_studio`)===`orcaslicer`?A.orcaslicer_api_url:A.bambu_studio_api_url)??``,onChange:e=>yr((A.preferred_slicer??`bambu_studio`)===`orcaslicer`?`orcaslicer_api_url`:`bambu_studio_api_url`,e.target.value),placeholder:(A.preferred_slicer??`bambu_studio`)===`orcaslicer`?`http://localhost:3003`:`http://localhost:3001`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none placeholder:text-bambu-gray/40`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.slicerApiUrlDescription`,`URL of the slicer-API sidecar container. Leave blank to use the SLICER_API_URL / BAMBU_STUDIO_API_URL env var defaults.`)})]}),(A.use_slicer_api??!1)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.slicerStallTimeout`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:240,value:A.slicer_stall_timeout_minutes??15,onChange:e=>yr(`slicer_stall_timeout_minutes`,Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.slicerStallTimeoutDescription`)})]})]})]}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-drying`,children:[(0,G.jsx)(hc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),i(`settings.queueDrying`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.queueDryingDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.queueDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.queueDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_drying_enabled??!1,onChange:e=>yr(`queue_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.queue_drying_enabled&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.queueDryingBlock`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.queueDryingBlockDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_drying_block??!1,onChange:e=>yr(`queue_drying_block`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-amber-500`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.ambientDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.ambientDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ambient_drying_enabled??!1,onChange:e=>yr(`ambient_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.printDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.printDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.print_drying_enabled??!1,onChange:e=>yr(`print_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:i(`settings.dryingPresets`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.dryingPresetsDescription`)}),(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5`,children:i(`settings.dryingFilament`)}),(0,G.jsx)(`th`,{className:`text-center py-1.5`,colSpan:2,children:`AMS 2 Pro`}),(0,G.jsx)(`th`,{className:`text-center py-1.5`,colSpan:2,children:`AMS-HT`})]})}),(0,G.jsx)(`tbody`,{children:(()=>{let e={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}},t={...e};try{if(A.drying_presets){let n=JSON.parse(A.drying_presets);typeof n==`object`&&n&&(t={...e,...n})}}catch{}let n=(e,n,r)=>{let i={...t,[e]:{...t[e],[n]:r}};yr(`drying_presets`,JSON.stringify(i))};return Object.entries(t).map(([e,t])=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-white font-medium`,children:e}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:30,max:65,value:t.n3f,onChange:t=>n(e,`n3f`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:t.n3f_hours,onChange:t=>n(e,`n3f_hours`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`h`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:30,max:85,value:t.n3s,onChange:t=>n(e,`n3s`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:t.n3s_hours,onChange:t=>n(e,`n3s_hours`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`h`})]})})]},e))})()})]})})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:i(`settings.humidityThresholds`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.humidityThresholdsDescription`)}),(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5`,children:i(`settings.dryingFilament`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2`,children:i(`settings.humidityThresholdCol`)})]})}),(0,G.jsx)(`tbody`,{children:(()=>{let e=A.ams_humidity_fair??60,t=[`PLA`,`PETG`,`TPU`,`ABS`,`ASA`,`PA`,`PC`,`PVA`],n={};try{if(A.ams_humidity_thresholds){let e=JSON.parse(A.ams_humidity_thresholds);typeof e==`object`&&e&&(n=e)}}catch{}let r=[{key:`default`,label:i(`settings.humidityThresholdDefault`),value:Number(n.default??e),isDefault:!0},...t.map(t=>({key:t,label:t,value:Number(n[t]??n.default??e),isDefault:!1}))],a=(e,t)=>{if(t.trim()===``){let t={...n};delete t[e],yr(`ams_humidity_thresholds`,JSON.stringify(t));return}let r=parseInt(t,10);if(Number.isNaN(r))return;let i=Math.max(5,Math.min(95,r)),a={...n,[e]:i};yr(`ams_humidity_thresholds`,JSON.stringify(a))};return r.map(e=>{let t=M[e.key],n=t===void 0?String(e.value):t;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 font-medium ${e.isDefault?`text-bambu-gray italic`:`text-white`}`,children:e.label}),(0,G.jsx)(`td`,{className:`py-1 pr-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:5,max:95,value:n,onChange:t=>N(n=>({...n,[e.key]:t.target.value})),onBlur:t=>{a(e.key,t.target.value),N(t=>{let n={...t};return delete n[e.key],n})},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()},className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})})]},e.key)})})()})]})})]})]})]}),(0,G.jsxs)(zd,{id:`card-gcode`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Fs,{className:`w-4 h-4 text-bambu-green`}),i(`settings.gcodeInjection`,`G-code Injection`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.gcodeInjectionDescription`,`Configure custom G-code to inject at the start and/or end of prints for auto-print systems like Farmloop, SwapMod, AutoClear, and Printflow 3D. Snippets are configured per printer model and applied when "Inject G-code" is enabled on a queue item.`)}),(()=>{let e=(()=>{try{return A.gcode_snippets?JSON.parse(A.gcode_snippets):{}}catch{return{}}})(),t=[...new Set((sn||[]).filter(e=>e.model).map(e=>e.model))].sort(),n=(t,n,r)=>{let i={...e};i[t]||(i[t]={start_gcode:``,end_gcode:``}),i[t][n]=r,!i[t].start_gcode&&!i[t].end_gcode&&delete i[t];let a=Object.keys(i).length>0?JSON.stringify(i):``;j(e=>e?{...e,gcode_snippets:a}:null),pr.current=a},r=()=>{pr.current!==null&&(_r.mutate({gcode_snippets:pr.current}),pr.current=null)};return t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:i(`settings.gcodeInjectionNoPrinters`,`No printers found. Add printers to configure G-code snippets.`)}):t.map(t=>{let a=e[t]||{start_gcode:``,end_gcode:``},o=!!(a.start_gcode||a.end_gcode);return(0,G.jsx)($p,{defaultOpen:o,className:`border border-bambu-dark-tertiary rounded-lg px-3 py-2`,summary:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:t}),o&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:i(`settings.gcodeConfigured`,`Configured`)})]}),children:(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.gcodeStartLabel`,`Start G-code`)}),(0,G.jsx)(`textarea`,{value:a.start_gcode,onChange:e=>n(t,`start_gcode`,e.target.value),onBlur:r,placeholder:i(`settings.gcodeStartPlaceholder`,`G-code prepended before the print starts...`),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono focus:outline-none focus:border-bambu-green resize-y`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.gcodeEndLabel`,`End G-code`)}),(0,G.jsx)(`textarea`,{value:a.end_gcode,onChange:e=>n(t,`end_gcode`,e.target.value),onBlur:r,placeholder:i(`settings.gcodeEndPlaceholder`,`G-code appended after the print ends...`),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono focus:outline-none focus:border-bambu-green resize-y`})]})]})},t)})})()]})]})]})]})]}),je===`filament`&&A&&(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`lg:w-1/3 space-y-3`,children:[(0,G.jsx)(lGe,{}),(0,G.jsxs)(zd,{id:`card-filamentchecks`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.filamentChecks`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.disableFilamentWarnings`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.disableFilamentWarningsDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.disable_filament_warnings,onChange:e=>yr(`disable_filament_warnings`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.preferLowestFilament`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.preferLowestFilamentDesc`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:i(`settings.preferLowestFilamentBackupNote`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.prefer_lowest_filament,onChange:e=>yr(`prefer_lowest_filament`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-printmodal`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.printModal`)})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.expandCustomMapping`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.expandCustomMappingDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.per_printer_mapping_expanded??!1,onChange:e=>yr(`per_printer_mapping_expanded`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})})]}),(0,G.jsxs)(zd,{id:`card-amsthresholds`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.amsDisplayThresholds`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.amsThresholdsDescription`)}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-white`,children:[(0,G.jsx)(Qs,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`font-medium`,children:i(`settings.humidity`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.goodGreen`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`100`,value:A.ams_humidity_good??40,onChange:e=>yr(`ams_humidity_good`,parseInt(e.target.value)||40),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.fairOrange`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`100`,value:A.ams_humidity_fair??60,onChange:e=>yr(`ams_humidity_fair`,parseInt(e.target.value)||60),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.aboveFairBad`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-700/80 dark:text-amber-400/70`,children:i(`settings.fairAlsoDryingThreshold`)}),(A.ams_humidity_fair??60)yr(`ams_temp_good`,parseFloat(e.target.value)||28),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.fairOrange`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,step:`0.5`,min:`0`,max:`60`,value:A.ams_temp_fair??35,onChange:e=>yr(`ams_temp_fair`,parseFloat(e.target.value)||35),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.aboveFairHot`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.tempAlarmThreshold`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,step:`0.5`,min:`0.5`,max:`120`,value:A.ams_temp_alarm??``,placeholder:String(A.ams_temp_fair??35),onChange:e=>{let t=e.target.value.trim(),n=parseFloat(t);yr(`ams_temp_alarm`,t===``||Number.isNaN(n)?null:n)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]}),(A.ams_temp_alarm??1)<=0&&(0,G.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:i(`settings.tempAlarmMustBePositive`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-700/80 dark:text-amber-400/70`,children:i(`settings.tempAlarmSeparateFromBand`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-white`,children:[(0,G.jsx)(Gs,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`font-medium`,children:i(`settings.historyRetention`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.keepSensorHistory`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`365`,value:A.ams_history_retention_days??30,onChange:e=>yr(`ams_history_retention_days`,parseInt(e.target.value)||30),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`common.days`)})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.historyRetentionDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`lg:w-2/3 space-y-3`,children:[(0,G.jsx)(uGe,{}),(0,G.jsx)(dGe,{})]})]})}),Ye!==null&&(0,G.jsx)(of,{title:i(`settings.deleteApiKeyTitle`),message:i(`settings.deleteApiKeyMessage`),confirmText:i(`settings.deleteKey`),variant:`danger`,onConfirm:()=>{on.mutate(Ye),Xe(null)},onCancel:()=>Xe(null)}),P&&(0,G.jsx)(FWe,{plug:I,onClose:()=>{F(!1),L(null)}}),R&&(0,G.jsx)(IWe,{sensor:B,printers:sn??[],onClose:()=>{z(!1),V(null)}}),ee&&(0,G.jsx)(RWe,{sensor:ne,locations:un??[],onClose:()=>{te(!1),re(null)}}),ie&&(0,G.jsx)(VWe,{onClose:()=>ae(!1)}),le&&(0,G.jsx)(of,{title:i(`locationHaSensors.deleteAllConfirm.title`),message:i(`locationHaSensors.deleteAllConfirm.message`,{location:le.locationName,count:le.sensorIds.length}),variant:`danger`,isLoading:pn.isPending,onConfirm:()=>pn.mutate(le.sensorIds),onCancel:()=>ue(null)}),de&&(0,G.jsx)(WWe,{provider:pe,onClose:()=>{fe(!1),me(null)}}),he&&(0,G.jsx)(GWe,{template:he,onClose:()=>ge(null)}),xe&&(0,G.jsx)(qWe,{onClose:()=>Se(!1)}),$e&&(0,G.jsx)(of,{title:i(`settings.clearNotificationLogs`),message:i(`settings.clearLogsMessage`),confirmText:i(`settings.clearLogs`),variant:`warning`,onConfirm:async()=>{et(!1);try{o((await Z.clearNotificationLogs(30)).message,`success`)}catch{o(i(`settings.toast.clearLogsFailed`),`error`)}},onCancel:()=>et(!1)}),tt&&(0,G.jsx)(of,{title:i(`settings.resetUiPreferences`),message:i(`settings.resetUiPreferencesMessage`),confirmText:i(`settings.resetPreferences`),variant:`default`,onConfirm:()=>{nt(!1),localStorage.clear(),o(i(`settings.toast.uiPreferencesReset`),`success`),setTimeout(()=>window.location.reload(),1e3)},onCancel:()=>nt(!1)}),rt&&(0,G.jsx)(of,{title:`Turn All Plugs ${rt===`on`?`On`:`Off`}`,message:`This will turn ${rt===`on`?`ON`:`OFF`} all ${Zt?.filter(e=>e.enabled).length||0} enabled smart plugs. ${rt===`off`?`Any running printers may be affected!`:``}`,confirmText:`Turn All ${rt===`on`?`On`:`Off`}`,variant:rt===`off`?`danger`:`warning`,onConfirm:()=>{let e=rt;it(null),dr.mutate(e)},onCancel:()=>it(null)}),at&&Pn?.release_notes&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:()=>ot(!1),children:(0,G.jsxs)(zd,{className:`w-full max-w-2xl max-h-[80vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between shrink-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Release Notes - v`,Pn.latest_version]}),Pn.release_name&&Pn.release_name!==Pn.latest_version&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:Pn.release_name})]}),(0,G.jsx)(`button`,{onClick:()=>ot(!1),className:`p-1 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(Vd,{className:`overflow-y-auto flex-1`,children:(0,G.jsx)(`pre`,{className:`text-sm text-bambu-gray whitespace-pre-wrap font-sans`,children:Pn.release_notes})}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary shrink-0 flex gap-2`,children:[Pn.release_url&&(0,G.jsx)(`a`,{href:Pn.release_url,target:`_blank`,rel:`noopener noreferrer`,className:`flex-1`,children:(0,G.jsxs)(Q,{variant:`secondary`,className:`w-full`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`View on GitHub`]})}),(0,G.jsx)(Q,{onClick:()=>ot(!1),className:`flex-1`,children:`Close`})]})]})}),je===`users`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`button`,{onClick:()=>Pe(`users`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`users`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),i(`settings.tabs.users`)]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`email`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`email`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),i(`settings.tabs.emailAuth`)||`Email Authentication`,Hn?.advanced_auth_enabled&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`ldap`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`ldap`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.ldap`)||`LDAP`,Un?.ldap_enabled&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`twofa`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`twofa`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.twoFa`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Wn?.totp_enabled||Wn?.email_otp_enabled?`bg-green-400`:`bg-bambu-gray/40`}`})]}),l&&(0,G.jsxs)(`button`,{onClick:()=>Pe(`oidc`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`oidc`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4`}),i(`settings.tabs.oidc`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Gn.some(e=>e.is_enabled)?`bg-green-400`:`bg-bambu-gray/40`}`})]}),l&&(0,G.jsxs)(`button`,{onClick:()=>Pe(`security`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`security`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.security`)]})]}),Ne===`users`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${s?`bg-green-500/20`:`bg-gray-500/20`}`,children:s?(0,G.jsx)(nl,{className:`w-5 h-5 text-green-600 dark:text-green-400`}):(0,G.jsx)(tl,{className:`w-5 h-5 text-gray-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:i(`settings.authentication`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(s?`settings.authEnabledDescription`:`settings.authDisabledDescription`)})]})]}),s?c?.is_admin&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ct(!0),children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),i(`common.disable`)]}):(0,G.jsxs)(Q,{onClick:()=>t(`/setup`),children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),i(`common.enable`)]})]})})}),Hn?.advanced_auth_enabled&&(0,G.jsx)(zd,{className:`border-blue-500/30 bg-blue-500/5`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center bg-blue-500/20 flex-shrink-0`,children:(0,G.jsx)(al,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:i(`settings.email.advancedAuthEnabled`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.email.advancedAuthEnabledDesc`)})]})]})})}),s&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-session-policy`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(nl,{className:`w-5 h-5 text-bambu-green`}),i(`settings.sessionPolicy.title`)]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:i(`settings.sessionPolicy.description`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2 mb-4`,children:[[{hours:24,labelKey:`settings.sessionPolicy.preset24h`},{hours:168,labelKey:`settings.sessionPolicy.preset7d`},{hours:720,labelKey:`settings.sessionPolicy.preset30d`}].map(e=>{let t=(A?.session_max_hours??24)===e.hours;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(`session_max_hours`,e.hours),disabled:s&&!d(`settings:update`),className:`px-3 py-2 rounded-lg text-sm font-medium transition-colors ${t?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark`} disabled:opacity-50 disabled:cursor-not-allowed`,children:i(e.labelKey)},e.hours)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:720,value:A?.session_max_hours??24,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||yr(`session_max_hours`,Math.max(1,Math.min(720,t)))},disabled:s&&!d(`settings:update`),"aria-label":i(`settings.sessionPolicy.customHoursLabel`),className:`w-20 px-2 py-2 bg-bambu-dark-tertiary text-white text-sm rounded-lg border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:i(`settings.sessionPolicy.hoursSuffix`)})]})]}),(A?.session_max_hours??24)>24&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`p`,{className:`text-xs text-yellow-800 dark:text-yellow-200`,children:i(`settings.sessionPolicy.warning`)})]})]})]}),c&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-currentuser`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.currentUser`)]}),c.auth_source!==`ldap`&&(0,G.jsxs)(Q,{size:`sm`,variant:`ghost`,onClick:()=>ut(!0),children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.changePassword`)]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-lg`,children:c.username}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:[c.is_admin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`,children:i(`settings.admin`)}),c.groups?.map(e=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium ${e.name===`Administrators`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`:e.name===`Operators`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`:e.name===`Viewers`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`:`bg-gray-500/20 text-gray-300`}`,children:e.name},e.id))]})]})})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-users`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.users`)]}),d(`users:create`)&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{vt(!0),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addUser`)]})]})}),(0,G.jsx)(Vd,{children:qn?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):Kn.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8`,children:i(`settings.noUsersFound`)}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:Kn.map(e=>(0,G.jsxs)(`div`,{className:`py-3 flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.username}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-1`,children:[e.auth_source===`ldap`&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-300`,children:`LDAP`}),e.is_admin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`,children:i(`settings.admin`)}),e.groups?.map(e=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium ${e.name===`Administrators`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`:e.name===`Operators`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`:e.name===`Viewers`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`:`bg-gray-500/20 text-gray-300`}`,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 ml-4`,children:[d(`users:update`)&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>ir(e),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),d(`users:delete`)&&e.id!==c?.id&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>er(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},e.id))})})]})]}),(0,G.jsx)(`div`,{children:(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-groups`,children:[(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),i(`settings.groups`)]}),d(`groups:create`)&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>t(`/groups/new`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addGroup`)]})]})}),(0,G.jsx)(Vd,{children:Yn?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):Jn.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8`,children:i(`settings.noGroupsFound`)}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:Jn.map(e=>(0,G.jsxs)(`div`,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-4 h-4 ${e.name===`Administrators`?`text-purple-600 dark:text-purple-400`:e.name===`Operators`?`text-blue-600 dark:text-blue-400`:e.name===`Viewers`?`text-green-600 dark:text-green-400`:`text-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:e.name}),e.is_system&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:i(`settings.system`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[d(`groups:update`)&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>t(`/groups/${e.id}/edit`),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),d(`groups:delete`)&&!e.is_system&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>Ft(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1 ml-6`,children:e.description||i(`settings.noDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 mt-2 ml-6 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:i(`settings.userCount`,{count:e.user_count})}),(0,G.jsx)(`span`,{children:i(`settings.permissionCount`,{count:e.permissions.length})})]})]},e.id))})})]})})]}),!s&&(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-6`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(tl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.authDisabledTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 max-w-md mx-auto`,children:i(`settings.authDisabledMessage`)}),(0,G.jsxs)(`ul`,{className:`space-y-2 text-sm text-bambu-gray mb-6 text-left max-w-xs mx-auto`,children:[(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature1`)})]}),(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature2`)})]}),(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature3`)})]})]}),(0,G.jsxs)(Q,{onClick:()=>t(`/setup`),children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),i(`settings.enableAuthentication`)]})]})})})]}),Ne===`email`&&(0,G.jsx)(`div`,{className:`max-w-5xl`,id:`card-smtp`,children:(0,G.jsx)(jGe,{})}),Ne===`ldap`&&(0,G.jsx)(`div`,{className:`max-w-5xl`,id:`card-ldap`,children:(0,G.jsx)(NGe,{})}),Ne===`twofa`&&(0,G.jsx)(`div`,{className:`max-w-2xl`,children:(0,G.jsx)(FGe,{})}),Ne===`oidc`&&l&&(0,G.jsxs)(`div`,{className:`max-w-3xl space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`space-y-3 p-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.local_login_enabled===!1,onChange:e=>yr(`local_login_enabled`,!e.target.checked),className:`mt-1 h-4 w-4 rounded border-bambu-dark-tertiary bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green/50 cursor-pointer`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:i(`settings.localLogin.disable`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.localLogin.disableHint`)})]})]})})}),(0,G.jsx)(RGe,{})]}),Ne===`security`&&l&&(0,G.jsx)(`div`,{className:`max-w-3xl`,children:(0,G.jsx)(BGe,{})})]}),_t&&!Hn?.advanced_auth_enabled&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black flex items-center justify-center z-50 p-4`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.createUser`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[Un?.ldap_enabled&&(0,G.jsxs)(`div`,{className:`mb-4 flex items-center gap-1 p-1 bg-bambu-dark-secondary rounded-lg`,role:`tablist`,"aria-label":i(`users.modal.tabsAriaLabel`),children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":yt===`local`,onClick:()=>bt(`local`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${yt===`local`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:i(`users.modal.localTab`)}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":yt===`ldap`,onClick:()=>bt(`ldap`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${yt===`ldap`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:i(`users.modal.ldapTab`)})]}),yt===`ldap`&&Un?.ldap_enabled?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(S8,{onSuccess:e=>{vt(!1),bt(`local`),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`users.toast.ldapProvisioned`,{username:e.username}))}}),(0,G.jsx)(`div`,{className:`mt-6 flex justify-end`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{vt(!1),bt(`local`),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`common.cancel`)})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.username`)}),(0,G.jsx)(`input`,{type:`text`,value:Mt.username,onChange:e=>Nt({...Mt,username:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterUsername`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.password`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.password,onChange:e=>Nt({...Mt,password:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterPassword`),autoComplete:`new-password`,minLength:8}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:i(`settings.passwordRequirements`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.confirmPassword`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.confirmPassword,onChange:e=>Nt({...Mt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${Mt.confirmPassword&&Mt.password!==Mt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmPasswordPlaceholder`),autoComplete:`new-password`,minLength:6}),Mt.confirmPassword&&Mt.password!==Mt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.groups`)}),(0,G.jsxs)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[Jn.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Mt.group_ids.includes(e.id),onChange:()=>ar(e.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.name}),e.is_system&&(0,G.jsx)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:i(`settings.systemBadge`)})]},e.id)),Jn.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.noGroupsAvailable`)})]})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:nr,disabled:Xn.isPending||!Mt.username||!Mt.password||Mt.password!==Mt.confirmPassword||g6(Mt.password)!==null,children:Xn.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`settings.creating`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createUser`)]})})]})]})]})]})}),_t&&Hn?.advanced_auth_enabled&&(0,G.jsx)(cGe,{formData:Mt,setFormData:Nt,groups:Jn,onClose:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},onCreate:nr,isCreating:Xn.isPending,isCreateButtonDisabled:Xn.isPending||!Mt.username||!Mt.email,ldapEnabled:Un?.ldap_enabled,onLdapProvisioned:e=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`users.toast.ldapProvisioned`,{username:e.username}))}}),xt&&Ct!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black flex items-center justify-center z-50 p-4`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(kl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.editUser`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`settings.username`),` `,Hn?.advanced_auth_enabled&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:Mt.username,onChange:e=>Nt({...Mt,username:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterUsername`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`users.form.email`)||`Email`,` `,Hn?.advanced_auth_enabled?(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`}):(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,i(`users.form.optional`)||`optional`,`)`]})]}),(0,G.jsx)(`input`,{type:`email`,value:Mt.email,onChange:e=>Nt({...Mt,email:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`users.form.emailPlaceholder`)||`user@example.com`,required:Hn?.advanced_auth_enabled})]}),!Hn?.advanced_auth_enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`users.form.password`)||`Password`,` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,i(`users.form.leaveBlankToKeep`)||`leave blank to keep current`,`)`]})]}),(0,G.jsx)(`input`,{type:`password`,value:Mt.password,onChange:e=>Nt({...Mt,password:e.target.value,confirmPassword:``}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterNewPassword`),autoComplete:`new-password`,minLength:8}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:i(`settings.passwordRequirements`)})]}),Mt.password&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.confirmPassword`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.confirmPassword,onChange:e=>Nt({...Mt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${Mt.confirmPassword&&Mt.password!==Mt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmNewPassword`),autoComplete:`new-password`,minLength:6}),Mt.confirmPassword&&Mt.password!==Mt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]})]}),Hn?.advanced_auth_enabled&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3 space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`users.form.passwordManagedByAdvancedAuth`)||`Password is managed by Advanced Authentication. Use "Reset Password" to send a new password to the user via email.`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Ct&&$n.mutate(Ct),disabled:$n.isPending||!Mt.email,className:`w-full`,children:$n.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`users.form.resettingPassword`)||`Resetting Password...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),i(`users.form.resetPassword`)||`Reset Password`]})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`users.form.groups`)||`Groups`}),(0,G.jsx)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:Jn.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Mt.group_ids.includes(e.id),onChange:()=>ar(e.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.name}),e.is_system&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,i(`users.system`)||`System`,`)`]})]},e.id))})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`users.modal.cancel`)||`Cancel`}),(0,G.jsx)(Q,{onClick:()=>rr(Ct),disabled:Zn.isPending||!Mt.username||Hn?.advanced_auth_enabled&&!Mt.email||!!(!Hn?.advanced_auth_enabled&&Mt.password&&(Mt.password!==Mt.confirmPassword||g6(Mt.password)!==null)),children:Zn.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`users.modal.saving`)||`Saving...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),i(`users.modal.saveChanges`)||`Save Changes`]})})]})]})]})}),Tt!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,onClick:()=>{Et(null),Ot(null)},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:i(`settings.deleteUserTitle`)})]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:At?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(`div`,{className:`animate-spin rounded-full h-6 w-6 border-2 border-bambu-green border-t-transparent`})}):Dt&&Dt.archives+Dt.queue_items+Dt.library_files>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.userHasCreated`)}),(0,G.jsxs)(`ul`,{className:`list-disc list-inside text-bambu-gray space-y-1`,children:[Dt.archives>0&&(0,G.jsxs)(`li`,{children:[Dt.archives,` archive`,Dt.archives===1?``:`s`]}),Dt.queue_items>0&&(0,G.jsxs)(`li`,{children:[Dt.queue_items,` queue item`,Dt.queue_items===1?``:`s`]}),Dt.library_files>0&&(0,G.jsxs)(`li`,{children:[Dt.library_files,` library file`,Dt.library_files===1?``:`s`]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:i(`settings.userItemsQuestion`)}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(Q,{variant:`danger`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!0}),disabled:Qn.isPending,className:`justify-center`,children:i(`settings.deleteUserAndItems`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!1}),disabled:Qn.isPending,className:`justify-center`,children:i(`settings.deleteUserKeepItems`)}),(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>{Et(null),Ot(null)},disabled:Qn.isPending,className:`justify-center`,children:i(`common.cancel`)})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.deleteUserConfirm`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:i(`settings.actionCannotBeUndone`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>{Et(null),Ot(null)},disabled:Qn.isPending,children:i(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!1}),disabled:Qn.isPending,children:i(`settings.deleteUserTitle`)})]})]})})]})}),Pt!==null&&(0,G.jsx)(of,{title:i(`settings.deleteGroupTitle`),message:i(`settings.deleteGroupMessage`),confirmText:i(`settings.deleteGroup`),variant:`danger`,onConfirm:()=>{tr.mutate(Pt),Ft(null)},onCancel:()=>Ft(null)}),je===`failure-detection`&&(0,G.jsx)(`div`,{id:`card-failure-detection`,children:(0,G.jsx)(OGe,{})}),je===`backup`&&(0,G.jsxs)(`div`,{id:`card-backup`,children:[(0,G.jsxs)(`div`,{className:`mb-4 p-3 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-lg flex items-start gap-2`,children:[(0,G.jsx)(su,{className:`text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`,size:16}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400`,children:i(`backup.includesEncryptionKey`)})]}),(0,G.jsx)(DGe,{})]}),st&&(0,G.jsx)(of,{title:i(`settings.disableAuthenticationTitle`),message:i(`settings.disableAuthenticationMessage`),confirmText:i(`settings.disableAuthentication`),variant:`danger`,onConfirm:async()=>{try{await Z.disableAuth(),o(i(`settings.toast.authDisabled`),`success`),await u(),ct(!1),window.location.href=`/`}catch(e){o(e instanceof Error?e.message:i(`settings.toast.authDisableFailed`),`error`)}},onCancel:()=>ct(!1)}),lt&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.changePassword`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`Current Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.currentPassword,onChange:e=>ft({...dt,currentPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterCurrentPassword`),autoComplete:`current-password`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`New Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.newPassword,onChange:e=>ft({...dt,newPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterNewPasswordMin6`),autoComplete:`new-password`,minLength:6})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`Confirm New Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.confirmPassword,onChange:e=>ft({...dt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${dt.confirmPassword&&dt.newPassword!==dt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmNewPassword`),autoComplete:`new-password`,minLength:6}),dt.confirmPassword&&dt.newPassword!==dt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:async()=>{if(dt.newPassword!==dt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}if(dt.newPassword.length<6){o(i(`settings.toast.passwordTooShort`),`error`);return}mt(!0);try{await Z.changePassword(dt.currentPassword,dt.newPassword),o(i(`settings.toast.passwordChanged`),`success`),ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})}catch(e){o(e instanceof Error?e.message:`Failed to change password`,`error`)}finally{mt(!1)}},disabled:pt||!dt.currentPassword||!dt.newPassword||dt.newPassword!==dt.confirmPassword||dt.newPassword.length<6,children:pt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`settings.changing`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.changePassword`)]})})]})]})]})})]})]})]})})}var ZGe=/\[(aborted|failed|cancelled):\s*([^\]]*)\]/i;function QGe(e){if(!e)return{isPartial:!1,partialType:null,cleanedDescription:null};let t=e.match(ZGe);if(!t)return{isPartial:!1,partialType:null,cleanedDescription:e};let n=e.replace(t[0],``).trim();return{isPartial:!0,partialType:t[1].toLowerCase(),cleanedDescription:n||null}}function $Ge(e,t){if(!e)return`-`;let n=rp(e);return n?n.toLocaleString(t):e}function Y8(e){let t=e.trim();if(!t)return null;let n=Number.parseFloat(t);return Number.isFinite(n)?n:null}function X8(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}T${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}var Z8=`w-full px-3 py-2 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:outline-none focus:ring-1 focus:ring-bambu-green`,Q8=`block text-sm font-medium text-white mb-1`,$8=`px-4 py-3 text-left text-bambu-gray font-medium`,e5=`px-4 py-3 align-top text-white`;function t5({title:e,onClose:t,children:n,size:r=`md`}){let{t:i}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4`,children:(0,G.jsxs)(`div`,{className:`w-full ${r===`sm`?`max-w-xl`:r===`lg`?`max-w-6xl`:`max-w-4xl`} overflow-hidden rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-bambu-dark-tertiary px-4 py-3`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:e}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:t,children:i(`common.close`,`Close`)})]}),(0,G.jsx)(`div`,{className:`max-h-[75vh] overflow-auto p-4`,children:n})]})})}function eKe(){let{t:e,i18n:t}=U(),{hasPermission:n,user:r}=Nd(),{showToast:i}=qd(),a=co(),o=n(`cost_centers:read_own`),s=n(`cost_centers:read_all`),c=n(`cost_centers:create`),l=n(`cost_centers:modify`),u=n(`cost_centers:modify`),d=n(`cost_centers:modify`),f=n(`cost_centers:modify`),p=n(`users:read_slim`)||n(`users:read`),m=s||c||l||u||d||f,h=o||m,g=h,[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`monthly`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(`deposit`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(null),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!0),[B,V]=(0,y.useState)(0),[ee,te]=(0,y.useState)(`all`),[ne,re]=(0,y.useState)(`all`),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(`personal`),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(``),[_e,ve]=(0,y.useState)(`monthly`),[ye,be]=(0,y.useState)(``),[xe,Se]=(0,y.useState)(!1),[Ce,we]=(0,y.useState)(null),[Te,Ee]=(0,y.useState)(null),[De,Oe]=(0,y.useState)(null),[ke,Ae]=(0,y.useState)(``),[je,Me]=(0,y.useState)(``),[Ne,Pe]=(0,y.useState)(!1),[Fe,Ie]=(0,y.useState)(null),[Le,Re]=(0,y.useState)(null),[ze,Be]=(0,y.useState)(``),[Ve,He]=(0,y.useState)(``),[Ue,We]=(0,y.useState)(X8(new Date)),[Ge,Ke]=(0,y.useState)(null),[qe,Je]=(0,y.useState)(null),Ye=s||c||l||u||f&&p||d&&p;(0,y.useEffect)(()=>{Ye||fe(`personal`)},[Ye]);let{data:Xe,isLoading:Ze}=K({queryKey:[`finance`,`me`,`balance`],queryFn:Z.getMyBalance,enabled:o}),{data:Qe,isLoading:$e}=K({queryKey:[`finance`,`me`,`transactions`,50,B],queryFn:()=>Z.getMyTransactions(50,B),enabled:o}),{data:et,isLoading:tt}=K({queryKey:[`finance`,`transactions`,50,B],queryFn:()=>Z.getAllTransactions(50,B),enabled:de===`admin`&&s}),{data:nt,isLoading:rt}=K({queryKey:[`finance`,`cost-centers`,de],queryFn:()=>de===`admin`&&m?Z.listCostCenters(!0):Z.getMyCostCenters(),enabled:g}),{data:it}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:p&&(g||f||d)}),{data:at}=K({queryKey:[`finance`,`cost-center`,P],queryFn:()=>Z.getCostCenter(P),enabled:d&&P!=null});(0,y.useEffect)(()=>{!it||it.length===0||w!=null&&it.some(e=>e.id===w)||T(it[0].id)},[it,w]),(0,y.useEffect)(()=>{if(!d)return;let e=(nt||[]).filter(e=>!e.is_private);if(e.length===0){F(null);return}P!=null&&e.some(e=>e.id===P)||F(e[0].id)},[d,nt,P]),(0,y.useEffect)(()=>{if(!d||!it||it.length===0)return;let e=new Set((at?.members||[]).map(e=>e.user_id)),t=it.find(t=>!e.has(t.id));L(t?t.id:null)},[d,it,at]),(0,y.useEffect)(()=>{if(!le)return;let e=nt||[];if(e.length===0){me(null);return}pe!=null&&e.some(e=>e.id===pe)||me(e[0].id)},[le,pe,nt]),(0,y.useEffect)(()=>{if(!le||pe==null)return;let e=(nt||[]).find(e=>e.id===pe);if(e){if(ge(e.name),e.budget_mode===`total`){ve(`total`),be(e.total_budget==null?``:String(e.total_budget));return}ve(`monthly`),be(e.monthly_budget==null?``:String(e.monthly_budget))}},[le,pe,nt]);let ot=q({mutationFn:()=>Z.createCostCenter({name:_.trim(),total_budget:b===`total`?Y8(S):null,monthly_budget:b===`monthly`?Y8(S):null,is_active:!0}),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),v(``),C(``),i(e(`finance.createdCostCenter`,`Cost center created`))},onError:t=>{i(t.message||e(`finance.createCostCenterFailed`,`Failed to create cost center`),`error`)}}),st=q({mutationFn:({costCenterId:e,value:t,mode:n})=>Z.updateCostCenterBudgets(e,{total_budget:n===`total`?Y8(t):null,monthly_budget:n===`monthly`?Y8(t):null})}),ct=q({mutationFn:({costCenterId:e,name:t})=>Z.updateCostCenter(e,{name:t})}),lt=q({mutationFn:e=>Z.deleteCostCenter(e)}),ut=q({mutationFn:e=>Z.deleteTransaction(e),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.transactionDeleted`,`Transaction deleted`))},onError:t=>{i(t.message||e(`finance.deleteTransactionFailed`,`Failed to delete transaction`),`error`)}}),dt=q({mutationFn:e=>Z.editTransaction(e.transactionId,e.data),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.transactionEdited`,`Transaction updated and ledger recalculated`)),Se(!1)},onError:t=>{i(t.message||e(`finance.editTransactionFailed`,`Failed to edit transaction`),`error`)}}),ft=q({mutationFn:e=>Z.createManualPrint(e),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.manualPrintCreated`,`Manual print charge added and ledger recalculated`)),Pe(!1),Ie(null),Re(null),Be(``),He(``),We(X8(new Date))},onError:t=>{i(t.message||e(`finance.manualPrintFailed`,`Failed to create manual print`),`error`)}}),pt=q({mutationFn:e=>Z.depositUserBalance(e.userId,{amount:e.amount,description:e.description,cost_center_id:e.costCenterId??null})}),mt=q({mutationFn:e=>Z.withdrawUserBalance(e.userId,{amount:e.amount,description:e.description,cost_center_id:e.costCenterId??null})}),ht=q({mutationFn:e=>Z.upsertCostCenterMember(e.costCenterId,{user_id:e.userId,can_print:e.canPrint}),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.memberSaved`,`Member saved`))},onError:t=>{i(t.message||e(`finance.memberSaveFailed`,`Failed to save member`),`error`)}}),gt=q({mutationFn:e=>Z.removeCostCenterMember(e.costCenterId,e.userId),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.memberRemoved`,`Member removed`))},onError:t=>{i(t.message||e(`finance.memberRemoveFailed`,`Failed to remove member`),`error`)}}),_t=pt.isPending||mt.isPending,vt=()=>{if(!_.trim()){i(e(`finance.costCenterNameRequired`,`Cost center name is required`),`error`);return}ot.mutate()},yt=async()=>{if(pe==null){i(e(`finance.selectCostCenter`,`Please select a cost center`),`error`);return}let t=he.trim();if(!t){i(e(`finance.costCenterNameRequired`,`Cost center name is required`),`error`);return}try{l&&await ct.mutateAsync({costCenterId:pe,name:t}),u&&await st.mutateAsync({costCenterId:pe,mode:_e,value:ye}),a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.costCenterUpdated`,`Cost center updated`)),ue(!1)}catch(t){i(t.message||e(`finance.costCenterUpdateFailed`,`Failed to update cost center`),`error`)}},bt=e=>{let t=(nt||[]).find(t=>t.id===e);t&&(me(t.id),ge(t.name),t.budget_mode===`total`?(ve(`total`),be(t.total_budget==null?``:String(t.total_budget))):(ve(`monthly`),be(t.monthly_budget==null?``:String(t.monthly_budget))),ue(!0))},xt=async()=>{if(Ge)try{await lt.mutateAsync(Ge.id),a.invalidateQueries({queryKey:[`finance`]}),P===Ge.id&&F(null),i(e(`finance.costCenterDeleted`,`Cost center deleted`))}catch(t){i(t.message||e(`finance.costCenterDeleteFailed`,`Failed to delete cost center`),`error`)}finally{Ke(null)}},St=()=>{qe!=null&&ut.mutate(qe,{onSettled:()=>Je(null)})},Ct=e=>{we(e.id),Ee(e.user_id),Oe(e.cost_center_id),Ae(String(e.amount)),Me(e.description||``),Se(!0)},wt=async()=>{if(Ce==null)return;let t=ke?Number.parseFloat(ke):null;if(t!==null&&!Number.isFinite(t)){i(e(`finance.amountInvalid`,`Amount must be a valid number`),`error`);return}dt.mutate({transactionId:Ce,data:{user_id:Te||void 0,cost_center_id:De||void 0,amount:t??void 0,description:je||void 0}})},Tt=async()=>{if(Fe==null){i(e(`finance.userRequired`,`Please select a user`),`error`);return}if(Le==null){i(e(`finance.costCenterRequired`,`Please select a cost center`),`error`);return}let t=ze?Number.parseFloat(ze):null;if(t===null||!Number.isFinite(t)){i(e(`finance.amountInvalid`,`Amount must be a valid number`),`error`);return}t=Math.abs(t),ft.mutate({user_id:Fe,cost_center_id:Le,amount:t,description:Ve||void 0,created_at:Ue?new Date(Ue).toISOString():void 0})},Et=async()=>{if(w==null){i(e(`finance.userRequired`,`Please select a user`),`error`);return}let t=Number.parseFloat(O);if(!Number.isFinite(t)||t<=0){i(e(`finance.amountMustBePositive`,`Amount must be greater than zero`),`error`);return}let n={userId:w,amount:t,description:A.trim()||void 0,costCenterId:M};try{E===`deposit`?await pt.mutateAsync(n):await mt.mutateAsync(n),a.invalidateQueries({queryKey:[`finance`]}),k(``),j(``),i(E===`deposit`?e(`finance.depositSuccess`,`Deposit successful`):e(`finance.withdrawSuccess`,`Withdrawal successful`))}catch(t){i(t.message||e(`finance.adjustmentFailed`,`Wallet adjustment failed`),`error`)}},Dt=()=>{if(P==null){i(e(`finance.selectCostCenter`,`Please select a cost center`),`error`);return}if(I==null){i(e(`finance.noEligibleUsers`,`No eligible users available`),`error`);return}ht.mutate({costCenterId:P,userId:I,canPrint:R})},Ot=e=>{P!=null&>.mutate({costCenterId:P,userId:e})},kt=Lf(Xe?.currency||`EUR`),At=(0,y.useMemo)(()=>[...it||[]].sort((e,t)=>e.username.localeCompare(t.username)),[it]),jt=(0,y.useMemo)(()=>{let e=new Map;for(let t of At)e.set(t.id,t.username);return e},[At]),Mt=(0,y.useMemo)(()=>{let e=new Set((at?.members||[]).map(e=>e.user_id));return At.filter(t=>!e.has(t.id))},[At,at]),Nt=de===`admin`&&s?et:Qe,Pt=de===`admin`&&s?tt:$e,Ft=(0,y.useMemo)(()=>Nt?.items??[],[Nt?.items]),It=Nt?.total??0,Lt=Math.max(1,Math.ceil(It/50)),Rt=(0,y.useMemo)(()=>Ft.filter(e=>!(ee!==`all`&&e.transaction_type!==ee||ne!==`all`&&e.cost_center_id!==ne)),[Ft,ee,ne]),zt=Math.floor(B/50)+1,Bt=de===`admin`,Vt=t=>t===`deposit`?e(`finance.deposit`):t===`withdraw`?e(`finance.withdraw`):t===`print_charge`?e(`finance.printCharge`):t,Ht=t=>t==null?e(`finance.personal`,`Personal`):jt.get(t)||(r?.id===t&&r.username?r.username:e(`finance.userWithId`,`User #{{id}}`,{id:t})),Ut=t=>t.budget_limit==null||t.budget_available==null?e(`finance.unlimited`,`Unlimited`):`${kt}${t.budget_available.toFixed(2)}/${kt}${t.budget_limit.toFixed(2)}`;return h?(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ju,{className:`h-6 w-6 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`finance.title`,`Finance`)})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-2 max-w-2xl`,children:e(`finance.subtitle`,`Wallet, personal transactions, and cost centers`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 max-w-2xl`,children:e(`finance.budgetPolicyHint`,`Account balances track costs. Printing is limited only by the selected cost center budget; without a budget, printing is unlimited.`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 lg:items-end`,children:[Ye&&(0,G.jsxs)(`div`,{className:`inline-flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>fe(`personal`),className:`px-3 py-1.5 text-sm ${de===`personal`?`bg-bambu-green text-black font-medium`:`bg-bambu-dark text-bambu-gray`}`,children:e(`finance.personalView`,`Personal view`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>fe(`admin`),className:`px-3 py-1.5 text-sm ${de===`admin`?`bg-bambu-green text-black font-medium`:`bg-bambu-dark text-bambu-gray`}`,children:e(`finance.adminView`,`Admin view`)})]}),de===`admin`&&Ye&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 lg:justify-end`,children:[c&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>ae(!0),children:e(`finance.createCostCenter`,`Create cost center`)}),f&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>se(!0),children:e(`finance.adjustWallet`,`Adjust wallet`)}),f&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Pe(!0),children:e(`finance.addManualPrint`,`Add manual print`)}),d&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>ce(!0),children:e(`finance.manageMembers`,`Manage cost center members`)})]})]})]}),(0,G.jsxs)(`div`,{className:`grid gap-5 md:grid-cols-2 xl:grid-cols-3`,children:[(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`finance.currentBalance`,`Personal account balance`)}),(0,G.jsx)(Ju,{className:`w-4 h-4 text-bambu-green/90`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:Ze?e(`common.loading`,`Loading...`):`${kt}${(Xe?.balance??0).toFixed(2)}`})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:de===`admin`?e(`finance.transactions`,`Transactions`):e(`finance.personalTransactions`,`Personal transactions`)}),(0,G.jsx)(As,{className:`w-4 h-4 text-blue-400`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:Pt?`-`:It})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsx)(es,{className:`w-4 h-4 text-orange-400`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:rt?`-`:nt?.length??0})})]})]}),ie&&c&&(0,G.jsx)(t5,{title:e(`finance.createCostCenter`,`Create cost center`),size:`md`,onClose:()=>ae(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenterName`,`Name`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:e(`finance.costCenterName`,`Name`),className:Z8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.budgetType`,`Budget type`)}),(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:Z8,children:[(0,G.jsx)(`option`,{value:`monthly`,children:e(`finance.monthlyBudget`,`Monthly budget`)}),(0,G.jsx)(`option`,{value:`total`,children:e(`finance.totalBudget`,`Total budget`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:b===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):e(`finance.totalBudget`,`Total budget`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:S,onChange:e=>C(e.target.value),placeholder:`0.00`,className:Z8})]})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:vt,disabled:ot.isPending,children:ot.isPending?e(`common.saving`,`Saving...`):e(`finance.create`,`Create`)})]})}),oe&&f&&p&&(0,G.jsx)(t5,{title:e(`finance.adjustWallet`,`Adjust wallet`),size:`md`,onClose:()=>se(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.selectUser`,`Select user`)}),(0,G.jsx)(`select`,{value:w??``,onChange:e=>T(e.target.value?Number(e.target.value):null),className:Z8,children:(At||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.transactionType`,`Type`)}),(0,G.jsxs)(`select`,{value:E,onChange:e=>D(e.target.value),className:Z8,children:[(0,G.jsx)(`option`,{value:`deposit`,children:e(`finance.deposit`,`Deposit`)}),(0,G.jsx)(`option`,{value:`withdraw`,children:e(`finance.withdraw`,`Withdraw`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:O,onChange:e=>k(e.target.value),placeholder:`0.00`,className:Z8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsxs)(`select`,{value:M??``,onChange:e=>N(e.target.value?Number(e.target.value):null),className:Z8,children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.noCostCenter`,`No cost center`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`input`,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:e(`finance.descriptionOptional`,`Description (optional)`),className:Z8})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:Et,disabled:_t,children:_t?e(`common.saving`,`Saving...`):e(`finance.applyAdjustment`,`Apply adjustment`)})]})}),H&&d&&p&&(0,G.jsx)(t5,{title:e(`finance.manageMembers`,`Manage cost center members`),size:`lg`,onClose:()=>ce(!1),children:(0,G.jsxs)(`div`,{className:`space-y-5`,children:[(0,G.jsxs)(`div`,{className:`grid gap-5 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsx)(`select`,{value:P??``,onChange:e=>F(e.target.value?Number(e.target.value):null),className:Z8,children:(nt||[]).filter(e=>!e.is_private).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.selectUser`,`Select user`)}),(0,G.jsxs)(`select`,{value:I??``,onChange:e=>L(e.target.value?Number(e.target.value):null),className:Z8,children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user`)}),Mt.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded border border-bambu-dark-tertiary bg-bambu-dark-secondary px-3 py-2`,children:[(0,G.jsx)(`input`,{id:`memberCanPrint`,type:`checkbox`,checked:R,onChange:e=>z(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`memberCanPrint`,className:`text-sm text-bambu-gray`,children:e(`finance.memberCanPrint`,`Member can print`)})]}),(0,G.jsx)(`div`,{className:`flex items-end`,children:(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:Dt,disabled:ht.isPending||I==null,children:ht.isPending?e(`common.saving`,`Saving...`):e(`finance.addMember`,`Add member`)})})]}),(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:$8,children:e(`common.name`,`Name`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.canPrint`,`Can print`)}),(0,G.jsx)(`th`,{className:$8,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsxs)(`tbody`,{children:[(at?.members||[]).map(t=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:e5,children:At.find(e=>e.id===t.user_id)?.username||`User ${t.user_id}`}),(0,G.jsx)(`td`,{className:e5,children:t.can_print?e(`common.yes`,`Yes`):e(`common.no`,`No`)}),(0,G.jsx)(`td`,{className:e5,children:(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:()=>Ot(t.user_id),disabled:gt.isPending,children:e(`common.remove`,`Remove`)})})]},t.id)),(at?.members||[]).length===0&&(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:3,className:`py-3 text-bambu-gray`,children:e(`finance.noMembers`,`No members assigned.`)})})]})]})})]})}),le&&(l||u)&&(0,G.jsx)(t5,{title:e(`finance.editCostCenter`,`Edit cost center`),size:`md`,onClose:()=>ue(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenterName`,`Name`)}),(0,G.jsx)(`input`,{type:`text`,value:he,onChange:e=>ge(e.target.value),placeholder:e(`finance.costCenterName`,`Name`),className:Z8,disabled:!l})]}),(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.budgetType`,`Budget type`)}),(0,G.jsxs)(`select`,{value:_e,onChange:e=>ve(e.target.value),className:Z8,disabled:!u,children:[(0,G.jsx)(`option`,{value:`monthly`,children:e(`finance.monthlyBudget`,`Monthly budget`)}),(0,G.jsx)(`option`,{value:`total`,children:e(`finance.totalBudget`,`Total budget`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:_e===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):e(`finance.totalBudget`,`Total budget`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:ye,onChange:e=>be(e.target.value),placeholder:`0.00`,className:Z8,disabled:!u})]})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:yt,disabled:ct.isPending||st.isPending||pe==null,children:ct.isPending||st.isPending?e(`common.saving`,`Saving...`):e(`common.save`,`Save`)})]})}),(0,G.jsxs)(`div`,{className:`grid gap-6 ${g&&o?`xl:grid-cols-2`:``}`,children:[g&&(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`finance.myCostCenters`,`My cost centers`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`finance.costCentersHint`,`Review budget limits and keep costs under control`)})]}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[rt&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`,`Loading...`)}),!rt&&(!nt||nt.length===0)&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noCostCenters`,`No cost centers found.`)}),!rt&&nt&&nt.length>0&&(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:$8,children:e(`common.name`,`Name`)}),Bt&&(0,G.jsx)(`th`,{className:$8,children:e(`finance.owner`,`Owner`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.balance`,`Account balance`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.budget`,`Budget`)}),Bt&&(0,G.jsx)(`th`,{className:$8,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsx)(`tbody`,{children:nt.map(t=>{let n=l||u,r=!t.is_private&&l;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:e5,children:t.name}),Bt&&(0,G.jsx)(`td`,{className:e5,children:t.is_private?Ht(t.owner_user_id):e(`finance.shared`,`Shared`)}),(0,G.jsxs)(`td`,{className:e5,children:[kt,t.total_balance.toFixed(2)]}),(0,G.jsx)(`td`,{className:e5,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,G.jsx)(`span`,{children:Ut(t)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t.budget_mode===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):t.budget_mode===`total`?e(`finance.totalBudget`,`Total budget`):e(`finance.noBudget`,`No budget`)})]})}),Bt&&(0,G.jsx)(`td`,{className:e5,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>bt(t.id),disabled:!n,title:n?e(`common.edit`,`Edit`):e(`finance.cannotEditPrivateCostCenter`,`Private cost centers cannot be edited here`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),r&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>Ke({id:t.id,name:t.name}),disabled:lt.isPending,title:e(`common.delete`,`Delete`),className:`text-red-400 hover:text-red-300 hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},t.id)})})]})})]})]}),o&&(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`finance.recentTransactions`,`Recent transactions`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`finance.transactionsHint`,`Filter by type and cost center, then navigate pages`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto] xl:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_auto] items-end`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.transactionType`,`Type`)}),(0,G.jsxs)(`select`,{value:ee,onChange:e=>te(e.target.value),className:Z8,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`finance.allTypes`)}),(0,G.jsx)(`option`,{value:`deposit`,children:e(`finance.deposit`)}),(0,G.jsx)(`option`,{value:`withdraw`,children:e(`finance.withdraw`)}),(0,G.jsx)(`option`,{value:`print_charge`,children:e(`finance.printCharge`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsxs)(`select`,{value:ne,onChange:e=>re(e.target.value===`all`?`all`:Number(e.target.value)),className:Z8,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`finance.allCostCenters`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),Pt&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`,`Loading...`)}),!Pt&&(!Ft||Ft.length===0)&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noTransactions`,`No transactions available.`)}),!Pt&&Ft.length>0&&Rt.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noTransactionsForFilter`,`No transactions match the selected filters.`)}),!Pt&&Rt.length>0&&(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:$8,children:e(`common.date`,`Date`)}),Bt&&(0,G.jsx)(`th`,{className:$8,children:e(`common.user`,`User`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.costCenter`,`Cost center`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.transactionType`,`Type`)}),(0,G.jsx)(`th`,{className:$8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`th`,{className:$8,children:e(`finance.balanceAfter`,`Balance after`)}),Bt&&(0,G.jsx)(`th`,{className:$8,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsx)(`tbody`,{children:Rt.map(n=>{let r=n.amount>=0,i=n.cost_center_id==null?null:(nt||[]).find(e=>e.id===n.cost_center_id),a=jt.get(n.user_id),o=n.transaction_type===`print_charge`?QGe(n.description??null):null,s=o?.isPartial??!1;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:e5,children:$Ge(n.created_at,t.language)}),Bt&&(0,G.jsx)(`td`,{className:e5,children:a||e(`finance.userWithId`,`User #{{id}}`,{id:n.user_id})}),(0,G.jsx)(`td`,{className:e5,children:i?.name||`-`}),(0,G.jsx)(`td`,{className:e5,children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(`span`,{children:Vt(n.transaction_type)}),s&&(0,G.jsx)(`span`,{className:`rounded border border-yellow-500/40 bg-yellow-500/10 px-2 py-0.5 text-[11px] text-yellow-300`,children:o&&o.partialType?e(`finance.partialStatus.${o.partialType}`,o.partialType):e(`finance.partial`,`Partial`)})]})}),(0,G.jsx)(`td`,{className:e5,children:(o?.cleanedDescription??n.description)||`-`}),(0,G.jsxs)(`td`,{className:`${e5} ${r?`text-green-400`:`text-red-400`}`,children:[r?`+`:`-`,kt,Math.abs(n.amount).toFixed(2)]}),(0,G.jsx)(`td`,{className:e5,children:n.balance_after==null?`-`:`${n.balance_after<0?`-`:``}${kt}${Math.abs(n.balance_after).toFixed(2)}`}),Bt&&(0,G.jsx)(`td`,{className:e5,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Ct(n),disabled:dt.isPending,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:()=>Je(n.id),disabled:ut.isPending,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},n.id)})})]})}),!Pt&&Rt.length>0&&(0,G.jsx)(`div`,{className:`flex justify-end pt-2 lg:pt-0`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(0),disabled:B===0||Pt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.first`,`First`),children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(e=>Math.max(0,e-50)),disabled:B===0||Pt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.prev`,`Previous`),children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`text-bambu-gray px-1 whitespace-nowrap`,children:e(`finance.pageNumberOf`,`Page {{page}} of {{total}}`,{page:zt,total:Lt})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(e=>e+50),disabled:Pt||zt>=Lt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.next`,`Next`),children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(Math.max(0,(Lt-1)*50)),disabled:Pt||zt>=Lt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.last`,`Last`),children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})})]})]}),xe&&Ce!==null&&(0,G.jsx)(t5,{title:e(`finance.editTransaction`,`Edit Transaction`),onClose:()=>Se(!1),size:`md`,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.user`,`User`)}),(0,G.jsxs)(`select`,{className:Z8,value:Te||``,onChange:e=>Ee(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user...`)}),At.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenter`,`Cost center (optional)`)}),(0,G.jsxs)(`select`,{className:Z8,value:De||``,onChange:e=>Oe(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.noCostCenter`,`Personal (no cost center)`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,className:Z8,value:ke,onChange:e=>Ae(e.target.value),placeholder:e(`finance.amountExample`,`e.g., 10.50`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`textarea`,{className:`${Z8} resize-none`,rows:3,value:je,onChange:e=>Me(e.target.value),placeholder:e(`finance.manualAdjustmentExample`,`e.g., Manual adjustment`)})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-4`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Se(!1),children:e(`common.cancel`,`Cancel`)}),(0,G.jsx)(Q,{onClick:wt,disabled:dt.isPending,children:e(`common.save`,`Save`)})]})]})}),Ne&&(0,G.jsx)(t5,{title:e(`finance.addManualPrint`,`Add manual print`),onClose:()=>Pe(!1),size:`md`,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.user`,`User`)}),(0,G.jsxs)(`select`,{className:Z8,value:Fe||``,onChange:e=>Ie(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user...`)}),At.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.costCenter`,`Cost center`)}),(0,G.jsxs)(`select`,{className:Z8,value:Le||``,onChange:e=>Re(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectCostCenter`,`Select cost center...`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,className:Z8,value:ze,onChange:e=>Be(e.target.value),placeholder:e(`finance.amountExample`,`e.g., 4.00`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`input`,{type:`text`,value:Ve,onChange:e=>He(e.target.value),placeholder:e(`finance.descriptionOptional`,`Description (optional)`),className:Z8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:Q8,children:e(`common.date`,`Date`)}),(0,G.jsx)(`input`,{type:`datetime-local`,value:Ue,onChange:e=>We(e.target.value),className:Z8})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-4`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Pe(!1),children:e(`common.cancel`,`Cancel`)}),(0,G.jsx)(Q,{onClick:Tt,disabled:ft.isPending,children:ft.isPending?e(`common.saving`,`Saving...`):e(`finance.addManualPrint`,`Add manual print`)})]})]})}),Ge&&(0,G.jsx)(of,{title:e(`common.delete`,`Delete`),message:e(`finance.confirmDeleteCostCenter`,`Delete cost center "{{name}}"?`,{name:Ge.name}),confirmText:e(`common.delete`,`Delete`),variant:`danger`,isLoading:lt.isPending,onConfirm:xt,onCancel:()=>Ke(null)}),qe!=null&&(0,G.jsx)(of,{title:e(`finance.deleteTransaction`,`Delete transaction`),message:e(`finance.deleteTransactionConfirm`,`Delete this transaction? Balances will be recalculated automatically.`),confirmText:e(`common.delete`,`Delete`),variant:`danger`,isLoading:ut.isPending,onConfirm:St,onCancel:()=>Je(null)})]})]}):(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ju,{className:`h-6 w-6 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`finance.title`,`Finance`)})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`p`,{className:`text-bambu-gray mt-2 max-w-2xl`,children:e(`finance.subtitle`,`Wallet, personal transactions, and cost centers`)})}),(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 text-center text-bambu-gray`,children:e(`finance.noAccess`,`You do not have permission to view finance data.`)})})]})}var n5={PLA:`GFL99`,"PLA-CF":`GFL98`,"PLA SILK":`GFL96`,"PLA HIGH SPEED":`GFL95`,PETG:`GFG99`,"PETG HF":`GFG96`,"PETG-CF":`GFG98`,PCTG:`GFG97`,ABS:`GFB99`,ASA:`GFB98`,PC:`GFC99`,PA:`GFN99`,"PA-CF":`GFN98`,NYLON:`GFN99`,TPU:`GFU99`,PVA:`GFS99`,HIPS:`GFS98`,PE:`GFP99`,PP:`GFP97`};function r5(e){let t=(e||``).toUpperCase().trim();return t&&(n5[t]||n5[t.replace(/[-\s]?CF$/,``)]||n5[t.replace(/\+$/,``)]||n5[t.split(/[-\s]/)[0]])||``}function i5(e){let t=e.replace(/@.+$/,``).trim();return t.startsWith(`# `)?t.slice(2).trim():t}var a5={local:0,orca_cloud:1,cloud:2,builtin:3};function tKe(e){let{localPresets:t,orcaProfiles:n,cloudSettings:r,builtinFilaments:i}=e,a=[],o=e=>e.trim().toLowerCase(),s=new Set,c=new Set,l=new Set,u=(e,t,...n)=>{let r=n.filter(e=>!!e);if(r.some(e=>s.has(e)))return!1;let i=`${e}|${o(t)}`;return c.has(i)?!1:(r.forEach(e=>s.add(e)),c.add(i),l.add(o(t)),!0)};for(let e of t??[]){let t=i5(e.name),n=e.filament_type||GH(t).material;u(`local`,t)&&a.push({id:`local_${e.id}`,name:t,source:`local`,filamentId:r5(n),filamentType:n||``})}for(let e of n??[]){let t=i5(e.name),n=GH(t).material;u(`orca_cloud`,t,e.setting_id)&&a.push({id:`orca_${e.setting_id}`,name:t,source:`orca_cloud`,filamentId:r5(n),filamentType:n})}for(let e of r??[]){let t=i5(e.name),n=e.setting_id.startsWith(`GFS`)?$H(e.setting_id):``;u(`cloud`,t,e.setting_id,n||void 0)&&a.push({id:e.setting_id,name:t,source:`cloud`,filamentId:n,filamentType:GH(t).material})}for(let e of i??[]){let t=e.filament_id.startsWith(`GF`)?`GFS${e.filament_id.slice(2)}`:e.filament_id;l.has(o(e.name))||u(`builtin`,e.name,e.filament_id,t)&&a.push({id:`builtin_${e.filament_id}`,name:e.name,source:`builtin`,filamentId:e.filament_id,filamentType:GH(e.name).material})}return a.sort((e,t)=>e.source===t.source?e.name.localeCompare(t.name):a5[e.source]-a5[t.source])}async function nKe(e,t){if(e.filamentId)return e.filamentId;if(e.source!==`cloud`||!t)return``;try{return(await t(e.id)).filament_id||``}catch{return``}}var o5=e=>(Math.trunc(parseFloat(e)*1e3)/1e3).toFixed(3),s5=`HS00`,c5=`HH00`,l5=e=>{let t=e.match(/^([A-Z]{2}\d{2})/);return t?t[1]:s5},rKe=e=>l5(e)===c5?`HF`:`S`,u5=e=>{for(let t of[`High Flow_`,`High Flow `,`Standard_`,`Standard `,`HF_`,`HF `,`S_`,`S `])if(e.startsWith(t))return e.slice(t.length);let t=e.indexOf(`_`);return t>0?e.slice(t+1):e};function d5({profile:e,onEdit:t,onCopy:n,selectionMode:r,isSelected:i,onToggleSelect:a,note:o}){let s=rKe(e.nozzle_id),c=e.nozzle_diameter;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,G.jsx)(`button`,{onClick:a,className:`text-bambu-gray hover:text-white transition-colors p-1`,children:i?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4`})}),(0,G.jsxs)(`button`,{onClick:()=>{r&&a?a():t()},className:`flex-1 text-left px-3 py-2 bg-bambu-dark rounded hover:bg-bambu-dark-tertiary transition-colors ${i?`ring-1 ring-bambu-green`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-green font-mono text-sm font-bold whitespace-nowrap`,children:o5(e.k_value)}),(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name||`Unnamed`}),o&&(0,G.jsx)(`span`,{title:`Has note`,children:(0,G.jsx)(Cu,{className:`w-3 h-3 text-yellow-500`})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:[s,` `,c]})]}),o&&(0,G.jsxs)(`div`,{className:`text-xs mt-0.5 truncate text-yellow-500/70`,title:o,children:[`Note: `,o.length>50?o.substring(0,50)+`...`:o]})]}),!r&&n&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),n()},className:`text-bambu-gray hover:text-white transition-colors p-1`,title:`Copy profile`,children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})}function f5({profile:e,printerId:t,nozzleDiameter:n,existingProfiles:r=[],builtinFilaments:i=[],filamentPresets:a=[],isDualNozzle:o=!1,supportsFlowType:s=!0,initialNote:c=``,initialNoteKey:l=null,onClose:u,onSave:d,onSaveNote:f,hasPermission:p}){let{t:m}=U(),{showToast:h}=qd(),[g,_]=(0,y.useState)(e?.name||``),[v,b]=(0,y.useState)(e?.k_value?o5(e.k_value):`0.020`),[x,S]=(0,y.useState)(e?.filament_id||``),[C,w]=(0,y.useState)(e?l5(e.nozzle_id):s5),[T,E]=(0,y.useState)(e?.nozzle_diameter||n),[D,O]=(0,y.useState)(e?[e.extruder_id]:o?[0,1]:[0]),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)({current:0,total:0}),[N,P]=(0,y.useState)(c),[F,I]=(0,y.useState)(``),{schedule:L}=iU(),R=y.useMemo(()=>e?.filament_id?i.find(t=>t.filament_id===e.filament_id)?.name||u5(r.find(t=>t.filament_id===e.filament_id)?.name||e.name||``)||e.filament_id:``,[e,r,i]),z=y.useMemo(()=>{let e=[[`local`,m(`kProfiles.modal.source.local`)],[`orca_cloud`,m(`kProfiles.modal.source.orcaCloud`)],[`cloud`,m(`kProfiles.modal.source.bambuCloud`)],[`builtin`,m(`kProfiles.modal.source.builtin`)]],t=F.trim().toLowerCase(),n=t?a.filter(e=>e.name.toLowerCase().includes(t)):a;return e.map(([e,t])=>({source:e,label:t,items:n.filter(t=>t.source===e)})).filter(e=>e.items.length>0)},[a,F,m]),B=q({mutationFn:e=>(console.log(`[KProfile] Calling API...`),Z.setKProfile(t,e)),onSuccess:(t,n)=>{if(console.log(`[KProfile] Save success:`,t),h(m(`kProfiles.toast.profileSaved`)),f&&N!==c){let t;t=N===``&&l?l:e&&e.slot_id>0?e.setting_id||`slot_${e.slot_id}_${e.filament_id}_${e.extruder_id}`:`name_${g}_${n.filament_id}`,f(t,N)}A(!0),L(()=>{A(!1),d()},2500)},onError:e=>{console.error(`[KProfile] Save error:`,e),h(e.message,`error`),A(!1)}}),V=q({mutationFn:e=>(console.log(`[KProfile] Deleting profile...`),Z.deleteKProfile(t,e)),onSuccess:e=>{console.log(`[KProfile] Delete success:`,e),h(m(`kProfiles.toast.profileDeleted`)),A(!0),L(()=>{A(!1),u()},4e3)},onError:e=>{console.error(`[KProfile] Delete error:`,e),h(e.message,`error`),A(!1)}}),[ee,te]=(0,y.useState)(!1),ne=()=>{e&&V.mutate({slot_id:e.slot_id,extruder_id:e.extruder_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,filament_id:e.filament_id,setting_id:e.setting_id})};return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:[(0,G.jsxs)(zd,{className:`w-full max-w-md relative`,children:[k&&(0,G.jsxs)(`div`,{className:`absolute inset-0 bg-bambu-dark-secondary/90 flex flex-col items-center justify-center z-10 rounded-lg`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin mb-3`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:j.total>1?m(`kProfiles.modal.savingExtruder`,{current:j.current,total:j.total}):m(`kProfiles.modal.syncing`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-1`,children:m(`kProfiles.modal.pleaseWait`)})]}),(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:m(e?`kProfiles.modal.editTitle`:`kProfiles.modal.addTitle`)}),(0,G.jsx)(`button`,{onClick:u,className:`text-bambu-gray hover:text-white transition-colors`,disabled:k,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:async n=>{if(n.preventDefault(),o&&!e&&D.length===0){h(m(`kProfiles.toast.selectAtLeastOneExtruder`),`error`);return}let r=parseFloat(v).toFixed(6),i=`${C}-${T}`,s=e&&e.nozzle_id||i,c=e?e.nozzle_diameter:T,l=e?.filament_id||``;if(!e){let e=a.find(e=>e.id===x);if(!e){h(m(`kProfiles.toast.selectFilament`),`error`);return}if(l=await nKe(e,Z.getCloudSettingDetail),!l){h(m(`kProfiles.toast.filamentNotResolvable`,{name:e.name}),`error`);return}}if(e||D.length===1){let t={name:g,k_value:r,filament_id:l,nozzle_id:s,nozzle_diameter:c,extruder_id:e?e.extruder_id:D[0],setting_id:e?.setting_id,slot_id:e?.slot_id??0};console.log(`[KProfile] Saving profile:`,t),B.mutate(t);return}A(!0),M({current:1,total:D.length});let u=D.map(e=>({name:g,k_value:r,filament_id:l,nozzle_id:i,nozzle_diameter:T,extruder_id:e,setting_id:void 0,slot_id:0}));console.log(`[KProfile] Saving ${u.length} profiles in batch:`,u);try{await Z.setKProfilesBatch(t,u),h(m(`kProfiles.toast.profilesSaved`,{count:D.length})),f&&N&&f(`name_${g}_${l}`,N)}catch(e){console.error(`[KProfile] Failed to save batch:`,e),h(m(`kProfiles.toast.failedToSaveBatch`),`error`),A(!1),M({current:0,total:0});return}M({current:D.length,total:D.length}),L(()=>{A(!1),M({current:0,total:0}),d()},3e3)},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.profileName`)}),(0,G.jsx)(`input`,{type:`text`,value:g,onChange:e=>_(e.target.value),disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,placeholder:m(`kProfiles.modal.profileNamePlaceholder`),required:!e})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.kValue`)}),(0,G.jsx)(`input`,{type:`text`,inputMode:`decimal`,value:v,onChange:e=>{let t=e.target.value;(t===``||/^\d*\.?\d*$/.test(t))&&b(t)},onBlur:e=>{let t=parseFloat(e.target.value);isNaN(t)||b((Math.trunc(t*1e3)/1e3).toFixed(3))},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none font-mono`,placeholder:m(`kProfiles.modal.kValuePlaceholder`),required:!0}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:m(`kProfiles.modal.kValueHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.filament`)}),e?(0,G.jsx)(`div`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white opacity-60`,children:R||e.filament_id}):(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`relative border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:F,onChange:e=>I(e.target.value),placeholder:m(`kProfiles.modal.searchFilaments`),className:`w-full pl-10 pr-3 py-2 bg-bambu-dark text-white placeholder-bambu-gray focus:outline-none`})]}),(0,G.jsx)(`div`,{className:`max-h-56 overflow-y-auto bg-bambu-dark`,children:z.length===0?(0,G.jsx)(`p`,{className:`px-3 py-3 text-xs text-bambu-gray`,children:a.length===0?m(`kProfiles.modal.noFilamentsHelp`):m(`kProfiles.modal.noFilamentMatches`)}):z.map(e=>(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-2 px-3 py-1.5 bg-bambu-dark-secondary border-y border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs font-bold uppercase tracking-wider text-bambu-green`,children:e.label}),(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray`,children:e.items.length})]}),e.items.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{S(e.id),g||_(`${C===c5?`HF`:`S`} ${e.name}`)},className:`w-full text-left px-3 py-1.5 text-sm transition-colors ${x===e.id?`bg-bambu-green/20 text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,children:e.name},e.id))]},e.source))})]})]}),(0,G.jsxs)(`div`,{className:s?`grid grid-cols-2 gap-4`:``,children:[(0,G.jsxs)(`div`,{className:s?``:`hidden`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.flowType`)}),(0,G.jsxs)(`select`,{value:C,onChange:t=>{let n=t.target.value;if(w(n),!e&&x&&!g){let e=a.find(e=>e.id===x);e&&_(`${n===c5?`HF`:`S`} ${e.name}`)}},disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,children:[(0,G.jsx)(`option`,{value:c5,children:m(`kProfiles.modal.highFlow`)}),(0,G.jsx)(`option`,{value:s5,children:m(`kProfiles.modal.standard`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.nozzleSize`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>E(e.target.value),disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,children:[(0,G.jsx)(`option`,{value:`0.2`,children:`0.2mm`}),(0,G.jsx)(`option`,{value:`0.4`,children:`0.4mm`}),(0,G.jsx)(`option`,{value:`0.6`,children:`0.6mm`}),(0,G.jsx)(`option`,{value:`0.8`,children:`0.8mm`})]})]})]}),o&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(e?`kProfiles.modal.extruder`:`kProfiles.modal.extruders`)}),e?(0,G.jsx)(`div`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white opacity-60`,children:e.extruder_id===1?m(`kProfiles.modal.left`):m(`kProfiles.modal.right`)}):(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D.includes(1),onChange:e=>{e.target.checked?O([...D,1]):O(D.filter(e=>e!==1))},className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0 accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:m(`kProfiles.modal.left`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D.includes(0),onChange:e=>{e.target.checked?O([...D,0]):O(D.filter(e=>e!==0))},className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0 accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:m(`kProfiles.modal.right`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.notes`)}),(0,G.jsx)(`textarea`,{value:N,onChange:e=>P(e.target.value),placeholder:m(`kProfiles.modal.notesPlaceholder`),rows:2,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none resize-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:m(`kProfiles.modal.notesHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-4`,children:[e&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>te(!0),disabled:V.isPending||k||!p(`kprofiles:delete`),title:p(`kprofiles:delete`)?void 0:m(`kProfiles.permission.noDelete`),className:`text-red-500 hover:bg-red-500/10`,children:V.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:u,disabled:k,className:`flex-1`,children:m(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:B.isPending||k||!p(e?`kprofiles:update`:`kprofiles:create`),title:p(e?`kprofiles:update`:`kprofiles:create`)?void 0:m(e?`kProfiles.permission.noUpdate`:`kProfiles.permission.noCreate`),className:`flex-1`,children:[B.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Tc,{className:`w-4 h-4`}),m(`common.save`)]})]})]})]})]}),ee&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-[60]`,children:(0,G.jsx)(zd,{className:`w-full max-w-sm`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(Pu,{className:`w-5 h-5 text-red-500`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:m(`kProfiles.deleteConfirm.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:m(`kProfiles.deleteConfirm.cannotUndo`)})]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:m(`kProfiles.deleteConfirm.message`,{name:e?.name})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>te(!1),className:`flex-1`,children:m(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>{te(!1),ne()},disabled:V.isPending,className:`flex-1 bg-red-500 hover:bg-red-600 text-white`,children:[V.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),m(`common.delete`)]})]})]})})})]})}var p5={NOZZLE_DIAMETER:`bambusy_kprofiles_nozzle`,SORT_OPTION:`bambusy_kprofiles_sort`};function iKe(){let{t:e}=U(),{showToast:t}=qd(),{hasPermission:n}=Nd(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(()=>localStorage.getItem(p5.NOZZLE_DIAMETER)||`0.4`),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(`all`),[b,x]=(0,y.useState)(()=>localStorage.getItem(p5.SORT_OPTION)||`name`),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(new Set),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),A=(0,y.useCallback)(e=>`${e.slot_id}_${e.extruder_id}`,[]);(0,y.useEffect)(()=>{localStorage.setItem(p5.NOZZLE_DIAMETER,a)},[a]),(0,y.useEffect)(()=>{localStorage.setItem(p5.SORT_OPTION,b)},[b]);let{data:j,isLoading:M}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:N,isLoading:P,isFetching:F,error:I,refetch:L}=K({queryKey:[`kprofiles`,r,a],queryFn:async()=>{console.log(`[KProfiles] Fetching profiles for printer`,r,`nozzle`,a);let e=await Z.getKProfiles(r,a);return console.log(`[KProfiles] Received profiles:`,e?.profiles?.length||0,`profiles`),e},enabled:!!r,retry:!1,staleTime:0,gcTime:0,refetchOnMount:`always`}),{data:R}=K({queryKey:[`builtinFilaments`],queryFn:()=>Z.getBuiltinFilaments(),staleTime:3e5}),{data:z}=K({queryKey:[`filamentIdMap`],queryFn:()=>Z.getFilamentIdMap(),staleTime:3e5}),{data:B}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets(),retry:!1}),{data:V}=K({queryKey:[`orcaCloudProfilesForKProfiles`],queryFn:()=>Z.orcaCloudListProfiles(),retry:!1}),{data:ee}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),retry:!1}),{data:te,refetch:ne}=K({queryKey:[`kprofile-notes`,r],queryFn:()=>Z.getKProfileNotes(r),enabled:!!r,staleTime:3e4}),re=I?.message?.includes(`not connected`);(0,y.useEffect)(()=>{if(!r&&j&&j.length>0){let e=j.find(e=>e.is_active);e&&i(e.id)}},[r,j]),(0,y.useEffect)(()=>{if(r){let e=setTimeout(()=>{L()},150);return()=>clearTimeout(e)}},[r,a]);let ie=j?.filter(e=>e.is_active)||[],ae=y.useMemo(()=>{let e=new Map;if(R)for(let t of R)e.set(t.filament_id,t.name);if(z)for(let[t,n]of Object.entries(z))e.has(t)||e.set(t,n);return e},[R,z]),oe=y.useMemo(()=>Array.from(ae.entries()).map(([e,t])=>({filament_id:e,name:t})),[ae]),se=y.useMemo(()=>tKe({localPresets:B?.filament,orcaProfiles:V?.filament,cloudSettings:ee?.filament,builtinFilaments:R}),[B?.filament,V?.filament,ee?.filament,R]),H=y.useCallback(e=>ae.get(e.filament_id)||u5(e.name),[ae]),ce=y.useMemo(()=>N?.profiles?N.profiles.filter(e=>{let t=p.toLowerCase(),n=!t||e.name.toLowerCase().includes(t)||e.filament_id.toLowerCase().includes(t),r=h===`all`||h===`left`&&e.extruder_id===1||h===`right`&&e.extruder_id===0,i=_===`all`||_===`hf`&&e.nozzle_id.startsWith(`HH`)||_===`s`&&e.nozzle_id.startsWith(`HS`);return n&&r&&i}).sort((e,t)=>{switch(b){case`k_value`:return parseFloat(e.k_value)-parseFloat(t.k_value);case`filament`:return H(e).localeCompare(H(t));default:return e.name.localeCompare(t.name)}}):[],[N?.profiles,p,h,_,b,H]),le=j?.find(e=>e.id===r),ue=le?.nozzle_count===2,de=le?.supports_nozzle_flow_type??!0;(0,y.useEffect)(()=>{de||v(`all`)},[de]),(0,y.useEffect)(()=>{let e=e=>{e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||s||l||d||(e.key===`r`||e.key===`R`?(e.preventDefault(),L()):e.key===`n`||e.key===`N`?(e.preventDefault(),u(!0)):e.key===`Escape`&&S&&(e.preventDefault(),C(!1),T(new Set)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,l,d,S,L]);let fe=(0,y.useCallback)(()=>{if(!N?.profiles||N.profiles.length===0){t(e(`kProfiles.toast.noProfilesToExport`),`error`);return}let n={version:1,exported_at:new Date().toISOString(),printer:le?.name||`Unknown`,nozzle_diameter:a,profiles:N.profiles.map(e=>({name:e.name,k_value:e.k_value,filament_id:e.filament_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,extruder_id:e.extruder_id}))},r=new Blob([JSON.stringify(n,null,2)],{type:`application/json`}),i=URL.createObjectURL(r),o=document.createElement(`a`);o.href=i,o.download=`kprofiles_${le?.name||`printer`}_${a}mm_${new Date().toISOString().split(`T`)[0]}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(i),t(e(`kProfiles.toast.exportedProfiles`,{count:N.profiles.length}))},[N?.profiles,le,a,t,e]),pe=(0,y.useCallback)(()=>{let n=document.createElement(`input`);n.type=`file`,n.accept=`.json`,n.onchange=async n=>{let i=n.target.files?.[0];if(i)try{let n=await i.text(),o=JSON.parse(n);if(!o.profiles||!Array.isArray(o.profiles)){t(e(`kProfiles.toast.invalidFileFormat`),`error`);return}let s=0;for(let e of o.profiles)if(!(!e.name||!e.k_value||!e.filament_id))try{await Z.setKProfile(r,{name:e.name,k_value:parseFloat(e.k_value).toFixed(6),filament_id:e.filament_id,nozzle_id:e.nozzle_id||`${s5}-${a}`,nozzle_diameter:e.nozzle_diameter||a,extruder_id:e.extruder_id??0,slot_id:0}),s++,await new Promise(e=>setTimeout(e,500))}catch(t){console.error(`Failed to import profile:`,e.name,t)}t(e(`kProfiles.toast.importedProfiles`,{count:s,total:o.profiles.length})),L()}catch(n){console.error(`Import error:`,n),t(e(`kProfiles.toast.failedToParseImport`),`error`)}},n.click()},[r,a,t,L,e]),me=(0,y.useCallback)(e=>{T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),he=(0,y.useCallback)(()=>{T(new Set(ce.map(e=>A(e))))},[ce,A]),ge=(0,y.useCallback)(()=>{w.size!==0&&D(!0)},[w.size]),_e=(0,y.useCallback)(async()=>{let n=ce.filter(e=>w.has(A(e)));k(!0);let i=0;for(let e of n)try{await Z.deleteKProfile(r,{slot_id:e.slot_id,extruder_id:e.extruder_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,filament_id:e.filament_id,setting_id:e.setting_id}),i++,await new Promise(e=>setTimeout(e,300))}catch(t){console.error(`Failed to delete profile:`,e.name,t)}t(e(`kProfiles.toast.profilesDeleted`,{count:i})),k(!1),D(!1),C(!1),T(new Set),L()},[r,w,ce,t,L,A,e]),ve=(0,y.useCallback)(e=>{let t=[];return e.setting_id&&t.push(e.setting_id),t.push(`slot_${e.slot_id}_${e.filament_id}_${e.extruder_id}`),t.push(`name_${e.name}_${e.filament_id}`),t},[]),ye=(0,y.useCallback)(async(n,i)=>{if(r)try{await Z.setKProfileNote(r,n,i),ne()}catch(n){console.error(`Failed to save note:`,n),t(e(`kProfiles.toast.failedToSaveNote`),`error`)}},[r,ne,t,e]),be=(0,y.useCallback)(e=>{if(!te?.notes)return{note:``,key:null};let t=ve(e);for(let e of t)if(te.notes[e])return{note:te.notes[e],key:e};return{note:``,key:null}},[te,ve]),xe=(0,y.useCallback)(e=>be(e).note,[be]);return M?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):!j||j.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(ys,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noPrintersConfigured`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.addPrinterInSettings`)})]})}):ie.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Rl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noActivePrinters`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.enablePrinterConnection`)})]})}):(0,G.jsxs)(G.Fragment,{children:[F&&!P&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex flex-col items-center justify-center z-40`,children:[(0,G.jsx)(Y,{className:`w-10 h-10 text-bambu-green animate-spin mb-3`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`kProfiles.loadingProfiles`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-48`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`kProfiles.printer`)}),(0,G.jsx)(`select`,{value:r||``,onChange:e=>i(parseInt(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:ie.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,G.jsxs)(`div`,{className:`w-32`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`kProfiles.nozzle`)}),(0,G.jsxs)(`select`,{value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`0.2`,children:`0.2mm`}),(0,G.jsx)(`option`,{value:`0.4`,children:`0.4mm`}),(0,G.jsx)(`option`,{value:`0.6`,children:`0.6mm`}),(0,G.jsx)(`option`,{value:`0.8`,children:`0.8mm`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>L(),disabled:F||!n(`kprofiles:read`),title:n(`kprofiles:read`)?void 0:e(`kProfiles.permission.noRead`),children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${F?`animate-spin`:``}`}),e(`kProfiles.refresh`)]}),(0,G.jsxs)(Q,{onClick:()=>u(!0),disabled:!n(`kprofiles:create`),title:n(`kprofiles:create`)?void 0:e(`kProfiles.permission.noCreate`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`kProfiles.addProfile`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-48 relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:e(`kProfiles.searchPlaceholder`),className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),ue&&(0,G.jsx)(`div`,{className:`w-36`,children:(0,G.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`kProfiles.allExtruders`)}),(0,G.jsx)(`option`,{value:`left`,children:e(`kProfiles.leftOnly`)}),(0,G.jsx)(`option`,{value:`right`,children:e(`kProfiles.rightOnly`)})]})}),de&&(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsxs)(`select`,{value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`kProfiles.allFlow`)}),(0,G.jsx)(`option`,{value:`hf`,children:e(`kProfiles.hfOnly`)}),(0,G.jsx)(`option`,{value:`s`,children:e(`kProfiles.sOnly`)})]})}),(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`name`,children:e(`kProfiles.sortName`)}),(0,G.jsx)(`option`,{value:`k_value`,children:e(`kProfiles.sortKValue`)}),(0,G.jsx)(`option`,{value:`filament`,children:e(`kProfiles.sortFilament`)})]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-6`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:fe,disabled:!N?.profiles?.length||!n(`kprofiles:read`),title:n(`kprofiles:read`)?void 0:e(`kProfiles.permission.noExport`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),e(`kProfiles.export`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:pe,disabled:!n(`kprofiles:create`),title:n(`kprofiles:create`)?void 0:e(`kProfiles.permission.noImport`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),e(`kProfiles.import`)]}),(0,G.jsx)(`div`,{className:`flex-1`}),S?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:he,children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),e(`kProfiles.selectAll`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:ge,disabled:w.size===0||!n(`kprofiles:delete`),className:`text-red-500 hover:bg-red-500/10`,title:n(`kprofiles:delete`)?void 0:e(`kProfiles.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`kProfiles.delete`),` (`,w.size,`)`]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{C(!1),T(new Set)},children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),e(`common.cancel`)]})]}):(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!0),disabled:!ce.length||!n(`kprofiles:delete`),title:n(`kprofiles:delete`)?void 0:e(`kProfiles.permission.noDelete`),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),e(`kProfiles.select`)]})]}),P?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):re?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Zu,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.printerOffline`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`kProfiles.printerOfflineDesc`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>L(),children:[(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`common.refresh`)]})]})}):ce.length>0?ue?(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-2 px-1`,children:e(`kProfiles.leftExtruder`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.filter(e=>e.extruder_id===1).map(e=>(0,G.jsx)(d5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-2 px-1`,children:e(`kProfiles.rightExtruder`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.filter(e=>e.extruder_id===0).map(e=>(0,G.jsx)(d5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))})]})]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.map(e=>(0,G.jsx)(d5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))}):p||h!==`all`||_!==`all`?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noMatchingProfiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.noMatchingProfilesDesc`)})]})}):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noKProfiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`kProfiles.noKProfilesDesc`,{diameter:a})}),(0,G.jsxs)(Q,{onClick:()=>u(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`kProfiles.createFirstProfile`)]})]})}),s&&r&&(()=>{let{note:e,key:t}=be(s);return(0,G.jsx)(f5,{profile:s,printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,initialNote:e,initialNoteKey:t,onSaveNote:ye,hasPermission:n,onClose:()=>{console.log(`[KProfiles] Edit modal onClose - refetching profiles...`),c(null),L()},onSave:()=>{c(null),L()}})})(),l&&r&&(0,G.jsx)(f5,{printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,onSaveNote:ye,hasPermission:n,onClose:()=>{u(!1),L()},onSave:()=>{u(!1),L()}}),d&&r&&(0,G.jsx)(f5,{printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,onSaveNote:ye,hasPermission:n,profile:{...d,slot_id:0,name:`${d.name} (Copy)`},onClose:()=>{f(null),L()},onSave:()=>{f(null),L()}}),E&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-sm`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(Pu,{className:`w-5 h-5 text-red-500`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:e(`kProfiles.bulkDelete.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`kProfiles.bulkDelete.cannotUndo`)})]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:e(`kProfiles.bulkDelete.message`,{count:w.size})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>D(!1),disabled:O,className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:_e,disabled:O,className:`flex-1 bg-red-500 hover:bg-red-600 text-white`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`common.delete`)]})]})]})})})]})}var m5=[`PLA`,`PETG`,`PCTG`,`ABS`,`ASA`,`TPU`,`PC`,`PA`,`PVA`,`HIPS`,`PP`,`PET`,`NYLON`],aKe={PLA:`E8E8E8`,PETG:`4A90D9`,ABS:`E67E22`,ASA:`D35400`,TPU:`9B59B6`,PC:`BDC3C7`,PA:`2ECC71`,NYLON:`2ECC71`,PVA:`F1C40F`,HIPS:`95A5A6`,PP:`ECF0F1`,PET:`3498DB`};function oKe(e){let t=e.toUpperCase();for(let e of m5)if(RegExp(`\\b${e}\\b`).test(t))return e;return null}function sKe(e){let t=e.replace(/@.+$/,``).trim(),n=t.toUpperCase();for(let e of m5){let r=n.indexOf(e);if(r>0){let e=t.slice(0,r).trim();if(e&&e.length>1)return e}}return null}function h5({preset:e,onDelete:t,onExpand:n,isExpanded:r}){let{t:i}=U(),{hasPermission:a}=Nd(),o=e.filament_type||oKe(e.name),s=e.filament_vendor||sKe(e.name),c=null,l=!1;if(e.default_filament_colour)try{let t=JSON.parse(e.default_filament_colour),n=Array.isArray(t)?t[0]:t;typeof n==`string`&&/^#?[0-9a-fA-F]{6,8}$/.test(n.replace(`#`,``))&&(c=n.replace(`#`,``).slice(0,6),l=!0)}catch{let t=e.default_filament_colour;/^#?[0-9a-fA-F]{6,8}$/.test(t.replace(`#`,``))&&(c=t.replace(`#`,``).slice(0,6),l=!0)}return!c&&o&&(c=aKe[o.toUpperCase()]||null),(0,G.jsx)(zd,{className:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-dark-tertiary/80 transition-colors`,children:(0,G.jsxs)(Vd,{className:`p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.preset_type===`filament`&&(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0 ${!l&&!c?`opacity-25`:l?``:`opacity-50`}`,style:{backgroundColor:c?`#${c}`:`#666`}}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[o&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:o}),s&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:s}),(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:i(`profiles.localProfiles.badge`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[a(`settings:update`)&&(0,G.jsx)(`button`,{onClick:()=>t(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,title:i(`profiles.localProfiles.delete`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:()=>n(r?null:e.id),className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:r?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})})]})]}),r&&(0,G.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-bambu-dark-tertiary text-xs space-y-1.5`,children:[o&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.filamentType`)}),(0,G.jsx)(`span`,{className:`text-white`,children:o})]}),s&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.vendor`)}),(0,G.jsx)(`span`,{className:`text-white`,children:s})]}),e.nozzle_temp_min!=null&&e.nozzle_temp_max!=null&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.nozzleTemp`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[e.nozzle_temp_min,`–`,e.nozzle_temp_max,`°C`]})]}),e.filament_cost&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.cost`)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.filament_cost})]}),e.filament_density&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.density`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[e.filament_density,` g/cm³`]})]}),e.pressure_advance&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.pressureAdvance`)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.pressure_advance})]}),e.compatible_printers&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.compatiblePrinters`)}),(0,G.jsx)(`span`,{className:`text-white truncate ml-2`,children:(()=>{try{return JSON.parse(e.compatible_printers).join(`, `)}catch{return e.compatible_printers}})()})]}),e.inherits&&e.inherits!==e.name&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.inheritsFrom`)}),(0,G.jsx)(`span`,{className:`text-white truncate ml-2`,children:e.inherits})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.source`)}),(0,G.jsx)(`span`,{className:`text-white capitalize`,children:e.source})]})]})]})})}function cKe(){let{t:e}=U(),{hasPermission:t}=Nd(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),{data:f,isLoading:p}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets()}),m=q({mutationFn:async e=>{let t=[];for(let n of Array.from(e)){let e=new FormData;e.append(`file`,n),t.push(await Z.importLocalPresets(e))}return t},onSuccess:t=>{n.invalidateQueries({queryKey:[`localPresets`]}),n.invalidateQueries({queryKey:[`slicerPresets`]});let i=0,a=0,o=0;for(let e of t)i+=e.imported,a+=e.skipped,o+=e.errors.length;i>0&&r(e(`profiles.localProfiles.toast.importSuccess`,{count:i})),a>0&&r(e(`profiles.localProfiles.toast.importSkipped`,{count:a}),`warning`),o>0&&r(e(`profiles.localProfiles.toast.importError`,{count:o}),`error`)},onError:e=>{r(e.message,`error`)}}),h=q({mutationFn:e=>Z.deleteLocalPreset(e),onSuccess:(t,i)=>{n.setQueryData([`localPresets`],e=>e&&{filament:e.filament.filter(e=>e.id!==i),printer:e.printer.filter(e=>e.id!==i),process:e.process.filter(e=>e.id!==i)}),n.invalidateQueries({queryKey:[`localPresets`]}),n.invalidateQueries({queryKey:[`slicerPresets`]}),d(null),r(e(`profiles.localProfiles.toast.deleted`))}}),g=(0,y.useCallback)(e=>{!e||e.length===0||m.mutate(e)},[m]),_=(0,y.useCallback)(e=>{e.preventDefault(),l(!1),g(e.dataTransfer.files)},[g]),v=(0,y.useCallback)(e=>{if(!i)return e;let t=i.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.filament_type?.toLowerCase().includes(t)||e.filament_vendor?.toLowerCase().includes(t))},[i]),b=(0,y.useMemo)(()=>v(f?.filament||[]),[f?.filament,v]),x=(0,y.useMemo)(()=>v(f?.printer||[]),[f?.printer,v]),S=(0,y.useMemo)(()=>v(f?.process||[]),[f?.process,v]),C=b.length+x.length+S.length,w=(f?.filament?.length??0)+(f?.printer?.length??0)+(f?.process?.length??0)>0;return p?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`space-y-6`,children:[t(`settings:update`)&&(0,G.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:_,className:`relative border-2 border-dashed rounded-lg p-6 text-center transition-colors ${c?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsx)(`input`,{type:`file`,accept:`.json,.zip,.orca_filament,.bbscfg,.bbsflmt`,multiple:!0,className:`absolute inset-0 w-full h-full opacity-0 cursor-pointer`,onChange:e=>g(e.target.files)}),m.isPending?(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.importing`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-8 h-8 text-bambu-gray mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`profiles.localProfiles.import`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`profiles.localProfiles.importDesc`)})]})]}),w&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:e(`profiles.localProfiles.search`),className:`w-full pl-9 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})]}),!w&&!p&&(0,G.jsxs)(`div`,{className:`text-center py-12`,children:[(0,G.jsx)(Pc,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.noPresets`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/60 mt-1`,children:e(`profiles.localProfiles.importDesc`)})]}),w&&C===0&&!p&&(0,G.jsxs)(`div`,{className:`text-center py-12`,children:[(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.noSearchResults`)})]}),C>0&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:[b.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Zs,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.filament`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,b.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:b.map(e=>(0,G.jsx)(h5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]}),S.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.process`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,S.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:S.map(e=>(0,G.jsx)(h5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]}),x.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(nu,{className:`w-4 h-4 text-orange-600 dark:text-orange-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.printer`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,x.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>(0,G.jsx)(h5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]})]}),u!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-6 max-w-sm mx-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-red-600 dark:text-red-400`}),(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:e(`profiles.localProfiles.deleteConfirmTitle`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`profiles.localProfiles.deleteConfirm`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>d(null),children:e(`profiles.localProfiles.cancel`)}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>h.mutate(u),disabled:h.isPending,children:[h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`profiles.localProfiles.delete`)]})]})]})})]})}function lKe(e){let t=e.match(/@?\s*(?:BBL\s+)?(?:Bambu\s+Lab\s+)?([XPAH][1-9][A-Z]?(?:\s*(?:Carbon|mini))?|H2D)/i),n=e.match(/(\d+\.?\d*)\s*(?:mm\s*)?nozzle|nozzle\s*(\d+\.?\d*)/i),r=e.match(/(\d+\.?\d*)mm\s*(?:Standard|Fine|Extra Fine|Draft|Quality)?/i),i=e.match(/\b(PLA|PETG|ABS|ASA|TPU|PC|PA|PVA|HIPS|PP|PET(?:-?CF)?|PA(?:-?CF)?|PLA(?:-?CF)?)\b/i);return{printer:t?t[1].trim():null,nozzle:n?(n[1]||n[2])+`mm`:null,layerHeight:r?r[1]+`mm`:null,filamentType:i?i[1].toUpperCase():null}}function uKe({settings:e,lastSyncTime:t,onRefresh:n,isRefreshing:r,printers:i,t:a}){let[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(`all`),[u,d]=(0,y.useState)(`all`),[f,p]=(0,y.useState)(`all`),[m,h]=(0,y.useState)(`all`),[g,_]=(0,y.useState)(`all`),[v,b]=(0,y.useState)(null),x=(0,y.useMemo)(()=>[...e.filament.map(e=>({...e,type:`filament`})),...e.printer.map(e=>({...e,type:`printer`})),...e.process.map(e=>({...e,type:`process`}))].map(e=>({...e,meta:lKe(e.name)})),[e]),S=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=new Set;return x.forEach(r=>{r.meta.nozzle&&e.add(r.meta.nozzle),r.meta.filamentType&&t.add(r.meta.filamentType),r.meta.layerHeight&&n.add(r.meta.layerHeight)}),{printers:i.map(e=>({id:e.id.toString(),name:e.name})),nozzles:Array.from(e).sort((e,t)=>parseFloat(e)-parseFloat(t)),filaments:Array.from(t).sort(),layerHeights:Array.from(n).sort((e,t)=>parseFloat(e)-parseFloat(t))}},[x,i]),C=(0,y.useMemo)(()=>u===`all`?null:i.find(e=>e.id.toString()===u)?.model||null,[u,i]),w=(0,y.useMemo)(()=>x.filter(e=>c===`all`||e.type===c).filter(e=>{if(u===`all`||!C)return!0;let t=e.meta.printer?.toLowerCase()||``,n=C.toLowerCase();return t.includes(n)||n.includes(t)}).filter(e=>f===`all`||e.meta.nozzle===f).filter(e=>m===`all`||e.meta.filamentType===m).filter(e=>g===`all`||e.meta.layerHeight===g).filter(e=>o===``||e.name.toLowerCase().includes(o.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)),[x,c,u,C,f,m,g,o]),T=()=>{l(`all`),d(`all`),p(`all`),h(`all`),_(`all`),s(``)},E=c!==`all`||u!==`all`||f!==`all`||m!==`all`||g!==`all`||o!==``,D=e.filament.length+e.printer.length+e.process.length,O=e=>w.filter(t=>t.type===e);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:a(`profiles.cloudView.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{variant:`secondary`,onClick:n,disabled:r,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${r?`animate-spin`:``}`}),a(`profiles.cloudView.refresh`)]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(y5,{label:a(`profiles.cloudView.filters.type`),value:c,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`),count:D},{value:`filament`,label:a(`profiles.cloudView.filters.filament`),count:e.filament.length},{value:`printer`,label:a(`profiles.cloudView.filters.printer`),count:e.printer.length},{value:`process`,label:a(`profiles.cloudView.filters.process`),count:e.process.length}],onChange:e=>l(e)}),S.printers.length>0&&(0,G.jsx)(y5,{label:a(`profiles.cloudView.filters.printer`),value:u,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.printers.map(e=>({value:e.id,label:e.name}))],onChange:d}),S.nozzles.length>0&&(0,G.jsx)(y5,{label:a(`profiles.cloudView.filters.nozzle`),value:f,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.nozzles.map(e=>({value:e,label:e}))],onChange:p}),S.filaments.length>0&&(c===`all`||c===`filament`)&&(0,G.jsx)(y5,{label:a(`profiles.cloudView.filters.filament`),value:m,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.filaments.map(e=>({value:e,label:e}))],onChange:h}),S.layerHeights.length>0&&(c===`all`||c===`process`)&&(0,G.jsx)(y5,{label:a(`profiles.cloudView.filters.layer`),value:g,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.layerHeights.map(e=>({value:e,label:e}))],onChange:_}),E&&(0,G.jsx)(`button`,{onClick:T,className:`px-3 py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:a(`profiles.cloudView.clearFilters`)})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 mb-4 text-sm text-bambu-gray`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),a(`profiles.cloudView.lastSynced`),` `,up(t.toISOString(),`system`,a)]}),(0,G.jsx)(`span`,{children:a(`profiles.cloudView.showingCount`,{showing:w.length,total:D})})]}),w.length===0?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 text-bambu-gray-dark mx-auto mb-4`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:a(`profiles.cloudView.noPresetsFound`)}),E&&(0,G.jsx)(`button`,{onClick:T,className:`mt-2 text-sm text-bambu-green hover:text-bambu-green-light`,children:a(`profiles.cloudView.clearFilters`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-6`,children:[(0,G.jsx)(g5,{icon:(0,G.jsx)(Zs,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),title:a(`profiles.cloudView.columns.filament`),presets:O(`filament`),emptyText:a(`profiles.cloudView.noFilamentPresets`),onSelect:b}),(0,G.jsx)(g5,{icon:(0,G.jsx)(nu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),title:a(`profiles.cloudView.columns.process`),presets:O(`process`),emptyText:a(`profiles.cloudView.noProcessPresets`),onSelect:b}),(0,G.jsx)(g5,{icon:(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),title:a(`profiles.cloudView.columns.printer`),presets:O(`printer`),emptyText:a(`profiles.cloudView.noPrinterPresets`),onSelect:b})]}),v&&(0,G.jsx)(fKe,{setting:v,onClose:()=>b(null),t:a})]})}function g5({icon:e,title:t,presets:n,emptyText:r,onSelect:i}){return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[e,(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:t}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,n.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:n.length===0?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:r}):n.map(e=>(0,G.jsx)(dKe,{preset:e,onClick:()=>i(e)},e.setting_id))})]})}function dKe({preset:e,onClick:t}){return(0,G.jsx)(`button`,{onClick:t,className:`w-full text-left px-3 py-2 rounded bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name}),e.meta.filamentType&&e.type===`filament`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.filamentType}),e.meta.layerHeight&&e.type===`process`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.layerHeight}),e.meta.printer&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.printer})]})})}function fKe({setting:e,onClose:t,t:n}){let{data:r,isLoading:i,error:a}=K({queryKey:[`orcaCloudProfileDetail`,e.setting_id],queryFn:()=>Z.orcaCloudGetProfile(e.setting_id),retry:!1});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 z-50 flex items-center justify-center p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl max-w-4xl w-full max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-bold text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e.type})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:i?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):a?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-16`,children:a.message}):r?(0,G.jsx)(`pre`,{className:`text-xs font-mono text-bambu-gray bg-bambu-dark p-3 rounded overflow-x-auto whitespace-pre`,children:JSON.stringify(r.setting,null,2)}):(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-16`,children:n(`profiles.cloudView.noPresetsFound`)})})]})})}function pKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),i=r(`orca_cloud:auth`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(5e3),[l,u]=(0,y.useState)(null),{data:d,isLoading:f}=K({queryKey:[`orcaCloudStatus`],queryFn:Z.orcaCloudStatus}),p=!!d?.connected,{data:m,isLoading:h,refetch:g,isRefetching:_,error:v,dataUpdatedAt:b}=K({queryKey:[`orcaCloudProfiles`],queryFn:Z.orcaCloudListProfiles,enabled:p,retry:!1,staleTime:1e3*60*5}),{data:x=[]}=K({queryKey:[`printers`],queryFn:Z.getPrinters,enabled:p}),[S,C]=(0,y.useState)();(0,y.useEffect)(()=>{b&&C(new Date(b))},[b]);let w=()=>{o(null),c(5e3)},T=t=>{t===`access_denied`?u(e(`profiles.orcaCloud.errors.denied`)):t===`expired_token`&&u(e(`profiles.orcaCloud.errors.expired`)),w()},E=q({mutationFn:Z.orcaCloudDeviceStart,onSuccess:e=>{u(null),c(Math.max(1,e.interval)*1e3),o(e)},onError:t=>{u(t.message||e(`profiles.orcaCloud.errors.startFailed`))}}),D=q({mutationFn:Z.orcaCloudLogout,onSuccess:()=>{t.invalidateQueries({queryKey:[`orcaCloudStatus`]}),t.removeQueries({queryKey:[`orcaCloudProfiles`]}),n(e(`profiles.orcaCloud.toast.disconnected`))}}),{data:O,error:k}=K({queryKey:[`orcaCloudDevicePoll`,a?.user_code??`none`],queryFn:Z.orcaCloudDevicePoll,enabled:a!==null,gcTime:0,retry:!1,refetchOnWindowFocus:!1,refetchInterval:a===null?!1:s}),A=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!a||!O)return;let r=O.status;if(r===`slow_down`){c(e=>e+5e3);return}r!==`authorization_pending`&&A.current!==r&&(A.current=r,r===`complete`?(w(),t.invalidateQueries({queryKey:[`orcaCloudStatus`]}),t.invalidateQueries({queryKey:[`orcaCloudProfiles`]}),n(e(`profiles.orcaCloud.connectedShort`))):T(r))},[O,a]),(0,y.useEffect)(()=>{a&&k&&(u(e(`profiles.orcaCloud.errors.pollFailed`)),w())},[k,a]),(0,y.useEffect)(()=>{a&&(A.current=null)},[a]),f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{children:[p&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 mb-6 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green animate-pulse`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:d?.email?(0,G.jsxs)(G.Fragment,{children:[e(`profiles.orcaCloud.connectedAs`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:d.email})]}):(0,G.jsx)(`span`,{className:`text-white`,children:e(`profiles.orcaCloud.connectedShort`)})})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>D.mutate(),disabled:D.isPending||!i,title:i?void 0:e(`profiles.orcaCloud.noLogoutPermission`),children:[(0,G.jsx)(il,{className:`w-4 h-4`}),e(`profiles.orcaCloud.logout`)]})]}),p?h?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):v?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:v.message}),(0,G.jsx)(Q,{onClick:()=>g(),children:e(`profiles.orcaCloud.retry`)})]}):m?(0,G.jsx)(uKe,{settings:m,lastSyncTime:S,onRefresh:()=>g(),isRefreshing:_,printers:x,t:e}):null:(0,G.jsx)(mKe,{pairing:a,connectError:l,onConnect:()=>E.mutate(),onCancel:w,isStarting:E.isPending,canManage:i,t:e})]})}function mKe({pairing:e,connectError:t,onConnect:n,onCancel:r,isStarting:i,canManage:a,t:o}){return e?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-8 text-center max-w-md mx-auto`,children:[(0,G.jsx)(Ps,{className:`w-12 h-12 text-bambu-green mx-auto mb-4`}),(0,G.jsx)(`h2`,{className:`text-xl font-bold text-white mb-2`,children:o(`profiles.orcaCloud.device.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:o(`profiles.orcaCloud.device.instruction`)}),(0,G.jsx)(`p`,{className:`text-xs uppercase tracking-wide text-bambu-gray mb-2`,children:o(`profiles.orcaCloud.device.codeLabel`)}),(0,G.jsx)(`div`,{className:`mb-6 py-3 px-4 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsx)(`span`,{className:`text-2xl font-mono font-bold tracking-[0.3em] text-white select-all`,children:e.user_code})}),(0,G.jsx)(`a`,{href:e.verification_uri_complete,target:`_blank`,rel:`noopener noreferrer`,children:(0,G.jsxs)(Q,{className:`w-full mb-3`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),o(`profiles.orcaCloud.device.openButton`)]})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray break-all mb-6`,children:o(`profiles.orcaCloud.device.manualHint`,{url:e.verification_uri})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-sm text-bambu-gray mb-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-green`}),o(`profiles.orcaCloud.device.waiting`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:r,className:`text-bambu-gray hover:text-white text-sm`,children:o(`profiles.orcaCloud.device.cancel`)})]})}):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-8 text-center`,children:[(0,G.jsx)(Ps,{className:`w-12 h-12 text-bambu-green mx-auto mb-4`}),(0,G.jsx)(`h2`,{className:`text-xl font-bold text-white mb-2`,children:o(`profiles.orcaCloud.connect.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6 max-w-xl mx-auto`,children:o(`profiles.orcaCloud.connect.description`)}),(0,G.jsxs)(`div`,{className:`max-w-sm mx-auto`,children:[(0,G.jsxs)(Q,{onClick:n,disabled:i||!a,title:a?void 0:o(`profiles.orcaCloud.noConnectPermission`),className:`w-full`,children:[i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),o(`profiles.orcaCloud.connectButton`)]}),t&&(0,G.jsxs)(`p`,{className:`mt-3 text-sm text-red-700 dark:text-red-400 flex items-center justify-center gap-2`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 flex-shrink-0`}),t]})]})]})})}function _5(e,t){let n=`${e} ${t||``}`,r=n.match(/@?\s*(?:BBL\s+)?(?:Bambu\s+Lab\s+)?([XPAH][1-9][A-Z]?(?:\s*(?:Carbon|mini))?|H2D)/i),i=r?r[1].trim():null,a=n.match(/(\d+\.?\d*)\s*(?:mm\s*)?nozzle|nozzle\s*(\d+\.?\d*)/i),o=a?(a[1]||a[2])+`mm`:null,s=n.match(/(\d+\.?\d*)mm\s*(?:Standard|Fine|Extra Fine|Draft|Quality)?/i),c=s?s[1]+`mm`:null,l=n.match(/\b(PLA|PETG|ABS|ASA|TPU|PC|PA|PVA|HIPS|PP|PET(?:-?CF)?|PA(?:-?CF)?|PLA(?:-?CF)?)\b/i);return{printer:i,nozzle:o,layerHeight:c,filamentType:l?l[1].toUpperCase():null}}function v5(e){return/^(P[FPM]US|PF\d|PP\d)/.test(e)}function hKe({onSuccess:e,t}){let{showToast:n}=qd(),[r,i]=(0,y.useState)(`email`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(`global`),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),S=q({mutationFn:()=>Z.cloudLogin(a,s,p),onSuccess:r=>{if(x(r.reason===`captcha`),r.success)n(t(`profiles.login.toast.loggedIn`)),e();else if(r.reason===`captcha`)return;else r.needs_verification?(g(r.verification_type||`email`),v(r.tfa_key||null),r.verification_type===`totp`?n(t(`profiles.login.toast.enterTotp`)):n(t(`profiles.login.toast.codeSent`)),i(`code`)):n(r.message,`error`)},onError:e=>{x(!1),n(e.message,`error`)}}),C=q({mutationFn:()=>Z.cloudVerify(a,l,_||void 0,p),onSuccess:r=>{x(r.reason===`captcha`),r.success?(n(t(`profiles.login.toast.loggedIn`)),e()):r.reason!==`captcha`&&n(r.message,`error`)},onError:e=>{x(!1),n(e.message,`error`)}}),w=q({mutationFn:()=>Z.cloudSetToken(d,p),onSuccess:()=>{n(t(`profiles.login.toast.tokenSet`)),e()},onError:e=>n(e.message,`error`)}),T=e=>{e.preventDefault(),r===`email`?S.mutate():r===`code`?C.mutate():r===`token`&&w.mutate()},E=S.isPending||C.isPending||w.isPending;return(0,G.jsx)(zd,{className:`max-w-md mx-auto`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,G.jsx)(`div`,{className:`inline-flex items-center justify-center w-12 h-12 rounded-xl bg-bambu-green/20 mb-3`,children:(0,G.jsx)(Ps,{className:`w-6 h-6 text-bambu-green`})}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:t(`profiles.login.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:t(`profiles.login.subtitle`)})]}),b&&r!==`token`&&(0,G.jsx)(`div`,{role:`alert`,className:`mb-4 p-3 rounded-lg border border-amber-500/40 bg-amber-500/10`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(iu,{className:`w-4 h-4 text-amber-400 shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-amber-300`,children:t(`profiles.login.captchaTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:t(`profiles.login.captchaBody`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(!1),i(`token`)},className:`mt-2 text-xs text-bambu-green hover:underline flex items-center gap-1`,children:[(0,G.jsx)(Kc,{className:`w-3 h-3`}),t(`profiles.login.useToken`)]})]})]})}),(0,G.jsxs)(`form`,{onSubmit:T,className:`space-y-4`,children:[r===`email`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.email`)}),(0,G.jsx)(`input`,{type:`email`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,placeholder:`your@email.com`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.password`)}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,placeholder:`••••••••`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.region`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`global`,children:t(`profiles.login.regionGlobal`)}),(0,G.jsx)(`option`,{value:`china`,children:t(`profiles.login.regionChina`)})]})]})]}),r===`code`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(h===`totp`?`profiles.login.totpCode`:`profiles.login.verificationCode`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:h===`totp`?t(`profiles.login.enterTotpHint`):t(`profiles.login.checkEmail`,{email:a})}),(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value.replace(/\D/g,``).slice(0,6)),className:`w-full px-3 py-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-center text-2xl tracking-widest font-mono focus:border-bambu-green focus:outline-none`,placeholder:`000000`,maxLength:6,required:!0})]}),r===`token`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.accessToken`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:t(`profiles.login.accessTokenHint`)}),(0,G.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none resize-none`,placeholder:`eyJ...`,rows:4,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.region`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`global`,children:t(`profiles.login.regionGlobal`)}),(0,G.jsx)(`option`,{value:`china`,children:t(`profiles.login.regionChina`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 max-[550px]:flex-wrap max-[550px]:items-center`,children:[r===`code`&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>i(`email`),className:`flex-1`,children:t(`profiles.login.back`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:E,className:`flex-1`,children:[E?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(rl,{className:`w-4 h-4`}),t(r===`email`?`profiles.login.loginButton`:r===`code`?`profiles.login.verifyButton`:`profiles.login.setTokenButton`)]})]}),r===`email`&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(`token`),className:`text-sm text-bambu-gray hover:text-white flex items-center gap-2 transition-colors`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),t(`profiles.login.useToken`)]})}),r===`token`&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(`email`),className:`text-sm text-bambu-gray hover:text-white flex items-center gap-2 transition-colors`,children:[(0,G.jsx)(rl,{className:`w-4 h-4`}),t(`profiles.login.useEmail`)]})})]})]})})}function y5({label:e,value:t,options:n,onChange:r}){let[i,a]=(0,y.useState)(!1),o=n.find(e=>e.value===t);return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`button`,{onClick:()=>a(!i),className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-white hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e,`:`]}),(0,G.jsx)(`span`,{children:o?.label||`All`}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?`rotate-180`:``}`})]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>a(!1)}),(0,G.jsx)(`div`,{className:`absolute top-full left-0 mt-1 min-w-[160px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 py-1 max-h-60 overflow-y-auto`,children:n.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{r(e.value),a(!1)},className:`w-full px-3 py-2 text-left text-sm flex items-center justify-between hover:bg-bambu-dark-tertiary transition-colors ${t===e.value?`text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`span`,{children:e.label}),e.count!==void 0&&(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e.count})]},e.value))})]})]})}function gKe(){let[e,t]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{let e=()=>{t(window.scrollY>300)};return window.addEventListener(`scroll`,e),()=>window.removeEventListener(`scroll`,e)},[]),e?(0,G.jsx)(`button`,{onClick:()=>{window.scrollTo({top:0,behavior:`smooth`})},className:`fixed bottom-24 right-6 p-3 bg-bambu-green hover:bg-bambu-green-light text-white rounded-full shadow-lg shadow-bambu-green/25 transition-all z-40`,"aria-label":`Scroll to top`,children:(0,G.jsx)(Ho,{className:`w-5 h-5`})}):null}function b5({setting:e,onClick:t,onDuplicate:n,compareMode:r,isCompareSelected:i,compareIndex:a,compareDisabled:o,t:s}){let c=_5(e.name),l=v5(e.setting_id);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 group`,children:[(0,G.jsx)(`button`,{onClick:t,disabled:o,className:`flex-1 text-left px-3 py-2 rounded transition-colors ${i?`bg-blue-500/20 border border-blue-500/50`:o?`bg-bambu-dark/50 opacity-40 cursor-not-allowed`:`bg-bambu-dark hover:bg-bambu-dark-tertiary`} ${r&&!o?`cursor-pointer`:``}`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i&&a!==void 0&&(0,G.jsx)(`span`,{className:`flex-shrink-0 w-5 h-5 rounded-full bg-blue-500 text-white text-xs flex items-center justify-center font-medium`,children:a+1}),!i&&l&&(0,G.jsx)(`span`,{className:`flex-shrink-0 w-1.5 h-1.5 rounded-full bg-bambu-green`,title:s(`profiles.presets.myPreset`)}),(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name}),c.filamentType&&e.type===`filament`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.filamentType}),c.layerHeight&&e.type===`process`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.layerHeight}),c.printer&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.printer})]})}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),n()},className:`can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 text-bambu-gray hover:text-white transition-all p-1`,title:s(`profiles.presets.duplicate`),children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})}function x5(e,t=0){let n=` `.repeat(t);if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`string`){if(e.includes(`\\n`)||e.includes(` +}`,value:i.ldap_group_mapping,onChange:e=>a({...i,ldap_group_mapping:e.target.value})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[e(`settings.ldap.groupMappingHint`)||`Map LDAP group DNs to BamBuddy groups. Available groups: `,l.map(e=>e.name).join(`, `)]})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsxs)(Q,{onClick:p,disabled:u.isPending,children:[u.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(xs,{className:`w-4 h-4`}),e(`common.save`)||`Save`]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>f.mutate(),disabled:f.isPending,children:[f.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),e(`settings.ldap.testConnection`)||`Test Connection`]})]})]})})]})]})}function R8({value:e,onChange:t,placeholder:n,maxLength:r=6}){return(0,G.jsx)(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value.toUpperCase().replace(/\s/g,``)),maxLength:r,className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors font-mono tracking-widest text-center`,placeholder:n,autoComplete:`one-time-code`})}function z8({codes:e,onDone:t}){let{t:n}=U(),[r,i]=(0,y.useState)(!1);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`div`,{className:`bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-lg p-4`,children:(0,G.jsx)(`p`,{className:`text-amber-700 dark:text-amber-400 text-sm font-medium`,children:n(`settings.twoFa.backupCodesWarning`)})}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:e.map((e,t)=>(0,G.jsx)(`code`,{className:`bg-bambu-dark-secondary rounded px-3 py-2 text-center font-mono text-sm text-white tracking-widest`,children:e},t))}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{navigator.clipboard.writeText(e.join(` +`)),i(!0),setTimeout(()=>i(!1),2e3)},className:`flex items-center gap-2`,children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),n(r?`common.copied`:`common.copy`)]}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,onClick:t,className:`flex-1`,children:n(`settings.twoFa.savedCodes`)})]})]})}function PGe({onDone:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(`qr`),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(!1),{data:f,isLoading:p}=K({queryKey:[`totp-setup`],queryFn:()=>Z.setupTOTP(),staleTime:1/0}),m=q({mutationFn:e=>Z.enableTOTP(e),onSuccess:e=>{l(e.backup_codes),a(`backup`),n.invalidateQueries({queryKey:[`2fa-status`]})},onError:()=>r(t(`settings.twoFa.invalidCode`),`error`)});return p||!f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})}):i===`qr`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:t(`settings.twoFa.setupInstructions`)}),(0,G.jsx)(`div`,{className:`flex justify-center`,children:(0,G.jsx)(`img`,{src:`data:image/png;base64,${f.qr_code_b64}`,alt:`TOTP QR Code`,className:`w-48 h-48 rounded-lg`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:t(`settings.twoFa.manualEntry`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-bambu-dark-secondary rounded-lg px-3 py-2`,children:[(0,G.jsx)(`code`,{className:`text-white text-xs font-mono flex-1 break-all`,children:u?f.secret:`••••••••••••••••`}),(0,G.jsx)(`button`,{onClick:()=>d(!u),className:`text-bambu-gray hover:text-white`,children:u?(0,G.jsx)(ic,{className:`w-4 h-4`}):(0,G.jsx)(ac,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{navigator.clipboard.writeText(f.secret)},className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(Q,{variant:`primary`,className:`w-full`,onClick:()=>a(`confirm`),children:t(`settings.twoFa.scannedContinue`)})]}):i===`confirm`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:t(`settings.twoFa.enterCodeToConfirm`)}),(0,G.jsx)(R8,{value:o,onChange:s,placeholder:`000000`}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>a(`qr`),className:`flex-1`,children:t(`common.back`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:o.length!==6||m.isPending,onClick:()=>m.mutate(o),children:m.isPending?t(`common.saving`):t(`settings.twoFa.activate`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:t(`settings.twoFa.backupCodesTitle`)}),(0,G.jsx)(z8,{codes:c,onDone:e})]})}function FGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{user:r}=Nd(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)(!1),{data:D,isLoading:O}=K({queryKey:[`2fa-status`],queryFn:()=>Z.get2FAStatus()}),{data:k}=K({queryKey:[`oidc-links`],queryFn:()=>Z.getOIDCLinks()}),A=q({mutationFn:()=>Z.enableEmailOTP(),onSuccess:e=>{_(e.setup_token),n(e.message,`success`)},onError:t=>{let r=t.message??``;r.toLowerCase().includes(`smtp`)?n(e(`settings.twoFa.smtpRequired`),`error`):n(r,`error`)}}),j=q({mutationFn:()=>Z.confirmEnableEmailOTP(g,v),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),_(null),b(``),n(e(`settings.twoFa.emailOtpEnabled`),`success`)},onError:e=>n(e.message,`error`)}),M=q({mutationFn:e=>Z.disableEmailOTP(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),S(!1),w(``),n(e(`settings.twoFa.emailOtpDisabled`),`success`)},onError:e=>n(e.message,`error`)}),N=q({mutationFn:e=>Z.disableTOTP(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`2fa-status`]}),s(!1),d(``),n(e(`settings.twoFa.totpDisabled`),`success`)},onError:()=>n(e(`settings.twoFa.invalidCode`),`error`)}),P=q({mutationFn:e=>Z.regenerateBackupCodes(e),onSuccess:e=>{t.invalidateQueries({queryKey:[`2fa-status`]}),l(!1),p(``),h(e.backup_codes)},onError:()=>n(e(`settings.twoFa.invalidCode`),`error`)}),F=q({mutationFn:e=>Z.deleteOIDCLink(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-links`]}),n(e(`settings.twoFa.oidcUnlinked`),`success`)},onError:e=>n(e.message,`error`)});if(O)return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})});let I=!!r?.email;return(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-2fa-totp`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${D?.totp_enabled?`bg-green-100 dark:bg-green-500/20`:`bg-gray-500/20`}`,children:(0,G.jsx)(mu,{className:`w-5 h-5 ${D?.totp_enabled?`text-green-600 dark:text-green-400`:`text-gray-400`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.totpTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.twoFa.totpDesc`)})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:D?.totp_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400 text-sm font-medium`,children:[(0,G.jsx)(au,{className:`w-4 h-4`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray text-sm`,children:[(0,G.jsx)(ou,{className:`w-4 h-4`}),` `,e(`common.disabled`)]})})]})}),(0,G.jsx)(Vd,{children:i?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:e(`settings.twoFa.setupAuthApp`)}),(0,G.jsx)(`button`,{onClick:()=>{a(!1),t.removeQueries({queryKey:[`totp-setup`]})},className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(PGe,{onDone:()=>{a(!1),t.removeQueries({queryKey:[`totp-setup`]})}})]}):o?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.disableConfirmHint`)}),(0,G.jsx)(R8,{value:u,onChange:d,placeholder:`000000 or XXXXXXXX`,maxLength:8}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{s(!1),d(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,className:`flex-1`,disabled:u.length<6||N.isPending,onClick:()=>N.mutate(u),children:N.isPending?e(`common.saving`):e(`settings.twoFa.disableTotp`)})]})]}):c?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.regenBackupHint`)}),(0,G.jsx)(R8,{value:f,onChange:p,placeholder:`000000 or XXXXXXXX`,maxLength:8}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{l(!1),p(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:f.length<6||P.isPending,onClick:()=>P.mutate(f),children:P.isPending?e(`common.saving`):e(`settings.twoFa.regenBackup`)})]})]}):m?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:e(`settings.twoFa.newBackupCodes`)}),(0,G.jsx)(z8,{codes:m,onDone:()=>h(null)})]}):(0,G.jsx)(`div`,{className:`space-y-3`,children:D?.totp_enabled?(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray-light`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),e(`settings.twoFa.backupCodesRemaining`,{count:D.backup_codes_remaining})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>l(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`settings.twoFa.regenBackup`)]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>s(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.twoFa.disableTotp`)]})]}):(0,G.jsxs)(Q,{variant:`primary`,onClick:()=>a(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),e(`settings.twoFa.setupTotp`)]})})})]}),(0,G.jsxs)(zd,{id:`card-2fa-emailotp`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${D?.email_otp_enabled?`bg-green-100 dark:bg-green-500/20`:`bg-gray-500/20`}`,children:(0,G.jsx)(al,{className:`w-5 h-5 ${D?.email_otp_enabled?`text-green-600 dark:text-green-400`:`text-gray-400`}`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.emailOtpTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:I?e(`settings.twoFa.emailOtpDesc`,{email:r?.email}):e(`settings.twoFa.emailOtpNoEmail`)})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:D?.email_otp_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400 text-sm font-medium`,children:[(0,G.jsx)(au,{className:`w-4 h-4`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray text-sm`,children:[(0,G.jsx)(ou,{className:`w-4 h-4`}),` `,e(`common.disabled`)]})})]})}),(0,G.jsx)(Vd,{children:I?g?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.emailSetupEnterCode`)}),(0,G.jsx)(R8,{value:v,onChange:b,placeholder:`000000`}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{_(null),b(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:v.length!==6||j.isPending,onClick:()=>j.mutate(),children:j.isPending?e(`common.saving`):e(`settings.twoFa.verifyAndEnable`)})]})]}):x?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray-light text-sm`,children:e(`settings.twoFa.emailDisablePasswordHint`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:T?`text`:`password`,value:C,onChange:e=>w(e.target.value),placeholder:e(`settings.twoFa.passwordPlaceholder`),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>E(!T),className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:T?(0,G.jsx)(ic,{className:`w-5 h-5`}):(0,G.jsx)(ac,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{S(!1),w(``)},className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,className:`flex-1`,disabled:!C||M.isPending,onClick:()=>M.mutate(C),children:M.isPending?e(`common.saving`):e(`settings.twoFa.disableEmailOtp`)})]})]}):(0,G.jsx)(`div`,{className:`flex gap-3`,children:D?.email_otp_enabled?(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>S(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`settings.twoFa.disableEmailOtp`)]}):(0,G.jsxs)(Q,{variant:`primary`,disabled:!I||A.isPending,onClick:()=>A.mutate(),className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),A.isPending?e(`common.saving`):e(`settings.twoFa.enableEmailOtp`)]})}):(0,G.jsx)(`p`,{className:`text-amber-700 dark:text-amber-400 text-sm`,children:e(`settings.twoFa.addEmailFirst`)})})]}),k&&k.length>0&&(0,G.jsxs)(zd,{id:`card-2fa-linked`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.twoFa.linkedAccounts`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.twoFa.linkedAccountsDesc`)})]}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`space-y-3`,children:k.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-2 border-b border-bambu-dark-tertiary last:border-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:e.provider_name}),e.provider_email&&(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:e.provider_email})]}),(0,G.jsx)(Q,{variant:`danger`,size:`sm`,onClick:()=>F.mutate(e.provider_id),disabled:F.isPending,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]},e.id))})})]})]})}var IGe={name:``,issuer_url:``,client_id:``,client_secret:``,scopes:`openid email profile`,is_enabled:!0,auto_create_users:!1,auto_link_existing_accounts:!1,email_claim:`email`,require_email_verified:!0,icon_url:void 0,default_group_id:null,is_autologin:!1};function B8({initial:e,isEdit:t=!1,groups:n=[],onSave:r,onCancel:i,isPending:a}){let{t:o}=U(),[s,c]=(0,y.useState)(e),[l,u]=(0,y.useState)(!1),d=(e,t)=>c(n=>({...n,[e]:t})),f=`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors text-sm`,p=`block text-sm font-medium text-white mb-1`,m=()=>{let e={...s};t&&!l&&delete e.client_secret,r(e)},h=s.auto_link_existing_accounts===!0,g=s.require_email_verified??!0,_;return _=h?o(`settings.oidc.form.requireEmailVerifiedAutoLink`):g?o(`settings.oidc.form.requireEmailVerifiedDesc`):(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:o(`settings.oidc.form.requireEmailVerifiedWarning`)}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.name`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.name,onChange:e=>d(`name`,e.target.value),placeholder:`Google`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.issuerUrl`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.issuer_url,onChange:e=>d(`issuer_url`,e.target.value),placeholder:`https://accounts.google.com`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.clientId`),` `,(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{className:f,value:s.client_id,onChange:e=>d(`client_id`,e.target.value),placeholder:`your-client-id`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:p,children:[o(`settings.oidc.form.clientSecret`),!t&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:` *`}),t&&(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs ml-1`,children:[`(`,o(`settings.oidc.form.secretHint`),`)`]})]}),(0,G.jsx)(`input`,{className:f,type:`password`,value:l?s.client_secret:``,placeholder:t&&!l?`••••••••`:o(`settings.oidc.form.secretPlaceholder`),onChange:e=>{u(!0),d(`client_secret`,e.target.value)}})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.scopes`)}),(0,G.jsx)(`input`,{className:f,value:s.scopes,onChange:e=>d(`scopes`,e.target.value),placeholder:`openid email profile`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.iconUrl`)}),(0,G.jsx)(`input`,{className:f,value:s.icon_url??``,onChange:e=>d(`icon_url`,e.target.value===``?null:e.target.value),placeholder:`https://...`})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-6 pt-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(fH,{checked:s.is_enabled??!0,onChange:e=>d(`is_enabled`,e)}),(0,G.jsx)(`span`,{className:`text-white text-sm`,children:o(`settings.oidc.form.enabled`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(fH,{checked:s.auto_create_users??!1,onChange:e=>d(`auto_create_users`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autoCreate`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autoCreateDesc`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(fH,{checked:s.auto_link_existing_accounts??!1,onChange:e=>d(`auto_link_existing_accounts`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autoLink`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autoLinkDesc`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(fH,{checked:g,onChange:e=>d(`require_email_verified`,e),disabled:h}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.requireEmailVerified`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:_})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer w-full`,children:[(0,G.jsx)(fH,{checked:s.is_autologin??!1,onChange:e=>d(`is_autologin`,e)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm`,children:o(`settings.oidc.form.autologin`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs`,children:o(`settings.oidc.form.autologinDesc`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.emailClaim`)}),(0,G.jsx)(`input`,{className:f,value:s.email_claim,onChange:e=>d(`email_claim`,e.target.value||`email`),placeholder:o(`settings.oidc.form.emailClaimPlaceholder`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:o(`settings.oidc.form.emailClaimDesc`)}),h&&s.email_claim!==`email`&&(0,G.jsx)(`p`,{className:`text-yellow-700 dark:text-yellow-400 text-xs mt-1`,children:o(`settings.oidc.form.emailClaimCustomClaimAutoLinkWarning`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:p,children:o(`settings.oidc.form.defaultGroup`)}),(0,G.jsxs)(`select`,{className:f,value:s.default_group_id??``,onChange:e=>d(`default_group_id`,e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:o(`settings.oidc.form.defaultGroupViewersFallback`)}),n.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:o(`settings.oidc.form.defaultGroupDesc`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:i,className:`flex-1`,children:o(`common.cancel`)}),(0,G.jsx)(Q,{variant:`primary`,className:`flex-1`,disabled:!s.name||!s.issuer_url||!s.client_id||!t&&!s.client_secret||t&&l&&!s.client_secret||a,onClick:m,children:o(a?`common.saving`:`common.save`)})]})]})}function LGe({provider:e}){let[t,n]=(0,y.useState)(!1);return e.has_icon&&!t?(0,G.jsx)(`img`,{src:Z.oidcProviderIconUrl(e.id),alt:e.name,className:`w-8 h-8 rounded object-contain`,onError:()=>n(!0)}):(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-bambu-dark-tertiary flex items-center justify-center`,children:(0,G.jsx)(Ac,{className:`w-4 h-4 text-bambu-gray`})})}function RGe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),{data:l,isLoading:u}=K({queryKey:[`oidc-providers-all`],queryFn:()=>Z.getOIDCProvidersAll()}),{data:d=[]}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups()}),f=q({mutationFn:e=>Z.createOIDCProvider(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),i(!1),n(e(`settings.oidc.created`),`success`)},onError:e=>n(e.message,`error`)}),p=q({mutationFn:({id:e,data:t})=>Z.updateOIDCProvider(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),o(null),n(e(`settings.oidc.updated`),`success`)},onError:e=>n(e.message,`error`)}),m=q({mutationFn:e=>Z.deleteOIDCProvider(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),c(null),n(e(`settings.oidc.deleted`),`success`)},onError:e=>n(e.message,`error`)}),h=q({mutationFn:e=>Z.refreshOIDCProviderIcon(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),t.invalidateQueries({queryKey:[`oidc-providers`]}),n(e(`settings.oidc.iconRefreshed`),`success`)},onError:t=>n(t.message||e(`settings.oidc.iconFetchFailed`),`error`)}),g=q({mutationFn:e=>Z.deleteOIDCProviderIcon(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`oidc-providers-all`]}),t.invalidateQueries({queryKey:[`oidc-providers`]}),n(e(`settings.oidc.iconRemoved`),`success`)},onError:e=>n(e.message,`error`)}),_=e=>p.mutate({id:e.id,data:{is_enabled:!e.is_enabled}});return u?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,G.jsx)(Hl,{className:`w-6 h-6 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(zd,{id:`card-oidc`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-semibold`,children:e(`settings.oidc.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:e(`settings.oidc.desc`)})]}),!r&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>i(!0),className:`flex items-center gap-2`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`settings.oidc.addProvider`)]})]})}),r&&(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium mb-4`,children:e(`settings.oidc.newProvider`)}),(0,G.jsx)(B8,{initial:IGe,groups:d,onSave:e=>f.mutate(e),onCancel:()=>i(!1),isPending:f.isPending})]})})]}),l&&l.length===0&&!r&&(0,G.jsx)(zd,{id:`card-oidc-empty`,children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`text-center py-8 space-y-3`,children:[(0,G.jsx)(Ac,{className:`w-12 h-12 text-bambu-gray mx-auto`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.oidc.empty`)}),(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>i(!0),className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`settings.oidc.addProvider`)]})]})})}),l?.map(t=>(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(LGe,{provider:t}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h4`,{className:`text-white font-medium`,children:t.name}),t.is_enabled?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-400/10 px-2 py-0.5 rounded-full`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),` `,e(`common.enabled`)]}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-gray bg-bambu-dark-tertiary px-2 py-0.5 rounded-full`,children:[(0,G.jsx)(nd,{className:`w-3 h-3`}),` `,e(`common.disabled`)]}),t.is_env_managed&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-bambu-green`,children:[(0,G.jsx)(nl,{className:`w-3 h-3`}),` `,e(`settings.environmentManagedLabel`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-bambu-gray text-xs mt-0.5`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:t.issuer_url})]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:!t.is_env_managed&&(0,G.jsxs)(G.Fragment,{children:[t.icon_url&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h.mutate(t.id),disabled:h.isPending,title:e(`settings.oidc.refreshIcon`),"data-testid":`refresh-icon-${t.id}`,children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${h.isPending?`animate-spin`:``}`})}),t.has_icon&&(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>g.mutate(t.id),disabled:g.isPending,title:e(`settings.oidc.removeIcon`),"data-testid":`remove-icon-${t.id}`,children:(0,G.jsx)(Vc,{className:`w-4 h-4`})}),(0,G.jsx)(fH,{checked:t.is_enabled,onChange:()=>_(t),disabled:p.isPending}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>o(a===t.id?null:t.id),"data-testid":`edit-provider-${t.id}`,children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`danger`,size:`sm`,onClick:()=>c(t),"data-testid":`delete-provider-${t.id}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}),a===t.id&&(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsx)(B8,{isEdit:!0,groups:d,initial:{name:t.name,issuer_url:t.issuer_url,client_id:t.client_id,client_secret:``,scopes:t.scopes,is_enabled:t.is_enabled,auto_create_users:t.auto_create_users,auto_link_existing_accounts:t.auto_link_existing_accounts,email_claim:t.email_claim,require_email_verified:t.require_email_verified,icon_url:t.icon_url??void 0,default_group_id:t.default_group_id??null,is_autologin:t.is_autologin},onSave:e=>p.mutate({id:t.id,data:e}),onCancel:()=>o(null),isPending:p.isPending})})}),a!==t.id&&(0,G.jsx)(Vd,{children:(0,G.jsxs)(`dl`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-x-6 gap-y-2 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.clientId`)}),(0,G.jsx)(`dd`,{className:`text-white font-mono truncate`,children:t.client_id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.scopes`)}),(0,G.jsx)(`dd`,{className:`text-white`,children:t.scopes})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.autoCreate`)}),(0,G.jsx)(`dd`,{className:t.auto_create_users?`text-green-700 dark:text-green-400`:`text-bambu-gray`,children:t.auto_create_users?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.autoLink`)}),(0,G.jsx)(`dd`,{className:t.auto_link_existing_accounts?`text-green-700 dark:text-green-400`:`text-bambu-gray`,children:t.auto_link_existing_accounts?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.emailClaim`)}),(0,G.jsx)(`dd`,{className:`text-white font-mono`,children:t.email_claim})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.requireEmailVerified`)}),(0,G.jsx)(`dd`,{className:t.require_email_verified?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`,children:t.require_email_verified?e(`common.yes`):e(`common.no`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{className:`text-bambu-gray`,children:e(`settings.oidc.form.defaultGroup`)}),(0,G.jsx)(`dd`,{className:`text-white`,children:t.default_group_id?d.find(e=>e.id===t.default_group_id)?.name??e(`settings.oidc.form.defaultGroupViewersFallback`):e(`settings.oidc.form.defaultGroupViewersFallback`)})]})]})})]},t.id)),s&&(0,G.jsx)(of,{title:e(`settings.oidc.deleteTitle`),message:e(`settings.oidc.deleteMessage`,{name:s.name}),confirmText:e(`common.delete`),variant:`danger`,onConfirm:()=>m.mutate(s.id),onCancel:()=>c(null)})]})}var V8=new Map;function H8(e){V8.set(e.anchor,e)}function zGe(){return Array.from(V8.values())}H8({labelKey:`settings.encryption.title`,labelFallback:`MFA Encryption Status`,tab:`users`,subTab:`security`,keywords:`mfa encryption status security backup totp oidc fernet`,anchor:`card-mfa-encryption`});function BGe(){let{t:e}=U(),{data:t,isLoading:n,isError:r,refetch:i}=K({queryKey:[`encryptionStatus`],queryFn:()=>Z.getEncryptionStatus(),refetchInterval:e=>{if(!e.state.error)return 3e4;let t=e.state.fetchFailureCount??0;return t<=3?Math.min(5e3*Math.max(1,t),3e4):!1}});if(n)return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`text-bambu-gray`,size:20}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,"data-testid":`encryption-loading`,children:[(0,G.jsx)(Y,{className:`animate-spin`,size:16}),(0,G.jsx)(`span`,{children:e(`common.loading`)})]})})]});if(r||!t)return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`text-bambu-gray`,size:20}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`div`,{className:`text-red-700 dark:text-red-400`,"data-testid":`encryption-error`,children:e(`common.errorLoading`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(),className:`mt-2 text-sm text-blue-700 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-300`,"data-testid":`encryption-retry-button`,children:e(`common.retry`)})]})]});let a=t.legacy_plaintext_rows.oidc_providers+t.legacy_plaintext_rows.user_totp,o=t.encrypted_rows.oidc_providers+t.encrypted_rows.user_totp,s,c,l,u;t.decryption_broken?(s=`bg-red-100 dark:bg-red-500/20 border-red-400 dark:border-red-500/50 text-red-700 dark:text-red-400`,c=(0,G.jsx)(Ds,{className:`text-red-600 dark:text-red-400`,size:20}),l=e(`settings.encryption.decryptionBrokenTitle`),u=e(`settings.encryption.decryptionBrokenError`,{count:o})):t.key_source===`generated`?(s=`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,c=(0,G.jsx)(au,{className:`text-amber-600 dark:text-amber-400`,size:20}),l=e(`settings.encryption.enabledGenerated`),u=e(`settings.encryption.backupHint`)):a>0?(s=`bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,c=(0,G.jsx)(Lu,{className:`text-amber-600 dark:text-amber-400`,size:20}),l=t.key_source===`env`?e(`settings.encryption.enabledFromEnv`):e(`settings.encryption.enabledFromFile`),u=e(`settings.encryption.legacyRowsWarning`,{count:a})):t.key_configured?(s=`bg-green-100 dark:bg-green-500/20 border-green-300 dark:border-green-500/30 text-green-700 dark:text-green-400`,c=(0,G.jsx)(au,{className:`text-green-600 dark:text-green-400`,size:20}),l=t.key_source===`env`?e(`settings.encryption.enabledFromEnv`):e(`settings.encryption.enabledFromFile`),u=e(`settings.encryption.allEncrypted`)):(s=`bg-gray-500/20 border-gray-500/30 text-gray-400`,c=(0,G.jsx)(ou,{className:`text-gray-400`,size:20}),l=e(`settings.encryption.notConfigured`),u=e(`settings.encryption.notConfiguredDesc`));let d=t.key_source===`generated`&&a>0;return(0,G.jsxs)(zd,{id:`card-mfa-encryption`,"data-testid":`encryption-status-card`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`settings.encryption.title`)})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`p-3 border rounded-lg ${s}`,"data-testid":`encryption-status`,children:[(0,G.jsx)(`p`,{className:`font-medium mb-1`,children:l}),(0,G.jsx)(`p`,{className:`text-sm`,children:u})]}),d&&(0,G.jsx)(`div`,{className:`mt-2 p-3 border rounded-lg bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,"data-testid":`encryption-legacy-warning`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:e(`settings.encryption.legacyRowsWarning`,{count:a})})}),t.migration_error_count>0&&(0,G.jsx)(`div`,{className:`mt-2 p-3 border rounded-lg bg-amber-50 dark:bg-amber-500/10 border-amber-300 dark:border-amber-500/30 text-amber-700 dark:text-amber-400`,"data-testid":`encryption-migration-warning`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:e(`settings.encryption.migrationErrorWarning`,{count:t.migration_error_count})})}),(0,G.jsxs)(`div`,{className:`mt-4 grid grid-cols-2 gap-4 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.encryption.encryptedRowsLabel`)}),(0,G.jsxs)(`p`,{className:`font-medium`,children:[`OIDC: `,t.encrypted_rows.oidc_providers,` · TOTP: `,t.encrypted_rows.user_totp]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`settings.encryption.legacyRowsLabel`)}),(0,G.jsxs)(`p`,{className:`font-medium`,children:[`OIDC: `,t.legacy_plaintext_rows.oidc_providers,` · TOTP: `,t.legacy_plaintext_rows.user_totp]})]})]})]})]})}var VGe={get:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 border-blue-300 dark:border-blue-500/30`,post:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400 border-green-300 dark:border-green-500/30`,put:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 border-yellow-300 dark:border-yellow-500/30`,patch:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 border-orange-300 dark:border-orange-500/30`,delete:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 border-red-300 dark:border-red-500/30`};function HGe(e,t){let n=t.replace(`#/`,``).split(`/`),r=e;for(let e of n)r=r[e];return r}function U8(e,t,n=0){if(n>5)return`...`;if(t.$ref)return U8(e,HGe(e,t.$ref),n+1);if(t.allOf){let r={};for(let i of t.allOf){let t=U8(e,i,n+1);typeof t==`object`&&t&&Object.assign(r,t)}return r}if(t.example!==void 0)return t.example;if(t.default!==void 0)return t.default;switch(t.type){case`string`:return t.enum?t.enum[0]:`string`;case`integer`:case`number`:return 0;case`boolean`:return!1;case`array`:return t.items?[U8(e,t.items,n+1)]:[];case`object`:if(t.properties){let r={};for(let[i,a]of Object.entries(t.properties))r[i]=U8(e,a,n+1);return r}return{};default:return null}}function UGe({path:e,method:t,spec:n,schema:r,apiKey:i}){let[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)({}),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1);(0,y.useEffect)(()=>{if(a&&n.parameters){let e={};for(let t of n.parameters)t.schema?.default!==void 0&&(e[t.name]=String(t.schema.default));c(t=>({...e,...t}))}},[a,n.parameters]),(0,y.useEffect)(()=>{if(a&&n.requestBody?.content?.[`application/json`]?.schema&&!l){let e=n.requestBody.content[`application/json`].schema,t=U8(r,e);u(JSON.stringify(t,null,2))}},[a,n.requestBody,r,l]);let _=(()=>{let e=[];for(let t of n.parameters||[])if(t.in===`path`||t.required){let n=s[t.name];(n===void 0||n===``)&&e.push(t.name)}return e})(),v=async()=>{if(_.length>0){f({status:0,statusText:`Validation Error`,headers:{},body:`Missing required parameters: ${_.join(`, `)}`,duration:0});return}m(!0),f(null);try{let r=e,a=new URLSearchParams;for(let e of n.parameters||[]){let t=s[e.name];t!==void 0&&t!==``&&(e.in===`path`?r=r.replace(`{${e.name}}`,encodeURIComponent(t)):e.in===`query`&&a.append(e.name,t))}let o=a.toString(),c=`${r}${o?`?${o}`:``}`,u={"Content-Type":`application/json`};i&&(u[`X-API-Key`]=i);let d={method:t.toUpperCase(),headers:u};[`post`,`put`,`patch`].includes(t)&&l&&(d.body=l);let p=performance.now(),m=await fetch(c,d),h=Math.round(performance.now()-p),g={};m.headers.forEach((e,t)=>{g[t]=e});let _;_=m.headers.get(`content-type`)?.includes(`application/json`)?await m.json():await m.text(),f({status:m.status,statusText:m.statusText,headers:g,body:_,duration:h})}catch(e){f({status:0,statusText:`Network Error`,headers:{},body:e instanceof Error?e.message:`Unknown error`,duration:0})}finally{m(!1)}},b=async()=>{if(d){let e=typeof d.body==`string`?d.body:JSON.stringify(d.body,null,2);try{await navigator.clipboard.writeText(e),g(!0),setTimeout(()=>g(!1),2e3)}catch{let t=document.createElement(`textarea`);t.value=e,t.style.position=`fixed`,t.style.left=`-999999px`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t),g(!0),setTimeout(()=>g(!1),2e3)}}},x=(n.parameters||[]).filter(e=>e.in===`path`),S=(n.parameters||[]).filter(e=>e.in===`query`),C=[`post`,`put`,`patch`].includes(t)&&n.requestBody;return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>o(!a),className:`w-full flex items-center gap-3 p-3 hover:bg-bambu-dark-tertiary/50 transition-colors text-left`,children:[a?(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}):(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs font-mono font-semibold uppercase rounded border ${VGe[t]||`bg-gray-500/20 text-gray-400`}`,children:t}),(0,G.jsx)(`code`,{className:`text-sm text-white font-mono flex-1 truncate`,children:e}),n.summary&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate max-w-[40%]`,children:n.summary})]}),a&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary p-4 space-y-4 bg-bambu-dark/50`,children:[n.description&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n.description}),x.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Path Parameters`}),(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray w-32 flex-shrink-0`,children:[e.name,e.required&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 ml-1`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),placeholder:e.description||e.schema?.type||`value`,className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`})]},e.name))})]}),S.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Query Parameters`}),(0,G.jsx)(`div`,{className:`space-y-2`,children:S.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray w-32 flex-shrink-0`,children:[e.name,e.required&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400 ml-1`,children:`*`})]}),e.schema?.enum?(0,G.jsxs)(`select`,{value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:`-- Select --`}),e.schema.enum.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}):(0,G.jsx)(`input`,{type:`text`,value:s[e.name]||``,onChange:t=>c(n=>({...n,[e.name]:t.target.value})),placeholder:e.description||e.schema?.type||`value`,className:`flex-1 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm font-mono focus:border-bambu-green focus:outline-none`})]},e.name))})]}),C&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:`Request Body`}),(0,G.jsx)(`textarea`,{value:l,onChange:e=>u(e.target.value),rows:8,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono focus:border-bambu-green focus:outline-none resize-y`,placeholder:`JSON request body...`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:v,disabled:p,children:[p?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Nl,{className:`w-4 h-4`}),`Execute`]}),_.length>0&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400 flex items-center gap-1`,children:[(0,G.jsx)(ys,{className:`w-3 h-3`}),`Fill in: `,_.join(`, `)]})]}),d&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h4`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[`Response`,(0,G.jsxs)(`span`,{className:`px-2 py-0.5 text-xs rounded ${d.status>=200&&d.status<300?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`:d.status>=400?`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`}`,children:[d.status,` `,d.statusText]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[d.duration,`ms`]})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:b,children:h?(0,G.jsx)(xs,{className:`w-3 h-3 text-green-600 dark:text-green-400`}):(0,G.jsx)(Vs,{className:`w-3 h-3`})})]}),(0,G.jsx)(`pre`,{className:`p-3 bg-bambu-dark rounded-lg text-sm font-mono text-white overflow-auto max-h-96 border border-bambu-dark-tertiary`,children:typeof d.body==`string`?d.body:JSON.stringify(d.body,null,2)})]})]})]})}function WGe({apiKey:e=``}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!0),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(new Set),[l,u]=(0,y.useState)(``);if((0,y.useEffect)(()=>{async function e(){try{let e=await fetch(`/openapi.json`);if(!e.ok)throw Error(`Failed to fetch OpenAPI schema`);n(await e.json())}catch(e){o(e instanceof Error?e.message:`Unknown error`)}finally{i(!1)}}e()},[]),r)return(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});if(a||!t)return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ys,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{children:`Failed to load API schema`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:a})]})})});let d={};for(let[e,n]of Object.entries(t.paths))for(let[t,r]of Object.entries(n)){if(t===`parameters`)continue;let n=r.tags||[`Other`];for(let i of n)d[i]||(d[i]=[]),d[i].push({path:e,method:t,spec:r})}let f=Object.entries(d).map(([e,t])=>l?{tag:e,endpoints:t.filter(({path:e,method:t,spec:n})=>{let r=l.toLowerCase();return e.toLowerCase().includes(r)||t.toLowerCase().includes(r)||(n.summary?.toLowerCase()||``).includes(r)||(n.description?.toLowerCase()||``).includes(r)})}:{tag:e,endpoints:t}).filter(({endpoints:e})=>e.length>0).sort((e,t)=>e.tag.localeCompare(t.tag)),p=e=>{c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsx)(`div`,{className:`flex-1`,children:(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search endpoints...`,className:`w-full max-w-md px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{c(new Set(f.map(e=>e.tag)))},children:`Expand All`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{c(new Set)},children:`Collapse All`}),(0,G.jsxs)(`a`,{href:`/docs`,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 text-sm text-bambu-green hover:underline`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`Swagger UI`]})]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[f.reduce((e,t)=>e+t.endpoints.length,0),` endpoints in `,f.length,` categories`]}),(0,G.jsx)(`div`,{className:`space-y-3`,children:f.map(({tag:n,endpoints:r})=>(0,G.jsxs)(zd,{children:[(0,G.jsx)(`button`,{onClick:()=>p(n),className:`w-full flex items-center justify-between p-4 hover:bg-bambu-dark-tertiary/30 transition-colors text-left`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[s.has(n)?(0,G.jsx)(ps,{className:`w-5 h-5 text-bambu-gray`}):(0,G.jsx)(ms,{className:`w-5 h-5 text-bambu-gray`}),(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white capitalize`,children:n.replace(/-/g,` `)}),(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-2 py-0.5 rounded-full text-bambu-gray`,children:r.length})]})}),s.has(n)&&(0,G.jsx)(Vd,{className:`pt-0 space-y-2`,children:r.map(({path:n,method:r,spec:i})=>(0,G.jsx)(UGe,{path:n,method:r,spec:i,schema:t,apiKey:e},`${r}-${n}`))})]},n))})]})}var GGe=[{id:`sidecar`,labelKey:`settings.sliceEngineSidecar`,descriptionKey:`settings.sliceEngineSidecarHint`,available:!0},{id:`browser`,labelKey:`settings.sliceEngineBrowser`,descriptionKey:`settings.sliceEngineBrowserHint`,available:!1}];function W8(){return GGe.filter(e=>e.available)}function KGe(){return W8().length>1}function G8(e){return W8().find(t=>t.id===e)?.id??`sidecar`}var qGe=[`general`,`plugs`,`sensors`,`notifications`,`queue`,`filament`,`network`,`apikeys`,`virtual-printer`,`spoolbuddy`,`failure-detection`,`users`,`backup`];H8({labelKey:`settings.general`,tab:`general`,keywords:`language date time format printer model printers cards`,anchor:`card-general`}),H8({labelKey:`settings.appearance`,tab:`general`,keywords:`theme dark light mode colors`,anchor:`card-appearance`}),H8({labelKey:`settings.archiveSettings`,tab:`general`,keywords:`archive auto save thumbnails captures`,anchor:`card-archive`}),H8({labelKey:`settings.camera`,tab:`general`,keywords:`camera external video stream`,anchor:`card-camera`}),H8({labelKey:`settings.costTracking`,tab:`general`,keywords:`currency filament cost energy kwh price`,anchor:`card-cost`}),H8({labelKey:`settings.fileManager`,tab:`general`,keywords:`file manager archive mode disk warning storage`,anchor:`card-filemanager`}),H8({labelKey:`settings.updates`,tab:`general`,keywords:`updates version firmware beta check`,anchor:`card-updates`}),H8({labelKey:`settings.dataManagement`,tab:`general`,keywords:`data reset clear logs notifications preferences`,anchor:`card-data`}),H8({labelKey:`settings.smartPlugs`,tab:`plugs`,keywords:`smart plug energy power automation tapo kasa tplink shelly`,anchor:`card-plugs`}),H8({labelKey:`haSensors.sectionTitle`,tab:`sensors`,keywords:`home assistant sensor printer temperature humidity alert notify block print`,anchor:`card-ha-sensors`}),H8({labelKey:`locationHaSensors.sectionTitle`,tab:`sensors`,keywords:`home assistant sensor location storage box temperature humidity battery alert notify`,anchor:`card-location-sensors`}),H8({labelKey:`settings.providers`,tab:`notifications`,keywords:`telegram discord email notification providers webhook`,anchor:`card-providers`}),H8({labelKey:`settings.messageTemplates`,tab:`notifications`,keywords:`message templates notification text edit`,anchor:`card-templates`}),H8({labelKey:`settings.defaultPrintOptions`,labelFallback:`Default Print Options`,tab:`queue`,keywords:`print bed leveling flow calibration vibration first layer timelapse`,anchor:`card-print-options`}),H8({labelKey:`settings.tempFanPresetsTitle`,labelFallback:`Temperature & Fan Presets`,tab:`queue`,keywords:`temperature fan presets nozzle bed chamber quick buttons popover`,anchor:`card-temp-fan-presets`}),H8({labelKey:`settings.staggeredStart`,labelFallback:`Staggered Start`,tab:`queue`,keywords:`staggered batch delay start queue group`,anchor:`card-staggered`}),H8({labelKey:`settings.plateClear`,labelFallback:`Plate-Clear Confirmation`,tab:`queue`,keywords:`plate clear confirm auto queue`,anchor:`card-plate`}),H8({labelKey:`settings.concurrentUploadsTitle`,labelFallback:`Concurrent Uploads`,tab:`queue`,keywords:`concurrent parallel upload transfer ftp queue slow farm simultaneous`,anchor:`card-concurrent-uploads`}),H8({labelKey:`settings.gcodeInjection`,labelFallback:`G-code Injection`,tab:`queue`,keywords:`gcode injection start end autoprint farmloop swapmod autoclear printflow`,anchor:`card-gcode`}),H8({labelKey:`settings.slicerCard`,labelFallback:`Slicer`,tab:`queue`,keywords:`slicer orcaslicer bambustudio orca bambu api sidecar url docker preferred`,anchor:`card-slicer`}),H8({labelKey:`settings.queueDrying`,tab:`queue`,keywords:`drying presets temperature time humidity ams`,anchor:`card-drying`}),H8({labelKey:`settings.filamentChecks`,tab:`filament`,keywords:`filament check warning runout remaining`,anchor:`card-filamentchecks`}),H8({labelKey:`settings.printModal`,tab:`filament`,keywords:`print modal custom mapping`,anchor:`card-printmodal`}),H8({labelKey:`settings.amsDisplayThresholds`,tab:`filament`,keywords:`ams humidity temperature threshold history retention`,anchor:`card-amsthresholds`}),H8({labelKey:`settings.externalUrl`,tab:`network`,keywords:`external url reverse proxy public notification link`,anchor:`card-externalurl`}),H8({labelKey:`settings.ftpRetry`,tab:`network`,keywords:`ftp retry upload retries backoff`,anchor:`card-ftpretry`}),H8({labelKey:`settings.homeAssistant`,tab:`network`,keywords:`home assistant ha hass mqtt integration`,anchor:`card-ha`}),H8({labelKey:`settings.mqttPublishing`,tab:`network`,keywords:`mqtt publish broker topic`,anchor:`card-mqtt`}),H8({labelKey:`settings.prometheusMetrics`,tab:`network`,keywords:`prometheus metrics grafana monitoring bearer token`,anchor:`card-prometheus`}),H8({labelKey:`settings.createNewApiKey`,tab:`apikeys`,keywords:`api key create permission scope`,anchor:`card-createapi`}),H8({labelKey:`settings.webhookEndpoints`,tab:`apikeys`,keywords:`webhook endpoint post http`,anchor:`card-webhooks`}),H8({labelKey:`settings.apiBrowser`,tab:`apikeys`,keywords:`api browser endpoint documentation test`,anchor:`card-apibrowser`}),H8({labelKey:`cameraTokens.title`,tab:`apikeys`,keywords:`camera token long-lived home assistant frigate kiosk stream`,anchor:`card-camera-tokens`}),H8({labelKey:`settings.tabs.virtualPrinter`,tab:`virtual-printer`,keywords:`virtual printer proxy archive slicer bambustudio orcaslicer ip bind`,anchor:`card-vp`}),H8({labelKey:`settings.tabs.spoolbuddy`,tab:`spoolbuddy`,keywords:`spoolbuddy device scale nfc rfid kiosk unregister`,anchor:`card-spoolbuddy`}),H8({labelKey:`settings.currentUser`,tab:`users`,subTab:`users`,keywords:`current user profile password change`,anchor:`card-currentuser`}),H8({labelKey:`settings.users`,tab:`users`,subTab:`users`,keywords:`users accounts list`,anchor:`card-users`}),H8({labelKey:`settings.groups`,tab:`users`,subTab:`users`,keywords:`groups roles permissions administrators operators viewers`,anchor:`card-groups`}),H8({labelKey:`settings.sessionPolicy.title`,labelFallback:`Session Policy`,tab:`users`,subTab:`users`,keywords:`session timeout expiry logout remember me jwt token lifetime`,anchor:`card-session-policy`}),H8({labelKey:`settings.email.smtpSettings`,labelFallback:`SMTP Configuration`,tab:`users`,subTab:`email`,keywords:`smtp email send server port password auth starttls ssl`,anchor:`card-smtp`}),H8({labelKey:`settings.ldap.title`,labelFallback:`LDAP Authentication`,tab:`users`,subTab:`ldap`,keywords:`ldap active directory ad authentication bind dn search base group mapping`,anchor:`card-ldap`}),H8({labelKey:`settings.tabs.backup`,tab:`backup`,keywords:`backup github restore download cloud sync profiles archives`,anchor:`card-backup`}),H8({labelKey:`externalLinks.sidebarLayout`,labelFallback:`Sidebar`,tab:`general`,keywords:`sidebar layout links pages hide show external custom navigation url add`,anchor:`card-sidebar-links`}),H8({labelKey:`settings.filamentTracking`,tab:`filament`,keywords:`spoolman filament tracking inventory sync remote integration`,anchor:`card-spoolman`}),H8({labelKey:`settings.catalog.spoolCatalog`,labelFallback:`Spool Catalog`,tab:`filament`,keywords:`spool catalog entries brand material reset import export`,anchor:`card-spool-catalog`}),H8({labelKey:`settings.colorCatalog.title`,labelFallback:`Color Catalog`,tab:`filament`,keywords:`color catalog hex swatch palette sync reset`,anchor:`card-color-catalog`}),H8({labelKey:`settings.tabs.failureDetection`,labelFallback:`Failure Detection`,tab:`failure-detection`,keywords:`failure detection ai ml obico spaghetti detect monitoring`,anchor:`card-fd-ml`}),H8({labelKey:`failureDetection.perPrinterTitle`,labelFallback:`Per-Printer Settings`,tab:`failure-detection`,keywords:`failure detection per printer enable per-printer sensitivity`,anchor:`card-fd-perprinter`}),H8({labelKey:`failureDetection.statusTitle`,labelFallback:`Detection Status`,tab:`failure-detection`,keywords:`failure detection status running connection`,anchor:`card-fd-status`}),H8({labelKey:`failureDetection.historyTitle`,labelFallback:`Detection History`,tab:`failure-detection`,keywords:`failure detection history log events`,anchor:`card-fd-history`}),H8({labelKey:`settings.email.advancedAuth`,labelFallback:`Advanced Email Authentication`,tab:`users`,subTab:`email`,keywords:`email authentication advanced password reset self-service forgot`,anchor:`card-email-advanced-auth`}),H8({labelKey:`settings.email.testConnection`,labelFallback:`Test SMTP Connection`,tab:`users`,subTab:`email`,keywords:`email smtp test connection send check`,anchor:`card-email-test`}),H8({labelKey:`settings.twoFa.totpTitle`,labelFallback:`Authenticator App (TOTP)`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa totp authenticator app google authy otp`,anchor:`card-2fa-totp`}),H8({labelKey:`settings.twoFa.emailOtpTitle`,labelFallback:`Email One-Time Codes`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa email otp one time code`,anchor:`card-2fa-emailotp`}),H8({labelKey:`settings.twoFa.linkedAccounts`,labelFallback:`Linked Accounts`,tab:`users`,subTab:`twofa`,keywords:`two factor 2fa linked accounts sso oidc provider google github`,anchor:`card-2fa-linked`}),H8({labelKey:`settings.oidc.title`,labelFallback:`Single Sign-On (OIDC)`,tab:`users`,subTab:`oidc`,keywords:`sso oidc openid single sign-on pocketid authentik keycloak google okta azure provider`,anchor:`card-oidc`}),H8({labelKey:`settings.ldap.serverConfig`,labelFallback:`LDAP Server Configuration`,tab:`users`,subTab:`ldap`,keywords:`ldap server url bind dn user search base group filter tls`,anchor:`card-ldap-server`}),H8({labelKey:`backup.githubBackup`,labelFallback:`GitHub Backup`,tab:`backup`,keywords:`github backup cloud remote sync profiles token`,anchor:`card-backup-github`}),H8({labelKey:`backup.history`,labelFallback:`Backup History`,tab:`backup`,keywords:`backup history log runs github commits`,anchor:`card-backup-history`}),H8({labelKey:`backup.localBackup`,labelFallback:`Local Backup`,tab:`backup`,keywords:`local backup download zip manual export`,anchor:`card-backup-local`}),H8({labelKey:`backup.scheduledBackup`,labelFallback:`Scheduled Backups`,tab:`backup`,keywords:`scheduled backup automatic hourly daily weekly retention local path`,anchor:`card-backup-scheduled`});var K8=20,JGe={database:`bg-blue-600`,library_files:`bg-green-500`,library_thumbnails:`bg-teal-500`,library_other:`bg-emerald-700`,archive_timelapses:`bg-red-500`,archive_thumbnails:`bg-amber-500`,archive_files:`bg-sky-500`,virtual_printer_uploads:`bg-purple-500`,virtual_printer_upload_cache:`bg-fuchsia-500`,virtual_printer_certs:`bg-violet-500`,virtual_printer_other:`bg-purple-700`,downloads:`bg-cyan-500`,plate_calibration:`bg-lime-500`,logs:`bg-orange-500`,other_data:`bg-yellow-500`},q8=[`bg-blue-500`,`bg-green-500`,`bg-yellow-500`,`bg-red-500`,`bg-orange-500`,`bg-teal-500`,`bg-cyan-500`,`bg-purple-500`],J8=(e,t)=>JGe[e]||q8[t%q8.length],Y8={temperature:0,humidity:1,battery:2};function YGe(e,t){return e?PT(e,t,{decimals:2}):null}function XGe(){let e=co(),t=or(),[n,r]=Ri(),{t:i,i18n:a}=U(),{showToast:o}=qd(),{authEnabled:s,user:c,isAdmin:l,refreshAuth:u,hasPermission:d}=Nd(),{mode:f,resolvedMode:p,darkStyle:m,darkBackground:h,darkAccent:g,lightStyle:_,lightBackground:v,lightAccent:b,setMode:x,setDarkStyle:S,setDarkBackground:C,setDarkAccent:w,setLightStyle:T,setLightBackground:E,setLightAccent:D,progressInTitle:O,setProgressInTitle:k}=Id(),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)({}),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(!1),[ne,re]=(0,y.useState)(null),[ie,ae]=(0,y.useState)(!1),{colorize:oe,aboveColor:se,belowColor:H,optimalColor:ce}=R6(),[le,ue]=(0,y.useState)(null),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(null),[_e,ve]=(0,y.useState)(``),[ye,be]=(0,y.useState)(``),[xe,Se]=(0,y.useState)(!1),[Ce,we]=(0,y.useState)(!1),[Te,Ee]=(0,y.useState)(!1),[De,Oe]=(0,y.useState)(hm()),ke=n.get(`tab`),Ae=ke===`email`,[je,Me]=(0,y.useState)(Ae?`users`:ke&&qGe.includes(ke)?ke:`general`),[Ne,Pe]=(0,y.useState)(Ae?`email`:`users`),[Fe,Ie]=(0,y.useState)(ke===`queue`&&n.get(`sub`)===`pipelines`?`pipelines`:`dispatch`),Le=e=>{Me(e),e===`users`&&Pe(`users`),e===`queue`&&(Ie(`dispatch`),n.delete(`sub`)),e===`general`?n.delete(`tab`):n.set(`tab`,e),r(n,{replace:!0})},Re=e=>{Ie(e),e===`pipelines`?n.set(`sub`,`pipelines`):n.delete(`sub`),r(n,{replace:!0})},[ze,Be]=(0,y.useState)(!1),[Ve,He]=(0,y.useState)(``),[Ue,We]=(0,y.useState)({can_queue:!0,can_control_printer:!1,can_read_status:!0,can_manage_library:!0,can_manage_inventory:!0,can_manage_maintenance:!0,can_manage_archives:!0,can_manage_projects:!0,can_access_cloud:!1,can_update_energy_cost:!1}),[Ge,Ke]=(0,y.useState)(null),[qe,Je]=(0,y.useState)(!1),[Ye,Xe]=(0,y.useState)(null),[Ze,Qe]=(0,y.useState)(``),[$e,et]=(0,y.useState)(!1),[tt,nt]=(0,y.useState)(!1),[rt,it]=(0,y.useState)(null),[at,ot]=(0,y.useState)(!1),[st,ct]=(0,y.useState)(!1),[lt,ut]=(0,y.useState)(!1),[dt,ft]=(0,y.useState)({currentPassword:``,newPassword:``,confirmPassword:``}),[pt,mt]=(0,y.useState)(!1),[ht,gt]=(0,y.useState)(!1),[_t,vt]=(0,y.useState)(!1),[yt,bt]=(0,y.useState)(`local`),[xt,St]=(0,y.useState)(!1),[Ct,wt]=(0,y.useState)(null),[Tt,Et]=(0,y.useState)(null),[Dt,Ot]=(0,y.useState)(null),[At,jt]=(0,y.useState)(!1),[Mt,Nt]=(0,y.useState)({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),[Pt,Ft]=(0,y.useState)(null),[It,Lt]=(0,y.useState)(null),[Rt,zt]=(0,y.useState)(!1),[Bt,Vt]=(0,y.useState)({}),[Ht,Ut]=(0,y.useState)({}),Wt=e=>{Oe(e),hee(e),o(i(`settings.toast.settingsSaved`),`success`)},{data:Gt,isLoading:Kt}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:qt,isLoading:Jt,isFetching:Yt}=K({queryKey:[`storage-usage`],queryFn:()=>Z.getStorageUsage(),enabled:je===`general`,staleTime:1/0,refetchInterval:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1}),Xt=async()=>{gt(!0);try{let t=await Z.getStorageUsage({refresh:!0});e.setQueryData([`storage-usage`],t)}catch(e){o(e instanceof Error?e.message:`Failed to refresh storage usage`,`error`)}finally{gt(!1)}},{data:Zt,isLoading:Qt}=K({queryKey:[`smart-plugs`],queryFn:Z.getSmartPlugs}),{data:$t,isLoading:en}=K({queryKey:[`smart-plugs-energy`,Zt?.map(e=>e.id)],queryFn:async()=>{if(!Zt||Zt.length===0)return null;let e=await Promise.all(Zt.filter(e=>e.enabled).map(async e=>{try{return{plug:e,status:await Z.getSmartPlugStatus(e.id)}}catch{return{plug:e,status:null}}})),t=0,n=0,r=0,i=0,a=0;for(let{plug:o,status:s}of e){let e=o.plug_type===`mqtt`&&s?.energy?.power!=null;(s?.reachable||e)&&(a++,s?.energy?.power!=null&&(t+=s.energy.power),s?.energy?.today!=null&&(n+=s.energy.today),s?.energy?.yesterday!=null&&(r+=s.energy.yesterday),s?.energy?.total!=null&&(i+=s.energy.total))}return{totalPower:t,totalToday:n,totalYesterday:r,totalLifetime:i,reachableCount:a,totalPlugs:Zt.filter(e=>e.enabled).length}},enabled:je===`plugs`&&!!Zt&&Zt.length>0,refetchInterval:je===`plugs`?1e4:!1}),{data:tn,isLoading:W}=K({queryKey:[`notification-providers`],queryFn:Z.getNotificationProviders}),{data:nn,isLoading:rn}=K({queryKey:[`api-keys`],queryFn:Z.getAPIKeys}),an=q({mutationFn:e=>Z.createAPIKey(e),onSuccess:t=>{Ke(t.key||null),Be(!1),He(``),e.invalidateQueries({queryKey:[`api-keys`]}),o(i(`settings.toast.apiKeyCreated`))},onError:e=>{o(`Failed to create API key: ${e.message}`,`error`)}}),on=q({mutationFn:e=>Z.deleteAPIKey(e),onSuccess:(t,n)=>{e.setQueryData([`api-keys`],e=>(e??[]).filter(e=>e.id!==n)),o(i(`settings.toast.apiKeyDeleted`))},onError:e=>{o(`Failed to delete API key: ${e.message}`,`error`)}}),{data:sn}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:cn}=K({queryKey:[`haSensors`],queryFn:()=>Z.getHASensors()}),{data:ln}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),{data:un}=K({queryKey:v6,queryFn:Z.getLocations,enabled:je===`sensors`}),dn=Co({queries:(0,y.useMemo)(()=>Array.from(new Set((ln??[]).map(e=>e.location_id))),[ln]).map(e=>({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),enabled:je===`sensors`,refetchInterval:je===`sensors`?(Gt?.location_sensor_poll_interval||120)*1e3:!1}))}),fn=(0,y.useMemo)(()=>{let e=new Map;for(let t of dn)for(let n of t.data??[])e.set(n.id,n);return e},[dn]),pn=q({mutationFn:async e=>{for(let t of e)await Z.deleteLocationHASensor(t)},onSuccess:()=>{o(i(`locationHaSensors.toast.deleted`),`success`)},onError:e=>{o(e.message,`error`)},onSettled:()=>{e.invalidateQueries({queryKey:[`locationHaSensors`]}),e.invalidateQueries({queryKey:[`locationHaSensorReadings`]}),ue(null)}}),mn=zf(sn?.length??0),{data:hn,isLoading:gn}=K({queryKey:[`notification-templates`],queryFn:Z.getNotificationTemplates}),{data:_n}=K({queryKey:[`virtual-printer-settings`],queryFn:Cd.getSettings,refetchInterval:1e4}),vn=_n?.status?.running??!1,{data:yn}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:15e3}),bn=yn?.length??0,xn=yn?.some(e=>e.online)??!1,{data:Sn}=K({queryKey:[`obico-status`],queryFn:Z.getObicoStatus,refetchInterval:15e3}),Cn=!!(Sn?.is_running&&Sn?.enabled),{data:wn}=K({queryKey:[`ffmpeg-status`],queryFn:Z.checkFfmpeg}),{data:Tn}=K({queryKey:[`version`],queryFn:Z.getVersion}),En=!s||d(`library:purge`),{data:Dn}=K({queryKey:[`library-trash-settings`],queryFn:()=>Z.getLibraryTrashSettings(),enabled:En}),On=q({mutationFn:e=>Z.updateLibraryTrashSettings(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`library-trash-settings`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>o(e.message||i(`libraryAutoPurge.saveFailed`),`error`)}),kn=e=>{Dn&&On.mutate({retention_days:Dn.retention_days,auto_purge_enabled:Dn.auto_purge_enabled,auto_purge_days:Dn.auto_purge_days,auto_purge_include_never_printed:Dn.auto_purge_include_never_printed,...e})},An=!s||d(`archives:purge`),{data:jn}=K({queryKey:[`archive-purge-settings`],queryFn:()=>Z.getArchivePurgeSettings(),enabled:An}),Mn=q({mutationFn:e=>Z.updateArchivePurgeSettings(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`archive-purge-settings`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>o(e.message||i(`archiveAutoPurge.saveFailed`),`error`)}),Nn=e=>{jn&&Mn.mutate({enabled:jn.enabled,days:jn.days,purge_stats:jn.purge_stats,...e})},{data:Pn,refetch:Fn,isRefetching:In}=K({queryKey:[`updateCheck`],queryFn:Z.checkForUpdates,enabled:Gt?.check_updates!==!1,staleTime:300*1e3}),{data:Ln,refetch:Rn}=K({queryKey:[`updateStatus`],queryFn:Z.getUpdateStatus,refetchInterval:e=>{let t=e.state.data;return t?.status===`downloading`||t?.status===`installing`?1e3:!1}}),{data:zn}=K({queryKey:[`mqtt-status`],queryFn:Z.getMQTTStatus,refetchInterval:je===`network`?5e3:!1}),{data:Bn}=K({queryKey:[`github-backup-status`],queryFn:Z.getGitHubBackupStatus}),{data:Vn}=K({queryKey:[`cloud-status`],queryFn:Z.getCloudStatus}),{data:Hn={advanced_auth_enabled:!1,smtp_configured:!1,local_login_enabled:!0,autologin_provider_id:null}}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()}),{data:Un}=K({queryKey:[`ldapStatus`],queryFn:()=>Z.getLDAPStatus()}),{data:Wn}=K({queryKey:[`twoFAStatus`],queryFn:()=>Z.get2FAStatus()}),{data:Gn=[]}=K({queryKey:[`oidcProvidersAll`],queryFn:()=>Z.getOIDCProvidersAll(),enabled:l}),{data:Kn=[],isLoading:qn}=K({queryKey:[`users`],queryFn:()=>Z.getUsers(),enabled:s&&d(`users:read`)}),{data:Jn=[],isLoading:Yn}=K({queryKey:[`groups`],queryFn:()=>Z.getGroups(),enabled:s&&d(`groups:read`)}),Xn=q({mutationFn:e=>Z.createUser(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),e.invalidateQueries({queryKey:[`groups`]}),vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`settings.toast.userCreated`))},onError:e=>{o(e.message,`error`)}}),Zn=q({mutationFn:({id:e,data:t})=>Z.updateUser(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),e.invalidateQueries({queryKey:[`groups`]}),St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`settings.toast.userUpdated`))},onError:e=>{o(e.message,`error`)}}),Qn=q({mutationFn:({id:e,deleteItems:t})=>Z.deleteUser(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`users`]}),o(i(`settings.toast.userDeleted`)),Et(null),Ot(null)},onError:e=>{o(e.message,`error`)}}),$n=q({mutationFn:e=>Z.resetUserPassword({user_id:e}),onSuccess:e=>{o(e.message,`success`)},onError:e=>{o(e.message,`error`)}}),er=async e=>{Et(e),jt(!0);try{Ot(await Z.getUserItemsCount(e))}catch{Ot({archives:0,queue_items:0,library_files:0})}finally{jt(!1)}},tr=q({mutationFn:e=>Z.deleteGroup(e),onSuccess:()=>{e.invalidateQueries({queryKey:[`groups`]}),o(i(`settings.toast.groupDeleted`))},onError:e=>{o(e.message,`error`)}}),nr=()=>{let e=Hn?.advanced_auth_enabled||!1;if(!Mt.username){o(i(`settings.toast.fillRequiredFields`),`error`);return}if(e&&!Mt.email){o(`Email is required when advanced authentication is enabled`,`error`);return}if(!e){if(!Mt.password){o(i(`settings.toast.fillRequiredFields`),`error`);return}if(Mt.password!==Mt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}let e=_6(Mt.password);if(e){o(i({tooShort:`settings.toast.passwordTooShort`,needsUppercase:`settings.toast.passwordNeedsUppercase`,needsLowercase:`settings.toast.passwordNeedsLowercase`,needsDigit:`settings.toast.passwordNeedsDigit`,needsSpecial:`settings.toast.passwordNeedsSpecial`}[e]),`error`);return}}Xn.mutate({username:Mt.username,password:e?void 0:Mt.password,email:Mt.email||void 0,role:Mt.role,group_ids:Mt.group_ids.length>0?Mt.group_ids:void 0})},rr=e=>{if(Mt.password){if(Mt.password!==Mt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}let e=_6(Mt.password);if(e){o(i({tooShort:`settings.toast.passwordTooShort`,needsUppercase:`settings.toast.passwordNeedsUppercase`,needsLowercase:`settings.toast.passwordNeedsLowercase`,needsDigit:`settings.toast.passwordNeedsDigit`,needsSpecial:`settings.toast.passwordNeedsSpecial`}[e]),`error`);return}}let t={username:Mt.username||void 0,password:Mt.password||void 0,email:Mt.email||void 0,role:Mt.role,group_ids:Mt.group_ids};t.password||delete t.password,Zn.mutate({id:e,data:t})},ir=e=>{wt(e.id),Nt({username:e.username,password:``,email:e.email||``,confirmPassword:``,role:e.role,group_ids:e.groups?.map(e=>e.id)||[]}),St(!0)},ar=e=>{Nt(t=>({...t,group_ids:t.group_ids.includes(e)?t.group_ids.filter(t=>t!==e):[...t.group_ids,e]}))},sr=q({mutationFn:Z.applyUpdate,onSuccess:e=>{e.is_ha_addon||e.is_docker||e.is_windows_installer?o(e.message,`error`):Rn()}}),[cr,lr]=(0,y.useState)(null),ur=q({mutationFn:Z.testAllNotificationProviders,onSuccess:t=>{lr(t),e.invalidateQueries({queryKey:[`notification-providers`]}),t.failed===0?o(`All ${t.tested} providers tested successfully!`,`success`):o(`${t.success}/${t.tested} providers succeeded`,t.failed>0?`error`:`success`)},onError:e=>{o(`Failed to test providers: ${e.message}`,`error`)}}),dr=q({mutationFn:async e=>{if(!Zt)return{success:0,failed:0};let t=Zt.filter(e=>e.enabled),n=await Promise.all(t.map(async t=>{try{return await Z.controlSmartPlug(t.id,e),{success:!0}}catch{return{success:!1}}}));return{success:n.filter(e=>e.success).length,failed:n.filter(e=>!e.success).length}},onSuccess:(t,n)=>{e.invalidateQueries({queryKey:[`smart-plugs`]}),e.invalidateQueries({queryKey:[`smart-plugs-energy`]}),t.failed===0?o(`All ${t.success} plugs turned ${n}`,`success`):o(`${t.success} plugs turned ${n}, ${t.failed} failed`,`error`)},onError:e=>{o(`Failed: ${e.message}`,`error`)}}),fr=(0,y.useRef)(null),pr=(0,y.useRef)(null),mr=(0,y.useRef)(!1),hr=(0,y.useRef)(!0),gr=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(Gt&&!A){let e={...Gt,external_url:Gt.external_url||window.location.origin};gr.current=Gt,j(e),setTimeout(()=>{hr.current=!1},100)}},[Gt,A]),(0,y.useEffect)(()=>{let e=gr.current;if(!Gt||!A||!e||Gt===e)return;let t={};for(let n of Object.keys(Gt))Gt[n]!==e[n]&&A[n]===e[n]&&(t[n]=Gt[n]);gr.current=Gt,Object.keys(t).length>0&&j(e=>e&&{...e,...t})},[Gt,A]);let _r=q({mutationFn:Z.updateSettings,onSuccess:t=>{gr.current=t,e.setQueryData([`settings`],t),e.invalidateQueries({queryKey:[`archiveStats`]}),o(i(`settings.toast.settingsSaved`),`success`)},onError:e=>{o(`Failed to save: ${e.message}`,`error`)},onSettled:()=>{mr.current=!1}}),vr=q({mutationFn:({id:e,data:t})=>Z.updatePrinter(e,t),onSuccess:()=>{e.invalidateQueries({queryKey:[`printers`]}),o(i(`settings.toast.cameraSettingsSaved`),`success`)},onError:e=>{o(`Failed to update printer: ${e.message}`,`error`)}});(0,y.useEffect)(()=>{let e=gr.current;if(!(hr.current||!A||!Gt||!e)&&!(s&&!d(`settings:update`))&&(e.auto_archive!==A.auto_archive||e.save_thumbnails!==A.save_thumbnails||e.capture_finish_photo!==A.capture_finish_photo||(e.finish_photo_restore_plate??!0)!==(A.finish_photo_restore_plate??!0)||e.default_filament_cost!==A.default_filament_cost||e.currency!==A.currency||e.energy_cost_per_kwh!==A.energy_cost_per_kwh||e.energy_tracking_mode!==A.energy_tracking_mode||e.check_updates!==A.check_updates||(e.check_printer_firmware??!0)!==(A.check_printer_firmware??!0)||(e.include_beta_updates??!1)!==(A.include_beta_updates??!1)||(e.local_login_enabled??!0)!==(A.local_login_enabled??!0)||e.notification_language!==A.notification_language||(e.bed_cooled_threshold??35)!==(A.bed_cooled_threshold??35)||e.ams_humidity_good!==A.ams_humidity_good||e.ams_humidity_fair!==A.ams_humidity_fair||e.ams_temp_good!==A.ams_temp_good||e.ams_temp_fair!==A.ams_temp_fair||(e.ams_temp_alarm??null)!==(A.ams_temp_alarm??null)||e.ams_history_retention_days!==A.ams_history_retention_days||e.disable_filament_warnings!==A.disable_filament_warnings||e.prefer_lowest_filament!==A.prefer_lowest_filament||(e.queue_drying_enabled??!1)!==(A.queue_drying_enabled??!1)||(e.queue_drying_block??!1)!==(A.queue_drying_block??!1)||(e.ambient_drying_enabled??!1)!==(A.ambient_drying_enabled??!1)||(e.print_drying_enabled??!1)!==(A.print_drying_enabled??!1)||(e.drying_presets??``)!==(A.drying_presets??``)||(e.ams_humidity_thresholds??``)!==(A.ams_humidity_thresholds??``)||e.per_printer_mapping_expanded!==A.per_printer_mapping_expanded||e.date_format!==A.date_format||e.time_format!==A.time_format||e.default_printer_id!==A.default_printer_id||e.ftp_retry_enabled!==A.ftp_retry_enabled||e.ftp_retry_count!==A.ftp_retry_count||e.ftp_retry_delay!==A.ftp_retry_delay||e.ftp_timeout!==A.ftp_timeout||e.mqtt_enabled!==A.mqtt_enabled||e.mqtt_broker!==A.mqtt_broker||e.mqtt_port!==A.mqtt_port||e.mqtt_username!==A.mqtt_username||e.mqtt_password!==A.mqtt_password||e.mqtt_topic_prefix!==A.mqtt_topic_prefix||e.mqtt_use_tls!==A.mqtt_use_tls||e.external_url!==A.external_url||e.ha_enabled!==A.ha_enabled||e.ha_url!==A.ha_url||e.ha_token!==A.ha_token||(e.library_archive_mode??`ask`)!==(A.library_archive_mode??`ask`)||Number(e.library_disk_warning_gb??5)!==Number(A.library_disk_warning_gb??5)||(e.preferred_slicer??`bambu_studio`)!==(A.preferred_slicer??`bambu_studio`)||G8(e.slice_engine)!==G8(A.slice_engine)||(e.open_in_slicer??null)!==(A.open_in_slicer??null)||(e.use_slicer_api??!1)!==(A.use_slicer_api??!1)||(e.orcaslicer_api_url??``)!==(A.orcaslicer_api_url??``)||(e.slicer_stall_timeout_minutes??15)!==(A.slicer_stall_timeout_minutes??15)||(e.bambu_studio_api_url??``)!==(A.bambu_studio_api_url??``)||e.prometheus_enabled!==A.prometheus_enabled||e.prometheus_token!==A.prometheus_token||(e.user_notifications_enabled??!0)!==(A.user_notifications_enabled??!0)||(e.default_bed_levelling??`auto`)!==(A.default_bed_levelling??`auto`)||(e.default_flow_cali??`auto`)!==(A.default_flow_cali??`auto`)||(e.default_vibration_cali??!0)!==(A.default_vibration_cali??!0)||(e.default_layer_inspect??!1)!==(A.default_layer_inspect??!1)||(e.default_timelapse??!1)!==(A.default_timelapse??!1)||(e.default_nozzle_offset_cali??`auto`)!==(A.default_nozzle_offset_cali??`auto`)||(e.stagger_group_size??2)!==(A.stagger_group_size??2)||(e.stagger_interval_minutes??5)!==(A.stagger_interval_minutes??5)||(e.require_plate_clear??!1)!==(A.require_plate_clear??!1)||(e.queue_max_concurrent_uploads??4)!==(A.queue_max_concurrent_uploads??4)||(e.preheat_enabled??!1)!==(A.preheat_enabled??!1)||(e.preheat_filament_targets??``)!==(A.preheat_filament_targets??``)||(e.preheat_max_wait_seconds??900)!==(A.preheat_max_wait_seconds??900)||(e.preheat_soak_seconds??300)!==(A.preheat_soak_seconds??300)||(e.queue_keep_bed_warm??!1)!==(A.queue_keep_bed_warm??!1)||(e.queue_keep_warm_bed_temp??90)!==(A.queue_keep_warm_bed_temp??90)||(e.queue_keep_warm_max_minutes??120)!==(A.queue_keep_warm_max_minutes??120)||(e.nozzle_temp_presets??``)!==(A.nozzle_temp_presets??``)||(e.bed_temp_presets??``)!==(A.bed_temp_presets??``)||(e.chamber_temp_presets??``)!==(A.chamber_temp_presets??``)||(e.fan_speed_presets??``)!==(A.fan_speed_presets??``)||(e.session_max_hours??24)!==(A.session_max_hours??24)||(e.billing_enabled??!1)!==(A.billing_enabled??!1)||(e.printer_kill_switch_enabled??!1)!==(A.printer_kill_switch_enabled??!1)||(e.finance_budget_reset_day??1)!==(A.finance_budget_reset_day??1)||(e.finance_budget_reset_timezone??`UTC`)!==(A.finance_budget_reset_timezone??`UTC`))&&!mr.current)return fr.current&&clearTimeout(fr.current),fr.current=setTimeout(()=>{if(mr.current)return;mr.current=!0;let e={auto_archive:A.auto_archive,save_thumbnails:A.save_thumbnails,capture_finish_photo:A.capture_finish_photo,finish_photo_restore_plate:A.finish_photo_restore_plate??!0,default_filament_cost:A.default_filament_cost,currency:A.currency,energy_cost_per_kwh:A.energy_cost_per_kwh,energy_tracking_mode:A.energy_tracking_mode,check_updates:A.check_updates,check_printer_firmware:A.check_printer_firmware,include_beta_updates:A.include_beta_updates,local_login_enabled:A.local_login_enabled,notification_language:A.notification_language,bed_cooled_threshold:A.bed_cooled_threshold,ams_humidity_good:A.ams_humidity_good,ams_humidity_fair:A.ams_humidity_fair,ams_temp_good:A.ams_temp_good,ams_temp_fair:A.ams_temp_fair,ams_temp_alarm:A.ams_temp_alarm??null,ams_history_retention_days:A.ams_history_retention_days,disable_filament_warnings:A.disable_filament_warnings,prefer_lowest_filament:A.prefer_lowest_filament,queue_drying_enabled:A.queue_drying_enabled,queue_drying_block:A.queue_drying_block,ambient_drying_enabled:A.ambient_drying_enabled,print_drying_enabled:A.print_drying_enabled,drying_presets:A.drying_presets,ams_humidity_thresholds:A.ams_humidity_thresholds,per_printer_mapping_expanded:A.per_printer_mapping_expanded,date_format:A.date_format,time_format:A.time_format,default_printer_id:A.default_printer_id,ftp_retry_enabled:A.ftp_retry_enabled,ftp_retry_count:A.ftp_retry_count,ftp_retry_delay:A.ftp_retry_delay,ftp_timeout:A.ftp_timeout,mqtt_enabled:A.mqtt_enabled,mqtt_broker:A.mqtt_broker,mqtt_port:A.mqtt_port,mqtt_username:A.mqtt_username,mqtt_password:A.mqtt_password,mqtt_topic_prefix:A.mqtt_topic_prefix,mqtt_use_tls:A.mqtt_use_tls,external_url:A.external_url,ha_enabled:A.ha_enabled,ha_url:A.ha_url,ha_token:A.ha_token,library_archive_mode:A.library_archive_mode,library_disk_warning_gb:A.library_disk_warning_gb,preferred_slicer:A.preferred_slicer,slice_engine:A.slice_engine,open_in_slicer:A.open_in_slicer,use_slicer_api:A.use_slicer_api,orcaslicer_api_url:A.orcaslicer_api_url,slicer_stall_timeout_minutes:A.slicer_stall_timeout_minutes,bambu_studio_api_url:A.bambu_studio_api_url,prometheus_enabled:A.prometheus_enabled,prometheus_token:A.prometheus_token,user_notifications_enabled:A.user_notifications_enabled,default_bed_levelling:A.default_bed_levelling,default_flow_cali:A.default_flow_cali,default_vibration_cali:A.default_vibration_cali,default_layer_inspect:A.default_layer_inspect,default_timelapse:A.default_timelapse,default_nozzle_offset_cali:A.default_nozzle_offset_cali,stagger_group_size:A.stagger_group_size,stagger_interval_minutes:A.stagger_interval_minutes,require_plate_clear:A.require_plate_clear,queue_max_concurrent_uploads:A.queue_max_concurrent_uploads,preheat_enabled:A.preheat_enabled,preheat_filament_targets:A.preheat_filament_targets,preheat_max_wait_seconds:A.preheat_max_wait_seconds,preheat_soak_seconds:A.preheat_soak_seconds,queue_keep_bed_warm:A.queue_keep_bed_warm,queue_keep_warm_bed_temp:A.queue_keep_warm_bed_temp,queue_keep_warm_max_minutes:A.queue_keep_warm_max_minutes,nozzle_temp_presets:A.nozzle_temp_presets,bed_temp_presets:A.bed_temp_presets,chamber_temp_presets:A.chamber_temp_presets,fan_speed_presets:A.fan_speed_presets,session_max_hours:A.session_max_hours,billing_enabled:A.billing_enabled,printer_kill_switch_enabled:A.printer_kill_switch_enabled,finance_budget_reset_day:A.finance_budget_reset_day,finance_budget_reset_timezone:A.finance_budget_reset_timezone};_r.mutate(e)},500),()=>{fr.current&&clearTimeout(fr.current)}},[A,Gt,_r,s,d,o,i]);let yr=(0,y.useCallback)((e,t)=>{if(s&&!d(`settings:update`)){o(i(`settings.toast.noPermissionUpdate`),`error`);return}j(n=>n?{...n,[e]:t}:null)},[s,d,o,i]),br=async(e,t,n)=>{if(!t){o(i(`settings.toast.enterCameraUrl`),`error`);return}Ut(t=>({...t,[e]:!0})),Vt(t=>({...t,[e]:null}));try{let r=await Z.testExternalCamera(e,t,n);Vt(t=>({...t,[e]:r})),r.success?o(r.coalesced?i(`settings.toast.cameraConnectedCoalesced`,{resolution:r.resolution||``}):i(`settings.toast.cameraConnected`,{resolution:r.resolution||``}),`success`):o(r.error||i(`settings.toast.connectionFailed`),`error`)}catch(t){let n=t instanceof Error?t.message:i(`settings.toast.testFailed`);Vt(t=>({...t,[e]:{success:!1,error:n}})),o(n,`error`)}finally{Ut(t=>({...t,[e]:!1}))}},[xr,Sr]=(0,y.useState)({}),Cr=(0,y.useRef)({}),wr=(0,y.useRef)(new Set),[Tr,Er]=(0,y.useState)({}),Dr=(0,y.useRef)({}),Or=(0,y.useRef)(new Set);(0,y.useEffect)(()=>{if(sn){let e={},t={};sn.forEach(n=>{n.external_camera_url&&!wr.current.has(n.id)&&(e[n.id]=n.external_camera_url,wr.current.add(n.id)),n.external_camera_snapshot_url&&!Or.current.has(n.id)&&(t[n.id]=n.external_camera_snapshot_url,Or.current.add(n.id))}),Object.keys(e).length>0&&Sr(t=>({...t,...e})),Object.keys(t).length>0&&Er(e=>({...e,...t}))}},[sn]);let kr=(e,t)=>{Sr(n=>({...n,[e]:t})),Cr.current[e]&&clearTimeout(Cr.current[e]),Cr.current[e]=setTimeout(()=>{vr.mutate({id:e,data:{external_camera_url:t||null}})},800)},Ar=(e,t)=>{Er(n=>({...n,[e]:t})),Dr.current[e]&&clearTimeout(Dr.current[e]),Dr.current[e]=setTimeout(()=>{vr.mutate({id:e,data:{external_camera_snapshot_url:t||null}})},800)},jr=(e,t)=>{let n={};t.type!==void 0&&(n.external_camera_type=t.type||null),t.enabled!==void 0&&(n.external_camera_enabled=t.enabled),t.rotation!==void 0&&(n.camera_rotation=t.rotation),vr.mutate({id:e,data:n})};if(Kt||!A)return(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});let Mr=zGe().map(e=>({...e,label:i(e.labelKey,e.labelFallback??e.labelKey)})),Nr=ye.trim().toLowerCase(),Pr=Nr?Mr.filter(e=>e.label.toLowerCase().includes(Nr)||e.keywords.toLowerCase().includes(Nr)).slice(0,8):[],Fr=e=>{Le(e.tab),e.subTab&&Pe(e.subTab),be(``),setTimeout(()=>{let t=document.getElementById(e.anchor);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),t.classList.add(`ring-2`,`ring-bambu-green`),setTimeout(()=>t.classList.remove(`ring-2`,`ring-bambu-green`),1500))},50)},Ir=(A?.docker_compose_dir??``).trim()||(Pn?.compose_dir_detected??``),Lr=Ir?`cd ${/\s/.test(Ir)?`"${Ir}"`:Ir} && docker compose pull && docker compose up -d`:`docker compose pull && docker compose up -d`;return(0,G.jsx)(Rd,{density:`dense`,children:(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(ru,{className:`w-7 h-7 text-bambu-green`}),i(`settings.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i(`settings.configureBambuddy`)})]}),(0,G.jsxs)(`div`,{className:`relative sm:w-72`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:ye,onChange:e=>be(e.target.value),placeholder:i(`settings.searchPlaceholder`,`Search settings…`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),ye&&(0,G.jsx)(`button`,{onClick:()=>be(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-bambu-gray hover:text-white`,"aria-label":`Clear`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})}),Pr.length>0&&(0,G.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-30 overflow-hidden`,children:Pr.map(e=>(0,G.jsxs)(`button`,{onClick:()=>Fr(e),className:`w-full px-3 py-2 text-left hover:bg-bambu-dark-tertiary transition-colors border-b border-bambu-dark-tertiary last:border-b-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.label}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[i(`settings.tabs.${e.tab===`virtual-printer`?`virtualPrinter`:e.tab===`failure-detection`?`failureDetection`:e.tab}`),e.subTab?` › ${i(`settings.tabs.${e.subTab}`,e.subTab)}`:``]})]},e.anchor))}),Nr&&Pr.length===0&&(0,G.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-30 p-3`,children:(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray italic`,children:i(`settings.noSearchResults`,`No matching settings.`)})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`nav`,{className:`flex flex-wrap gap-1 border-b border-bambu-dark-tertiary lg:flex-col lg:flex-nowrap lg:gap-0 lg:border-b-0 lg:border-r lg:w-48 lg:flex-shrink-0 lg:self-start lg:sticky lg:top-4`,children:[(0,G.jsxs)(`button`,{onClick:()=>Le(`general`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`general`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(ru,{className:`w-4 h-4`}),i(`settings.tabs.general`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`plugs`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`plugs`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Pl,{className:`w-4 h-4`}),i(`settings.tabs.smartPlugs`),Zt&&Zt.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:Zt.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`sensors`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`sensors`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Tc,{className:`w-4 h-4`}),i(`settings.tabs.sensors`),(cn?.length??0)+(ln?.length??0)>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:(cn?.length??0)+(ln?.length??0)})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`notifications`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`notifications`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(qo,{className:`w-4 h-4`}),i(`settings.tabs.notifications`),tn&&tn.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:tn.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`queue`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`queue`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),i(`settings.tabs.queue`,`Workflow`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`filament`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`filament`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ws,{className:`w-4 h-4`}),i(`settings.tabs.filament`)]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`network`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`network`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qu,{className:`w-4 h-4`}),i(`settings.tabs.network`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${zn?.enabled?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`apikeys`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`apikeys`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.tabs.apiKeys`),nn&&nn.length>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:nn.length})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`virtual-printer`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`virtual-printer`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),i(`settings.tabs.virtualPrinter`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${vn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`spoolbuddy`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`spoolbuddy`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Jl,{className:`w-4 h-4`}),i(`settings.tabs.spoolbuddy`),bn>0&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-dark-tertiary px-1.5 py-0.5 rounded-full`,children:bn}),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${xn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`failure-detection`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`failure-detection`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Yl,{className:`w-4 h-4`}),i(`settings.tabs.failureDetection`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Cn?`bg-green-400`:`bg-gray-500`}`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`users`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`users`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),i(`settings.tabs.users`),s&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Le(`backup`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${je===`backup`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Gs,{className:`w-4 h-4`}),i(`settings.tabs.backup`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Vn?.is_authenticated&&Bn?.configured&&Bn?.enabled||Gt?.local_backup_enabled?`bg-green-400`:`bg-gray-500`}`})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[je===`general`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`a`,{href:Bf(mn,`app-settings`),target:`_blank`,rel:`noopener noreferrer`,className:`group block mb-4 lg:mb-6 rounded-xl border border-bambu-green/30 bg-gradient-to-br from-bambu-green/15 via-bambu-green/5 to-transparent hover:border-bambu-green/50 hover:from-bambu-green/20 transition-colors`,children:(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row items-start md:items-center gap-4 p-4 md:p-5`,children:[(0,G.jsx)(`div`,{className:`p-3 rounded-lg bg-bambu-green/20 text-bambu-green flex-shrink-0`,children:mn===`business`?(0,G.jsx)(Qo,{className:`w-6 h-6`}):(0,G.jsx)(Rc,{className:`w-6 h-6`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-base font-semibold text-white`,children:mn===`business`?i(`sponsors.businessTitle`,`Bambuddy for business`):i(`sponsors.sectionTitle`,`Independent & community-funded`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-0.5`,children:mn===`business`?i(`sponsors.businessTagline`,`You're running {{count}} printers. Priority support, commercial licensing and invoicing are available for teams and print farms.`,{count:sn?.length??0}):i(`sponsors.tagline`,`Bambuddy is free and stays that way because people choose to support it. No VC, no cloud lock-in.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-4 py-2 rounded-lg bg-bambu-green/20 text-bambu-green group-hover:bg-bambu-green/30 text-sm font-medium whitespace-nowrap self-start md:self-auto`,children:[mn===`business`?i(`sponsors.businessCta`,`Bambuddy for business`):i(`sponsors.viewSupporters`,`View supporters`),(0,G.jsx)(rc,{className:`w-4 h-4`})]})]})}),(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-xl`,children:[(0,G.jsxs)(zd,{id:`card-general`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.general`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4 inline mr-1`}),i(`settings.language`)]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:a.language,onChange:e=>{let t=e.target.value;if(s&&!d(`settings:update`)){o(i(`settings.toast.noPermissionUpdate`),`error`);return}a.changeLanguage(t),_r.mutate({language:t})},className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:kt.map(e=>(0,G.jsxs)(`option`,{value:e.code,children:[e.nativeName,` (`,e.name,`)`]},e.code))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.languageDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultView`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:De,onChange:e=>Wt(e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:mm.map(e=>(0,G.jsx)(`option`,{value:e.to,children:i(e.labelKey)},e.id))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.defaultViewDescription`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.dateFormat`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.date_format||`system`,onChange:e=>yr(`date_format`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`system`,children:i(`settings.systemDefault`)}),(0,G.jsx)(`option`,{value:`us`,children:i(`settings.dateFormatUs`)}),(0,G.jsx)(`option`,{value:`eu`,children:i(`settings.dateFormatEu`)}),(0,G.jsx)(`option`,{value:`iso`,children:i(`settings.dateFormatIso`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.timeFormat`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.time_format||`system`,onChange:e=>yr(`time_format`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`system`,children:i(`settings.systemDefault`)}),(0,G.jsx)(`option`,{value:`12h`,children:i(`settings.timeFormat12`)}),(0,G.jsx)(`option`,{value:`24h`,children:i(`settings.timeFormat24`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultPrinter`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.default_printer_id??``,onChange:e=>yr(`default_printer_id`,e.target.value?Number(e.target.value):null),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:``,children:i(`settings.noDefaultPrinter`)}),sn?.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.defaultPrinterDescription`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-appearance`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(wl,{className:`w-5 h-5`}),i(`settings.appearance`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-bambu-gray`,children:[i(`settings.theme`),`:`]}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:[{id:`dark`,label:i(`settings.themeDark`)},{id:`light`,label:i(`settings.themeLight`)},{id:`system`,label:i(`settings.themeSystem`)}].map(({id:e,label:t})=>(0,G.jsx)(`button`,{onClick:()=>{x(e),o(i(`settings.toast.settingsSaved`),`success`)},className:`px-3 py-1 text-xs rounded-lg border transition-colors ${f===e?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-gray-300 dark:border-bambu-dark-tertiary text-gray-500 dark:text-bambu-gray hover:text-gray-900 dark:hover:text-white cursor-pointer`}`,children:t},e))})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-4 rounded-lg border ${p===`dark`?`border-bambu-green bg-bambu-green/5`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[i(`settings.darkMode`),p===`dark`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.active`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.background`)}),(0,G.jsxs)(`select`,{value:h,onChange:e=>{C(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`neutral`,children:i(`settings.bgNeutral`)}),(0,G.jsx)(`option`,{value:`warm`,children:i(`settings.bgWarm`)}),(0,G.jsx)(`option`,{value:`cool`,children:i(`settings.bgCool`)}),(0,G.jsx)(`option`,{value:`oled`,children:i(`settings.bgOled`)}),(0,G.jsx)(`option`,{value:`slate`,children:i(`settings.bgSlate`)}),(0,G.jsx)(`option`,{value:`forest`,children:i(`settings.bgForest`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.accent`)}),(0,G.jsxs)(`select`,{value:g,onChange:e=>{w(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`green`,children:i(`settings.accentGreen`)}),(0,G.jsx)(`option`,{value:`teal`,children:i(`settings.accentTeal`)}),(0,G.jsx)(`option`,{value:`blue`,children:i(`settings.accentBlue`)}),(0,G.jsx)(`option`,{value:`orange`,children:i(`settings.accentOrange`)}),(0,G.jsx)(`option`,{value:`purple`,children:i(`settings.accentPurple`)}),(0,G.jsx)(`option`,{value:`red`,children:i(`settings.accentRed`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.style`)}),(0,G.jsxs)(`select`,{value:m,onChange:e=>{S(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`classic`,children:i(`settings.styleClassic`)}),(0,G.jsx)(`option`,{value:`glow`,children:i(`settings.styleGlow`)}),(0,G.jsx)(`option`,{value:`vibrant`,children:i(`settings.styleVibrant`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 p-4 rounded-lg border ${p===`light`?`border-bambu-green bg-bambu-green/5`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[i(`settings.lightMode`),p===`light`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.active`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.background`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>{E(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`neutral`,children:i(`settings.bgNeutral`)}),(0,G.jsx)(`option`,{value:`warm`,children:i(`settings.bgWarm`)}),(0,G.jsx)(`option`,{value:`cool`,children:i(`settings.bgCool`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.accent`)}),(0,G.jsxs)(`select`,{value:b,onChange:e=>{D(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`green`,children:i(`settings.accentGreen`)}),(0,G.jsx)(`option`,{value:`teal`,children:i(`settings.accentTeal`)}),(0,G.jsx)(`option`,{value:`blue`,children:i(`settings.accentBlue`)}),(0,G.jsx)(`option`,{value:`orange`,children:i(`settings.accentOrange`)}),(0,G.jsx)(`option`,{value:`purple`,children:i(`settings.accentPurple`)}),(0,G.jsx)(`option`,{value:`red`,children:i(`settings.accentRed`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.style`)}),(0,G.jsxs)(`select`,{value:_,onChange:e=>{T(e.target.value),o(i(`settings.toast.settingsSaved`),`success`)},className:`w-full px-2 py-1.5 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`classic`,children:i(`settings.styleClassic`)}),(0,G.jsx)(`option`,{value:`glow`,children:i(`settings.styleGlow`)}),(0,G.jsx)(`option`,{value:`vibrant`,children:i(`settings.styleVibrant`)})]})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.themeToggleHint`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.progressInTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.progressInTitleDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>{k(e.target.checked),o(i(`settings.toast.settingsSaved`),`success`)},className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-archive`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.archiveSettings`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.autoArchivePrints`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoArchiveDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.auto_archive,onChange:e=>yr(`auto_archive`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.saveThumbnails`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.saveThumbnailsDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.save_thumbnails,onChange:e=>yr(`save_thumbnails`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.captureFinishPhoto`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.captureFinishPhotoDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.capture_finish_photo,onChange:e=>yr(`capture_finish_photo`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.capture_finish_photo&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between pl-4 border-l-2 border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.finishPhotoRestorePlate`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.finishPhotoRestorePlateDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.finish_photo_restore_plate??!0,onChange:e=>yr(`finish_photo_restore_plate`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.capture_finish_photo&&wn&&!wn.installed&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-yellow-500 flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`text-yellow-500 font-medium`,children:i(`settings.ffmpegNotInstalled`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i(`settings.ffmpegRequired`)})]})]}),An&&jn&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3 mt-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`archiveAutoPurge.enableLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`archiveAutoPurge.enableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:jn.enabled,onChange:e=>Nn({enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`archiveAutoPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:7,max:3650,disabled:!jn.enabled,value:jn.days,onChange:e=>Nn({days:Math.max(7,Math.min(3650,parseInt(e.target.value||`0`,10)||0))}),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`archiveAutoPurge.days`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`archiveAutoPurge.ageDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-start gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,disabled:!jn.enabled,checked:jn.purge_stats,onChange:e=>Nn({purge_stats:e.target.checked}),className:`mt-0.5 shrink-0 disabled:opacity-50`}),(0,G.jsxs)(`span`,{className:`text-sm`,children:[(0,G.jsx)(`span`,{className:`text-white block`,children:i(`archiveAutoPurge.purgeStatsLabel`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray block mt-0.5`,children:i(`archiveAutoPurge.purgeStatsDescription`)})]})]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-md`,children:[(0,G.jsxs)(zd,{id:`card-camera`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Gu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.camera`)]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-2`,children:i(`settings.externalCameras`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:i(`settings.externalCamerasDescription`)}),sn&&sn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:sn.map(e=>(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium text-sm`,children:e.name}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:e.external_camera_enabled,onChange:t=>jr(e.id,{enabled:t.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-9 h-5 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-bambu-green`})]})]}),e.external_camera_enabled&&(0,G.jsxs)(`div`,{className:`space-y-2 mt-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:e.external_camera_type===`usb`?i(`settings.cameraPlaceholderUsb`):i(`settings.cameraPlaceholderUrl`),value:xr[e.id]??e.external_camera_url??``,onChange:t=>kr(e.id,t.target.value),className:`w-full px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`select`,{value:e.external_camera_type||`mjpeg`,onChange:t=>jr(e.id,{type:t.target.value}),className:`flex-1 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`mjpeg`,children:i(`settings.cameraTypeMjpeg`)}),(0,G.jsx)(`option`,{value:`rtsp`,children:i(`settings.cameraTypeRtsp`)}),(0,G.jsx)(`option`,{value:`snapshot`,children:i(`settings.cameraTypeSnapshot`)}),(0,G.jsx)(`option`,{value:`usb`,children:i(`settings.cameraTypeUsb`)})]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>br(e.id,xr[e.id]??e.external_camera_url??``,e.external_camera_type||`mjpeg`),disabled:Ht[e.id]||!(xr[e.id]??e.external_camera_url),children:Ht[e.id]?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`settings.test`)})]}),Bt[e.id]&&(0,G.jsx)(`div`,{className:`text-xs flex items-center gap-1 ${Bt[e.id]?.success?`text-green-500`:`text-red-500`}`,children:Bt[e.id]?.success?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xs,{className:`w-3 h-3`}),i(`settings.connected`),Bt[e.id]?.resolution&&` (${Bt[e.id]?.resolution})`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ds,{className:`w-3 h-3`}),Bt[e.id]?.error||i(`settings.toast.connectionFailed`)]})}),(e.external_camera_type===`mjpeg`||e.external_camera_type===`rtsp`||e.external_camera_type===`usb`)&&(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:i(`settings.cameraSnapshotUrl`,`Snapshot URL (optional)`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:i(`settings.cameraSnapshotUrlPlaceholder`,`http://192.168.1.61:1984/api/frame.jpeg?src=printer`),value:Tr[e.id]??e.external_camera_snapshot_url??``,onChange:t=>Ar(e.id,t.target.value),className:`flex-1 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>br(e.id,Tr[e.id]??e.external_camera_snapshot_url??``,`snapshot`),disabled:Ht[e.id]||!(Tr[e.id]??e.external_camera_snapshot_url),children:Ht[e.id]?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`settings.test`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray opacity-75`,children:i(`settings.cameraSnapshotUrlHelp`,`Single-frame URL used for notification thumbnails, finish photos, timelapse and plate detection. Leave blank to capture from the live stream above. Useful for go2rtc (/api/frame.jpeg) and IP cameras with a dedicated snapshot endpoint.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:i(`settings.cameraRotation`)}),(0,G.jsxs)(`select`,{value:e.camera_rotation||0,onChange:t=>jr(e.id,{rotation:parseInt(t.target.value)}),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:0,children:`0°`}),(0,G.jsx)(`option`,{value:90,children:`90°`}),(0,G.jsx)(`option`,{value:180,children:`180°`}),(0,G.jsx)(`option`,{value:270,children:`270°`})]})]})]})]},e.id))}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray italic`,children:i(`settings.noPrintersConfigured`)})]})})]}),(0,G.jsxs)(zd,{id:`card-cost`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.costTracking`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.currency`)}),(0,G.jsx)(`select`,{value:A.currency,onChange:e=>yr(`currency`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:Rf.map(e=>(0,G.jsx)(`option`,{value:e.code,children:e.label},e.code))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.defaultFilamentCost`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:Lf(A.currency)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:A.default_filament_cost,onChange:e=>yr(`default_filament_cost`,parseFloat(e.target.value)||0),style:{paddingLeft:`${Math.max(2,Lf(A.currency).length*.6+1)}rem`},className:`w-full pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.electricityCost`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:Lf(A.currency)}),(0,G.jsx)(`input`,{type:`number`,step:`0.001`,min:`0`,value:A.energy_cost_per_kwh,onChange:e=>yr(`energy_cost_per_kwh`,parseFloat(e.target.value)||0),style:{paddingLeft:`${Math.max(2,Lf(A.currency).length*.6+1)}rem`},className:`w-full pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.energyDisplayMode`)}),(0,G.jsxs)(`select`,{value:A.energy_tracking_mode||`total`,onChange:e=>yr(`energy_tracking_mode`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`print`,children:i(`settings.printsOnly`)}),(0,G.jsx)(`option`,{value:`total`,children:i(`settings.totalConsumption`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:A.energy_tracking_mode===`print`?i(`settings.energyModePrintDescription`):i(`settings.energyModeTotalDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.billingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.billingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.billing_enabled??!1,onChange:e=>yr(`billing_enabled`,e.target.checked),className:`peer sr-only`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary rounded-full peer-checked:bg-bambu-green peer-checked:after:translate-x-5 after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border after:rounded-full after:h-5 after:w-5 after:transition-all`})]})]}),A.billing_enabled&&(0,G.jsxs)(`div`,{className:`mt-4 flex items-center justify-between gap-4 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark px-4 py-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.printerKillSwitch`,`Unauthorized print kill switch`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.printerKillSwitchDescription`,`Immediately stop prints that start without authorization.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.printer_kill_switch_enabled??!1,onChange:e=>yr(`printer_kill_switch_enabled`,e.target.checked),className:`peer sr-only`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary rounded-full peer-checked:bg-bambu-green peer-checked:after:translate-x-5 after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border after:rounded-full after:h-5 after:w-5 after:transition-all`})]})]}),A.billing_enabled&&(0,G.jsxs)(`div`,{className:`mt-4 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-4`,children:[(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsxs)(`h4`,{className:`text-base font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-bambu-green`}),i(`settings.financeBudgetReset`,`Finance Monthly Budget Reset`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.financeBudgetResetDay`,`Reset Day`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:31,value:A.finance_budget_reset_day??1,onChange:e=>yr(`finance_budget_reset_day`,Math.max(1,Math.min(31,parseInt(e.target.value,10)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.financeBudgetResetDayHelp`,`For short months, reset uses the last day of the month.`)})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.financeBudgetResetTimezone`,`Reset timezone`)}),(0,G.jsxs)(`select`,{value:A.finance_budget_reset_timezone??`UTC`,onChange:e=>yr(`finance_budget_reset_timezone`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`UTC`,children:`UTC`}),(0,G.jsx)(`option`,{value:`Europe/Berlin`,children:`Europe/Berlin`}),(0,G.jsx)(`option`,{value:`Europe/Vienna`,children:`Europe/Vienna`}),(0,G.jsx)(`option`,{value:`Europe/Zurich`,children:`Europe/Zurich`}),(0,G.jsx)(`option`,{value:`America/New_York`,children:`America/New_York`}),(0,G.jsx)(`option`,{value:`America/Chicago`,children:`America/Chicago`}),(0,G.jsx)(`option`,{value:`America/Denver`,children:`America/Denver`}),(0,G.jsx)(`option`,{value:`America/Los_Angeles`,children:`America/Los_Angeles`}),(0,G.jsx)(`option`,{value:`Asia/Tokyo`,children:`Asia/Tokyo`}),(0,G.jsx)(`option`,{value:`Asia/Singapore`,children:`Asia/Singapore`}),(0,G.jsx)(`option`,{value:`Australia/Sydney`,children:`Australia/Sydney`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.financeBudgetResetTimezoneHelp`,`Budget window start is calculated in this timezone.`)})]})]})]}),A.billing_enabled&&l&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>we(!0),disabled:Te,children:Te?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),i(`settings.rebuildLedgerInProgress`,`Starting...`)]}):i(`settings.rebuildLedger`,`Rebuild wallet ledger`)}),Ce&&(0,G.jsx)(of,{title:i(`settings.rebuildLedgerConfirmTitle`,`Rebuild wallet ledger?`),message:i(`settings.rebuildLedgerConfirmMessage`,`This will rebuild the wallet ledger to repair historical balance values. Run this only if you know what you are doing.`),confirmText:i(`common.run`,`Run`),cancelText:i(`common.cancel`,`Cancel`),isLoading:Te,loadingText:i(`common.running`,`Running`),variant:`warning`,onCancel:()=>we(!1),onConfirm:async()=>{Ee(!0);try{await Z.rebuildBalanceLedger(),o(i(`settings.rebuildLedgerStarted`,`Ledger rebuild started`),`success`),we(!1)}catch(e){o(e.message||`Failed to start ledger rebuild`,`error`)}finally{Ee(!1)}}})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-filemanager`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.fileManager`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.createArchiveEntry`)}),(0,G.jsxs)(`select`,{value:A.library_archive_mode??`ask`,onChange:e=>yr(`library_archive_mode`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`always`,children:i(`settings.archiveMode.always`)}),(0,G.jsx)(`option`,{value:`never`,children:i(`settings.archiveMode.never`)}),(0,G.jsx)(`option`,{value:`ask`,children:i(`settings.archiveMode.ask`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.createArchiveEntryDescription`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.lowDiskSpaceWarning`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0.5`,max:`100`,step:`0.5`,value:A.library_disk_warning_gb??5,onChange:e=>yr(`library_disk_warning_gb`,parseFloat(e.target.value)||5),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`GB`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.lowDiskSpaceDescription`)})]}),En&&Dn&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3 mt-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`libraryAutoPurge.enableLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`libraryAutoPurge.enableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Dn.auto_purge_enabled,onChange:e=>kn({auto_purge_enabled:e.target.checked}),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`libraryAutoPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:7,max:3650,disabled:!Dn.auto_purge_enabled,value:Dn.auto_purge_days,onChange:e=>kn({auto_purge_days:Math.max(7,Math.min(3650,parseInt(e.target.value||`0`,10)||0))}),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`libraryAutoPurge.days`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`libraryAutoPurge.ageDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-white cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,disabled:!Dn.auto_purge_enabled,checked:Dn.auto_purge_include_never_printed,onChange:e=>kn({auto_purge_include_never_printed:e.target.checked}),className:`rounded border-gray-300 disabled:opacity-50`}),i(`libraryAutoPurge.includeNeverPrinted`)]})]})]})]}),(0,G.jsxs)(zd,{id:`card-data`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.dataManagement`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.clearNotificationLogs`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.clearNotificationLogsDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>et(!0),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`common.clear`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.resetUiPreferences`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.resetUiPreferencesDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>nt(!0),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),i(`settings.reset`)]})]}),(0,G.jsxs)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.storageUsage`,`Storage Usage`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.storageUsageDescription`,`Breakdown of data usage by category`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:Xt,disabled:Yt||ht,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${Yt||ht?`animate-spin`:``}`}),i(`common.refresh`,`Refresh`)]})]}),(0,G.jsx)(`div`,{className:`mt-3`,children:Jt?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`common.loading`,`Loading`)]}):qt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-full h-3 bg-bambu-dark rounded-full overflow-hidden flex`,children:qt.categories.filter(e=>e.bytes>0).map((e,t)=>(0,G.jsx)(`div`,{className:`${J8(e.key,t)} h-full`,style:{width:`${e.percent_of_total}%`},title:`${e.label}: ${e.formatted}`},e.key))}),(0,G.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-3`,children:qt.categories.filter(e=>e.bytes>0).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full ${J8(e.key,t)}`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e.label}),(0,G.jsx)(`span`,{className:`text-white`,children:e.formatted}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.percent_of_total.toFixed(1),`%)`]})]},e.key))}),(0,G.jsxs)(`div`,{className:`mt-2 text-xs text-bambu-gray`,children:[i(`settings.storageUsageTotal`,`Total`),`: `,(0,G.jsx)(`span`,{className:`text-white`,children:qt.total_formatted}),qt.scan_errors>0&&(0,G.jsxs)(`span`,{className:`ml-2 text-amber-700 dark:text-amber-400`,children:[i(`settings.storageUsageErrors`,`Scan errors`),`: `,qt.scan_errors]})]}),qt.other_breakdown?.length>0&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.storageUsageOtherBreakdown`,`Other breakdown`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:qt.other_breakdown.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:e.label}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full border ${e.kind===`system`?`border-slate-500 text-slate-300`:`border-bambu-green text-bambu-green`}`,children:e.kind===`system`?i(`settings.storageUsageSystem`,`System`):i(`settings.storageUsageData`,`Data`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-white`,children:e.formatted}),(0,G.jsxs)(`span`,{children:[`(`,e.percent_of_total.toFixed(1),`%)`]})]})]},`${e.bucket}-${e.kind}`))})]})]}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.storageUsageUnavailable`,`Storage usage data is unavailable`)})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.backupRestore`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.backupRestoreDescription`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Le(`backup`),children:[(0,G.jsx)(Gs,{className:`w-4 h-4`}),i(`settings.goToBackup`)]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-3 flex-1 lg:max-w-sm`,children:[(0,G.jsxs)(zd,{id:`card-updates`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.updates`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider`,children:i(`settings.printerFirmware`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.checkPrinterFirmware`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.checkFirmwareDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.check_printer_firmware??!0,onChange:e=>yr(`check_printer_firmware`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsx)(`div`,{className:`border-t border-bambu-dark-tertiary pt-4`,children:(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wider mb-4`,children:i(`settings.bambuddySoftware`)})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.checkForUpdatesLabel`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoCheckDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.check_updates,onChange:e=>yr(`check_updates`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between ${A.check_updates?``:`opacity-50`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.includeBetaUpdates`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.includeBetaUpdatesDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.include_beta_updates??!1,onChange:e=>yr(`include_beta_updates`,e.target.checked),disabled:!A.check_updates,className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.currentVersion`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[`v`,Tn?.version||`...`]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Fn(),disabled:In,children:[In?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),i(`settings.checkNow`)]})]}),Pn?.update_available?(0,G.jsxs)(`div`,{className:`mt-4 p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`p`,{className:`text-bambu-green font-medium`,children:[`Update available: v`,Pn.latest_version]}),Pn.release_name&&Pn.release_name!==Pn.latest_version&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:Pn.release_name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Pn.release_notes&&(0,G.jsx)(`button`,{onClick:()=>ot(!0),className:`text-bambu-gray hover:text-white transition-colors text-sm underline`,children:i(`settings.releaseNotes`)}),Pn.release_url&&(0,G.jsx)(`a`,{href:Pn.release_url,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-gray hover:text-white transition-colors`,title:i(`settings.viewReleaseOnGitHub`),children:(0,G.jsx)(rc,{className:`w-4 h-4`})})]})]}),Ln?.status===`downloading`||Ln?.status===`installing`?(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:Ln.message})]}),(0,G.jsx)(`div`,{className:`mt-2 w-full bg-bambu-dark-tertiary rounded-full h-2`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green h-2 rounded-full transition-all duration-300`,style:{width:`${Ln.progress}%`}})})]}):Ln?.status===`complete`?(0,G.jsx)(`div`,{className:`mt-3 p-2 bg-bambu-green/20 rounded text-sm text-bambu-green`,children:Ln.message}):Ln?.status===`error`?(0,G.jsx)(`div`,{className:`mt-3 p-2 bg-red-100 dark:bg-red-500/20 rounded text-sm text-red-700 dark:text-red-400`,children:Ln.error||Ln.message}):Pn?.is_ha_addon?(0,G.jsx)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.updateViaHomeAssistant`)})}):Pn?.is_docker?(0,G.jsxs)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:i(`settings.updateViaDocker`)}),(0,G.jsxs)(`div`,{className:`flex items-start gap-1`,children:[(0,G.jsx)(`code`,{className:`flex-1 block text-xs bg-bambu-dark p-2 rounded text-bambu-green font-mono break-all select-all`,children:Lr}),(0,G.jsx)(BU,{value:Lr,titleKey:`settings.copyUpdateCommand`,copiedTitleKey:`printers.copied`,className:`ml-0 p-2 rounded hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors flex-shrink-0`,iconClassName:`w-4 h-4`})]}),(0,G.jsxs)(`label`,{className:`block mt-3`,children:[(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.composeDirectory`)}),(0,G.jsx)(`input`,{type:`text`,value:A?.docker_compose_dir??``,onChange:e=>yr(`docker_compose_dir`,e.target.value),placeholder:Pn?.compose_dir_detected||`/opt/bambuddy`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white font-mono placeholder:text-bambu-gray/60 focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`block text-xs text-bambu-gray mt-1`,children:i(`settings.composeDirectoryHint`)})]})]}):Pn?.update_method===`windows_installer`?(0,G.jsxs)(`div`,{className:`mt-3 p-3 bg-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:i(`settings.updateViaWindowsInstaller`)}),(0,G.jsxs)(`a`,{href:Pn.installer_download_url||Pn.release_url||`https://github.com/maziggy/bambuddy/releases/tag/v${Pn.latest_version}`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center font-medium rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-bambu-dark disabled:opacity-50 bg-bambu-green hover:bg-bambu-green-light text-white focus:ring-bambu-green px-4 py-2 text-sm gap-2 min-h-[44px] md:min-h-0`,children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),i(`settings.downloadWindowsInstaller`,{version:Pn.latest_version})]})]}):(0,G.jsxs)(Q,{className:`mt-3`,onClick:()=>sr.mutate(),disabled:sr.isPending,children:[sr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xs,{className:`w-4 h-4`}),i(`settings.installUpdate`)]})]}):Pn?.error?(0,G.jsx)(`div`,{className:`mt-2 p-2 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded text-sm text-red-700 dark:text-red-400`,children:i(`settings.failedToCheckUpdates`,{error:Pn.error})}):Pn&&!Pn.update_available?(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:i(`settings.latestVersionRunning`)}):null]})]})]}),(0,G.jsx)(pGe,{})]})]})]}),je===`network`&&A&&(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 lg:max-w-xl space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-externalurl`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Ac,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.externalUrl`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.externalUrlDescription`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.bambuddyUrl`)}),(0,G.jsx)(`input`,{type:`text`,value:A.external_url??``,onChange:e=>yr(`external_url`,e.target.value),placeholder:`http://192.168.1.100:8000`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.externalUrlHint`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-ftpretry`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Hl,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.ftpRetry`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.ftpRetryDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableRetry`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.autoRetryDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ftp_retry_enabled??!0,onChange:e=>yr(`ftp_retry_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.ftp_retry_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.retryAttempts`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_retry_count??3,onChange:e=>yr(`ftp_retry_count`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[1,2,3,4,5,6,7,8,9,10].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.time`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.retryDelay`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_retry_delay??2,onChange:e=>yr(`ftp_retry_delay`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[1,2,3,5,10,15,20,30].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.second`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.connectionTimeout`)}),(0,G.jsxs)(`div`,{className:`relative w-44`,children:[(0,G.jsx)(`select`,{value:A.ftp_timeout??30,onChange:e=>yr(`ftp_timeout`,parseInt(e.target.value)),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[10,15,20,30,45,60,90,120,180,300].map(e=>(0,G.jsx)(`option`,{value:e,children:i(`settings.nSeconds`,{count:e})},e))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.increaseForWeakWifi`)})]})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 lg:max-w-xl space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-ha`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Bc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.homeAssistant`)]}),A.ha_enabled&&It&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full ${It.success?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-sm ${It.success?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:It.success?i(`settings.connected`):i(`settings.disconnected`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.homeAssistantFullDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableHomeAssistant`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.homeAssistantDescription`)}),A.ha_env_managed&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mt-1`,children:[(0,G.jsx)(nl,{className:`w-3 h-3 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-green`,children:i(`settings.autoEnabledViaEnv`)})]})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ha_enabled??!1,onChange:e=>yr(`ha_enabled`,e.target.checked),disabled:A.ha_env_managed,className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green ${A.ha_env_managed?`opacity-60 cursor-not-allowed`:``}`})]})]}),A.ha_enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.homeAssistantUrl`),A.ha_url_from_env&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-green`,children:i(`settings.environmentManagedLabel`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,value:A.ha_url??``,onChange:e=>yr(`ha_url`,e.target.value),placeholder:`http://192.168.1.100:8123`,disabled:A.ha_url_from_env,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${A.ha_url_from_env?`opacity-60 cursor-not-allowed`:``}`}),A.ha_url_from_env&&(0,G.jsx)(nl,{className:`absolute right-3 top-2.5 w-4 h-4 text-bambu-gray`})]}),A.ha_url_from_env&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.urlFromEnvReadOnly`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.longLivedAccessToken`),A.ha_token_from_env&&(0,G.jsx)(`span`,{className:`ml-2 text-xs text-bambu-green`,children:i(`settings.environmentManagedLabel`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`password`,value:A.ha_token??``,onChange:e=>yr(`ha_token`,e.target.value),placeholder:`eyJ0eXAiOiJKV1QiLC...`,disabled:A.ha_token_from_env,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${A.ha_token_from_env?`opacity-60 cursor-not-allowed`:``}`}),A.ha_token_from_env&&(0,G.jsx)(nl,{className:`absolute right-3 top-2.5 w-4 h-4 text-bambu-gray`})]}),A.ha_token_from_env?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.tokenFromEnvReadOnly`)}):(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.haTokenHint`)})]}),A.ha_url&&A.ha_token&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:Rt,onClick:async()=>{zt(!0),Lt(null);try{Lt(await Z.testHAConnection(A.ha_url,A.ha_token))}catch(e){Lt({success:!1,message:null,error:e instanceof Error?e.message:i(`common.unknownError`)})}finally{zt(!1)}},children:[Rt?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Qu,{className:`w-4 h-4`}),i(`settings.testConnection`)]})})]})]})]}),(0,G.jsxs)(zd,{id:`card-mqtt`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Qu,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),i(`settings.mqttPublishing`)]}),zn?.enabled&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full ${zn.connected?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-sm ${zn.connected?`text-green-700 dark:text-green-400`:`text-red-700 dark:text-red-400`}`,children:zn.connected?i(`settings.connected`):i(`settings.disconnected`)})]})]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.mqttDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableMqtt`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.mqttEnableDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.mqtt_enabled??!1,onChange:e=>yr(`mqtt_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.mqtt_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.brokerHostname`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_broker??``,onChange:e=>yr(`mqtt_broker`,e.target.value),placeholder:`mqtt.example.com or 192.168.1.100`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-end gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.port`)}),(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`65535`,value:A.mqtt_port??1883,onChange:e=>yr(`mqtt_port`,Math.min(65535,Math.max(1,parseInt(e.target.value)||1883))),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.mqtt_use_tls??!1,onChange:e=>{let t=e.target.checked;yr(`mqtt_use_tls`,t);let n=A.mqtt_port??1883;t&&n===1883?yr(`mqtt_port`,8883):!t&&n===8883&&yr(`mqtt_port`,1883)},className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]}),(0,G.jsx)(`span`,{className:`text-white text-sm`,children:i(`settings.useTls`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.usernameOptional`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_username??``,onChange:e=>yr(`mqtt_username`,e.target.value),placeholder:i(`settings.leaveEmptyForAnonymous`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.passwordOptional`)}),(0,G.jsx)(`input`,{type:`password`,value:A.mqtt_password??``,onChange:e=>yr(`mqtt_password`,e.target.value),placeholder:i(`settings.leaveEmptyForAnonymous`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.topicPrefix`)}),(0,G.jsx)(`input`,{type:`text`,value:A.mqtt_topic_prefix??`bambuddy`,onChange:e=>yr(`mqtt_topic_prefix`,e.target.value),placeholder:`bambuddy`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.topicPrefixHint`,{prefix:A.mqtt_topic_prefix||`bambuddy`})})]}),zn&&(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${zn.connected?`bg-green-400`:`bg-red-400`}`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:zn.connected?(0,G.jsxs)(G.Fragment,{children:[i(`settings.mqttConnectedTo`),` `,(0,G.jsxs)(`span`,{className:`text-white`,children:[zn.broker,`:`,zn.port]})]}):i(`settings.spoolmanDisconnected`)})]})})]})]})]})]}),(0,G.jsx)(`div`,{className:`flex-1 lg:max-w-md space-y-3`,children:(0,G.jsxs)(zd,{id:`card-prometheus`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Iu,{className:`w-5 h-5 text-orange-600 dark:text-orange-400`}),i(`settings.prometheusMetrics`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.prometheusEndpointDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.enableMetricsEndpoint`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.prometheusDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.prometheus_enabled??!1,onChange:e=>yr(`prometheus_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.prometheus_enabled&&(0,G.jsxs)(`div`,{className:`space-y-3 pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.bearerTokenOptional`)}),(0,G.jsx)(`input`,{type:`password`,value:A.prometheus_token??``,onChange:e=>yr(`prometheus_token`,e.target.value),placeholder:i(`settings.leaveEmptyForNoAuth`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.bearerTokenHint`)})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white mb-2`,children:i(`settings.availableMetrics`)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray space-y-1`,children:[(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_printer_connected`}),` - `,i(`settings.metricsConnectionStatus`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_printer_state`}),` - `,i(`settings.metricsPrinterState`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_print_progress`}),` - `,i(`settings.metricsPrintProgress`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_bed_temp_celsius`}),` - `,i(`settings.metricsBedTemp`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_nozzle_temp_celsius`}),` - `,i(`settings.metricsNozzleTemp`)]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`code`,{className:`text-orange-700 dark:text-orange-400`,children:`bambuddy_prints_total`}),` - `,i(`settings.metricsPrintsTotal`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray/70 italic`,children:i(`settings.metricsMore`)})]})]})]})]})]})})]}),It&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-6 max-w-md w-full mx-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[It.success?(0,G.jsx)(xs,{className:`w-8 h-8 text-green-600 dark:text-green-400`}):(0,G.jsx)(Ds,{className:`w-8 h-8 text-red-600 dark:text-red-400`}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white`,children:It.success?i(`settings.connectionSuccessful`):i(`settings.connectionFailed`)})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:It.success?It.message||i(`settings.haConnectionSuccess`):It.error||i(`settings.haConnectionFailed`)}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{variant:`primary`,onClick:()=>Lt(null),children:i(`settings.ok`)})})]})}),je===`plugs`&&(0,G.jsxs)(`div`,{id:`card-plugs`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Pl,{className:`w-5 h-5 text-bambu-green`}),i(`settings.smartPlugs`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.smartPlugsDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-1 shrink-0`,children:[Zt&&Zt.filter(e=>e.enabled).length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>it(`on`),disabled:dr.isPending,title:i(`settings.turnAllPlugsOn`),children:[dr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Ll,{className:`w-4 h-4 text-bambu-green`}),i(`settings.allOn`)]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,className:`whitespace-nowrap`,onClick:()=>it(`off`),disabled:dr.isPending,title:i(`settings.turnAllPlugsOff`),children:[dr.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Il,{className:`w-4 h-4 text-red-600 dark:text-red-400`}),i(`settings.allOff`)]})]}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,onClick:()=>{L(null),F(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addSmartPlug`)]})]})]}),Zt&&Zt.length>0&&(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`}),i(`settings.energySummary`),en&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-gray ml-2`})]})}),(0,G.jsx)(Vd,{children:$t?(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(id,{className:`w-3 h-3`}),i(`settings.currentPower`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalPower.toFixed(1),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`W`})]}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.plugsOnline`,{reachable:$t.reachableCount,total:$t.totalPlugs})})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(as,{className:`w-3 h-3`}),i(`settings.today`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalToday.toFixed(3),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalToday*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(Iu,{className:`w-3 h-3`}),i(`settings.yesterday`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalYesterday.toFixed(3),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalYesterday*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-bambu-gray text-xs mb-1`,children:[(0,G.jsx)(qs,{className:`w-3 h-3`}),i(`settings.total`)]}),(0,G.jsxs)(`div`,{className:`text-xl font-bold text-white`,children:[$t.totalLifetime.toFixed(1),(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray ml-1`,children:`kWh`})]}),(A?.energy_cost_per_kwh??0)>0&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[`~`,($t.totalLifetime*(A?.energy_cost_per_kwh??0)).toFixed(2),` `,Lf(A?.currency||`USD`)]})]})]}):en?null:(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.enablePlugsForSummary`)})})]}),Qt?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):Zt&&Zt.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:Zt.map(e=>(0,G.jsx)(PWe,{plug:e,onEdit:e=>{L(e),F(!0)}},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-12`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Pl,{className:`w-16 h-16 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.noSmartPlugsTitle`)}),(0,G.jsx)(`p`,{className:`text-sm mb-4`,children:i(`settings.noSmartPlugsDescription`)}),(0,G.jsxs)(Q,{onClick:()=>{L(null),F(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addFirstSmartPlug`)]})]})})})]}),je===`sensors`&&(0,G.jsxs)(`div`,{id:`card-sensors`,children:[(0,G.jsxs)(`div`,{id:`card-ha-sensors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Tc,{className:`w-5 h-5 text-bambu-green`}),i(`haSensors.sectionTitle`)]}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,disabled:!sn?.length,onClick:()=>{V(null),z(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`haSensors.add`)]})]}),cn&&cn.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:cn.map(e=>{let t=sn?.find(t=>t.id===e.printer_id);return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-white font-medium truncate`,children:e.name}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray truncate`,children:e.entity_id}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:t?.name??i(`haSensors.unknownPrinter`)})]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{V(e),z(!0)},children:i(`common.edit`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-3`,children:[e.block_print&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:i(`haSensors.badgeBlocks`)}),e.notify_on_alert&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:i(`haSensors.badgeNotifies`)}),!e.show_on_printer_card&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:i(`haSensors.badgeHidden`)})]})]})},e.id)})}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`haSensors.empty`)})]})})})]}),(0,G.jsxs)(`div`,{id:`card-location-sensors`,className:`mt-8`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-[20px] mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Tc,{className:`w-5 h-5 text-bambu-green`}),i(`locationHaSensors.sectionTitle`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`locationHaSensors.sectionDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-1 shrink-0`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>ae(!0),className:`p-2 rounded-lg bg-bambu-dark-tertiary hover:bg-bambu-gray-dark text-white transition-colors`,title:i(`locationHaSensors.options.buttonLabel`),"aria-label":i(`locationHaSensors.options.buttonLabel`),children:(0,G.jsx)(Rs,{className:`w-4 h-4`})}),(0,G.jsxs)(Q,{className:`whitespace-nowrap`,disabled:!un?.length,onClick:()=>{re(null),te(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`locationHaSensors.add`)]})]})]}),ln&&ln.length>0?(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:(()=>{let e=new Map((un??[]).map((e,t)=>[e.id,t])),t=ln.reduce((e,t)=>{let n=e.get(t.location_id)??[];return n.push(t),e.set(t.location_id,n),e},new Map);return Array.from(t.entries()).sort(([t],[n])=>(e.get(t)??2**53-1)-(e.get(n)??2**53-1))})().map(([e,t])=>{let n=un?.find(t=>t.id===e),r=e=>FT({device_class:e.device_class,state:e.last_state,kind:e.kind}),a=[...t].sort((e,t)=>(Y8[e.device_class??``]??99)-(Y8[t.device_class??``]??99));return(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsx)(`div`,{className:`text-white font-medium truncate`,children:n?.name??i(`locationHaSensors.unknownLocation`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>ue({locationName:n?.name??i(`locationHaSensors.unknownLocation`),sensorIds:a.map(e=>e.id)}),className:`p-1 text-bambu-gray hover:text-red-500 rounded transition-colors shrink-0`,title:i(`common.delete`),"aria-label":i(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`mt-2 space-y-1.5`,children:a.map(e=>{let t=r(e),n=fn.get(e.id),a=YGe(n,i),o=B6(oe&&n?z6(n):null,se,H,ce)||`text-white`;return(0,G.jsxs)(`div`,{className:`flex items-center min-w-0 text-xs text-bambu-gray`,children:[(0,G.jsx)(t,{className:`w-3.5 h-3.5 shrink-0 mr-1.5`}),a&&(0,G.jsx)(`span`,{className:`${o} shrink-0 w-[52px] text-center`,children:a}),a&&(0,G.jsx)(`span`,{className:`shrink-0 mr-1.5`,children:`-`}),(0,G.jsx)(`span`,{className:`truncate mr-1.5`,title:e.name,children:e.entity_id}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{re(e),te(!0)},className:`p-1 text-bambu-gray hover:text-white rounded transition-colors shrink-0`,title:i(`common.edit`),"aria-label":i(`common.edit`),children:(0,G.jsx)(Al,{className:`w-3.5 h-3.5`})})]},e.id)})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-3`,children:[(()=>{let e=a.filter(e=>e.notify_on_alert);return e.length?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:[i(`haSensors.badgeNotifies`),e.map(e=>(0,G.jsx)(r(e),{className:`w-3 h-3`},e.id))]}):null})(),(()=>{let e=a.filter(e=>!e.show_on_card);return e.length?(0,G.jsxs)(`span`,{className:`flex items-center gap-1 px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:[i(`haSensors.badgeHidden`),e.map(e=>(0,G.jsx)(r(e),{className:`w-3 h-3`},e.id))]}):null})()]})]})},e)})}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`locationHaSensors.empty`)})]})})})]})]}),je===`notifications`&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-providers`,children:[(0,G.jsx)(qo,{className:`w-5 h-5 text-bambu-green`}),i(`settings.providers`)]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Se(!0),children:[(0,G.jsx)(zc,{className:`w-4 h-4`}),i(`settings.log`)]}),tn&&tn.length>0&&(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{lr(null),ur.mutate()},disabled:ur.isPending,children:[ur.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)($l,{className:`w-4 h-4`}),i(`settings.testAll`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{me(null),fe(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addNotificationProvider`)]})]})]}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.notificationLanguage`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.notificationLanguageDescription`)})]}),(0,G.jsx)(`select`,{value:A.notification_language||`en`,onChange:e=>yr(`notification_language`,e.target.value),className:`px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:ring-1 focus:ring-bambu-green`,children:kt.map(e=>(0,G.jsx)(`option`,{value:e.code,children:e.nativeName},e.code))})]})})}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.bedCooledThreshold`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.bedCooledThresholdDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:20,max:80,step:1,value:A.bed_cooled_threshold??35,onChange:e=>yr(`bed_cooled_threshold`,Number(e.target.value)),className:`w-16 px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm text-center focus:outline-none focus:ring-1 focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`°C`})]})]})})}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between ${Hn?.advanced_auth_enabled?``:`opacity-50`}`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white text-sm font-medium`,children:i(`settings.userNotificationsEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:Hn?.advanced_auth_enabled?i(`settings.userNotificationsEnabledDescription`):i(`settings.userNotificationsDisabledHint`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`sr-only peer`,checked:A.user_notifications_enabled??!0,disabled:!Hn?.advanced_auth_enabled,onChange:e=>yr(`user_notifications_enabled`,e.target.checked)}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green peer-disabled:cursor-not-allowed`})]})]})})}),cr&&(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:i(`settings.testResults`)}),(0,G.jsx)(`button`,{onClick:()=>lr(null),className:`text-bambu-gray hover:text-white text-xs`,children:i(`common.dismiss`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm mb-2`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-green`,children:[(0,G.jsx)(xs,{className:`w-4 h-4`}),i(`settings.testPassedCount`,{count:cr.success})]}),cr.failed>0&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Ds,{className:`w-4 h-4`}),i(`settings.testFailedCount`,{count:cr.failed})]})]}),cr.results.filter(e=>!e.success).length>0&&(0,G.jsx)(`div`,{className:`space-y-1 mt-2 pt-2 border-t border-bambu-dark-tertiary`,children:cr.results.filter(e=>!e.success).map(e=>(0,G.jsxs)(`div`,{className:`text-xs text-red-700 dark:text-red-400`,children:[(0,G.jsxs)(`span`,{className:`font-medium`,children:[e.provider_name,`:`]}),` `,e.message]},e.provider_id))})]})}),W?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):tn&&tn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:tn.map(e=>(0,G.jsx)(HWe,{provider:e,onEdit:e=>{me(e),fe(!0)}},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(qo,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm font-medium text-white mb-2`,children:i(`settings.noProvidersTitle`)}),(0,G.jsx)(`p`,{className:`text-xs mb-3`,children:i(`settings.noProvidersDescription`)}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{me(null),fe(!0)},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addProvider`)]})]})})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-2`,id:`card-templates`,children:[(0,G.jsx)(fc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.messageTemplates`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:i(`settings.messageTemplatesDescription`)}),(0,G.jsxs)(`div`,{className:`relative mb-3`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 text-bambu-gray absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,value:_e,onChange:e=>ve(e.target.value),placeholder:i(`settings.filterTemplates`,`Filter templates…`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),_e&&(0,G.jsx)(`button`,{onClick:()=>ve(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-bambu-gray hover:text-white`,"aria-label":`Clear filter`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})})]}),gn?(0,G.jsx)(`div`,{className:`flex justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):hn&&hn.length>0?(()=>{let e=_e.trim().toLowerCase(),t=[...hn].sort((e,t)=>e.name.localeCompare(t.name)).filter(t=>!e||t.name.toLowerCase().includes(e)||(t.title_template||``).toLowerCase().includes(e));return t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic text-center py-6`,children:i(`settings.noTemplatesMatch`,`No templates match your filter.`)}):(0,G.jsx)(`div`,{className:`space-y-2`,children:t.map(e=>(0,G.jsx)(zd,{className:`cursor-pointer hover:border-bambu-green/50 transition-colors`,onClick:()=>ge(e),children:(0,G.jsx)(Vd,{className:`py-2.5 px-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-sm truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs truncate mt-0.5`,children:e.title_template})]}),(0,G.jsx)(`button`,{className:`p-1.5 hover:bg-bambu-dark-tertiary rounded transition-colors shrink-0 ml-2`,onClick:t=>{t.stopPropagation(),ge(e)},children:(0,G.jsx)(kl,{className:`w-4 h-4 text-bambu-gray`})})]})})},e.id))})})():(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(fc,{className:`w-12 h-12 mx-auto mb-3 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:i(`settings.noTemplatesAvailable`)})]})})})]})]}),je===`apikeys`&&(0,G.jsxs)(`div`,{className:d(`api_keys:read`)?`grid grid-cols-1 xl:grid-cols-2 gap-4`:`grid grid-cols-1 gap-4`,children:[(0,G.jsxs)(`div`,{children:[d(`api_keys:read`)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-createapi`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 text-bambu-green`}),i(`settings.apiKeys`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.apiKeysDescription`)})]}),(0,G.jsxs)(Q,{size:`sm`,onClick:()=>Be(!0),className:`flex-shrink-0`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createKey`)]})]}),Ge&&(0,G.jsx)(zd,{className:`mb-6 border-bambu-green`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(xs,{className:`w-5 h-5 text-bambu-green flex-shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:i(`settings.apiKeyCreated`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-2`,children:i(`settings.apiKeyCopyWarning`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-bambu-dark rounded-lg p-2`,children:[(0,G.jsx)(`code`,{className:`flex-1 text-sm text-bambu-green font-mono break-all`,children:Ge}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:async()=>{try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(Ge);else{let e=document.createElement(`textarea`);e.value=Ge,e.style.position=`fixed`,e.style.left=`-999999px`,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)}o(i(`settings.toast.keyCopied`))}catch{o(i(`settings.toast.copyFailed`),`error`)}},children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 mt-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{Qe(Ge),o(i(`settings.toast.keyAddedToBrowser`))},children:i(`settings.useInApiBrowser`)}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Je(!0),children:[(0,G.jsx)(zl,{className:`w-4 h-4`}),i(`settings.apiKeyQrButton`)]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{Je(!1),Ke(null)},children:i(`common.dismiss`)})]})]})]})})}),qe&&Ge&&(0,G.jsx)(aGe,{apiKey:Ge,baseUrl:A?.external_url||void 0,onClose:()=>Je(!1)}),ze&&(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,children:i(`settings.createNewApiKey`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.keyName`)}),(0,G.jsx)(`input`,{type:`text`,value:Ve,onChange:e=>He(e.target.value),placeholder:i(`settings.keyNamePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:i(`common.permissions`)}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_read_status,onChange:e=>We(t=>({...t,can_read_status:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.readStatus`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.readStatusDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_queue,onChange:e=>We(t=>({...t,can_queue:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageQueue`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageQueueDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_control_printer,onChange:e=>We(t=>({...t,can_control_printer:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.controlPrinter`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.controlPrinterDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_library,onChange:e=>We(t=>({...t,can_manage_library:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageLibrary`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageLibraryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_inventory,onChange:e=>We(t=>({...t,can_manage_inventory:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageInventory`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageInventoryDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_maintenance,onChange:e=>We(t=>({...t,can_manage_maintenance:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageMaintenance`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageMaintenanceDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_archives,onChange:e=>We(t=>({...t,can_manage_archives:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageArchives`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageArchivesDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_manage_projects,onChange:e=>We(t=>({...t,can_manage_projects:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.manageProjects`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.manageProjectsDescription`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_access_cloud,onChange:e=>We(t=>({...t,can_access_cloud:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.cloudAccess`,`Allow cloud access`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.cloudAccessDescription`,`Read Bambu Cloud presets and filaments on your behalf. Requires you to be signed into Bambu Cloud.`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Ue.can_update_energy_cost,onChange:e=>We(t=>({...t,can_update_energy_cost:e.target.checked})),className:`w-4 h-4 text-bambu-green rounded border-bambu-dark-tertiary bg-bambu-dark focus:ring-bambu-green`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`text-white`,children:i(`settings.updateEnergyCost`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.updateEnergyCostDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-2`,children:[(0,G.jsxs)(Q,{onClick:()=>an.mutate({name:Ve||i(`settings.unnamedKey`),...Ue}),disabled:an.isPending,children:[an.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createKey`)]}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Be(!1),children:i(`common.cancel`)})]})]})]}),rn?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):nn&&nn.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:nn.map(e=>(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 ${e.enabled?`text-bambu-green`:`text-bambu-gray`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e.name}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[e.key_prefix,`••••••••`,e.last_used&&` · ${i(`settings.lastUsed`)}: ${ap(e.last_used)}`]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 text-xs flex-wrap justify-end`,children:[e.can_read_status&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 rounded`,children:i(`settings.read`)}),e.can_queue&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400 rounded`,children:i(`queue.title`)}),e.can_control_printer&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400 rounded`,children:i(`settings.control`)}),e.can_manage_library&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400 rounded`,children:i(`settings.libraryBadge`)}),e.can_manage_inventory&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-pink-100 dark:bg-pink-500/20 text-pink-700 dark:text-pink-400 rounded`,children:i(`settings.inventoryBadge`)}),e.can_manage_maintenance&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-teal-100 dark:bg-teal-500/20 text-teal-700 dark:text-teal-400 rounded`,children:i(`settings.maintenanceBadge`)}),e.can_manage_archives&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-indigo-100 dark:bg-indigo-500/20 text-indigo-700 dark:text-indigo-400 rounded`,children:i(`settings.archivesBadge`)}),e.can_manage_projects&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-lime-100 dark:bg-lime-500/20 text-lime-700 dark:text-lime-400 rounded`,children:i(`settings.projectsBadge`)}),e.can_access_cloud&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400 rounded`,children:i(`settings.cloudBadge`,`Cloud`)}),e.can_update_energy_cost&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 rounded`,children:i(`settings.energyCostBadge`)}),e.user_id===null&&(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400 rounded`,title:i(`settings.legacyKeyTooltip`,`Created before per-user ownership; recreate to use cloud access`),children:i(`settings.legacyKey`,`Legacy`)})]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Xe(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4 text-red-600 dark:text-red-400`})})]})]})})},e.id))}):(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-12`,children:(0,G.jsxs)(`div`,{className:`text-center text-bambu-gray`,children:[(0,G.jsx)(Kc,{className:`w-16 h-16 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.apiKeysEmptyTitle`)}),(0,G.jsx)(`p`,{className:`text-sm mb-4`,children:i(`settings.apiKeysEmptyDescription`)}),(0,G.jsxs)(Q,{onClick:()=>Be(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createFirstKey`)]})]})})}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h3`,{className:`text-base font-semibold text-white`,id:`card-webhooks`,children:i(`settings.webhookEndpoints`)})}),(0,G.jsxs)(Vd,{className:`space-y-3 text-sm`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:i(`settings.webhookApiKeyHint`)}),(0,G.jsxs)(`div`,{className:`space-y-2 font-mono text-xs`,children:[(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-blue-700 dark:text-blue-400`,children:`GET`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/status`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.getAllStatus`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-blue-700 dark:text-blue-400`,children:`GET`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/status/:id`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.getSpecificStatus`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-green-700 dark:text-green-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/queue`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.addToQueue`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/pause`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.pausePrint`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-orange-700 dark:text-orange-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/resume`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.resumePrint`)]})]}),(0,G.jsxs)(`div`,{className:`p-2 bg-bambu-dark rounded`,children:[(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`POST`}),` `,(0,G.jsx)(`span`,{className:`text-white`,children:`/api/v1/webhook/printer/:id/stop`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[` - `,i(`settings.webhook.stopPrint`)]})]})]})]})]})]}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-camera-tokens`,children:[(0,G.jsx)(Gu,{className:`w-4 h-4 text-bambu-green`}),i(`cameraTokens.title`,`Camera API Tokens`)]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(jWe,{})})]}),(0,G.jsxs)(zd,{className:`mt-6`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-stream-overlay`,children:[(0,G.jsx)(hl,{className:`w-4 h-4 text-bambu-green`}),i(`streamOverlay.builder.title`,`Streaming Overlay`)]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(NWe,{})})]})]}),d(`api_keys:read`)&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-apibrowser`,children:[(0,G.jsx)(Ac,{className:`w-5 h-5 text-bambu-green`}),i(`settings.apiBrowser`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.apiBrowserDescription`)})]}),(0,G.jsx)(zd,{className:`mb-4`,children:(0,G.jsxs)(Vd,{className:`py-3`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-2`,children:i(`settings.apiKeyForTesting`)}),(0,G.jsx)(`input`,{type:`text`,value:Ze,onChange:e=>Qe(e.target.value),placeholder:i(`settings.apiKeyPlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white font-mono text-sm focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-2`,children:i(`settings.apiKeyHint`)})]})}),(0,G.jsx)(WGe,{apiKey:Ze})]})]}),je===`virtual-printer`&&(0,G.jsx)(`div`,{id:`card-vp`,children:(0,G.jsx)(yGe,{})}),je===`spoolbuddy`&&(0,G.jsx)(`div`,{id:`card-spoolbuddy`,children:(0,G.jsx)(xGe,{})}),je===`queue`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`button`,{onClick:()=>Re(`dispatch`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Fe===`dispatch`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4`}),i(`settings.tabs.queueDispatch`,`Queue & Dispatch`)]}),(0,G.jsxs)(`button`,{onClick:()=>Re(`pipelines`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Fe===`pipelines`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(ed,{className:`w-4 h-4`}),i(`settings.tabs.queuePipelines`,`Pipelines`)]})]}),Fe===`pipelines`&&(0,G.jsx)(CWe,{}),Fe===`dispatch`&&A&&(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`lg:w-1/2 space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-print-options`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Qc,{className:`w-4 h-4 text-bambu-green`}),i(`settings.defaultPrintOptions`,`Default Print Options`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.defaultPrintOptionsDescription`,`Set default values for print options when starting new prints. These can be overridden per print in the print dialog.`)}),[{key:`default_bed_levelling`,label:i(`settings.defaultBedLevelling`,`Bed Levelling`),desc:i(`settings.defaultBedLevellingDesc`,`Auto-level bed before print`),fallback:!0,dualNozzleOnly:!1,tristate:!0},{key:`default_flow_cali`,label:i(`settings.defaultFlowCali`,`Flow Calibration`),desc:i(`settings.defaultFlowCaliDesc`,`Calibrate extrusion flow`),fallback:!1,dualNozzleOnly:!1,tristate:!0},{key:`default_vibration_cali`,label:i(`settings.defaultVibrationCali`,`Vibration Calibration`),desc:i(`settings.defaultVibrationCaliDesc`,`Reduce ringing artifacts`),fallback:!0,dualNozzleOnly:!1,tristate:!1},{key:`default_layer_inspect`,label:i(`settings.defaultLayerInspect`,`First Layer Inspection`),desc:i(`settings.defaultLayerInspectDesc`,`AI inspection of first layer`),fallback:!1,dualNozzleOnly:!1,tristate:!1},{key:`default_timelapse`,label:i(`settings.defaultTimelapse`,`Timelapse`),desc:i(`settings.defaultTimelapseDesc`,`Record timelapse video`),fallback:!1,dualNozzleOnly:!1,tristate:!1},{key:`default_nozzle_offset_cali`,label:i(`settings.defaultNozzleOffsetCali`,`Nozzle Offset Calibration`),desc:i(`settings.defaultNozzleOffsetCaliDesc`,`Calibrate nozzle offsets between extruders`),fallback:!0,dualNozzleOnly:!0,tristate:!0}].filter(({dualNozzleOnly:e})=>!e||(sn||[]).some(e=>e.nozzle_count===2)).map(({key:e,label:t,desc:n,fallback:r,tristate:a})=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:t}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:n})]}),a?(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:PU.map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e,t),className:`px-2.5 py-1 text-xs rounded transition-colors ${(A[e]??`auto`)===t?FU[t]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${t}`)},t))}):(0,G.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:[`off`,`on`].map(t=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e,t===`on`),className:`px-2.5 py-1 text-xs rounded transition-colors ${(A[e]??r?`on`:`off`)===t?FU[t]:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:i(`settings.calibrationMode_${t}`)},t))})]},e))]})]}),(0,G.jsxs)(zd,{id:`card-plate`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-4 h-4 text-bambu-green`}),i(`settings.plateClear`,`Plate-Clear Confirmation`)]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.requirePlateClear`,`Require plate-clear confirmation`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.requirePlateClearDescription`,`When enabled, the scheduler waits for per-printer plate-clear confirmation before starting queued prints on printers with finished jobs. Disabling this also hides the plate status badge and the "Mark plate as cleared" button on printer cards.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.require_plate_clear??!1,onChange:e=>yr(`require_plate_clear`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})})]}),(0,G.jsxs)(zd,{id:`card-temp-fan-presets`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Mu,{className:`w-4 h-4 text-bambu-green`}),i(`settings.tempFanPresetsTitle`,`Temperature & Fan Presets`)]})}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.tempFanPresetsDescription`,`Customize the quick-select values shown in printer-card temperature and fan-speed popovers. The Off button is always shown.`)}),kee.map(e=>{let t=Am(A?.[e.key]??``,e.defaults,e.lo,e.hi),n=e.unit===`C`?`°C`:`%`;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsxs)(`label`,{className:`text-sm text-white`,children:[i(`settings.${{nozzle_temp_presets:`tempFanPresetsNozzle`,bed_temp_presets:`tempFanPresetsBed`,chamber_temp_presets:`tempFanPresetsChamber`,fan_speed_presets:`tempFanPresetsFan`}[e.key]}`,{nozzle_temp_presets:`Nozzle temperature`,bed_temp_presets:`Bed temperature`,chamber_temp_presets:`Chamber temperature`,fan_speed_presets:`Fan speed`}[e.key]),` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray text-xs`,children:[`(`,n,` · `,e.lo,`–`,e.hi,`)`]})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(e.key,``),title:i(`settings.tempFanPresetsReset`,`Reset to defaults`),className:`text-bambu-gray hover:text-white transition-colors p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:[0,1,2].map(n=>(0,G.jsx)(`input`,{type:`number`,min:e.lo,max:e.hi,value:t[n],onChange:r=>{let i=[t[0],t[1],t[2]],a=parseInt(r.target.value,10);i[n]=Math.max(e.lo,Math.min(e.hi,Number.isFinite(a)?a:e.lo)),yr(e.key,JSON.stringify(i))},className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`},n))})]},e.key)})]})]}),(0,G.jsxs)(zd,{id:`card-staggered`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-green`}),i(`settings.staggeredStart`,`Staggered Start`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.staggeredStartDescription`,`Default group size and interval when staggering multi-printer batch starts. Can be overridden per batch in the print modal.`)}),(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.staggerGroupSize`,`Group size`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:50,value:A.stagger_group_size??2,onChange:e=>yr(`stagger_group_size`,Math.max(1,Math.min(50,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.staggerGroupSizeHelp`,`Printers to start simultaneously per group`)})]}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.staggerInterval`,`Interval (minutes)`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:60,value:A.stagger_interval_minutes??5,onChange:e=>yr(`stagger_interval_minutes`,Math.max(1,Math.min(60,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.staggerIntervalHelp`,`Delay between each group starting`)})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-concurrent-uploads`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Ns,{className:`w-4 h-4 text-bambu-green`}),i(`settings.concurrentUploadsTitle`,`Concurrent Uploads`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.concurrentUploadsDescription`,`How many printers the queue may send files to at the same time. Printers receive files slowly (a large print can take several minutes), and each one waits its turn — so on a bigger fleet, raising this is what stops the last printer in a batch from waiting out every transfer before it. Lower it if your network or Bambuddy host struggles with parallel transfers.`)}),(0,G.jsxs)(`div`,{className:`w-full sm:w-1/2`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.concurrentUploadsLabel`,`Printers uploaded to at once`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:16,value:A.queue_max_concurrent_uploads??4,onChange:e=>yr(`queue_max_concurrent_uploads`,Math.max(1,Math.min(16,parseInt(e.target.value)||1))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.concurrentUploadsHelp`,`1 sends to one printer at a time (the old behaviour). Default is 4.`)})]})]})]}),(0,G.jsxs)(zd,{id:`card-preheat`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(hc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),i(`settings.preheatTitle`,`Preheat & Heat Soak`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.preheatDescription`,`Heat the bed (and chamber, if supported) and hold at temperature before each queued print starts. Helpful for engineering filaments (PA, ABS) on printers without an active chamber heater — the bed warms the chamber by radiation while the soak timer runs. The bed target is read from the print file; chamber behaviour depends on printer model.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.preheatEnabled`,`Enable preheat & soak`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.preheatEnabledDesc`,`When off, queued prints dispatch immediately.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.preheat_enabled??!1,onChange:e=>yr(`preheat_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 pt-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.preheatMaxWait`,`Max wait (seconds)`)}),(0,G.jsx)(`input`,{type:`number`,min:60,max:3600,value:A.preheat_max_wait_seconds??900,onChange:e=>yr(`preheat_max_wait_seconds`,Math.max(60,Math.min(3600,parseInt(e.target.value)||900))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preheatMaxWaitHelp`,`Cap on the chamber warm-up phase before falling through.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.preheatSoak`,`Soak (seconds)`)}),(0,G.jsx)(`input`,{type:`number`,min:0,max:1800,value:A.preheat_soak_seconds??300,onChange:e=>yr(`preheat_soak_seconds`,Math.max(0,Math.min(1800,parseInt(e.target.value)||0))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preheatSoakHelp`,`Hold time after target reached or max-wait elapsed.`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{className:`flex-1 mr-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.keepBedWarm`,`Keep bed warm between prints`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.keepBedWarmDesc`,`While awaiting plate-clear, hold the bed at the keep-warm temperature below so the chamber stays hot — or at the next print's own bed temperature when that is higher. Only applies when the next print needs chamber heating (ASA, ABS, PA, PC etc.). Requires plate-clear confirmation to be enabled.`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_keep_bed_warm??!1,onChange:e=>yr(`queue_keep_bed_warm`,e.target.checked),className:`sr-only peer`,disabled:!(A.preheat_enabled??!1)||!(A.require_plate_clear??!1)}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green peer-disabled:opacity-50 peer-disabled:cursor-not-allowed`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 mt-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.keepWarmBedTemp`,`Keep-warm bed temperature (°C)`)}),(0,G.jsx)(`input`,{type:`number`,min:40,max:110,value:A.queue_keep_warm_bed_temp??90,onChange:e=>yr(`queue_keep_warm_bed_temp`,Math.max(40,Math.min(110,parseInt(e.target.value)||90))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.preheat_enabled??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.keepWarmBedTempHelp`,`Used whenever the bed's job is to heat the chamber — the keep-warm hold, and preheat when the print file carries no bed temperature. A higher bed temperature from the print file always wins.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.keepWarmMaxMinutes`,`Stop keeping warm after (minutes)`)}),(0,G.jsx)(`input`,{type:`number`,min:5,max:480,value:A.queue_keep_warm_max_minutes??120,onChange:e=>yr(`queue_keep_warm_max_minutes`,Math.max(5,Math.min(480,parseInt(e.target.value)||120))),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green disabled:opacity-50`,disabled:!(A.queue_keep_bed_warm??!1)||!(A.preheat_enabled??!1)||!(A.require_plate_clear??!1)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.keepWarmMaxMinutesHelp`,`If the plate is not cleared within this time, the heaters are switched off rather than held indefinitely.`)})]})]}),(0,G.jsxs)(`div`,{className:`pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,G.jsx)(`label`,{className:`text-sm text-white`,children:i(`settings.preheatFilamentTargetsLabel`,`Per-filament chamber target (°C)`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(`preheat_filament_targets`,``),title:i(`settings.preheatFilamentTargetsReset`,`Reset to defaults`),className:`text-bambu-gray hover:text-white transition-colors p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:i(`settings.preheatFilamentTargetsHint`,`Bambuddy picks the highest target across the loaded AMS slots; PLA-only prints derive 0 and skip the chamber phase automatically.`)}),(0,G.jsx)(xWe,{value:A.preheat_filament_targets??``,onChange:e=>yr(`preheat_filament_targets`,e),disabled:!(A.preheat_enabled??!1)})]}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray pt-1 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`span`,{className:`font-medium text-bambu-gray/90`,children:i(`settings.preheatHardwareTitle`,`Per-printer behaviour:`)}),` `,i(`settings.preheatHardwareDetail`,`H2C/H2D/H2D Pro/H2S/X2D/X1E actively heat the chamber via M141. X1C/P2S read chamber temp but rely on bed-radiation heating. P1S/P1P/A1/A1 Mini have no chamber sensor — only the soak timer applies.`)]})]})]})]}),(0,G.jsxs)(`div`,{className:`lg:w-1/2 space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-pipelines`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(ed,{className:`w-4 h-4 text-bambu-green`}),i(`settings.pipelineLimits.title`,`Slicer Pipeline limits`)]})}),(0,G.jsx)(Vd,{className:`space-y-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:i(`settings.pipelineLimits.maxCopiesLabel`,`Max copies per run`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.pipelineLimits.maxCopiesDesc`,`Upper bound on the copies operators can request when running a pipeline. Server-side hard cap is 1000.`)})]}),(0,G.jsx)(`input`,{type:`number`,min:1,max:1e3,value:A.pipeline_max_copies??50,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||yr(`pipeline_max_copies`,Math.max(1,Math.min(1e3,t)))},"aria-label":i(`settings.pipelineLimits.maxCopiesLabel`,`Max copies per run`),className:`w-24 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm`})]})})]}),(0,G.jsxs)(zd,{id:`card-slicer`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Rs,{className:`w-4 h-4 text-bambu-green`}),i(`settings.slicerCard`,`Slicer`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[KGe()&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.sliceEngine`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`select`,{value:G8(A.slice_engine),onChange:e=>yr(`slice_engine`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:W8().map(e=>(0,G.jsx)(`option`,{value:e.id,children:i(e.labelKey)},e.id))}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(W8().find(e=>e.id===G8(A.slice_engine))?.descriptionKey??`settings.sliceEngineSidecarHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.preferredSlicer`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.preferred_slicer??`bambu_studio`,onChange:e=>yr(`preferred_slicer`,e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:`bambu_studio`,children:i(`settings.slicerBambuStudio`)}),(0,G.jsx)(`option`,{value:`orcaslicer`,children:i(`settings.slicerOrcaSlicer`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.preferredSlicerDescription`)}),(A.preferred_slicer??`bambu_studio`)===`orcaslicer`&&(0,G.jsx)(`div`,{role:`alert`,className:`text-xs text-amber-800 dark:text-amber-200 bg-amber-50 dark:bg-amber-900/20 border border-amber-300 dark:border-amber-700/40 rounded p-2 mt-2`,children:i(`settings.orcaslicerKnownIssuesWarning`,`OrcaSlicer 2.3.2 / 2.4.0-dev have known CLI bugs that block slicing many Bambu-authored 3MFs — see upstream issues #12426 (segfault on painted multi-extruder files) and #13386 (parameter-range strict-validation reject). Bambu Studio is recommended until the upstream fixes land.`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.openInSlicerLabel`,`Open in Slicer`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`select`,{value:A.open_in_slicer??``,onChange:e=>yr(`open_in_slicer`,e.target.value===``?null:e.target.value),className:`w-full px-3 py-2 pr-10 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none appearance-none cursor-pointer`,children:[(0,G.jsx)(`option`,{value:``,children:i(`settings.openInSlicerInherit`,`Same as API slicer`)}),(0,G.jsx)(`option`,{value:`bambu_studio`,children:i(`settings.slicerBambuStudio`)}),(0,G.jsx)(`option`,{value:`orcaslicer`,children:i(`settings.slicerOrcaSlicer`)})]}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.openInSlicerDescription`,`Desktop slicer used by the 'Open in Slicer' button. Leave on 'Same as API slicer' to inherit, or pick a different slicer to use locally.`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.useSlicerApi`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.useSlicerApiDescription`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center cursor-pointer shrink-0`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.use_slicer_api??!1,onChange:e=>yr(`use_slicer_api`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`relative w-11 h-6 bg-bambu-dark-tertiary rounded-full peer peer-checked:bg-bambu-green peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-bambu-green/50 transition-colors after:content-[''] after:absolute after:top-0.5 after:left-0.5 after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-transform peer-checked:after:translate-x-5`})]})]}),(A.use_slicer_api??!1)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:(A.preferred_slicer??`bambu_studio`)===`orcaslicer`?i(`settings.orcaslicerApiUrl`,`OrcaSlicer sidecar URL`):i(`settings.bambuStudioApiUrl`,`Bambu Studio sidecar URL`)}),(0,G.jsx)(`input`,{type:`text`,value:((A.preferred_slicer??`bambu_studio`)===`orcaslicer`?A.orcaslicer_api_url:A.bambu_studio_api_url)??``,onChange:e=>yr((A.preferred_slicer??`bambu_studio`)===`orcaslicer`?`orcaslicer_api_url`:`bambu_studio_api_url`,e.target.value),placeholder:(A.preferred_slicer??`bambu_studio`)===`orcaslicer`?`http://localhost:3003`:`http://localhost:3001`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none placeholder:text-bambu-gray/40`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.slicerApiUrlDescription`,`URL of the slicer-API sidecar container. Leave blank to use the SLICER_API_URL / BAMBU_STUDIO_API_URL env var defaults.`)})]}),(A.use_slicer_api??!1)&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.slicerStallTimeout`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:240,value:A.slicer_stall_timeout_minutes??15,onChange:e=>yr(`slicer_stall_timeout_minutes`,Number(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:i(`settings.slicerStallTimeoutDescription`)})]})]})]}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,id:`card-drying`,children:[(0,G.jsx)(hc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),i(`settings.queueDrying`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.queueDryingDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.queueDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.queueDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_drying_enabled??!1,onChange:e=>yr(`queue_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),A.queue_drying_enabled&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.queueDryingBlock`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.queueDryingBlockDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.queue_drying_block??!1,onChange:e=>yr(`queue_drying_block`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-amber-500`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.ambientDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.ambientDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.ambient_drying_enabled??!1,onChange:e=>yr(`ambient_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-white`,children:i(`settings.printDryingEnabled`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.printDryingEnabledDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.print_drying_enabled??!1,onChange:e=>yr(`print_drying_enabled`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:i(`settings.dryingPresets`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.dryingPresetsDescription`)}),(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5`,children:i(`settings.dryingFilament`)}),(0,G.jsx)(`th`,{className:`text-center py-1.5`,colSpan:2,children:`AMS 2 Pro`}),(0,G.jsx)(`th`,{className:`text-center py-1.5`,colSpan:2,children:`AMS-HT`})]})}),(0,G.jsx)(`tbody`,{children:(()=>{let e={PLA:{n3f:45,n3s:45,n3f_hours:12,n3s_hours:12},PETG:{n3f:65,n3s:65,n3f_hours:12,n3s_hours:12},TPU:{n3f:65,n3s:75,n3f_hours:12,n3s_hours:18},ABS:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},ASA:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:12},PC:{n3f:65,n3s:80,n3f_hours:12,n3s_hours:8},PVA:{n3f:65,n3s:85,n3f_hours:12,n3s_hours:18}},t={...e};try{if(A.drying_presets){let n=JSON.parse(A.drying_presets);typeof n==`object`&&n&&(t={...e,...n})}}catch{}let n=(e,n,r)=>{let i={...t,[e]:{...t[e],[n]:r}};yr(`drying_presets`,JSON.stringify(i))};return Object.entries(t).map(([e,t])=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 text-white font-medium`,children:e}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:30,max:65,value:t.n3f,onChange:t=>n(e,`n3f`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:t.n3f_hours,onChange:t=>n(e,`n3f_hours`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`h`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:30,max:85,value:t.n3s,onChange:t=>n(e,`n3s`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})}),(0,G.jsx)(`td`,{className:`py-1 px-1`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:24,value:t.n3s_hours,onChange:t=>n(e,`n3s_hours`,Math.max(1,parseInt(t.target.value)||0)),className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`h`})]})})]},e))})()})]})})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:i(`settings.humidityThresholds`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.humidityThresholdsDescription`)}),(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left py-1.5`,children:i(`settings.dryingFilament`)}),(0,G.jsx)(`th`,{className:`text-right py-1.5 pr-2`,children:i(`settings.humidityThresholdCol`)})]})}),(0,G.jsx)(`tbody`,{children:(()=>{let e=A.ams_humidity_fair??60,t=[`PLA`,`PETG`,`TPU`,`ABS`,`ASA`,`PA`,`PC`,`PVA`],n={};try{if(A.ams_humidity_thresholds){let e=JSON.parse(A.ams_humidity_thresholds);typeof e==`object`&&e&&(n=e)}}catch{}let r=[{key:`default`,label:i(`settings.humidityThresholdDefault`),value:Number(n.default??e),isDefault:!0},...t.map(t=>({key:t,label:t,value:Number(n[t]??n.default??e),isDefault:!1}))],a=(e,t)=>{if(t.trim()===``){let t={...n};delete t[e],yr(`ams_humidity_thresholds`,JSON.stringify(t));return}let r=parseInt(t,10);if(Number.isNaN(r))return;let i=Math.max(5,Math.min(95,r)),a={...n,[e]:i};yr(`ams_humidity_thresholds`,JSON.stringify(a))};return r.map(e=>{let t=M[e.key],n=t===void 0?String(e.value):t;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50`,children:[(0,G.jsx)(`td`,{className:`py-1.5 pr-2 font-medium ${e.isDefault?`text-bambu-gray italic`:`text-white`}`,children:e.label}),(0,G.jsx)(`td`,{className:`py-1 pr-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:5,max:95,value:n,onChange:t=>N(n=>({...n,[e.key]:t.target.value})),onBlur:t=>{a(e.key,t.target.value),N(t=>{let n={...t};return delete n[e.key],n})},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()},className:`w-14 px-1.5 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-center text-xs focus:border-amber-500/50 focus:outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})})]},e.key)})})()})]})})]})]})]}),(0,G.jsxs)(zd,{id:`card-gcode`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Fs,{className:`w-4 h-4 text-bambu-green`}),i(`settings.gcodeInjection`,`G-code Injection`)]})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.gcodeInjectionDescription`,`Configure custom G-code to inject at the start and/or end of prints for auto-print systems like Farmloop, SwapMod, AutoClear, and Printflow 3D. Snippets are configured per printer model and applied when "Inject G-code" is enabled on a queue item.`)}),(()=>{let e=(()=>{try{return A.gcode_snippets?JSON.parse(A.gcode_snippets):{}}catch{return{}}})(),t=[...new Set((sn||[]).filter(e=>e.model).map(e=>e.model))].sort(),n=(t,n,r)=>{let i={...e};i[t]||(i[t]={start_gcode:``,end_gcode:``}),i[t][n]=r,!i[t].start_gcode&&!i[t].end_gcode&&delete i[t];let a=Object.keys(i).length>0?JSON.stringify(i):``;j(e=>e?{...e,gcode_snippets:a}:null),pr.current=a},r=()=>{pr.current!==null&&(_r.mutate({gcode_snippets:pr.current}),pr.current=null)};return t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:i(`settings.gcodeInjectionNoPrinters`,`No printers found. Add printers to configure G-code snippets.`)}):t.map(t=>{let a=e[t]||{start_gcode:``,end_gcode:``},o=!!(a.start_gcode||a.end_gcode);return(0,G.jsx)($p,{defaultOpen:o,className:`border border-bambu-dark-tertiary rounded-lg px-3 py-2`,summary:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:t}),o&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:i(`settings.gcodeConfigured`,`Configured`)})]}),children:(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.gcodeStartLabel`,`Start G-code`)}),(0,G.jsx)(`textarea`,{value:a.start_gcode,onChange:e=>n(t,`start_gcode`,e.target.value),onBlur:r,placeholder:i(`settings.gcodeStartPlaceholder`,`G-code prepended before the print starts...`),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono focus:outline-none focus:border-bambu-green resize-y`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1`,children:i(`settings.gcodeEndLabel`,`End G-code`)}),(0,G.jsx)(`textarea`,{value:a.end_gcode,onChange:e=>n(t,`end_gcode`,e.target.value),onBlur:r,placeholder:i(`settings.gcodeEndPlaceholder`,`G-code appended after the print ends...`),rows:3,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono focus:outline-none focus:border-bambu-green resize-y`})]})]})},t)})})()]})]})]})]})]}),je===`filament`&&A&&(0,G.jsx)(G.Fragment,{children:(0,G.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`lg:w-1/3 space-y-3`,children:[(0,G.jsx)(lGe,{}),(0,G.jsxs)(zd,{id:`card-filamentchecks`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.filamentChecks`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.disableFilamentWarnings`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.disableFilamentWarningsDesc`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.disable_filament_warnings,onChange:e=>yr(`disable_filament_warnings`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.preferLowestFilament`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.preferLowestFilamentDesc`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:i(`settings.preferLowestFilamentBackupNote`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.prefer_lowest_filament,onChange:e=>yr(`prefer_lowest_filament`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})]})]}),(0,G.jsxs)(zd,{id:`card-printmodal`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.printModal`)})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.expandCustomMapping`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.expandCustomMappingDescription`)})]}),(0,G.jsxs)(`label`,{className:`relative inline-flex items-center cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.per_printer_mapping_expanded??!1,onChange:e=>yr(`per_printer_mapping_expanded`,e.target.checked),className:`sr-only peer`}),(0,G.jsx)(`div`,{className:`w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green`})]})]})})]}),(0,G.jsxs)(zd,{id:`card-amsthresholds`,children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.amsDisplayThresholds`)})}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.amsThresholdsDescription`)}),(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-white`,children:[(0,G.jsx)(Qs,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`font-medium`,children:i(`settings.humidity`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.goodGreen`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`100`,value:A.ams_humidity_good??40,onChange:e=>yr(`ams_humidity_good`,parseInt(e.target.value)||40),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.fairOrange`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`0`,max:`100`,value:A.ams_humidity_fair??60,onChange:e=>yr(`ams_humidity_fair`,parseInt(e.target.value)||60),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`%`})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.aboveFairBad`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-700/80 dark:text-amber-400/70`,children:i(`settings.fairAlsoDryingThreshold`)}),(A.ams_humidity_fair??60)yr(`ams_temp_good`,parseFloat(e.target.value)||28),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:[i(`settings.fairOrange`),` ≤`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,step:`0.5`,min:`0`,max:`60`,value:A.ams_temp_fair??35,onChange:e=>yr(`ams_temp_fair`,parseFloat(e.target.value)||35),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.aboveFairHot`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.tempAlarmThreshold`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,step:`0.5`,min:`0.5`,max:`120`,value:A.ams_temp_alarm??``,placeholder:String(A.ams_temp_fair??35),onChange:e=>{let t=e.target.value.trim(),n=parseFloat(t);yr(`ams_temp_alarm`,t===``||Number.isNaN(n)?null:n)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`°C`})]})]}),(A.ams_temp_alarm??1)<=0&&(0,G.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:i(`settings.tempAlarmMustBePositive`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-700/80 dark:text-amber-400/70`,children:i(`settings.tempAlarmSeparateFromBand`)})]}),(0,G.jsxs)(`div`,{className:`space-y-3 pt-4 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-white`,children:[(0,G.jsx)(Gs,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`font-medium`,children:i(`settings.historyRetention`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:i(`settings.keepSensorHistory`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,min:`1`,max:`365`,value:A.ams_history_retention_days??30,onChange:e=>yr(`ams_history_retention_days`,parseInt(e.target.value)||30),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`common.days`)})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:i(`settings.historyRetentionDescription`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`lg:w-2/3 space-y-3`,children:[(0,G.jsx)(uGe,{}),(0,G.jsx)(dGe,{})]})]})}),Ye!==null&&(0,G.jsx)(of,{title:i(`settings.deleteApiKeyTitle`),message:i(`settings.deleteApiKeyMessage`),confirmText:i(`settings.deleteKey`),variant:`danger`,onConfirm:()=>{on.mutate(Ye),Xe(null)},onCancel:()=>Xe(null)}),P&&(0,G.jsx)(FWe,{plug:I,onClose:()=>{F(!1),L(null)}}),R&&(0,G.jsx)(IWe,{sensor:B,printers:sn??[],onClose:()=>{z(!1),V(null)}}),ee&&(0,G.jsx)(RWe,{sensor:ne,locations:un??[],onClose:()=>{te(!1),re(null)}}),ie&&(0,G.jsx)(VWe,{onClose:()=>ae(!1)}),le&&(0,G.jsx)(of,{title:i(`locationHaSensors.deleteAllConfirm.title`),message:i(`locationHaSensors.deleteAllConfirm.message`,{location:le.locationName,count:le.sensorIds.length}),variant:`danger`,isLoading:pn.isPending,onConfirm:()=>pn.mutate(le.sensorIds),onCancel:()=>ue(null)}),de&&(0,G.jsx)(WWe,{provider:pe,onClose:()=>{fe(!1),me(null)}}),he&&(0,G.jsx)(GWe,{template:he,onClose:()=>ge(null)}),xe&&(0,G.jsx)(qWe,{onClose:()=>Se(!1)}),$e&&(0,G.jsx)(of,{title:i(`settings.clearNotificationLogs`),message:i(`settings.clearLogsMessage`),confirmText:i(`settings.clearLogs`),variant:`warning`,onConfirm:async()=>{et(!1);try{o((await Z.clearNotificationLogs(30)).message,`success`)}catch{o(i(`settings.toast.clearLogsFailed`),`error`)}},onCancel:()=>et(!1)}),tt&&(0,G.jsx)(of,{title:i(`settings.resetUiPreferences`),message:i(`settings.resetUiPreferencesMessage`),confirmText:i(`settings.resetPreferences`),variant:`default`,onConfirm:()=>{nt(!1),localStorage.clear(),o(i(`settings.toast.uiPreferencesReset`),`success`),setTimeout(()=>window.location.reload(),1e3)},onCancel:()=>nt(!1)}),rt&&(0,G.jsx)(of,{title:`Turn All Plugs ${rt===`on`?`On`:`Off`}`,message:`This will turn ${rt===`on`?`ON`:`OFF`} all ${Zt?.filter(e=>e.enabled).length||0} enabled smart plugs. ${rt===`off`?`Any running printers may be affected!`:``}`,confirmText:`Turn All ${rt===`on`?`On`:`Off`}`,variant:rt===`off`?`danger`:`warning`,onConfirm:()=>{let e=rt;it(null),dr.mutate(e)},onCancel:()=>it(null)}),at&&Pn?.release_notes&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onClick:()=>ot(!1),children:(0,G.jsxs)(zd,{className:`w-full max-w-2xl max-h-[80vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between shrink-0`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white`,children:[`Release Notes - v`,Pn.latest_version]}),Pn.release_name&&Pn.release_name!==Pn.latest_version&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:Pn.release_name})]}),(0,G.jsx)(`button`,{onClick:()=>ot(!1),className:`p-1 rounded hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(Vd,{className:`overflow-y-auto flex-1`,children:(0,G.jsx)(`pre`,{className:`text-sm text-bambu-gray whitespace-pre-wrap font-sans`,children:Pn.release_notes})}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary shrink-0 flex gap-2`,children:[Pn.release_url&&(0,G.jsx)(`a`,{href:Pn.release_url,target:`_blank`,rel:`noopener noreferrer`,className:`flex-1`,children:(0,G.jsxs)(Q,{variant:`secondary`,className:`w-full`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),`View on GitHub`]})}),(0,G.jsx)(Q,{onClick:()=>ot(!1),className:`flex-1`,children:`Close`})]})]})}),je===`users`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-1 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`button`,{onClick:()=>Pe(`users`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`users`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Uu,{className:`w-4 h-4`}),i(`settings.tabs.users`)]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`email`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`email`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),i(`settings.tabs.emailAuth`)||`Email Authentication`,Hn?.advanced_auth_enabled&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`ldap`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px lg:border-b-0 lg:border-l-2 lg:-ml-px lg:mb-0 lg:justify-start flex items-center gap-2 ${Ne===`ldap`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.ldap`)||`LDAP`,Un?.ldap_enabled&&(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-green-400`})]}),(0,G.jsxs)(`button`,{onClick:()=>Pe(`twofa`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`twofa`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.twoFa`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Wn?.totp_enabled||Wn?.email_otp_enabled?`bg-green-400`:`bg-bambu-gray/40`}`})]}),l&&(0,G.jsxs)(`button`,{onClick:()=>Pe(`oidc`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`oidc`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ac,{className:`w-4 h-4`}),i(`settings.tabs.oidc`),(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full ${Gn.some(e=>e.is_enabled)?`bg-green-400`:`bg-bambu-gray/40`}`})]}),l&&(0,G.jsxs)(`button`,{onClick:()=>Pe(`security`),className:`px-4 py-2 text-sm font-medium transition-colors border-b-2 -mb-px flex items-center gap-2 ${Ne===`security`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-gray-900 dark:hover:text-white border-transparent`}`,children:[(0,G.jsx)(su,{className:`w-4 h-4`}),i(`settings.tabs.security`)]})]}),Ne===`users`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${s?`bg-green-500/20`:`bg-gray-500/20`}`,children:s?(0,G.jsx)(nl,{className:`w-5 h-5 text-green-600 dark:text-green-400`}):(0,G.jsx)(tl,{className:`w-5 h-5 text-gray-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:i(`settings.authentication`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(s?`settings.authEnabledDescription`:`settings.authDisabledDescription`)})]})]}),s?c?.is_admin&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ct(!0),children:[(0,G.jsx)(tl,{className:`w-4 h-4`}),i(`common.disable`)]}):(0,G.jsxs)(Q,{onClick:()=>t(`/setup`),children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),i(`common.enable`)]})]})})}),Hn?.advanced_auth_enabled&&(0,G.jsx)(zd,{className:`border-blue-500/30 bg-blue-500/5`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center bg-blue-500/20 flex-shrink-0`,children:(0,G.jsx)(al,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:i(`settings.email.advancedAuthEnabled`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:i(`settings.email.advancedAuthEnabledDesc`)})]})]})})}),s&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-2 gap-6`,children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(zd,{id:`card-session-policy`,children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(nl,{className:`w-5 h-5 text-bambu-green`}),i(`settings.sessionPolicy.title`)]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:i(`settings.sessionPolicy.description`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2 mb-4`,children:[[{hours:24,labelKey:`settings.sessionPolicy.preset24h`},{hours:168,labelKey:`settings.sessionPolicy.preset7d`},{hours:720,labelKey:`settings.sessionPolicy.preset30d`}].map(e=>{let t=(A?.session_max_hours??24)===e.hours;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>yr(`session_max_hours`,e.hours),disabled:s&&!d(`settings:update`),className:`px-3 py-2 rounded-lg text-sm font-medium transition-colors ${t?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark`} disabled:opacity-50 disabled:cursor-not-allowed`,children:i(e.labelKey)},e.hours)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`input`,{type:`number`,min:1,max:720,value:A?.session_max_hours??24,onChange:e=>{let t=parseInt(e.target.value,10);Number.isNaN(t)||yr(`session_max_hours`,Math.max(1,Math.min(720,t)))},disabled:s&&!d(`settings:update`),"aria-label":i(`settings.sessionPolicy.customHoursLabel`),className:`w-20 px-2 py-2 bg-bambu-dark-tertiary text-white text-sm rounded-lg border border-bambu-dark-tertiary focus:border-bambu-green focus:outline-none disabled:opacity-50`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:i(`settings.sessionPolicy.hoursSuffix`)})]})]}),(A?.session_max_hours??24)>24&&(0,G.jsxs)(`div`,{className:`flex items-start gap-2 p-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5`}),(0,G.jsx)(`p`,{className:`text-xs text-yellow-800 dark:text-yellow-200`,children:i(`settings.sessionPolicy.warning`)})]})]})]}),c&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-currentuser`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.currentUser`)]}),c.auth_source!==`ldap`&&(0,G.jsxs)(Q,{size:`sm`,variant:`ghost`,onClick:()=>ut(!0),children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.changePassword`)]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium text-lg`,children:c.username}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:[c.is_admin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`,children:i(`settings.admin`)}),c.groups?.map(e=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium ${e.name===`Administrators`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`:e.name===`Operators`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`:e.name===`Viewers`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`:`bg-gray-500/20 text-gray-300`}`,children:e.name},e.id))]})]})})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-users`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),i(`settings.users`)]}),d(`users:create`)&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>{vt(!0),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addUser`)]})]})}),(0,G.jsx)(Vd,{children:qn?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):Kn.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8`,children:i(`settings.noUsersFound`)}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:Kn.map(e=>(0,G.jsxs)(`div`,{className:`py-3 flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:e.username}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 mt-1`,children:[e.auth_source===`ldap`&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-300`,children:`LDAP`}),e.is_admin&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`,children:i(`settings.admin`)}),e.groups?.map(e=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium ${e.name===`Administrators`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-300`:e.name===`Operators`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-300`:e.name===`Viewers`?`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-300`:`bg-gray-500/20 text-gray-300`}`,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 ml-4`,children:[d(`users:update`)&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>ir(e),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),d(`users:delete`)&&e.id!==c?.id&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>er(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},e.id))})})]})]}),(0,G.jsx)(`div`,{children:(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h3`,{className:`text-lg font-semibold text-white flex items-center gap-2`,id:`card-groups`,children:[(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),i(`settings.groups`)]}),d(`groups:create`)&&(0,G.jsxs)(Q,{size:`sm`,onClick:()=>t(`/groups/new`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.addGroup`)]})]})}),(0,G.jsx)(Vd,{children:Yn?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 text-bambu-green animate-spin`})}):Jn.length===0?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-8`,children:i(`settings.noGroupsFound`)}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:Jn.map(e=>(0,G.jsxs)(`div`,{className:`py-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(su,{className:`w-4 h-4 ${e.name===`Administrators`?`text-purple-600 dark:text-purple-400`:e.name===`Operators`?`text-blue-600 dark:text-blue-400`:e.name===`Viewers`?`text-green-600 dark:text-green-400`:`text-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:e.name}),e.is_system&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded text-xs bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,children:i(`settings.system`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[d(`groups:update`)&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>t(`/groups/${e.id}/edit`),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),d(`groups:delete`)&&!e.is_system&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>Ft(e.id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1 ml-6`,children:e.description||i(`settings.noDescription`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 mt-2 ml-6 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:i(`settings.userCount`,{count:e.user_count})}),(0,G.jsx)(`span`,{children:i(`settings.permissionCount`,{count:e.permissions.length})})]})]},e.id))})})]})})]}),!s&&(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-6`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(tl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:i(`settings.authDisabledTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4 max-w-md mx-auto`,children:i(`settings.authDisabledMessage`)}),(0,G.jsxs)(`ul`,{className:`space-y-2 text-sm text-bambu-gray mb-6 text-left max-w-xs mx-auto`,children:[(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature1`)})]}),(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature2`)})]}),(0,G.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsx)(`span`,{children:i(`settings.authDisabledFeature3`)})]})]}),(0,G.jsxs)(Q,{onClick:()=>t(`/setup`),children:[(0,G.jsx)(nl,{className:`w-4 h-4`}),i(`settings.enableAuthentication`)]})]})})})]}),Ne===`email`&&(0,G.jsx)(`div`,{className:`max-w-5xl`,id:`card-smtp`,children:(0,G.jsx)(jGe,{})}),Ne===`ldap`&&(0,G.jsx)(`div`,{className:`max-w-5xl`,id:`card-ldap`,children:(0,G.jsx)(NGe,{})}),Ne===`twofa`&&(0,G.jsx)(`div`,{className:`max-w-2xl`,children:(0,G.jsx)(FGe,{})}),Ne===`oidc`&&l&&(0,G.jsxs)(`div`,{className:`max-w-3xl space-y-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`space-y-3 p-4`,children:(0,G.jsxs)(`label`,{className:`flex items-start gap-3 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:A.local_login_enabled===!1,onChange:e=>yr(`local_login_enabled`,!e.target.checked),className:`mt-1 h-4 w-4 rounded border-bambu-dark-tertiary bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green/50 cursor-pointer`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:i(`settings.localLogin.disable`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:i(`settings.localLogin.disableHint`)})]})]})})}),(0,G.jsx)(RGe,{})]}),Ne===`security`&&l&&(0,G.jsx)(`div`,{className:`max-w-3xl`,children:(0,G.jsx)(BGe,{})})]}),_t&&!Hn?.advanced_auth_enabled&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black flex items-center justify-center z-50 p-4`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Uu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.createUser`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[Un?.ldap_enabled&&(0,G.jsxs)(`div`,{className:`mb-4 flex items-center gap-1 p-1 bg-bambu-dark-secondary rounded-lg`,role:`tablist`,"aria-label":i(`users.modal.tabsAriaLabel`),children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":yt===`local`,onClick:()=>bt(`local`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${yt===`local`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:i(`users.modal.localTab`)}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":yt===`ldap`,onClick:()=>bt(`ldap`),className:`flex-1 px-3 py-2 text-sm rounded-md transition-colors ${yt===`ldap`?`bg-bambu-green/15 text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:i(`users.modal.ldapTab`)})]}),yt===`ldap`&&Un?.ldap_enabled?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(C8,{onSuccess:e=>{vt(!1),bt(`local`),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`users.toast.ldapProvisioned`,{username:e.username}))}}),(0,G.jsx)(`div`,{className:`mt-6 flex justify-end`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{vt(!1),bt(`local`),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`common.cancel`)})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.username`)}),(0,G.jsx)(`input`,{type:`text`,value:Mt.username,onChange:e=>Nt({...Mt,username:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterUsername`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.password`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.password,onChange:e=>Nt({...Mt,password:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterPassword`),autoComplete:`new-password`,minLength:8}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:i(`settings.passwordRequirements`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.confirmPassword`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.confirmPassword,onChange:e=>Nt({...Mt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${Mt.confirmPassword&&Mt.password!==Mt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmPasswordPlaceholder`),autoComplete:`new-password`,minLength:6}),Mt.confirmPassword&&Mt.password!==Mt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.groups`)}),(0,G.jsxs)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[Jn.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Mt.group_ids.includes(e.id),onChange:()=>ar(e.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.name}),e.is_system&&(0,G.jsx)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:i(`settings.systemBadge`)})]},e.id)),Jn.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`settings.noGroupsAvailable`)})]})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:nr,disabled:Xn.isPending||!Mt.username||!Mt.password||Mt.password!==Mt.confirmPassword||_6(Mt.password)!==null,children:Xn.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`settings.creating`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),i(`settings.createUser`)]})})]})]})]})]})}),_t&&Hn?.advanced_auth_enabled&&(0,G.jsx)(cGe,{formData:Mt,setFormData:Nt,groups:Jn,onClose:()=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},onCreate:nr,isCreating:Xn.isPending,isCreateButtonDisabled:Xn.isPending||!Mt.username||!Mt.email,ldapEnabled:Un?.ldap_enabled,onLdapProvisioned:e=>{vt(!1),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]}),o(i(`users.toast.ldapProvisioned`,{username:e.username}))}}),xt&&Ct!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black flex items-center justify-center z-50 p-4`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(kl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.editUser`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`settings.username`),` `,Hn?.advanced_auth_enabled&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`})]}),(0,G.jsx)(`input`,{type:`text`,value:Mt.username,onChange:e=>Nt({...Mt,username:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterUsername`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`users.form.email`)||`Email`,` `,Hn?.advanced_auth_enabled?(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:`*`}):(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,i(`users.form.optional`)||`optional`,`)`]})]}),(0,G.jsx)(`input`,{type:`email`,value:Mt.email,onChange:e=>Nt({...Mt,email:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`users.form.emailPlaceholder`)||`user@example.com`,required:Hn?.advanced_auth_enabled})]}),!Hn?.advanced_auth_enabled&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:[i(`users.form.password`)||`Password`,` `,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal`,children:[`(`,i(`users.form.leaveBlankToKeep`)||`leave blank to keep current`,`)`]})]}),(0,G.jsx)(`input`,{type:`password`,value:Mt.password,onChange:e=>Nt({...Mt,password:e.target.value,confirmPassword:``}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterNewPassword`),autoComplete:`new-password`,minLength:8}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-xs mt-1`,children:i(`settings.passwordRequirements`)})]}),Mt.password&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`settings.confirmPassword`)}),(0,G.jsx)(`input`,{type:`password`,value:Mt.confirmPassword,onChange:e=>Nt({...Mt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${Mt.confirmPassword&&Mt.password!==Mt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmNewPassword`),autoComplete:`new-password`,minLength:6}),Mt.confirmPassword&&Mt.password!==Mt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]})]}),Hn?.advanced_auth_enabled&&(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary/50 border border-bambu-green/20 rounded-lg p-3 space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`users.form.passwordManagedByAdvancedAuth`)||`Password is managed by Advanced Authentication. Use "Reset Password" to send a new password to the user via email.`}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Ct&&$n.mutate(Ct),disabled:$n.isPending||!Mt.email,className:`w-full`,children:$n.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`users.form.resettingPassword`)||`Resetting Password...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Wl,{className:`w-4 h-4`}),i(`users.form.resetPassword`)||`Reset Password`]})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:i(`users.form.groups`)||`Groups`}),(0,G.jsx)(`div`,{className:`space-y-2 max-h-40 overflow-y-auto p-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:Jn.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Mt.group_ids.includes(e.id),onChange:()=>ar(e.id),className:`w-4 h-4 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.name}),e.is_system&&(0,G.jsxs)(`span`,{className:`text-xs text-yellow-700 dark:text-yellow-400`,children:[`(`,i(`users.system`)||`System`,`)`]})]},e.id))})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{St(!1),wt(null),Nt({username:``,password:``,email:``,confirmPassword:``,role:`user`,group_ids:[]})},children:i(`users.modal.cancel`)||`Cancel`}),(0,G.jsx)(Q,{onClick:()=>rr(Ct),disabled:Zn.isPending||!Mt.username||Hn?.advanced_auth_enabled&&!Mt.email||!!(!Hn?.advanced_auth_enabled&&Mt.password&&(Mt.password!==Mt.confirmPassword||_6(Mt.password)!==null)),children:Zn.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`users.modal.saving`)||`Saving...`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),i(`users.modal.saveChanges`)||`Save Changes`]})})]})]})]})}),Tt!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-4`,onClick:()=>{Et(null),Ot(null)},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:i(`settings.deleteUserTitle`)})]})}),(0,G.jsx)(Vd,{className:`space-y-3`,children:At?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(`div`,{className:`animate-spin rounded-full h-6 w-6 border-2 border-bambu-green border-t-transparent`})}):Dt&&Dt.archives+Dt.queue_items+Dt.library_files>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.userHasCreated`)}),(0,G.jsxs)(`ul`,{className:`list-disc list-inside text-bambu-gray space-y-1`,children:[Dt.archives>0&&(0,G.jsxs)(`li`,{children:[Dt.archives,` archive`,Dt.archives===1?``:`s`]}),Dt.queue_items>0&&(0,G.jsxs)(`li`,{children:[Dt.queue_items,` queue item`,Dt.queue_items===1?``:`s`]}),Dt.library_files>0&&(0,G.jsxs)(`li`,{children:[Dt.library_files,` library file`,Dt.library_files===1?``:`s`]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:i(`settings.userItemsQuestion`)}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(Q,{variant:`danger`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!0}),disabled:Qn.isPending,className:`justify-center`,children:i(`settings.deleteUserAndItems`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!1}),disabled:Qn.isPending,className:`justify-center`,children:i(`settings.deleteUserKeepItems`)}),(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>{Et(null),Ot(null)},disabled:Qn.isPending,className:`justify-center`,children:i(`common.cancel`)})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white`,children:i(`settings.deleteUserConfirm`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:i(`settings.actionCannotBeUndone`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,G.jsx)(Q,{variant:`ghost`,onClick:()=>{Et(null),Ot(null)},disabled:Qn.isPending,children:i(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>Qn.mutate({id:Tt,deleteItems:!1}),disabled:Qn.isPending,children:i(`settings.deleteUserTitle`)})]})]})})]})}),Pt!==null&&(0,G.jsx)(of,{title:i(`settings.deleteGroupTitle`),message:i(`settings.deleteGroupMessage`),confirmText:i(`settings.deleteGroup`),variant:`danger`,onConfirm:()=>{tr.mutate(Pt),Ft(null)},onCancel:()=>Ft(null)}),je===`failure-detection`&&(0,G.jsx)(`div`,{id:`card-failure-detection`,children:(0,G.jsx)(OGe,{})}),je===`backup`&&(0,G.jsxs)(`div`,{id:`card-backup`,children:[(0,G.jsxs)(`div`,{className:`mb-4 p-3 bg-amber-50 dark:bg-amber-500/10 border border-amber-300 dark:border-amber-500/30 rounded-lg flex items-start gap-2`,children:[(0,G.jsx)(su,{className:`text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5`,size:16}),(0,G.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400`,children:i(`backup.includesEncryptionKey`)})]}),(0,G.jsx)(DGe,{})]}),st&&(0,G.jsx)(of,{title:i(`settings.disableAuthenticationTitle`),message:i(`settings.disableAuthenticationMessage`),confirmText:i(`settings.disableAuthentication`),variant:`danger`,onConfirm:async()=>{try{await Z.disableAuth(),o(i(`settings.toast.authDisabled`),`success`),await u(),ct(!1),window.location.href=`/`}catch(e){o(e instanceof Error?e.message:i(`settings.toast.authDisableFailed`),`error`)}},onCancel:()=>ct(!1)}),lt&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Kc,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`settings.changePassword`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`Current Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.currentPassword,onChange:e=>ft({...dt,currentPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterCurrentPassword`),autoComplete:`current-password`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`New Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.newPassword,onChange:e=>ft({...dt,newPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:i(`settings.enterNewPasswordMin6`),autoComplete:`new-password`,minLength:6})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:`Confirm New Password`}),(0,G.jsx)(`input`,{type:`password`,value:dt.confirmPassword,onChange:e=>ft({...dt,confirmPassword:e.target.value}),className:`w-full px-4 py-3 bg-bambu-dark-secondary border rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors ${dt.confirmPassword&&dt.newPassword!==dt.confirmPassword?`border-red-500`:`border-bambu-dark-tertiary`}`,placeholder:i(`settings.confirmNewPassword`),autoComplete:`new-password`,minLength:6}),dt.confirmPassword&&dt.newPassword!==dt.confirmPassword&&(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 text-xs mt-1`,children:i(`settings.passwordsDoNotMatch`)})]})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex justify-end gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})},children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:async()=>{if(dt.newPassword!==dt.confirmPassword){o(i(`settings.toast.passwordsDoNotMatch`),`error`);return}if(dt.newPassword.length<6){o(i(`settings.toast.passwordTooShort`),`error`);return}mt(!0);try{await Z.changePassword(dt.currentPassword,dt.newPassword),o(i(`settings.toast.passwordChanged`),`success`),ut(!1),ft({currentPassword:``,newPassword:``,confirmPassword:``})}catch(e){o(e instanceof Error?e.message:`Failed to change password`,`error`)}finally{mt(!1)}},disabled:pt||!dt.currentPassword||!dt.newPassword||dt.newPassword!==dt.confirmPassword||dt.newPassword.length<6,children:pt?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i(`settings.changing`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),i(`settings.changePassword`)]})})]})]})]})})]})]})]})})}var ZGe=/\[(aborted|failed|cancelled):\s*([^\]]*)\]/i;function QGe(e){if(!e)return{isPartial:!1,partialType:null,cleanedDescription:null};let t=e.match(ZGe);if(!t)return{isPartial:!1,partialType:null,cleanedDescription:e};let n=e.replace(t[0],``).trim();return{isPartial:!0,partialType:t[1].toLowerCase(),cleanedDescription:n||null}}function $Ge(e,t){if(!e)return`-`;let n=rp(e);return n?n.toLocaleString(t):e}function X8(e){let t=e.trim();if(!t)return null;let n=Number.parseFloat(t);return Number.isFinite(n)?n:null}function Z8(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}T${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}var Q8=`w-full px-3 py-2 text-sm bg-bambu-dark border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:outline-none focus:ring-1 focus:ring-bambu-green`,$8=`block text-sm font-medium text-white mb-1`,e5=`px-4 py-3 text-left text-bambu-gray font-medium`,t5=`px-4 py-3 align-top text-white`;function n5({title:e,onClose:t,children:n,size:r=`md`}){let{t:i}=U();return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4`,children:(0,G.jsxs)(`div`,{className:`w-full ${r===`sm`?`max-w-xl`:r===`lg`?`max-w-6xl`:`max-w-4xl`} overflow-hidden rounded-lg border border-bambu-dark-tertiary bg-bambu-dark-secondary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-bambu-dark-tertiary px-4 py-3`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:e}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:t,children:i(`common.close`,`Close`)})]}),(0,G.jsx)(`div`,{className:`max-h-[75vh] overflow-auto p-4`,children:n})]})})}function eKe(){let{t:e,i18n:t}=U(),{hasPermission:n,user:r}=Nd(),{showToast:i}=qd(),a=co(),o=n(`cost_centers:read_own`),s=n(`cost_centers:read_all`),c=n(`cost_centers:create`),l=n(`cost_centers:modify`),u=n(`cost_centers:modify`),d=n(`cost_centers:modify`),f=n(`cost_centers:modify`),p=n(`users:read_slim`)||n(`users:read`),m=s||c||l||u||d||f,h=o||m,g=h,[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`monthly`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(`deposit`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(null),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(!0),[B,V]=(0,y.useState)(0),[ee,te]=(0,y.useState)(`all`),[ne,re]=(0,y.useState)(`all`),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(!1),[H,ce]=(0,y.useState)(!1),[le,ue]=(0,y.useState)(!1),[de,fe]=(0,y.useState)(`personal`),[pe,me]=(0,y.useState)(null),[he,ge]=(0,y.useState)(``),[_e,ve]=(0,y.useState)(`monthly`),[ye,be]=(0,y.useState)(``),[xe,Se]=(0,y.useState)(!1),[Ce,we]=(0,y.useState)(null),[Te,Ee]=(0,y.useState)(null),[De,Oe]=(0,y.useState)(null),[ke,Ae]=(0,y.useState)(``),[je,Me]=(0,y.useState)(``),[Ne,Pe]=(0,y.useState)(!1),[Fe,Ie]=(0,y.useState)(null),[Le,Re]=(0,y.useState)(null),[ze,Be]=(0,y.useState)(``),[Ve,He]=(0,y.useState)(``),[Ue,We]=(0,y.useState)(Z8(new Date)),[Ge,Ke]=(0,y.useState)(null),[qe,Je]=(0,y.useState)(null),Ye=s||c||l||u||f&&p||d&&p;(0,y.useEffect)(()=>{Ye||fe(`personal`)},[Ye]);let{data:Xe,isLoading:Ze}=K({queryKey:[`finance`,`me`,`balance`],queryFn:Z.getMyBalance,enabled:o}),{data:Qe,isLoading:$e}=K({queryKey:[`finance`,`me`,`transactions`,50,B],queryFn:()=>Z.getMyTransactions(50,B),enabled:o}),{data:et,isLoading:tt}=K({queryKey:[`finance`,`transactions`,50,B],queryFn:()=>Z.getAllTransactions(50,B),enabled:de===`admin`&&s}),{data:nt,isLoading:rt}=K({queryKey:[`finance`,`cost-centers`,de],queryFn:()=>de===`admin`&&m?Z.listCostCenters(!0):Z.getMyCostCenters(),enabled:g}),{data:it}=K({queryKey:[`users`,`slim`],queryFn:Z.getUsersSlim,enabled:p&&(g||f||d)}),{data:at}=K({queryKey:[`finance`,`cost-center`,P],queryFn:()=>Z.getCostCenter(P),enabled:d&&P!=null});(0,y.useEffect)(()=>{!it||it.length===0||w!=null&&it.some(e=>e.id===w)||T(it[0].id)},[it,w]),(0,y.useEffect)(()=>{if(!d)return;let e=(nt||[]).filter(e=>!e.is_private);if(e.length===0){F(null);return}P!=null&&e.some(e=>e.id===P)||F(e[0].id)},[d,nt,P]),(0,y.useEffect)(()=>{if(!d||!it||it.length===0)return;let e=new Set((at?.members||[]).map(e=>e.user_id)),t=it.find(t=>!e.has(t.id));L(t?t.id:null)},[d,it,at]),(0,y.useEffect)(()=>{if(!le)return;let e=nt||[];if(e.length===0){me(null);return}pe!=null&&e.some(e=>e.id===pe)||me(e[0].id)},[le,pe,nt]),(0,y.useEffect)(()=>{if(!le||pe==null)return;let e=(nt||[]).find(e=>e.id===pe);if(e){if(ge(e.name),e.budget_mode===`total`){ve(`total`),be(e.total_budget==null?``:String(e.total_budget));return}ve(`monthly`),be(e.monthly_budget==null?``:String(e.monthly_budget))}},[le,pe,nt]);let ot=q({mutationFn:()=>Z.createCostCenter({name:_.trim(),total_budget:b===`total`?X8(S):null,monthly_budget:b===`monthly`?X8(S):null,is_active:!0}),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),v(``),C(``),i(e(`finance.createdCostCenter`,`Cost center created`))},onError:t=>{i(t.message||e(`finance.createCostCenterFailed`,`Failed to create cost center`),`error`)}}),st=q({mutationFn:({costCenterId:e,value:t,mode:n})=>Z.updateCostCenterBudgets(e,{total_budget:n===`total`?X8(t):null,monthly_budget:n===`monthly`?X8(t):null})}),ct=q({mutationFn:({costCenterId:e,name:t})=>Z.updateCostCenter(e,{name:t})}),lt=q({mutationFn:e=>Z.deleteCostCenter(e)}),ut=q({mutationFn:e=>Z.deleteTransaction(e),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.transactionDeleted`,`Transaction deleted`))},onError:t=>{i(t.message||e(`finance.deleteTransactionFailed`,`Failed to delete transaction`),`error`)}}),dt=q({mutationFn:e=>Z.editTransaction(e.transactionId,e.data),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.transactionEdited`,`Transaction updated and ledger recalculated`)),Se(!1)},onError:t=>{i(t.message||e(`finance.editTransactionFailed`,`Failed to edit transaction`),`error`)}}),ft=q({mutationFn:e=>Z.createManualPrint(e),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.manualPrintCreated`,`Manual print charge added and ledger recalculated`)),Pe(!1),Ie(null),Re(null),Be(``),He(``),We(Z8(new Date))},onError:t=>{i(t.message||e(`finance.manualPrintFailed`,`Failed to create manual print`),`error`)}}),pt=q({mutationFn:e=>Z.depositUserBalance(e.userId,{amount:e.amount,description:e.description,cost_center_id:e.costCenterId??null})}),mt=q({mutationFn:e=>Z.withdrawUserBalance(e.userId,{amount:e.amount,description:e.description,cost_center_id:e.costCenterId??null})}),ht=q({mutationFn:e=>Z.upsertCostCenterMember(e.costCenterId,{user_id:e.userId,can_print:e.canPrint}),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.memberSaved`,`Member saved`))},onError:t=>{i(t.message||e(`finance.memberSaveFailed`,`Failed to save member`),`error`)}}),gt=q({mutationFn:e=>Z.removeCostCenterMember(e.costCenterId,e.userId),onSuccess:()=>{a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.memberRemoved`,`Member removed`))},onError:t=>{i(t.message||e(`finance.memberRemoveFailed`,`Failed to remove member`),`error`)}}),_t=pt.isPending||mt.isPending,vt=()=>{if(!_.trim()){i(e(`finance.costCenterNameRequired`,`Cost center name is required`),`error`);return}ot.mutate()},yt=async()=>{if(pe==null){i(e(`finance.selectCostCenter`,`Please select a cost center`),`error`);return}let t=he.trim();if(!t){i(e(`finance.costCenterNameRequired`,`Cost center name is required`),`error`);return}try{l&&await ct.mutateAsync({costCenterId:pe,name:t}),u&&await st.mutateAsync({costCenterId:pe,mode:_e,value:ye}),a.invalidateQueries({queryKey:[`finance`]}),i(e(`finance.costCenterUpdated`,`Cost center updated`)),ue(!1)}catch(t){i(t.message||e(`finance.costCenterUpdateFailed`,`Failed to update cost center`),`error`)}},bt=e=>{let t=(nt||[]).find(t=>t.id===e);t&&(me(t.id),ge(t.name),t.budget_mode===`total`?(ve(`total`),be(t.total_budget==null?``:String(t.total_budget))):(ve(`monthly`),be(t.monthly_budget==null?``:String(t.monthly_budget))),ue(!0))},xt=async()=>{if(Ge)try{await lt.mutateAsync(Ge.id),a.invalidateQueries({queryKey:[`finance`]}),P===Ge.id&&F(null),i(e(`finance.costCenterDeleted`,`Cost center deleted`))}catch(t){i(t.message||e(`finance.costCenterDeleteFailed`,`Failed to delete cost center`),`error`)}finally{Ke(null)}},St=()=>{qe!=null&&ut.mutate(qe,{onSettled:()=>Je(null)})},Ct=e=>{we(e.id),Ee(e.user_id),Oe(e.cost_center_id),Ae(String(e.amount)),Me(e.description||``),Se(!0)},wt=async()=>{if(Ce==null)return;let t=ke?Number.parseFloat(ke):null;if(t!==null&&!Number.isFinite(t)){i(e(`finance.amountInvalid`,`Amount must be a valid number`),`error`);return}dt.mutate({transactionId:Ce,data:{user_id:Te||void 0,cost_center_id:De||void 0,amount:t??void 0,description:je||void 0}})},Tt=async()=>{if(Fe==null){i(e(`finance.userRequired`,`Please select a user`),`error`);return}if(Le==null){i(e(`finance.costCenterRequired`,`Please select a cost center`),`error`);return}let t=ze?Number.parseFloat(ze):null;if(t===null||!Number.isFinite(t)){i(e(`finance.amountInvalid`,`Amount must be a valid number`),`error`);return}t=Math.abs(t),ft.mutate({user_id:Fe,cost_center_id:Le,amount:t,description:Ve||void 0,created_at:Ue?new Date(Ue).toISOString():void 0})},Et=async()=>{if(w==null){i(e(`finance.userRequired`,`Please select a user`),`error`);return}let t=Number.parseFloat(O);if(!Number.isFinite(t)||t<=0){i(e(`finance.amountMustBePositive`,`Amount must be greater than zero`),`error`);return}let n={userId:w,amount:t,description:A.trim()||void 0,costCenterId:M};try{E===`deposit`?await pt.mutateAsync(n):await mt.mutateAsync(n),a.invalidateQueries({queryKey:[`finance`]}),k(``),j(``),i(E===`deposit`?e(`finance.depositSuccess`,`Deposit successful`):e(`finance.withdrawSuccess`,`Withdrawal successful`))}catch(t){i(t.message||e(`finance.adjustmentFailed`,`Wallet adjustment failed`),`error`)}},Dt=()=>{if(P==null){i(e(`finance.selectCostCenter`,`Please select a cost center`),`error`);return}if(I==null){i(e(`finance.noEligibleUsers`,`No eligible users available`),`error`);return}ht.mutate({costCenterId:P,userId:I,canPrint:R})},Ot=e=>{P!=null&>.mutate({costCenterId:P,userId:e})},kt=Lf(Xe?.currency||`EUR`),At=(0,y.useMemo)(()=>[...it||[]].sort((e,t)=>e.username.localeCompare(t.username)),[it]),jt=(0,y.useMemo)(()=>{let e=new Map;for(let t of At)e.set(t.id,t.username);return e},[At]),Mt=(0,y.useMemo)(()=>{let e=new Set((at?.members||[]).map(e=>e.user_id));return At.filter(t=>!e.has(t.id))},[At,at]),Nt=de===`admin`&&s?et:Qe,Pt=de===`admin`&&s?tt:$e,Ft=(0,y.useMemo)(()=>Nt?.items??[],[Nt?.items]),It=Nt?.total??0,Lt=Math.max(1,Math.ceil(It/50)),Rt=(0,y.useMemo)(()=>Ft.filter(e=>!(ee!==`all`&&e.transaction_type!==ee||ne!==`all`&&e.cost_center_id!==ne)),[Ft,ee,ne]),zt=Math.floor(B/50)+1,Bt=de===`admin`,Vt=t=>t===`deposit`?e(`finance.deposit`):t===`withdraw`?e(`finance.withdraw`):t===`print_charge`?e(`finance.printCharge`):t,Ht=t=>t==null?e(`finance.personal`,`Personal`):jt.get(t)||(r?.id===t&&r.username?r.username:e(`finance.userWithId`,`User #{{id}}`,{id:t})),Ut=t=>t.budget_limit==null||t.budget_available==null?e(`finance.unlimited`,`Unlimited`):`${kt}${t.budget_available.toFixed(2)}/${kt}${t.budget_limit.toFixed(2)}`;return h?(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ju,{className:`h-6 w-6 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`finance.title`,`Finance`)})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-2 max-w-2xl`,children:e(`finance.subtitle`,`Wallet, personal transactions, and cost centers`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1 max-w-2xl`,children:e(`finance.budgetPolicyHint`,`Account balances track costs. Printing is limited only by the selected cost center budget; without a budget, printing is unlimited.`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 lg:items-end`,children:[Ye&&(0,G.jsxs)(`div`,{className:`inline-flex overflow-hidden rounded border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>fe(`personal`),className:`px-3 py-1.5 text-sm ${de===`personal`?`bg-bambu-green text-black font-medium`:`bg-bambu-dark text-bambu-gray`}`,children:e(`finance.personalView`,`Personal view`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>fe(`admin`),className:`px-3 py-1.5 text-sm ${de===`admin`?`bg-bambu-green text-black font-medium`:`bg-bambu-dark text-bambu-gray`}`,children:e(`finance.adminView`,`Admin view`)})]}),de===`admin`&&Ye&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 lg:justify-end`,children:[c&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>ae(!0),children:e(`finance.createCostCenter`,`Create cost center`)}),f&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>se(!0),children:e(`finance.adjustWallet`,`Adjust wallet`)}),f&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Pe(!0),children:e(`finance.addManualPrint`,`Add manual print`)}),d&&p&&(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>ce(!0),children:e(`finance.manageMembers`,`Manage cost center members`)})]})]})]}),(0,G.jsxs)(`div`,{className:`grid gap-5 md:grid-cols-2 xl:grid-cols-3`,children:[(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`finance.currentBalance`,`Personal account balance`)}),(0,G.jsx)(Ju,{className:`w-4 h-4 text-bambu-green/90`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:Ze?e(`common.loading`,`Loading...`):`${kt}${(Xe?.balance??0).toFixed(2)}`})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:de===`admin`?e(`finance.transactions`,`Transactions`):e(`finance.personalTransactions`,`Personal transactions`)}),(0,G.jsx)(As,{className:`w-4 h-4 text-blue-400`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:Pt?`-`:It})})]}),(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{className:`flex flex-row items-center justify-between pb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsx)(es,{className:`w-4 h-4 text-orange-400`})]}),(0,G.jsx)(Vd,{className:`pt-1`,children:(0,G.jsx)(`p`,{className:`text-3xl font-semibold text-white leading-tight`,children:rt?`-`:nt?.length??0})})]})]}),ie&&c&&(0,G.jsx)(n5,{title:e(`finance.createCostCenter`,`Create cost center`),size:`md`,onClose:()=>ae(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenterName`,`Name`)}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:e(`finance.costCenterName`,`Name`),className:Q8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.budgetType`,`Budget type`)}),(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:Q8,children:[(0,G.jsx)(`option`,{value:`monthly`,children:e(`finance.monthlyBudget`,`Monthly budget`)}),(0,G.jsx)(`option`,{value:`total`,children:e(`finance.totalBudget`,`Total budget`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:b===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):e(`finance.totalBudget`,`Total budget`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:S,onChange:e=>C(e.target.value),placeholder:`0.00`,className:Q8})]})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:vt,disabled:ot.isPending,children:ot.isPending?e(`common.saving`,`Saving...`):e(`finance.create`,`Create`)})]})}),oe&&f&&p&&(0,G.jsx)(n5,{title:e(`finance.adjustWallet`,`Adjust wallet`),size:`md`,onClose:()=>se(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.selectUser`,`Select user`)}),(0,G.jsx)(`select`,{value:w??``,onChange:e=>T(e.target.value?Number(e.target.value):null),className:Q8,children:(At||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.transactionType`,`Type`)}),(0,G.jsxs)(`select`,{value:E,onChange:e=>D(e.target.value),className:Q8,children:[(0,G.jsx)(`option`,{value:`deposit`,children:e(`finance.deposit`,`Deposit`)}),(0,G.jsx)(`option`,{value:`withdraw`,children:e(`finance.withdraw`,`Withdraw`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:O,onChange:e=>k(e.target.value),placeholder:`0.00`,className:Q8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsxs)(`select`,{value:M??``,onChange:e=>N(e.target.value?Number(e.target.value):null),className:Q8,children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.noCostCenter`,`No cost center`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`input`,{type:`text`,value:A,onChange:e=>j(e.target.value),placeholder:e(`finance.descriptionOptional`,`Description (optional)`),className:Q8})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:Et,disabled:_t,children:_t?e(`common.saving`,`Saving...`):e(`finance.applyAdjustment`,`Apply adjustment`)})]})}),H&&d&&p&&(0,G.jsx)(n5,{title:e(`finance.manageMembers`,`Manage cost center members`),size:`lg`,onClose:()=>ce(!1),children:(0,G.jsxs)(`div`,{className:`space-y-5`,children:[(0,G.jsxs)(`div`,{className:`grid gap-5 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsx)(`select`,{value:P??``,onChange:e=>F(e.target.value?Number(e.target.value):null),className:Q8,children:(nt||[]).filter(e=>!e.is_private).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.selectUser`,`Select user`)}),(0,G.jsxs)(`select`,{value:I??``,onChange:e=>L(e.target.value?Number(e.target.value):null),className:Q8,children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user`)}),Mt.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded border border-bambu-dark-tertiary bg-bambu-dark-secondary px-3 py-2`,children:[(0,G.jsx)(`input`,{id:`memberCanPrint`,type:`checkbox`,checked:R,onChange:e=>z(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`label`,{htmlFor:`memberCanPrint`,className:`text-sm text-bambu-gray`,children:e(`finance.memberCanPrint`,`Member can print`)})]}),(0,G.jsx)(`div`,{className:`flex items-end`,children:(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:Dt,disabled:ht.isPending||I==null,children:ht.isPending?e(`common.saving`,`Saving...`):e(`finance.addMember`,`Add member`)})})]}),(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:e5,children:e(`common.name`,`Name`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.canPrint`,`Can print`)}),(0,G.jsx)(`th`,{className:e5,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsxs)(`tbody`,{children:[(at?.members||[]).map(t=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:t5,children:At.find(e=>e.id===t.user_id)?.username||`User ${t.user_id}`}),(0,G.jsx)(`td`,{className:t5,children:t.can_print?e(`common.yes`,`Yes`):e(`common.no`,`No`)}),(0,G.jsx)(`td`,{className:t5,children:(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:()=>Ot(t.user_id),disabled:gt.isPending,children:e(`common.remove`,`Remove`)})})]},t.id)),(at?.members||[]).length===0&&(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:3,className:`py-3 text-bambu-gray`,children:e(`finance.noMembers`,`No members assigned.`)})})]})]})})]})}),le&&(l||u)&&(0,G.jsx)(n5,{title:e(`finance.editCostCenter`,`Edit cost center`),size:`md`,onClose:()=>ue(!1),children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenterName`,`Name`)}),(0,G.jsx)(`input`,{type:`text`,value:he,onChange:e=>ge(e.target.value),placeholder:e(`finance.costCenterName`,`Name`),className:Q8,disabled:!l})]}),(0,G.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.budgetType`,`Budget type`)}),(0,G.jsxs)(`select`,{value:_e,onChange:e=>ve(e.target.value),className:Q8,disabled:!u,children:[(0,G.jsx)(`option`,{value:`monthly`,children:e(`finance.monthlyBudget`,`Monthly budget`)}),(0,G.jsx)(`option`,{value:`total`,children:e(`finance.totalBudget`,`Total budget`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:_e===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):e(`finance.totalBudget`,`Total budget`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:ye,onChange:e=>be(e.target.value),placeholder:`0.00`,className:Q8,disabled:!u})]})]}),(0,G.jsx)(Q,{className:`min-w-[180px]`,onClick:yt,disabled:ct.isPending||st.isPending||pe==null,children:ct.isPending||st.isPending?e(`common.saving`,`Saving...`):e(`common.save`,`Save`)})]})}),(0,G.jsxs)(`div`,{className:`grid gap-6 ${g&&o?`xl:grid-cols-2`:``}`,children:[g&&(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`finance.myCostCenters`,`My cost centers`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`finance.costCentersHint`,`Review budget limits and keep costs under control`)})]}),(0,G.jsxs)(Vd,{className:`space-y-3`,children:[rt&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`,`Loading...`)}),!rt&&(!nt||nt.length===0)&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noCostCenters`,`No cost centers found.`)}),!rt&&nt&&nt.length>0&&(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:e5,children:e(`common.name`,`Name`)}),Bt&&(0,G.jsx)(`th`,{className:e5,children:e(`finance.owner`,`Owner`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.balance`,`Account balance`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.budget`,`Budget`)}),Bt&&(0,G.jsx)(`th`,{className:e5,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsx)(`tbody`,{children:nt.map(t=>{let n=l||u,r=!t.is_private&&l;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:t5,children:t.name}),Bt&&(0,G.jsx)(`td`,{className:t5,children:t.is_private?Ht(t.owner_user_id):e(`finance.shared`,`Shared`)}),(0,G.jsxs)(`td`,{className:t5,children:[kt,t.total_balance.toFixed(2)]}),(0,G.jsx)(`td`,{className:t5,children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,G.jsx)(`span`,{children:Ut(t)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t.budget_mode===`monthly`?e(`finance.monthlyBudget`,`Monthly budget`):t.budget_mode===`total`?e(`finance.totalBudget`,`Total budget`):e(`finance.noBudget`,`No budget`)})]})}),Bt&&(0,G.jsx)(`td`,{className:t5,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>bt(t.id),disabled:!n,title:n?e(`common.edit`,`Edit`):e(`finance.cannotEditPrivateCostCenter`,`Private cost centers cannot be edited here`),className:`p-1.5 sm:p-2`,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),r&&(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:()=>Ke({id:t.id,name:t.name}),disabled:lt.isPending,title:e(`common.delete`,`Delete`),className:`text-red-400 hover:text-red-300 hover:bg-red-500/10 p-1.5 sm:p-2`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},t.id)})})]})})]})]}),o&&(0,G.jsxs)(zd,{children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`finance.recentTransactions`,`Recent transactions`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`finance.transactionsHint`,`Filter by type and cost center, then navigate pages`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto] xl:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_minmax(0,1fr)_auto] items-end`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.transactionType`,`Type`)}),(0,G.jsxs)(`select`,{value:ee,onChange:e=>te(e.target.value),className:Q8,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`finance.allTypes`)}),(0,G.jsx)(`option`,{value:`deposit`,children:e(`finance.deposit`)}),(0,G.jsx)(`option`,{value:`withdraw`,children:e(`finance.withdraw`)}),(0,G.jsx)(`option`,{value:`print_charge`,children:e(`finance.printCharge`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenters`,`Cost centers`)}),(0,G.jsxs)(`select`,{value:ne,onChange:e=>re(e.target.value===`all`?`all`:Number(e.target.value)),className:Q8,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`finance.allCostCenters`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),Pt&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`,`Loading...`)}),!Pt&&(!Ft||Ft.length===0)&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noTransactions`,`No transactions available.`)}),!Pt&&Ft.length>0&&Rt.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`finance.noTransactionsForFilter`,`No transactions match the selected filters.`)}),!Pt&&Rt.length>0&&(0,G.jsx)(`div`,{className:`overflow-auto rounded-lg border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:e5,children:e(`common.date`,`Date`)}),Bt&&(0,G.jsx)(`th`,{className:e5,children:e(`common.user`,`User`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.costCenter`,`Cost center`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.transactionType`,`Type`)}),(0,G.jsx)(`th`,{className:e5,children:e(`common.description`,`Description`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`th`,{className:e5,children:e(`finance.balanceAfter`,`Balance after`)}),Bt&&(0,G.jsx)(`th`,{className:e5,children:e(`common.actions`,`Actions`)})]})}),(0,G.jsx)(`tbody`,{children:Rt.map(n=>{let r=n.amount>=0,i=n.cost_center_id==null?null:(nt||[]).find(e=>e.id===n.cost_center_id),a=jt.get(n.user_id),o=n.transaction_type===`print_charge`?QGe(n.description??null):null,s=o?.isPartial??!1;return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 text-white`,children:[(0,G.jsx)(`td`,{className:t5,children:$Ge(n.created_at,t.language)}),Bt&&(0,G.jsx)(`td`,{className:t5,children:a||e(`finance.userWithId`,`User #{{id}}`,{id:n.user_id})}),(0,G.jsx)(`td`,{className:t5,children:i?.name||`-`}),(0,G.jsx)(`td`,{className:t5,children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,G.jsx)(`span`,{children:Vt(n.transaction_type)}),s&&(0,G.jsx)(`span`,{className:`rounded border border-yellow-500/40 bg-yellow-500/10 px-2 py-0.5 text-[11px] text-yellow-300`,children:o&&o.partialType?e(`finance.partialStatus.${o.partialType}`,o.partialType):e(`finance.partial`,`Partial`)})]})}),(0,G.jsx)(`td`,{className:t5,children:(o?.cleanedDescription??n.description)||`-`}),(0,G.jsxs)(`td`,{className:`${t5} ${r?`text-green-400`:`text-red-400`}`,children:[r?`+`:`-`,kt,Math.abs(n.amount).toFixed(2)]}),(0,G.jsx)(`td`,{className:t5,children:n.balance_after==null?`-`:`${n.balance_after<0?`-`:``}${kt}${Math.abs(n.balance_after).toFixed(2)}`}),Bt&&(0,G.jsx)(`td`,{className:t5,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>Ct(n),disabled:dt.isPending,children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`danger`,onClick:()=>Je(n.id),disabled:ut.isPending,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},n.id)})})]})}),!Pt&&Rt.length>0&&(0,G.jsx)(`div`,{className:`flex justify-end pt-2 lg:pt-0`,children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(0),disabled:B===0||Pt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.first`,`First`),children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(e=>Math.max(0,e-50)),disabled:B===0||Pt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.prev`,`Previous`),children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsx)(`span`,{className:`text-bambu-gray px-1 whitespace-nowrap`,children:e(`finance.pageNumberOf`,`Page {{page}} of {{total}}`,{page:zt,total:Lt})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(e=>e+50),disabled:Pt||zt>=Lt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.next`,`Next`),children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>V(Math.max(0,(Lt-1)*50)),disabled:Pt||zt>=Lt,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,"aria-label":e(`finance.last`,`Last`),children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})})]})]}),xe&&Ce!==null&&(0,G.jsx)(n5,{title:e(`finance.editTransaction`,`Edit Transaction`),onClose:()=>Se(!1),size:`md`,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.user`,`User`)}),(0,G.jsxs)(`select`,{className:Q8,value:Te||``,onChange:e=>Ee(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user...`)}),At.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenter`,`Cost center (optional)`)}),(0,G.jsxs)(`select`,{className:Q8,value:De||``,onChange:e=>Oe(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.noCostCenter`,`Personal (no cost center)`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,className:Q8,value:ke,onChange:e=>Ae(e.target.value),placeholder:e(`finance.amountExample`,`e.g., 10.50`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`textarea`,{className:`${Q8} resize-none`,rows:3,value:je,onChange:e=>Me(e.target.value),placeholder:e(`finance.manualAdjustmentExample`,`e.g., Manual adjustment`)})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-4`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Se(!1),children:e(`common.cancel`,`Cancel`)}),(0,G.jsx)(Q,{onClick:wt,disabled:dt.isPending,children:e(`common.save`,`Save`)})]})]})}),Ne&&(0,G.jsx)(n5,{title:e(`finance.addManualPrint`,`Add manual print`),onClose:()=>Pe(!1),size:`md`,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.user`,`User`)}),(0,G.jsxs)(`select`,{className:Q8,value:Fe||``,onChange:e=>Ie(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectUser`,`Select user...`)}),At.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.username},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.costCenter`,`Cost center`)}),(0,G.jsxs)(`select`,{className:Q8,value:Le||``,onChange:e=>Re(e.target.value?Number(e.target.value):null),children:[(0,G.jsx)(`option`,{value:``,children:e(`finance.selectCostCenter`,`Select cost center...`)}),(nt||[]).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`finance.amount`,`Amount`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,className:Q8,value:ze,onChange:e=>Be(e.target.value),placeholder:e(`finance.amountExample`,`e.g., 4.00`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.description`,`Description`)}),(0,G.jsx)(`input`,{type:`text`,value:Ve,onChange:e=>He(e.target.value),placeholder:e(`finance.descriptionOptional`,`Description (optional)`),className:Q8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:$8,children:e(`common.date`,`Date`)}),(0,G.jsx)(`input`,{type:`datetime-local`,value:Ue,onChange:e=>We(e.target.value),className:Q8})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-4`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>Pe(!1),children:e(`common.cancel`,`Cancel`)}),(0,G.jsx)(Q,{onClick:Tt,disabled:ft.isPending,children:ft.isPending?e(`common.saving`,`Saving...`):e(`finance.addManualPrint`,`Add manual print`)})]})]})}),Ge&&(0,G.jsx)(of,{title:e(`common.delete`,`Delete`),message:e(`finance.confirmDeleteCostCenter`,`Delete cost center "{{name}}"?`,{name:Ge.name}),confirmText:e(`common.delete`,`Delete`),variant:`danger`,isLoading:lt.isPending,onConfirm:xt,onCancel:()=>Ke(null)}),qe!=null&&(0,G.jsx)(of,{title:e(`finance.deleteTransaction`,`Delete transaction`),message:e(`finance.deleteTransactionConfirm`,`Delete this transaction? Balances will be recalculated automatically.`),confirmText:e(`common.delete`,`Delete`),variant:`danger`,isLoading:ut.isPending,onConfirm:St,onCancel:()=>Je(null)})]})]}):(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Ju,{className:`h-6 w-6 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`finance.title`,`Finance`)})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`p`,{className:`text-bambu-gray mt-2 max-w-2xl`,children:e(`finance.subtitle`,`Wallet, personal transactions, and cost centers`)})}),(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`py-8 text-center text-bambu-gray`,children:e(`finance.noAccess`,`You do not have permission to view finance data.`)})})]})}var r5={PLA:`GFL99`,"PLA-CF":`GFL98`,"PLA SILK":`GFL96`,"PLA HIGH SPEED":`GFL95`,PETG:`GFG99`,"PETG HF":`GFG96`,"PETG-CF":`GFG98`,PCTG:`GFG97`,ABS:`GFB99`,ASA:`GFB98`,PC:`GFC99`,PA:`GFN99`,"PA-CF":`GFN98`,NYLON:`GFN99`,TPU:`GFU99`,PVA:`GFS99`,HIPS:`GFS98`,PE:`GFP99`,PP:`GFP97`};function i5(e){let t=(e||``).toUpperCase().trim();return t&&(r5[t]||r5[t.replace(/[-\s]?CF$/,``)]||r5[t.replace(/\+$/,``)]||r5[t.split(/[-\s]/)[0]])||``}function a5(e){let t=e.replace(/@.+$/,``).trim();return t.startsWith(`# `)?t.slice(2).trim():t}var o5={local:0,orca_cloud:1,cloud:2,builtin:3};function tKe(e){let{localPresets:t,orcaProfiles:n,cloudSettings:r,builtinFilaments:i}=e,a=[],o=e=>e.trim().toLowerCase(),s=new Set,c=new Set,l=new Set,u=(e,t,...n)=>{let r=n.filter(e=>!!e);if(r.some(e=>s.has(e)))return!1;let i=`${e}|${o(t)}`;return c.has(i)?!1:(r.forEach(e=>s.add(e)),c.add(i),l.add(o(t)),!0)};for(let e of t??[]){let t=a5(e.name),n=e.filament_type||WH(t).material;u(`local`,t)&&a.push({id:`local_${e.id}`,name:t,source:`local`,filamentId:i5(n),filamentType:n||``})}for(let e of n??[]){let t=a5(e.name),n=WH(t).material;u(`orca_cloud`,t,e.setting_id)&&a.push({id:`orca_${e.setting_id}`,name:t,source:`orca_cloud`,filamentId:i5(n),filamentType:n})}for(let e of r??[]){let t=a5(e.name),n=e.setting_id.startsWith(`GFS`)?QH(e.setting_id):``;u(`cloud`,t,e.setting_id,n||void 0)&&a.push({id:e.setting_id,name:t,source:`cloud`,filamentId:n,filamentType:WH(t).material})}for(let e of i??[]){let t=e.filament_id.startsWith(`GF`)?`GFS${e.filament_id.slice(2)}`:e.filament_id;l.has(o(e.name))||u(`builtin`,e.name,e.filament_id,t)&&a.push({id:`builtin_${e.filament_id}`,name:e.name,source:`builtin`,filamentId:e.filament_id,filamentType:WH(e.name).material})}return a.sort((e,t)=>e.source===t.source?e.name.localeCompare(t.name):o5[e.source]-o5[t.source])}async function nKe(e,t){if(e.filamentId)return e.filamentId;if(e.source!==`cloud`||!t)return``;try{return(await t(e.id)).filament_id||``}catch{return``}}var s5=e=>(Math.trunc(parseFloat(e)*1e3)/1e3).toFixed(3),c5=`HS00`,l5=`HH00`,u5=e=>{let t=e.match(/^([A-Z]{2}\d{2})/);return t?t[1]:c5},rKe=e=>u5(e)===l5?`HF`:`S`,d5=e=>{for(let t of[`High Flow_`,`High Flow `,`Standard_`,`Standard `,`HF_`,`HF `,`S_`,`S `])if(e.startsWith(t))return e.slice(t.length);let t=e.indexOf(`_`);return t>0?e.slice(t+1):e};function f5({profile:e,onEdit:t,onCopy:n,selectionMode:r,isSelected:i,onToggleSelect:a,note:o}){let s=rKe(e.nozzle_id),c=e.nozzle_diameter;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r&&(0,G.jsx)(`button`,{onClick:a,className:`text-bambu-gray hover:text-white transition-colors p-1`,children:i?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green`}):(0,G.jsx)(bu,{className:`w-4 h-4`})}),(0,G.jsxs)(`button`,{onClick:()=>{r&&a?a():t()},className:`flex-1 text-left px-3 py-2 bg-bambu-dark rounded hover:bg-bambu-dark-tertiary transition-colors ${i?`ring-1 ring-bambu-green`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-green font-mono text-sm font-bold whitespace-nowrap`,children:s5(e.k_value)}),(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name||`Unnamed`}),o&&(0,G.jsx)(`span`,{title:`Has note`,children:(0,G.jsx)(Cu,{className:`w-3 h-3 text-yellow-500`})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:[s,` `,c]})]}),o&&(0,G.jsxs)(`div`,{className:`text-xs mt-0.5 truncate text-yellow-500/70`,title:o,children:[`Note: `,o.length>50?o.substring(0,50)+`...`:o]})]}),!r&&n&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),n()},className:`text-bambu-gray hover:text-white transition-colors p-1`,title:`Copy profile`,children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})}function p5({profile:e,printerId:t,nozzleDiameter:n,existingProfiles:r=[],builtinFilaments:i=[],filamentPresets:a=[],isDualNozzle:o=!1,supportsFlowType:s=!0,initialNote:c=``,initialNoteKey:l=null,onClose:u,onSave:d,onSaveNote:f,hasPermission:p}){let{t:m}=U(),{showToast:h}=qd(),[g,_]=(0,y.useState)(e?.name||``),[v,b]=(0,y.useState)(e?.k_value?s5(e.k_value):`0.020`),[x,S]=(0,y.useState)(e?.filament_id||``),[C,w]=(0,y.useState)(e?u5(e.nozzle_id):c5),[T,E]=(0,y.useState)(e?.nozzle_diameter||n),[D,O]=(0,y.useState)(e?[e.extruder_id]:o?[0,1]:[0]),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)({current:0,total:0}),[N,P]=(0,y.useState)(c),[F,I]=(0,y.useState)(``),{schedule:L}=rU(),R=y.useMemo(()=>e?.filament_id?i.find(t=>t.filament_id===e.filament_id)?.name||d5(r.find(t=>t.filament_id===e.filament_id)?.name||e.name||``)||e.filament_id:``,[e,r,i]),z=y.useMemo(()=>{let e=[[`local`,m(`kProfiles.modal.source.local`)],[`orca_cloud`,m(`kProfiles.modal.source.orcaCloud`)],[`cloud`,m(`kProfiles.modal.source.bambuCloud`)],[`builtin`,m(`kProfiles.modal.source.builtin`)]],t=F.trim().toLowerCase(),n=t?a.filter(e=>e.name.toLowerCase().includes(t)):a;return e.map(([e,t])=>({source:e,label:t,items:n.filter(t=>t.source===e)})).filter(e=>e.items.length>0)},[a,F,m]),B=q({mutationFn:e=>(console.log(`[KProfile] Calling API...`),Z.setKProfile(t,e)),onSuccess:(t,n)=>{if(console.log(`[KProfile] Save success:`,t),h(m(`kProfiles.toast.profileSaved`)),f&&N!==c){let t;t=N===``&&l?l:e&&e.slot_id>0?e.setting_id||`slot_${e.slot_id}_${e.filament_id}_${e.extruder_id}`:`name_${g}_${n.filament_id}`,f(t,N)}A(!0),L(()=>{A(!1),d()},2500)},onError:e=>{console.error(`[KProfile] Save error:`,e),h(e.message,`error`),A(!1)}}),V=q({mutationFn:e=>(console.log(`[KProfile] Deleting profile...`),Z.deleteKProfile(t,e)),onSuccess:e=>{console.log(`[KProfile] Delete success:`,e),h(m(`kProfiles.toast.profileDeleted`)),A(!0),L(()=>{A(!1),u()},4e3)},onError:e=>{console.error(`[KProfile] Delete error:`,e),h(e.message,`error`),A(!1)}}),[ee,te]=(0,y.useState)(!1),ne=()=>{e&&V.mutate({slot_id:e.slot_id,extruder_id:e.extruder_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,filament_id:e.filament_id,setting_id:e.setting_id})};return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:[(0,G.jsxs)(zd,{className:`w-full max-w-md relative`,children:[k&&(0,G.jsxs)(`div`,{className:`absolute inset-0 bg-bambu-dark-secondary/90 flex flex-col items-center justify-center z-10 rounded-lg`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin mb-3`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:j.total>1?m(`kProfiles.modal.savingExtruder`,{current:j.current,total:j.total}):m(`kProfiles.modal.syncing`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-1`,children:m(`kProfiles.modal.pleaseWait`)})]}),(0,G.jsxs)(Vd,{className:`p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:m(e?`kProfiles.modal.editTitle`:`kProfiles.modal.addTitle`)}),(0,G.jsx)(`button`,{onClick:u,className:`text-bambu-gray hover:text-white transition-colors`,disabled:k,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:async n=>{if(n.preventDefault(),o&&!e&&D.length===0){h(m(`kProfiles.toast.selectAtLeastOneExtruder`),`error`);return}let r=parseFloat(v).toFixed(6),i=`${C}-${T}`,s=e&&e.nozzle_id||i,c=e?e.nozzle_diameter:T,l=e?.filament_id||``;if(!e){let e=a.find(e=>e.id===x);if(!e){h(m(`kProfiles.toast.selectFilament`),`error`);return}if(l=await nKe(e,Z.getCloudSettingDetail),!l){h(m(`kProfiles.toast.filamentNotResolvable`,{name:e.name}),`error`);return}}if(e||D.length===1){let t={name:g,k_value:r,filament_id:l,nozzle_id:s,nozzle_diameter:c,extruder_id:e?e.extruder_id:D[0],setting_id:e?.setting_id,slot_id:e?.slot_id??0};console.log(`[KProfile] Saving profile:`,t),B.mutate(t);return}A(!0),M({current:1,total:D.length});let u=D.map(e=>({name:g,k_value:r,filament_id:l,nozzle_id:i,nozzle_diameter:T,extruder_id:e,setting_id:void 0,slot_id:0}));console.log(`[KProfile] Saving ${u.length} profiles in batch:`,u);try{await Z.setKProfilesBatch(t,u),h(m(`kProfiles.toast.profilesSaved`,{count:D.length})),f&&N&&f(`name_${g}_${l}`,N)}catch(e){console.error(`[KProfile] Failed to save batch:`,e),h(m(`kProfiles.toast.failedToSaveBatch`),`error`),A(!1),M({current:0,total:0});return}M({current:D.length,total:D.length}),L(()=>{A(!1),M({current:0,total:0}),d()},3e3)},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.profileName`)}),(0,G.jsx)(`input`,{type:`text`,value:g,onChange:e=>_(e.target.value),disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,placeholder:m(`kProfiles.modal.profileNamePlaceholder`),required:!e})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.kValue`)}),(0,G.jsx)(`input`,{type:`text`,inputMode:`decimal`,value:v,onChange:e=>{let t=e.target.value;(t===``||/^\d*\.?\d*$/.test(t))&&b(t)},onBlur:e=>{let t=parseFloat(e.target.value);isNaN(t)||b((Math.trunc(t*1e3)/1e3).toFixed(3))},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none font-mono`,placeholder:m(`kProfiles.modal.kValuePlaceholder`),required:!0}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:m(`kProfiles.modal.kValueHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.filament`)}),e?(0,G.jsx)(`div`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white opacity-60`,children:R||e.filament_id}):(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`relative border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:F,onChange:e=>I(e.target.value),placeholder:m(`kProfiles.modal.searchFilaments`),className:`w-full pl-10 pr-3 py-2 bg-bambu-dark text-white placeholder-bambu-gray focus:outline-none`})]}),(0,G.jsx)(`div`,{className:`max-h-56 overflow-y-auto bg-bambu-dark`,children:z.length===0?(0,G.jsx)(`p`,{className:`px-3 py-3 text-xs text-bambu-gray`,children:a.length===0?m(`kProfiles.modal.noFilamentsHelp`):m(`kProfiles.modal.noFilamentMatches`)}):z.map(e=>(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-2 px-3 py-1.5 bg-bambu-dark-secondary border-y border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs font-bold uppercase tracking-wider text-bambu-green`,children:e.label}),(0,G.jsx)(`span`,{className:`text-[10px] text-bambu-gray`,children:e.items.length})]}),e.items.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{S(e.id),g||_(`${C===l5?`HF`:`S`} ${e.name}`)},className:`w-full text-left px-3 py-1.5 text-sm transition-colors ${x===e.id?`bg-bambu-green/20 text-white`:`text-white hover:bg-bambu-dark-tertiary`}`,children:e.name},e.id))]},e.source))})]})]}),(0,G.jsxs)(`div`,{className:s?`grid grid-cols-2 gap-4`:``,children:[(0,G.jsxs)(`div`,{className:s?``:`hidden`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.flowType`)}),(0,G.jsxs)(`select`,{value:C,onChange:t=>{let n=t.target.value;if(w(n),!e&&x&&!g){let e=a.find(e=>e.id===x);e&&_(`${n===l5?`HF`:`S`} ${e.name}`)}},disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,children:[(0,G.jsx)(`option`,{value:l5,children:m(`kProfiles.modal.highFlow`)}),(0,G.jsx)(`option`,{value:c5,children:m(`kProfiles.modal.standard`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.nozzleSize`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>E(e.target.value),disabled:!!e,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none ${e?`opacity-60 cursor-not-allowed`:``}`,children:[(0,G.jsx)(`option`,{value:`0.2`,children:`0.2mm`}),(0,G.jsx)(`option`,{value:`0.4`,children:`0.4mm`}),(0,G.jsx)(`option`,{value:`0.6`,children:`0.6mm`}),(0,G.jsx)(`option`,{value:`0.8`,children:`0.8mm`})]})]})]}),o&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(e?`kProfiles.modal.extruder`:`kProfiles.modal.extruders`)}),e?(0,G.jsx)(`div`,{className:`px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white opacity-60`,children:e.extruder_id===1?m(`kProfiles.modal.left`):m(`kProfiles.modal.right`)}):(0,G.jsxs)(`div`,{className:`flex gap-4`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D.includes(1),onChange:e=>{e.target.checked?O([...D,1]):O(D.filter(e=>e!==1))},className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0 accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:m(`kProfiles.modal.left`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:D.includes(0),onChange:e=>{e.target.checked?O([...D,0]):O(D.filter(e=>e!==0))},className:`w-4 h-4 rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green focus:ring-offset-0 accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:m(`kProfiles.modal.right`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:m(`kProfiles.modal.notes`)}),(0,G.jsx)(`textarea`,{value:N,onChange:e=>P(e.target.value),placeholder:m(`kProfiles.modal.notesPlaceholder`),rows:2,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none resize-none`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:m(`kProfiles.modal.notesHelp`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 pt-4`,children:[e&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>te(!0),disabled:V.isPending||k||!p(`kprofiles:delete`),title:p(`kprofiles:delete`)?void 0:m(`kProfiles.permission.noDelete`),className:`text-red-500 hover:bg-red-500/10`,children:V.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:u,disabled:k,className:`flex-1`,children:m(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:B.isPending||k||!p(e?`kprofiles:update`:`kprofiles:create`),title:p(e?`kprofiles:update`:`kprofiles:create`)?void 0:m(e?`kProfiles.permission.noUpdate`:`kProfiles.permission.noCreate`),className:`flex-1`,children:[B.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Tc,{className:`w-4 h-4`}),m(`common.save`)]})]})]})]})]}),ee&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-[60]`,children:(0,G.jsx)(zd,{className:`w-full max-w-sm`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(Pu,{className:`w-5 h-5 text-red-500`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:m(`kProfiles.deleteConfirm.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:m(`kProfiles.deleteConfirm.cannotUndo`)})]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:m(`kProfiles.deleteConfirm.message`,{name:e?.name})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>te(!1),className:`flex-1`,children:m(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>{te(!1),ne()},disabled:V.isPending,className:`flex-1 bg-red-500 hover:bg-red-600 text-white`,children:[V.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),m(`common.delete`)]})]})]})})})]})}var m5={NOZZLE_DIAMETER:`bambusy_kprofiles_nozzle`,SORT_OPTION:`bambusy_kprofiles_sort`};function iKe(){let{t:e}=U(),{showToast:t}=qd(),{hasPermission:n}=Nd(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(()=>localStorage.getItem(m5.NOZZLE_DIAMETER)||`0.4`),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(`all`),[b,x]=(0,y.useState)(()=>localStorage.getItem(m5.SORT_OPTION)||`name`),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(new Set),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),A=(0,y.useCallback)(e=>`${e.slot_id}_${e.extruder_id}`,[]);(0,y.useEffect)(()=>{localStorage.setItem(m5.NOZZLE_DIAMETER,a)},[a]),(0,y.useEffect)(()=>{localStorage.setItem(m5.SORT_OPTION,b)},[b]);let{data:j,isLoading:M}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:N,isLoading:P,isFetching:F,error:I,refetch:L}=K({queryKey:[`kprofiles`,r,a],queryFn:async()=>{console.log(`[KProfiles] Fetching profiles for printer`,r,`nozzle`,a);let e=await Z.getKProfiles(r,a);return console.log(`[KProfiles] Received profiles:`,e?.profiles?.length||0,`profiles`),e},enabled:!!r,retry:!1,staleTime:0,gcTime:0,refetchOnMount:`always`}),{data:R}=K({queryKey:[`builtinFilaments`],queryFn:()=>Z.getBuiltinFilaments(),staleTime:3e5}),{data:z}=K({queryKey:[`filamentIdMap`],queryFn:()=>Z.getFilamentIdMap(),staleTime:3e5}),{data:B}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets(),retry:!1}),{data:V}=K({queryKey:[`orcaCloudProfilesForKProfiles`],queryFn:()=>Z.orcaCloudListProfiles(),retry:!1}),{data:ee}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),retry:!1}),{data:te,refetch:ne}=K({queryKey:[`kprofile-notes`,r],queryFn:()=>Z.getKProfileNotes(r),enabled:!!r,staleTime:3e4}),re=I?.message?.includes(`not connected`);(0,y.useEffect)(()=>{if(!r&&j&&j.length>0){let e=j.find(e=>e.is_active);e&&i(e.id)}},[r,j]),(0,y.useEffect)(()=>{if(r){let e=setTimeout(()=>{L()},150);return()=>clearTimeout(e)}},[r,a]);let ie=j?.filter(e=>e.is_active)||[],ae=y.useMemo(()=>{let e=new Map;if(R)for(let t of R)e.set(t.filament_id,t.name);if(z)for(let[t,n]of Object.entries(z))e.has(t)||e.set(t,n);return e},[R,z]),oe=y.useMemo(()=>Array.from(ae.entries()).map(([e,t])=>({filament_id:e,name:t})),[ae]),se=y.useMemo(()=>tKe({localPresets:B?.filament,orcaProfiles:V?.filament,cloudSettings:ee?.filament,builtinFilaments:R}),[B?.filament,V?.filament,ee?.filament,R]),H=y.useCallback(e=>ae.get(e.filament_id)||d5(e.name),[ae]),ce=y.useMemo(()=>N?.profiles?N.profiles.filter(e=>{let t=p.toLowerCase(),n=!t||e.name.toLowerCase().includes(t)||e.filament_id.toLowerCase().includes(t),r=h===`all`||h===`left`&&e.extruder_id===1||h===`right`&&e.extruder_id===0,i=_===`all`||_===`hf`&&e.nozzle_id.startsWith(`HH`)||_===`s`&&e.nozzle_id.startsWith(`HS`);return n&&r&&i}).sort((e,t)=>{switch(b){case`k_value`:return parseFloat(e.k_value)-parseFloat(t.k_value);case`filament`:return H(e).localeCompare(H(t));default:return e.name.localeCompare(t.name)}}):[],[N?.profiles,p,h,_,b,H]),le=j?.find(e=>e.id===r),ue=le?.nozzle_count===2,de=le?.supports_nozzle_flow_type??!0;(0,y.useEffect)(()=>{de||v(`all`)},[de]),(0,y.useEffect)(()=>{let e=e=>{e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||s||l||d||(e.key===`r`||e.key===`R`?(e.preventDefault(),L()):e.key===`n`||e.key===`N`?(e.preventDefault(),u(!0)):e.key===`Escape`&&S&&(e.preventDefault(),C(!1),T(new Set)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,l,d,S,L]);let fe=(0,y.useCallback)(()=>{if(!N?.profiles||N.profiles.length===0){t(e(`kProfiles.toast.noProfilesToExport`),`error`);return}let n={version:1,exported_at:new Date().toISOString(),printer:le?.name||`Unknown`,nozzle_diameter:a,profiles:N.profiles.map(e=>({name:e.name,k_value:e.k_value,filament_id:e.filament_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,extruder_id:e.extruder_id}))},r=new Blob([JSON.stringify(n,null,2)],{type:`application/json`}),i=URL.createObjectURL(r),o=document.createElement(`a`);o.href=i,o.download=`kprofiles_${le?.name||`printer`}_${a}mm_${new Date().toISOString().split(`T`)[0]}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(i),t(e(`kProfiles.toast.exportedProfiles`,{count:N.profiles.length}))},[N?.profiles,le,a,t,e]),pe=(0,y.useCallback)(()=>{let n=document.createElement(`input`);n.type=`file`,n.accept=`.json`,n.onchange=async n=>{let i=n.target.files?.[0];if(i)try{let n=await i.text(),o=JSON.parse(n);if(!o.profiles||!Array.isArray(o.profiles)){t(e(`kProfiles.toast.invalidFileFormat`),`error`);return}let s=0;for(let e of o.profiles)if(!(!e.name||!e.k_value||!e.filament_id))try{await Z.setKProfile(r,{name:e.name,k_value:parseFloat(e.k_value).toFixed(6),filament_id:e.filament_id,nozzle_id:e.nozzle_id||`${c5}-${a}`,nozzle_diameter:e.nozzle_diameter||a,extruder_id:e.extruder_id??0,slot_id:0}),s++,await new Promise(e=>setTimeout(e,500))}catch(t){console.error(`Failed to import profile:`,e.name,t)}t(e(`kProfiles.toast.importedProfiles`,{count:s,total:o.profiles.length})),L()}catch(n){console.error(`Import error:`,n),t(e(`kProfiles.toast.failedToParseImport`),`error`)}},n.click()},[r,a,t,L,e]),me=(0,y.useCallback)(e=>{T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),he=(0,y.useCallback)(()=>{T(new Set(ce.map(e=>A(e))))},[ce,A]),ge=(0,y.useCallback)(()=>{w.size!==0&&D(!0)},[w.size]),_e=(0,y.useCallback)(async()=>{let n=ce.filter(e=>w.has(A(e)));k(!0);let i=0;for(let e of n)try{await Z.deleteKProfile(r,{slot_id:e.slot_id,extruder_id:e.extruder_id,nozzle_id:e.nozzle_id,nozzle_diameter:e.nozzle_diameter,filament_id:e.filament_id,setting_id:e.setting_id}),i++,await new Promise(e=>setTimeout(e,300))}catch(t){console.error(`Failed to delete profile:`,e.name,t)}t(e(`kProfiles.toast.profilesDeleted`,{count:i})),k(!1),D(!1),C(!1),T(new Set),L()},[r,w,ce,t,L,A,e]),ve=(0,y.useCallback)(e=>{let t=[];return e.setting_id&&t.push(e.setting_id),t.push(`slot_${e.slot_id}_${e.filament_id}_${e.extruder_id}`),t.push(`name_${e.name}_${e.filament_id}`),t},[]),ye=(0,y.useCallback)(async(n,i)=>{if(r)try{await Z.setKProfileNote(r,n,i),ne()}catch(n){console.error(`Failed to save note:`,n),t(e(`kProfiles.toast.failedToSaveNote`),`error`)}},[r,ne,t,e]),be=(0,y.useCallback)(e=>{if(!te?.notes)return{note:``,key:null};let t=ve(e);for(let e of t)if(te.notes[e])return{note:te.notes[e],key:e};return{note:``,key:null}},[te,ve]),xe=(0,y.useCallback)(e=>be(e).note,[be]);return M?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):!j||j.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(ys,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noPrintersConfigured`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.addPrinterInSettings`)})]})}):ie.length===0?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Rl,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noActivePrinters`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.enablePrinterConnection`)})]})}):(0,G.jsxs)(G.Fragment,{children:[F&&!P&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex flex-col items-center justify-center z-40`,children:[(0,G.jsx)(Y,{className:`w-10 h-10 text-bambu-green animate-spin mb-3`}),(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`kProfiles.loadingProfiles`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-48`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`kProfiles.printer`)}),(0,G.jsx)(`select`,{value:r||``,onChange:e=>i(parseInt(e.target.value)),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:ie.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,G.jsxs)(`div`,{className:`w-32`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:e(`kProfiles.nozzle`)}),(0,G.jsxs)(`select`,{value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`0.2`,children:`0.2mm`}),(0,G.jsx)(`option`,{value:`0.4`,children:`0.4mm`}),(0,G.jsx)(`option`,{value:`0.6`,children:`0.6mm`}),(0,G.jsx)(`option`,{value:`0.8`,children:`0.8mm`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>L(),disabled:F||!n(`kprofiles:read`),title:n(`kprofiles:read`)?void 0:e(`kProfiles.permission.noRead`),children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${F?`animate-spin`:``}`}),e(`kProfiles.refresh`)]}),(0,G.jsxs)(Q,{onClick:()=>u(!0),disabled:!n(`kprofiles:create`),title:n(`kprofiles:create`)?void 0:e(`kProfiles.permission.noCreate`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`kProfiles.addProfile`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-4 mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-48 relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(e.target.value),placeholder:e(`kProfiles.searchPlaceholder`),className:`w-full pl-10 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`})]}),ue&&(0,G.jsx)(`div`,{className:`w-36`,children:(0,G.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`kProfiles.allExtruders`)}),(0,G.jsx)(`option`,{value:`left`,children:e(`kProfiles.leftOnly`)}),(0,G.jsx)(`option`,{value:`right`,children:e(`kProfiles.rightOnly`)})]})}),de&&(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsxs)(`select`,{value:_,onChange:e=>v(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`kProfiles.allFlow`)}),(0,G.jsx)(`option`,{value:`hf`,children:e(`kProfiles.hfOnly`)}),(0,G.jsx)(`option`,{value:`s`,children:e(`kProfiles.sOnly`)})]})}),(0,G.jsx)(`div`,{className:`w-32`,children:(0,G.jsxs)(`select`,{value:b,onChange:e=>x(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`name`,children:e(`kProfiles.sortName`)}),(0,G.jsx)(`option`,{value:`k_value`,children:e(`kProfiles.sortKValue`)}),(0,G.jsx)(`option`,{value:`filament`,children:e(`kProfiles.sortFilament`)})]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-6`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:fe,disabled:!N?.profiles?.length||!n(`kprofiles:read`),title:n(`kprofiles:read`)?void 0:e(`kProfiles.permission.noExport`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),e(`kProfiles.export`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:pe,disabled:!n(`kprofiles:create`),title:n(`kprofiles:create`)?void 0:e(`kProfiles.permission.noImport`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),e(`kProfiles.import`)]}),(0,G.jsx)(`div`,{className:`flex-1`}),S?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:he,children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),e(`kProfiles.selectAll`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:ge,disabled:w.size===0||!n(`kprofiles:delete`),className:`text-red-500 hover:bg-red-500/10`,title:n(`kprofiles:delete`)?void 0:e(`kProfiles.permission.noDelete`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`kProfiles.delete`),` (`,w.size,`)`]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>{C(!1),T(new Set)},children:[(0,G.jsx)(nd,{className:`w-4 h-4`}),e(`common.cancel`)]})]}):(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!0),disabled:!ce.length||!n(`kprofiles:delete`),title:n(`kprofiles:delete`)?void 0:e(`kProfiles.permission.noDelete`),children:[(0,G.jsx)(vu,{className:`w-4 h-4`}),e(`kProfiles.select`)]})]}),P?(0,G.jsx)(`div`,{className:`flex justify-center py-12`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):re?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Zu,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.printerOffline`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`kProfiles.printerOfflineDesc`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>L(),children:[(0,G.jsx)(Hl,{className:`w-4 h-4`}),e(`common.refresh`)]})]})}):ce.length>0?ue?(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-2 px-1`,children:e(`kProfiles.leftExtruder`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.filter(e=>e.extruder_id===1).map(e=>(0,G.jsx)(f5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray mb-2 px-1`,children:e(`kProfiles.rightExtruder`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.filter(e=>e.extruder_id===0).map(e=>(0,G.jsx)(f5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))})]})]}):(0,G.jsx)(`div`,{className:`space-y-1`,children:ce.map(e=>(0,G.jsx)(f5,{profile:e,onEdit:()=>c(e),onCopy:()=>f(e),selectionMode:S,isSelected:w.has(A(e)),onToggleSelect:()=>me(A(e)),note:xe(e)},A(e)))}):p||h!==`all`||_!==`all`?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noMatchingProfiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`kProfiles.noMatchingProfilesDesc`)})]})}):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-12 text-center`,children:[(0,G.jsx)(Tc,{className:`w-12 h-12 text-bambu-gray mx-auto mb-4`}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2`,children:e(`kProfiles.noKProfiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`kProfiles.noKProfilesDesc`,{diameter:a})}),(0,G.jsxs)(Q,{onClick:()=>u(!0),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),e(`kProfiles.createFirstProfile`)]})]})}),s&&r&&(()=>{let{note:e,key:t}=be(s);return(0,G.jsx)(p5,{profile:s,printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,initialNote:e,initialNoteKey:t,onSaveNote:ye,hasPermission:n,onClose:()=>{console.log(`[KProfiles] Edit modal onClose - refetching profiles...`),c(null),L()},onSave:()=>{c(null),L()}})})(),l&&r&&(0,G.jsx)(p5,{printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,onSaveNote:ye,hasPermission:n,onClose:()=>{u(!1),L()},onSave:()=>{u(!1),L()}}),d&&r&&(0,G.jsx)(p5,{printerId:r,nozzleDiameter:a,existingProfiles:N?.profiles,builtinFilaments:oe,filamentPresets:se,isDualNozzle:ue,supportsFlowType:de,onSaveNote:ye,hasPermission:n,profile:{...d,slot_id:0,name:`${d.name} (Copy)`},onClose:()=>{f(null),L()},onSave:()=>{f(null),L()}}),E&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-sm`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(Pu,{className:`w-5 h-5 text-red-500`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:e(`kProfiles.bulkDelete.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`kProfiles.bulkDelete.cannotUndo`)})]})]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:e(`kProfiles.bulkDelete.message`,{count:w.size})}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>D(!1),disabled:O,className:`flex-1`,children:e(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:_e,disabled:O,className:`flex-1 bg-red-500 hover:bg-red-600 text-white`,children:[O?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`common.delete`)]})]})]})})})]})}var h5=[`PLA`,`PETG`,`PCTG`,`ABS`,`ASA`,`TPU`,`PC`,`PA`,`PVA`,`HIPS`,`PP`,`PET`,`NYLON`],aKe={PLA:`E8E8E8`,PETG:`4A90D9`,ABS:`E67E22`,ASA:`D35400`,TPU:`9B59B6`,PC:`BDC3C7`,PA:`2ECC71`,NYLON:`2ECC71`,PVA:`F1C40F`,HIPS:`95A5A6`,PP:`ECF0F1`,PET:`3498DB`};function oKe(e){let t=e.toUpperCase();for(let e of h5)if(RegExp(`\\b${e}\\b`).test(t))return e;return null}function sKe(e){let t=e.replace(/@.+$/,``).trim(),n=t.toUpperCase();for(let e of h5){let r=n.indexOf(e);if(r>0){let e=t.slice(0,r).trim();if(e&&e.length>1)return e}}return null}function g5({preset:e,onDelete:t,onExpand:n,isExpanded:r}){let{t:i}=U(),{hasPermission:a}=Nd(),o=e.filament_type||oKe(e.name),s=e.filament_vendor||sKe(e.name),c=null,l=!1;if(e.default_filament_colour)try{let t=JSON.parse(e.default_filament_colour),n=Array.isArray(t)?t[0]:t;typeof n==`string`&&/^#?[0-9a-fA-F]{6,8}$/.test(n.replace(`#`,``))&&(c=n.replace(`#`,``).slice(0,6),l=!0)}catch{let t=e.default_filament_colour;/^#?[0-9a-fA-F]{6,8}$/.test(t.replace(`#`,``))&&(c=t.replace(`#`,``).slice(0,6),l=!0)}return!c&&o&&(c=aKe[o.toUpperCase()]||null),(0,G.jsx)(zd,{className:`bg-bambu-dark border-bambu-dark-tertiary hover:border-bambu-dark-tertiary/80 transition-colors`,children:(0,G.jsxs)(Vd,{className:`p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.preset_type===`filament`&&(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full border border-black/20 flex-shrink-0 ${!l&&!c?`opacity-25`:l?``:`opacity-50`}`,style:{backgroundColor:c?`#${c}`:`#666`}}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[o&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-bambu-green/20 text-bambu-green`,children:o}),s&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:s}),(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:i(`profiles.localProfiles.badge`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-shrink-0`,children:[a(`settings:update`)&&(0,G.jsx)(`button`,{onClick:()=>t(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,title:i(`profiles.localProfiles.delete`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:()=>n(r?null:e.id),className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:r?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})})]})]}),r&&(0,G.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-bambu-dark-tertiary text-xs space-y-1.5`,children:[o&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.filamentType`)}),(0,G.jsx)(`span`,{className:`text-white`,children:o})]}),s&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.vendor`)}),(0,G.jsx)(`span`,{className:`text-white`,children:s})]}),e.nozzle_temp_min!=null&&e.nozzle_temp_max!=null&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.nozzleTemp`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[e.nozzle_temp_min,`–`,e.nozzle_temp_max,`°C`]})]}),e.filament_cost&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.cost`)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.filament_cost})]}),e.filament_density&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.density`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[e.filament_density,` g/cm³`]})]}),e.pressure_advance&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.pressureAdvance`)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.pressure_advance})]}),e.compatible_printers&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.compatiblePrinters`)}),(0,G.jsx)(`span`,{className:`text-white truncate ml-2`,children:(()=>{try{return JSON.parse(e.compatible_printers).join(`, `)}catch{return e.compatible_printers}})()})]}),e.inherits&&e.inherits!==e.name&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.inheritsFrom`)}),(0,G.jsx)(`span`,{className:`text-white truncate ml-2`,children:e.inherits})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:i(`profiles.localProfiles.source`)}),(0,G.jsx)(`span`,{className:`text-white capitalize`,children:e.source})]})]})]})})}function cKe(){let{t:e}=U(),{hasPermission:t}=Nd(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null),{data:f,isLoading:p}=K({queryKey:[`localPresets`],queryFn:()=>Z.getLocalPresets()}),m=q({mutationFn:async e=>{let t=[];for(let n of Array.from(e)){let e=new FormData;e.append(`file`,n),t.push(await Z.importLocalPresets(e))}return t},onSuccess:t=>{n.invalidateQueries({queryKey:[`localPresets`]}),n.invalidateQueries({queryKey:[`slicerPresets`]});let i=0,a=0,o=0;for(let e of t)i+=e.imported,a+=e.skipped,o+=e.errors.length;i>0&&r(e(`profiles.localProfiles.toast.importSuccess`,{count:i})),a>0&&r(e(`profiles.localProfiles.toast.importSkipped`,{count:a}),`warning`),o>0&&r(e(`profiles.localProfiles.toast.importError`,{count:o}),`error`)},onError:e=>{r(e.message,`error`)}}),h=q({mutationFn:e=>Z.deleteLocalPreset(e),onSuccess:(t,i)=>{n.setQueryData([`localPresets`],e=>e&&{filament:e.filament.filter(e=>e.id!==i),printer:e.printer.filter(e=>e.id!==i),process:e.process.filter(e=>e.id!==i)}),n.invalidateQueries({queryKey:[`localPresets`]}),n.invalidateQueries({queryKey:[`slicerPresets`]}),d(null),r(e(`profiles.localProfiles.toast.deleted`))}}),g=(0,y.useCallback)(e=>{!e||e.length===0||m.mutate(e)},[m]),_=(0,y.useCallback)(e=>{e.preventDefault(),l(!1),g(e.dataTransfer.files)},[g]),v=(0,y.useCallback)(e=>{if(!i)return e;let t=i.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.filament_type?.toLowerCase().includes(t)||e.filament_vendor?.toLowerCase().includes(t))},[i]),b=(0,y.useMemo)(()=>v(f?.filament||[]),[f?.filament,v]),x=(0,y.useMemo)(()=>v(f?.printer||[]),[f?.printer,v]),S=(0,y.useMemo)(()=>v(f?.process||[]),[f?.process,v]),C=b.length+x.length+S.length,w=(f?.filament?.length??0)+(f?.printer?.length??0)+(f?.process?.length??0)>0;return p?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`space-y-6`,children:[t(`settings:update`)&&(0,G.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),l(!0)},onDragLeave:()=>l(!1),onDrop:_,className:`relative border-2 border-dashed rounded-lg p-6 text-center transition-colors ${c?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:[(0,G.jsx)(`input`,{type:`file`,accept:`.json,.zip,.orca_filament,.bbscfg,.bbsflmt`,multiple:!0,className:`absolute inset-0 w-full h-full opacity-0 cursor-pointer`,onChange:e=>g(e.target.files)}),m.isPending?(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 text-bambu-green animate-spin`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.importing`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Vu,{className:`w-8 h-8 text-bambu-gray mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:e(`profiles.localProfiles.import`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e(`profiles.localProfiles.importDesc`)})]})]}),w&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),placeholder:e(`profiles.localProfiles.search`),className:`w-full pl-9 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})]}),!w&&!p&&(0,G.jsxs)(`div`,{className:`text-center py-12`,children:[(0,G.jsx)(Pc,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.noPresets`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/60 mt-1`,children:e(`profiles.localProfiles.importDesc`)})]}),w&&C===0&&!p&&(0,G.jsxs)(`div`,{className:`text-center py-12`,children:[(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.localProfiles.noSearchResults`)})]}),C>0&&(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:[b.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Zs,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.filament`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,b.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:b.map(e=>(0,G.jsx)(g5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]}),S.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.process`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,S.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:S.map(e=>(0,G.jsx)(g5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]}),x.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(nu,{className:`w-4 h-4 text-orange-600 dark:text-orange-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:e(`profiles.localProfiles.printer`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,x.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>(0,G.jsx)(g5,{preset:e,onDelete:e=>d(e),onExpand:s,isExpanded:o===e.id},e.id))})]})]}),u!==null&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-6 max-w-sm mx-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-red-600 dark:text-red-400`}),(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:e(`profiles.localProfiles.deleteConfirmTitle`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`profiles.localProfiles.deleteConfirm`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>d(null),children:e(`profiles.localProfiles.cancel`)}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>h.mutate(u),disabled:h.isPending,children:[h.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),e(`profiles.localProfiles.delete`)]})]})]})})]})}function lKe(e){let t=e.match(/@?\s*(?:BBL\s+)?(?:Bambu\s+Lab\s+)?([XPAH][1-9][A-Z]?(?:\s*(?:Carbon|mini))?|H2D)/i),n=e.match(/(\d+\.?\d*)\s*(?:mm\s*)?nozzle|nozzle\s*(\d+\.?\d*)/i),r=e.match(/(\d+\.?\d*)mm\s*(?:Standard|Fine|Extra Fine|Draft|Quality)?/i),i=e.match(/\b(PLA|PETG|ABS|ASA|TPU|PC|PA|PVA|HIPS|PP|PET(?:-?CF)?|PA(?:-?CF)?|PLA(?:-?CF)?)\b/i);return{printer:t?t[1].trim():null,nozzle:n?(n[1]||n[2])+`mm`:null,layerHeight:r?r[1]+`mm`:null,filamentType:i?i[1].toUpperCase():null}}function uKe({settings:e,lastSyncTime:t,onRefresh:n,isRefreshing:r,printers:i,t:a}){let[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(`all`),[u,d]=(0,y.useState)(`all`),[f,p]=(0,y.useState)(`all`),[m,h]=(0,y.useState)(`all`),[g,_]=(0,y.useState)(`all`),[v,b]=(0,y.useState)(null),x=(0,y.useMemo)(()=>[...e.filament.map(e=>({...e,type:`filament`})),...e.printer.map(e=>({...e,type:`printer`})),...e.process.map(e=>({...e,type:`process`}))].map(e=>({...e,meta:lKe(e.name)})),[e]),S=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=new Set;return x.forEach(r=>{r.meta.nozzle&&e.add(r.meta.nozzle),r.meta.filamentType&&t.add(r.meta.filamentType),r.meta.layerHeight&&n.add(r.meta.layerHeight)}),{printers:i.map(e=>({id:e.id.toString(),name:e.name})),nozzles:Array.from(e).sort((e,t)=>parseFloat(e)-parseFloat(t)),filaments:Array.from(t).sort(),layerHeights:Array.from(n).sort((e,t)=>parseFloat(e)-parseFloat(t))}},[x,i]),C=(0,y.useMemo)(()=>u===`all`?null:i.find(e=>e.id.toString()===u)?.model||null,[u,i]),w=(0,y.useMemo)(()=>x.filter(e=>c===`all`||e.type===c).filter(e=>{if(u===`all`||!C)return!0;let t=e.meta.printer?.toLowerCase()||``,n=C.toLowerCase();return t.includes(n)||n.includes(t)}).filter(e=>f===`all`||e.meta.nozzle===f).filter(e=>m===`all`||e.meta.filamentType===m).filter(e=>g===`all`||e.meta.layerHeight===g).filter(e=>o===``||e.name.toLowerCase().includes(o.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)),[x,c,u,C,f,m,g,o]),T=()=>{l(`all`),d(`all`),p(`all`),h(`all`),_(`all`),s(``)},E=c!==`all`||u!==`all`||f!==`all`||m!==`all`||g!==`all`||o!==``,D=e.filament.length+e.printer.length+e.process.length,O=e=>w.filter(t=>t.type===e);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:a(`profiles.cloudView.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsx)(`div`,{className:`flex gap-2`,children:(0,G.jsxs)(Q,{variant:`secondary`,onClick:n,disabled:r,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${r?`animate-spin`:``}`}),a(`profiles.cloudView.refresh`)]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(b5,{label:a(`profiles.cloudView.filters.type`),value:c,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`),count:D},{value:`filament`,label:a(`profiles.cloudView.filters.filament`),count:e.filament.length},{value:`printer`,label:a(`profiles.cloudView.filters.printer`),count:e.printer.length},{value:`process`,label:a(`profiles.cloudView.filters.process`),count:e.process.length}],onChange:e=>l(e)}),S.printers.length>0&&(0,G.jsx)(b5,{label:a(`profiles.cloudView.filters.printer`),value:u,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.printers.map(e=>({value:e.id,label:e.name}))],onChange:d}),S.nozzles.length>0&&(0,G.jsx)(b5,{label:a(`profiles.cloudView.filters.nozzle`),value:f,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.nozzles.map(e=>({value:e,label:e}))],onChange:p}),S.filaments.length>0&&(c===`all`||c===`filament`)&&(0,G.jsx)(b5,{label:a(`profiles.cloudView.filters.filament`),value:m,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.filaments.map(e=>({value:e,label:e}))],onChange:h}),S.layerHeights.length>0&&(c===`all`||c===`process`)&&(0,G.jsx)(b5,{label:a(`profiles.cloudView.filters.layer`),value:g,options:[{value:`all`,label:a(`profiles.cloudView.filters.all`)},...S.layerHeights.map(e=>({value:e,label:e}))],onChange:_}),E&&(0,G.jsx)(`button`,{onClick:T,className:`px-3 py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:a(`profiles.cloudView.clearFilters`)})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 mb-4 text-sm text-bambu-gray`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),a(`profiles.cloudView.lastSynced`),` `,up(t.toISOString(),`system`,a)]}),(0,G.jsx)(`span`,{children:a(`profiles.cloudView.showingCount`,{showing:w.length,total:D})})]}),w.length===0?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 text-bambu-gray-dark mx-auto mb-4`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:a(`profiles.cloudView.noPresetsFound`)}),E&&(0,G.jsx)(`button`,{onClick:T,className:`mt-2 text-sm text-bambu-green hover:text-bambu-green-light`,children:a(`profiles.cloudView.clearFilters`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-6`,children:[(0,G.jsx)(_5,{icon:(0,G.jsx)(Zs,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),title:a(`profiles.cloudView.columns.filament`),presets:O(`filament`),emptyText:a(`profiles.cloudView.noFilamentPresets`),onSelect:b}),(0,G.jsx)(_5,{icon:(0,G.jsx)(nu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),title:a(`profiles.cloudView.columns.process`),presets:O(`process`),emptyText:a(`profiles.cloudView.noProcessPresets`),onSelect:b}),(0,G.jsx)(_5,{icon:(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),title:a(`profiles.cloudView.columns.printer`),presets:O(`printer`),emptyText:a(`profiles.cloudView.noPrinterPresets`),onSelect:b})]}),v&&(0,G.jsx)(fKe,{setting:v,onClose:()=>b(null),t:a})]})}function _5({icon:e,title:t,presets:n,emptyText:r,onSelect:i}){return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[e,(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:t}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,n.length,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:n.length===0?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:r}):n.map(e=>(0,G.jsx)(dKe,{preset:e,onClick:()=>i(e)},e.setting_id))})]})}function dKe({preset:e,onClick:t}){return(0,G.jsx)(`button`,{onClick:t,className:`w-full text-left px-3 py-2 rounded bg-bambu-dark hover:bg-bambu-dark-tertiary transition-colors`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name}),e.meta.filamentType&&e.type===`filament`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.filamentType}),e.meta.layerHeight&&e.type===`process`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.layerHeight}),e.meta.printer&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.meta.printer})]})})}function fKe({setting:e,onClose:t,t:n}){let{data:r,isLoading:i,error:a}=K({queryKey:[`orcaCloudProfileDetail`,e.setting_id],queryFn:()=>Z.orcaCloudGetProfile(e.setting_id),retry:!1});return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/60 z-50 flex items-center justify-center p-4`,onClick:t,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-2xl max-w-4xl w-full max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-bold text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:e.type})]}),(0,G.jsx)(`button`,{onClick:t,className:`text-bambu-gray hover:text-white p-1`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:i?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):a?(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-16`,children:a.message}):r?(0,G.jsx)(`pre`,{className:`text-xs font-mono text-bambu-gray bg-bambu-dark p-3 rounded overflow-x-auto whitespace-pre`,children:JSON.stringify(r.setting,null,2)}):(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-16`,children:n(`profiles.cloudView.noPresetsFound`)})})]})})}function pKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),i=r(`orca_cloud:auth`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(5e3),[l,u]=(0,y.useState)(null),{data:d,isLoading:f}=K({queryKey:[`orcaCloudStatus`],queryFn:Z.orcaCloudStatus}),p=!!d?.connected,{data:m,isLoading:h,refetch:g,isRefetching:_,error:v,dataUpdatedAt:b}=K({queryKey:[`orcaCloudProfiles`],queryFn:Z.orcaCloudListProfiles,enabled:p,retry:!1,staleTime:1e3*60*5}),{data:x=[]}=K({queryKey:[`printers`],queryFn:Z.getPrinters,enabled:p}),[S,C]=(0,y.useState)();(0,y.useEffect)(()=>{b&&C(new Date(b))},[b]);let w=()=>{o(null),c(5e3)},T=t=>{t===`access_denied`?u(e(`profiles.orcaCloud.errors.denied`)):t===`expired_token`&&u(e(`profiles.orcaCloud.errors.expired`)),w()},E=q({mutationFn:Z.orcaCloudDeviceStart,onSuccess:e=>{u(null),c(Math.max(1,e.interval)*1e3),o(e)},onError:t=>{u(t.message||e(`profiles.orcaCloud.errors.startFailed`))}}),D=q({mutationFn:Z.orcaCloudLogout,onSuccess:()=>{t.invalidateQueries({queryKey:[`orcaCloudStatus`]}),t.removeQueries({queryKey:[`orcaCloudProfiles`]}),n(e(`profiles.orcaCloud.toast.disconnected`))}}),{data:O,error:k}=K({queryKey:[`orcaCloudDevicePoll`,a?.user_code??`none`],queryFn:Z.orcaCloudDevicePoll,enabled:a!==null,gcTime:0,retry:!1,refetchOnWindowFocus:!1,refetchInterval:a===null?!1:s}),A=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!a||!O)return;let r=O.status;if(r===`slow_down`){c(e=>e+5e3);return}r!==`authorization_pending`&&A.current!==r&&(A.current=r,r===`complete`?(w(),t.invalidateQueries({queryKey:[`orcaCloudStatus`]}),t.invalidateQueries({queryKey:[`orcaCloudProfiles`]}),n(e(`profiles.orcaCloud.connectedShort`))):T(r))},[O,a]),(0,y.useEffect)(()=>{a&&k&&(u(e(`profiles.orcaCloud.errors.pollFailed`)),w())},[k,a]),(0,y.useEffect)(()=>{a&&(A.current=null)},[a]),f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{children:[p&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 mb-6 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green animate-pulse`}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:d?.email?(0,G.jsxs)(G.Fragment,{children:[e(`profiles.orcaCloud.connectedAs`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:d.email})]}):(0,G.jsx)(`span`,{className:`text-white`,children:e(`profiles.orcaCloud.connectedShort`)})})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>D.mutate(),disabled:D.isPending||!i,title:i?void 0:e(`profiles.orcaCloud.noLogoutPermission`),children:[(0,G.jsx)(il,{className:`w-4 h-4`}),e(`profiles.orcaCloud.logout`)]})]}),p?h?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):v?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:v.message}),(0,G.jsx)(Q,{onClick:()=>g(),children:e(`profiles.orcaCloud.retry`)})]}):m?(0,G.jsx)(uKe,{settings:m,lastSyncTime:S,onRefresh:()=>g(),isRefreshing:_,printers:x,t:e}):null:(0,G.jsx)(mKe,{pairing:a,connectError:l,onConnect:()=>E.mutate(),onCancel:w,isStarting:E.isPending,canManage:i,t:e})]})}function mKe({pairing:e,connectError:t,onConnect:n,onCancel:r,isStarting:i,canManage:a,t:o}){return e?(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-8 text-center max-w-md mx-auto`,children:[(0,G.jsx)(Ps,{className:`w-12 h-12 text-bambu-green mx-auto mb-4`}),(0,G.jsx)(`h2`,{className:`text-xl font-bold text-white mb-2`,children:o(`profiles.orcaCloud.device.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6`,children:o(`profiles.orcaCloud.device.instruction`)}),(0,G.jsx)(`p`,{className:`text-xs uppercase tracking-wide text-bambu-gray mb-2`,children:o(`profiles.orcaCloud.device.codeLabel`)}),(0,G.jsx)(`div`,{className:`mb-6 py-3 px-4 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsx)(`span`,{className:`text-2xl font-mono font-bold tracking-[0.3em] text-white select-all`,children:e.user_code})}),(0,G.jsx)(`a`,{href:e.verification_uri_complete,target:`_blank`,rel:`noopener noreferrer`,children:(0,G.jsxs)(Q,{className:`w-full mb-3`,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),o(`profiles.orcaCloud.device.openButton`)]})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray break-all mb-6`,children:o(`profiles.orcaCloud.device.manualHint`,{url:e.verification_uri})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-sm text-bambu-gray mb-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-green`}),o(`profiles.orcaCloud.device.waiting`)]}),(0,G.jsx)(`button`,{type:`button`,onClick:r,className:`text-bambu-gray hover:text-white text-sm`,children:o(`profiles.orcaCloud.device.cancel`)})]})}):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-8 text-center`,children:[(0,G.jsx)(Ps,{className:`w-12 h-12 text-bambu-green mx-auto mb-4`}),(0,G.jsx)(`h2`,{className:`text-xl font-bold text-white mb-2`,children:o(`profiles.orcaCloud.connect.title`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mb-6 max-w-xl mx-auto`,children:o(`profiles.orcaCloud.connect.description`)}),(0,G.jsxs)(`div`,{className:`max-w-sm mx-auto`,children:[(0,G.jsxs)(Q,{onClick:n,disabled:i||!a,title:a?void 0:o(`profiles.orcaCloud.noConnectPermission`),className:`w-full`,children:[i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(fs,{className:`w-4 h-4`}),o(`profiles.orcaCloud.connectButton`)]}),t&&(0,G.jsxs)(`p`,{className:`mt-3 text-sm text-red-700 dark:text-red-400 flex items-center justify-center gap-2`,children:[(0,G.jsx)(ys,{className:`w-4 h-4 flex-shrink-0`}),t]})]})]})})}function v5(e,t){let n=`${e} ${t||``}`,r=n.match(/@?\s*(?:BBL\s+)?(?:Bambu\s+Lab\s+)?([XPAH][1-9][A-Z]?(?:\s*(?:Carbon|mini))?|H2D)/i),i=r?r[1].trim():null,a=n.match(/(\d+\.?\d*)\s*(?:mm\s*)?nozzle|nozzle\s*(\d+\.?\d*)/i),o=a?(a[1]||a[2])+`mm`:null,s=n.match(/(\d+\.?\d*)mm\s*(?:Standard|Fine|Extra Fine|Draft|Quality)?/i),c=s?s[1]+`mm`:null,l=n.match(/\b(PLA|PETG|ABS|ASA|TPU|PC|PA|PVA|HIPS|PP|PET(?:-?CF)?|PA(?:-?CF)?|PLA(?:-?CF)?)\b/i);return{printer:i,nozzle:o,layerHeight:c,filamentType:l?l[1].toUpperCase():null}}function y5(e){return/^(P[FPM]US|PF\d|PP\d)/.test(e)}function hKe({onSuccess:e,t}){let{showToast:n}=qd(),[r,i]=(0,y.useState)(`email`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(`global`),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),S=q({mutationFn:()=>Z.cloudLogin(a,s,p),onSuccess:r=>{if(x(r.reason===`captcha`),r.success)n(t(`profiles.login.toast.loggedIn`)),e();else if(r.reason===`captcha`)return;else r.needs_verification?(g(r.verification_type||`email`),v(r.tfa_key||null),r.verification_type===`totp`?n(t(`profiles.login.toast.enterTotp`)):n(t(`profiles.login.toast.codeSent`)),i(`code`)):n(r.message,`error`)},onError:e=>{x(!1),n(e.message,`error`)}}),C=q({mutationFn:()=>Z.cloudVerify(a,l,_||void 0,p),onSuccess:r=>{x(r.reason===`captcha`),r.success?(n(t(`profiles.login.toast.loggedIn`)),e()):r.reason!==`captcha`&&n(r.message,`error`)},onError:e=>{x(!1),n(e.message,`error`)}}),w=q({mutationFn:()=>Z.cloudSetToken(d,p),onSuccess:()=>{n(t(`profiles.login.toast.tokenSet`)),e()},onError:e=>n(e.message,`error`)}),T=e=>{e.preventDefault(),r===`email`?S.mutate():r===`code`?C.mutate():r===`token`&&w.mutate()},E=S.isPending||C.isPending||w.isPending;return(0,G.jsx)(zd,{className:`max-w-md mx-auto`,children:(0,G.jsxs)(Vd,{children:[(0,G.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,G.jsx)(`div`,{className:`inline-flex items-center justify-center w-12 h-12 rounded-xl bg-bambu-green/20 mb-3`,children:(0,G.jsx)(Ps,{className:`w-6 h-6 text-bambu-green`})}),(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:t(`profiles.login.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:t(`profiles.login.subtitle`)})]}),b&&r!==`token`&&(0,G.jsx)(`div`,{role:`alert`,className:`mb-4 p-3 rounded-lg border border-amber-500/40 bg-amber-500/10`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(iu,{className:`w-4 h-4 text-amber-400 shrink-0 mt-0.5`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-amber-300`,children:t(`profiles.login.captchaTitle`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:t(`profiles.login.captchaBody`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{x(!1),i(`token`)},className:`mt-2 text-xs text-bambu-green hover:underline flex items-center gap-1`,children:[(0,G.jsx)(Kc,{className:`w-3 h-3`}),t(`profiles.login.useToken`)]})]})]})}),(0,G.jsxs)(`form`,{onSubmit:T,className:`space-y-4`,children:[r===`email`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.email`)}),(0,G.jsx)(`input`,{type:`email`,value:a,onChange:e=>o(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,placeholder:`your@email.com`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.password`)}),(0,G.jsx)(`input`,{type:`password`,value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,placeholder:`••••••••`,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.region`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`global`,children:t(`profiles.login.regionGlobal`)}),(0,G.jsx)(`option`,{value:`china`,children:t(`profiles.login.regionChina`)})]})]})]}),r===`code`&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(h===`totp`?`profiles.login.totpCode`:`profiles.login.verificationCode`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:h===`totp`?t(`profiles.login.enterTotpHint`):t(`profiles.login.checkEmail`,{email:a})}),(0,G.jsx)(`input`,{type:`text`,value:l,onChange:e=>u(e.target.value.replace(/\D/g,``).slice(0,6)),className:`w-full px-3 py-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-center text-2xl tracking-widest font-mono focus:border-bambu-green focus:outline-none`,placeholder:`000000`,maxLength:6,required:!0})]}),r===`token`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.accessToken`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:t(`profiles.login.accessTokenHint`)}),(0,G.jsx)(`textarea`,{value:d,onChange:e=>f(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none resize-none`,placeholder:`eyJ...`,rows:4,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:t(`profiles.login.region`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`global`,children:t(`profiles.login.regionGlobal`)}),(0,G.jsx)(`option`,{value:`china`,children:t(`profiles.login.regionChina`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 max-[550px]:flex-wrap max-[550px]:items-center`,children:[r===`code`&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>i(`email`),className:`flex-1`,children:t(`profiles.login.back`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:E,className:`flex-1`,children:[E?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(rl,{className:`w-4 h-4`}),t(r===`email`?`profiles.login.loginButton`:r===`code`?`profiles.login.verifyButton`:`profiles.login.setTokenButton`)]})]}),r===`email`&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(`token`),className:`text-sm text-bambu-gray hover:text-white flex items-center gap-2 transition-colors`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),t(`profiles.login.useToken`)]})}),r===`token`&&(0,G.jsx)(`div`,{className:`pt-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i(`email`),className:`text-sm text-bambu-gray hover:text-white flex items-center gap-2 transition-colors`,children:[(0,G.jsx)(rl,{className:`w-4 h-4`}),t(`profiles.login.useEmail`)]})})]})]})})}function b5({label:e,value:t,options:n,onChange:r}){let[i,a]=(0,y.useState)(!1),o=n.find(e=>e.value===t);return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`button`,{onClick:()=>a(!i),className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-white hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e,`:`]}),(0,G.jsx)(`span`,{children:o?.label||`All`}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?`rotate-180`:``}`})]}),i&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>a(!1)}),(0,G.jsx)(`div`,{className:`absolute top-full left-0 mt-1 min-w-[160px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl z-20 py-1 max-h-60 overflow-y-auto`,children:n.map(e=>(0,G.jsxs)(`button`,{onClick:()=>{r(e.value),a(!1)},className:`w-full px-3 py-2 text-left text-sm flex items-center justify-between hover:bg-bambu-dark-tertiary transition-colors ${t===e.value?`text-bambu-green`:`text-white`}`,children:[(0,G.jsx)(`span`,{children:e.label}),e.count!==void 0&&(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:e.count})]},e.value))})]})]})}function gKe(){let[e,t]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{let e=()=>{t(window.scrollY>300)};return window.addEventListener(`scroll`,e),()=>window.removeEventListener(`scroll`,e)},[]),e?(0,G.jsx)(`button`,{onClick:()=>{window.scrollTo({top:0,behavior:`smooth`})},className:`fixed bottom-24 right-6 p-3 bg-bambu-green hover:bg-bambu-green-light text-white rounded-full shadow-lg shadow-bambu-green/25 transition-all z-40`,"aria-label":`Scroll to top`,children:(0,G.jsx)(Ho,{className:`w-5 h-5`})}):null}function x5({setting:e,onClick:t,onDuplicate:n,compareMode:r,isCompareSelected:i,compareIndex:a,compareDisabled:o,t:s}){let c=v5(e.name),l=y5(e.setting_id);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 group`,children:[(0,G.jsx)(`button`,{onClick:t,disabled:o,className:`flex-1 text-left px-3 py-2 rounded transition-colors ${i?`bg-blue-500/20 border border-blue-500/50`:o?`bg-bambu-dark/50 opacity-40 cursor-not-allowed`:`bg-bambu-dark hover:bg-bambu-dark-tertiary`} ${r&&!o?`cursor-pointer`:``}`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i&&a!==void 0&&(0,G.jsx)(`span`,{className:`flex-shrink-0 w-5 h-5 rounded-full bg-blue-500 text-white text-xs flex items-center justify-center font-medium`,children:a+1}),!i&&l&&(0,G.jsx)(`span`,{className:`flex-shrink-0 w-1.5 h-1.5 rounded-full bg-bambu-green`,title:s(`profiles.presets.myPreset`)}),(0,G.jsx)(`span`,{className:`text-white text-sm truncate flex-1`,title:e.name,children:e.name}),c.filamentType&&e.type===`filament`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.filamentType}),c.layerHeight&&e.type===`process`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.layerHeight}),c.printer&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:c.printer})]})}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),n()},className:`can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100 text-bambu-gray hover:text-white transition-all p-1`,title:s(`profiles.presets.duplicate`),children:(0,G.jsx)(Vs,{className:`w-4 h-4`})})]})}function S5(e,t=0){let n=` `.repeat(t);if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`string`){if(e.includes(`\\n`)||e.includes(` `)){let t=e.replace(/\\n/g,` `).replace(/\\"/g,`"`).replace(/\\t/g,` `).split(` `);if(t.length>1)return`""" `+t.map(e=>n+` `+e).join(` `)+` `+n+`"""`}return JSON.stringify(e)}if(typeof e==`number`||typeof e==`boolean`)return String(e);if(Array.isArray(e))return e.length===0?`[]`:`[ -`+e.map(e=>n+` `+x5(e,t+1)).join(`, +`+e.map(e=>n+` `+S5(e,t+1)).join(`, `)+` `+n+`]`;if(typeof e==`object`){let r=Object.entries(e);return r.length===0?`{}`:`{ -`+r.map(([e,r])=>n+` `+JSON.stringify(e)+`: `+x5(r,t+1)).join(`, +`+r.map(([e,r])=>n+` `+JSON.stringify(e)+`: `+S5(r,t+1)).join(`, `)+` -`+n+`}`}return String(e)}function _Ke({setting:e,onClose:t,onDeleted:n,onDuplicate:r,onEdit:i,hasPermission:a,t:o}){let{showToast:s}=qd(),c=co(),[l,u]=(0,y.useState)(!1),{data:d,isLoading:f}=K({queryKey:[`cloudSettingDetail`,e.setting_id],queryFn:()=>Z.getCloudSettingDetail(e.setting_id)}),p=q({mutationFn:()=>Z.deleteCloudSetting(e.setting_id),onSuccess:()=>{s(o(`profiles.presets.toast.deleted`)),c.invalidateQueries({queryKey:[`cloudSettings`]}),n()},onError:e=>s(e.message,`error`)}),m=v5(e.setting_id),h=_5(e.name,d?.setting?.inherits);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white truncate`,children:e.name}),m&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs font-medium bg-bambu-green/20 text-bambu-green rounded-full`,children:o(`profiles.presets.editable`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-1 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`capitalize`,children:o(`profiles.presets.types.${e.type}`)}),h.printer&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`•`}),(0,G.jsx)(`span`,{children:h.printer})]})]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto p-4`,children:f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):d?(0,G.jsx)(`pre`,{className:`text-xs text-bambu-gray font-mono whitespace-pre-wrap break-all bg-bambu-dark p-4 rounded-lg border border-bambu-dark-tertiary overflow-x-auto max-w-full`,children:x5(d)}):(0,G.jsx)(`div`,{className:`text-center py-16 text-bambu-gray`,children:o(`profiles.presets.failedToLoadDetails`)})}),l?(0,G.jsxs)(`div`,{className:`flex-shrink-0 p-4 border-t border-bambu-dark-tertiary bg-red-500/5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{className:`font-medium`,children:o(`profiles.presets.deleteConfirm`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:o(`profiles.presets.deleteWarning`,{name:e.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>u(!1),disabled:p.isPending,className:`flex-1`,children:o(`common.cancel`)}),(0,G.jsxs)(Q,{variant:`danger`,onClick:()=>p.mutate(),disabled:p.isPending,className:`flex-1`,children:[p.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),o(`common.delete`)]})]})]}):(0,G.jsx)(`div`,{className:`flex-shrink-0 p-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`flex-1`,children:o(`common.close`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:r,disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noDuplicatePermission`),children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),o(`profiles.presets.duplicate`)]}),m&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:i,disabled:f||!d||!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noEditPermission`),children:[(0,G.jsx)(Al,{className:`w-4 h-4`}),o(`common.edit`)]}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>u(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noDeletePermission`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})})]})})})}function S5(){try{let e=localStorage.getItem(`bambusy_preset_templates`);return e?JSON.parse(e):[]}catch{return[]}}function C5(e){localStorage.setItem(`bambusy_preset_templates`,JSON.stringify(e))}function vKe({onClose:e,onApply:t,t:n}){let{showToast:r}=qd(),[i,a]=(0,y.useState)(S5),[o,s]=(0,y.useState)(`all`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(`{}`),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),x=o===`all`?i:i.filter(e=>e.type===o),S=e=>{a(e),C5(e)},C=e=>{S(i.filter(t=>t.id!==e)),b(null),r(n(`profiles.templates.toast.deleted`))},w=e=>{l(e.id),d(e.name),p(e.description),h(JSON.stringify(e.settings,null,2)),_(null)},T=()=>{if(!(!c||!u.trim()))try{let e=JSON.parse(m);S(i.map(t=>t.id===c?{...t,name:u.trim(),description:f.trim(),settings:e}:t)),l(null),r(n(`profiles.templates.toast.updated`))}catch(e){_(e.message)}},E=()=>{l(null),d(``),p(``),h(`{}`),_(null)},D=e=>{S(i.map(t=>t.id===e?{...t,showInModal:!t.showInModal}:t))},O={filament:{label:n(`profiles.presets.types.filament`),icon:Zs,color:`text-amber-600 dark:text-amber-400`},print:{label:n(`profiles.presets.types.process`),icon:nu,color:`text-blue-600 dark:text-blue-400`},printer:{label:n(`profiles.presets.types.printer`),icon:Rl,color:`text-purple-600 dark:text-purple-400`}},k=v?i.find(e=>e.id===v):null;return(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&(v?b(null):c?E():e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[v,c,e]),(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:[k&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-60`,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 bg-red-500/20 rounded-lg`,children:(0,G.jsx)(Lu,{className:`w-6 h-6 text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:n(`profiles.templates.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`profiles.templates.deleteWarning`)})]})]}),(0,G.jsx)(`p`,{className:`text-white mb-6`,children:n(`profiles.templates.deleteConfirm`,{name:k.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>b(null),className:`flex-1`,children:n(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>C(v),className:`flex-1 bg-red-500 hover:bg-red-600`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),n(`common.delete`)]})]})]})})}),(0,G.jsx)(zd,{className:`w-full max-w-2xl max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(_u,{className:`w-5 h-5 text-amber-600 dark:text-amber-400`}),n(`profiles.templates.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`profiles.templates.typeFilter`)}),[`all`,`filament`,`print`,`printer`].map(e=>(0,G.jsx)(`button`,{onClick:()=>s(e),className:`px-3 py-1 text-sm rounded-lg transition-colors ${o===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:e===`all`?n(`common.all`):O[e].label},e))]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:x.length===0?(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(_u,{className:`w-12 h-12 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{children:n(`profiles.templates.noTemplates`)}),(0,G.jsx)(`p`,{className:`text-sm mt-1`,children:n(`profiles.templates.createFirst`)})]}):(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>{let r=O[e.type],i=r.icon;return c===e.id?(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-green`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 mb-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:n(`profiles.templates.namePlaceholder`),className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:n(`profiles.templates.descriptionPlaceholder`),className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray mb-1 block`,children:n(`profiles.templates.settingsJson`)}),(0,G.jsx)(`textarea`,{value:m,onChange:e=>{h(e.target.value),_(null)},rows:6,className:`w-full px-3 py-2 bg-bambu-dark-secondary border rounded text-white text-sm font-mono focus:outline-none ${g?`border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`}),g&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:g})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,onClick:T,disabled:!u.trim(),children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),`Save`]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:E,children:`Cancel`})]})]},e.id):(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsx)(i,{className:`w-5 h-5 ${r.color} flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.description})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray-dark px-2 py-1 bg-bambu-dark-secondary rounded`,children:n(`profiles.templates.fieldsCount`,{count:Object.keys(e.settings).length})}),(0,G.jsx)(`button`,{onClick:()=>D(e.id),className:`p-1 transition-colors ${e.showInModal?`text-bambu-green hover:text-bambu-green/70`:`text-bambu-gray hover:text-white`}`,title:e.showInModal?n(`profiles.templates.shownInModals`):n(`profiles.templates.hiddenInModals`),children:e.showInModal?(0,G.jsx)(ac,{className:`w-4 h-4`}):(0,G.jsx)(ic,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>t(e),className:`px-3 py-1 text-xs bg-bambu-green/20 text-bambu-green rounded hover:bg-bambu-green/30 transition-colors`,children:n(`profiles.templates.apply`)}),(0,G.jsx)(`button`,{onClick:()=>w(e),className:`p-1 text-bambu-gray hover:text-white`,title:n(`common.edit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>b(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400`,title:n(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]},e.id)})})})]})})]})}function w5({onClose:e,leftPreset:t,rightPreset:n,leftLabel:r,rightLabel:i,t:a}){let[o,s]=(0,y.useState)(`changes`),[c,l]=(0,y.useState)(``),u=(0,y.useMemo)(()=>{let e=new Set([...Object.keys(t),...Object.keys(n)]),r=[];for(let i of e){if(i===`inherits`||i===`version`)continue;let e=t[i],a=n[i],o=i in t,s=i in n,c;c=!o&&s?`added`:o&&!s?`removed`:JSON.stringify(e)===JSON.stringify(a)?`same`:`changed`,r.push({key:i,left:e,right:a,status:c})}return r.sort((e,t)=>{let n={changed:0,added:1,removed:2,same:3};return n[e.status]===n[t.status]?e.key.localeCompare(t.key):n[e.status]-n[t.status]})},[t,n]),d=(0,y.useMemo)(()=>{let e=[...u];if(o===`changes`&&(e=e.filter(e=>e.status!==`same`)),c){let t=c.toLowerCase();e=e.filter(e=>e.key.toLowerCase().includes(t)||String(e.left).toLowerCase().includes(t)||String(e.right).toLowerCase().includes(t))}return e},[u,o,c]),f=(0,y.useMemo)(()=>({added:u.filter(e=>e.status===`added`).length,removed:u.filter(e=>e.status===`removed`).length,changed:u.filter(e=>e.status===`changed`).length,same:u.filter(e=>e.status===`same`).length}),[u]),p=e=>{if(e===void 0)return`—`;if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:e.length===1?String(e[0]):e.join(`, `);if(typeof e==`object`)return JSON.stringify(e);let t=String(e);if(t.includes(`\\n`)||t.length>100){let e=t.split(`\\n`).length;if(e>1)return`[${e} lines of G-code/script]`;if(t.length>100)return t.substring(0,100)+`…`}return t};return(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-4xl max-h-[85vh] flex flex-col overflow-hidden`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Oc,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),a(`profiles.diff.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 grid grid-cols-2 gap-4 p-4 border-b border-bambu-dark-tertiary bg-bambu-dark`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`profiles.diff.left`)}),(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:r})]}),(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`profiles.diff.right`)}),(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:i})]})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400`,children:[(0,G.jsx)(Fl,{className:`w-3.5 h-3.5`}),f.added,` `,a(`profiles.diff.added`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ml,{className:`w-3.5 h-3.5`}),f.removed,` `,a(`profiles.diff.removed`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(zo,{className:`w-3.5 h-3.5`}),f.changed,` `,a(`profiles.diff.changed`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(tc,{className:`w-3.5 h-3.5`}),f.same,` `,a(`profiles.diff.same`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:a(`profiles.diff.searchFields`),className:`pl-8 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none w-48`})]}),f.same>0&&(0,G.jsxs)(`div`,{className:`flex rounded overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>s(`changes`),className:`px-3 py-1.5 text-sm transition-colors ${o===`changes`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:a(`profiles.diff.changes`)}),(0,G.jsx)(`button`,{onClick:()=>s(`all`),className:`px-3 py-1.5 text-sm transition-colors ${o===`all`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:a(`common.all`)})]})]})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:d.length===0?(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(tc,{className:`w-12 h-12 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{children:a(o===`changes`?`profiles.diff.noDifferences`:`profiles.diff.noFieldsMatch`)})]}):(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{className:`sticky top-0 bg-bambu-dark-secondary`,children:(0,G.jsxs)(`tr`,{className:`text-sm text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:a(`profiles.diff.field`)}),(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:r}),(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:i})]})}),(0,G.jsx)(`tbody`,{children:d.map(e=>{let t={added:`bg-green-500/10`,removed:`bg-red-500/10`,changed:`bg-amber-500/10`,same:``}[e.status],n={added:(0,G.jsx)(Fl,{className:`w-3.5 h-3.5 text-green-600 dark:text-green-400`}),removed:(0,G.jsx)(ml,{className:`w-3.5 h-3.5 text-red-600 dark:text-red-400`}),changed:(0,G.jsx)(zo,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),same:(0,G.jsx)(tc,{className:`w-3.5 h-3.5 text-bambu-gray-dark`})}[e.status];return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary ${t}`,children:[(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n,(0,G.jsx)(`span`,{className:`text-sm text-white font-mono`,children:e.key})]})}),(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-mono break-all ${e.status===`removed`?`text-red-700 dark:text-red-300`:e.status===`changed`?`text-white`:`text-bambu-gray`}`,children:p(e.left)})}),(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-mono break-all ${e.status===`added`?`text-green-700 dark:text-green-300`:e.status===`changed`?`text-white`:`text-bambu-gray`}`,children:p(e.right)})})]},e.key)})})]})})]})})})}function yKe({onClose:e,initialData:t,allPresets:n,t:r}){let{showToast:i}=qd(),a=co(),o=!!t?.setting_id,[s,c]=(0,y.useState)(`common`),[l,u]=(0,y.useState)(t?.type||`filament`),[d,f]=(0,y.useState)(t?.name?o?t.name:`${t.name} (Copy)`:``),[p,m]=(0,y.useState)(t?.base_id||``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(t?.setting||{inherits:``}),[b,x]=(0,y.useState)(JSON.stringify(t?.setting||{inherits:``},null,2)),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(S5),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(``),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)(!0),[ee,te]=(0,y.useState)(null),[ne,re]=(0,y.useState)(!1),ie=(0,y.useMemo)(()=>({filament:n.filament,print:n.process,printer:n.printer})[l]||[],[n,l]),ae=(0,y.useMemo)(()=>ie.filter(e=>v5(e.setting_id)),[ie]),{data:oe}=K({queryKey:[`cloudFields`,l],queryFn:()=>Z.getCloudFields(l===`print`?`process`:l),staleTime:1e3*60*60}),{data:se}=K({queryKey:[`allPresetDetails`,l,ae.map(e=>e.setting_id).join(`,`)],queryFn:async()=>{let e={};for(let t=0;t{try{let t=await Z.getCloudSettingDetail(e.setting_id);return{id:e.setting_id,detail:t}}catch{return null}}))).forEach(t=>{t&&(e[t.id]=t.detail)})}return e},enabled:ae.length>0,staleTime:1e3*60*10}),{data:H,isLoading:ce}=K({queryKey:[`cloudSettingDetail`,p],queryFn:()=>Z.getCloudSettingDetail(p),enabled:!!p});(0,y.useEffect)(()=>{s!==`json`&&x(JSON.stringify(_,null,2))},[_,s]);let le=(0,y.useMemo)(()=>({filament:n.filament,print:n.process,printer:n.printer}[l]||[]).filter(e=>!v5(e.setting_id)).sort((e,t)=>e.name.localeCompare(t.name)),[n,l]);(0,y.useEffect)(()=>{if(!p)return;let e=le.find(e=>e.setting_id===p);e&&(g(e.name),o||(v({inherits:e.name}),x(JSON.stringify({inherits:e.name},null,2))))},[p,le,o]);let ue=(0,y.useMemo)(()=>{let e=oe?.fields||[],t=new Set(e.map(e=>e.key)),n=new Set,i=new Set([`inherits`,`updated_time`,`compatible_printers`,`compatible_prints`]);se&&Object.values(se).forEach(e=>{e?.setting&&Object.keys(e.setting).forEach(e=>{!t.has(e)&&!i.has(e)&&n.add(e)})}),Object.keys(_).forEach(e=>{!t.has(e)&&!i.has(e)&&n.add(e)});let a=Array.from(n).sort().map(e=>({key:e,label:e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),type:`text`,category:`discovered`,description:r(`profiles.presets.discoveredFromPresets`)}));return[...e,...a]},[oe,se,_,r]),de=ue.filter(e=>e.label.toLowerCase().includes(w.toLowerCase())||e.key.toLowerCase().includes(w.toLowerCase())),fe=()=>{if(O.trim()){let e=O.trim().toLowerCase().replace(/\s+/g,`_`);pe(e,``),k(``),j(!1),i(r(`profiles.presets.toast.fieldAdded`,{key:e}))}},pe=(e,t)=>{v(n=>{let r={...n};return t===``||t===void 0?delete r[e]:r[e]=t,r})},me=e=>{v(t=>({...t,...e.settings})),te(e.name),i(r(`profiles.templates.toast.applied`))},he=()=>{if(!I.trim())return;let e={..._};if(delete e.inherits,Object.keys(e).length===0){i(r(`profiles.presets.noOverridesToSave`),`error`);return}let t={id:Date.now().toString(),name:I.trim(),description:R.trim()||r(`profiles.presets.customTemplate`),type:l,settings:e,showInModal:B},n=[...M,t];N(n),C5(n),F(!1),L(``),z(``),V(!0),i(r(`profiles.templates.toast.created`))},ge=(0,y.useMemo)(()=>M.filter(e=>e.type===l&&e.showInModal),[l,M]),_e=e=>{x(e);try{v(JSON.parse(e)),C(null)}catch(e){C(e.message)}},ve=e=>{e.preventDefault(),D(!1);let t=e.dataTransfer.files[0];if(t&&t.name.endsWith(`.json`)){let e=new FileReader;e.onload=e=>{try{let t=e.target?.result,n=JSON.parse(t),a=n.setting||n;v(e=>({...e,...a})),x(JSON.stringify({..._,...a},null,2)),i(r(`profiles.presets.fileImported`))}catch{i(r(`profiles.presets.invalidJsonFile`),`error`)}},e.readAsText(t)}},ye=q({mutationFn:()=>{let e={..._},t=l===`filament`?`filament_settings_id`:l===`print`?`print_settings_id`:`printer_settings_id`;e[t]=`"${d}"`;let n={type:l,name:d,base_id:p,setting:e};return Z.createCloudSetting(n)},onSuccess:async()=>{i(r(`profiles.presets.toast.created`)),await a.refetchQueries({queryKey:[`cloudSettings`]}),e()},onError:e=>i(e.message,`error`)}),be=q({mutationFn:()=>{if(!t?.setting_id)throw Error(r(`profiles.presets.noSettingId`));return Z.updateCloudSetting(t.setting_id,{name:d,setting:_})},onSuccess:async()=>{i(r(`profiles.presets.toast.updated`)),a.removeQueries({queryKey:[`cloudSettingDetail`]}),await a.refetchQueries({queryKey:[`cloudSettings`]}),e()},onError:e=>i(e.message,`error`)}),xe=o?be:ye,Se=H?.setting?.inherits,Ce=Se?le.find(e=>e.name===Se):void 0,{data:we}=K({queryKey:[`cloudSettingDetail`,Ce?.setting_id],queryFn:()=>Z.getCloudSettingDetail(Ce.setting_id),enabled:!!Ce?.setting_id}),Te=(0,y.useMemo)(()=>{let e=we?.setting||{},t=H?.setting||{},n=p&&se?.[p]?.setting?se[p].setting:{};return{...e,...t,...n}},[p,H,we,se]),Ee=e=>{if(e==null)return``;if(Array.isArray(e)){let t=[...new Set(e.map(e=>String(e)))];return t.length===1?t[0]:e.join(`, `)}return String(e)},De=e=>{let t=_[e.key],n=Te[e.key],i=Ee(n),a=ce?r(`common.loading`):i||``,o=`w-full px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`;if(e.type===`boolean`){let r=t===`1`||t===void 0&&n===`1`;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>pe(e.key,t===`1`?`0`:`1`),className:`w-8 h-5 rounded-full transition-colors ${r?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full bg-white shadow transition-transform ${r?`translate-x-3.5`:`translate-x-0.5`}`})})}return e.type===`select`?(0,G.jsxs)(`select`,{value:t||``,onChange:t=>pe(e.key,t.target.value),className:o,children:[(0,G.jsx)(`option`,{value:``,children:a}),e.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:e.type===`number`?`number`:`text`,value:t===void 0?``:String(t),onChange:t=>pe(e.key,t.target.value),step:e.step,min:e.min,max:e.max,placeholder:a,className:o}),e.unit&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.unit})]})},Oe=(0,y.useMemo)(()=>H?.setting?H.setting:{},[H]);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onDragOver:e=>{e.preventDefault(),D(!0)},onDragLeave:()=>D(!1),onDrop:ve,children:[ne&&p&&(0,G.jsx)(w5,{onClose:()=>re(!1),leftPreset:Oe,rightPreset:_,leftLabel:r(`profiles.presets.baseLabel`,{name:h||p}),rightLabel:r(`profiles.presets.currentLabel`,{name:d||r(`profiles.presets.newPreset`)}),t:r}),(0,G.jsx)(zd,{className:`w-full max-w-6xl max-h-[90vh] flex flex-col overflow-y-auto`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:r(o?`profiles.presets.editPreset`:t?`profiles.presets.duplicatePreset`:`profiles.presets.createNewPreset`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`profiles.presets.customizeSettings`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&(0,G.jsxs)(`button`,{onClick:()=>re(!0),className:`flex items-center gap-2 px-3 py-2 text-sm text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:r(`profiles.presets.compareWithBase`),children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),r(`profiles.presets.compare`)]}),(0,G.jsx)(`button`,{onClick:e,className:`p-2 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),E&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-green/10 border-2 border-dashed border-bambu-green rounded-lg flex items-center justify-center z-10`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(Vu,{className:`w-12 h-12 text-bambu-green mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-bambu-green font-medium`,children:r(`profiles.presets.dropJsonToImport`)})]})}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 max-[640px]:grid-cols-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`common.type`)}),(0,G.jsxs)(`select`,{value:l,onChange:e=>{u(e.target.value),m(``)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`filament`,children:r(`profiles.presets.types.filament`)}),(0,G.jsx)(`option`,{value:`print`,children:r(`profiles.presets.types.process`)}),(0,G.jsx)(`option`,{value:`printer`,children:r(`profiles.presets.types.printer`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`profiles.presets.basePreset`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`profiles.presets.selectBasePreset`)}),le.map(e=>(0,G.jsx)(`option`,{value:e.setting_id,children:e.name},e.setting_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`profiles.presets.presetName`)}),(0,G.jsx)(`input`,{type:`text`,value:d,onChange:e=>f(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`profiles.presets.myCustomPreset`)})]})]}),h&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:(0,G.jsxs)(`p`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),r(`profiles.presets.inheritsFrom`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:h}),ce&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin ml-1`})]})})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary max-[640px]:flex-wrap max-[640px]:items-center`,children:[(0,G.jsxs)(`button`,{onClick:()=>c(`common`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`common`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(pu,{className:`w-4 h-4`}),r(`profiles.presets.tabs.common`)]}),(0,G.jsxs)(`button`,{onClick:()=>c(`fields`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`fields`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(el,{className:`w-4 h-4`}),r(`profiles.presets.tabs.allFields`)]}),(0,G.jsxs)(`button`,{onClick:()=>c(`json`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`json`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Fs,{className:`w-4 h-4`}),`JSON`,S&&(0,G.jsx)(ys,{className:`w-3 h-3 text-red-600 dark:text-red-400`})]}),(0,G.jsx)(`div`,{className:`flex-1 max-[640px]:hidden`}),(0,G.jsxs)(`button`,{onClick:()=>{let e=new Blob([JSON.stringify({name:d,type:l,base_id:p,setting:_},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${d||`preset`}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t),i(r(`profiles.presets.toast.exported`))},className:`flex items-center gap-2 px-4 py-3 text-sm text-bambu-gray hover:text-white transition-colors`,title:r(`profiles.presets.exportToJson`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),r(`common.download`)]}),(0,G.jsxs)(`button`,{onClick:()=>document.getElementById(`file-import`)?.click(),className:`flex items-center gap-2 px-4 py-3 text-sm text-bambu-gray hover:text-white transition-colors`,title:r(`profiles.presets.importFromJson`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),r(`common.upload`)]}),(0,G.jsx)(`input`,{id:`file-import`,type:`file`,accept:`.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];if(t){let e=new FileReader;e.onload=e=>{try{let t=JSON.parse(e.target?.result),n=t.setting||t;v(e=>({...e,...n})),i(r(`profiles.presets.fileImported`))}catch{i(r(`profiles.presets.invalidJson`),`error`)}},e.readAsText(t)}}})]}),(0,G.jsxs)(`div`,{className:`flex-1 p-4`,children:[s===`common`&&(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(_u,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),r(`profiles.templates.title`)]}),Object.keys(_).filter(e=>e!==`inherits`).length>0&&(0,G.jsxs)(`button`,{onClick:()=>F(!P),className:`text-xs text-bambu-gray hover:text-white flex items-center gap-1 transition-colors`,children:[(0,G.jsx)(ql,{className:`w-3 h-3`}),r(`profiles.presets.saveAsTemplate`)]})]}),P&&(0,G.jsxs)(`div`,{className:`mb-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 mb-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:I,onChange:e=>L(e.target.value),placeholder:r(`profiles.templates.namePlaceholder`),className:`px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>z(e.target.value),placeholder:r(`profiles.templates.descriptionPlaceholder`),className:`px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,onClick:he,disabled:!I.trim(),children:[(0,G.jsx)(ql,{className:`w-3 h-3`}),r(`common.save`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>F(!1),children:r(`common.cancel`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(!B),className:`flex items-center gap-1.5 text-xs transition-colors ${B?`text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[B?(0,G.jsx)(ac,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ic,{className:`w-3.5 h-3.5`}),r(B?`profiles.templates.shownInModals`:`profiles.templates.hiddenInModals`)]})]})]}),ee&&(0,G.jsxs)(`div`,{className:`mb-3 px-3 py-2 bg-bambu-green/10 border border-bambu-green/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-green`,children:[r(`profiles.presets.templateApplied`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:ee})]}),(0,G.jsx)(`button`,{onClick:()=>te(null),className:`ml-auto text-bambu-green/70 hover:text-bambu-green`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[ge.map(e=>(0,G.jsxs)(`button`,{onClick:()=>me(e),className:`p-3 text-left bg-bambu-dark border border-bambu-dark-tertiary rounded-lg hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e.description})]},e.id)),ge.length===0&&(0,G.jsx)(`p`,{className:`col-span-3 text-center text-bambu-gray text-sm py-4`,children:r(`profiles.presets.noTemplatesSelected`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark mt-2 text-center`,children:r(`profiles.presets.manageTemplatesHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:r(`profiles.presets.commonSettings`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-3`,children:ue.slice(0,10).map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 max-[640px]:flex-col max-[640px]:items-start`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray flex-shrink-0`,children:e.label}),(0,G.jsx)(`div`,{className:`w-48 max-[640px]:w-full`,children:De(e)})]},e.key))})]}),Object.keys(_).length>1&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:r(`profiles.presets.currentOverrides`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Object.entries(_).filter(([e])=>e!==`inherits`).map(([e,t])=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-green/10 text-bambu-green text-xs rounded`,children:[e,`: `,String(t).slice(0,20),(0,G.jsx)(`button`,{onClick:()=>pe(e,void 0),className:`hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))})]})]}),s===`fields`&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-6`,style:{height:`400px`},children:[(0,G.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3 flex-shrink-0`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:r(`profiles.presets.availableFields`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:se?r(`profiles.templates.fieldsCount`,{count:ue.length}):r(`common.loading`)})]}),(0,G.jsxs)(`div`,{className:`relative mb-3 flex-shrink-0`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:r(`profiles.presets.searchFieldsPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto space-y-1 pr-2 min-h-0`,children:[de.filter(e=>!(e.key in _)).map(e=>{let t=Te[e.key],n=Ee(t);return(0,G.jsxs)(`div`,{onClick:()=>{v(t=>({...t,[e.key]:n||``}))},className:`flex items-center justify-between gap-2 p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors cursor-pointer group`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.label}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark truncate`,children:e.key})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[n&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark px-2 py-0.5 rounded max-w-32 truncate`,title:n,children:[n.slice(0,20),n.length>20?`...`:``]}),(0,G.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center rounded bg-bambu-dark-tertiary group-hover:bg-bambu-green/20 transition-colors`,children:(0,G.jsx)(Fl,{className:`w-4 h-4 text-bambu-gray group-hover:text-bambu-green transition-colors`})})]})]},e.key)}),de.filter(e=>!(e.key in _)).length===0&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-4 text-sm`,children:r(w?`profiles.presets.noMatchingFields`:`profiles.presets.allFieldsAdded`)})]}),(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary flex-shrink-0`,children:A?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:O,onChange:e=>k(e.target.value),onKeyDown:e=>e.key===`Enter`&&fe(),placeholder:`custom_field_name`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white font-mono text-sm placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(Q,{size:`sm`,onClick:fe,disabled:!O.trim(),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{j(!1),k(``)},children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(`button`,{onClick:()=>j(!0),className:`w-full flex items-center justify-center gap-2 p-2 text-sm text-bambu-gray hover:text-white border border-dashed border-bambu-dark-tertiary hover:border-bambu-gray-dark rounded-lg transition-colors`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`profiles.presets.addCustomField`)]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3 flex-shrink-0`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:r(`profiles.presets.yourOverrides`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:r(`profiles.templates.fieldsCount`,{count:Object.keys(_).filter(e=>e!==`inherits`).length})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto space-y-2 pr-2 min-h-0`,children:[Object.entries(_).filter(([e])=>e!==`inherits`).map(([e,t])=>{let n=ue.find(t=>t.key===e);return(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:n?.label||e}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark`,children:e})]}),(0,G.jsx)(`button`,{onClick:()=>pe(e,void 0),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),n?De(n):(0,G.jsx)(`input`,{type:`text`,value:String(t),onChange:t=>pe(e,t.target.value),className:`w-full px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]},e)}),Object.keys(_).filter(e=>e!==`inherits`).length===0&&(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(pu,{className:`w-8 h-8 mx-auto mb-2 opacity-50`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`profiles.presets.noOverridesYet`)}),(0,G.jsx)(`p`,{className:`text-xs mt-1`,children:r(`profiles.presets.clickFieldsToAdd`)})]})]}),Object.keys(_).filter(e=>e!==`inherits`).length>0&&(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsxs)(`button`,{onClick:()=>{F(!0),c(`common`)},className:`w-full flex items-center justify-center gap-2 p-2 text-sm text-bambu-gray hover:text-white border border-dashed border-bambu-dark-tertiary hover:border-bambu-gray-dark rounded-lg transition-colors`,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`profiles.presets.saveAsTemplate`)]})})]})]}),s===`json`&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4`}),S]}),(0,G.jsx)(`textarea`,{value:b,onChange:e=>_e(e.target.value),className:`w-full h-80 px-3 py-2 bg-bambu-dark border rounded-lg text-white text-xs font-mono focus:outline-none resize-none ${S?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,spellCheck:!1}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`profiles.presets.jsonTip`)})]})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>xe.mutate(),disabled:xe.isPending||!d.trim()||!o&&!p||!!S,className:`flex-1`,children:[xe.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):o?(0,G.jsx)(ql,{className:`w-4 h-4`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(o?`common.save`:t?`common.duplicate`:`common.create`)]})]})]})})]})}function bKe({settings:e,lastSyncTime:t,onRefresh:n,isRefreshing:r,printers:i,hasPermission:a,t:o}){let[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`all`),[d,f]=(0,y.useState)(`all`),[p,m]=(0,y.useState)(`all`),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(`all`),[b,x]=(0,y.useState)(`all`),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)([null,null]),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),ee=co(),te=(0,y.useMemo)(()=>[...e.filament.map(e=>({...e,type:`filament`})),...e.printer.map(e=>({...e,type:`printer`})),...e.process.map(e=>({...e,type:`process`}))].map(e=>({...e,meta:_5(e.name)})),[e]),ne=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=new Set;return te.forEach(r=>{r.meta.nozzle&&e.add(r.meta.nozzle),r.meta.filamentType&&t.add(r.meta.filamentType),r.meta.layerHeight&&n.add(r.meta.layerHeight)}),{printers:i.map(e=>({id:e.id.toString(),name:e.name})),nozzles:Array.from(e).sort((e,t)=>parseFloat(e)-parseFloat(t)),filaments:Array.from(t).sort(),layerHeights:Array.from(n).sort((e,t)=>parseFloat(e)-parseFloat(t))}},[te,i]),re=(0,y.useMemo)(()=>p===`all`?null:i.find(e=>e.id.toString()===p)?.model||null,[p,i]),ie=(0,y.useMemo)(()=>te.filter(e=>l===`all`||e.type===l).filter(e=>{if(d===`all`)return!0;let t=v5(e.setting_id);return d===`custom`?t:!t}).filter(e=>{if(p===`all`||!re)return!0;let t=e.meta.printer?.toLowerCase()||``,n=re.toLowerCase();return t.includes(n)||n.includes(t)}).filter(e=>h===`all`||e.meta.nozzle===h).filter(e=>_===`all`||e.meta.filamentType===_).filter(e=>b===`all`||e.meta.layerHeight===b).filter(e=>s===``||e.name.toLowerCase().includes(s.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)),[te,l,d,p,re,h,_,b,s]),ae=e=>{if(P){let t=I[0]?.setting_id===e.setting_id,n=I[1]?.setting_id===e.setting_id;if(t)L([I[1],null]);else if(n)L([I[0],null]);else if(!I[0])L([e,null]);else if(I[1]){if(I[0].type!==e.type)return;L([I[0],e])}else{if(I[0].type!==e.type)return;L([I[0],e])}}else C(e)},oe=e=>{if(I[0]?.setting_id===e.setting_id)return 0;if(I[1]?.setting_id===e.setting_id)return 1},se=async e=>{try{let t=await Z.getCloudSettingDetail(e.setting_id);k({type:e.type===`process`?`print`:e.type,name:e.name,base_id:t.base_id||`GFSA00`,setting:t.setting||{}}),C(null)}catch(e){console.error(`Failed to fetch preset details for duplication:`,e)}},H=async e=>{try{ee.removeQueries({queryKey:[`cloudSettingDetail`,e.setting_id]});let t=await Z.getCloudSettingDetail(e.setting_id);j({type:e.type===`process`?`print`:e.type,name:e.name,base_id:t.base_id||`GFSA00`,setting:t.setting||{},setting_id:e.setting_id}),C(null)}catch(e){console.error(`Failed to fetch preset details for editing:`,e)}},ce=()=>{u(`all`),f(`all`),m(`all`),g(`all`),v(`all`),x(`all`),c(``)},le=l!==`all`||d!==`all`||p!==`all`||h!==`all`||_!==`all`||b!==`all`||s!==``,ue=e.filament.length+e.printer.length+e.process.length;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:o(`profiles.cloudView.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 max-[550px]:flex-wrap max-[550px]:items-center`,children:[(0,G.jsxs)(Q,{variant:P?`primary`:`secondary`,onClick:()=>{P?(F(!1),L([null,null])):F(!0)},children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),o(P?`common.cancel`:`profiles.presets.compare`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>D(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noTemplatesPermission`),children:[(0,G.jsx)(_u,{className:`w-4 h-4`}),o(`profiles.cloudView.templates`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:n,disabled:r||!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noRefreshPermission`),children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${r?`animate-spin`:``}`}),o(`profiles.cloudView.refresh`)]}),(0,G.jsxs)(Q,{onClick:()=>T(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),o(`profiles.cloudView.newPreset`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.type`),value:l,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`),count:ue},{value:`filament`,label:o(`profiles.cloudView.filters.filament`),count:e.filament.length},{value:`printer`,label:o(`profiles.cloudView.filters.printer`),count:e.printer.length},{value:`process`,label:o(`profiles.cloudView.filters.process`),count:e.process.length}],onChange:e=>u(e)}),(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.owner`),value:d,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},{value:`custom`,label:o(`profiles.cloudView.filters.myPresets`)},{value:`builtin`,label:o(`profiles.cloudView.filters.builtIn`)}],onChange:e=>f(e)}),ne.printers.length>0&&(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.printer`),value:p,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.printers.map(e=>({value:e.id,label:e.name}))],onChange:m}),ne.nozzles.length>0&&(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.nozzle`),value:h,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.nozzles.map(e=>({value:e,label:e}))],onChange:g}),ne.filaments.length>0&&(l===`all`||l===`filament`)&&(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.filament`),value:_,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.filaments.map(e=>({value:e,label:e}))],onChange:v}),ne.layerHeights.length>0&&(l===`all`||l===`process`)&&(0,G.jsx)(y5,{label:o(`profiles.cloudView.filters.layer`),value:b,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.layerHeights.map(e=>({value:e,label:e}))],onChange:x}),le&&(0,G.jsx)(`button`,{onClick:ce,className:`px-3 py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:o(`profiles.cloudView.clearFilters`)})]})]}),P&&(0,G.jsx)(`div`,{className:`mb-4 p-3 bg-blue-500/10 border border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(Oc,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:o(`profiles.cloudView.compareMode`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:I[0]?o(`profiles.cloudView.selectAnotherPreset`,{type:I[0].type}):o(`profiles.cloudView.clickTwoPresets`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`px-2 py-1 text-sm rounded truncate max-w-[200px] ${I[0]?`bg-blue-500/30 text-blue-700 dark:text-blue-300`:`bg-bambu-dark text-bambu-gray`}`,children:I[0]?I[0].name:o(`profiles.cloudView.selectFirst`)}),(0,G.jsx)(zo,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`px-2 py-1 text-sm rounded truncate max-w-[200px] ${I[1]?`bg-blue-500/30 text-blue-700 dark:text-blue-300`:`bg-bambu-dark text-bambu-gray`}`,children:I[1]?I[1].name:o(`profiles.cloudView.selectSecond`)})]}),I[0]&&I[1]&&(0,G.jsxs)(Q,{size:`sm`,onClick:async()=>{try{let[e,t]=await Promise.all([Z.getCloudSettingDetail(I[0].setting_id),Z.getCloudSettingDetail(I[1].setting_id)]);V([e.setting||{},t.setting||{}]),z(!0)}catch{}},children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),o(`profiles.cloudView.compareNow`)]})]})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 mb-4 text-sm text-bambu-gray`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),o(`profiles.cloudView.lastSynced`),` `,up(t.toISOString(),`system`,o)]}),(0,G.jsx)(`span`,{children:o(`profiles.cloudView.showingCount`,{showing:ie.length,total:ue})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-green`}),(0,G.jsxs)(`span`,{children:[`= `,o(`profiles.presets.myPreset`)]})]})]}),ie.length===0?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 text-bambu-gray-dark mx-auto mb-4`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`profiles.cloudView.noPresetsFound`)}),le&&(0,G.jsx)(`button`,{onClick:ce,className:`mt-2 text-sm text-bambu-green hover:text-bambu-green-light`,children:o(`profiles.cloudView.clearFilters`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(Zs,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.filament`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`filament`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`filament`).map(e=>(0,G.jsx)(b5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`filament`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noFilamentPresets`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(nu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.process`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`process`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`process`).map(e=>(0,G.jsx)(b5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`process`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noProcessPresets`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.printer`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`printer`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`printer`).map(e=>(0,G.jsx)(b5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`printer`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noPrinterPresets`)})]})]})]}),S&&(0,G.jsx)(_Ke,{setting:S,onClose:()=>C(null),onDeleted:()=>C(null),onDuplicate:()=>se(S),onEdit:()=>H(S),hasPermission:a,t:o}),(w||O||A||M)&&(0,G.jsx)(yKe,{onClose:()=>{T(!1),k(null),j(null),N(null)},initialData:A||O||(M?{type:M.type,name:``,base_id:``,setting:M.setting}:void 0),allPresets:e,t:o}),E&&(0,G.jsx)(vKe,{onClose:()=>D(!1),onApply:e=>{N({type:e.type,setting:e.settings}),D(!1)},t:o}),R&&B&&I[0]&&I[1]&&(0,G.jsx)(w5,{onClose:()=>{z(!1),V(null)},leftPreset:B[0],rightPreset:B[1],leftLabel:I[0].name,rightLabel:I[1].name,t:o})]})}function xKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),[i,a]=(0,y.useState)(`cloud`),[o,s]=(0,y.useState)(),{data:c,isLoading:l}=K({queryKey:[`cloudStatus`],queryFn:Z.getCloudStatus}),{data:u=[]}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:d,isLoading:f,refetch:p,dataUpdatedAt:m}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),enabled:!!c?.is_authenticated,retry:!1,staleTime:1e3*60*5});(0,y.useEffect)(()=>{m&&s(new Date(m))},[m]);let h=q({mutationFn:Z.cloudLogout,onSuccess:()=>{t.invalidateQueries({queryKey:[`cloudStatus`]}),t.removeQueries({queryKey:[`cloudSettings`]}),n(e(`profiles.toast.loggedOut`))}});return l?(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex items-center justify-center min-h-[400px]`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Ps,{className:`w-7 h-7 text-bambu-green`}),e(`profiles.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`profiles.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary mb-6`,children:[(0,G.jsxs)(`button`,{onClick:()=>a(`cloud`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`cloud`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ps,{className:`w-4 h-4`}),e(`profiles.tabs.bambuCloud`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`orca_cloud`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`orca_cloud`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ps,{className:`w-4 h-4`}),e(`profiles.tabs.orcaCloud`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`local`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`local`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Pc,{className:`w-4 h-4`}),e(`profiles.tabs.local`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`kprofiles`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`kprofiles`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Tc,{className:`w-4 h-4`}),e(`profiles.tabs.kprofiles`)]})]}),i===`cloud`&&(0,G.jsxs)(G.Fragment,{children:[c?.is_authenticated&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 mb-6 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green animate-pulse`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`profiles.connectedAs`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:c.email}),c.region&&(0,G.jsx)(`span`,{className:`ml-2 px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:c.region===`china`?e(`profiles.login.regionChina`):e(`profiles.login.regionGlobal`)})]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h.mutate(),disabled:h.isPending||!r(`cloud:auth`),title:r(`cloud:auth`)?void 0:e(`profiles.noLogoutPermission`),children:[(0,G.jsx)(il,{className:`w-4 h-4`}),e(`profiles.logout`)]})]}),c?.sign_in_expired&&(0,G.jsxs)(`div`,{className:`flex items-start gap-3 p-3 mb-6 rounded-lg border border-yellow-500/40 bg-yellow-500/10`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 shrink-0 text-yellow-400 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`profiles.signInExpiredTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.signInExpiredBody`)})]})]}),c?.is_authenticated?f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):d?(0,G.jsx)(bKe,{settings:d,lastSyncTime:o,onRefresh:()=>p(),isRefreshing:f,printers:u,hasPermission:r,t:e}):(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`profiles.failedToLoad`)}),(0,G.jsx)(Q,{onClick:()=>p(),children:e(`profiles.retry`)})]}):(0,G.jsx)(hKe,{onSuccess:()=>{t.invalidateQueries({queryKey:[`cloudStatus`]})},t:e})]}),i===`orca_cloud`&&(0,G.jsx)(pKe,{}),i===`local`&&(0,G.jsx)(cKe,{}),i===`kprofiles`&&(0,G.jsx)(iKe,{}),(0,G.jsx)(gKe,{})]})}function SKe(e,t){let n=(t||``).toUpperCase().replace(/[- ]/g,``),r=n.includes(`X1`),i=n.includes(`P1`),a=n.includes(`A1MINI`),o=n.includes(`A1`)&&!a,s=n.includes(`H2D`),c=n.includes(`H2C`),l=n.includes(`H2S`),u=s||c||l,d=n.includes(`P2S`),f=n.includes(`X2D`),p=d||f;switch(e){case`Lubricate Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Clean Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Lubricate Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Nozzle/Hotend`:return r||i?`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`:a||o?`https://wiki.bambulab.com/en/a1-mini/troubleshooting/nozzle-clog`:u?`https://wiki.bambulab.com/en/h2/maintenance/nozzl-cold-pull-maintenance-and-cleaning`:p?`https://wiki.bambulab.com/en/p2s/maintenance/cold-pull-maintenance-hotend`:`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`;case`Check Belt Tension`:return r?`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`:i?`https://wiki.bambulab.com/en/p1/maintenance/p1p-maintenance`:a?`https://wiki.bambulab.com/en/a1-mini/maintenance/belt_tension`:o?`https://wiki.bambulab.com/en/a1/maintenance/belt_tension`:s?`https://wiki.bambulab.com/en/h2/maintenance/belt-tension`:c?`https://wiki.bambulab.com/en/h2c/maintenance/belt-tension`:l?`https://wiki.bambulab.com/en/h2s/maintenance/belt-tension`:p?`https://wiki.bambulab.com/en/p2s/maintenance/belt-tension`:`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`;case`Clean Carbon Rods`:return r||i?`https://wiki.bambulab.com/en/general/carbon-rods-clearance`:null;case`Clean Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Build Plate`:return`https://wiki.bambulab.com/en/filament-acc/acc/pei-plate-clean-guide`;case`Check PTFE Tube`:return r||i?`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`:a||o?`https://wiki.bambulab.com/en/a1-mini/maintenance/ptfe-tube`:s?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:l?`https://wiki.bambulab.com/en/h2s/maintenance/replace-ptfe-tube-on-h2s-printer`:c?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`;case`Replace HEPA Filter`:case`HEPA Filter`:case`Replace Carbon Filter`:case`Carbon Filter`:return u?`https://wiki.bambulab.com/en/h2/maintenance/replace-smoke-purifier-air-filte`:`https://wiki.bambulab.com/en/x1/maintenance/replace-carbon-filter`;case`Lubricate Left Nozzle Rail`:case`Left Nozzle Rail`:return u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;default:return null}}var T5={Droplet:Zs,Flame:hc,Ruler:Kl,Sparkles:_u,Square:bu,Cable:ts,Wrench:td,Calendar:as,Timer:Nu,Cog:Rs,Fan:oc,Zap:id,Wind:$u,Thermometer:Mu,Layers:Jc,Box:Zo,Target:Du,RefreshCw:Hl,Settings:ru,Filter:wc,CircleDot:Cs};function E5(e){return e&&T5[e]||td}function D5(e,t,n){if(t===`days`){if(e<1)return n?n(`common.today`):`Today`;if(e===1)return n?n(`maintenance.day`):`1 day`;if(e<7){let t=Math.round(e);return n?n(`maintenance.days`,{count:t}):`${t} days`}if(e<180){let t=Math.round(e/7);return t===1?n?n(`maintenance.week`):`1 week`:n?n(`maintenance.weeks`,{count:t}):`${t} weeks`}let t=Math.round(e/30);return t===1?n?n(`maintenance.month`):`1 month`:n?n(`maintenance.months`,{count:t}):`${t} months`}else{if(e<1)return`${Math.round(e*60)}m`;if(e<24)return`${e<10?e.toFixed(1):Math.round(e)}h`;let t=e/24;if(t<7)return`${t<2?t.toFixed(1):Math.round(t)}d`;let n=t/7;return n<12?`${n<2?n.toFixed(1):Math.round(n)}w`:`${Math.round(n/4)}mo`}}function O5(e,t,n){return t===`days`?e===1?n?n(`maintenance.day`):`1 day`:e===7?n?n(`maintenance.week`):`1 week`:e===14?n?n(`maintenance.weeks`,{count:2}):`2 weeks`:e===30?n?n(`maintenance.month`):`1 month`:e===60?n?n(`maintenance.months`,{count:2}):`2 months`:e===90?n?n(`maintenance.months`,{count:3}):`3 months`:e===180?n?n(`maintenance.months`,{count:6}):`6 months`:e===365?n?n(`maintenance.year`):`1 year`:n?n(`maintenance.days`,{count:e}):`${e} days`:`${e}h`}function CKe({item:e,onPerform:t,onToggle:n,hasPermission:r,t:i}){let a=E5(e.maintenance_type_icon),o=e.interval_type||`hours`,s=(()=>{if(o===`days`){let t=e.days_since_maintenance??0;return Math.max(0,Math.min(100,t/e.interval_hours*100))}return Math.max(0,Math.min(100,(e.interval_hours-e.hours_until_due)/e.interval_hours*100))})(),c=()=>e.enabled?e.is_due?`text-red-700 dark:text-red-400`:e.is_warning?`text-amber-700 dark:text-amber-400`:`text-bambu-green`:`text-bambu-gray`;return(0,G.jsx)(`div`,{className:`rounded-xl border p-4 transition-all ${e.enabled?e.is_due?`bg-red-500/5 border-red-500/20`:e.is_warning?`bg-amber-500/5 border-amber-500/20`:`bg-bambu-dark-secondary border-bambu-dark-tertiary`:`bg-bambu-dark-secondary/50`}`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3 max-[550px]:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative p-2.5 rounded-lg shrink-0 ${e.is_due?`bg-red-500/20`:e.is_warning?`bg-amber-500/20`:e.enabled?`bg-bambu-dark`:`bg-bambu-dark/50`}`,children:[(0,G.jsx)(a,{className:`w-5 h-5 ${c()}`}),e.enabled&&(e.is_due||e.is_warning)&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 w-2.5 h-2.5 rounded-full ${e.is_due?`bg-red-500`:`bg-amber-500`} animate-pulse`})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-medium truncate ${e.enabled?`text-white`:`text-bambu-gray`}`,children:e.maintenance_type_name}),o===`days`&&(0,G.jsx)(`span`,{title:i(`maintenance.timeBasedInterval`),children:(0,G.jsx)(as,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`})}),(()=>{let t=e.maintenance_type_wiki_url||SKe(e.maintenance_type_name,e.printer_model);return t?(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-gray hover:text-bambu-green transition-colors shrink-0`,title:i(`maintenance.viewDocumentation`),onClick:e=>e.stopPropagation(),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):null})()]}),(0,G.jsx)(`div`,{className:`mt-2 mb-1.5`,children:(0,G.jsx)(`div`,{className:`w-full h-1.5 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500 ${e.enabled?e.is_due?`bg-red-500`:e.is_warning?`bg-amber-500`:`bg-bambu-green`:`bg-bambu-gray/30`}`,style:{width:`${s}%`}})})}),(0,G.jsxs)(`div`,{className:`text-xs flex items-center gap-1 ${c()}`,children:[e.is_due&&(0,G.jsx)(Lu,{className:`w-3 h-3`}),e.is_warning&&!e.is_due&&(0,G.jsx)(js,{className:`w-3 h-3`}),!e.is_due&&!e.is_warning&&e.enabled&&(0,G.jsx)(fs,{className:`w-3 h-3`}),(()=>{if(!e.enabled)return i(`common.disabled`);if(o===`days`){let t=e.days_until_due??0;return e.is_due?i(`maintenance.overdueBy`,{duration:D5(Math.abs(t),`days`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:D5(t,`days`,i)}):i(`maintenance.timeLeft`,{duration:D5(t,`days`,i)})}else return e.is_due?i(`maintenance.overdueBy`,{duration:D5(Math.abs(e.hours_until_due),`hours`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:D5(e.hours_until_due,`hours`,i)}):i(`maintenance.timeLeft`,{duration:D5(e.hours_until_due,`hours`,i)})})()]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0 max-[550px]:w-full max-[550px]:justify-end max-[550px]:mt-1`,children:[(0,G.jsx)(`span`,{title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionUpdate`),children:(0,G.jsx)(pH,{checked:e.enabled,onChange:t=>n(e.id,t),disabled:!r(`maintenance:update`)})}),(0,G.jsxs)(Q,{size:`sm`,variant:e.is_due?`primary`:`secondary`,onClick:()=>t(e.id),disabled:!e.enabled||!r(`maintenance:update`),title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionPerform`),className:`!px-3`,children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`}),i(`common.reset`)]})]})]})})}function wKe({overview:e,onPerform:t,onToggle:n,onSetHours:r,hasPermission:i,t:a}){let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(e.total_print_hours.toFixed(1)),f=[...e.maintenance_items].sort((e,t)=>e.is_due&&!t.is_due?-1:!e.is_due&&t.is_due?1:e.is_warning&&!t.is_warning?-1:!e.is_warning&&t.is_warning?1:e.maintenance_type_id-t.maintenance_type_id),p=f.find(e=>e.enabled&&(e.is_due||e.is_warning)),m=()=>{let t=parseFloat(u);!isNaN(t)&&t>=0&&(r(e.printer_id,t),l(!1))};return(0,G.jsxs)(zd,{className:`overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`p-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:e.printer_name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.due_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),a(`maintenance.overdueCount`,{count:e.due_count})]}),e.warning_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),a(`maintenance.dueSoonCount`,{count:e.warning_count})]}),e.due_count===0&&e.warning_count===0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-bambu-green/20 text-bambu-green text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),a(`maintenance.allGood`)]})]})]}),(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm text-bambu-gray hover:text-white hover:bg-bambu-dark rounded-lg transition-colors`,children:[o?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`}),a(o?`common.collapse`:`common.expand`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-6 mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 bg-bambu-dark/50 rounded-lg`,children:(0,G.jsx)(Nu,{className:`w-4 h-4 text-bambu-gray`})}),c?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&m(),e.key===`Escape`&&l(!1)},className:`w-24 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm`,min:`0`,step:`1`,autoFocus:!0}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:a(`common.hours`)}),(0,G.jsx)(Q,{size:`sm`,onClick:m,children:a(`common.save`)}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(!1),children:a(`common.cancel`)})]}):(0,G.jsxs)(`button`,{onClick:()=>{i(`maintenance:update`)&&(d(Math.round(e.total_print_hours).toString()),l(!0))},className:`group ${i(`maintenance:update`)?``:`cursor-not-allowed opacity-60`}`,title:i(`maintenance:update`)?void 0:a(`maintenance.noPermissionEditHours`),children:[(0,G.jsxs)(`div`,{className:`text-sm font-medium text-white ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``} transition-colors flex items-center gap-1`,children:[Math.round(e.total_print_hours),` `,a(`common.hours`),(0,G.jsx)(Ol,{className:`w-3 h-3 text-bambu-gray ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``}`})]}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:a(`maintenance.totalPrintTime`)})]})]}),(0,G.jsx)(`div`,{className:`w-px h-10 bg-bambu-dark-tertiary`}),p&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${p.is_due?`bg-red-500/20`:`bg-amber-500/20`}`,children:(0,G.jsx)(E5(p.maintenance_type_icon),{className:`w-4 h-4 ${p.is_due?`text-red-600 dark:text-red-400`:`text-amber-600 dark:text-amber-400`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-sm font-medium ${p.is_due?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`}`,children:p.maintenance_type_name}),(0,G.jsx)(`div`,{className:`text-xs ${p.is_due?`text-red-700/80 dark:text-red-400/70`:`text-amber-700/80 dark:text-amber-400/70`}`,children:p.is_due?a(`common.overdue`):a(`maintenance.dueSoon`)})]})]})]})]}),o&&(0,G.jsx)(Vd,{className:`pt-0 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-3 pt-4`,children:f.map(e=>(0,G.jsx)(CKe,{item:e,onPerform:t,onToggle:n,hasPermission:i,t:a},e.id))})})]})}function TKe({overview:e,types:t,onUpdateInterval:n,onAddType:r,onUpdateType:i,onDeleteType:a,onRestoreDefaults:o,isRestoringDefaults:s,onAssignType:c,onRemoveItem:l,hasPermission:u,t:d}){let[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(`hours`),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(`100`),[T,E]=(0,y.useState)(`hours`),[D,O]=(0,y.useState)(`Wrench`),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(new Set),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(null),L=(0,y.useMemo)(()=>e?e.map(e=>({id:e.printer_id,name:e.printer_name})):[],[e]),R=t=>e?e.filter(e=>e.maintenance_items.some(e=>e.maintenance_type_id===t)).map(e=>({printerId:e.printer_id,printerName:e.printer_name,itemId:e.maintenance_items.find(e=>e.maintenance_type_id===t)?.id})):[],z=t=>{if(!e)return[];let n=new Set(R(t).map(e=>e.printerId));return L.filter(e=>!n.has(e.id))},[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(``),[ne,re]=(0,y.useState)(``),[ie,ae]=(0,y.useState)(`hours`),[oe,se]=(0,y.useState)(`Wrench`),[H,ce]=(0,y.useState)(``),le=e=>{V(e),te(e.name),re(e.default_interval_hours.toString()),ae(e.interval_type||`hours`),se(e.icon||`Wrench`),ce(e.wiki_url||``)},ue=()=>{B&&ee.trim()&&parseFloat(ne)>0&&(i(B.id,{name:ee.trim(),default_interval_hours:parseFloat(ne),interval_type:ie,icon:oe,wiki_url:H.trim()||null}),V(null))},de=(e,t,r)=>{let i=parseFloat(m);!isNaN(i)&&i>0&&n(e,{custom_interval_hours:Math.abs(i-t)<.01?null:i,custom_interval_type:g===r?null:g}),p(null)},fe=e=>{e.preventDefault(),x.trim()&&parseFloat(C)>0&&j.size>0&&(r({name:x.trim(),default_interval_hours:parseFloat(C),interval_type:T,icon:D,wiki_url:k.trim()||null},Array.from(j)),S(``),w(`100`),E(`hours`),A(``),M(new Set),b(!1))},pe=e=>{M(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},me=e?.map(e=>({printerId:e.printer_id,printerName:e.printer_name,items:e.maintenance_items.sort((e,t)=>e.maintenance_type_id-t.maintenance_type_id)})).sort((e,t)=>e.printerName.localeCompare(t.printerName))||[],he=t.filter(e=>e.is_system),ge=t.filter(e=>!e.is_system);return(0,G.jsxs)(`div`,{className:`space-y-8`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.maintenanceTypes`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.maintenanceTypesDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:o,disabled:!u(`maintenance:delete`)||s,title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),children:d(`maintenance.restoreDefaults`)}),(0,G.jsxs)(Q,{onClick:()=>b(!v),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionEditTypes`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),d(`maintenance.addCustomType`)]})]})]}),v&&(0,G.jsx)(zd,{className:`mb-6`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`form`,{onSubmit:fe,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{className:`lg:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`common.name`)}),(0,G.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.exampleName`),autoFocus:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalType`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>{E(e.target.value),e.target.value===`days`?w(`30`):w(`100`)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalValue`,{type:T===`days`?d(`maintenance.calendarDays`).toLowerCase():d(`common.hours`)})}),(0,G.jsx)(`input`,{type:`number`,value:C,onChange:e=>w(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]})]}),(0,G.jsx)(`div`,{className:`mt-4 flex items-end justify-between`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.icon`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:Object.keys(T5).map(e=>{let t=T5[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>O(e),className:`p-2 rounded-lg transition-colors ${D===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(t,{className:`w-4 h-4`})},e)})})]})}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.documentationLink`)}),(0,G.jsx)(`input`,{type:`url`,value:k,onChange:e=>A(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:`https://wiki.bambulab.com/...`})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.assignToPrinters`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:L.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>pe(e.id),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${j.has(e.id)?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:e.name},e.id))}),j.size===0&&(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1`,children:d(`maintenance.selectAtLeastOnePrinter`)})]}),(0,G.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>{b(!1),M(new Set)},children:d(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!x.trim()||j.size===0,children:d(`maintenance.addType`)})]})]})})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3`,children:[he.map(e=>{let t=E5(e.icon),n=e.interval_type||`hours`;return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),O5(e.default_interval_hours,n,d)]})]}),(0,G.jsx)(`button`,{onClick:()=>{u(`maintenance:delete`)&&I(e)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})},e.id)}),ge.map(e=>{let t=E5(e.icon),n=e.interval_type||`hours`;if(B?.id===e.id)return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:ee,onChange:e=>te(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`common.name`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`select`,{value:ie,onChange:e=>ae(e.target.value),className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:ne,onChange:e=>re(e.target.value),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Object.keys(T5).map(e=>{let t=T5[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>se(e),className:`p-1.5 rounded transition-colors ${oe===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:(0,G.jsx)(t,{className:`w-3.5 h-3.5`})},e)})}),(0,G.jsx)(`input`,{type:`url`,value:H,onChange:e=>ce(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.documentationLink`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,onClick:ue,disabled:!ee.trim(),children:d(`common.save`)}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>V(null),children:d(`common.cancel`)})]})]})},e.id);let r=R(e.id),i=z(e.id),o=N===e.id;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-green/20 rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-green`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-bambu-green/20 text-bambu-green text-[10px] font-medium rounded`,children:d(`maintenance.custom`)})]}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),O5(e.default_interval_hours,n,d)]})]}),(0,G.jsxs)(`button`,{onClick:()=>P(o?null:e.id),className:`px-2 py-1 rounded-lg border transition-colors flex items-center gap-1 ${r.length>0?`border-bambu-green/50 bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20`:`border-orange-300 bg-orange-50 text-orange-700 hover:bg-orange-100 dark:border-orange-400/50 dark:bg-orange-400/10 dark:text-orange-400 dark:hover:bg-orange-400/20`}`,title:d(`maintenance.printersAssignedClick`,{count:r.length}),children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:r.length}),(0,G.jsx)(ps,{className:`w-3 h-3 transition-transform ${o?`rotate-180`:``}`})]}),(0,G.jsx)(`button`,{onClick:()=>le(e),disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors ${u(`maintenance:update`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Ol,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{confirm(d(`maintenance.deleteTypeConfirm`,{name:e.name}))&&a(e.id)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}),o&&(0,G.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:d(`maintenance.assignedToPrinters`)}),r.length===0?(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:d(`maintenance.noPrintersAssigned`)}):(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-2`,children:r.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-dark rounded text-xs text-white`,children:[e.printerName,(0,G.jsx)(`button`,{onClick:()=>e.itemId&&l(e.itemId),disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?d(`maintenance.removeFromPrinter`):d(`maintenance.noPermissionRemovePrinter`),className:`ml-1 ${u(`maintenance:delete`)?`hover:text-red-600 dark:hover:text-red-400`:`opacity-50 cursor-not-allowed`}`,children:`×`})]},e.printerId))}),i.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:d(`maintenance.addPrinterShort`)}),i.map(t=>(0,G.jsxs)(`button`,{onClick:()=>c(t.id,e.id),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionAssignPrinter`),className:`px-2 py-1 bg-bambu-dark rounded text-xs transition-colors ${u(`maintenance:create`)?`hover:bg-bambu-green/20 text-bambu-gray hover:text-bambu-green`:`opacity-50 cursor-not-allowed text-bambu-gray`}`,children:[`+ `,t.name]},t.id))]})]})]},e.id)})]})]}),me.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.intervalOverrides`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]}),(0,G.jsx)(`div`,{className:`space-y-4`,children:me.map(e=>(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e.printerName}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2`,children:e.items.map(e=>{let n=E5(e.maintenance_type_icon),r=t.find(t=>t.id===e.maintenance_type_id),i=r?.default_interval_hours||e.interval_hours,a=r?.interval_type||`hours`,o=e.interval_type||`hours`,s=f===e.id;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(n,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-1 truncate`,children:e.maintenance_type_name}),s?(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g===`days`?(0,G.jsx)(as,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}):(0,G.jsx)(Nu,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}),(0,G.jsxs)(`select`,{value:g,onChange:e=>_(e.target.value),className:`px-1.5 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:m,onChange:e=>h(e.target.value),onKeyDown:t=>{t.key===`Enter`&&de(e.id,i,a),t.key===`Escape`&&p(null)},className:`w-16 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,min:`1`}),(0,G.jsx)(Q,{size:`sm`,onClick:()=>de(e.id,i,a),children:`OK`})]}):(0,G.jsxs)(`button`,{onClick:()=>{u(`maintenance:update`)&&(p(e.id),h(e.interval_hours.toString()),_(o))},disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditIntervals`),className:`px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-xs font-medium text-white transition-colors flex items-center gap-1 ${u(`maintenance:update`)?`hover:bg-bambu-dark-secondary hover:border-bambu-green`:`opacity-50 cursor-not-allowed`}`,children:[o===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),O5(e.interval_hours,o,d),(0,G.jsx)(Ol,{className:`w-3 h-3 text-bambu-gray`})]})]},e.id)})})]})},e.printerId))})]}),me.length===0&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(js,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:d(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray/70 mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]})}),F&&(0,G.jsx)(of,{title:d(`maintenance.deleteSystemTypeTitle`),message:d(`maintenance.deleteSystemTypeMessage`,{name:F.name}),confirmText:d(`common.delete`),cancelText:d(`common.cancel`),variant:`danger`,cancelVariant:`primary`,cardClassName:`bg-red-950/70 border border-red-800/70`,onConfirm:()=>{a(F.id),I(null)},onCancel:()=>I(null)})]})}function EKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),[i,a]=(0,y.useState)(`status`),{data:o,isLoading:s}=K({queryKey:[`maintenanceOverview`],queryFn:Z.getMaintenanceOverview}),{data:c}=K({queryKey:[`maintenanceTypes`],queryFn:Z.getMaintenanceTypes}),l=q({mutationFn:({id:e,notes:t})=>Z.performMaintenance(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),n(e(`maintenance.maintenanceComplete`))},onError:e=>{n(e.message,`error`)}}),u=q({mutationFn:({id:e,data:t})=>Z.updateMaintenanceItem(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>{n(e.message,`error`)}}),d=q({mutationFn:({id:e,data:t})=>Z.updateMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeUpdated`))},onError:e=>{n(e.message,`error`)}}),f=q({mutationFn:Z.deleteMaintenanceType,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeDeleted`))},onError:e=>{n(e.message,`error`)}}),p=q({mutationFn:Z.restoreDefaultMaintenanceTypes,onSuccess:r=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.defaultsRestored`,{count:r.restored}))},onError:e=>{n(e.message,`error`)}}),m=q({mutationFn:({printerId:e,hours:t})=>Z.setPrinterHours(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),n(e(`maintenance.printHoursUpdated`))},onError:e=>{n(e.message,`error`)}}),h=q({mutationFn:({printerId:e,typeId:t})=>Z.assignMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.printerAssigned`))},onError:e=>{n(e.message,`error`)}}),g=q({mutationFn:Z.removeMaintenanceItem,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.printerRemoved`))},onError:e=>{n(e.message,`error`)}}),_=e=>{l.mutate({id:e})},v=(e,t)=>{u.mutate({id:e,data:{enabled:t}})},b=(e,t)=>{m.mutate({printerId:e,hours:t})};if(s)return(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});let x=o?.reduce((e,t)=>e+t.due_count,0)||0,S=o?.reduce((e,t)=>e+t.warning_count,0)||0;return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(td,{className:`w-7 h-7 text-bambu-green`}),e(`maintenance.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i===`status`?(0,G.jsxs)(G.Fragment,{children:[x>0&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:e(`maintenance.dueCount`,{count:x})}),x>0&&S>0&&` · `,S>0&&(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:e(`maintenance.warningCount`,{count:S})}),x===0&&S===0&&(0,G.jsx)(`span`,{className:`text-bambu-green`,children:e(`maintenance.allOk`)})]}):e(`maintenance.configureSettings`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-1 mb-6 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`status`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${i===`status`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.statusTab`)}),(0,G.jsx)(`button`,{onClick:()=>a(`settings`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${i===`settings`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.settingsTab`)})]}),i===`status`?(0,G.jsx)(`div`,{className:`space-y-6`,children:o&&o.length>0?[...o].sort((e,t)=>{let n=e.due_count*10+e.warning_count,r=t.due_count*10+t.warning_count;return n===r?e.printer_name.localeCompare(t.printer_name):r-n}).map(t=>(0,G.jsx)(wKe,{overview:t,onPerform:_,onToggle:v,onSetHours:b,hasPermission:r,t:e},t.printer_id)):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-16`,children:[(0,G.jsx)(td,{className:`w-16 h-16 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:e(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`maintenance.configureSettings`)})]})})}):(0,G.jsx)(TKe,{overview:o,types:c||[],onUpdateInterval:(e,t)=>u.mutate({id:e,data:t}),onAddType:async(r,i)=>{let a=await Z.createMaintenanceType(r);for(let e of i)await Z.assignMaintenanceType(e,a.id);t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeUpdated`))},onUpdateType:(e,t)=>d.mutate({id:e,data:t}),onDeleteType:e=>f.mutate(e),onRestoreDefaults:()=>p.mutate(),isRestoringDefaults:p.isPending,onAssignType:(e,t)=>h.mutate({printerId:e,typeId:t}),onRemoveItem:e=>g.mutate(e),hasPermission:r,t:e})]})}var k5=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#6b7280`];function A5({project:e,onClose:t,onSave:n,isLoading:r,currencySymbol:i,t:a}){let[o,s]=(0,y.useState)(e?.name||``),[c,l]=(0,y.useState)(e?.description||``),[u,d]=(0,y.useState)(e?.color||k5[0]),[f,p]=(0,y.useState)(e?.target_count?.toString()||``),[m,h]=(0,y.useState)(e?.target_parts_count?.toString()||``),[g,_]=(0,y.useState)(e?.target_sets?.toString()||``),[v,b]=(0,y.useState)(e?.status||`active`),[x,S]=(0,y.useState)(e?.tags||``),[C,w]=(0,y.useState)(e?.due_date?.split(`T`)[0]||``),[T,E]=(0,y.useState)(e?.priority||`normal`),[D,O]=(0,y.useState)(e?.budget?.toString()||``),[k,A]=(0,y.useState)(e?.url||``),[j,M]=(0,y.useState)(null),[N,P]=(0,y.useState)(e?.parent_id??null),F=co(),{data:I}=K({queryKey:[`projects`,void 0],queryFn:()=>Z.getProjects()}),L=gje(I||[],e?.id),[R,z]=(0,y.useState)(e?.cover_image_filename||null),B=(0,y.useRef)(null),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)(0);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary flex flex-col max-h-[calc(100vh-2rem)]`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(e?`projects.editProject`:`projects.newProject`)})}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let r=k.trim();if(r&&!/^https?:\/\//i.test(r)){M(a(`projects.urlInvalid`));return}M(null),n({name:o.trim(),description:c.trim()||void 0,color:u,target_count:f?parseInt(f,10):void 0,target_parts_count:m?parseInt(m,10):void 0,target_sets:e?g?parseInt(g,10):null:g?parseInt(g,10):void 0,tags:e?x.trim()||null:x.trim()||void 0,due_date:e?C||null:C||void 0,priority:T,budget:D.trim()?parseFloat(D):null,url:e?r||null:r||void 0,parent_id:e?N??0:N??void 0,...e&&{status:v}})},className:`flex flex-col flex-1 min-h-0`,children:[(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.name`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.namePlaceholder`),required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.description`)}),(0,G.jsx)(`textarea`,{value:c,onChange:e=>l(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green resize-none`,placeholder:a(`projects.descriptionPlaceholder`),rows:2})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.urlLabel`)}),(0,G.jsx)(`input`,{type:`url`,value:k,onChange:e=>{A(e.target.value),j&&M(null)},className:`w-full bg-bambu-dark border rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none ${j?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,placeholder:a(`projects.urlPlaceholder`),maxLength:2048}),j&&(0,G.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400 mt-1`,children:j})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.parentLabel`)}),(0,G.jsxs)(`select`,{value:N??``,onChange:e=>P(e.target.value?parseInt(e.target.value,10):null),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:``,children:a(`projects.parentNone`)}),L.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.parentHint`)})]}),e&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.coverImageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-20 h-20 rounded bg-bambu-dark border border-bambu-dark-tertiary overflow-hidden flex items-center justify-center flex-shrink-0`,children:R?(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e.id,te),alt:a(`projects.coverImageAlt`),className:`w-full h-full object-cover`}):(0,G.jsx)(Hc,{className:`w-6 h-6 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(`input`,{ref:B,type:`file`,accept:`image/jpeg,image/png,image/gif,image/webp`,onChange:async t=>{let n=t.target.files?.[0];if(!(!n||!e)){ee(!0);try{z((await Z.uploadProjectCoverImage(e.id,n)).filename),ne(e=>e+1),F.invalidateQueries({queryKey:[`projects`]})}catch{}finally{ee(!1),B.current&&(B.current.value=``)}}},className:`hidden`}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>B.current?.click(),disabled:V,children:[V?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Vu,{className:`w-4 h-4 mr-1`}),a(R?`projects.coverImageReplace`:`projects.coverImageUpload`)]}),R&&(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:async()=>{if(e){ee(!0);try{await Z.deleteProjectCoverImage(e.id),z(null),ne(e=>e+1),F.invalidateQueries({queryKey:[`projects`]})}finally{ee(!1)}}},disabled:V,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mr-1`}),a(`projects.coverImageRemove`)]})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.color`)}),(0,G.jsx)(`div`,{className:`flex gap-2 flex-wrap`,children:k5.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>d(e),className:`w-8 h-8 rounded-full transition-transform ${u===e?`ring-2 ring-white ring-offset-2 ring-offset-bambu-dark-secondary scale-110`:``}`,style:{backgroundColor:e}},e))})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetPlates`)}),(0,G.jsx)(`input`,{type:`number`,value:f,onChange:e=>p(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetPlatesPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetPlatesHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetParts`)}),(0,G.jsx)(`input`,{type:`number`,value:m,onChange:e=>h(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetPartsPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetPartsHelp`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetSets`)}),(0,G.jsx)(`input`,{type:`number`,value:g,onChange:e=>_(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetSetsPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetSetsHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.tagsLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.tagsPlaceholder`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.dueDate`)}),(0,G.jsx)(`input`,{type:`date`,value:C,onChange:e=>w(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.priority`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>E(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`low`,children:a(`projects.priorityLow`)}),(0,G.jsx)(`option`,{value:`normal`,children:a(`projects.priorityNormal`)}),(0,G.jsx)(`option`,{value:`high`,children:a(`projects.priorityHigh`)}),(0,G.jsx)(`option`,{value:`urgent`,children:a(`projects.priorityUrgent`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projectDetail.cost.budget`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray pointer-events-none`,children:i}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:D,onChange:e=>O(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded pl-8 pr-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:`0.00`})]})]}),e&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.status`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>b(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`active`,children:a(`projects.statusActive`)}),(0,G.jsx)(`option`,{value:`completed`,children:a(`projects.statusCompleted`)}),(0,G.jsx)(`option`,{value:`archived`,children:a(`projects.statusArchived`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:a(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!o.trim()||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):a(e?`common.save`:`projects.create`)})]})]})]})})}function DKe({projectId:e,altText:t}){let n=(0,y.useRef)(null),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null);return(0,G.jsxs)(`div`,{ref:n,className:`relative flex-shrink-0`,onMouseEnter:()=>{if(!n.current)return;let e=n.current.getBoundingClientRect(),t=window.innerWidth,r=window.innerHeight,a=e.right+8;a+384>t-8&&(a=e.left-384-8);let s=e.top;s+384>r-8&&(s=r-384-8),s<8&&(s=8),o({left:a,top:s}),i(!0)},onMouseLeave:()=>i(!1),onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg overflow-hidden bg-bambu-dark border border-bambu-dark-tertiary`,children:(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e),alt:t,className:`w-full h-full object-cover`,loading:`lazy`})}),r&&a&&(0,At.createPortal)((0,G.jsx)(`div`,{className:`fixed z-[100] w-96 h-96 rounded-lg overflow-hidden border border-bambu-dark-tertiary shadow-2xl bg-bambu-dark pointer-events-none`,style:{left:a.left,top:a.top},"aria-hidden":`true`,children:(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e),alt:``,className:`w-full h-full object-contain`,loading:`lazy`})}),document.body)]})}function OKe({project:e,parentName:t,onClick:n,onEdit:r,onDelete:i,hasPermission:a,t:o}){let s=e.target_count?Math.round(e.archive_count/e.target_count*100):0,c=e.target_parts_count?Math.round(e.completed_count/e.target_parts_count*100):0,l=e.status===`completed`,u=e.status===`archived`,[d,f]=(0,y.useState)(!1),p=l?{icon:Ss,color:`text-bambu-green`,bg:`bg-bambu-green/10`}:u?{icon:Po,color:`text-bambu-gray`,bg:`bg-bambu-gray/10`}:e.queue_count>0?{icon:js,color:`text-blue-600 dark:text-blue-400`,bg:`bg-blue-50 dark:bg-blue-400/10`}:{icon:_c,color:`text-bambu-gray`,bg:`bg-bambu-gray/10`};return(0,G.jsxs)(`div`,{className:`group relative bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary hover:border-bambu-green/50 hover:shadow-lg hover:shadow-bambu-green/5 transition-all duration-300 cursor-pointer overflow-hidden`,onClick:n,children:[(0,G.jsx)(`div`,{className:`absolute top-0 left-0 w-1.5 h-full`,style:{backgroundColor:e.color||`#6b7280`,boxShadow:`0 0 12px ${e.color||`#6b7280`}40`}}),(0,G.jsxs)(`div`,{className:`p-5 pl-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[e.cover_image_filename?(0,G.jsx)(DKe,{projectId:e.id,altText:o(`projects.coverImageAlt`)}):(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${p.bg} flex-shrink-0`,children:(0,G.jsx)(p.icon,{className:`w-5 h-5 ${p.color}`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white truncate`,children:e.name}),e.url&&(0,G.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),title:e.url,"aria-label":o(`projects.openExternalUrl`),className:`inline-flex items-center justify-center w-6 h-6 rounded bg-bambu-dark border border-bambu-dark-tertiary text-bambu-green hover:bg-bambu-green/10 hover:border-bambu-green transition-colors flex-shrink-0`,children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}),e.target_parts_count?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium ${c>=100?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray`}`,children:[e.completed_count,`/`,e.target_parts_count,` `,o(`projects.parts`)]}):e.target_count?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium ${s>=100?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray`}`,children:[e.archive_count,`/`,e.target_count,` `,o(`projects.plates`)]}):e.completed_count>0?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium bg-bambu-dark text-bambu-gray`,children:[e.completed_count,` `,o(`projects.parts`)]}):null,l&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full whitespace-nowrap`,children:o(`projects.done`)}),u&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-gray/20 text-bambu-gray px-2 py-0.5 rounded-full whitespace-nowrap`,children:o(`projects.statusArchived`)}),e.child_count>0&&(0,G.jsxs)(`span`,{className:`text-xs bg-bambu-dark text-bambu-gray px-2 py-0.5 rounded-full whitespace-nowrap inline-flex items-center gap-1`,title:o(`projects.subProjectCount`,{count:e.child_count}),children:[(0,G.jsx)(xc,{className:`w-3 h-3`}),e.child_count]})]}),t&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:o(`projects.partOf`,{name:t})})]}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray/70 mt-1 line-clamp-1`,children:e.description}),e.archives&&e.archives.length>0&&(()=>{let t=e.archives.map(e=>e.filament_type).filter(Boolean).flatMap(e=>e.split(`,`).map(e=>e.trim())).filter(Boolean),n=[...new Set(t)],r=e.archives.map(e=>e.filament_color).filter(Boolean).flatMap(e=>e.split(`,`).map(e=>e.trim())).filter(e=>e.startsWith(`#`)||/^[0-9A-Fa-f]{6}$/.test(e)),i=[...new Set(r)];return n.length===0&&i.length===0?null:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-1.5`,children:[n.slice(0,3).map(e=>(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 bg-bambu-dark text-bambu-gray rounded`,children:e},e)),i.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[i.slice(0,5).map(e=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e.startsWith(`#`)?e:`#${e}`},title:e},e)),i.length>5&&(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray ml-0.5`,children:[`+`,i.length-5]})]})]})})()]})]}),(0,G.jsxs)(`div`,{className:`relative`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{className:`p-1.5 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100`,onClick:()=>f(!d),children:(0,G.jsx)($s,{className:`w-4 h-4`})}),d&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>f(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-8 z-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 text-left text-sm flex items-center gap-2 ${a(`projects:update`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{a(`projects:update`)&&(r(),f(!1))},disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:o(`projects.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4`}),o(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 text-left text-sm flex items-center gap-2 ${a(`projects:delete`)?`text-red-600 dark:text-red-400 hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{a(`projects:delete`)&&(i(),f(!1))},disabled:!a(`projects:delete`),title:a(`projects:delete`)?void 0:o(`projects.noDeletePermission`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),o(`common.delete`)]})]})]})]})]}),(0,G.jsx)(`div`,{className:`mb-4`,children:e.target_count||e.target_parts_count?(0,G.jsxs)(`div`,{className:`space-y-3`,children:[e.target_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`projects.plates`)}),(0,G.jsxs)(`span`,{className:s>=100?`text-bambu-green font-medium`:`text-white`,children:[e.archive_count,` / `,e.target_count]})]}),(0,G.jsx)(`div`,{className:`h-2 bg-bambu-dark/80 rounded-full overflow-hidden backdrop-blur-sm`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500 ease-out rounded-full relative`,style:{width:`${Math.min(s,100)}%`,background:s>=100?`linear-gradient(90deg, #22c55e, #4ade80)`:`linear-gradient(90deg, ${e.color||`#6b7280`}, ${e.color||`#6b7280`}cc)`,boxShadow:`0 0 8px ${s>=100?`#22c55e`:e.color||`#6b7280`}60`}})})]}),e.target_parts_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`projects.parts`)}),(0,G.jsxs)(`span`,{className:c>=100?`text-bambu-green font-medium`:`text-white`,children:[e.completed_count,` / `,e.target_parts_count]})]}),(0,G.jsx)(`div`,{className:`h-2 bg-bambu-dark/80 rounded-full overflow-hidden backdrop-blur-sm`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500 ease-out rounded-full relative`,style:{width:`${Math.min(c,100)}%`,background:c>=100?`linear-gradient(90deg, #22c55e, #4ade80)`:`linear-gradient(90deg, ${e.color||`#6b7280`}, ${e.color||`#6b7280`}cc)`,boxShadow:`0 0 8px ${c>=100?`#22c55e`:e.color||`#6b7280`}60`}})})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`text-xs text-red-600 dark:text-red-400`,children:[e.failed_count,` `,o(`projects.failed`)]})]}):e.completed_count>0||e.failed_count>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-xs`,children:[e.completed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.completed_count,` `,o(`projects.completed`)]})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.failed_count,` `,o(`projects.failed`)]})]}),e.queue_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-blue-600 dark:text-blue-400`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.queue_count,` `,o(`projects.inQueue`)]})]})]}):(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/60 italic`,children:o(`projects.noPrintsYet`)})}),e.archives&&e.archives.length>0&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:e.archives.slice(0,4).map(e=>(0,G.jsxs)(`div`,{className:`relative aspect-square rounded-lg bg-bambu-dark overflow-hidden border border-bambu-dark-tertiary`,title:e.print_name||`Unknown`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:e.print_name||``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray/50`,children:(0,G.jsx)(Cl,{className:`w-6 h-6`})}),e.status===`failed`&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-red-500/40 flex items-center justify-center`,children:(0,G.jsx)(Lu,{className:`w-4 h-4 text-white`})})]},e.id))}),e.archive_count>4&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5 text-center`,children:o(`common.more`,{count:e.archive_count-4})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-xs text-bambu-gray`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:o(`projects.printJobs`),children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5 text-blue-600 dark:text-blue-400`}),(0,G.jsxs)(`span`,{children:[e.archive_count,` `,o(`projects.plates`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:o(`projects.partsPrinted`),children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5 text-bambu-green`}),(0,G.jsxs)(`span`,{children:[e.completed_count,` `,o(`projects.parts`)]})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-red-600 dark:text-red-400`,title:o(`projects.failedParts`),children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:e.failed_count})]}),e.queue_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-yellow-600 dark:text-yellow-400`,title:o(`projects.inQueue`),children:[(0,G.jsx)($c,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:e.queue_count})]})]}),(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray/50 group-hover:text-bambu-gray transition-colors`})]})]})]})}function kKe(){let{t:e}=U(),t=or(),n=co(),{showToast:r}=qd(),{hasPermission:i}=Nd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(),[l,u]=(0,y.useState)(`active`),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(()=>localStorage.getItem(`projects-collapse-subprojects`)===`true`),[h,g]=(0,y.useState)({}),_=()=>{let e=!p;m(e),g({}),localStorage.setItem(`projects-collapse-subprojects`,String(e))},{data:v}=K({queryKey:[`settings`],queryFn:Z.getSettings}),b=Lf(v?.currency||`USD`),{data:x,isLoading:S}=K({queryKey:[`projects`,l===`all`?void 0:l],queryFn:()=>Z.getProjects(l===`all`?void 0:l)}),{data:C}=K({queryKey:[`projects`,void 0],queryFn:()=>Z.getProjects()}),w=new Map((C||[]).map(e=>[e.id,e.name])),T=x||[],E=new Set(T.map(e=>e.id)),D=new Map;for(let e of T)if(e.parent_id!==null&&E.has(e.parent_id)){let t=D.get(e.parent_id)||[];t.push(e),D.set(e.parent_id,t)}let O=new Set,k=e=>{if(!O.has(e)){O.add(e);for(let t of D.get(e)||[])k(t.id)}},A=[];for(let e of T)e.parent_id!==null&&E.has(e.parent_id)||(A.push(e),k(e.id));for(let e of T)O.has(e.id)||(A.push(e),k(e.id));let j=(t,n,r)=>{let a=(0,G.jsx)(OKe,{project:t,parentName:n===0&&t.parent_id!==null?w.get(t.parent_id):void 0,onClick:()=>ee(t),onEdit:()=>V(t),onDelete:()=>te(t.id),hasPermission:i,t:e}),o=new Set(r).add(t.id),s=(D.get(t.id)||[]).filter(e=>!o.has(e.id));if(s.length===0)return(0,G.jsx)(`div`,{children:a},t.id);let c=h[t.id]??!p;return(0,G.jsxs)(`div`,{className:c?`col-span-full space-y-4`:`space-y-4`,children:[a,(0,G.jsxs)(`div`,{className:`ml-4 md:ml-8 pl-4 md:pl-6 border-l-2 rounded-l space-y-4`,style:{borderColor:t.color||`#6b7280`},children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>g(e=>({...e,[t.id]:!c})),"aria-expanded":c,title:e(c?`projects.collapseSubProjects`:`projects.expandSubProjects`),className:`text-xs uppercase tracking-wide text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5 max-w-full min-w-0`,children:[c?(0,G.jsx)(ps,{className:`w-3.5 h-3.5 flex-shrink-0`}):(0,G.jsx)(ms,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(xc,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e(`projects.subProjectsOf`,{name:t.name})}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-bambu-dark normal-case tracking-normal flex-shrink-0`,children:s.length})]}),c&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-8`,children:s.map(e=>j(e,n+1,o))})]})]},t.id)},M=q({mutationFn:e=>Z.createProject(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),o(!1),r(e(`projects.toast.created`),`success`)},onError:e=>{r(e.message,`error`)}}),N=q({mutationFn:({id:e,data:t})=>Z.updateProject(e,t),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),o(!1),c(void 0),r(e(`projects.toast.updated`),`success`)},onError:e=>{r(e.message,`error`)}}),P=q({mutationFn:e=>Z.deleteProject(e),onSuccess:()=>{f(null),r(e(`projects.toast.deleted`),`success`),setTimeout(()=>window.location.reload(),100)},onError:e=>{f(null),r(e.message,`error`)}}),F=q({mutationFn:e=>Z.importProject(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),r(e(`projects.toast.imported`),`success`)},onError:e=>{r(e.message,`error`)}}),I=(0,y.useRef)(null),L=async()=>{try{let t=await Z.getProjects(),n=await Promise.all(t.map(async e=>await Z.exportProjectJson(e.id))),i=new Blob([JSON.stringify(n,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`bambuddy_projects_${new Date().toISOString().split(`T`)[0]}.json`,o.click(),URL.revokeObjectURL(a),r(e(`projects.toast.exported`),`success`)}catch(e){r(e.message,`error`)}},R=()=>{I.current?.click()},z=async t=>{let i=t.target.files?.[0];if(i){try{if(i.name.toLowerCase().endsWith(`.zip`))await Z.importProjectFile(i),n.invalidateQueries({queryKey:[`projects`]}),r(e(`projects.toast.imported`),`success`);else{let t=await i.text(),n=JSON.parse(t),a=Array.isArray(n)?n:[n];for(let e of a)await F.mutateAsync(e);a.length>1&&r(e(`projects.toast.multipleImported`,{count:a.length}),`success`)}}catch(t){r(`${e(`projects.toast.importFailed`)}: ${t.message}`,`error`)}t.target.value=``}},B=e=>{s?N.mutate({id:s.id,data:e}):M.mutate(e)},V=e=>{c(e),o(!0)},ee=e=>{t(`/projects/${e.id}`)},te=e=>{f(e)},ne=()=>{d!==null&&P.mutate(d)},re=C?.reduce((e,t)=>(e[t.status]=(e[t.status]||0)+1,e.all=(e.all||0)+1,e),{})||{};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsx)(`input`,{ref:I,type:`file`,accept:`.json,.zip`,onChange:z,className:`hidden`}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(_c,{className:`w-7 h-7 text-bambu-green`}),e(`projects.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`projects.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:R,disabled:!i(`projects:create`),title:i(`projects:create`)?e(`projects.importProject`):e(`projects.noImportPermission`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),e(`projects.import`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:L,disabled:!i(`projects:read`),title:i(`projects:read`)?e(`projects.exportAll`):e(`projects.noExportPermission`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),e(`projects.export`)]}),(0,G.jsxs)(Q,{onClick:()=>o(!0),className:`sm:w-auto w-full`,disabled:!i(`projects:create`),title:i(`projects:create`)?void 0:e(`projects.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`projects.newProject`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`flex gap-1 p-1 bg-bambu-dark rounded-xl w-fit`,children:[{key:`active`,label:e(`projects.statusActive`),icon:js},{key:`completed`,label:e(`projects.statusCompleted`),icon:Ss},{key:`archived`,label:e(`projects.statusArchived`),icon:Po},{key:`all`,label:e(`common.all`),icon:_c}].map(({key:e,label:t,icon:n})=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`flex items-center gap-2 px-4 py-2 text-sm rounded-lg transition-all ${l===e?`bg-bambu-card text-white shadow-sm`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(n,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:t}),re[e]>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full ${l===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary`}`,children:re[e]})]},e))}),D.size>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:_,"aria-pressed":p,title:e(p?`projects.expandSubProjects`:`projects.collapseSubProjects`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-lg transition-colors ${p?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(xc,{className:`w-4 h-4`}),e(`common.collapse`)]})]}),S?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-20`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`projects.loading`)})]})}):x?.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-20 px-4`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(_c,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:l===`all`?e(`projects.noProjects`):e(`projects.noProjectsFiltered`,{status:l})}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:l===`all`?e(`projects.createFirst`):e(`projects.noProjectsFilteredHelp`,{status:l})}),l===`all`&&(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!i(`projects:create`),title:i(`projects:create`)?void 0:e(`projects.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`projects.createFirstButton`)]})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8`,children:A.map(e=>j(e,0,new Set))}),d!==null&&(0,G.jsx)(of,{title:e(`projects.deleteProject`),message:e(`projects.deleteConfirm`),confirmText:e(`projects.deleteProject`),variant:`danger`,onConfirm:ne,onCancel:()=>f(null)}),a&&(0,G.jsx)(A5,{project:s,onClose:()=>{o(!1),c(void 0)},onSave:B,isLoading:M.isPending||N.isPending,currencySymbol:b,t:e})]})}function j5(e){let t=(e.file_type||``).toLowerCase();if(t===`gcode`||t===`gcode.3mf`)return!0;let n=(e.filename||``).toLowerCase();return n.endsWith(`.gcode`)||n.endsWith(`.gcode.3mf`)}function M5(e,t,n){return j5(e)?!1:t?dje(e.filename):uje(e.filename,n)}function N5(e){return e>=1e3?`${(e/1e3).toFixed(2)}kg`:`${Math.round(e)}g`}function AKe({status:e,t}){let n={active:`bg-bambu-green/20 text-bambu-green`,completed:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,archived:`bg-bambu-gray/20 text-bambu-gray`},r=n[e]||n.active,i={active:t(`projectDetail.status.active`),completed:t(`projectDetail.status.completed`),archived:t(`projectDetail.status.archived`)};return(0,G.jsx)(`span`,{className:`px-2 py-1 rounded text-sm font-medium ${r}`,children:i[e]||e.charAt(0).toUpperCase()+e.slice(1)})}function P5({icon:e,label:t,value:n,subValue:r,hint:i,color:a=`text-bambu-gray`}){return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,title:i,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark ${a}`,children:(0,G.jsx)(e,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t}),(0,G.jsx)(`p`,{className:`text-xl font-semibold text-white`,children:n}),r&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:r})]})]})})})}function jKe({archives:e,t}){return e.length===0?(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-12 h-12 mx-auto mb-2 opacity-50`}),(0,G.jsx)(`p`,{children:t(`projectDetail.noPrints`)})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3`,children:e.map(e=>(0,G.jsxs)(Ai,{to:`/archives?search=${encodeURIComponent(e.print_name||``)}`,className:`group relative aspect-square rounded-lg bg-bambu-dark border border-bambu-dark-tertiary overflow-hidden hover:border-bambu-green transition-colors`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:e.print_name||`Print`,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Cl,{className:`w-8 h-8`})}),e.status===`failed`&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-red-500/30 flex items-center justify-center`,children:(0,G.jsx)(Ds,{className:`w-8 h-8 text-white`})}),e.status===`completed`&&(0,G.jsx)(`div`,{className:`absolute top-1 right-1`,children:(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green`})}),(0,G.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/80 to-transparent p-2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,G.jsx)(`p`,{className:`text-xs text-white truncate`,children:e.print_name||`Unknown`})})]},e.id))})}function MKe({priority:e,t}){let n={low:{color:`bg-gray-500/20 text-gray-400`,label:t(`projectDetail.priority.low`)},normal:{color:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,label:t(`projectDetail.priority.normal`)},high:{color:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`,label:t(`projectDetail.priority.high`)},urgent:{color:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,label:t(`projectDetail.priority.urgent`)}},{color:r,label:i}=n[e]||n.normal;return(0,G.jsxs)(`span`,{className:`px-2 py-1 rounded text-xs font-medium flex items-center gap-1 ${r}`,children:[e===`urgent`&&(0,G.jsx)(Lu,{className:`w-3 h-3`}),i]})}function F5(e,t){if(!e)return null;let n=rp(e);if(!n)return null;let r=new Date,i=Math.ceil((n.getTime()-r.getTime())/(1e3*60*60*24));return i<0?{color:`text-red-700 dark:text-red-400`,label:t(`projectDetail.dueDate.overdue`)}:i===0?{color:`text-orange-700 dark:text-orange-400`,label:t(`projectDetail.dueDate.today`)}:i<=3?{color:`text-yellow-700 dark:text-yellow-400`,label:t(`projectDetail.dueDate.daysLeft`,{count:i})}:{color:`text-bambu-gray`,label:t(`projectDetail.dueDate.daysLeft`,{count:i})}}function NKe(){let{id:e}=dr(),t=or(),{t:n}=U(),r=co(),{showToast:i}=qd(),{hasPermission:a}=Nd(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),m=parseInt(e||`0`,10),{data:h,isLoading:g,error:_}=K({queryKey:[`project`,m],queryFn:()=>Z.getProject(m),enabled:m>0}),{data:v,isLoading:b}=K({queryKey:[`project-archives`,m],queryFn:()=>Z.getProjectArchives(m),enabled:m>0}),{data:x,isLoading:S}=K({queryKey:[`project-bom`,m],queryFn:()=>Z.getProjectBOM(m),enabled:m>0}),{data:C,isLoading:w}=K({queryKey:[`project-timeline`,m],queryFn:()=>Z.getProjectTimeline(m,20),enabled:m>0}),{data:T}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:E}=K({queryKey:[`project-folders`,m],queryFn:()=>Z.getLibraryFoldersByProject(m),enabled:m>0}),{data:D,isLoading:O}=K({queryKey:[`project-files`,m],queryFn:()=>Z.getLibraryFiles(null,!1,m),enabled:m>0}),k=(0,y.useMemo)(()=>{let e=new Map;for(let t of D??[])if(t.folder_id!=null){let n=e.get(t.folder_id)??[];n.push(t),e.set(t.folder_id,n)}return e},[D]),{data:A}=K({queryKey:[`project-file-progress`,m],queryFn:()=>Z.getProjectFileProgress(m),enabled:m>0}),j=(0,y.useMemo)(()=>{let e=new Map;for(let t of A??[])e.set(t.file_id,t.completed_count);return e},[A]),M=(0,y.useMemo)(()=>{let e=h?.target_sets;if(!e||!D)return null;let t=D.filter(e=>j5(e));return t.length===0?null:Math.min(...t.map(t=>Math.min(j.get(t.id)??0,e)))},[h?.target_sets,D,j]),N=Lf(T?.currency||`USD`),P=T?.time_format||`system`,F=q({mutationFn:e=>Z.updateProject(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project`,m]}),r.invalidateQueries({queryKey:[`projects`]}),s(!1),l(!1),i(n(`projectDetail.toast.projectUpdated`),`success`)},onError:e=>{i(e.message,`error`)}}),I=()=>{d(h?.notes||``),l(!0)},L=()=>{F.mutate({notes:u})},R=()=>{l(!1),d(``)},[z,B]=(0,y.useState)(``),[V,ee]=(0,y.useState)(1),[te,ne]=(0,y.useState)(``),[re,ie]=(0,y.useState)(``),[ae,oe]=(0,y.useState)(``),[se,H]=(0,y.useState)(!1),[ce,le]=(0,y.useState)(!1),[ue,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(``),[me,he]=(0,y.useState)(1),[ge,_e]=(0,y.useState)(``),[ve,ye]=(0,y.useState)(``),[be,xe]=(0,y.useState)(``),[Se,Ce]=(0,y.useState)({isOpen:!1,title:``,message:``,onConfirm:()=>{}}),we=q({mutationFn:e=>Z.createBOMItem(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),B(``),ee(1),ne(``),ie(``),oe(``),H(!1),i(n(`projectDetail.toast.partAdded`),`success`)},onError:e=>i(e.message,`error`)}),Te=q({mutationFn:({itemId:e,data:t})=>Z.updateBOMItem(m,e,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),de(null)},onError:e=>i(e.message,`error`)}),Ee=q({mutationFn:e=>Z.deleteBOMItem(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),i(n(`projectDetail.toast.partRemoved`),`success`)},onError:e=>i(e.message,`error`)}),De=e=>{e.preventDefault(),z.trim()&&we.mutate({name:z.trim(),quantity_needed:V,unit_price:te?parseFloat(te):void 0,sourcing_url:re.trim()||void 0,remarks:ae.trim()||void 0})},Oe=e=>{let t=e.is_complete?0:e.quantity_needed;Te.mutate({itemId:e.id,data:{quantity_acquired:t}})},ke=(e,t)=>{Ce({isOpen:!0,title:n(`projectDetail.bom.deletePart`),message:n(`projectDetail.bom.deleteConfirm`,{name:t}),onConfirm:()=>{Ce(e=>({...e,isOpen:!1})),Ee.mutate(e)}})},Ae=e=>{de(e),pe(e.name),he(e.quantity_needed),_e(e.unit_price?.toString()||``),ye(e.sourcing_url||``),xe(e.remarks||``)},je=e=>{e.preventDefault(),!(!ue||!fe.trim())&&Te.mutate({itemId:ue.id,data:{name:fe.trim(),quantity_needed:me,unit_price:ge?parseFloat(ge):void 0,sourcing_url:ve.trim()||void 0,remarks:be.trim()||void 0}})},Me=()=>{de(null)},Ne=async()=>{try{let{blob:e,filename:t}=await Z.exportProjectZip(Number(m)),r=URL.createObjectURL(e),a=document.createElement(`a`);a.href=r,a.download=t||`${h?.name||`project`}_${new Date().toISOString().split(`T`)[0]}.zip`,a.click(),URL.revokeObjectURL(r),i(n(`projectDetail.toast.projectExported`),`success`)}catch(e){i(e.message,`error`)}},Pe=q({mutationFn:()=>Z.createTemplateFromProject(m),onSuccess:()=>{r.invalidateQueries({queryKey:[`projects`]}),i(n(`projectDetail.toast.templateCreated`),`success`)},onError:e=>i(e.message,`error`)}),Fe=e=>op(e,P,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`});if(g)return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});if(_||!h)return(0,G.jsxs)(`div`,{className:`text-center py-24`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:_?`${n(`common.error`)}: ${_.message}`:n(`projectDetail.notFound`)}),(0,G.jsx)(Q,{variant:`secondary`,className:`mt-4`,onClick:()=>t(`/projects`),children:n(`projectDetail.backToProjects`)})]});let Ie=h.stats,Le=Ie?.progress_percent??0,Re=Ie?.parts_progress_percent??0;return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Ai,{to:`/projects`,className:`hover:text-white transition-colors`,children:n(`nav.projects`)}),(0,G.jsx)(ms,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-white`,children:h.name})]}),(0,G.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`button`,{onClick:()=>t(`/projects`),className:`p-2 rounded-lg bg-bambu-card hover:bg-bambu-dark-tertiary transition-colors`,children:(0,G.jsx)(Lo,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full shrink-0`,style:{backgroundColor:h.color||`#6b7280`}}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:h.name}),h.description&&(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:h.description})]})]}),(0,G.jsx)(AKe,{status:h.status,t:n})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:Ne,disabled:!a(`projects:read`),title:a(`projects:read`)?n(`projectDetail.exportProject`):n(`projectDetail.noExportPermission`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),n(`projectDetail.export`)]}),(0,G.jsxs)(Q,{onClick:()=>s(!0),disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-2`}),n(`common.edit`)]})]})]}),(h.target_count||h.target_parts_count||h.target_sets)&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4 space-y-4`,children:[h.target_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.platesProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[Ie?.total_archives||0,` / `,h.target_count,` `,n(`projectDetail.progress.printJobs`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(Le,100)}%`,backgroundColor:Le>=100?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsxs)(`div`,{className:`flex justify-between mt-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.percentComplete`,{percent:Le.toFixed(0)})}),Ie?.remaining_prints!=null&&Ie.remaining_prints>0&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.remaining`,{count:Ie.remaining_prints})})]})]}),h.target_parts_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.partsProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[Ie?.completed_prints||0,` / `,h.target_parts_count,` `,n(`projectDetail.progress.parts`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(Re,100)}%`,backgroundColor:Re>=100?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsxs)(`div`,{className:`flex justify-between mt-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.percentComplete`,{percent:Re.toFixed(0)})}),Ie?.remaining_parts!=null&&Ie.remaining_parts>0&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.remaining`,{count:Ie.remaining_parts})})]})]}),h.target_sets?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.setsProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[M??0,` / `,h.target_sets,` `,n(`projectDetail.progress.sets`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min((M??0)/h.target_sets*100,100)}%`,backgroundColor:(M??0)>=h.target_sets?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:n(`projectDetail.progress.setsHint`)})]}):null]})}),Ie&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark text-bambu-green`,children:(0,G.jsx)(Cl,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.printJobs`)}),(0,G.jsxs)(`p`,{className:`text-xl font-semibold text-white`,children:[Ie.total_archives,` `,(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:n(`projectDetail.stats.total`)})]}),Ie.failed_prints>0&&(0,G.jsx)(`p`,{className:`text-sm text-status-error`,children:n(`projectDetail.stats.failed`,{count:Ie.failed_prints})}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.partsPrinted`,{count:Ie.completed_prints})})]})]})})}),(0,G.jsx)(P5,{icon:js,label:n(`projectDetail.stats.printTime`),value:fp(Ie.total_print_time_hours),color:`text-yellow-600 dark:text-yellow-400`}),(0,G.jsx)(P5,{icon:Rl,label:n(`projectDetail.stats.filamentUsed`),value:N5(Ie.total_filament_grams),color:`text-purple-600 dark:text-purple-400`})]}),h.rollup_stats&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-3`,children:[(0,G.jsx)(xc,{className:`w-5 h-5`}),n(`projectDetail.rollup.title`,{count:h.descendant_count})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.printJobs`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:h.rollup_stats.total_archives}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.partsPrinted`,{count:h.rollup_stats.completed_prints})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.printTime`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:fp(h.rollup_stats.total_print_time_hours)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.filamentUsed`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:N5(h.rollup_stats.total_filament_grams)})]}),(()=>{let e=h.rollup_stats.estimated_cost+h.rollup_stats.total_energy_cost+h.rollup_stats.bom_cost;return e<=0?null:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.totalCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-bambu-green`,children:[N,e.toFixed(2)]})]})})()]}),h.rollup_stats.progress_percent!==null&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.rollup.progress`)}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:n(`projectDetail.rollup.percentComplete`,{percent:h.rollup_stats.progress_percent.toFixed(0)})})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(h.rollup_stats.progress_percent,100)}%`,backgroundColor:h.rollup_stats.progress_percent>=100?`#22c55e`:h.color||`#6b7280`}})})]})]})}),Ie&&(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost;return Ie.estimated_cost>0||e>0||h.budget!==null})()&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white mb-3`,children:n(`projectDetail.cost.title`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.filamentCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[N,Ie.estimated_cost.toFixed(2)]})]}),Ie.total_energy_kwh>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.energy`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[Ie.total_energy_kwh.toFixed(3),` kWh`,Ie.total_energy_cost>0&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray ml-1`,children:[`(`,N,Ie.total_energy_cost.toFixed(2),`)`]})]})]}),(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost;return e<=0?null:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.totalCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-bambu-green`,children:[N,e.toFixed(2)]}),Ie.bom_cost>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.cost.includesBom`)})]})})(),h.budget!==null&&(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost,t=h.budget-e;return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.budget`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[n(`projectDetail.cost.total`),`: `,(0,G.jsxs)(`span`,{className:`text-white font-semibold`,children:[N,h.budget.toFixed(2)]})]}),(0,G.jsxs)(`p`,{className:`text-sm ${t>=0?`text-bambu-green`:`text-red-700 dark:text-red-400`}`,children:[n(`projectDetail.cost.remaining`),`: `,(0,G.jsxs)(`span`,{className:`font-semibold`,children:[N,t.toFixed(2)]})]})]})})()]})]})}),h.children&&h.children.length>0&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-3`,children:[(0,G.jsx)(xc,{className:`w-5 h-5`}),n(`projectDetail.subProjects.title`,{count:h.children.length})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:h.children.map(e=>(0,G.jsxs)(Ai,{to:`/projects/${e.id}`,className:`flex items-center justify-between gap-4 p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:e.color||`#6b7280`}}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded flex-shrink-0 ${e.status===`completed`?`bg-status-ok/20 text-status-ok`:e.status===`archived`?`bg-bambu-gray/20 text-bambu-gray`:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`}`,children:e.status}),e.descendant_count>0&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0 inline-flex items-center gap-1`,children:[(0,G.jsx)(xc,{className:`w-3 h-3`}),e.descendant_count]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm text-bambu-gray flex-shrink-0`,children:[e.total_archives>0&&(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`projectDetail.subProjects.jobs`,{count:e.total_archives})}),e.total_filament_grams>0&&(0,G.jsx)(`span`,{className:`hidden md:inline`,children:N5(e.total_filament_grams)}),e.total_cost>0&&(0,G.jsxs)(`span`,{className:`hidden md:inline`,children:[N,e.total_cost.toFixed(2)]}),e.progress_percent!==null&&(0,G.jsxs)(`span`,{children:[e.progress_percent.toFixed(0),`%`]})]})]},e.id))})]})}),h.parent_id&&h.parent_name&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.partOf`)}),(0,G.jsx)(Ai,{to:`/projects/${h.parent_id}`,className:`text-bambu-green hover:underline`,children:h.parent_name})]}),(h.tags||h.due_date||h.priority!==`normal`)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4`,children:[h.priority&&h.priority!==`normal`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.priorityLabel`)}),(0,G.jsx)(MKe,{priority:h.priority,t:n})]}),h.due_date&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:ap(h.due_date,{year:`numeric`,month:`short`,day:`numeric`})}),F5(h.due_date,n)&&(0,G.jsxs)(`span`,{className:`text-xs ${F5(h.due_date,n).color}`,children:[`(`,F5(h.due_date,n).label,`)`]})]}),h.tags&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:h.tags.split(`,`).map((e,t)=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-dark-tertiary text-bambu-gray text-xs rounded`,children:e.trim()},t))})]})]}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-5 h-5`}),n(`projectDetail.notes.title`)]}),c?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:R,disabled:F.isPending,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mr-1`}),n(`common.cancel`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:L,disabled:F.isPending,children:[F.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}):(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),n(`common.save`)]})]}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:I,disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.notes.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-1`}),n(`common.edit`)]})]}),c?(0,G.jsx)(z2,{content:u,onChange:d,placeholder:n(`projectDetail.notes.placeholder`)}):h.notes?(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:JG.sanitize(h.notes)}}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.notes.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(vc,{className:`w-5 h-5`}),n(`projectDetail.files.title`)]})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:[(0,G.jsx)(Ai,{to:`/files`,className:`text-bambu-green hover:underline`,children:n(`projectDetail.files.linkFolders`)}),` `,n(`projectDetail.files.forQuickAccess`)]}),E&&E.length>0?(0,G.jsx)(`div`,{className:`space-y-4`,children:E.map(e=>{let t=k.get(e.id)??[],r=O;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(Ai,{to:`/files?folder=${e.id}`,className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(vc,{className:`w-5 h-5 text-bambu-green shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`projectDetail.files.fileCount`,{count:e.file_count})})]})]}),(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray shrink-0`})]}),r?(0,G.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-bambu-gray text-sm`,children:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`})}):t.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray/60 text-xs italic px-3`,children:n(`projectDetail.files.noFiles`)}):(0,G.jsx)(`div`,{className:`space-y-1 pl-3`,children:t.map(e=>{let t=j5(e);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 shrink-0 rounded bg-bambu-dark overflow-hidden flex items-center justify-center`,children:e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getLibraryFileThumbnailUrl(e.id),alt:e.print_name||e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(sc,{className:`w-5 h-5 text-bambu-gray/40`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,title:e.print_name||e.filename,children:e.print_name||e.filename}),(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded font-medium ${e.file_type===`3mf`?`bg-bambu-green/20 text-bambu-green`:e.file_type===`gcode`||e.file_type===`gcode.3mf`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-bambu-gray/20 text-bambu-gray`}`,children:e.file_type.toUpperCase()})]}),t&&(()=>{let t=j.get(e.id)??0,r=h.target_sets;if(!r)return t>0?(0,G.jsxs)(`span`,{className:`shrink-0 text-xs px-1.5 py-0.5 rounded-full bg-bambu-dark text-bambu-gray`,title:n(`projectDetail.files.printedCount`,{count:t}),children:[t,`×`]}):null;let i=Math.min(t/r*100,100),a=t>=r?`text-status-ok`:t>0?`text-status-warning`:`text-bambu-gray`,o=t>=r?`bg-status-ok`:t>0?`bg-status-warning`:`bg-bambu-gray`;return(0,G.jsxs)(`div`,{className:`shrink-0 w-20`,title:n(`projectDetail.files.progressTooltip`,{done:t,target:r}),children:[(0,G.jsxs)(`p`,{className:`text-xs font-medium text-right ${a}`,children:[t,` / `,r]}),(0,G.jsx)(`div`,{className:`h-1 bg-bambu-dark rounded-full overflow-hidden mt-1`,children:(0,G.jsx)(`div`,{className:`h-full ${o}`,style:{width:`${i}%`}})})]})})(),t&&(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:(0,G.jsx)(`button`,{onClick:()=>p(e),title:n(`common.print`),className:`p-1.5 rounded hover:bg-bambu-green/20 text-bambu-green transition-colors`,children:(0,G.jsx)(Rl,{className:`w-4 h-4`})})})]},e.id)})})]},e.id)})}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.files.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(cu,{className:`w-5 h-5`}),n(`projectDetail.bom.title`),Ie&&Ie.bom_total_items>0&&(0,G.jsxs)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:[`(`,n(`projectDetail.bom.acquired`,{completed:Ie.bom_completed_items,total:Ie.bom_total_items}),`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[x&&x.some(e=>e.is_complete)&&(0,G.jsx)(`button`,{onClick:()=>le(!ce),className:`text-xs px-2 py-1 rounded transition-colors ${ce?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:n(ce?`projectDetail.bom.showAll`:`projectDetail.bom.hideDone`)}),!se&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>H(!0),disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.bom.noAddPermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),n(`projectDetail.bom.addPart`)]})]})]}),se&&(0,G.jsxs)(`form`,{onSubmit:De,className:`bg-bambu-dark rounded-lg p-4 mb-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:z,onChange:e=>B(e.target.value),className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.partNamePlaceholder`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:V,onChange:e=>ee(parseInt(e.target.value)||1),className:`w-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white focus:outline-none focus:border-bambu-green`,min:`1`,placeholder:n(`projectDetail.bom.qty`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:te,onChange:e=>ne(e.target.value),className:`flex-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.price`,{currency:N})})]})]}),(0,G.jsx)(`input`,{type:`url`,value:re,onChange:e=>ie(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.sourcingUrlPlaceholder`)}),(0,G.jsx)(`input`,{type:`text`,value:ae,onChange:e=>oe(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.remarksPlaceholder`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>H(!1),children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:!z.trim()||we.isPending,children:we.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`projectDetail.bom.addPart`)})]})]}),S?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):x&&x.length>0?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[x.filter(e=>!ce||!e.is_complete).map(e=>(0,G.jsx)(`div`,{className:`p-3 rounded-lg transition-colors ${e.is_complete?`bg-status-ok/10`:`bg-bambu-dark`}`,children:ue?.id===e.id?(0,G.jsxs)(`form`,{onSubmit:je,className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:fe,onChange:e=>pe(e.target.value),className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.partName`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:me,onChange:e=>he(parseInt(e.target.value)||1),className:`w-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white focus:outline-none focus:border-bambu-green`,min:`1`,placeholder:n(`projectDetail.bom.qty`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:ge,onChange:e=>_e(e.target.value),className:`flex-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.price`,{currency:N})})]})]}),(0,G.jsx)(`input`,{type:`url`,value:ve,onChange:e=>ye(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.sourcingUrlPlaceholder`)}),(0,G.jsx)(`input`,{type:`text`,value:be,onChange:e=>xe(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.remarksPlaceholder`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:Me,children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:!fe.trim()||Te.isPending,children:Te.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`common.save`)})]})]}):(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&Oe(e),disabled:Te.isPending||!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.bom.noUpdatePermission`),className:`w-5 h-5 mt-0.5 rounded border-2 flex items-center justify-center transition-colors shrink-0 ${e.is_complete?`bg-status-ok border-status-ok text-white`:a(`projects:update`)?`border-bambu-gray hover:border-bambu-green`:`border-bambu-gray/50 cursor-not-allowed`}`,children:e.is_complete&&(0,G.jsx)(xs,{className:`w-3 h-3`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm font-medium ${e.is_complete?`text-bambu-gray line-through`:`text-white`}`,children:[e.name,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal ml-2`,children:[`x`,e.quantity_needed]})]}),e.unit_price!==null&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-green whitespace-nowrap`,children:[N,(e.unit_price*e.quantity_needed).toFixed(2)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&Ae(e),disabled:!a(`projects:update`),className:`p-1 rounded transition-colors shrink-0 ${a(`projects:update`)?`hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`projects:update`)?n(`common.edit`):n(`projectDetail.bom.noEditPermission`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&ke(e.id,e.name),disabled:!a(`projects:update`),className:`p-1 rounded transition-colors shrink-0 ${a(`projects:update`)?`hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-red-400`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`projects:update`)?n(`common.delete`):n(`projectDetail.bom.noDeletePermission`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]}),e.sourcing_url&&(0,G.jsxs)(`a`,{href:e.sourcing_url,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 mt-1 text-xs text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300 transition-colors`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(rc,{className:`w-3 h-3 shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:(()=>{try{return new URL(e.sourcing_url).hostname.replace(`www.`,``)}catch{return e.sourcing_url}})()})]}),e.remarks&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray/80 italic`,children:e.remarks})]})]})},e.id)),Ie&&Ie.bom_cost>0&&(0,G.jsxs)(`div`,{className:`pt-2 mt-2 border-t border-bambu-dark-tertiary flex justify-between text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.bom.totalCost`)}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[N,Ie.bom_cost.toFixed(2)]})]})]}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.bom.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(zc,{className:`w-5 h-5`}),n(`projectDetail.timeline.title`)]})}),w?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):C&&C.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:C.slice(0,10).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`w-8 h-8 rounded-full flex items-center justify-center shrink-0 ${e.event_type===`print_completed`?`bg-status-ok/20 text-status-ok`:e.event_type===`print_failed`?`bg-status-error/20 text-status-error`:e.event_type===`print_started`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[e.event_type===`print_completed`&&(0,G.jsx)(xs,{className:`w-4 h-4`}),e.event_type===`print_failed`&&(0,G.jsx)(Ds,{className:`w-4 h-4`}),e.event_type===`print_started`&&(0,G.jsx)(Rl,{className:`w-4 h-4`}),e.event_type===`queued`&&(0,G.jsx)($c,{className:`w-4 h-4`}),e.event_type===`project_created`&&(0,G.jsx)(Fl,{className:`w-4 h-4`})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.title}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.description}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:Fe(e.timestamp)})]})]},t))}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.timeline.empty`)})]})}),!h.is_template&&(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Pe.mutate(),disabled:Pe.isPending||!a(`projects:create`),title:a(`projects:create`)?void 0:n(`projectDetail.template.noCreatePermission`),children:[Pe.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(Vs,{className:`w-4 h-4 mr-2`}),n(`projectDetail.template.saveAsTemplate`)]})}),Ie&&(Ie.queued_prints>0||Ie.in_progress_prints>0)&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)($c,{className:`w-5 h-5`}),n(`projectDetail.queue.title`)]}),(0,G.jsx)(Ai,{to:`/queue?project=${m}`,className:`text-sm text-bambu-green hover:underline`,children:n(`projectDetail.queue.viewAll`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm`,children:[Ie.in_progress_prints>0&&(0,G.jsx)(`span`,{className:`text-yellow-700 dark:text-yellow-400`,children:n(`projectDetail.queue.printing`,{count:Ie.in_progress_prints})}),Ie.queued_prints>0&&(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.queue.queued`,{count:Ie.queued_prints})})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-4`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5`}),n(`projectDetail.prints.title`,{count:v?.length||0})]})}),b?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):(0,G.jsx)(jKe,{archives:v||[],t:n})]}),o&&(0,G.jsx)(A5,{t:n,currencySymbol:N,project:{...h,archive_count:Ie?.total_archives||0,total_items:Ie?.total_items||0,completed_count:Ie?.completed_prints||0,failed_count:Ie?.failed_prints||0,queue_count:Ie?.queued_prints||0,progress_percent:Ie?.progress_percent||null,child_count:h.children?.length??0,archives:[]},onClose:()=>s(!1),onSave:e=>F.mutate(e),isLoading:F.isPending}),Se.isOpen&&(0,G.jsx)(of,{title:Se.title,message:Se.message,confirmText:n(`common.delete`),variant:`danger`,onConfirm:Se.onConfirm,onCancel:()=>Ce(e=>({...e,isOpen:!1}))}),f&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:f.id,archiveName:f.print_name||f.filename,projectId:m,onClose:()=>p(null),onSuccess:()=>{p(null),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`queue`]})}})]})}function I5({icon:e,label:t,dropdownLabel:n,onPrimary:r,items:i}){let[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a]),i.length===0?(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:r,children:[e,t]}):(0,G.jsxs)(`div`,{className:`relative inline-flex`,ref:s,children:[(0,G.jsxs)(`div`,{className:`flex relative z-50`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{o(!1),r()},className:`rounded-r-none`,children:[e,t]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>o(e=>!e),"aria-label":n,"aria-haspopup":`menu`,"aria-expanded":a,className:`rounded-l-none border-l border-bambu-dark px-2`,children:(0,G.jsx)(ps,{className:`w-4 h-4 transition-transform ${a?`rotate-180`:``}`})})]}),a&&(0,G.jsx)(`div`,{role:`menu`,className:`absolute right-0 top-full mt-1 w-56 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-50 py-1`,children:i.map(e=>(0,G.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{o(!1),e.onClick()},className:`w-full text-left px-3 py-2 text-sm text-bambu-gray-light hover:bg-bambu-dark-tertiary hover:text-white transition-colors flex items-center gap-2`,children:[(0,G.jsx)(rc,{className:`w-4 h-4 flex-shrink-0`}),e.label]},e.key))})]})}function PKe({archiveId:e,libraryFileId:t,title:n,fileType:r,onClose:i,onSliceWithBambuddy:a}){let{t:o}=U(),{showToast:s}=qd(),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=HW(c?.open_in_slicer,c?.preferred_slicer),u=t!=null,[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(!0),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(0),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),P=(0,y.useRef)(null),F=(0,y.useRef)(null),I=.35;(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,y.useEffect)(()=>{if(g(!0),u){let e=(r||``).toLowerCase(),t=e===`3mf`||e===`gcode.3mf`||e===`stl`;m({has_model:t,has_source:!1,build_volume:{x:256,y:256,z:256},filament_colors:[]}),f(t?`3d`:null),g(!1);return}if(!e){m(null),f(null),g(!1);return}Z.getArchiveCapabilities(e).then(e=>{m(e),e.has_model&&f(`3d`),g(!1)}).catch(()=>{m({has_model:!0,has_source:!1,build_volume:{x:256,y:256,z:256},filament_colors:[]}),f(`3d`),g(!1)})},[e,r,u]),(0,y.useEffect)(()=>{if(x(!0),C(null),T(0),u){let e=(r||``).toLowerCase();if(!t||!(e===`3mf`||e===`gcode.3mf`)){v(null),x(!1);return}Z.getLibraryFilePlates(t).then(e=>v(e)).catch(()=>v(null)).finally(()=>x(!1));return}if(!e){v(null),x(!1);return}Z.getArchivePlates(e).then(e=>v(e)).catch(()=>v(null)).finally(()=>x(!1))},[e,r,u,t]);let L=(0,y.useMemo)(()=>_?.plates??[],[_]),R=(_?.is_multi_plate??!1)&&L.length>1,z=E&&R,B=S==null?null:L.find(e=>e.index===S)??null,V=e=>e.object_count??e.objects?.length??0,ee=L.reduce((e,t)=>e+V(t),0),te=B?V(B):ee,ne=B?o(`modelViewer.plateNumber`,{number:B.index}):o(`modelViewer.allPlates`),re=L.length>0,ie=(0,y.useRef)(null),ae=(0,y.useRef)(null),[oe,se]=(0,y.useState)(10),[H,ce]=(0,y.useState)(3),le=L.length>oe,ue=Math.max(1,Math.ceil(L.length/oe)),de=le?L.slice(w*oe,(w+1)*oe):L;(0,y.useEffect)(()=>{if(!z){se(10),ce(3);return}let e=ie.current,t=ae.current;if(!e||!t)return;let n=0,r=()=>{let n=t.clientWidth,r=Math.floor(n/210),i=Math.max(3,Math.min(5,r||3));ce(e=>e===i?e:i);let a=window.getComputedStyle(e),o=Number.parseFloat(a.rowGap||`0`),s=e.querySelector(`button`)?.getBoundingClientRect().height??44,c=t.clientHeight,l=Math.max(1,Math.floor((c+o)/(s+o)))*i,u=Math.max(1,l-1);se(e=>e===u?e:u)},i=()=>{n&&cancelAnimationFrame(n),n=requestAnimationFrame(r)};i();let a=new ResizeObserver(i);return a.observe(t),a.observe(e),()=>{n&&cancelAnimationFrame(n),a.disconnect()}},[z,L.length]),(0,y.useEffect)(()=>{if(!le){T(0);return}T(e=>Math.min(e,ue-1))},[L.length,le,ue]),(0,y.useEffect)(()=>{if(!le||S==null)return;let e=L.findIndex(e=>e.index===S);if(e<0)return;let t=Math.floor(e/oe);T(e=>e===t?e:t)},[L,oe,S,le]),(0,y.useEffect)(()=>{if(!z){k(null),N(!1);return}if(M)return;let e=P.current,t=F.current;if(!e||!t)return;let n=e.clientHeight;if(!n)return;let r=Math.max(240,n*I),i=Math.max(160,n-10-r),a=Math.min(t.scrollHeight,i);k(Math.max(160,a))},[z,M,L.length,w,10,160,240,I]),(0,y.useEffect)(()=>{if(!A)return;let e=e=>{let t=P.current;if(!t)return;let n=t.getBoundingClientRect(),r=n.height;if(!r)return;let i=Math.max(240,r*I),a=Math.max(160,r-10-i);k(Math.min(a,Math.max(160,e.clientY-n.top)))},t=()=>{j(!1),N(!0)};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t),document.body.style.cursor=``,document.body.style.userSelect=``}},[A,10,160,240,I]);let fe=l===`orcaslicer`?[`orcaslicer`,`bambu_studio`]:[`bambu_studio`,`orcaslicer`],pe=u?fe.filter(e=>lje(r,e)):fe,me=pe.length>0,he=pje(r),ge=!!(u&&c?.use_slicer_api&&a&&he),_e=async r=>{if(!me)return;let i=n||`model`;try{if(u){let{token:e}=await Z.createLibrarySlicerToken(t),n=Z.getLibrarySlicerDownloadUrl(t,e,i);KW(`${window.location.origin}${n}`,r)}else{let{token:t}=await Z.createArchiveSlicerToken(e),n=Z.getArchiveSlicerDownloadUrl(e,t,i);KW(`${window.location.origin}${n}`,r)}}catch{s(o(`modelViewer.openInSlicerFailed`),`error`),KW(u?`${window.location.origin}${Z.getLibraryFileDownloadUrl(t)}`:`${window.location.origin}${Z.getArchiveForSlicer(e,i)}`,r)}},ve=ge?pe:pe.slice(1),ye=e=>o(e===`orcaslicer`?`settings.slicerOrcaSlicer`:`settings.slicerBambuStudio`),be=ve.map(e=>({key:e,label:o(`modelViewer.openInSlicerWith`,{slicer:ye(e)}),onClick:()=>_e(e)}));return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 ${E?`p-0`:`p-8`}`,onClick:i,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary w-full flex flex-col ${E?`h-full max-w-none rounded-none`:`h-[80vh] max-w-4xl rounded-xl`}`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1 mr-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,children:n}),re&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark-tertiary/70 px-2 py-1 rounded whitespace-nowrap`,children:[ne,`: `,o(`modelViewer.objectCount`,{count:te})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ge?(0,G.jsx)(I5,{icon:(0,G.jsx)(Rs,{className:`w-4 h-4`}),label:o(`slice.action`),dropdownLabel:o(`modelViewer.moreSlicerOptions`),onPrimary:()=>a?.(),items:be}):me?(0,G.jsx)(I5,{icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),label:pe[0]===l?o(`modelViewer.openInSlicer`):o(`modelViewer.openInSlicerWith`,{slicer:ye(pe[0])}),dropdownLabel:o(`modelViewer.moreSlicerOptions`),onPrimary:()=>_e(pe[0]),items:be}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:!0,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),o(`modelViewer.openInSlicer`)]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>D(e=>!e),title:E?`Exit fullscreen`:`Enter fullscreen`,children:E?(0,G.jsx)(fl,{className:`w-4 h-4`}):(0,G.jsx)(cl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),p&&(0,G.jsx)(`div`,{className:`flex border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{onClick:()=>p.has_model&&f(`3d`),disabled:!p.has_model,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${d===`3d`?`text-bambu-green border-b-2 border-bambu-green`:p.has_model?`text-bambu-gray hover:text-white`:`text-bambu-gray/30 cursor-not-allowed`}`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),o(`modelViewer.tabs.model`),!p.has_model&&(0,G.jsxs)(`span`,{className:`text-xs`,children:[`(`,o(`modelViewer.notAvailable`),`)`]})]})}),(0,G.jsx)(`div`,{className:`flex-1 overflow-hidden p-4`,children:h?(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):d===`3d`&&p?(0,G.jsxs)(`div`,{ref:P,className:`w-full h-full flex flex-col ${z?`gap-0 min-h-0`:`gap-3`}`,children:[R&&(0,G.jsxs)(`div`,{ref:F,style:z&&O!=null?{height:O}:void 0,className:`rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-3 ${z?`flex flex-col shrink-0`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4`}),o(`modelViewer.plates`),b&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`})]}),(0,G.jsxs)(`div`,{className:z?`flex flex-col min-h-0 flex-1`:void 0,children:[(0,G.jsx)(`div`,{ref:ae,className:z?`min-h-0 overflow-hidden pr-1 flex-1`:void 0,children:(0,G.jsxs)(`div`,{ref:ie,className:z?`grid gap-2`:`grid grid-cols-2 md:grid-cols-3 gap-2`,style:z?{gridTemplateColumns:`repeat(${H}, minmax(0, 1fr))`}:void 0,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>C(null),className:`flex items-center rounded-lg border text-left transition-colors ${z?`gap-1.5 p-1.5 w-full`:`gap-2 p-2`} ${S==null?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[(0,G.jsx)(`div`,{className:`rounded bg-bambu-dark-tertiary flex items-center justify-center ${z?`w-8 h-8`:`w-10 h-10`}`,children:(0,G.jsx)(Jc,{className:`${z?`w-4 h-4`:`w-5 h-5`} text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`${z?`text-xs`:`text-sm`} text-white font-medium truncate`,children:o(`modelViewer.allPlates`)}),(0,G.jsx)(`p`,{className:`${z?`text-[10px]`:`text-xs`} text-bambu-gray truncate`,children:o(`modelViewer.plateCount`,{count:L.length})})]}),S==null&&(0,G.jsx)(fs,{className:`${z?`w-3.5 h-3.5`:`w-4 h-4`} text-bambu-green flex-shrink-0`})]}),de.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>C(e.index),className:`flex items-center rounded-lg border text-left transition-colors ${z?`gap-1.5 p-1.5 w-full`:`gap-2 p-2`} ${S===e.index?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[e.has_thumbnail&&e.thumbnail_url?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`${z?`w-8 h-8`:`w-10 h-10`} rounded object-cover bg-bambu-dark-tertiary`}):(0,G.jsx)(`div`,{className:`rounded bg-bambu-dark-tertiary flex items-center justify-center ${z?`w-8 h-8`:`w-10 h-10`}`,children:(0,G.jsx)(Jc,{className:`${z?`w-4 h-4`:`w-5 h-5`} text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`${z?`text-xs`:`text-sm`} text-white font-medium truncate`,children:e.name||o(`modelViewer.plateNumber`,{number:e.index})}),(0,G.jsx)(`p`,{className:`${z?`text-[10px]`:`text-xs`} text-bambu-gray truncate`,children:o(`modelViewer.objectCount`,{count:e.object_count??e.objects?.length??0})})]}),S===e.index&&(0,G.jsx)(fs,{className:`${z?`w-3.5 h-3.5`:`w-4 h-4`} text-bambu-green flex-shrink-0`})]},e.index))]})}),(B||le)&&(0,G.jsxs)(`div`,{className:`mt-auto pt-3 flex items-center gap-4 text-xs text-bambu-gray overflow-x-auto`,children:[B&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:o(`modelViewer.plateNumber`,{number:B.index})}),B.print_time_seconds!=null&&(0,G.jsx)(`span`,{children:o(`modelViewer.eta`,{minutes:Math.round(B.print_time_seconds/60)})}),B.filament_used_grams!=null&&(0,G.jsxs)(`span`,{children:[B.filament_used_grams.toFixed(1),` g`]}),B.filaments.length>0&&(0,G.jsx)(`span`,{children:o(`modelViewer.filamentCount`,{count:B.filaments.length})})]}),le&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 whitespace-nowrap ${B?`ml-auto`:``}`,children:[(0,G.jsx)(`span`,{children:o(`modelViewer.pagination.pageOf`,{current:w+1,total:ue})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e=>Math.max(e-1,0)),disabled:w===0,className:`px-2 py-1 rounded border text-xs ${w===0?`border-bambu-dark-tertiary text-bambu-gray/40 cursor-not-allowed`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:o(`modelViewer.pagination.prev`)}),(()=>{let e=Math.max(0,w-2),t=Math.min(ue,e+5);t-e<5&&(e=Math.max(0,t-5));let n=Array.from({length:t-e},(t,n)=>e+n);return(0,G.jsxs)(G.Fragment,{children:[e>0&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(0),className:`px-2 py-1 rounded border text-xs ${w===0?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:`1`}),e>1&&(0,G.jsx)(`span`,{className:`px-1`,children:`…`}),n.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e),className:`px-2 py-1 rounded border text-xs ${w===e?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:e+1},e)),tT(ue-1),className:`px-2 py-1 rounded border text-xs ${w===ue-1?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:ue})]})})(),(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e=>Math.min(e+1,ue-1)),disabled:w>=ue-1,className:`px-2 py-1 rounded border text-xs ${w>=ue-1?`border-bambu-dark-tertiary text-bambu-gray/40 cursor-not-allowed`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:o(`modelViewer.pagination.next`)})]})]})]})]})]}),z&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,onMouseDown:e=>{e.preventDefault(),j(!0),N(!0)},className:`h-2 cursor-row-resize flex items-center justify-center ${A?`bg-bambu-dark-tertiary`:`bg-bambu-dark-secondary/60 hover:bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`div`,{className:`w-12 h-1 rounded-full bg-bambu-gray/50`})}),(0,G.jsx)(`div`,{className:`flex-1 ${z?`min-h-0`:``}`,children:(0,G.jsx)(rT,{url:u?Z.getLibraryFileDownloadUrl(t):p.has_source?Z.getSource3mfDownloadUrl(e):Z.getArchiveDownload(e),fileType:r,buildVolume:p.build_volume,filamentColors:p.filament_colors,selectedPlateId:S,className:`w-full h-full`})})]}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:o(`modelViewer.noPreview`)})})]})})}var L5=[`library-tags`];function FKe({open:e,fileIds:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),[o,s]=(0,y.useState)(`add`),[c,l]=(0,y.useState)(new Set),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``);(0,y.useEffect)(()=>{e||(s(`add`),l(new Set),d(``),p(``))},[e]);let{data:m=[],isLoading:h}=K({queryKey:L5,queryFn:Z.getLibraryTags,enabled:e}),g=(0,y.useMemo)(()=>{let e=u.trim().toLowerCase();return e?m.filter(t=>t.name.toLowerCase().includes(e)):m},[m,u]),_=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=q({mutationFn:e=>Z.createLibraryTag(e),onSuccess:e=>{l(t=>new Set(t).add(e.id)),p(``),i.invalidateQueries({queryKey:L5})},onError:e=>{a(e.message||r(`fileManager.tags.saveFailed`),`error`)}}),b=q({mutationFn:()=>Z.bulkAssignLibraryTags(t,Array.from(c),o),onSuccess:e=>{a(o===`add`?r(`fileManager.tags.applyAddSuccess`,{count:e.associations_added,files:e.files_updated}):r(`fileManager.tags.applyRemoveSuccess`,{count:e.associations_removed,files:e.files_updated}),`success`),i.invalidateQueries({queryKey:[`library-files`]}),i.invalidateQueries({queryKey:L5}),n()},onError:e=>{a(e.message||r(`fileManager.tags.applyFailed`),`error`)}});if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&!b.isPending&&!v.isPending&&n()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,n,b.isPending,v.isPending]),!e)return null;let x=!f.trim()||v.isPending||m.some(e=>e.name.toLowerCase()===f.trim().toLowerCase()),S=`bulk-tags-picker-title`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>!b.isPending&&n()}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":S,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-5 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{id:S,className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-green`}),r(`fileManager.tags.bulkTitle`,{count:t.length})]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:n,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`px-5 py-3 border-b border-bambu-dark-tertiary flex gap-4 text-sm`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`bulk-action`,checked:o===`add`,onChange:()=>s(`add`),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:r(`fileManager.tags.actionAdd`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`bulk-action`,checked:o===`remove`,onChange:()=>s(`remove`),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:r(`fileManager.tags.actionRemove`)})]})]}),(0,G.jsx)(`div`,{className:`px-5 py-3 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:r(`fileManager.tags.searchPlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 min-h-[8rem] max-h-[24rem]`,children:h?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-12 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),r(`common.loading`)]}):g.length===0?(0,G.jsx)(`div`,{className:`py-12 text-center text-bambu-gray text-sm`,children:m.length===0?r(`fileManager.tags.empty`):r(`fileManager.tags.noMatches`)}):(0,G.jsx)(`ul`,{className:`divide-y divide-bambu-dark-tertiary/40`,children:g.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-5 py-2 hover:bg-bambu-dark-tertiary/30 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c.has(e.id),onChange:()=>_(e.id),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate flex-1`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.file_count})]})},e.id))})}),o===`add`&&(0,G.jsxs)(`div`,{className:`px-5 py-3 border-t border-bambu-dark-tertiary flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:r(`fileManager.tags.createPlaceholder`),maxLength:64,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,onKeyDown:e=>{e.key===`Enter`&&!x&&(e.preventDefault(),v.mutate(f.trim()))}}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>v.mutate(f.trim()),disabled:x,children:[v.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`fileManager.tags.createButton`)]})]}),(0,G.jsxs)(`div`,{className:`px-5 py-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:b.isPending,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`button`,onClick:()=>b.mutate(),disabled:c.size===0||b.isPending||t.length===0,children:[b.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(o===`add`?`fileManager.tags.applyAdd`:`fileManager.tags.applyRemove`)]})]})]})]})}function IKe(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var LKe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RKe=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,zKe={};function R5(e,t){return((t||zKe).jsx?RKe:LKe).test(e)}var BKe=/[ \t\n\f\r]/g;function VKe(e){return typeof e==`object`?e.type===`text`?z5(e.value):!1:z5(e)}function z5(e){return e.replace(BKe,``)===``}var B5=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};B5.prototype.normal={},B5.prototype.property={},B5.prototype.space=void 0;function HKe(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new B5(n,r,t)}function V5(e){return e.toLowerCase()}var H5=class{constructor(e,t){this.attribute=t,this.property=e}};H5.prototype.attribute=``,H5.prototype.booleanish=!1,H5.prototype.boolean=!1,H5.prototype.commaOrSpaceSeparated=!1,H5.prototype.commaSeparated=!1,H5.prototype.defined=!1,H5.prototype.mustUseProperty=!1,H5.prototype.number=!1,H5.prototype.overloadedBoolean=!1,H5.prototype.property=``,H5.prototype.spaceSeparated=!1,H5.prototype.space=void 0;var U5=s({boolean:()=>W5,booleanish:()=>G5,commaOrSpaceSeparated:()=>X5,commaSeparated:()=>Y5,number:()=>q5,overloadedBoolean:()=>K5,spaceSeparated:()=>J5}),UKe=0,W5=Z5(),G5=Z5(),K5=Z5(),q5=Z5(),J5=Z5(),Y5=Z5(),X5=Z5();function Z5(){return 2**++UKe}var Q5=Object.keys(U5),$5=class extends H5{constructor(e,t,n,r){let i=-1;if(super(e,t),WKe(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&nqe.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(tqe,aqe);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!tqe.test(e)){let n=e.replace(eqe,iqe);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=$5}return new i(r,t)}function iqe(e){return`-`+e.toLowerCase()}function aqe(e){return e.charAt(1).toUpperCase()}var oqe=HKe([GKe,JKe,XKe,ZKe,QKe],`html`),t7=HKe([GKe,YKe,XKe,ZKe,QKe],`svg`);function sqe(e){return e.join(` `).trim()}var cqe=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=` -`,d=`/`,f=`*`,p=``,m=`comment`,h=`declaration`;function g(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,g=1;function v(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(u);g=~n?e.length-n:g+e.length}function y(){var e={line:l,column:g};return function(t){return t.position=new b(e),C(),t}}function b(e){this.start=e,this.end={line:l,column:g},this.source=t.source}b.prototype.content=e;function x(n){var r=Error(t.source+`:`+l+`:`+g+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=g,r.source=e,!t.silent)throw r}function S(t){var n=t.exec(e);if(n){var r=n[0];return v(r),e=e.slice(r.length),n}}function C(){S(i)}function w(e){var t;for(e||=[];t=T();)t!==!1&&e.push(t);return e}function T(){var t=y();if(!(d!=e.charAt(0)||f!=e.charAt(1))){for(var n=2;p!=e.charAt(n)&&(f!=e.charAt(n)||d!=e.charAt(n+1));)++n;if(n+=2,p===e.charAt(n-1))return x(`End of comment missing`);var r=e.slice(2,n-2);return g+=2,v(r),e=e.slice(n),g+=2,t({type:m,comment:r})}}function E(){var e=y(),t=S(a);if(t){if(T(),!S(o))return x(`property missing ':'`);var r=S(s),i=e({type:h,property:_(t[0].replace(n,p)),value:r?_(r[0].replace(n,p)):p});return S(c),i}}function D(){var e=[];w(e);for(var t;t=E();)t!==!1&&(e.push(t),w(e));return e}return C(),D()}function _(e){return e?e.replace(l,p):p}t.exports=g})),lqe=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(cqe());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),uqe=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),dqe=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(lqe()),r=uqe();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),fqe=pqe(`end`),n7=pqe(`start`);function pqe(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function mqe(e){let t=n7(e),n=fqe(e);if(t&&n)return{start:t,end:n}}function r7(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?hqe(e.position):`start`in e||`end`in e?hqe(e):`line`in e||`column`in e?i7(e):``}function i7(e){return gqe(e&&e.line)+`:`+gqe(e&&e.column)}function hqe(e){return i7(e&&e.start)+`-`+i7(e&&e.end)}function gqe(e){return e&&typeof e==`number`?e:1}var a7=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=r7(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};a7.prototype.file=``,a7.prototype.name=``,a7.prototype.reason=``,a7.prototype.message=``,a7.prototype.stack=``,a7.prototype.column=void 0,a7.prototype.line=void 0,a7.prototype.ancestors=void 0,a7.prototype.cause=void 0,a7.prototype.fatal=void 0,a7.prototype.place=void 0,a7.prototype.ruleId=void 0,a7.prototype.source=void 0;var _qe=l(dqe(),1),o7={}.hasOwnProperty,vqe=new Map,yqe=/[A-Z]/g,bqe=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),xqe=new Set([`td`,`th`]);function Sqe(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=Mqe(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=jqe(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?t7:oqe,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=Cqe(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function Cqe(e,t,n){if(t.type===`element`)return wqe(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Tqe(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return Dqe(e,t,n);if(t.type===`mdxjsEsm`)return Eqe(e,t);if(t.type===`root`)return Oqe(e,t,n);if(t.type===`text`)return kqe(e,t)}function wqe(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=t7,e.schema=i),e.ancestors.push(t);let a=Lqe(e,t.tagName,!1),o=Nqe(e,t),s=c7(e,t);return bqe.has(t.tagName)&&(s=s.filter(function(e){return typeof e==`string`?!VKe(e):!0})),Aqe(e,o,a,t),s7(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Tqe(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}l7(e,t.position)}function Eqe(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);l7(e,t.position)}function Dqe(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=t7,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Lqe(e,t.name,!0),o=Pqe(e,t),s=c7(e,t);return Aqe(e,o,a,t),s7(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Oqe(e,t,n){let r={};return s7(r,c7(e,t)),e.create(t,e.Fragment,r,n)}function kqe(e,t){return t.value}function Aqe(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s7(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function jqe(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function Mqe(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=n7(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Nqe(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&o7.call(t.properties,i)){let a=Fqe(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&xqe.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function Pqe(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else l7(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else l7(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function c7(e,t){let n=[],r=-1,i=e.passKeys?new Map:vqe;for(;++ri?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(f7(e,e.length,0,t),e):t}var qqe={}.hasOwnProperty;function Jqe(e){let t={},n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function m7(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var h7=S7(/[A-Za-z]/),g7=S7(/[\dA-Za-z]/),Qqe=S7(/[#-'*+\--9=?A-Z^-~]/);function _7(e){return e!==null&&(e<32||e===127)}var v7=S7(/\d/),$qe=S7(/[\dA-Fa-f]/),eJe=S7(/[!-/:-@[-`{-~]/);function y7(e){return e!==null&&e<-2}function b7(e){return e!==null&&(e<0||e===32)}function x7(e){return e===-2||e===-1||e===32}var tJe=S7(/\p{P}|\p{S}/u),nJe=S7(/\s/);function S7(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function C7(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function w7(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return x7(r)?(e.enter(n),s(r)):t(r)}function s(r){return x7(r)&&a++o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;er;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function cJe(e,t,n){return w7(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function T7(e){if(e===null||b7(e)||nJe(e))return 1;if(tJe(e))return 2}function E7(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};dJe(d,-c),dJe(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=p7(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=p7(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=p7(l,E7(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=p7(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=p7(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,f7(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n0&&x7(t)?w7(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||y7(t)?e.check(CJe,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||y7(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),x7(t)?w7(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),x7(t)?w7(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||y7(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function EJe(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var k7={name:`codeIndented`,tokenize:OJe},DJe={partial:!0,tokenize:kJe};function OJe(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),w7(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):y7(t)?e.attempt(DJe,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||y7(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function kJe(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):w7(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):y7(e)?i(e):n(e)}}var AJe={name:`codeText`,previous:MJe,resolve:jJe,tokenize:NJe};function jJe(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&A7(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),A7(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),A7(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function HJe(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||_7(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||y7(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||b7(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):y7(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||y7(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!x7(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function WJe(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),w7(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||y7(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function j7(e,t){let n;return r;function r(i){return y7(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):x7(i)?w7(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var GJe={name:`definition`,tokenize:qJe},KJe={partial:!0,tokenize:JJe};function qJe(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return UJe.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=m7(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return b7(t)?j7(e,l)(t):l(t)}function l(t){return HJe(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(KJe,d,d)(t)}function d(t){return x7(t)?w7(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||y7(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function JJe(e,t,n){return r;function r(t){return b7(t)?j7(e,i)(t):n(t)}function i(t){return WJe(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return x7(t)?w7(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||y7(e)?t(e):n(e)}}var YJe={name:`hardBreakEscape`,tokenize:XJe};function XJe(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return y7(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var ZJe={name:`headingAtx`,resolve:QJe,tokenize:$Je};function QJe(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},f7(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function $Je(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||b7(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||y7(n)?(e.exit(`atxHeading`),t(n)):x7(n)?w7(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||b7(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var eYe=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),tYe=[`pre`,`script`,`style`,`textarea`],nYe={concrete:!0,name:`htmlFlow`,resolveTo:aYe,tokenize:oYe},rYe={partial:!0,tokenize:cYe},iYe={partial:!0,tokenize:sYe};function aYe(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function oYe(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:I):h7(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):h7(a)?(e.consume(a),i=4,r.interrupt?t:I):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:I):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return h7(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||b7(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&tYe.includes(l)?(i=1,r.interrupt?t(s):O(s)):eYe.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||g7(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return x7(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||h7(t)?(e.consume(t),b):x7(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||g7(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):x7(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):x7(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||y7(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||b7(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||x7(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||y7(t)?O(t):x7(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),M):t===60&&i===1?(e.consume(t),N):t===62&&i===4?(e.consume(t),L):t===63&&i===3?(e.consume(t),I):t===93&&i===5?(e.consume(t),F):y7(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(rYe,R,k)(t)):t===null||y7(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(iYe,A,R)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),j}function j(t){return t===null||y7(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function M(t){return t===45?(e.consume(t),I):O(t)}function N(t){return t===47?(e.consume(t),o=``,P):O(t)}function P(t){if(t===62){let n=o.toLowerCase();return tYe.includes(n)?(e.consume(t),L):O(t)}return h7(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),P):O(t)}function F(t){return t===93?(e.consume(t),I):O(t)}function I(t){return t===62?(e.consume(t),L):t===45&&i===2?(e.consume(t),I):O(t)}function L(t){return t===null||y7(t)?(e.exit(`htmlFlowData`),R(t)):(e.consume(t),L)}function R(n){return e.exit(`htmlFlow`),t(n)}}function sYe(e,t,n){let r=this;return i;function i(t){return y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function cYe(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(O7,t,n)}}var lYe={name:`htmlText`,tokenize:uYe};function uYe(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):h7(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):h7(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):y7(t)?(o=d,N(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?M(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):y7(t)?(o=h,N(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?M(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?M(t):y7(t)?(o=v,N(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):y7(t)?(o=y,N(t)):(e.consume(t),y)}function b(e){return e===62?M(e):y(e)}function x(t){return h7(t)?(e.consume(t),S):n(t)}function S(t){return t===45||g7(t)?(e.consume(t),S):C(t)}function C(t){return y7(t)?(o=C,N(t)):x7(t)?(e.consume(t),C):M(t)}function w(t){return t===45||g7(t)?(e.consume(t),w):t===47||t===62||b7(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),M):t===58||t===95||h7(t)?(e.consume(t),E):y7(t)?(o=T,N(t)):x7(t)?(e.consume(t),T):M(t)}function E(t){return t===45||t===46||t===58||t===95||g7(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):y7(t)?(o=D,N(t)):x7(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):y7(t)?(o=O,N(t)):x7(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,j):t===null?n(t):y7(t)?(o=k,N(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||b7(t)?T(t):(e.consume(t),A)}function j(e){return e===47||e===62||b7(e)?T(e):n(e)}function M(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function N(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),P}function P(t){return x7(t)?w7(e,F,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):F(t)}function F(t){return e.enter(`htmlTextData`),o(t)}}var M7={name:`labelEnd`,resolveAll:mYe,resolveTo:hYe,tokenize:gYe},dYe={tokenize:_Ye},fYe={tokenize:vYe},pYe={tokenize:yYe};function mYe(e){let t=-1,n=[];for(;++t=3&&(a===null||y7(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),x7(t)?w7(e,s,`whitespace`)(t):s(t))}}var F7={continuation:{tokenize:kYe},exit:jYe,name:`list`,tokenize:OYe},EYe={partial:!0,tokenize:MYe},DYe={partial:!0,tokenize:AYe};function OYe(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:v7(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(P7,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return v7(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(O7,r.interrupt?n:u,e.attempt(EYe,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return x7(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function kYe(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(O7,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,w7(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!x7(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(DYe,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,w7(e,e.attempt(F7,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function AYe(e,t,n){let r=this;return w7(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function jYe(e){e.exit(this.containerState.type)}function MYe(e,t,n){let r=this;return w7(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!x7(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var NYe={name:`setextUnderline`,resolveTo:PYe,tokenize:FYe};function PYe(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function FYe(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),x7(t)?w7(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||y7(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var IYe={tokenize:LYe};function LYe(e){let t=this,n=e.attempt(O7,r,e.attempt(this.parser.constructs.flowInitial,i,w7(e,e.attempt(this.parser.constructs.flow,i,e.attempt(LJe,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var RYe={resolveAll:HYe()},zYe=VYe(`string`),BYe=VYe(`text`);function VYe(e){return{resolveAll:HYe(e===`text`?UYe:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++iQYe,contentInitial:()=>KYe,disable:()=>$Ye,document:()=>GYe,flow:()=>JYe,flowInitial:()=>qYe,insideSpan:()=>ZYe,string:()=>YYe,text:()=>XYe}),GYe={42:F7,43:F7,45:F7,48:F7,49:F7,50:F7,51:F7,52:F7,53:F7,54:F7,55:F7,56:F7,57:F7,62:hJe},KYe={91:GJe},qYe={[-2]:k7,[-1]:k7,32:k7},JYe={35:ZJe,42:P7,45:[NYe,P7],60:nYe,61:NYe,95:P7,96:wJe,126:wJe},YYe={38:xJe,92:yJe},XYe={[-5]:N7,[-4]:N7,[-3]:N7,33:bYe,38:xJe,42:D7,60:[fJe,lYe],91:SYe,92:[YJe,yJe],93:M7,95:D7,96:AJe},ZYe={null:[D7,RYe]},QYe={null:[42,95]},$Ye={null:[]};function eXe(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=p7(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=E7(a,l.events,l),l.events):[]}function f(e,t){return nXe(p(e),t)}function p(e){return tXe(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function nXe(e,t){let n=-1,r=[],i;for(;++nZ.getCloudSettingDetail(e.setting_id)}),p=q({mutationFn:()=>Z.deleteCloudSetting(e.setting_id),onSuccess:()=>{s(o(`profiles.presets.toast.deleted`)),c.invalidateQueries({queryKey:[`cloudSettings`]}),n()},onError:e=>s(e.message,`error`)}),m=y5(e.setting_id),h=v5(e.name,d?.setting?.inherits);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white truncate`,children:e.name}),m&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 text-xs font-medium bg-bambu-green/20 text-bambu-green rounded-full`,children:o(`profiles.presets.editable`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-1 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`capitalize`,children:o(`profiles.presets.types.${e.type}`)}),h.printer&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`•`}),(0,G.jsx)(`span`,{children:h.printer})]})]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-2 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto p-4`,children:f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):d?(0,G.jsx)(`pre`,{className:`text-xs text-bambu-gray font-mono whitespace-pre-wrap break-all bg-bambu-dark p-4 rounded-lg border border-bambu-dark-tertiary overflow-x-auto max-w-full`,children:S5(d)}):(0,G.jsx)(`div`,{className:`text-center py-16 text-bambu-gray`,children:o(`profiles.presets.failedToLoadDetails`)})}),l?(0,G.jsxs)(`div`,{className:`flex-shrink-0 p-4 border-t border-bambu-dark-tertiary bg-red-500/5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5`}),(0,G.jsx)(`span`,{className:`font-medium`,children:o(`profiles.presets.deleteConfirm`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:o(`profiles.presets.deleteWarning`,{name:e.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>u(!1),disabled:p.isPending,className:`flex-1`,children:o(`common.cancel`)}),(0,G.jsxs)(Q,{variant:`danger`,onClick:()=>p.mutate(),disabled:p.isPending,className:`flex-1`,children:[p.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Pu,{className:`w-4 h-4`}),o(`common.delete`)]})]})]}):(0,G.jsx)(`div`,{className:`flex-shrink-0 p-4 border-t border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,className:`flex-1`,children:o(`common.close`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:r,disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noDuplicatePermission`),children:[(0,G.jsx)(Vs,{className:`w-4 h-4`}),o(`profiles.presets.duplicate`)]}),m&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:i,disabled:f||!d||!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noEditPermission`),children:[(0,G.jsx)(Al,{className:`w-4 h-4`}),o(`common.edit`)]}),(0,G.jsx)(Q,{variant:`danger`,onClick:()=>u(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.presets.noDeletePermission`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]})})]})})})}function C5(){try{let e=localStorage.getItem(`bambusy_preset_templates`);return e?JSON.parse(e):[]}catch{return[]}}function w5(e){localStorage.setItem(`bambusy_preset_templates`,JSON.stringify(e))}function vKe({onClose:e,onApply:t,t:n}){let{showToast:r}=qd(),[i,a]=(0,y.useState)(C5),[o,s]=(0,y.useState)(`all`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(`{}`),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),x=o===`all`?i:i.filter(e=>e.type===o),S=e=>{a(e),w5(e)},C=e=>{S(i.filter(t=>t.id!==e)),b(null),r(n(`profiles.templates.toast.deleted`))},w=e=>{l(e.id),d(e.name),p(e.description),h(JSON.stringify(e.settings,null,2)),_(null)},T=()=>{if(!(!c||!u.trim()))try{let e=JSON.parse(m);S(i.map(t=>t.id===c?{...t,name:u.trim(),description:f.trim(),settings:e}:t)),l(null),r(n(`profiles.templates.toast.updated`))}catch(e){_(e.message)}},E=()=>{l(null),d(``),p(``),h(`{}`),_(null)},D=e=>{S(i.map(t=>t.id===e?{...t,showInModal:!t.showInModal}:t))},O={filament:{label:n(`profiles.presets.types.filament`),icon:Zs,color:`text-amber-600 dark:text-amber-400`},print:{label:n(`profiles.presets.types.process`),icon:nu,color:`text-blue-600 dark:text-blue-400`},printer:{label:n(`profiles.presets.types.printer`),icon:Rl,color:`text-purple-600 dark:text-purple-400`}},k=v?i.find(e=>e.id===v):null;return(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&(v?b(null):c?E():e())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[v,c,e]),(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:[k&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-60`,children:(0,G.jsx)(zd,{className:`w-full max-w-md`,children:(0,G.jsxs)(Vd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`div`,{className:`p-2 bg-red-500/20 rounded-lg`,children:(0,G.jsx)(Lu,{className:`w-6 h-6 text-red-600 dark:text-red-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white`,children:n(`profiles.templates.deleteTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`profiles.templates.deleteWarning`)})]})]}),(0,G.jsx)(`p`,{className:`text-white mb-6`,children:n(`profiles.templates.deleteConfirm`,{name:k.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>b(null),className:`flex-1`,children:n(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>C(v),className:`flex-1 bg-red-500 hover:bg-red-600`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),n(`common.delete`)]})]})]})})}),(0,G.jsx)(zd,{className:`w-full max-w-2xl max-h-[80vh] flex flex-col`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(_u,{className:`w-5 h-5 text-amber-600 dark:text-amber-400`}),n(`profiles.templates.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`profiles.templates.typeFilter`)}),[`all`,`filament`,`print`,`printer`].map(e=>(0,G.jsx)(`button`,{onClick:()=>s(e),className:`px-3 py-1 text-sm rounded-lg transition-colors ${o===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:e===`all`?n(`common.all`):O[e].label},e))]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:x.length===0?(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(_u,{className:`w-12 h-12 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{children:n(`profiles.templates.noTemplates`)}),(0,G.jsx)(`p`,{className:`text-sm mt-1`,children:n(`profiles.templates.createFirst`)})]}):(0,G.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>{let r=O[e.type],i=r.icon;return c===e.id?(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg border border-bambu-green`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 mb-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:n(`profiles.templates.namePlaceholder`),className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:n(`profiles.templates.descriptionPlaceholder`),className:`px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray mb-1 block`,children:n(`profiles.templates.settingsJson`)}),(0,G.jsx)(`textarea`,{value:m,onChange:e=>{h(e.target.value),_(null)},rows:6,className:`w-full px-3 py-2 bg-bambu-dark-secondary border rounded text-white text-sm font-mono focus:outline-none ${g?`border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`}),g&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:g})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,onClick:T,disabled:!u.trim(),children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),`Save`]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:E,children:`Cancel`})]})]},e.id):(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsx)(i,{className:`w-5 h-5 ${r.color} flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.description})]}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray-dark px-2 py-1 bg-bambu-dark-secondary rounded`,children:n(`profiles.templates.fieldsCount`,{count:Object.keys(e.settings).length})}),(0,G.jsx)(`button`,{onClick:()=>D(e.id),className:`p-1 transition-colors ${e.showInModal?`text-bambu-green hover:text-bambu-green/70`:`text-bambu-gray hover:text-white`}`,title:e.showInModal?n(`profiles.templates.shownInModals`):n(`profiles.templates.hiddenInModals`),children:e.showInModal?(0,G.jsx)(ac,{className:`w-4 h-4`}):(0,G.jsx)(ic,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>t(e),className:`px-3 py-1 text-xs bg-bambu-green/20 text-bambu-green rounded hover:bg-bambu-green/30 transition-colors`,children:n(`profiles.templates.apply`)}),(0,G.jsx)(`button`,{onClick:()=>w(e),className:`p-1 text-bambu-gray hover:text-white`,title:n(`common.edit`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>b(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400`,title:n(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]},e.id)})})})]})})]})}function T5({onClose:e,leftPreset:t,rightPreset:n,leftLabel:r,rightLabel:i,t:a}){let[o,s]=(0,y.useState)(`changes`),[c,l]=(0,y.useState)(``),u=(0,y.useMemo)(()=>{let e=new Set([...Object.keys(t),...Object.keys(n)]),r=[];for(let i of e){if(i===`inherits`||i===`version`)continue;let e=t[i],a=n[i],o=i in t,s=i in n,c;c=!o&&s?`added`:o&&!s?`removed`:JSON.stringify(e)===JSON.stringify(a)?`same`:`changed`,r.push({key:i,left:e,right:a,status:c})}return r.sort((e,t)=>{let n={changed:0,added:1,removed:2,same:3};return n[e.status]===n[t.status]?e.key.localeCompare(t.key):n[e.status]-n[t.status]})},[t,n]),d=(0,y.useMemo)(()=>{let e=[...u];if(o===`changes`&&(e=e.filter(e=>e.status!==`same`)),c){let t=c.toLowerCase();e=e.filter(e=>e.key.toLowerCase().includes(t)||String(e.left).toLowerCase().includes(t)||String(e.right).toLowerCase().includes(t))}return e},[u,o,c]),f=(0,y.useMemo)(()=>({added:u.filter(e=>e.status===`added`).length,removed:u.filter(e=>e.status===`removed`).length,changed:u.filter(e=>e.status===`changed`).length,same:u.filter(e=>e.status===`same`).length}),[u]),p=e=>{if(e===void 0)return`—`;if(e===null)return`null`;if(Array.isArray(e))return e.length===0?`[]`:e.length===1?String(e[0]):e.join(`, `);if(typeof e==`object`)return JSON.stringify(e);let t=String(e);if(t.includes(`\\n`)||t.length>100){let e=t.split(`\\n`).length;if(e>1)return`[${e} lines of G-code/script]`;if(t.length>100)return t.substring(0,100)+`…`}return t};return(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsx)(zd,{className:`w-full max-w-4xl max-h-[85vh] flex flex-col overflow-hidden`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col min-h-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Oc,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),a(`profiles.diff.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 grid grid-cols-2 gap-4 p-4 border-b border-bambu-dark-tertiary bg-bambu-dark`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`profiles.diff.left`)}),(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:r})]}),(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`profiles.diff.right`)}),(0,G.jsx)(`p`,{className:`text-white font-medium truncate`,children:i})]})]}),(0,G.jsxs)(`div`,{className:`flex-shrink-0 flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-green-700 dark:text-green-400`,children:[(0,G.jsx)(Fl,{className:`w-3.5 h-3.5`}),f.added,` `,a(`profiles.diff.added`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(ml,{className:`w-3.5 h-3.5`}),f.removed,` `,a(`profiles.diff.removed`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-amber-700 dark:text-amber-400`,children:[(0,G.jsx)(zo,{className:`w-3.5 h-3.5`}),f.changed,` `,a(`profiles.diff.changed`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-bambu-gray`,children:[(0,G.jsx)(tc,{className:`w-3.5 h-3.5`}),f.same,` `,a(`profiles.diff.same`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:a(`profiles.diff.searchFields`),className:`pl-8 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none w-48`})]}),f.same>0&&(0,G.jsxs)(`div`,{className:`flex rounded overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>s(`changes`),className:`px-3 py-1.5 text-sm transition-colors ${o===`changes`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:a(`profiles.diff.changes`)}),(0,G.jsx)(`button`,{onClick:()=>s(`all`),className:`px-3 py-1.5 text-sm transition-colors ${o===`all`?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:a(`common.all`)})]})]})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:d.length===0?(0,G.jsxs)(`div`,{className:`text-center py-12 text-bambu-gray`,children:[(0,G.jsx)(tc,{className:`w-12 h-12 mx-auto mb-4 opacity-30`}),(0,G.jsx)(`p`,{children:a(o===`changes`?`profiles.diff.noDifferences`:`profiles.diff.noFieldsMatch`)})]}):(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{className:`sticky top-0 bg-bambu-dark-secondary`,children:(0,G.jsxs)(`tr`,{className:`text-sm text-bambu-gray border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:a(`profiles.diff.field`)}),(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:r}),(0,G.jsx)(`th`,{className:`text-left p-3 w-1/3`,children:i})]})}),(0,G.jsx)(`tbody`,{children:d.map(e=>{let t={added:`bg-green-500/10`,removed:`bg-red-500/10`,changed:`bg-amber-500/10`,same:``}[e.status],n={added:(0,G.jsx)(Fl,{className:`w-3.5 h-3.5 text-green-600 dark:text-green-400`}),removed:(0,G.jsx)(ml,{className:`w-3.5 h-3.5 text-red-600 dark:text-red-400`}),changed:(0,G.jsx)(zo,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400`}),same:(0,G.jsx)(tc,{className:`w-3.5 h-3.5 text-bambu-gray-dark`})}[e.status];return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary ${t}`,children:[(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n,(0,G.jsx)(`span`,{className:`text-sm text-white font-mono`,children:e.key})]})}),(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-mono break-all ${e.status===`removed`?`text-red-700 dark:text-red-300`:e.status===`changed`?`text-white`:`text-bambu-gray`}`,children:p(e.left)})}),(0,G.jsx)(`td`,{className:`p-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-mono break-all ${e.status===`added`?`text-green-700 dark:text-green-300`:e.status===`changed`?`text-white`:`text-bambu-gray`}`,children:p(e.right)})})]},e.key)})})]})})]})})})}function yKe({onClose:e,initialData:t,allPresets:n,t:r}){let{showToast:i}=qd(),a=co(),o=!!t?.setting_id,[s,c]=(0,y.useState)(`common`),[l,u]=(0,y.useState)(t?.type||`filament`),[d,f]=(0,y.useState)(t?.name?o?t.name:`${t.name} (Copy)`:``),[p,m]=(0,y.useState)(t?.base_id||``),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(t?.setting||{inherits:``}),[b,x]=(0,y.useState)(JSON.stringify(t?.setting||{inherits:``},null,2)),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(C5),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(``),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)(!0),[ee,te]=(0,y.useState)(null),[ne,re]=(0,y.useState)(!1),ie=(0,y.useMemo)(()=>({filament:n.filament,print:n.process,printer:n.printer})[l]||[],[n,l]),ae=(0,y.useMemo)(()=>ie.filter(e=>y5(e.setting_id)),[ie]),{data:oe}=K({queryKey:[`cloudFields`,l],queryFn:()=>Z.getCloudFields(l===`print`?`process`:l),staleTime:1e3*60*60}),{data:se}=K({queryKey:[`allPresetDetails`,l,ae.map(e=>e.setting_id).join(`,`)],queryFn:async()=>{let e={};for(let t=0;t{try{let t=await Z.getCloudSettingDetail(e.setting_id);return{id:e.setting_id,detail:t}}catch{return null}}))).forEach(t=>{t&&(e[t.id]=t.detail)})}return e},enabled:ae.length>0,staleTime:1e3*60*10}),{data:H,isLoading:ce}=K({queryKey:[`cloudSettingDetail`,p],queryFn:()=>Z.getCloudSettingDetail(p),enabled:!!p});(0,y.useEffect)(()=>{s!==`json`&&x(JSON.stringify(_,null,2))},[_,s]);let le=(0,y.useMemo)(()=>({filament:n.filament,print:n.process,printer:n.printer}[l]||[]).filter(e=>!y5(e.setting_id)).sort((e,t)=>e.name.localeCompare(t.name)),[n,l]);(0,y.useEffect)(()=>{if(!p)return;let e=le.find(e=>e.setting_id===p);e&&(g(e.name),o||(v({inherits:e.name}),x(JSON.stringify({inherits:e.name},null,2))))},[p,le,o]);let ue=(0,y.useMemo)(()=>{let e=oe?.fields||[],t=new Set(e.map(e=>e.key)),n=new Set,i=new Set([`inherits`,`updated_time`,`compatible_printers`,`compatible_prints`]);se&&Object.values(se).forEach(e=>{e?.setting&&Object.keys(e.setting).forEach(e=>{!t.has(e)&&!i.has(e)&&n.add(e)})}),Object.keys(_).forEach(e=>{!t.has(e)&&!i.has(e)&&n.add(e)});let a=Array.from(n).sort().map(e=>({key:e,label:e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),type:`text`,category:`discovered`,description:r(`profiles.presets.discoveredFromPresets`)}));return[...e,...a]},[oe,se,_,r]),de=ue.filter(e=>e.label.toLowerCase().includes(w.toLowerCase())||e.key.toLowerCase().includes(w.toLowerCase())),fe=()=>{if(O.trim()){let e=O.trim().toLowerCase().replace(/\s+/g,`_`);pe(e,``),k(``),j(!1),i(r(`profiles.presets.toast.fieldAdded`,{key:e}))}},pe=(e,t)=>{v(n=>{let r={...n};return t===``||t===void 0?delete r[e]:r[e]=t,r})},me=e=>{v(t=>({...t,...e.settings})),te(e.name),i(r(`profiles.templates.toast.applied`))},he=()=>{if(!I.trim())return;let e={..._};if(delete e.inherits,Object.keys(e).length===0){i(r(`profiles.presets.noOverridesToSave`),`error`);return}let t={id:Date.now().toString(),name:I.trim(),description:R.trim()||r(`profiles.presets.customTemplate`),type:l,settings:e,showInModal:B},n=[...M,t];N(n),w5(n),F(!1),L(``),z(``),V(!0),i(r(`profiles.templates.toast.created`))},ge=(0,y.useMemo)(()=>M.filter(e=>e.type===l&&e.showInModal),[l,M]),_e=e=>{x(e);try{v(JSON.parse(e)),C(null)}catch(e){C(e.message)}},ve=e=>{e.preventDefault(),D(!1);let t=e.dataTransfer.files[0];if(t&&t.name.endsWith(`.json`)){let e=new FileReader;e.onload=e=>{try{let t=e.target?.result,n=JSON.parse(t),a=n.setting||n;v(e=>({...e,...a})),x(JSON.stringify({..._,...a},null,2)),i(r(`profiles.presets.fileImported`))}catch{i(r(`profiles.presets.invalidJsonFile`),`error`)}},e.readAsText(t)}},ye=q({mutationFn:()=>{let e={..._},t=l===`filament`?`filament_settings_id`:l===`print`?`print_settings_id`:`printer_settings_id`;e[t]=`"${d}"`;let n={type:l,name:d,base_id:p,setting:e};return Z.createCloudSetting(n)},onSuccess:async()=>{i(r(`profiles.presets.toast.created`)),await a.refetchQueries({queryKey:[`cloudSettings`]}),e()},onError:e=>i(e.message,`error`)}),be=q({mutationFn:()=>{if(!t?.setting_id)throw Error(r(`profiles.presets.noSettingId`));return Z.updateCloudSetting(t.setting_id,{name:d,setting:_})},onSuccess:async()=>{i(r(`profiles.presets.toast.updated`)),a.removeQueries({queryKey:[`cloudSettingDetail`]}),await a.refetchQueries({queryKey:[`cloudSettings`]}),e()},onError:e=>i(e.message,`error`)}),xe=o?be:ye,Se=H?.setting?.inherits,Ce=Se?le.find(e=>e.name===Se):void 0,{data:we}=K({queryKey:[`cloudSettingDetail`,Ce?.setting_id],queryFn:()=>Z.getCloudSettingDetail(Ce.setting_id),enabled:!!Ce?.setting_id}),Te=(0,y.useMemo)(()=>{let e=we?.setting||{},t=H?.setting||{},n=p&&se?.[p]?.setting?se[p].setting:{};return{...e,...t,...n}},[p,H,we,se]),Ee=e=>{if(e==null)return``;if(Array.isArray(e)){let t=[...new Set(e.map(e=>String(e)))];return t.length===1?t[0]:e.join(`, `)}return String(e)},De=e=>{let t=_[e.key],n=Te[e.key],i=Ee(n),a=ce?r(`common.loading`):i||``,o=`w-full px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`;if(e.type===`boolean`){let r=t===`1`||t===void 0&&n===`1`;return(0,G.jsx)(`button`,{type:`button`,onClick:()=>pe(e.key,t===`1`?`0`:`1`),className:`w-8 h-5 rounded-full transition-colors ${r?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full bg-white shadow transition-transform ${r?`translate-x-3.5`:`translate-x-0.5`}`})})}return e.type===`select`?(0,G.jsxs)(`select`,{value:t||``,onChange:t=>pe(e.key,t.target.value),className:o,children:[(0,G.jsx)(`option`,{value:``,children:a}),e.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:e.type===`number`?`number`:`text`,value:t===void 0?``:String(t),onChange:t=>pe(e.key,t.target.value),step:e.step,min:e.min,max:e.max,placeholder:a,className:o}),e.unit&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray whitespace-nowrap`,children:e.unit})]})},Oe=(0,y.useMemo)(()=>H?.setting?H.setting:{},[H]);return(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4`,onDragOver:e=>{e.preventDefault(),D(!0)},onDragLeave:()=>D(!1),onDrop:ve,children:[ne&&p&&(0,G.jsx)(T5,{onClose:()=>re(!1),leftPreset:Oe,rightPreset:_,leftLabel:r(`profiles.presets.baseLabel`,{name:h||p}),rightLabel:r(`profiles.presets.currentLabel`,{name:d||r(`profiles.presets.newPreset`)}),t:r}),(0,G.jsx)(zd,{className:`w-full max-w-6xl max-h-[90vh] flex flex-col overflow-y-auto`,children:(0,G.jsxs)(Vd,{className:`p-0 flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:r(o?`profiles.presets.editPreset`:t?`profiles.presets.duplicatePreset`:`profiles.presets.createNewPreset`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`profiles.presets.customizeSettings`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&(0,G.jsxs)(`button`,{onClick:()=>re(!0),className:`flex items-center gap-2 px-3 py-2 text-sm text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,title:r(`profiles.presets.compareWithBase`),children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),r(`profiles.presets.compare`)]}),(0,G.jsx)(`button`,{onClick:e,className:`p-2 text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary rounded-lg transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),E&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-bambu-green/10 border-2 border-dashed border-bambu-green rounded-lg flex items-center justify-center z-10`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(Vu,{className:`w-12 h-12 text-bambu-green mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-bambu-green font-medium`,children:r(`profiles.presets.dropJsonToImport`)})]})}),(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-4 max-[640px]:grid-cols-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`common.type`)}),(0,G.jsxs)(`select`,{value:l,onChange:e=>{u(e.target.value),m(``)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`filament`,children:r(`profiles.presets.types.filament`)}),(0,G.jsx)(`option`,{value:`print`,children:r(`profiles.presets.types.process`)}),(0,G.jsx)(`option`,{value:`printer`,children:r(`profiles.presets.types.printer`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`profiles.presets.basePreset`)}),(0,G.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:``,children:r(`profiles.presets.selectBasePreset`)}),le.map(e=>(0,G.jsx)(`option`,{value:e.setting_id,children:e.name},e.setting_id))]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:r(`profiles.presets.presetName`)}),(0,G.jsx)(`input`,{type:`text`,value:d,onChange:e=>f(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none`,placeholder:r(`profiles.presets.myCustomPreset`)})]})]}),h&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:(0,G.jsxs)(`p`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(fs,{className:`w-3 h-3 text-bambu-green`}),r(`profiles.presets.inheritsFrom`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:h}),ce&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin ml-1`})]})})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary max-[640px]:flex-wrap max-[640px]:items-center`,children:[(0,G.jsxs)(`button`,{onClick:()=>c(`common`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`common`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(pu,{className:`w-4 h-4`}),r(`profiles.presets.tabs.common`)]}),(0,G.jsxs)(`button`,{onClick:()=>c(`fields`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`fields`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(el,{className:`w-4 h-4`}),r(`profiles.presets.tabs.allFields`)]}),(0,G.jsxs)(`button`,{onClick:()=>c(`json`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${s===`json`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Fs,{className:`w-4 h-4`}),`JSON`,S&&(0,G.jsx)(ys,{className:`w-3 h-3 text-red-600 dark:text-red-400`})]}),(0,G.jsx)(`div`,{className:`flex-1 max-[640px]:hidden`}),(0,G.jsxs)(`button`,{onClick:()=>{let e=new Blob([JSON.stringify({name:d,type:l,base_id:p,setting:_},null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${d||`preset`}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t),i(r(`profiles.presets.toast.exported`))},className:`flex items-center gap-2 px-4 py-3 text-sm text-bambu-gray hover:text-white transition-colors`,title:r(`profiles.presets.exportToJson`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),r(`common.download`)]}),(0,G.jsxs)(`button`,{onClick:()=>document.getElementById(`file-import`)?.click(),className:`flex items-center gap-2 px-4 py-3 text-sm text-bambu-gray hover:text-white transition-colors`,title:r(`profiles.presets.importFromJson`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),r(`common.upload`)]}),(0,G.jsx)(`input`,{id:`file-import`,type:`file`,accept:`.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];if(t){let e=new FileReader;e.onload=e=>{try{let t=JSON.parse(e.target?.result),n=t.setting||t;v(e=>({...e,...n})),i(r(`profiles.presets.fileImported`))}catch{i(r(`profiles.presets.invalidJson`),`error`)}},e.readAsText(t)}}})]}),(0,G.jsxs)(`div`,{className:`flex-1 p-4`,children:[s===`common`&&(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h3`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(_u,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),r(`profiles.templates.title`)]}),Object.keys(_).filter(e=>e!==`inherits`).length>0&&(0,G.jsxs)(`button`,{onClick:()=>F(!P),className:`text-xs text-bambu-gray hover:text-white flex items-center gap-1 transition-colors`,children:[(0,G.jsx)(ql,{className:`w-3 h-3`}),r(`profiles.presets.saveAsTemplate`)]})]}),P&&(0,G.jsxs)(`div`,{className:`mb-3 p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 mb-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:I,onChange:e=>L(e.target.value),placeholder:r(`profiles.templates.namePlaceholder`),className:`px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>z(e.target.value),placeholder:r(`profiles.templates.descriptionPlaceholder`),className:`px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,onClick:he,disabled:!I.trim(),children:[(0,G.jsx)(ql,{className:`w-3 h-3`}),r(`common.save`)]}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>F(!1),children:r(`common.cancel`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(!B),className:`flex items-center gap-1.5 text-xs transition-colors ${B?`text-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[B?(0,G.jsx)(ac,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ic,{className:`w-3.5 h-3.5`}),r(B?`profiles.templates.shownInModals`:`profiles.templates.hiddenInModals`)]})]})]}),ee&&(0,G.jsxs)(`div`,{className:`mb-3 px-3 py-2 bg-bambu-green/10 border border-bambu-green/30 rounded-lg flex items-center gap-2`,children:[(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-green`,children:[r(`profiles.presets.templateApplied`),` `,(0,G.jsx)(`span`,{className:`font-medium`,children:ee})]}),(0,G.jsx)(`button`,{onClick:()=>te(null),className:`ml-auto text-bambu-green/70 hover:text-bambu-green`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[ge.map(e=>(0,G.jsxs)(`button`,{onClick:()=>me(e),className:`p-3 text-left bg-bambu-dark border border-bambu-dark-tertiary rounded-lg hover:border-bambu-gray-dark transition-colors`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:e.description})]},e.id)),ge.length===0&&(0,G.jsx)(`p`,{className:`col-span-3 text-center text-bambu-gray text-sm py-4`,children:r(`profiles.presets.noTemplatesSelected`)})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark mt-2 text-center`,children:r(`profiles.presets.manageTemplatesHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:r(`profiles.presets.commonSettings`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-3`,children:ue.slice(0,10).map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 max-[640px]:flex-col max-[640px]:items-start`,children:[(0,G.jsx)(`label`,{className:`text-sm text-bambu-gray flex-shrink-0`,children:e.label}),(0,G.jsx)(`div`,{className:`w-48 max-[640px]:w-full`,children:De(e)})]},e.key))})]}),Object.keys(_).length>1&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:r(`profiles.presets.currentOverrides`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Object.entries(_).filter(([e])=>e!==`inherits`).map(([e,t])=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-green/10 text-bambu-green text-xs rounded`,children:[e,`: `,String(t).slice(0,20),(0,G.jsx)(`button`,{onClick:()=>pe(e,void 0),className:`hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})})]},e))})]})]}),s===`fields`&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-6`,style:{height:`400px`},children:[(0,G.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3 flex-shrink-0`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:r(`profiles.presets.availableFields`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:se?r(`profiles.templates.fieldsCount`,{count:ue.length}):r(`common.loading`)})]}),(0,G.jsxs)(`div`,{className:`relative mb-3 flex-shrink-0`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:r(`profiles.presets.searchFieldsPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto space-y-1 pr-2 min-h-0`,children:[de.filter(e=>!(e.key in _)).map(e=>{let t=Te[e.key],n=Ee(t);return(0,G.jsxs)(`div`,{onClick:()=>{v(t=>({...t,[e.key]:n||``}))},className:`flex items-center justify-between gap-2 p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors cursor-pointer group`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.label}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark truncate`,children:e.key})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[n&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark px-2 py-0.5 rounded max-w-32 truncate`,title:n,children:[n.slice(0,20),n.length>20?`...`:``]}),(0,G.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center rounded bg-bambu-dark-tertiary group-hover:bg-bambu-green/20 transition-colors`,children:(0,G.jsx)(Fl,{className:`w-4 h-4 text-bambu-gray group-hover:text-bambu-green transition-colors`})})]})]},e.key)}),de.filter(e=>!(e.key in _)).length===0&&(0,G.jsx)(`p`,{className:`text-center text-bambu-gray py-4 text-sm`,children:r(w?`profiles.presets.noMatchingFields`:`profiles.presets.allFieldsAdded`)})]}),(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary flex-shrink-0`,children:A?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:O,onChange:e=>k(e.target.value),onKeyDown:e=>e.key===`Enter`&&fe(),placeholder:`custom_field_name`,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white font-mono text-sm placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`,autoFocus:!0}),(0,G.jsx)(Q,{size:`sm`,onClick:fe,disabled:!O.trim(),children:(0,G.jsx)(Fl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>{j(!1),k(``)},children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}):(0,G.jsxs)(`button`,{onClick:()=>j(!0),className:`w-full flex items-center justify-center gap-2 p-2 text-sm text-bambu-gray hover:text-white border border-dashed border-bambu-dark-tertiary hover:border-bambu-gray-dark rounded-lg transition-colors`,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`profiles.presets.addCustomField`)]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3 flex-shrink-0`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white`,children:r(`profiles.presets.yourOverrides`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:r(`profiles.templates.fieldsCount`,{count:Object.keys(_).filter(e=>e!==`inherits`).length})})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto space-y-2 pr-2 min-h-0`,children:[Object.entries(_).filter(([e])=>e!==`inherits`).map(([e,t])=>{let n=ue.find(t=>t.key===e);return(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:n?.label||e}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark`,children:e})]}),(0,G.jsx)(`button`,{onClick:()=>pe(e,void 0),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),n?De(n):(0,G.jsx)(`input`,{type:`text`,value:String(t),onChange:t=>pe(e,t.target.value),className:`w-full px-3 py-1.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:border-bambu-green focus:outline-none`})]},e)}),Object.keys(_).filter(e=>e!==`inherits`).length===0&&(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(pu,{className:`w-8 h-8 mx-auto mb-2 opacity-50`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`profiles.presets.noOverridesYet`)}),(0,G.jsx)(`p`,{className:`text-xs mt-1`,children:r(`profiles.presets.clickFieldsToAdd`)})]})]}),Object.keys(_).filter(e=>e!==`inherits`).length>0&&(0,G.jsx)(`div`,{className:`pt-3 mt-3 border-t border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsxs)(`button`,{onClick:()=>{F(!0),c(`common`)},className:`w-full flex items-center justify-center gap-2 p-2 text-sm text-bambu-gray hover:text-white border border-dashed border-bambu-dark-tertiary hover:border-bambu-gray-dark rounded-lg transition-colors`,children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`profiles.presets.saveAsTemplate`)]})})]})]}),s===`json`&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-red-700 dark:text-red-400 text-sm`,children:[(0,G.jsx)(ys,{className:`w-4 h-4`}),S]}),(0,G.jsx)(`textarea`,{value:b,onChange:e=>_e(e.target.value),className:`w-full h-80 px-3 py-2 bg-bambu-dark border rounded-lg text-white text-xs font-mono focus:outline-none resize-none ${S?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,spellCheck:!1}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:r(`profiles.presets.jsonTip`)})]})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,className:`flex-1`,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{onClick:()=>xe.mutate(),disabled:xe.isPending||!d.trim()||!o&&!p||!!S,className:`flex-1`,children:[xe.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):o?(0,G.jsx)(ql,{className:`w-4 h-4`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(o?`common.save`:t?`common.duplicate`:`common.create`)]})]})]})})]})}function bKe({settings:e,lastSyncTime:t,onRefresh:n,isRefreshing:r,printers:i,hasPermission:a,t:o}){let[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`all`),[d,f]=(0,y.useState)(`all`),[p,m]=(0,y.useState)(`all`),[h,g]=(0,y.useState)(`all`),[_,v]=(0,y.useState)(`all`),[b,x]=(0,y.useState)(`all`),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)([null,null]),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(null),ee=co(),te=(0,y.useMemo)(()=>[...e.filament.map(e=>({...e,type:`filament`})),...e.printer.map(e=>({...e,type:`printer`})),...e.process.map(e=>({...e,type:`process`}))].map(e=>({...e,meta:v5(e.name)})),[e]),ne=(0,y.useMemo)(()=>{let e=new Set,t=new Set,n=new Set;return te.forEach(r=>{r.meta.nozzle&&e.add(r.meta.nozzle),r.meta.filamentType&&t.add(r.meta.filamentType),r.meta.layerHeight&&n.add(r.meta.layerHeight)}),{printers:i.map(e=>({id:e.id.toString(),name:e.name})),nozzles:Array.from(e).sort((e,t)=>parseFloat(e)-parseFloat(t)),filaments:Array.from(t).sort(),layerHeights:Array.from(n).sort((e,t)=>parseFloat(e)-parseFloat(t))}},[te,i]),re=(0,y.useMemo)(()=>p===`all`?null:i.find(e=>e.id.toString()===p)?.model||null,[p,i]),ie=(0,y.useMemo)(()=>te.filter(e=>l===`all`||e.type===l).filter(e=>{if(d===`all`)return!0;let t=y5(e.setting_id);return d===`custom`?t:!t}).filter(e=>{if(p===`all`||!re)return!0;let t=e.meta.printer?.toLowerCase()||``,n=re.toLowerCase();return t.includes(n)||n.includes(t)}).filter(e=>h===`all`||e.meta.nozzle===h).filter(e=>_===`all`||e.meta.filamentType===_).filter(e=>b===`all`||e.meta.layerHeight===b).filter(e=>s===``||e.name.toLowerCase().includes(s.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)),[te,l,d,p,re,h,_,b,s]),ae=e=>{if(P){let t=I[0]?.setting_id===e.setting_id,n=I[1]?.setting_id===e.setting_id;if(t)L([I[1],null]);else if(n)L([I[0],null]);else if(!I[0])L([e,null]);else if(I[1]){if(I[0].type!==e.type)return;L([I[0],e])}else{if(I[0].type!==e.type)return;L([I[0],e])}}else C(e)},oe=e=>{if(I[0]?.setting_id===e.setting_id)return 0;if(I[1]?.setting_id===e.setting_id)return 1},se=async e=>{try{let t=await Z.getCloudSettingDetail(e.setting_id);k({type:e.type===`process`?`print`:e.type,name:e.name,base_id:t.base_id||`GFSA00`,setting:t.setting||{}}),C(null)}catch(e){console.error(`Failed to fetch preset details for duplication:`,e)}},H=async e=>{try{ee.removeQueries({queryKey:[`cloudSettingDetail`,e.setting_id]});let t=await Z.getCloudSettingDetail(e.setting_id);j({type:e.type===`process`?`print`:e.type,name:e.name,base_id:t.base_id||`GFSA00`,setting:t.setting||{},setting_id:e.setting_id}),C(null)}catch(e){console.error(`Failed to fetch preset details for editing:`,e)}},ce=()=>{u(`all`),f(`all`),m(`all`),g(`all`),v(`all`),x(`all`),c(``)},le=l!==`all`||d!==`all`||p!==`all`||h!==`all`||_!==`all`||b!==`all`||s!==``,ue=e.filament.length+e.printer.length+e.process.length;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`space-y-4 mb-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:o(`profiles.cloudView.searchPlaceholder`),className:`w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray-dark focus:border-bambu-green focus:outline-none`})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 max-[550px]:flex-wrap max-[550px]:items-center`,children:[(0,G.jsxs)(Q,{variant:P?`primary`:`secondary`,onClick:()=>{P?(F(!1),L([null,null])):F(!0)},children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),o(P?`common.cancel`:`profiles.presets.compare`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>D(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noTemplatesPermission`),children:[(0,G.jsx)(_u,{className:`w-4 h-4`}),o(`profiles.cloudView.templates`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:n,disabled:r||!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noRefreshPermission`),children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${r?`animate-spin`:``}`}),o(`profiles.cloudView.refresh`)]}),(0,G.jsxs)(Q,{onClick:()=>T(!0),disabled:!a(`cloud:auth`),title:a(`cloud:auth`)?void 0:o(`profiles.cloudView.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),o(`profiles.cloudView.newPreset`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.type`),value:l,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`),count:ue},{value:`filament`,label:o(`profiles.cloudView.filters.filament`),count:e.filament.length},{value:`printer`,label:o(`profiles.cloudView.filters.printer`),count:e.printer.length},{value:`process`,label:o(`profiles.cloudView.filters.process`),count:e.process.length}],onChange:e=>u(e)}),(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.owner`),value:d,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},{value:`custom`,label:o(`profiles.cloudView.filters.myPresets`)},{value:`builtin`,label:o(`profiles.cloudView.filters.builtIn`)}],onChange:e=>f(e)}),ne.printers.length>0&&(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.printer`),value:p,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.printers.map(e=>({value:e.id,label:e.name}))],onChange:m}),ne.nozzles.length>0&&(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.nozzle`),value:h,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.nozzles.map(e=>({value:e,label:e}))],onChange:g}),ne.filaments.length>0&&(l===`all`||l===`filament`)&&(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.filament`),value:_,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.filaments.map(e=>({value:e,label:e}))],onChange:v}),ne.layerHeights.length>0&&(l===`all`||l===`process`)&&(0,G.jsx)(b5,{label:o(`profiles.cloudView.filters.layer`),value:b,options:[{value:`all`,label:o(`profiles.cloudView.filters.all`)},...ne.layerHeights.map(e=>({value:e,label:e}))],onChange:x}),le&&(0,G.jsx)(`button`,{onClick:ce,className:`px-3 py-2 text-sm text-bambu-gray hover:text-white transition-colors`,children:o(`profiles.cloudView.clearFilters`)})]})]}),P&&(0,G.jsx)(`div`,{className:`mb-4 p-3 bg-blue-500/10 border border-blue-500/30 rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(Oc,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:o(`profiles.cloudView.compareMode`)}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:I[0]?o(`profiles.cloudView.selectAnotherPreset`,{type:I[0].type}):o(`profiles.cloudView.clickTwoPresets`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`px-2 py-1 text-sm rounded truncate max-w-[200px] ${I[0]?`bg-blue-500/30 text-blue-700 dark:text-blue-300`:`bg-bambu-dark text-bambu-gray`}`,children:I[0]?I[0].name:o(`profiles.cloudView.selectFirst`)}),(0,G.jsx)(zo,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`px-2 py-1 text-sm rounded truncate max-w-[200px] ${I[1]?`bg-blue-500/30 text-blue-700 dark:text-blue-300`:`bg-bambu-dark text-bambu-gray`}`,children:I[1]?I[1].name:o(`profiles.cloudView.selectSecond`)})]}),I[0]&&I[1]&&(0,G.jsxs)(Q,{size:`sm`,onClick:async()=>{try{let[e,t]=await Promise.all([Z.getCloudSettingDetail(I[0].setting_id),Z.getCloudSettingDetail(I[1].setting_id)]);V([e.setting||{},t.setting||{}]),z(!0)}catch{}},children:[(0,G.jsx)(Oc,{className:`w-4 h-4`}),o(`profiles.cloudView.compareNow`)]})]})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 mb-4 text-sm text-bambu-gray`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),o(`profiles.cloudView.lastSynced`),` `,up(t.toISOString(),`system`,o)]}),(0,G.jsx)(`span`,{children:o(`profiles.cloudView.showingCount`,{showing:ie.length,total:ue})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-green`}),(0,G.jsxs)(`span`,{children:[`= `,o(`profiles.presets.myPreset`)]})]})]}),ie.length===0?(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 text-bambu-gray-dark mx-auto mb-4`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`profiles.cloudView.noPresetsFound`)}),le&&(0,G.jsx)(`button`,{onClick:ce,className:`mt-2 text-sm text-bambu-green hover:text-bambu-green-light`,children:o(`profiles.cloudView.clearFilters`)})]}):(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(Zs,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.filament`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`filament`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`filament`).map(e=>(0,G.jsx)(x5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`filament`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noFilamentPresets`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(nu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.process`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`process`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`process`).map(e=>(0,G.jsx)(x5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`process`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noProcessPresets`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-3 px-1`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`h3`,{className:`text-sm font-medium text-bambu-gray`,children:o(`profiles.cloudView.columns.printer`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray-dark`,children:[`(`,ie.filter(e=>e.type===`printer`).length,`)`]})]}),(0,G.jsxs)(`div`,{className:`space-y-1 max-h-[calc(100vh-320px)] overflow-y-auto pr-1`,children:[ie.filter(e=>e.type===`printer`).map(e=>(0,G.jsx)(x5,{setting:e,onClick:()=>ae(e),onDuplicate:()=>se(e),compareMode:P,isCompareSelected:oe(e)!==void 0,compareIndex:oe(e),compareDisabled:P&&!!I[0]&&I[0].type!==e.type,t:o},e.setting_id)),ie.filter(e=>e.type===`printer`).length===0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray-dark px-3 py-2`,children:o(`profiles.cloudView.noPrinterPresets`)})]})]})]}),S&&(0,G.jsx)(_Ke,{setting:S,onClose:()=>C(null),onDeleted:()=>C(null),onDuplicate:()=>se(S),onEdit:()=>H(S),hasPermission:a,t:o}),(w||O||A||M)&&(0,G.jsx)(yKe,{onClose:()=>{T(!1),k(null),j(null),N(null)},initialData:A||O||(M?{type:M.type,name:``,base_id:``,setting:M.setting}:void 0),allPresets:e,t:o}),E&&(0,G.jsx)(vKe,{onClose:()=>D(!1),onApply:e=>{N({type:e.type,setting:e.settings}),D(!1)},t:o}),R&&B&&I[0]&&I[1]&&(0,G.jsx)(T5,{onClose:()=>{z(!1),V(null)},leftPreset:B[0],rightPreset:B[1],leftLabel:I[0].name,rightLabel:I[1].name,t:o})]})}function xKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),[i,a]=(0,y.useState)(`cloud`),[o,s]=(0,y.useState)(),{data:c,isLoading:l}=K({queryKey:[`cloudStatus`],queryFn:Z.getCloudStatus}),{data:u=[]}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:d,isLoading:f,refetch:p,dataUpdatedAt:m}=K({queryKey:[`cloudSettings`],queryFn:()=>Z.getCloudSettings(),enabled:!!c?.is_authenticated,retry:!1,staleTime:1e3*60*5});(0,y.useEffect)(()=>{m&&s(new Date(m))},[m]);let h=q({mutationFn:Z.cloudLogout,onSuccess:()=>{t.invalidateQueries({queryKey:[`cloudStatus`]}),t.removeQueries({queryKey:[`cloudSettings`]}),n(e(`profiles.toast.loggedOut`))}});return l?(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex items-center justify-center min-h-[400px]`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Ps,{className:`w-7 h-7 text-bambu-green`}),e(`profiles.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`profiles.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary mb-6`,children:[(0,G.jsxs)(`button`,{onClick:()=>a(`cloud`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`cloud`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ps,{className:`w-4 h-4`}),e(`profiles.tabs.bambuCloud`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`orca_cloud`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`orca_cloud`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Ps,{className:`w-4 h-4`}),e(`profiles.tabs.orcaCloud`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`local`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`local`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Pc,{className:`w-4 h-4`}),e(`profiles.tabs.local`)]}),(0,G.jsxs)(`button`,{onClick:()=>a(`kprofiles`),className:`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-px ${i===`kprofiles`?`text-bambu-green border-bambu-green`:`text-bambu-gray hover:text-white border-transparent`}`,children:[(0,G.jsx)(Tc,{className:`w-4 h-4`}),e(`profiles.tabs.kprofiles`)]})]}),i===`cloud`&&(0,G.jsxs)(G.Fragment,{children:[c?.is_authenticated&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 mb-6 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green animate-pulse`}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e(`profiles.connectedAs`),` `,(0,G.jsx)(`span`,{className:`text-white`,children:c.email}),c.region&&(0,G.jsx)(`span`,{className:`ml-2 px-2 py-0.5 text-xs rounded bg-bambu-dark-tertiary text-bambu-gray`,children:c.region===`china`?e(`profiles.login.regionChina`):e(`profiles.login.regionGlobal`)})]})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>h.mutate(),disabled:h.isPending||!r(`cloud:auth`),title:r(`cloud:auth`)?void 0:e(`profiles.noLogoutPermission`),children:[(0,G.jsx)(il,{className:`w-4 h-4`}),e(`profiles.logout`)]})]}),c?.sign_in_expired&&(0,G.jsxs)(`div`,{className:`flex items-start gap-3 p-3 mb-6 rounded-lg border border-yellow-500/40 bg-yellow-500/10`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 shrink-0 text-yellow-400 mt-0.5`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`profiles.signInExpiredTitle`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`profiles.signInExpiredBody`)})]})]}),c?.is_authenticated?f?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):d?(0,G.jsx)(bKe,{settings:d,lastSyncTime:o,onRefresh:()=>p(),isRefreshing:f,printers:u,hasPermission:r,t:e}):(0,G.jsxs)(`div`,{className:`text-center py-16`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray mb-4`,children:e(`profiles.failedToLoad`)}),(0,G.jsx)(Q,{onClick:()=>p(),children:e(`profiles.retry`)})]}):(0,G.jsx)(hKe,{onSuccess:()=>{t.invalidateQueries({queryKey:[`cloudStatus`]})},t:e})]}),i===`orca_cloud`&&(0,G.jsx)(pKe,{}),i===`local`&&(0,G.jsx)(cKe,{}),i===`kprofiles`&&(0,G.jsx)(iKe,{}),(0,G.jsx)(gKe,{})]})}function SKe(e,t){let n=(t||``).toUpperCase().replace(/[- ]/g,``),r=n.includes(`X1`),i=n.includes(`P1`),a=n.includes(`A1MINI`),o=n.includes(`A1`)&&!a,s=n.includes(`H2D`),c=n.includes(`H2C`),l=n.includes(`H2S`),u=s||c||l,d=n.includes(`P2S`),f=n.includes(`X2D`),p=d||f;switch(e){case`Lubricate Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Clean Steel Rods`:return p?`https://wiki.bambulab.com/en/p2s/maintenance/lubricate-x-y-z-axis`:null;case`Lubricate Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Nozzle/Hotend`:return r||i?`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`:a||o?`https://wiki.bambulab.com/en/a1-mini/troubleshooting/nozzle-clog`:u?`https://wiki.bambulab.com/en/h2/maintenance/nozzl-cold-pull-maintenance-and-cleaning`:p?`https://wiki.bambulab.com/en/p2s/maintenance/cold-pull-maintenance-hotend`:`https://wiki.bambulab.com/en/x1/troubleshooting/nozzle-clog`;case`Check Belt Tension`:return r?`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`:i?`https://wiki.bambulab.com/en/p1/maintenance/p1p-maintenance`:a?`https://wiki.bambulab.com/en/a1-mini/maintenance/belt_tension`:o?`https://wiki.bambulab.com/en/a1/maintenance/belt_tension`:s?`https://wiki.bambulab.com/en/h2/maintenance/belt-tension`:c?`https://wiki.bambulab.com/en/h2c/maintenance/belt-tension`:l?`https://wiki.bambulab.com/en/h2s/maintenance/belt-tension`:p?`https://wiki.bambulab.com/en/p2s/maintenance/belt-tension`:`https://wiki.bambulab.com/en/x1/maintenance/belt-tension`;case`Clean Carbon Rods`:return r||i?`https://wiki.bambulab.com/en/general/carbon-rods-clearance`:null;case`Clean Linear Rails`:return a?`https://wiki.bambulab.com/en/a1-mini/maintenance/lubricate-y-axis`:o?`https://wiki.bambulab.com/en/a1/maintenance/lubricate-y-axis`:u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;case`Clean Build Plate`:return`https://wiki.bambulab.com/en/filament-acc/acc/pei-plate-clean-guide`;case`Check PTFE Tube`:return r||i?`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`:a||o?`https://wiki.bambulab.com/en/a1-mini/maintenance/ptfe-tube`:s?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:l?`https://wiki.bambulab.com/en/h2s/maintenance/replace-ptfe-tube-on-h2s-printer`:c?`https://wiki.bambulab.com/en/h2/maintenance/replace-ptfe-tube-on-h2d-printer`:`https://wiki.bambulab.com/en/x1/maintenance/replace-ptfe-tube`;case`Replace HEPA Filter`:case`HEPA Filter`:case`Replace Carbon Filter`:case`Carbon Filter`:return u?`https://wiki.bambulab.com/en/h2/maintenance/replace-smoke-purifier-air-filte`:`https://wiki.bambulab.com/en/x1/maintenance/replace-carbon-filter`;case`Lubricate Left Nozzle Rail`:case`Left Nozzle Rail`:return u?`https://wiki.bambulab.com/en/h2/maintenance/x-axis-lubrication`:null;default:return null}}var E5={Droplet:Zs,Flame:hc,Ruler:Kl,Sparkles:_u,Square:bu,Cable:ts,Wrench:td,Calendar:as,Timer:Nu,Cog:Rs,Fan:oc,Zap:id,Wind:$u,Thermometer:Mu,Layers:Jc,Box:Zo,Target:Du,RefreshCw:Hl,Settings:ru,Filter:wc,CircleDot:Cs};function D5(e){return e&&E5[e]||td}function O5(e,t,n){if(t===`days`){if(e<1)return n?n(`common.today`):`Today`;if(e===1)return n?n(`maintenance.day`):`1 day`;if(e<7){let t=Math.round(e);return n?n(`maintenance.days`,{count:t}):`${t} days`}if(e<180){let t=Math.round(e/7);return t===1?n?n(`maintenance.week`):`1 week`:n?n(`maintenance.weeks`,{count:t}):`${t} weeks`}let t=Math.round(e/30);return t===1?n?n(`maintenance.month`):`1 month`:n?n(`maintenance.months`,{count:t}):`${t} months`}else{if(e<1)return`${Math.round(e*60)}m`;if(e<24)return`${e<10?e.toFixed(1):Math.round(e)}h`;let t=e/24;if(t<7)return`${t<2?t.toFixed(1):Math.round(t)}d`;let n=t/7;return n<12?`${n<2?n.toFixed(1):Math.round(n)}w`:`${Math.round(n/4)}mo`}}function k5(e,t,n){return t===`days`?e===1?n?n(`maintenance.day`):`1 day`:e===7?n?n(`maintenance.week`):`1 week`:e===14?n?n(`maintenance.weeks`,{count:2}):`2 weeks`:e===30?n?n(`maintenance.month`):`1 month`:e===60?n?n(`maintenance.months`,{count:2}):`2 months`:e===90?n?n(`maintenance.months`,{count:3}):`3 months`:e===180?n?n(`maintenance.months`,{count:6}):`6 months`:e===365?n?n(`maintenance.year`):`1 year`:n?n(`maintenance.days`,{count:e}):`${e} days`:`${e}h`}function CKe({item:e,onPerform:t,onToggle:n,hasPermission:r,t:i}){let a=D5(e.maintenance_type_icon),o=e.interval_type||`hours`,s=(()=>{if(o===`days`){let t=e.days_since_maintenance??0;return Math.max(0,Math.min(100,t/e.interval_hours*100))}return Math.max(0,Math.min(100,(e.interval_hours-e.hours_until_due)/e.interval_hours*100))})(),c=()=>e.enabled?e.is_due?`text-red-700 dark:text-red-400`:e.is_warning?`text-amber-700 dark:text-amber-400`:`text-bambu-green`:`text-bambu-gray`;return(0,G.jsx)(`div`,{className:`rounded-xl border p-4 transition-all ${e.enabled?e.is_due?`bg-red-500/5 border-red-500/20`:e.is_warning?`bg-amber-500/5 border-amber-500/20`:`bg-bambu-dark-secondary border-bambu-dark-tertiary`:`bg-bambu-dark-secondary/50`}`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3 max-[550px]:flex-wrap`,children:[(0,G.jsxs)(`div`,{className:`relative p-2.5 rounded-lg shrink-0 ${e.is_due?`bg-red-500/20`:e.is_warning?`bg-amber-500/20`:e.enabled?`bg-bambu-dark`:`bg-bambu-dark/50`}`,children:[(0,G.jsx)(a,{className:`w-5 h-5 ${c()}`}),e.enabled&&(e.is_due||e.is_warning)&&(0,G.jsx)(`span`,{className:`absolute -top-1 -right-1 w-2.5 h-2.5 rounded-full ${e.is_due?`bg-red-500`:`bg-amber-500`} animate-pulse`})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`font-medium truncate ${e.enabled?`text-white`:`text-bambu-gray`}`,children:e.maintenance_type_name}),o===`days`&&(0,G.jsx)(`span`,{title:i(`maintenance.timeBasedInterval`),children:(0,G.jsx)(as,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`})}),(()=>{let t=e.maintenance_type_wiki_url||SKe(e.maintenance_type_name,e.printer_model);return t?(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-gray hover:text-bambu-green transition-colors shrink-0`,title:i(`maintenance.viewDocumentation`),onClick:e=>e.stopPropagation(),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}):null})()]}),(0,G.jsx)(`div`,{className:`mt-2 mb-1.5`,children:(0,G.jsx)(`div`,{className:`w-full h-1.5 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500 ${e.enabled?e.is_due?`bg-red-500`:e.is_warning?`bg-amber-500`:`bg-bambu-green`:`bg-bambu-gray/30`}`,style:{width:`${s}%`}})})}),(0,G.jsxs)(`div`,{className:`text-xs flex items-center gap-1 ${c()}`,children:[e.is_due&&(0,G.jsx)(Lu,{className:`w-3 h-3`}),e.is_warning&&!e.is_due&&(0,G.jsx)(js,{className:`w-3 h-3`}),!e.is_due&&!e.is_warning&&e.enabled&&(0,G.jsx)(fs,{className:`w-3 h-3`}),(()=>{if(!e.enabled)return i(`common.disabled`);if(o===`days`){let t=e.days_until_due??0;return e.is_due?i(`maintenance.overdueBy`,{duration:O5(Math.abs(t),`days`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:O5(t,`days`,i)}):i(`maintenance.timeLeft`,{duration:O5(t,`days`,i)})}else return e.is_due?i(`maintenance.overdueBy`,{duration:O5(Math.abs(e.hours_until_due),`hours`,i)}):e.is_warning?i(`maintenance.dueIn`,{duration:O5(e.hours_until_due,`hours`,i)}):i(`maintenance.timeLeft`,{duration:O5(e.hours_until_due,`hours`,i)})})()]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0 max-[550px]:w-full max-[550px]:justify-end max-[550px]:mt-1`,children:[(0,G.jsx)(`span`,{title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionUpdate`),children:(0,G.jsx)(fH,{checked:e.enabled,onChange:t=>n(e.id,t),disabled:!r(`maintenance:update`)})}),(0,G.jsxs)(Q,{size:`sm`,variant:e.is_due?`primary`:`secondary`,onClick:()=>t(e.id),disabled:!e.enabled||!r(`maintenance:update`),title:r(`maintenance:update`)?void 0:i(`maintenance.noPermissionPerform`),className:`!px-3`,children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`}),i(`common.reset`)]})]})]})})}function wKe({overview:e,onPerform:t,onToggle:n,onSetHours:r,hasPermission:i,t:a}){let[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(e.total_print_hours.toFixed(1)),f=[...e.maintenance_items].sort((e,t)=>e.is_due&&!t.is_due?-1:!e.is_due&&t.is_due?1:e.is_warning&&!t.is_warning?-1:!e.is_warning&&t.is_warning?1:e.maintenance_type_id-t.maintenance_type_id),p=f.find(e=>e.enabled&&(e.is_due||e.is_warning)),m=()=>{let t=parseFloat(u);!isNaN(t)&&t>=0&&(r(e.printer_id,t),l(!1))};return(0,G.jsxs)(zd,{className:`overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`p-5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`h2`,{className:`text-xl font-semibold text-white`,children:e.printer_name}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.due_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),a(`maintenance.overdueCount`,{count:e.due_count})]}),e.warning_count>0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-400 text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),a(`maintenance.dueSoonCount`,{count:e.warning_count})]}),e.due_count===0&&e.warning_count===0&&(0,G.jsxs)(`span`,{className:`px-2.5 py-1 bg-bambu-green/20 text-bambu-green text-xs font-medium rounded-full flex items-center gap-1.5`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),a(`maintenance.allGood`)]})]})]}),(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm text-bambu-gray hover:text-white hover:bg-bambu-dark rounded-lg transition-colors`,children:[o?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`}),a(o?`common.collapse`:`common.expand`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-6 mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 bg-bambu-dark/50 rounded-lg`,children:(0,G.jsx)(Nu,{className:`w-4 h-4 text-bambu-gray`})}),c?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&m(),e.key===`Escape`&&l(!1)},className:`w-24 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm`,min:`0`,step:`1`,autoFocus:!0}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:a(`common.hours`)}),(0,G.jsx)(Q,{size:`sm`,onClick:m,children:a(`common.save`)}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>l(!1),children:a(`common.cancel`)})]}):(0,G.jsxs)(`button`,{onClick:()=>{i(`maintenance:update`)&&(d(Math.round(e.total_print_hours).toString()),l(!0))},className:`group ${i(`maintenance:update`)?``:`cursor-not-allowed opacity-60`}`,title:i(`maintenance:update`)?void 0:a(`maintenance.noPermissionEditHours`),children:[(0,G.jsxs)(`div`,{className:`text-sm font-medium text-white ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``} transition-colors flex items-center gap-1`,children:[Math.round(e.total_print_hours),` `,a(`common.hours`),(0,G.jsx)(Ol,{className:`w-3 h-3 text-bambu-gray ${i(`maintenance:update`)?`group-hover:text-bambu-green`:``}`})]}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray`,children:a(`maintenance.totalPrintTime`)})]})]}),(0,G.jsx)(`div`,{className:`w-px h-10 bg-bambu-dark-tertiary`}),p&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${p.is_due?`bg-red-500/20`:`bg-amber-500/20`}`,children:(0,G.jsx)(D5(p.maintenance_type_icon),{className:`w-4 h-4 ${p.is_due?`text-red-600 dark:text-red-400`:`text-amber-600 dark:text-amber-400`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-sm font-medium ${p.is_due?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`}`,children:p.maintenance_type_name}),(0,G.jsx)(`div`,{className:`text-xs ${p.is_due?`text-red-700/80 dark:text-red-400/70`:`text-amber-700/80 dark:text-amber-400/70`}`,children:p.is_due?a(`common.overdue`):a(`maintenance.dueSoon`)})]})]})]})]}),o&&(0,G.jsx)(Vd,{className:`pt-0 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-3 pt-4`,children:f.map(e=>(0,G.jsx)(CKe,{item:e,onPerform:t,onToggle:n,hasPermission:i,t:a},e.id))})})]})}function TKe({overview:e,types:t,onUpdateInterval:n,onAddType:r,onUpdateType:i,onDeleteType:a,onRestoreDefaults:o,isRestoringDefaults:s,onAssignType:c,onRemoveItem:l,hasPermission:u,t:d}){let[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(``),[g,_]=(0,y.useState)(`hours`),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(`100`),[T,E]=(0,y.useState)(`hours`),[D,O]=(0,y.useState)(`Wrench`),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(new Set),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(null),L=(0,y.useMemo)(()=>e?e.map(e=>({id:e.printer_id,name:e.printer_name})):[],[e]),R=t=>e?e.filter(e=>e.maintenance_items.some(e=>e.maintenance_type_id===t)).map(e=>({printerId:e.printer_id,printerName:e.printer_name,itemId:e.maintenance_items.find(e=>e.maintenance_type_id===t)?.id})):[],z=t=>{if(!e)return[];let n=new Set(R(t).map(e=>e.printerId));return L.filter(e=>!n.has(e.id))},[B,V]=(0,y.useState)(null),[ee,te]=(0,y.useState)(``),[ne,re]=(0,y.useState)(``),[ie,ae]=(0,y.useState)(`hours`),[oe,se]=(0,y.useState)(`Wrench`),[H,ce]=(0,y.useState)(``),le=e=>{V(e),te(e.name),re(e.default_interval_hours.toString()),ae(e.interval_type||`hours`),se(e.icon||`Wrench`),ce(e.wiki_url||``)},ue=()=>{B&&ee.trim()&&parseFloat(ne)>0&&(i(B.id,{name:ee.trim(),default_interval_hours:parseFloat(ne),interval_type:ie,icon:oe,wiki_url:H.trim()||null}),V(null))},de=(e,t,r)=>{let i=parseFloat(m);!isNaN(i)&&i>0&&n(e,{custom_interval_hours:Math.abs(i-t)<.01?null:i,custom_interval_type:g===r?null:g}),p(null)},fe=e=>{e.preventDefault(),x.trim()&&parseFloat(C)>0&&j.size>0&&(r({name:x.trim(),default_interval_hours:parseFloat(C),interval_type:T,icon:D,wiki_url:k.trim()||null},Array.from(j)),S(``),w(`100`),E(`hours`),A(``),M(new Set),b(!1))},pe=e=>{M(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},me=e?.map(e=>({printerId:e.printer_id,printerName:e.printer_name,items:e.maintenance_items.sort((e,t)=>e.maintenance_type_id-t.maintenance_type_id)})).sort((e,t)=>e.printerName.localeCompare(t.printerName))||[],he=t.filter(e=>e.is_system),ge=t.filter(e=>!e.is_system);return(0,G.jsxs)(`div`,{className:`space-y-8`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.maintenanceTypes`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.maintenanceTypesDescription`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:o,disabled:!u(`maintenance:delete`)||s,title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),children:d(`maintenance.restoreDefaults`)}),(0,G.jsxs)(Q,{onClick:()=>b(!v),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionEditTypes`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),d(`maintenance.addCustomType`)]})]})]}),v&&(0,G.jsx)(zd,{className:`mb-6`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`form`,{onSubmit:fe,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{className:`lg:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`common.name`)}),(0,G.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.exampleName`),autoFocus:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalType`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>{E(e.target.value),e.target.value===`days`?w(`30`):w(`100`)},className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.intervalValue`,{type:T===`days`?d(`maintenance.calendarDays`).toLowerCase():d(`common.hours`)})}),(0,G.jsx)(`input`,{type:`number`,value:C,onChange:e=>w(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]})]}),(0,G.jsx)(`div`,{className:`mt-4 flex items-end justify-between`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.icon`)}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:Object.keys(E5).map(e=>{let t=E5[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>O(e),className:`p-2 rounded-lg transition-colors ${D===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(t,{className:`w-4 h-4`})},e)})})]})}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.documentationLink`)}),(0,G.jsx)(`input`,{type:`url`,value:k,onChange:e=>A(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:`https://wiki.bambulab.com/...`})]}),(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-bambu-gray mb-1.5`,children:d(`maintenance.assignToPrinters`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:L.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>pe(e.id),className:`px-3 py-1.5 rounded-lg text-sm transition-colors ${j.has(e.id)?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white hover:bg-bambu-dark-tertiary`}`,children:e.name},e.id))}),j.size===0&&(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400 mt-1`,children:d(`maintenance.selectAtLeastOnePrinter`)})]}),(0,G.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:()=>{b(!1),M(new Set)},children:d(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!x.trim()||j.size===0,children:d(`maintenance.addType`)})]})]})})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3`,children:[he.map(e=>{let t=D5(e.icon),n=e.interval_type||`hours`;return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),k5(e.default_interval_hours,n,d)]})]}),(0,G.jsx)(`button`,{onClick:()=>{u(`maintenance:delete`)&&I(e)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})},e.id)}),ge.map(e=>{let t=D5(e.icon),n=e.interval_type||`hours`;if(B?.id===e.id)return(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:ee,onChange:e=>te(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`common.name`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`select`,{value:ie,onChange:e=>ae(e.target.value),className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:ne,onChange:e=>re(e.target.value),className:`w-24 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,min:`1`})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:Object.keys(E5).map(e=>{let t=E5[e];return(0,G.jsx)(`button`,{type:`button`,onClick:()=>se(e),className:`p-1.5 rounded transition-colors ${oe===e?`bg-bambu-green text-white`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:(0,G.jsx)(t,{className:`w-3.5 h-3.5`})},e)})}),(0,G.jsx)(`input`,{type:`url`,value:H,onChange:e=>ce(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none`,placeholder:d(`maintenance.documentationLink`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{size:`sm`,onClick:ue,disabled:!ee.trim(),children:d(`common.save`)}),(0,G.jsx)(Q,{size:`sm`,variant:`secondary`,onClick:()=>V(null),children:d(`common.cancel`)})]})]})},e.id);let r=R(e.id),i=z(e.id),o=N===e.id;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-xl p-4 border border-bambu-green/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2.5 bg-bambu-green/20 rounded-lg`,children:(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-green`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 bg-bambu-green/20 text-bambu-green text-[10px] font-medium rounded`,children:d(`maintenance.custom`)})]}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-0.5 flex items-center gap-1`,children:[n===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),k5(e.default_interval_hours,n,d)]})]}),(0,G.jsxs)(`button`,{onClick:()=>P(o?null:e.id),className:`px-2 py-1 rounded-lg border transition-colors flex items-center gap-1 ${r.length>0?`border-bambu-green/50 bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20`:`border-orange-300 bg-orange-50 text-orange-700 hover:bg-orange-100 dark:border-orange-400/50 dark:bg-orange-400/10 dark:text-orange-400 dark:hover:bg-orange-400/20`}`,title:d(`maintenance.printersAssignedClick`,{count:r.length}),children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:r.length}),(0,G.jsx)(ps,{className:`w-3 h-3 transition-transform ${o?`rotate-180`:``}`})]}),(0,G.jsx)(`button`,{onClick:()=>le(e),disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors ${u(`maintenance:update`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Ol,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>{confirm(d(`maintenance.deleteTypeConfirm`,{name:e.name}))&&a(e.id)},disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?void 0:d(`maintenance.noPermissionDeleteTypes`),className:`p-2 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors ${u(`maintenance:delete`)?``:`opacity-50 cursor-not-allowed`}`,children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]}),o&&(0,G.jsxs)(`div`,{className:`mt-3 pt-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:d(`maintenance.assignedToPrinters`)}),r.length===0?(0,G.jsx)(`p`,{className:`text-xs text-orange-700 dark:text-orange-400`,children:d(`maintenance.noPrintersAssigned`)}):(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-2`,children:r.map(e=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-1 bg-bambu-dark rounded text-xs text-white`,children:[e.printerName,(0,G.jsx)(`button`,{onClick:()=>e.itemId&&l(e.itemId),disabled:!u(`maintenance:delete`),title:u(`maintenance:delete`)?d(`maintenance.removeFromPrinter`):d(`maintenance.noPermissionRemovePrinter`),className:`ml-1 ${u(`maintenance:delete`)?`hover:text-red-600 dark:hover:text-red-400`:`opacity-50 cursor-not-allowed`}`,children:`×`})]},e.printerId))}),i.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:d(`maintenance.addPrinterShort`)}),i.map(t=>(0,G.jsxs)(`button`,{onClick:()=>c(t.id,e.id),disabled:!u(`maintenance:create`),title:u(`maintenance:create`)?void 0:d(`maintenance.noPermissionAssignPrinter`),className:`px-2 py-1 bg-bambu-dark rounded text-xs transition-colors ${u(`maintenance:create`)?`hover:bg-bambu-green/20 text-bambu-gray hover:text-bambu-green`:`opacity-50 cursor-not-allowed text-bambu-gray`}`,children:[`+ `,t.name]},t.id))]})]})]},e.id)})]})]}),me.length>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:d(`maintenance.intervalOverrides`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]}),(0,G.jsx)(`div`,{className:`space-y-4`,children:me.map(e=>(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`py-4`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white mb-3`,children:e.printerName}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-2`,children:e.items.map(e=>{let n=D5(e.maintenance_type_icon),r=t.find(t=>t.id===e.maintenance_type_id),i=r?.default_interval_hours||e.interval_hours,a=r?.interval_type||`hours`,o=e.interval_type||`hours`,s=f===e.id;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 p-2.5 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(n,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray flex-1 truncate`,children:e.maintenance_type_name}),s?(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g===`days`?(0,G.jsx)(as,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}):(0,G.jsx)(Nu,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}),(0,G.jsxs)(`select`,{value:g,onChange:e=>_(e.target.value),className:`px-1.5 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,children:[(0,G.jsx)(`option`,{value:`hours`,children:d(`maintenance.printHours`)}),(0,G.jsx)(`option`,{value:`days`,children:d(`maintenance.calendarDays`)})]}),(0,G.jsx)(`input`,{type:`number`,value:m,onChange:e=>h(e.target.value),onKeyDown:t=>{t.key===`Enter`&&de(e.id,i,a),t.key===`Escape`&&p(null)},className:`w-16 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-xs`,min:`1`}),(0,G.jsx)(Q,{size:`sm`,onClick:()=>de(e.id,i,a),children:`OK`})]}):(0,G.jsxs)(`button`,{onClick:()=>{u(`maintenance:update`)&&(p(e.id),h(e.interval_hours.toString()),_(o))},disabled:!u(`maintenance:update`),title:u(`maintenance:update`)?void 0:d(`maintenance.noPermissionEditIntervals`),className:`px-2 py-1 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-xs font-medium text-white transition-colors flex items-center gap-1 ${u(`maintenance:update`)?`hover:bg-bambu-dark-secondary hover:border-bambu-green`:`opacity-50 cursor-not-allowed`}`,children:[o===`days`?(0,G.jsx)(as,{className:`w-3 h-3`}):(0,G.jsx)(Nu,{className:`w-3 h-3`}),k5(e.interval_hours,o,d),(0,G.jsx)(Ol,{className:`w-3 h-3 text-bambu-gray`})]})]},e.id)})})]})},e.printerId))})]}),me.length===0&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-12`,children:[(0,G.jsx)(js,{className:`w-12 h-12 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:d(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray/70 mt-1`,children:d(`maintenance.intervalOverridesDescription`)})]})}),F&&(0,G.jsx)(of,{title:d(`maintenance.deleteSystemTypeTitle`),message:d(`maintenance.deleteSystemTypeMessage`,{name:F.name}),confirmText:d(`common.delete`),cancelText:d(`common.cancel`),variant:`danger`,cancelVariant:`primary`,cardClassName:`bg-red-950/70 border border-red-800/70`,onConfirm:()=>{a(F.id),I(null)},onCancel:()=>I(null)})]})}function EKe(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r}=Nd(),[i,a]=(0,y.useState)(`status`),{data:o,isLoading:s}=K({queryKey:[`maintenanceOverview`],queryFn:Z.getMaintenanceOverview}),{data:c}=K({queryKey:[`maintenanceTypes`],queryFn:Z.getMaintenanceTypes}),l=q({mutationFn:({id:e,notes:t})=>Z.performMaintenance(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),n(e(`maintenance.maintenanceComplete`))},onError:e=>{n(e.message,`error`)}}),u=q({mutationFn:({id:e,data:t})=>Z.updateMaintenanceItem(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]})},onError:e=>{n(e.message,`error`)}}),d=q({mutationFn:({id:e,data:t})=>Z.updateMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeUpdated`))},onError:e=>{n(e.message,`error`)}}),f=q({mutationFn:Z.deleteMaintenanceType,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeDeleted`))},onError:e=>{n(e.message,`error`)}}),p=q({mutationFn:Z.restoreDefaultMaintenanceTypes,onSuccess:r=>{t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.defaultsRestored`,{count:r.restored}))},onError:e=>{n(e.message,`error`)}}),m=q({mutationFn:({printerId:e,hours:t})=>Z.setPrinterHours(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),t.invalidateQueries({queryKey:[`maintenanceSummary`]}),n(e(`maintenance.printHoursUpdated`))},onError:e=>{n(e.message,`error`)}}),h=q({mutationFn:({printerId:e,typeId:t})=>Z.assignMaintenanceType(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.printerAssigned`))},onError:e=>{n(e.message,`error`)}}),g=q({mutationFn:Z.removeMaintenanceItem,onSuccess:()=>{t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.printerRemoved`))},onError:e=>{n(e.message,`error`)}}),_=e=>{l.mutate({id:e})},v=(e,t)=>{u.mutate({id:e,data:{enabled:t}})},b=(e,t)=>{m.mutate({printerId:e,hours:t})};if(s)return(0,G.jsx)(`div`,{className:`p-4 md:p-8 flex justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});let x=o?.reduce((e,t)=>e+t.due_count,0)||0,S=o?.reduce((e,t)=>e+t.warning_count,0)||0;return(0,G.jsxs)(`div`,{className:`p-4 md:p-8`,children:[(0,G.jsxs)(`div`,{className:`mb-6`,children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(td,{className:`w-7 h-7 text-bambu-green`}),e(`maintenance.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:i===`status`?(0,G.jsxs)(G.Fragment,{children:[x>0&&(0,G.jsx)(`span`,{className:`text-red-700 dark:text-red-400`,children:e(`maintenance.dueCount`,{count:x})}),x>0&&S>0&&` · `,S>0&&(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400`,children:e(`maintenance.warningCount`,{count:S})}),x===0&&S===0&&(0,G.jsx)(`span`,{className:`text-bambu-green`,children:e(`maintenance.allOk`)})]}):e(`maintenance.configureSettings`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-1 mb-6 border-b border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`status`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${i===`status`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.statusTab`)}),(0,G.jsx)(`button`,{onClick:()=>a(`settings`),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${i===`settings`?`text-bambu-green border-bambu-green`:`text-bambu-gray border-transparent hover:text-white`}`,children:e(`maintenance.settingsTab`)})]}),i===`status`?(0,G.jsx)(`div`,{className:`space-y-6`,children:o&&o.length>0?[...o].sort((e,t)=>{let n=e.due_count*10+e.warning_count,r=t.due_count*10+t.warning_count;return n===r?e.printer_name.localeCompare(t.printer_name):r-n}).map(t=>(0,G.jsx)(wKe,{overview:t,onPerform:_,onToggle:v,onSetHours:b,hasPermission:r,t:e},t.printer_id)):(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`text-center py-16`,children:[(0,G.jsx)(td,{className:`w-16 h-16 mx-auto mb-4 text-bambu-gray/30`}),(0,G.jsx)(`p`,{className:`text-lg font-medium text-white mb-2`,children:e(`common.noPrinters`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`maintenance.configureSettings`)})]})})}):(0,G.jsx)(TKe,{overview:o,types:c||[],onUpdateInterval:(e,t)=>u.mutate({id:e,data:t}),onAddType:async(r,i)=>{let a=await Z.createMaintenanceType(r);for(let e of i)await Z.assignMaintenanceType(e,a.id);t.invalidateQueries({queryKey:[`maintenanceTypes`]}),t.invalidateQueries({queryKey:[`maintenanceOverview`]}),n(e(`maintenance.typeUpdated`))},onUpdateType:(e,t)=>d.mutate({id:e,data:t}),onDeleteType:e=>f.mutate(e),onRestoreDefaults:()=>p.mutate(),isRestoringDefaults:p.isPending,onAssignType:(e,t)=>h.mutate({printerId:e,typeId:t}),onRemoveItem:e=>g.mutate(e),hasPermission:r,t:e})]})}var A5=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#6b7280`];function j5({project:e,onClose:t,onSave:n,isLoading:r,currencySymbol:i,t:a}){let[o,s]=(0,y.useState)(e?.name||``),[c,l]=(0,y.useState)(e?.description||``),[u,d]=(0,y.useState)(e?.color||A5[0]),[f,p]=(0,y.useState)(e?.target_count?.toString()||``),[m,h]=(0,y.useState)(e?.target_parts_count?.toString()||``),[g,_]=(0,y.useState)(e?.target_sets?.toString()||``),[v,b]=(0,y.useState)(e?.status||`active`),[x,S]=(0,y.useState)(e?.tags||``),[C,w]=(0,y.useState)(e?.due_date?.split(`T`)[0]||``),[T,E]=(0,y.useState)(e?.priority||`normal`),[D,O]=(0,y.useState)(e?.budget?.toString()||``),[k,A]=(0,y.useState)(e?.url||``),[j,M]=(0,y.useState)(null),[N,P]=(0,y.useState)(e?.parent_id??null),F=co(),{data:I}=K({queryKey:[`projects`,void 0],queryFn:()=>Z.getProjects()}),L=_je(I||[],e?.id),[R,z]=(0,y.useState)(e?.cover_image_filename||null),B=(0,y.useRef)(null),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)(0);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary flex flex-col max-h-[calc(100vh-2rem)]`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(e?`projects.editProject`:`projects.newProject`)})}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault();let r=k.trim();if(r&&!/^https?:\/\//i.test(r)){M(a(`projects.urlInvalid`));return}M(null),n({name:o.trim(),description:c.trim()||void 0,color:u,target_count:f?parseInt(f,10):void 0,target_parts_count:m?parseInt(m,10):void 0,target_sets:e?g?parseInt(g,10):null:g?parseInt(g,10):void 0,tags:e?x.trim()||null:x.trim()||void 0,due_date:e?C||null:C||void 0,priority:T,budget:D.trim()?parseFloat(D):null,url:e?r||null:r||void 0,parent_id:e?N??0:N??void 0,...e&&{status:v}})},className:`flex flex-col flex-1 min-h-0`,children:[(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.name`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.namePlaceholder`),required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.description`)}),(0,G.jsx)(`textarea`,{value:c,onChange:e=>l(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green resize-none`,placeholder:a(`projects.descriptionPlaceholder`),rows:2})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.urlLabel`)}),(0,G.jsx)(`input`,{type:`url`,value:k,onChange:e=>{A(e.target.value),j&&M(null)},className:`w-full bg-bambu-dark border rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none ${j?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,placeholder:a(`projects.urlPlaceholder`),maxLength:2048}),j&&(0,G.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400 mt-1`,children:j})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.parentLabel`)}),(0,G.jsxs)(`select`,{value:N??``,onChange:e=>P(e.target.value?parseInt(e.target.value,10):null),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:``,children:a(`projects.parentNone`)}),L.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.parentHint`)})]}),e&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.coverImageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-20 h-20 rounded bg-bambu-dark border border-bambu-dark-tertiary overflow-hidden flex items-center justify-center flex-shrink-0`,children:R?(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e.id,te),alt:a(`projects.coverImageAlt`),className:`w-full h-full object-cover`}):(0,G.jsx)(Hc,{className:`w-6 h-6 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(`input`,{ref:B,type:`file`,accept:`image/jpeg,image/png,image/gif,image/webp`,onChange:async t=>{let n=t.target.files?.[0];if(!(!n||!e)){ee(!0);try{z((await Z.uploadProjectCoverImage(e.id,n)).filename),ne(e=>e+1),F.invalidateQueries({queryKey:[`projects`]})}catch{}finally{ee(!1),B.current&&(B.current.value=``)}}},className:`hidden`}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>B.current?.click(),disabled:V,children:[V?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Vu,{className:`w-4 h-4 mr-1`}),a(R?`projects.coverImageReplace`:`projects.coverImageUpload`)]}),R&&(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:async()=>{if(e){ee(!0);try{await Z.deleteProjectCoverImage(e.id),z(null),ne(e=>e+1),F.invalidateQueries({queryKey:[`projects`]})}finally{ee(!1)}}},disabled:V,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mr-1`}),a(`projects.coverImageRemove`)]})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.color`)}),(0,G.jsx)(`div`,{className:`flex gap-2 flex-wrap`,children:A5.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>d(e),className:`w-8 h-8 rounded-full transition-transform ${u===e?`ring-2 ring-white ring-offset-2 ring-offset-bambu-dark-secondary scale-110`:``}`,style:{backgroundColor:e}},e))})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetPlates`)}),(0,G.jsx)(`input`,{type:`number`,value:f,onChange:e=>p(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetPlatesPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetPlatesHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetParts`)}),(0,G.jsx)(`input`,{type:`number`,value:m,onChange:e=>h(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetPartsPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetPartsHelp`)})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.targetSets`)}),(0,G.jsx)(`input`,{type:`number`,value:g,onChange:e=>_(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.targetSetsPlaceholder`),min:`1`}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:a(`projects.targetSetsHelp`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.tagsLabel`)}),(0,G.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:a(`projects.tagsPlaceholder`)})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.dueDate`)}),(0,G.jsx)(`input`,{type:`date`,value:C,onChange:e=>w(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projects.priority`)}),(0,G.jsxs)(`select`,{value:T,onChange:e=>E(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`low`,children:a(`projects.priorityLow`)}),(0,G.jsx)(`option`,{value:`normal`,children:a(`projects.priorityNormal`)}),(0,G.jsx)(`option`,{value:`high`,children:a(`projects.priorityHigh`)}),(0,G.jsx)(`option`,{value:`urgent`,children:a(`projects.priorityUrgent`)})]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`projectDetail.cost.budget`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray pointer-events-none`,children:i}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,min:`0`,value:D,onChange:e=>O(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded pl-8 pr-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:`0.00`})]})]}),e&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.status`)}),(0,G.jsxs)(`select`,{value:v,onChange:e=>b(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`active`,children:a(`projects.statusActive`)}),(0,G.jsx)(`option`,{value:`completed`,children:a(`projects.statusCompleted`)}),(0,G.jsx)(`option`,{value:`archived`,children:a(`projects.statusArchived`)})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:a(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!o.trim()||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):a(e?`common.save`:`projects.create`)})]})]})]})})}function DKe({projectId:e,altText:t}){let n=(0,y.useRef)(null),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null);return(0,G.jsxs)(`div`,{ref:n,className:`relative flex-shrink-0`,onMouseEnter:()=>{if(!n.current)return;let e=n.current.getBoundingClientRect(),t=window.innerWidth,r=window.innerHeight,a=e.right+8;a+384>t-8&&(a=e.left-384-8);let s=e.top;s+384>r-8&&(s=r-384-8),s<8&&(s=8),o({left:a,top:s}),i(!0)},onMouseLeave:()=>i(!1),onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-lg overflow-hidden bg-bambu-dark border border-bambu-dark-tertiary`,children:(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e),alt:t,className:`w-full h-full object-cover`,loading:`lazy`})}),r&&a&&(0,At.createPortal)((0,G.jsx)(`div`,{className:`fixed z-[100] w-96 h-96 rounded-lg overflow-hidden border border-bambu-dark-tertiary shadow-2xl bg-bambu-dark pointer-events-none`,style:{left:a.left,top:a.top},"aria-hidden":`true`,children:(0,G.jsx)(`img`,{src:Z.getProjectCoverImageUrl(e),alt:``,className:`w-full h-full object-contain`,loading:`lazy`})}),document.body)]})}function OKe({project:e,parentName:t,onClick:n,onEdit:r,onDelete:i,hasPermission:a,t:o}){let s=e.target_count?Math.round(e.archive_count/e.target_count*100):0,c=e.target_parts_count?Math.round(e.completed_count/e.target_parts_count*100):0,l=e.status===`completed`,u=e.status===`archived`,[d,f]=(0,y.useState)(!1),p=l?{icon:Ss,color:`text-bambu-green`,bg:`bg-bambu-green/10`}:u?{icon:Po,color:`text-bambu-gray`,bg:`bg-bambu-gray/10`}:e.queue_count>0?{icon:js,color:`text-blue-600 dark:text-blue-400`,bg:`bg-blue-50 dark:bg-blue-400/10`}:{icon:_c,color:`text-bambu-gray`,bg:`bg-bambu-gray/10`};return(0,G.jsxs)(`div`,{className:`group relative bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary hover:border-bambu-green/50 hover:shadow-lg hover:shadow-bambu-green/5 transition-all duration-300 cursor-pointer overflow-hidden`,onClick:n,children:[(0,G.jsx)(`div`,{className:`absolute top-0 left-0 w-1.5 h-full`,style:{backgroundColor:e.color||`#6b7280`,boxShadow:`0 0 12px ${e.color||`#6b7280`}40`}}),(0,G.jsxs)(`div`,{className:`p-5 pl-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[e.cover_image_filename?(0,G.jsx)(DKe,{projectId:e.id,altText:o(`projects.coverImageAlt`)}):(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${p.bg} flex-shrink-0`,children:(0,G.jsx)(p.icon,{className:`w-5 h-5 ${p.color}`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsx)(`h3`,{className:`font-semibold text-white truncate`,children:e.name}),e.url&&(0,G.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),title:e.url,"aria-label":o(`projects.openExternalUrl`),className:`inline-flex items-center justify-center w-6 h-6 rounded bg-bambu-dark border border-bambu-dark-tertiary text-bambu-green hover:bg-bambu-green/10 hover:border-bambu-green transition-colors flex-shrink-0`,children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}),e.target_parts_count?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium ${c>=100?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray`}`,children:[e.completed_count,`/`,e.target_parts_count,` `,o(`projects.parts`)]}):e.target_count?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium ${s>=100?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray`}`,children:[e.archive_count,`/`,e.target_count,` `,o(`projects.plates`)]}):e.completed_count>0?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full whitespace-nowrap font-medium bg-bambu-dark text-bambu-gray`,children:[e.completed_count,` `,o(`projects.parts`)]}):null,l&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full whitespace-nowrap`,children:o(`projects.done`)}),u&&(0,G.jsx)(`span`,{className:`text-xs bg-bambu-gray/20 text-bambu-gray px-2 py-0.5 rounded-full whitespace-nowrap`,children:o(`projects.statusArchived`)}),e.child_count>0&&(0,G.jsxs)(`span`,{className:`text-xs bg-bambu-dark text-bambu-gray px-2 py-0.5 rounded-full whitespace-nowrap inline-flex items-center gap-1`,title:o(`projects.subProjectCount`,{count:e.child_count}),children:[(0,G.jsx)(xc,{className:`w-3 h-3`}),e.child_count]})]}),t&&(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1 flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:o(`projects.partOf`,{name:t})})]}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray/70 mt-1 line-clamp-1`,children:e.description}),e.archives&&e.archives.length>0&&(()=>{let t=e.archives.map(e=>e.filament_type).filter(Boolean).flatMap(e=>e.split(`,`).map(e=>e.trim())).filter(Boolean),n=[...new Set(t)],r=e.archives.map(e=>e.filament_color).filter(Boolean).flatMap(e=>e.split(`,`).map(e=>e.trim())).filter(e=>e.startsWith(`#`)||/^[0-9A-Fa-f]{6}$/.test(e)),i=[...new Set(r)];return n.length===0&&i.length===0?null:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mt-1.5`,children:[n.slice(0,3).map(e=>(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 bg-bambu-dark text-bambu-gray rounded`,children:e},e)),i.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[i.slice(0,5).map(e=>(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full border border-black/20`,style:{backgroundColor:e.startsWith(`#`)?e:`#${e}`},title:e},e)),i.length>5&&(0,G.jsxs)(`span`,{className:`text-[10px] text-bambu-gray ml-0.5`,children:[`+`,i.length-5]})]})]})})()]})]}),(0,G.jsxs)(`div`,{className:`relative`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{className:`p-1.5 rounded-lg hover:bg-bambu-dark text-bambu-gray hover:text-white transition-colors can-hover:opacity-0 group-hover:opacity-100 focus-visible:opacity-100`,onClick:()=>f(!d),children:(0,G.jsx)($s,{className:`w-4 h-4`})}),d&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>f(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-8 z-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 text-left text-sm flex items-center gap-2 ${a(`projects:update`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{a(`projects:update`)&&(r(),f(!1))},disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:o(`projects.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4`}),o(`common.edit`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-2 text-left text-sm flex items-center gap-2 ${a(`projects:delete`)?`text-red-600 dark:text-red-400 hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{a(`projects:delete`)&&(i(),f(!1))},disabled:!a(`projects:delete`),title:a(`projects:delete`)?void 0:o(`projects.noDeletePermission`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),o(`common.delete`)]})]})]})]})]}),(0,G.jsx)(`div`,{className:`mb-4`,children:e.target_count||e.target_parts_count?(0,G.jsxs)(`div`,{className:`space-y-3`,children:[e.target_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`projects.plates`)}),(0,G.jsxs)(`span`,{className:s>=100?`text-bambu-green font-medium`:`text-white`,children:[e.archive_count,` / `,e.target_count]})]}),(0,G.jsx)(`div`,{className:`h-2 bg-bambu-dark/80 rounded-full overflow-hidden backdrop-blur-sm`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500 ease-out rounded-full relative`,style:{width:`${Math.min(s,100)}%`,background:s>=100?`linear-gradient(90deg, #22c55e, #4ade80)`:`linear-gradient(90deg, ${e.color||`#6b7280`}, ${e.color||`#6b7280`}cc)`,boxShadow:`0 0 8px ${s>=100?`#22c55e`:e.color||`#6b7280`}60`}})})]}),e.target_parts_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`projects.parts`)}),(0,G.jsxs)(`span`,{className:c>=100?`text-bambu-green font-medium`:`text-white`,children:[e.completed_count,` / `,e.target_parts_count]})]}),(0,G.jsx)(`div`,{className:`h-2 bg-bambu-dark/80 rounded-full overflow-hidden backdrop-blur-sm`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500 ease-out rounded-full relative`,style:{width:`${Math.min(c,100)}%`,background:c>=100?`linear-gradient(90deg, #22c55e, #4ade80)`:`linear-gradient(90deg, ${e.color||`#6b7280`}, ${e.color||`#6b7280`}cc)`,boxShadow:`0 0 8px ${c>=100?`#22c55e`:e.color||`#6b7280`}60`}})})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`text-xs text-red-600 dark:text-red-400`,children:[e.failed_count,` `,o(`projects.failed`)]})]}):e.completed_count>0||e.failed_count>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-xs`,children:[e.completed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-bambu-gray`,children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.completed_count,` `,o(`projects.completed`)]})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.failed_count,` `,o(`projects.failed`)]})]}),e.queue_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-blue-600 dark:text-blue-400`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),(0,G.jsxs)(`span`,{children:[e.queue_count,` `,o(`projects.inQueue`)]})]})]}):(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/60 italic`,children:o(`projects.noPrintsYet`)})}),e.archives&&e.archives.length>0&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:e.archives.slice(0,4).map(e=>(0,G.jsxs)(`div`,{className:`relative aspect-square rounded-lg bg-bambu-dark overflow-hidden border border-bambu-dark-tertiary`,title:e.print_name||`Unknown`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:e.print_name||``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray/50`,children:(0,G.jsx)(Cl,{className:`w-6 h-6`})}),e.status===`failed`&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-red-500/40 flex items-center justify-center`,children:(0,G.jsx)(Lu,{className:`w-4 h-4 text-white`})})]},e.id))}),e.archive_count>4&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1.5 text-center`,children:o(`common.more`,{count:e.archive_count-4})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-3 border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-xs text-bambu-gray`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:o(`projects.printJobs`),children:[(0,G.jsx)(Jc,{className:`w-3.5 h-3.5 text-blue-600 dark:text-blue-400`}),(0,G.jsxs)(`span`,{children:[e.archive_count,` `,o(`projects.plates`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,title:o(`projects.partsPrinted`),children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5 text-bambu-green`}),(0,G.jsxs)(`span`,{children:[e.completed_count,` `,o(`projects.parts`)]})]}),e.failed_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-red-600 dark:text-red-400`,title:o(`projects.failedParts`),children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:e.failed_count})]}),e.queue_count>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-yellow-600 dark:text-yellow-400`,title:o(`projects.inQueue`),children:[(0,G.jsx)($c,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{children:e.queue_count})]})]}),(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray/50 group-hover:text-bambu-gray transition-colors`})]})]})]})}function kKe(){let{t:e}=U(),t=or(),n=co(),{showToast:r}=qd(),{hasPermission:i}=Nd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(),[l,u]=(0,y.useState)(`active`),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(()=>localStorage.getItem(`projects-collapse-subprojects`)===`true`),[h,g]=(0,y.useState)({}),_=()=>{let e=!p;m(e),g({}),localStorage.setItem(`projects-collapse-subprojects`,String(e))},{data:v}=K({queryKey:[`settings`],queryFn:Z.getSettings}),b=Lf(v?.currency||`USD`),{data:x,isLoading:S}=K({queryKey:[`projects`,l===`all`?void 0:l],queryFn:()=>Z.getProjects(l===`all`?void 0:l)}),{data:C}=K({queryKey:[`projects`,void 0],queryFn:()=>Z.getProjects()}),w=new Map((C||[]).map(e=>[e.id,e.name])),T=x||[],E=new Set(T.map(e=>e.id)),D=new Map;for(let e of T)if(e.parent_id!==null&&E.has(e.parent_id)){let t=D.get(e.parent_id)||[];t.push(e),D.set(e.parent_id,t)}let O=new Set,k=e=>{if(!O.has(e)){O.add(e);for(let t of D.get(e)||[])k(t.id)}},A=[];for(let e of T)e.parent_id!==null&&E.has(e.parent_id)||(A.push(e),k(e.id));for(let e of T)O.has(e.id)||(A.push(e),k(e.id));let j=(t,n,r)=>{let a=(0,G.jsx)(OKe,{project:t,parentName:n===0&&t.parent_id!==null?w.get(t.parent_id):void 0,onClick:()=>ee(t),onEdit:()=>V(t),onDelete:()=>te(t.id),hasPermission:i,t:e}),o=new Set(r).add(t.id),s=(D.get(t.id)||[]).filter(e=>!o.has(e.id));if(s.length===0)return(0,G.jsx)(`div`,{children:a},t.id);let c=h[t.id]??!p;return(0,G.jsxs)(`div`,{className:c?`col-span-full space-y-4`:`space-y-4`,children:[a,(0,G.jsxs)(`div`,{className:`ml-4 md:ml-8 pl-4 md:pl-6 border-l-2 rounded-l space-y-4`,style:{borderColor:t.color||`#6b7280`},children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>g(e=>({...e,[t.id]:!c})),"aria-expanded":c,title:e(c?`projects.collapseSubProjects`:`projects.expandSubProjects`),className:`text-xs uppercase tracking-wide text-bambu-gray hover:text-white transition-colors flex items-center gap-1.5 max-w-full min-w-0`,children:[c?(0,G.jsx)(ps,{className:`w-3.5 h-3.5 flex-shrink-0`}):(0,G.jsx)(ms,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(xc,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e(`projects.subProjectsOf`,{name:t.name})}),(0,G.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-full bg-bambu-dark normal-case tracking-normal flex-shrink-0`,children:s.length})]}),c&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-8`,children:s.map(e=>j(e,n+1,o))})]})]},t.id)},M=q({mutationFn:e=>Z.createProject(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),o(!1),r(e(`projects.toast.created`),`success`)},onError:e=>{r(e.message,`error`)}}),N=q({mutationFn:({id:e,data:t})=>Z.updateProject(e,t),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),o(!1),c(void 0),r(e(`projects.toast.updated`),`success`)},onError:e=>{r(e.message,`error`)}}),P=q({mutationFn:e=>Z.deleteProject(e),onSuccess:()=>{f(null),r(e(`projects.toast.deleted`),`success`),setTimeout(()=>window.location.reload(),100)},onError:e=>{f(null),r(e.message,`error`)}}),F=q({mutationFn:e=>Z.importProject(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`projects`]}),r(e(`projects.toast.imported`),`success`)},onError:e=>{r(e.message,`error`)}}),I=(0,y.useRef)(null),L=async()=>{try{let t=await Z.getProjects(),n=await Promise.all(t.map(async e=>await Z.exportProjectJson(e.id))),i=new Blob([JSON.stringify(n,null,2)],{type:`application/json`}),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`bambuddy_projects_${new Date().toISOString().split(`T`)[0]}.json`,o.click(),URL.revokeObjectURL(a),r(e(`projects.toast.exported`),`success`)}catch(e){r(e.message,`error`)}},R=()=>{I.current?.click()},z=async t=>{let i=t.target.files?.[0];if(i){try{if(i.name.toLowerCase().endsWith(`.zip`))await Z.importProjectFile(i),n.invalidateQueries({queryKey:[`projects`]}),r(e(`projects.toast.imported`),`success`);else{let t=await i.text(),n=JSON.parse(t),a=Array.isArray(n)?n:[n];for(let e of a)await F.mutateAsync(e);a.length>1&&r(e(`projects.toast.multipleImported`,{count:a.length}),`success`)}}catch(t){r(`${e(`projects.toast.importFailed`)}: ${t.message}`,`error`)}t.target.value=``}},B=e=>{s?N.mutate({id:s.id,data:e}):M.mutate(e)},V=e=>{c(e),o(!0)},ee=e=>{t(`/projects/${e.id}`)},te=e=>{f(e)},ne=()=>{d!==null&&P.mutate(d)},re=C?.reduce((e,t)=>(e[t.status]=(e[t.status]||0)+1,e.all=(e.all||0)+1,e),{})||{};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsx)(`input`,{ref:I,type:`file`,accept:`.json,.zip`,onChange:z,className:`hidden`}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(_c,{className:`w-7 h-7 text-bambu-green`}),e(`projects.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`projects.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:R,disabled:!i(`projects:create`),title:i(`projects:create`)?e(`projects.importProject`):e(`projects.noImportPermission`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),e(`projects.import`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:L,disabled:!i(`projects:read`),title:i(`projects:read`)?e(`projects.exportAll`):e(`projects.noExportPermission`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),e(`projects.export`)]}),(0,G.jsxs)(Q,{onClick:()=>o(!0),className:`sm:w-auto w-full`,disabled:!i(`projects:create`),title:i(`projects:create`)?void 0:e(`projects.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`projects.newProject`)]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`flex gap-1 p-1 bg-bambu-dark rounded-xl w-fit`,children:[{key:`active`,label:e(`projects.statusActive`),icon:js},{key:`completed`,label:e(`projects.statusCompleted`),icon:Ss},{key:`archived`,label:e(`projects.statusArchived`),icon:Po},{key:`all`,label:e(`common.all`),icon:_c}].map(({key:e,label:t,icon:n})=>(0,G.jsxs)(`button`,{onClick:()=>u(e),className:`flex items-center gap-2 px-4 py-2 text-sm rounded-lg transition-all ${l===e?`bg-bambu-card text-white shadow-sm`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(n,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{children:t}),re[e]>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full ${l===e?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary`}`,children:re[e]})]},e))}),D.size>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:_,"aria-pressed":p,title:e(p?`projects.expandSubProjects`:`projects.collapseSubProjects`),className:`flex items-center gap-2 px-3 py-1.5 text-sm rounded-lg transition-colors ${p?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(xc,{className:`w-4 h-4`}),e(`common.collapse`)]})]}),S?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-20`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`projects.loading`)})]})}):x?.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-20 px-4`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(_c,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:l===`all`?e(`projects.noProjects`):e(`projects.noProjectsFiltered`,{status:l})}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:l===`all`?e(`projects.createFirst`):e(`projects.noProjectsFilteredHelp`,{status:l})}),l===`all`&&(0,G.jsxs)(Q,{onClick:()=>o(!0),disabled:!i(`projects:create`),title:i(`projects:create`)?void 0:e(`projects.noCreatePermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`projects.createFirstButton`)]})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-8`,children:A.map(e=>j(e,0,new Set))}),d!==null&&(0,G.jsx)(of,{title:e(`projects.deleteProject`),message:e(`projects.deleteConfirm`),confirmText:e(`projects.deleteProject`),variant:`danger`,onConfirm:ne,onCancel:()=>f(null)}),a&&(0,G.jsx)(j5,{project:s,onClose:()=>{o(!1),c(void 0)},onSave:B,isLoading:M.isPending||N.isPending,currencySymbol:b,t:e})]})}function M5(e){let t=(e.file_type||``).toLowerCase();if(t===`gcode`||t===`gcode.3mf`)return!0;let n=(e.filename||``).toLowerCase();return n.endsWith(`.gcode`)||n.endsWith(`.gcode.3mf`)}function N5(e,t,n){return M5(e)?!1:t?fje(e.filename):dje(e.filename,n)}function P5(e){return e>=1e3?`${(e/1e3).toFixed(2)}kg`:`${Math.round(e)}g`}function AKe({status:e,t}){let n={active:`bg-bambu-green/20 text-bambu-green`,completed:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,archived:`bg-bambu-gray/20 text-bambu-gray`},r=n[e]||n.active,i={active:t(`projectDetail.status.active`),completed:t(`projectDetail.status.completed`),archived:t(`projectDetail.status.archived`)};return(0,G.jsx)(`span`,{className:`px-2 py-1 rounded text-sm font-medium ${r}`,children:i[e]||e.charAt(0).toUpperCase()+e.slice(1)})}function F5({icon:e,label:t,value:n,subValue:r,hint:i,color:a=`text-bambu-gray`}){return(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,title:i,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark ${a}`,children:(0,G.jsx)(e,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t}),(0,G.jsx)(`p`,{className:`text-xl font-semibold text-white`,children:n}),r&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:r})]})]})})})}function jKe({archives:e,t}){return e.length===0?(0,G.jsxs)(`div`,{className:`text-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-12 h-12 mx-auto mb-2 opacity-50`}),(0,G.jsx)(`p`,{children:t(`projectDetail.noPrints`)})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3`,children:e.map(e=>(0,G.jsxs)(Ai,{to:`/archives?search=${encodeURIComponent(e.print_name||``)}`,className:`group relative aspect-square rounded-lg bg-bambu-dark border border-bambu-dark-tertiary overflow-hidden hover:border-bambu-green transition-colors`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getArchiveThumbnail(e.id),alt:e.print_name||`Print`,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:(0,G.jsx)(Cl,{className:`w-8 h-8`})}),e.status===`failed`&&(0,G.jsx)(`div`,{className:`absolute inset-0 bg-red-500/30 flex items-center justify-center`,children:(0,G.jsx)(Ds,{className:`w-8 h-8 text-white`})}),e.status===`completed`&&(0,G.jsx)(`div`,{className:`absolute top-1 right-1`,children:(0,G.jsx)(xs,{className:`w-4 h-4 text-bambu-green`})}),(0,G.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/80 to-transparent p-2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,G.jsx)(`p`,{className:`text-xs text-white truncate`,children:e.print_name||`Unknown`})})]},e.id))})}function MKe({priority:e,t}){let n={low:{color:`bg-gray-500/20 text-gray-400`,label:t(`projectDetail.priority.low`)},normal:{color:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,label:t(`projectDetail.priority.normal`)},high:{color:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`,label:t(`projectDetail.priority.high`)},urgent:{color:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,label:t(`projectDetail.priority.urgent`)}},{color:r,label:i}=n[e]||n.normal;return(0,G.jsxs)(`span`,{className:`px-2 py-1 rounded text-xs font-medium flex items-center gap-1 ${r}`,children:[e===`urgent`&&(0,G.jsx)(Lu,{className:`w-3 h-3`}),i]})}function I5(e,t){if(!e)return null;let n=rp(e);if(!n)return null;let r=new Date,i=Math.ceil((n.getTime()-r.getTime())/(1e3*60*60*24));return i<0?{color:`text-red-700 dark:text-red-400`,label:t(`projectDetail.dueDate.overdue`)}:i===0?{color:`text-orange-700 dark:text-orange-400`,label:t(`projectDetail.dueDate.today`)}:i<=3?{color:`text-yellow-700 dark:text-yellow-400`,label:t(`projectDetail.dueDate.daysLeft`,{count:i})}:{color:`text-bambu-gray`,label:t(`projectDetail.dueDate.daysLeft`,{count:i})}}function NKe(){let{id:e}=dr(),t=or(),{t:n}=U(),r=co(),{showToast:i}=qd(),{hasPermission:a}=Nd(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),m=parseInt(e||`0`,10),{data:h,isLoading:g,error:_}=K({queryKey:[`project`,m],queryFn:()=>Z.getProject(m),enabled:m>0}),{data:v,isLoading:b}=K({queryKey:[`project-archives`,m],queryFn:()=>Z.getProjectArchives(m),enabled:m>0}),{data:x,isLoading:S}=K({queryKey:[`project-bom`,m],queryFn:()=>Z.getProjectBOM(m),enabled:m>0}),{data:C,isLoading:w}=K({queryKey:[`project-timeline`,m],queryFn:()=>Z.getProjectTimeline(m,20),enabled:m>0}),{data:T}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:E}=K({queryKey:[`project-folders`,m],queryFn:()=>Z.getLibraryFoldersByProject(m),enabled:m>0}),{data:D,isLoading:O}=K({queryKey:[`project-files`,m],queryFn:()=>Z.getLibraryFiles(null,!1,m),enabled:m>0}),k=(0,y.useMemo)(()=>{let e=new Map;for(let t of D??[])if(t.folder_id!=null){let n=e.get(t.folder_id)??[];n.push(t),e.set(t.folder_id,n)}return e},[D]),{data:A}=K({queryKey:[`project-file-progress`,m],queryFn:()=>Z.getProjectFileProgress(m),enabled:m>0}),j=(0,y.useMemo)(()=>{let e=new Map;for(let t of A??[])e.set(t.file_id,t.completed_count);return e},[A]),M=(0,y.useMemo)(()=>{let e=h?.target_sets;if(!e||!D)return null;let t=D.filter(e=>M5(e));return t.length===0?null:Math.min(...t.map(t=>Math.min(j.get(t.id)??0,e)))},[h?.target_sets,D,j]),N=Lf(T?.currency||`USD`),P=T?.time_format||`system`,F=q({mutationFn:e=>Z.updateProject(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project`,m]}),r.invalidateQueries({queryKey:[`projects`]}),s(!1),l(!1),i(n(`projectDetail.toast.projectUpdated`),`success`)},onError:e=>{i(e.message,`error`)}}),I=()=>{d(h?.notes||``),l(!0)},L=()=>{F.mutate({notes:u})},R=()=>{l(!1),d(``)},[z,B]=(0,y.useState)(``),[V,ee]=(0,y.useState)(1),[te,ne]=(0,y.useState)(``),[re,ie]=(0,y.useState)(``),[ae,oe]=(0,y.useState)(``),[se,H]=(0,y.useState)(!1),[ce,le]=(0,y.useState)(!1),[ue,de]=(0,y.useState)(null),[fe,pe]=(0,y.useState)(``),[me,he]=(0,y.useState)(1),[ge,_e]=(0,y.useState)(``),[ve,ye]=(0,y.useState)(``),[be,xe]=(0,y.useState)(``),[Se,Ce]=(0,y.useState)({isOpen:!1,title:``,message:``,onConfirm:()=>{}}),we=q({mutationFn:e=>Z.createBOMItem(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),B(``),ee(1),ne(``),ie(``),oe(``),H(!1),i(n(`projectDetail.toast.partAdded`),`success`)},onError:e=>i(e.message,`error`)}),Te=q({mutationFn:({itemId:e,data:t})=>Z.updateBOMItem(m,e,t),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),de(null)},onError:e=>i(e.message,`error`)}),Ee=q({mutationFn:e=>Z.deleteBOMItem(m,e),onSuccess:()=>{r.invalidateQueries({queryKey:[`project-bom`,m]}),r.invalidateQueries({queryKey:[`project`,m]}),i(n(`projectDetail.toast.partRemoved`),`success`)},onError:e=>i(e.message,`error`)}),De=e=>{e.preventDefault(),z.trim()&&we.mutate({name:z.trim(),quantity_needed:V,unit_price:te?parseFloat(te):void 0,sourcing_url:re.trim()||void 0,remarks:ae.trim()||void 0})},Oe=e=>{let t=e.is_complete?0:e.quantity_needed;Te.mutate({itemId:e.id,data:{quantity_acquired:t}})},ke=(e,t)=>{Ce({isOpen:!0,title:n(`projectDetail.bom.deletePart`),message:n(`projectDetail.bom.deleteConfirm`,{name:t}),onConfirm:()=>{Ce(e=>({...e,isOpen:!1})),Ee.mutate(e)}})},Ae=e=>{de(e),pe(e.name),he(e.quantity_needed),_e(e.unit_price?.toString()||``),ye(e.sourcing_url||``),xe(e.remarks||``)},je=e=>{e.preventDefault(),!(!ue||!fe.trim())&&Te.mutate({itemId:ue.id,data:{name:fe.trim(),quantity_needed:me,unit_price:ge?parseFloat(ge):void 0,sourcing_url:ve.trim()||void 0,remarks:be.trim()||void 0}})},Me=()=>{de(null)},Ne=async()=>{try{let{blob:e,filename:t}=await Z.exportProjectZip(Number(m)),r=URL.createObjectURL(e),a=document.createElement(`a`);a.href=r,a.download=t||`${h?.name||`project`}_${new Date().toISOString().split(`T`)[0]}.zip`,a.click(),URL.revokeObjectURL(r),i(n(`projectDetail.toast.projectExported`),`success`)}catch(e){i(e.message,`error`)}},Pe=q({mutationFn:()=>Z.createTemplateFromProject(m),onSuccess:()=>{r.invalidateQueries({queryKey:[`projects`]}),i(n(`projectDetail.toast.templateCreated`),`success`)},onError:e=>i(e.message,`error`)}),Fe=e=>op(e,P,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`});if(g)return(0,G.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})});if(_||!h)return(0,G.jsxs)(`div`,{className:`text-center py-24`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:_?`${n(`common.error`)}: ${_.message}`:n(`projectDetail.notFound`)}),(0,G.jsx)(Q,{variant:`secondary`,className:`mt-4`,onClick:()=>t(`/projects`),children:n(`projectDetail.backToProjects`)})]});let Ie=h.stats,Le=Ie?.progress_percent??0,Re=Ie?.parts_progress_percent??0;return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-8`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray`,children:[(0,G.jsx)(Ai,{to:`/projects`,className:`hover:text-white transition-colors`,children:n(`nav.projects`)}),(0,G.jsx)(ms,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-white`,children:h.name})]}),(0,G.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(`button`,{onClick:()=>t(`/projects`),className:`p-2 rounded-lg bg-bambu-card hover:bg-bambu-dark-tertiary transition-colors`,children:(0,G.jsx)(Lo,{className:`w-5 h-5 text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-4 h-4 rounded-full shrink-0`,style:{backgroundColor:h.color||`#6b7280`}}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:h.name}),h.description&&(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:h.description})]})]}),(0,G.jsx)(AKe,{status:h.status,t:n})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:Ne,disabled:!a(`projects:read`),title:a(`projects:read`)?n(`projectDetail.exportProject`):n(`projectDetail.noExportPermission`),children:[(0,G.jsx)(Xs,{className:`w-4 h-4 mr-2`}),n(`projectDetail.export`)]}),(0,G.jsxs)(Q,{onClick:()=>s(!0),disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-2`}),n(`common.edit`)]})]})]}),(h.target_count||h.target_parts_count||h.target_sets)&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4 space-y-4`,children:[h.target_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.platesProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[Ie?.total_archives||0,` / `,h.target_count,` `,n(`projectDetail.progress.printJobs`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(Le,100)}%`,backgroundColor:Le>=100?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsxs)(`div`,{className:`flex justify-between mt-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.percentComplete`,{percent:Le.toFixed(0)})}),Ie?.remaining_prints!=null&&Ie.remaining_prints>0&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.remaining`,{count:Ie.remaining_prints})})]})]}),h.target_parts_count&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.partsProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[Ie?.completed_prints||0,` / `,h.target_parts_count,` `,n(`projectDetail.progress.parts`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(Re,100)}%`,backgroundColor:Re>=100?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsxs)(`div`,{className:`flex justify-between mt-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.percentComplete`,{percent:Re.toFixed(0)})}),Ie?.remaining_parts!=null&&Ie.remaining_parts>0&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.progress.remaining`,{count:Ie.remaining_parts})})]})]}),h.target_sets?(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.progress.setsProgress`)}),(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white`,children:[M??0,` / `,h.target_sets,` `,n(`projectDetail.progress.sets`)]})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min((M??0)/h.target_sets*100,100)}%`,backgroundColor:(M??0)>=h.target_sets?`#22c55e`:h.color||`#6b7280`}})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:n(`projectDetail.progress.setsHint`)})]}):null]})}),Ie&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{className:`p-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark text-bambu-green`,children:(0,G.jsx)(Cl,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.printJobs`)}),(0,G.jsxs)(`p`,{className:`text-xl font-semibold text-white`,children:[Ie.total_archives,` `,(0,G.jsx)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:n(`projectDetail.stats.total`)})]}),Ie.failed_prints>0&&(0,G.jsx)(`p`,{className:`text-sm text-status-error`,children:n(`projectDetail.stats.failed`,{count:Ie.failed_prints})}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.partsPrinted`,{count:Ie.completed_prints})})]})]})})}),(0,G.jsx)(F5,{icon:js,label:n(`projectDetail.stats.printTime`),value:fp(Ie.total_print_time_hours),color:`text-yellow-600 dark:text-yellow-400`}),(0,G.jsx)(F5,{icon:Rl,label:n(`projectDetail.stats.filamentUsed`),value:P5(Ie.total_filament_grams),color:`text-purple-600 dark:text-purple-400`})]}),h.rollup_stats&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-3`,children:[(0,G.jsx)(xc,{className:`w-5 h-5`}),n(`projectDetail.rollup.title`,{count:h.descendant_count})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.printJobs`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:h.rollup_stats.total_archives}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.stats.partsPrinted`,{count:h.rollup_stats.completed_prints})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.printTime`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:fp(h.rollup_stats.total_print_time_hours)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.stats.filamentUsed`)}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white`,children:P5(h.rollup_stats.total_filament_grams)})]}),(()=>{let e=h.rollup_stats.estimated_cost+h.rollup_stats.total_energy_cost+h.rollup_stats.bom_cost;return e<=0?null:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.totalCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-bambu-green`,children:[N,e.toFixed(2)]})]})})()]}),h.rollup_stats.progress_percent!==null&&(0,G.jsxs)(`div`,{className:`mt-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:n(`projectDetail.rollup.progress`)}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:n(`projectDetail.rollup.percentComplete`,{percent:h.rollup_stats.progress_percent.toFixed(0)})})]}),(0,G.jsx)(`div`,{className:`h-3 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full transition-all duration-500`,style:{width:`${Math.min(h.rollup_stats.progress_percent,100)}%`,backgroundColor:h.rollup_stats.progress_percent>=100?`#22c55e`:h.color||`#6b7280`}})})]})]})}),Ie&&(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost;return Ie.estimated_cost>0||e>0||h.budget!==null})()&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white mb-3`,children:n(`projectDetail.cost.title`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.filamentCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[N,Ie.estimated_cost.toFixed(2)]})]}),Ie.total_energy_kwh>0&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.energy`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-white`,children:[Ie.total_energy_kwh.toFixed(3),` kWh`,Ie.total_energy_cost>0&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray ml-1`,children:[`(`,N,Ie.total_energy_cost.toFixed(2),`)`]})]})]}),(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost;return e<=0?null:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.totalCost`)}),(0,G.jsxs)(`p`,{className:`text-lg font-semibold text-bambu-green`,children:[N,e.toFixed(2)]}),Ie.bom_cost>0&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:n(`projectDetail.cost.includesBom`)})]})})(),h.budget!==null&&(()=>{let e=Ie.estimated_cost+Ie.total_energy_cost+Ie.bom_cost,t=h.budget-e;return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.cost.budget`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[n(`projectDetail.cost.total`),`: `,(0,G.jsxs)(`span`,{className:`text-white font-semibold`,children:[N,h.budget.toFixed(2)]})]}),(0,G.jsxs)(`p`,{className:`text-sm ${t>=0?`text-bambu-green`:`text-red-700 dark:text-red-400`}`,children:[n(`projectDetail.cost.remaining`),`: `,(0,G.jsxs)(`span`,{className:`font-semibold`,children:[N,t.toFixed(2)]})]})]})})()]})]})}),h.children&&h.children.length>0&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2 mb-3`,children:[(0,G.jsx)(xc,{className:`w-5 h-5`}),n(`projectDetail.subProjects.title`,{count:h.children.length})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:h.children.map(e=>(0,G.jsxs)(Ai,{to:`/projects/${e.id}`,className:`flex items-center justify-between gap-4 p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:e.color||`#6b7280`}}),(0,G.jsx)(`span`,{className:`text-white truncate`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded flex-shrink-0 ${e.status===`completed`?`bg-status-ok/20 text-status-ok`:e.status===`archived`?`bg-bambu-gray/20 text-bambu-gray`:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`}`,children:e.status}),e.descendant_count>0&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray flex-shrink-0 inline-flex items-center gap-1`,children:[(0,G.jsx)(xc,{className:`w-3 h-3`}),e.descendant_count]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm text-bambu-gray flex-shrink-0`,children:[e.total_archives>0&&(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`projectDetail.subProjects.jobs`,{count:e.total_archives})}),e.total_filament_grams>0&&(0,G.jsx)(`span`,{className:`hidden md:inline`,children:P5(e.total_filament_grams)}),e.total_cost>0&&(0,G.jsxs)(`span`,{className:`hidden md:inline`,children:[N,e.total_cost.toFixed(2)]}),e.progress_percent!==null&&(0,G.jsxs)(`span`,{children:[e.progress_percent.toFixed(0),`%`]})]})]},e.id))})]})}),h.parent_id&&h.parent_name&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.partOf`)}),(0,G.jsx)(Ai,{to:`/projects/${h.parent_id}`,className:`text-bambu-green hover:underline`,children:h.parent_name})]}),(h.tags||h.due_date||h.priority!==`normal`)&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4`,children:[h.priority&&h.priority!==`normal`&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray uppercase`,children:n(`projectDetail.priorityLabel`)}),(0,G.jsx)(MKe,{priority:h.priority,t:n})]}),h.due_date&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(as,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:ap(h.due_date,{year:`numeric`,month:`short`,day:`numeric`})}),I5(h.due_date,n)&&(0,G.jsxs)(`span`,{className:`text-xs ${I5(h.due_date,n).color}`,children:[`(`,I5(h.due_date,n).label,`)`]})]}),h.tags&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:h.tags.split(`,`).map((e,t)=>(0,G.jsx)(`span`,{className:`px-2 py-0.5 bg-bambu-dark-tertiary text-bambu-gray text-xs rounded`,children:e.trim()},t))})]})]}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-5 h-5`}),n(`projectDetail.notes.title`)]}),c?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:R,disabled:F.isPending,children:[(0,G.jsx)(nd,{className:`w-4 h-4 mr-1`}),n(`common.cancel`)]}),(0,G.jsxs)(Q,{size:`sm`,onClick:L,disabled:F.isPending,children:[F.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}):(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),n(`common.save`)]})]}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:I,disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.notes.noEditPermission`),children:[(0,G.jsx)(Ol,{className:`w-4 h-4 mr-1`}),n(`common.edit`)]})]}),c?(0,G.jsx)(B2,{content:u,onChange:d,placeholder:n(`projectDetail.notes.placeholder`)}):h.notes?(0,G.jsx)(`div`,{className:`prose prose-invert prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:JG.sanitize(h.notes)}}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.notes.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(vc,{className:`w-5 h-5`}),n(`projectDetail.files.title`)]})}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mb-3`,children:[(0,G.jsx)(Ai,{to:`/files`,className:`text-bambu-green hover:underline`,children:n(`projectDetail.files.linkFolders`)}),` `,n(`projectDetail.files.forQuickAccess`)]}),E&&E.length>0?(0,G.jsx)(`div`,{className:`space-y-4`,children:E.map(e=>{let t=k.get(e.id)??[],r=O;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(Ai,{to:`/files?folder=${e.id}`,className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(vc,{className:`w-5 h-5 text-bambu-green shrink-0`}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`projectDetail.files.fileCount`,{count:e.file_count})})]})]}),(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray shrink-0`})]}),r?(0,G.jsx)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-bambu-gray text-sm`,children:(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`})}):t.length===0?(0,G.jsx)(`p`,{className:`text-bambu-gray/60 text-xs italic px-3`,children:n(`projectDetail.files.noFiles`)}):(0,G.jsx)(`div`,{className:`space-y-1 pl-3`,children:t.map(e=>{let t=M5(e);return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 shrink-0 rounded bg-bambu-dark overflow-hidden flex items-center justify-center`,children:e.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getLibraryFileThumbnailUrl(e.id),alt:e.print_name||e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(sc,{className:`w-5 h-5 text-bambu-gray/40`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white truncate`,title:e.print_name||e.filename,children:e.print_name||e.filename}),(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded font-medium ${e.file_type===`3mf`?`bg-bambu-green/20 text-bambu-green`:e.file_type===`gcode`||e.file_type===`gcode.3mf`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:`bg-bambu-gray/20 text-bambu-gray`}`,children:e.file_type.toUpperCase()})]}),t&&(()=>{let t=j.get(e.id)??0,r=h.target_sets;if(!r)return t>0?(0,G.jsxs)(`span`,{className:`shrink-0 text-xs px-1.5 py-0.5 rounded-full bg-bambu-dark text-bambu-gray`,title:n(`projectDetail.files.printedCount`,{count:t}),children:[t,`×`]}):null;let i=Math.min(t/r*100,100),a=t>=r?`text-status-ok`:t>0?`text-status-warning`:`text-bambu-gray`,o=t>=r?`bg-status-ok`:t>0?`bg-status-warning`:`bg-bambu-gray`;return(0,G.jsxs)(`div`,{className:`shrink-0 w-20`,title:n(`projectDetail.files.progressTooltip`,{done:t,target:r}),children:[(0,G.jsxs)(`p`,{className:`text-xs font-medium text-right ${a}`,children:[t,` / `,r]}),(0,G.jsx)(`div`,{className:`h-1 bg-bambu-dark rounded-full overflow-hidden mt-1`,children:(0,G.jsx)(`div`,{className:`h-full ${o}`,style:{width:`${i}%`}})})]})})(),t&&(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:(0,G.jsx)(`button`,{onClick:()=>p(e),title:n(`common.print`),className:`p-1.5 rounded hover:bg-bambu-green/20 text-bambu-green transition-colors`,children:(0,G.jsx)(Rl,{className:`w-4 h-4`})})})]},e.id)})})]},e.id)})}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.files.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(cu,{className:`w-5 h-5`}),n(`projectDetail.bom.title`),Ie&&Ie.bom_total_items>0&&(0,G.jsxs)(`span`,{className:`text-sm font-normal text-bambu-gray`,children:[`(`,n(`projectDetail.bom.acquired`,{completed:Ie.bom_completed_items,total:Ie.bom_total_items}),`)`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[x&&x.some(e=>e.is_complete)&&(0,G.jsx)(`button`,{onClick:()=>le(!ce),className:`text-xs px-2 py-1 rounded transition-colors ${ce?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-bambu-gray hover:text-white`}`,children:n(ce?`projectDetail.bom.showAll`:`projectDetail.bom.hideDone`)}),!se&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>H(!0),disabled:!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.bom.noAddPermission`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-1`}),n(`projectDetail.bom.addPart`)]})]})]}),se&&(0,G.jsxs)(`form`,{onSubmit:De,className:`bg-bambu-dark rounded-lg p-4 mb-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:z,onChange:e=>B(e.target.value),className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.partNamePlaceholder`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:V,onChange:e=>ee(parseInt(e.target.value)||1),className:`w-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white focus:outline-none focus:border-bambu-green`,min:`1`,placeholder:n(`projectDetail.bom.qty`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:te,onChange:e=>ne(e.target.value),className:`flex-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.price`,{currency:N})})]})]}),(0,G.jsx)(`input`,{type:`url`,value:re,onChange:e=>ie(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.sourcingUrlPlaceholder`)}),(0,G.jsx)(`input`,{type:`text`,value:ae,onChange:e=>oe(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.remarksPlaceholder`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>H(!1),children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:!z.trim()||we.isPending,children:we.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`projectDetail.bom.addPart`)})]})]}),S?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):x&&x.length>0?(0,G.jsxs)(`div`,{className:`space-y-2`,children:[x.filter(e=>!ce||!e.is_complete).map(e=>(0,G.jsx)(`div`,{className:`p-3 rounded-lg transition-colors ${e.is_complete?`bg-status-ok/10`:`bg-bambu-dark`}`,children:ue?.id===e.id?(0,G.jsxs)(`form`,{onSubmit:je,className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,G.jsx)(`input`,{type:`text`,value:fe,onChange:e=>pe(e.target.value),className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.partName`),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`number`,value:me,onChange:e=>he(parseInt(e.target.value)||1),className:`w-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white focus:outline-none focus:border-bambu-green`,min:`1`,placeholder:n(`projectDetail.bom.qty`)}),(0,G.jsx)(`input`,{type:`number`,step:`0.01`,value:ge,onChange:e=>_e(e.target.value),className:`flex-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.price`,{currency:N})})]})]}),(0,G.jsx)(`input`,{type:`url`,value:ve,onChange:e=>ye(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.sourcingUrlPlaceholder`)}),(0,G.jsx)(`input`,{type:`text`,value:be,onChange:e=>xe(e.target.value),className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:n(`projectDetail.bom.remarksPlaceholder`)}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,size:`sm`,onClick:Me,children:n(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:!fe.trim()||Te.isPending,children:Te.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):n(`common.save`)})]})]}):(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&Oe(e),disabled:Te.isPending||!a(`projects:update`),title:a(`projects:update`)?void 0:n(`projectDetail.bom.noUpdatePermission`),className:`w-5 h-5 mt-0.5 rounded border-2 flex items-center justify-center transition-colors shrink-0 ${e.is_complete?`bg-status-ok border-status-ok text-white`:a(`projects:update`)?`border-bambu-gray hover:border-bambu-green`:`border-bambu-gray/50 cursor-not-allowed`}`,children:e.is_complete&&(0,G.jsx)(xs,{className:`w-3 h-3`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-sm font-medium ${e.is_complete?`text-bambu-gray line-through`:`text-white`}`,children:[e.name,(0,G.jsxs)(`span`,{className:`text-bambu-gray font-normal ml-2`,children:[`x`,e.quantity_needed]})]}),e.unit_price!==null&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-green whitespace-nowrap`,children:[N,(e.unit_price*e.quantity_needed).toFixed(2)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&Ae(e),disabled:!a(`projects:update`),className:`p-1 rounded transition-colors shrink-0 ${a(`projects:update`)?`hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`projects:update`)?n(`common.edit`):n(`projectDetail.bom.noEditPermission`),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`projects:update`)&&ke(e.id,e.name),disabled:!a(`projects:update`),className:`p-1 rounded transition-colors shrink-0 ${a(`projects:update`)?`hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-red-400`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`projects:update`)?n(`common.delete`):n(`projectDetail.bom.noDeletePermission`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]}),e.sourcing_url&&(0,G.jsxs)(`a`,{href:e.sourcing_url,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1 mt-1 text-xs text-blue-700 dark:text-blue-400 hover:text-blue-900 dark:hover:text-blue-300 transition-colors`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(rc,{className:`w-3 h-3 shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:(()=>{try{return new URL(e.sourcing_url).hostname.replace(`www.`,``)}catch{return e.sourcing_url}})()})]}),e.remarks&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-bambu-gray/80 italic`,children:e.remarks})]})]})},e.id)),Ie&&Ie.bom_cost>0&&(0,G.jsxs)(`div`,{className:`pt-2 mt-2 border-t border-bambu-dark-tertiary flex justify-between text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.bom.totalCost`)}),(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[N,Ie.bom_cost.toFixed(2)]})]})]}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.bom.empty`)})]})}),(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(zc,{className:`w-5 h-5`}),n(`projectDetail.timeline.title`)]})}),w?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):C&&C.length>0?(0,G.jsx)(`div`,{className:`space-y-3`,children:C.slice(0,10).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`w-8 h-8 rounded-full flex items-center justify-center shrink-0 ${e.event_type===`print_completed`?`bg-status-ok/20 text-status-ok`:e.event_type===`print_failed`?`bg-status-error/20 text-status-error`:e.event_type===`print_started`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[e.event_type===`print_completed`&&(0,G.jsx)(xs,{className:`w-4 h-4`}),e.event_type===`print_failed`&&(0,G.jsx)(Ds,{className:`w-4 h-4`}),e.event_type===`print_started`&&(0,G.jsx)(Rl,{className:`w-4 h-4`}),e.event_type===`queued`&&(0,G.jsx)($c,{className:`w-4 h-4`}),e.event_type===`project_created`&&(0,G.jsx)(Fl,{className:`w-4 h-4`})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white`,children:e.title}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate`,children:e.description}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:Fe(e.timestamp)})]})]},t))}):(0,G.jsx)(`p`,{className:`text-bambu-gray/70 text-sm italic`,children:n(`projectDetail.timeline.empty`)})]})}),!h.is_template&&(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>Pe.mutate(),disabled:Pe.isPending||!a(`projects:create`),title:a(`projects:create`)?void 0:n(`projectDetail.template.noCreatePermission`),children:[Pe.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-2`}):(0,G.jsx)(Vs,{className:`w-4 h-4 mr-2`}),n(`projectDetail.template.saveAsTemplate`)]})}),Ie&&(Ie.queued_prints>0||Ie.in_progress_prints>0)&&(0,G.jsx)(zd,{children:(0,G.jsxs)(Vd,{className:`p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)($c,{className:`w-5 h-5`}),n(`projectDetail.queue.title`)]}),(0,G.jsx)(Ai,{to:`/queue?project=${m}`,className:`text-sm text-bambu-green hover:underline`,children:n(`projectDetail.queue.viewAll`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm`,children:[Ie.in_progress_prints>0&&(0,G.jsx)(`span`,{className:`text-yellow-700 dark:text-yellow-400`,children:n(`projectDetail.queue.printing`,{count:Ie.in_progress_prints})}),Ie.queued_prints>0&&(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`projectDetail.queue.queued`,{count:Ie.queued_prints})})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`flex items-center justify-between mb-4`,children:(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5`}),n(`projectDetail.prints.title`,{count:v?.length||0})]})}),b?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin text-bambu-green`})}):(0,G.jsx)(jKe,{archives:v||[],t:n})]}),o&&(0,G.jsx)(j5,{t:n,currencySymbol:N,project:{...h,archive_count:Ie?.total_archives||0,total_items:Ie?.total_items||0,completed_count:Ie?.completed_prints||0,failed_count:Ie?.failed_prints||0,queue_count:Ie?.queued_prints||0,progress_percent:Ie?.progress_percent||null,child_count:h.children?.length??0,archives:[]},onClose:()=>s(!1),onSave:e=>F.mutate(e),isLoading:F.isPending}),Se.isOpen&&(0,G.jsx)(of,{title:Se.title,message:Se.message,confirmText:n(`common.delete`),variant:`danger`,onConfirm:Se.onConfirm,onCancel:()=>Ce(e=>({...e,isOpen:!1}))}),f&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:f.id,archiveName:f.print_name||f.filename,projectId:m,onClose:()=>p(null),onSuccess:()=>{p(null),r.invalidateQueries({queryKey:[`archives`]}),r.invalidateQueries({queryKey:[`queue`]})}})]})}function L5({icon:e,label:t,dropdownLabel:n,onPrimary:r,items:i}){let[a,o]=(0,y.useState)(!1),s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!a)return;let e=e=>{s.current&&!s.current.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a]),i.length===0?(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:r,children:[e,t]}):(0,G.jsxs)(`div`,{className:`relative inline-flex`,ref:s,children:[(0,G.jsxs)(`div`,{className:`flex relative z-50`,children:[(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>{o(!1),r()},className:`rounded-r-none`,children:[e,t]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>o(e=>!e),"aria-label":n,"aria-haspopup":`menu`,"aria-expanded":a,className:`rounded-l-none border-l border-bambu-dark px-2`,children:(0,G.jsx)(ps,{className:`w-4 h-4 transition-transform ${a?`rotate-180`:``}`})})]}),a&&(0,G.jsx)(`div`,{role:`menu`,className:`absolute right-0 top-full mt-1 w-56 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-50 py-1`,children:i.map(e=>(0,G.jsxs)(`button`,{type:`button`,role:`menuitem`,onClick:()=>{o(!1),e.onClick()},className:`w-full text-left px-3 py-2 text-sm text-bambu-gray-light hover:bg-bambu-dark-tertiary hover:text-white transition-colors flex items-center gap-2`,children:[(0,G.jsx)(rc,{className:`w-4 h-4 flex-shrink-0`}),e.label]},e.key))})]})}function PKe({archiveId:e,libraryFileId:t,title:n,fileType:r,onClose:i,onSliceWithBambuddy:a}){let{t:o}=U(),{showToast:s}=qd(),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=HW(c?.open_in_slicer,c?.preferred_slicer),u=t!=null,[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(!0),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(0),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),P=(0,y.useRef)(null),F=(0,y.useRef)(null),I=.35;(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i]),(0,y.useEffect)(()=>{if(g(!0),u){let e=(r||``).toLowerCase(),t=e===`3mf`||e===`gcode.3mf`||e===`stl`;m({has_model:t,has_source:!1,build_volume:{x:256,y:256,z:256},filament_colors:[]}),f(t?`3d`:null),g(!1);return}if(!e){m(null),f(null),g(!1);return}Z.getArchiveCapabilities(e).then(e=>{m(e),e.has_model&&f(`3d`),g(!1)}).catch(()=>{m({has_model:!0,has_source:!1,build_volume:{x:256,y:256,z:256},filament_colors:[]}),f(`3d`),g(!1)})},[e,r,u]),(0,y.useEffect)(()=>{if(x(!0),C(null),T(0),u){let e=(r||``).toLowerCase();if(!t||!(e===`3mf`||e===`gcode.3mf`)){v(null),x(!1);return}Z.getLibraryFilePlates(t).then(e=>v(e)).catch(()=>v(null)).finally(()=>x(!1));return}if(!e){v(null),x(!1);return}Z.getArchivePlates(e).then(e=>v(e)).catch(()=>v(null)).finally(()=>x(!1))},[e,r,u,t]);let L=(0,y.useMemo)(()=>_?.plates??[],[_]),R=(_?.is_multi_plate??!1)&&L.length>1,z=E&&R,B=S==null?null:L.find(e=>e.index===S)??null,V=e=>e.object_count??e.objects?.length??0,ee=L.reduce((e,t)=>e+V(t),0),te=B?V(B):ee,ne=B?o(`modelViewer.plateNumber`,{number:B.index}):o(`modelViewer.allPlates`),re=L.length>0,ie=(0,y.useRef)(null),ae=(0,y.useRef)(null),[oe,se]=(0,y.useState)(10),[H,ce]=(0,y.useState)(3),le=L.length>oe,ue=Math.max(1,Math.ceil(L.length/oe)),de=le?L.slice(w*oe,(w+1)*oe):L;(0,y.useEffect)(()=>{if(!z){se(10),ce(3);return}let e=ie.current,t=ae.current;if(!e||!t)return;let n=0,r=()=>{let n=t.clientWidth,r=Math.floor(n/210),i=Math.max(3,Math.min(5,r||3));ce(e=>e===i?e:i);let a=window.getComputedStyle(e),o=Number.parseFloat(a.rowGap||`0`),s=e.querySelector(`button`)?.getBoundingClientRect().height??44,c=t.clientHeight,l=Math.max(1,Math.floor((c+o)/(s+o)))*i,u=Math.max(1,l-1);se(e=>e===u?e:u)},i=()=>{n&&cancelAnimationFrame(n),n=requestAnimationFrame(r)};i();let a=new ResizeObserver(i);return a.observe(t),a.observe(e),()=>{n&&cancelAnimationFrame(n),a.disconnect()}},[z,L.length]),(0,y.useEffect)(()=>{if(!le){T(0);return}T(e=>Math.min(e,ue-1))},[L.length,le,ue]),(0,y.useEffect)(()=>{if(!le||S==null)return;let e=L.findIndex(e=>e.index===S);if(e<0)return;let t=Math.floor(e/oe);T(e=>e===t?e:t)},[L,oe,S,le]),(0,y.useEffect)(()=>{if(!z){k(null),N(!1);return}if(M)return;let e=P.current,t=F.current;if(!e||!t)return;let n=e.clientHeight;if(!n)return;let r=Math.max(240,n*I),i=Math.max(160,n-10-r),a=Math.min(t.scrollHeight,i);k(Math.max(160,a))},[z,M,L.length,w,10,160,240,I]),(0,y.useEffect)(()=>{if(!A)return;let e=e=>{let t=P.current;if(!t)return;let n=t.getBoundingClientRect(),r=n.height;if(!r)return;let i=Math.max(240,r*I),a=Math.max(160,r-10-i);k(Math.min(a,Math.max(160,e.clientY-n.top)))},t=()=>{j(!1),N(!0)};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t),document.body.style.cursor=``,document.body.style.userSelect=``}},[A,10,160,240,I]);let fe=l===`orcaslicer`?[`orcaslicer`,`bambu_studio`]:[`bambu_studio`,`orcaslicer`],pe=u?fe.filter(e=>uje(r,e)):fe,me=pe.length>0,he=mje(r),ge=!!(u&&c?.use_slicer_api&&a&&he),_e=async r=>{if(!me)return;let i=n||`model`;try{if(u){let{token:e}=await Z.createLibrarySlicerToken(t),n=Z.getLibrarySlicerDownloadUrl(t,e,i);KW(`${window.location.origin}${n}`,r)}else{let{token:t}=await Z.createArchiveSlicerToken(e),n=Z.getArchiveSlicerDownloadUrl(e,t,i);KW(`${window.location.origin}${n}`,r)}}catch{s(o(`modelViewer.openInSlicerFailed`),`error`),KW(u?`${window.location.origin}${Z.getLibraryFileDownloadUrl(t)}`:`${window.location.origin}${Z.getArchiveForSlicer(e,i)}`,r)}},ve=ge?pe:pe.slice(1),ye=e=>o(e===`orcaslicer`?`settings.slicerOrcaSlicer`:`settings.slicerBambuStudio`),be=ve.map(e=>({key:e,label:o(`modelViewer.openInSlicerWith`,{slicer:ye(e)}),onClick:()=>_e(e)}));return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 ${E?`p-0`:`p-8`}`,onClick:i,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary w-full flex flex-col ${E?`h-full max-w-none rounded-none`:`h-[80vh] max-w-4xl rounded-xl`}`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1 mr-4`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white truncate`,children:n}),re&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray bg-bambu-dark-tertiary/70 px-2 py-1 rounded whitespace-nowrap`,children:[ne,`: `,o(`modelViewer.objectCount`,{count:te})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ge?(0,G.jsx)(L5,{icon:(0,G.jsx)(Rs,{className:`w-4 h-4`}),label:o(`slice.action`),dropdownLabel:o(`modelViewer.moreSlicerOptions`),onPrimary:()=>a?.(),items:be}):me?(0,G.jsx)(L5,{icon:(0,G.jsx)(rc,{className:`w-4 h-4`}),label:pe[0]===l?o(`modelViewer.openInSlicer`):o(`modelViewer.openInSlicerWith`,{slicer:ye(pe[0])}),dropdownLabel:o(`modelViewer.moreSlicerOptions`),onPrimary:()=>_e(pe[0]),items:be}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,disabled:!0,children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),o(`modelViewer.openInSlicer`)]}),(0,G.jsx)(Q,{variant:`secondary`,size:`sm`,onClick:()=>D(e=>!e),title:E?`Exit fullscreen`:`Enter fullscreen`,children:E?(0,G.jsx)(fl,{className:`w-4 h-4`}):(0,G.jsx)(cl,{className:`w-4 h-4`})}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:i,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),p&&(0,G.jsx)(`div`,{className:`flex border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`button`,{onClick:()=>p.has_model&&f(`3d`),disabled:!p.has_model,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${d===`3d`?`text-bambu-green border-b-2 border-bambu-green`:p.has_model?`text-bambu-gray hover:text-white`:`text-bambu-gray/30 cursor-not-allowed`}`,children:[(0,G.jsx)(Zo,{className:`w-4 h-4`}),o(`modelViewer.tabs.model`),!p.has_model&&(0,G.jsxs)(`span`,{className:`text-xs`,children:[`(`,o(`modelViewer.notAvailable`),`)`]})]})}),(0,G.jsx)(`div`,{className:`flex-1 overflow-hidden p-4`,children:h?(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):d===`3d`&&p?(0,G.jsxs)(`div`,{ref:P,className:`w-full h-full flex flex-col ${z?`gap-0 min-h-0`:`gap-3`}`,children:[R&&(0,G.jsxs)(`div`,{ref:F,style:z&&O!=null?{height:O}:void 0,className:`rounded-lg border border-bambu-dark-tertiary bg-bambu-dark p-3 ${z?`flex flex-col shrink-0`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-bambu-gray mb-2`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4`}),o(`modelViewer.plates`),b&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`})]}),(0,G.jsxs)(`div`,{className:z?`flex flex-col min-h-0 flex-1`:void 0,children:[(0,G.jsx)(`div`,{ref:ae,className:z?`min-h-0 overflow-hidden pr-1 flex-1`:void 0,children:(0,G.jsxs)(`div`,{ref:ie,className:z?`grid gap-2`:`grid grid-cols-2 md:grid-cols-3 gap-2`,style:z?{gridTemplateColumns:`repeat(${H}, minmax(0, 1fr))`}:void 0,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>C(null),className:`flex items-center rounded-lg border text-left transition-colors ${z?`gap-1.5 p-1.5 w-full`:`gap-2 p-2`} ${S==null?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[(0,G.jsx)(`div`,{className:`rounded bg-bambu-dark-tertiary flex items-center justify-center ${z?`w-8 h-8`:`w-10 h-10`}`,children:(0,G.jsx)(Jc,{className:`${z?`w-4 h-4`:`w-5 h-5`} text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`${z?`text-xs`:`text-sm`} text-white font-medium truncate`,children:o(`modelViewer.allPlates`)}),(0,G.jsx)(`p`,{className:`${z?`text-[10px]`:`text-xs`} text-bambu-gray truncate`,children:o(`modelViewer.plateCount`,{count:L.length})})]}),S==null&&(0,G.jsx)(fs,{className:`${z?`w-3.5 h-3.5`:`w-4 h-4`} text-bambu-green flex-shrink-0`})]}),de.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>C(e.index),className:`flex items-center rounded-lg border text-left transition-colors ${z?`gap-1.5 p-1.5 w-full`:`gap-2 p-2`} ${S===e.index?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary bg-bambu-dark-secondary hover:border-bambu-gray`}`,children:[e.has_thumbnail&&e.thumbnail_url?(0,G.jsx)(`img`,{src:vd(e.thumbnail_url),alt:`Plate ${e.index}`,className:`${z?`w-8 h-8`:`w-10 h-10`} rounded object-cover bg-bambu-dark-tertiary`}):(0,G.jsx)(`div`,{className:`rounded bg-bambu-dark-tertiary flex items-center justify-center ${z?`w-8 h-8`:`w-10 h-10`}`,children:(0,G.jsx)(Jc,{className:`${z?`w-4 h-4`:`w-5 h-5`} text-bambu-gray`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`${z?`text-xs`:`text-sm`} text-white font-medium truncate`,children:e.name||o(`modelViewer.plateNumber`,{number:e.index})}),(0,G.jsx)(`p`,{className:`${z?`text-[10px]`:`text-xs`} text-bambu-gray truncate`,children:o(`modelViewer.objectCount`,{count:e.object_count??e.objects?.length??0})})]}),S===e.index&&(0,G.jsx)(fs,{className:`${z?`w-3.5 h-3.5`:`w-4 h-4`} text-bambu-green flex-shrink-0`})]},e.index))]})}),(B||le)&&(0,G.jsxs)(`div`,{className:`mt-auto pt-3 flex items-center gap-4 text-xs text-bambu-gray overflow-x-auto`,children:[B&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:o(`modelViewer.plateNumber`,{number:B.index})}),B.print_time_seconds!=null&&(0,G.jsx)(`span`,{children:o(`modelViewer.eta`,{minutes:Math.round(B.print_time_seconds/60)})}),B.filament_used_grams!=null&&(0,G.jsxs)(`span`,{children:[B.filament_used_grams.toFixed(1),` g`]}),B.filaments.length>0&&(0,G.jsx)(`span`,{children:o(`modelViewer.filamentCount`,{count:B.filaments.length})})]}),le&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 whitespace-nowrap ${B?`ml-auto`:``}`,children:[(0,G.jsx)(`span`,{children:o(`modelViewer.pagination.pageOf`,{current:w+1,total:ue})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e=>Math.max(e-1,0)),disabled:w===0,className:`px-2 py-1 rounded border text-xs ${w===0?`border-bambu-dark-tertiary text-bambu-gray/40 cursor-not-allowed`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:o(`modelViewer.pagination.prev`)}),(()=>{let e=Math.max(0,w-2),t=Math.min(ue,e+5);t-e<5&&(e=Math.max(0,t-5));let n=Array.from({length:t-e},(t,n)=>e+n);return(0,G.jsxs)(G.Fragment,{children:[e>0&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(0),className:`px-2 py-1 rounded border text-xs ${w===0?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:`1`}),e>1&&(0,G.jsx)(`span`,{className:`px-1`,children:`…`}),n.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e),className:`px-2 py-1 rounded border text-xs ${w===e?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:e+1},e)),tT(ue-1),className:`px-2 py-1 rounded border text-xs ${w===ue-1?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:ue})]})})(),(0,G.jsx)(`button`,{type:`button`,onClick:()=>T(e=>Math.min(e+1,ue-1)),disabled:w>=ue-1,className:`px-2 py-1 rounded border text-xs ${w>=ue-1?`border-bambu-dark-tertiary text-bambu-gray/40 cursor-not-allowed`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white hover:border-bambu-gray`}`,children:o(`modelViewer.pagination.next`)})]})]})]})]})]}),z&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,onMouseDown:e=>{e.preventDefault(),j(!0),N(!0)},className:`h-2 cursor-row-resize flex items-center justify-center ${A?`bg-bambu-dark-tertiary`:`bg-bambu-dark-secondary/60 hover:bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`div`,{className:`w-12 h-1 rounded-full bg-bambu-gray/50`})}),(0,G.jsx)(`div`,{className:`flex-1 ${z?`min-h-0`:``}`,children:(0,G.jsx)(rT,{url:u?Z.getLibraryFileDownloadUrl(t):p.has_source?Z.getSource3mfDownloadUrl(e):Z.getArchiveDownload(e),fileType:r,buildVolume:p.build_volume,filamentColors:p.filament_colors,selectedPlateId:S,className:`w-full h-full`})})]}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center text-bambu-gray`,children:o(`modelViewer.noPreview`)})})]})})}var R5=[`library-tags`];function FKe({open:e,fileIds:t,onClose:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),[o,s]=(0,y.useState)(`add`),[c,l]=(0,y.useState)(new Set),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(``);(0,y.useEffect)(()=>{e||(s(`add`),l(new Set),d(``),p(``))},[e]);let{data:m=[],isLoading:h}=K({queryKey:R5,queryFn:Z.getLibraryTags,enabled:e}),g=(0,y.useMemo)(()=>{let e=u.trim().toLowerCase();return e?m.filter(t=>t.name.toLowerCase().includes(e)):m},[m,u]),_=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=q({mutationFn:e=>Z.createLibraryTag(e),onSuccess:e=>{l(t=>new Set(t).add(e.id)),p(``),i.invalidateQueries({queryKey:R5})},onError:e=>{a(e.message||r(`fileManager.tags.saveFailed`),`error`)}}),b=q({mutationFn:()=>Z.bulkAssignLibraryTags(t,Array.from(c),o),onSuccess:e=>{a(o===`add`?r(`fileManager.tags.applyAddSuccess`,{count:e.associations_added,files:e.files_updated}):r(`fileManager.tags.applyRemoveSuccess`,{count:e.associations_removed,files:e.files_updated}),`success`),i.invalidateQueries({queryKey:[`library-files`]}),i.invalidateQueries({queryKey:R5}),n()},onError:e=>{a(e.message||r(`fileManager.tags.applyFailed`),`error`)}});if((0,y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&!b.isPending&&!v.isPending&&n()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,n,b.isPending,v.isPending]),!e)return null;let x=!f.trim()||v.isPending||m.some(e=>e.name.toLowerCase()===f.trim().toLowerCase()),S=`bulk-tags-picker-title`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>!b.isPending&&n()}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":S,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-5 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h3`,{id:S,className:`text-base font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-4 h-4 text-bambu-green`}),r(`fileManager.tags.bulkTitle`,{count:t.length})]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:n,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`px-5 py-3 border-b border-bambu-dark-tertiary flex gap-4 text-sm`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`bulk-action`,checked:o===`add`,onChange:()=>s(`add`),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:r(`fileManager.tags.actionAdd`)})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`bulk-action`,checked:o===`remove`,onChange:()=>s(`remove`),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-white`,children:r(`fileManager.tags.actionRemove`)})]})]}),(0,G.jsx)(`div`,{className:`px-5 py-3 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`input`,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:r(`fileManager.tags.searchPlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`div`,{className:`overflow-y-auto flex-1 min-h-[8rem] max-h-[24rem]`,children:h?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-12 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin mr-2`}),r(`common.loading`)]}):g.length===0?(0,G.jsx)(`div`,{className:`py-12 text-center text-bambu-gray text-sm`,children:m.length===0?r(`fileManager.tags.empty`):r(`fileManager.tags.noMatches`)}):(0,G.jsx)(`ul`,{className:`divide-y divide-bambu-dark-tertiary/40`,children:g.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-5 py-2 hover:bg-bambu-dark-tertiary/30 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c.has(e.id),onChange:()=>_(e.id),className:`accent-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white truncate flex-1`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.file_count})]})},e.id))})}),o===`add`&&(0,G.jsxs)(`div`,{className:`px-5 py-3 border-t border-bambu-dark-tertiary flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:r(`fileManager.tags.createPlaceholder`),maxLength:64,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,onKeyDown:e=>{e.key===`Enter`&&!x&&(e.preventDefault(),v.mutate(f.trim()))}}),(0,G.jsxs)(Q,{type:`button`,variant:`secondary`,onClick:()=>v.mutate(f.trim()),disabled:x,children:[v.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`fileManager.tags.createButton`)]})]}),(0,G.jsxs)(`div`,{className:`px-5 py-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,disabled:b.isPending,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`button`,onClick:()=>b.mutate(),disabled:c.size===0||b.isPending||t.length===0,children:[b.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(o===`add`?`fileManager.tags.applyAdd`:`fileManager.tags.applyRemove`)]})]})]})]})}function IKe(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var LKe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,RKe=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,zKe={};function z5(e,t){return((t||zKe).jsx?RKe:LKe).test(e)}var BKe=/[ \t\n\f\r]/g;function VKe(e){return typeof e==`object`?e.type===`text`?HKe(e.value):!1:HKe(e)}function HKe(e){return e.replace(BKe,``)===``}var B5=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};B5.prototype.normal={},B5.prototype.property={},B5.prototype.space=void 0;function UKe(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new B5(n,r,t)}function V5(e){return e.toLowerCase()}var H5=class{constructor(e,t){this.attribute=t,this.property=e}};H5.prototype.attribute=``,H5.prototype.booleanish=!1,H5.prototype.boolean=!1,H5.prototype.commaOrSpaceSeparated=!1,H5.prototype.commaSeparated=!1,H5.prototype.defined=!1,H5.prototype.mustUseProperty=!1,H5.prototype.number=!1,H5.prototype.overloadedBoolean=!1,H5.prototype.property=``,H5.prototype.spaceSeparated=!1,H5.prototype.space=void 0;var U5=s({boolean:()=>W5,booleanish:()=>G5,commaOrSpaceSeparated:()=>X5,commaSeparated:()=>Y5,number:()=>q5,overloadedBoolean:()=>K5,spaceSeparated:()=>J5}),WKe=0,W5=Z5(),G5=Z5(),K5=Z5(),q5=Z5(),J5=Z5(),Y5=Z5(),X5=Z5();function Z5(){return 2**++WKe}var Q5=Object.keys(U5),$5=class extends H5{constructor(e,t,n,r){let i=-1;if(super(e,t),GKe(this,`space`,r),typeof n==`number`)for(;++i4&&n.slice(0,4)===`data`&&rqe.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(nqe,oqe);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!nqe.test(e)){let n=e.replace(tqe,aqe);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=$5}return new i(r,t)}function aqe(e){return`-`+e.toLowerCase()}function oqe(e){return e.charAt(1).toUpperCase()}var sqe=UKe([KKe,YKe,ZKe,QKe,$Ke],`html`),t7=UKe([KKe,XKe,ZKe,QKe,$Ke],`svg`);function cqe(e){return e.join(` `).trim()}var lqe=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g,u=` +`,d=`/`,f=`*`,p=``,m=`comment`,h=`declaration`;function g(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,g=1;function v(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(u);g=~n?e.length-n:g+e.length}function y(){var e={line:l,column:g};return function(t){return t.position=new b(e),C(),t}}function b(e){this.start=e,this.end={line:l,column:g},this.source=t.source}b.prototype.content=e;function x(n){var r=Error(t.source+`:`+l+`:`+g+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=g,r.source=e,!t.silent)throw r}function S(t){var n=t.exec(e);if(n){var r=n[0];return v(r),e=e.slice(r.length),n}}function C(){S(i)}function w(e){var t;for(e||=[];t=T();)t!==!1&&e.push(t);return e}function T(){var t=y();if(!(d!=e.charAt(0)||f!=e.charAt(1))){for(var n=2;p!=e.charAt(n)&&(f!=e.charAt(n)||d!=e.charAt(n+1));)++n;if(n+=2,p===e.charAt(n-1))return x(`End of comment missing`);var r=e.slice(2,n-2);return g+=2,v(r),e=e.slice(n),g+=2,t({type:m,comment:r})}}function E(){var e=y(),t=S(a);if(t){if(T(),!S(o))return x(`property missing ':'`);var r=S(s),i=e({type:h,property:_(t[0].replace(n,p)),value:r?_(r[0].replace(n,p)):p});return S(c),i}}function D(){var e=[];w(e);for(var t;t=E();)t!==!1&&(e.push(t),w(e));return e}return C(),D()}function _(e){return e?e.replace(l,p):p}t.exports=g})),uqe=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(lqe());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),dqe=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),fqe=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(uqe()),r=dqe();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),pqe=mqe(`end`),n7=mqe(`start`);function mqe(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function hqe(e){let t=n7(e),n=pqe(e);if(t&&n)return{start:t,end:n}}function r7(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?gqe(e.position):`start`in e||`end`in e?gqe(e):`line`in e||`column`in e?i7(e):``}function i7(e){return _qe(e&&e.line)+`:`+_qe(e&&e.column)}function gqe(e){return i7(e&&e.start)+`-`+i7(e&&e.end)}function _qe(e){return e&&typeof e==`number`?e:1}var a7=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=r7(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};a7.prototype.file=``,a7.prototype.name=``,a7.prototype.reason=``,a7.prototype.message=``,a7.prototype.stack=``,a7.prototype.column=void 0,a7.prototype.line=void 0,a7.prototype.ancestors=void 0,a7.prototype.cause=void 0,a7.prototype.fatal=void 0,a7.prototype.place=void 0,a7.prototype.ruleId=void 0,a7.prototype.source=void 0;var vqe=l(fqe(),1),o7={}.hasOwnProperty,yqe=new Map,bqe=/[A-Z]/g,xqe=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),Sqe=new Set([`td`,`th`]);function Cqe(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=Nqe(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=Mqe(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?t7:sqe,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=wqe(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function wqe(e,t,n){if(t.type===`element`)return Tqe(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return Eqe(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return Oqe(e,t,n);if(t.type===`mdxjsEsm`)return Dqe(e,t);if(t.type===`root`)return kqe(e,t,n);if(t.type===`text`)return Aqe(e,t)}function Tqe(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=t7,e.schema=i),e.ancestors.push(t);let a=Rqe(e,t.tagName,!1),o=Pqe(e,t),s=c7(e,t);return xqe.has(t.tagName)&&(s=s.filter(function(e){return typeof e==`string`?!VKe(e):!0})),jqe(e,o,a,t),s7(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Eqe(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}l7(e,t.position)}function Dqe(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);l7(e,t.position)}function Oqe(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=t7,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Rqe(e,t.name,!0),o=Fqe(e,t),s=c7(e,t);return jqe(e,o,a,t),s7(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function kqe(e,t,n){let r={};return s7(r,c7(e,t)),e.create(t,e.Fragment,r,n)}function Aqe(e,t){return t.value}function jqe(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function s7(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function Mqe(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function Nqe(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=n7(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function Pqe(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&o7.call(t.properties,i)){let a=Iqe(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&Sqe.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function Fqe(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else l7(e,t.position);else{let i=r.name,a;if(r.value&&typeof r.value==`object`)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else l7(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function c7(e,t){let n=[],r=-1,i=e.passKeys?new Map:yqe;for(;++ri?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(f7(e,e.length,0,t),e):t}var Jqe={}.hasOwnProperty;function Yqe(e){let t={},n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function m7(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var h7=S7(/[A-Za-z]/),g7=S7(/[\dA-Za-z]/),$qe=S7(/[#-'*+\--9=?A-Z^-~]/);function _7(e){return e!==null&&(e<32||e===127)}var v7=S7(/\d/),eJe=S7(/[\dA-Fa-f]/),tJe=S7(/[!-/:-@[-`{-~]/);function y7(e){return e!==null&&e<-2}function b7(e){return e!==null&&(e<0||e===32)}function x7(e){return e===-2||e===-1||e===32}var nJe=S7(/\p{P}|\p{S}/u),rJe=S7(/\s/);function S7(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function C7(e){let t=[],n=-1,r=0,i=0;for(;++n55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function w7(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return x7(r)?(e.enter(n),s(r)):t(r)}function s(r){return x7(r)&&a++o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;er;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function lJe(e,t,n){return w7(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function T7(e){if(e===null||b7(e)||rJe(e))return 1;if(nJe(e))return 2}function E7(e,t,n){let r=[],i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};fJe(d,-c),fJe(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=p7(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=p7(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=p7(l,E7(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=p7(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=p7(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,f7(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n0&&x7(t)?w7(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||y7(t)?e.check(wJe,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||y7(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),x7(t)?w7(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),x7(t)?w7(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||y7(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function DJe(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var k7={name:`codeIndented`,tokenize:kJe},OJe={partial:!0,tokenize:AJe};function kJe(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),w7(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):y7(t)?e.attempt(OJe,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||y7(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function AJe(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):w7(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):y7(e)?i(e):n(e)}}var jJe={name:`codeText`,previous:NJe,resolve:MJe,tokenize:PJe};function MJe(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&A7(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),A7(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),A7(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function UJe(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||_7(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||y7(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||b7(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):y7(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||y7(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!x7(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function GJe(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),w7(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||y7(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function j7(e,t){let n;return r;function r(i){return y7(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):x7(i)?w7(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var KJe={name:`definition`,tokenize:JJe},qJe={partial:!0,tokenize:YJe};function JJe(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return WJe.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=m7(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return b7(t)?j7(e,l)(t):l(t)}function l(t){return UJe(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(qJe,d,d)(t)}function d(t){return x7(t)?w7(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||y7(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function YJe(e,t,n){return r;function r(t){return b7(t)?j7(e,i)(t):n(t)}function i(t){return GJe(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return x7(t)?w7(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||y7(e)?t(e):n(e)}}var XJe={name:`hardBreakEscape`,tokenize:ZJe};function ZJe(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return y7(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var QJe={name:`headingAtx`,resolve:$Je,tokenize:eYe};function $Je(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},f7(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function eYe(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||b7(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||y7(n)?(e.exit(`atxHeading`),t(n)):x7(n)?w7(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||b7(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var tYe=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),nYe=[`pre`,`script`,`style`,`textarea`],rYe={concrete:!0,name:`htmlFlow`,resolveTo:oYe,tokenize:sYe},iYe={partial:!0,tokenize:lYe},aYe={partial:!0,tokenize:cYe};function oYe(e){let t=e.length;for(;t--&&!(e[t][0]===`enter`&&e[t][1].type===`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function sYe(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:I):h7(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):h7(a)?(e.consume(a),i=4,r.interrupt?t:I):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:I):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return h7(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||b7(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&nYe.includes(l)?(i=1,r.interrupt?t(s):O(s)):tYe.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||g7(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return x7(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||h7(t)?(e.consume(t),b):x7(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||g7(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):x7(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):x7(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||y7(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||b7(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||x7(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||y7(t)?O(t):x7(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),M):t===60&&i===1?(e.consume(t),N):t===62&&i===4?(e.consume(t),L):t===63&&i===3?(e.consume(t),I):t===93&&i===5?(e.consume(t),F):y7(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(iYe,R,k)(t)):t===null||y7(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(aYe,A,R)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),j}function j(t){return t===null||y7(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function M(t){return t===45?(e.consume(t),I):O(t)}function N(t){return t===47?(e.consume(t),o=``,P):O(t)}function P(t){if(t===62){let n=o.toLowerCase();return nYe.includes(n)?(e.consume(t),L):O(t)}return h7(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),P):O(t)}function F(t){return t===93?(e.consume(t),I):O(t)}function I(t){return t===62?(e.consume(t),L):t===45&&i===2?(e.consume(t),I):O(t)}function L(t){return t===null||y7(t)?(e.exit(`htmlFlowData`),R(t)):(e.consume(t),L)}function R(n){return e.exit(`htmlFlow`),t(n)}}function cYe(e,t,n){let r=this;return i;function i(t){return y7(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function lYe(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(O7,t,n)}}var uYe={name:`htmlText`,tokenize:dYe};function dYe(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):h7(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):h7(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):y7(t)?(o=d,N(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?M(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):y7(t)?(o=h,N(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?M(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?M(t):y7(t)?(o=v,N(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):y7(t)?(o=y,N(t)):(e.consume(t),y)}function b(e){return e===62?M(e):y(e)}function x(t){return h7(t)?(e.consume(t),S):n(t)}function S(t){return t===45||g7(t)?(e.consume(t),S):C(t)}function C(t){return y7(t)?(o=C,N(t)):x7(t)?(e.consume(t),C):M(t)}function w(t){return t===45||g7(t)?(e.consume(t),w):t===47||t===62||b7(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),M):t===58||t===95||h7(t)?(e.consume(t),E):y7(t)?(o=T,N(t)):x7(t)?(e.consume(t),T):M(t)}function E(t){return t===45||t===46||t===58||t===95||g7(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):y7(t)?(o=D,N(t)):x7(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):y7(t)?(o=O,N(t)):x7(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,j):t===null?n(t):y7(t)?(o=k,N(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||b7(t)?T(t):(e.consume(t),A)}function j(e){return e===47||e===62||b7(e)?T(e):n(e)}function M(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function N(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),P}function P(t){return x7(t)?w7(e,F,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):F(t)}function F(t){return e.enter(`htmlTextData`),o(t)}}var M7={name:`labelEnd`,resolveAll:hYe,resolveTo:gYe,tokenize:_Ye},fYe={tokenize:vYe},pYe={tokenize:yYe},mYe={tokenize:bYe};function hYe(e){let t=-1,n=[];for(;++t=3&&(a===null||y7(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),x7(t)?w7(e,s,`whitespace`)(t):s(t))}}var F7={continuation:{tokenize:AYe},exit:MYe,name:`list`,tokenize:kYe},DYe={partial:!0,tokenize:NYe},OYe={partial:!0,tokenize:jYe};function kYe(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:v7(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(P7,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return v7(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(O7,r.interrupt?n:u,e.attempt(DYe,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return x7(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function AYe(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(O7,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,w7(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!x7(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(OYe,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,w7(e,e.attempt(F7,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function jYe(e,t,n){let r=this;return w7(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function MYe(e){e.exit(this.containerState.type)}function NYe(e,t,n){let r=this;return w7(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!x7(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var PYe={name:`setextUnderline`,resolveTo:FYe,tokenize:IYe};function FYe(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function IYe(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),x7(t)?w7(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||y7(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var LYe={tokenize:RYe};function RYe(e){let t=this,n=e.attempt(O7,r,e.attempt(this.parser.constructs.flowInitial,i,w7(e,e.attempt(this.parser.constructs.flow,i,e.attempt(RJe,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var zYe={resolveAll:UYe()},BYe=HYe(`string`),VYe=HYe(`text`);function HYe(e){return{resolveAll:UYe(e===`text`?WYe:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i$Ye,contentInitial:()=>qYe,disable:()=>eXe,document:()=>KYe,flow:()=>YYe,flowInitial:()=>JYe,insideSpan:()=>QYe,string:()=>XYe,text:()=>ZYe}),KYe={42:F7,43:F7,45:F7,48:F7,49:F7,50:F7,51:F7,52:F7,53:F7,54:F7,55:F7,56:F7,57:F7,62:gJe},qYe={91:KJe},JYe={[-2]:k7,[-1]:k7,32:k7},YYe={35:QJe,42:P7,45:[PYe,P7],60:rYe,61:PYe,95:P7,96:TJe,126:TJe},XYe={38:SJe,92:bJe},ZYe={[-5]:N7,[-4]:N7,[-3]:N7,33:xYe,38:SJe,42:D7,60:[pJe,uYe],91:CYe,92:[XJe,bJe],93:M7,95:D7,96:jJe},QYe={null:[D7,zYe]},$Ye={null:[42,95]},eXe={null:[]};function tXe(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=p7(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=E7(a,l.events,l),l.events):[]}function f(e,t){return rXe(p(e),t)}function p(e){return nXe(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function rXe(e,t){let n=-1,r=[],i;for(;++n0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||hXe).call(a,void 0,e[0])}for(r.position={start:I7(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:I7(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function bXe(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function xXe(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function SXe(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=C7(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function CXe(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function wXe(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function TXe(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function EXe(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TXe(e,t);let i={src:C7(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function DXe(e,t){let n={src:C7(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function OXe(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function kXe(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return TXe(e,t);let i={href:C7(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function AXe(e,t){let n={href:C7(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function jXe(e,t,n){let r=e.all(t),i=n?MXe(n):NXe(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||gXe).call(a,void 0,e[0])}for(r.position={start:I7(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:I7(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function xXe(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function SXe(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function CXe(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=C7(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function wXe(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function TXe(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function EXe(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function DXe(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return EXe(e,t);let i={src:C7(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function OXe(e,t){let n={src:C7(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function kXe(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function AXe(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return EXe(e,t);let i={href:C7(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function jXe(e,t){let n={href:C7(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function MXe(e,t,n){let r=e.all(t),i=n?NXe(n):PXe(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s1}function PXe(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=n7(t.children[1]),o=fqe(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function zXe(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(WXe(t.slice(i),i>0,!1)),a.join(``)}function WXe(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===VXe||t===HXe;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===VXe||t===HXe;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function GXe(e,t){let n={type:`text`,value:UXe(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function KXe(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var qXe={blockquote:_Xe,break:vXe,code:yXe,delete:bXe,emphasis:xXe,footnoteReference:SXe,heading:CXe,html:wXe,imageReference:EXe,image:DXe,inlineCode:OXe,linkReference:kXe,link:AXe,listItem:jXe,list:PXe,paragraph:FXe,root:IXe,strong:LXe,table:RXe,tableCell:BXe,tableRow:zXe,text:GXe,thematicBreak:KXe,toml:L7,yaml:L7,definition:L7,footnoteDefinition:L7};function L7(){}var JXe=typeof self==`object`?self:globalThis,YXe=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new JXe[e](t)},XXe=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(YXe(e,t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(YXe(a,o),i)};return r},ZXe=e=>XXe(new Map,e)(0),R7=``,{toString:QXe}={},{keys:$Xe}=Object,z7=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=QXe.call(e).slice(8,-1);switch(n){case`Array`:return[1,R7];case`Object`:return[2,R7];case`Date`:return[3,R7];case`RegExp`:return[4,R7];case`Map`:return[5,R7];case`Set`:return[6,R7];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]},B7=([e,t])=>e===0&&(t===`function`||t===`symbol`),eZe=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=z7(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of $Xe(r))(e||!B7(z7(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(B7(z7(n))||B7(z7(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!B7(z7(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},tZe=(e,{json:t,lossy:n}={})=>{let r=[];return eZe(!(t||n),!!t,new Map,r)(e),r},V7=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?ZXe(tZe(e,t)):structuredClone(e):(e,t)=>ZXe(tZe(e,t));function nZe(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function rZe(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function iZe(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||nZe,r=e.options.footnoteBackLabel||rZe,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...V7(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:` +`});let l={type:`element`,tagName:`li`,properties:a,children:o};return e.patch(t,l),e.applyData(t,l)}function NXe(e){let t=!1;if(e.type===`list`){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r1}function FXe(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=n7(t.children[1]),o=pqe(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function BXe(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(GXe(t.slice(i),i>0,!1)),a.join(``)}function GXe(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===HXe||t===UXe;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===HXe||t===UXe;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function KXe(e,t){let n={type:`text`,value:WXe(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function qXe(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var JXe={blockquote:vXe,break:yXe,code:bXe,delete:xXe,emphasis:SXe,footnoteReference:CXe,heading:wXe,html:TXe,imageReference:DXe,image:OXe,inlineCode:kXe,linkReference:AXe,link:jXe,listItem:MXe,list:FXe,paragraph:IXe,root:LXe,strong:RXe,table:zXe,tableCell:VXe,tableRow:BXe,text:KXe,thematicBreak:qXe,toml:L7,yaml:L7,definition:L7,footnoteDefinition:L7};function L7(){}var YXe=typeof self==`object`?self:globalThis,XXe=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new YXe[e](t)},ZXe=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(XXe(e,t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(XXe(a,o),i)};return r},QXe=e=>ZXe(new Map,e)(0),R7=``,{toString:$Xe}={},{keys:eZe}=Object,z7=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=$Xe.call(e).slice(8,-1);switch(n){case`Array`:return[1,R7];case`Object`:return[2,R7];case`Date`:return[3,R7];case`RegExp`:return[4,R7];case`Map`:return[5,R7];case`Set`:return[6,R7];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]},B7=([e,t])=>e===0&&(t===`function`||t===`symbol`),tZe=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=z7(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of eZe(r))(e||!B7(z7(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(B7(z7(n))||B7(z7(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!B7(z7(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},nZe=(e,{json:t,lossy:n}={})=>{let r=[];return tZe(!(t||n),!!t,new Map,r)(e),r},V7=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?QXe(nZe(e,t)):structuredClone(e):(e,t)=>QXe(nZe(e,t));function rZe(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function iZe(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function aZe(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||rZe,r=e.options.footnoteBackLabel||iZe,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...V7(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:` `},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:` -`}]}}var aZe=(function(e){if(e==null)return lZe;if(typeof e==`function`)return H7(e);if(typeof e==`object`)return Array.isArray(e)?oZe(e):sZe(e);if(typeof e==`string`)return cZe(e);throw Error(`Expected function, string, or object as test`)});function oZe(e){let t=[],n=-1;for(;++n`:``))+`)`})}return u;function u(){let l=fZe,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=mZe(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d`:``))+`)`})}return u;function u(){let l=pZe,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=hZe(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d0&&n.push({type:`text`,value:` -`}),n}function SZe(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function CZe(e,t){let n=_Ze(e,t),r=n.one(e,void 0),i=iZe(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:` -`},i)),a}function wZe(e,t){return e&&`run`in e?async function(n,r){let i=CZe(n,{file:r,...t});await e.run(i,r)}:function(n,r){return CZe(n,{file:r,...e||t})}}function TZe(e){if(e)throw e}var EZe=o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});ft.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var G7={basename:kZe,dirname:AZe,extname:jZe,join:MZe,sep:`/`};function kZe(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);K7(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function AZe(e){if(K7(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function jZe(e){K7(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function MZe(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function PZe(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function K7(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var FZe={cwd:IZe};function IZe(){return`/`}function q7(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function LZe(e){if(typeof e==`string`)e=new URL(e);else if(!q7(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return RZe(e)}function RZe(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n0){let[r,...a]=t,o=n[i][1];W7(o)&&W7(r)&&(r=(0,Z7.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function Q7(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function $7(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function e9(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function GZe(e){if(!W7(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function KZe(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function t9(e){return qZe(e)?e:new zZe(e)}function qZe(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function JZe(e){return typeof e==`string`||YZe(e)}function YZe(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var XZe=[],ZZe={allowDangerousHtml:!0},QZe=/^(https?|ircs?|mailto|xmpp)$/i,$Ze=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function eQe(e){let t=tQe(e),n=nQe(e);return rQe(t.runSync(t.parse(n),n),e)}function tQe(e){let t=e.rehypePlugins||XZe,n=e.remarkPlugins||XZe,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...ZZe}:ZZe;return WZe().use(gXe).use(n).use(wZe,r).use(t)}function nQe(e){let t=e.children||``,n=new zZe;return typeof t==`string`?n.value=t:``+t,n}function rQe(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||iQe;for(let e of $Ze)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return t.className&&(e={type:`element`,tagName:`div`,properties:{className:t.className},children:e.type===`root`?e.children:[e]}),hZe(e,l),Sqe(e,{Fragment:G.Fragment,components:i,ignoreInvalidStyle:!0,jsx:G.jsx,jsxs:G.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in u7)if(Object.hasOwn(u7,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=u7[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function iQe(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||QZe.test(e.slice(0,t))?e:``}mQe.peek=pQe;function aQe(){this.buffer()}function oQe(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function sQe(){this.buffer()}function cQe(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function lQe(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=m7(this.sliceSerialize(e)).toLowerCase(),n.label=t}function uQe(e){this.exit(e)}function dQe(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=m7(this.sliceSerialize(e)).toLowerCase(),n.label=t}function fQe(e){this.exit(e)}function pQe(){return`[`}function mQe(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function hQe(){return{enter:{gfmFootnoteCallString:aQe,gfmFootnoteCall:oQe,gfmFootnoteDefinitionLabelString:sQe,gfmFootnoteDefinition:cQe},exit:{gfmFootnoteCallString:lQe,gfmFootnoteCall:uQe,gfmFootnoteDefinitionLabelString:dQe,gfmFootnoteDefinition:fQe}}}yQe.peek=bQe;function gQe(){return{canContainEols:[`delete`],enter:{strikethrough:_Qe},exit:{strikethrough:vQe}}}function _Qe(e){this.enter({type:`delete`,children:[]},e)}function vQe(e){this.exit(e)}function yQe(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function bQe(){return`~`}function xQe(){return{enter:{table:SQe,tableData:TQe,tableHeader:TQe,tableRow:wQe},exit:{codeText:EQe,table:CQe,tableData:n9,tableHeader:n9,tableRow:n9}}}function SQe(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function CQe(e){this.exit(e),this.data.inTable=void 0}function wQe(e){this.enter({type:`tableRow`,children:[]},e)}function n9(e){this.exit(e)}function TQe(e){this.enter({type:`tableCell`,children:[]},e)}function EQe(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,DQe));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function DQe(e,t){return t===`|`?t:e}function OQe(){return{exit:{taskListCheckValueChecked:kQe,taskListCheckValueUnchecked:kQe,paragraph:AQe}}}function kQe(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function AQe(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i999||s===93&&!o||s===null||s===91||b7(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(m7(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return b7(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function IQe(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||b7(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=m7(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return b7(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),w7(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function LQe(e,t,n){return e.check(O7,t,e.attempt(jQe,t,n))}function RQe(e){e.exit(`gfmFootnoteDefinition`)}function zQe(e,t,n){let r=this;return w7(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function BQe(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=T7(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var VQe=class{constructor(){this.map=[]}add(e,t,n){HQe(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function HQe(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):y7(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):x7(t)?w7(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||b7(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,x7(t)?w7(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return x7(t)?w7(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||y7(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return x7(t)?w7(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||y7(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||y7(n)?(e.exit(`tableRow`),t(n)):x7(n)?w7(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||b7(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function KQe(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new VQe;for(;++nn[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},i9(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function qQe(e,t,n,r,i){let a=[],o=i9(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function i9(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var JQe={name:`tasklistCheck`,tokenize:XQe};function YQe(){return{text:{91:JQe}}}function XQe(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return b7(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return y7(r)?t(r):x7(r)?e.check({tokenize:ZQe},t,n)(r):n(r)}}function ZQe(e,t,n){return w7(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function QQe(){let e=this.data(),t=e.micromarkExtensions||=[],n=e.fromMarkdownExtensions||=[];t.push(MQe(),BQe(),WQe(),YQe()),n.push(hQe(),gQe(),xQe(),OQe())}var $Qe=`fileManager.readmeCollapsed`;function e$e({folderId:e}){let{t}=U(),[n,r]=(0,y.useState)(()=>localStorage.getItem($Qe)===`1`);(0,y.useEffect)(()=>{localStorage.setItem($Qe,n?`1`:`0`)},[n]);let{data:i,isLoading:a,error:o}=K({queryKey:[`folder-readme`,e],queryFn:()=>Z.getLibraryFolderReadme(e),retry:!1,staleTime:3e4});return a||o||!i?null:n?(0,G.jsxs)(`div`,{className:`mb-2 lg:mb-0 order-first lg:order-none lg:w-10 lg:flex-shrink-0 lg:h-full`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(!1),title:t(`fileManager.readme.show`),"aria-label":t(`fileManager.readme.show`),className:`flex lg:hidden w-full items-center gap-2 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark/40 transition-colors`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:i.filename}),(0,G.jsx)(El,{className:`w-4 h-4 text-bambu-gray flex-shrink-0 ml-auto`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(!1),title:t(`fileManager.readme.show`),"aria-label":t(`fileManager.readme.show`),className:`hidden lg:flex h-full w-10 flex-col items-center gap-2 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark/40 transition-colors`,children:[(0,G.jsx)(El,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-bambu-gray [writing-mode:vertical-rl] rotate-180 select-none`,children:t(`fileManager.readme.label`)})]})]}):(0,G.jsxs)(`div`,{className:`mb-4 lg:mb-0 order-first lg:order-none lg:w-80 xl:w-96 lg:flex-shrink-0 lg:h-full flex flex-col bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,title:i.filename,children:i.filename}),i.truncated&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 flex-shrink-0`,children:t(`fileManager.readme.truncated`)})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>r(!0),title:t(`fileManager.readme.hide`),"aria-label":t(`fileManager.readme.hide`),className:`p-1 rounded text-bambu-gray hover:text-white hover:bg-bambu-dark/40 transition-colors flex-shrink-0`,children:(0,G.jsx)(Tl,{className:`w-4 h-4`})})]}),(0,G.jsx)(`div`,{className:`px-4 py-3 border-t border-bambu-dark-tertiary flex-1 overflow-y-auto max-h-96 lg:max-h-none text-sm text-bambu-gray-light leading-relaxed space-y-2`,children:(0,G.jsx)(eQe,{remarkPlugins:[QQe],components:{h1:({children:e})=>(0,G.jsx)(`h1`,{className:`text-lg font-semibold text-white mt-2 mb-1`,children:e}),h2:({children:e})=>(0,G.jsx)(`h2`,{className:`text-base font-semibold text-white mt-2 mb-1`,children:e}),h3:({children:e})=>(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white mt-2 mb-1`,children:e}),p:({children:e})=>(0,G.jsx)(`p`,{className:`my-1`,children:e}),ul:({children:e})=>(0,G.jsx)(`ul`,{className:`list-disc list-inside space-y-0.5 ml-2`,children:e}),ol:({children:e})=>(0,G.jsx)(`ol`,{className:`list-decimal list-inside space-y-0.5 ml-2`,children:e}),li:({children:e})=>(0,G.jsx)(`li`,{children:e}),code:({children:e,...t})=>t.className?(0,G.jsx)(`code`,{className:`block p-2 bg-bambu-dark rounded text-xs font-mono text-bambu-gray-light overflow-x-auto`,children:e}):(0,G.jsx)(`code`,{className:`px-1 py-0.5 bg-bambu-dark rounded text-xs font-mono text-bambu-green`,children:e}),pre:({children:e})=>(0,G.jsx)(`pre`,{className:`my-2`,children:e}),blockquote:({children:e})=>(0,G.jsx)(`blockquote`,{className:`border-l-2 border-bambu-dark-tertiary pl-3 text-bambu-gray italic`,children:e}),a:({children:e,href:t})=>(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline`,children:e}),table:({children:e})=>(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsx)(`table`,{className:`min-w-full text-xs border-collapse`,children:e})}),th:({children:e})=>(0,G.jsx)(`th`,{className:`border border-bambu-dark-tertiary px-2 py-1 text-left font-semibold text-white`,children:e}),td:({children:e})=>(0,G.jsx)(`td`,{className:`border border-bambu-dark-tertiary px-2 py-1`,children:e}),hr:()=>(0,G.jsx)(`hr`,{className:`border-bambu-dark-tertiary my-2`})},children:i.content})})]})}function t$e({open:e,onClose:t,onPickTag:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),{data:m=[],isLoading:h}=K({queryKey:L5,queryFn:Z.getLibraryTags,enabled:e}),g=()=>{i.invalidateQueries({queryKey:L5}),i.invalidateQueries({queryKey:[`library-files`]})},_=q({mutationFn:async()=>{let e=u.trim();if(!e)throw Error(r(`fileManager.tags.nameRequired`));return c?Z.updateLibraryTag(c.id,e):Z.createLibraryTag(e)},onSuccess:()=>{a(r(c?`fileManager.tags.updated`:`fileManager.tags.created`),`success`),s(!1),l(null),d(``),g()},onError:e=>{a(e.message||r(`fileManager.tags.saveFailed`),`error`)}}),v=q({mutationFn:e=>Z.deleteLibraryTag(e),onSuccess:()=>{a(r(`fileManager.tags.deleted`),`success`),p(null),g()},onError:e=>{a(e.message||r(`fileManager.tags.deleteFailed`),`error`)}}),b=()=>{l(null),d(``),s(!0)},x=e=>{l(e),d(e.name),s(!0)},S=(0,y.useCallback)(()=>{_.isPending||(s(!1),l(null),d(``))},[_.isPending]);(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(_.isPending||v.isPending||(o?S():f||t()))};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,o,f,_.isPending,v.isPending,S,t]);let C=e=>{e.preventDefault(),_.mutate()};if(!e)return null;let w=`library-tags-modal-title`,T=`library-tag-editor-title`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>{_.isPending||v.isPending||t()}}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-4xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":w,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`h2`,{id:w,className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),r(`fileManager.tags.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-0.5`,children:r(`fileManager.tags.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:b,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`fileManager.tags.add`)]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:t,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto`,children:h?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin mr-2`}),r(`common.loading`)]}):m.length===0?(0,G.jsx)(`div`,{className:`py-16 text-center text-bambu-gray`,children:r(`fileManager.tags.empty`)}):(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium`,children:r(`fileManager.tags.name`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right`,children:r(`fileManager.tags.fileCount`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right w-32`,children:r(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:m.map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 hover:bg-bambu-dark-tertiary/30 ${n?`cursor-pointer`:``}`,onClick:()=>{n&&(n(e.id),t())},children:[(0,G.jsx)(`td`,{className:`px-4 py-3 text-white font-medium`,children:e.name}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right text-bambu-gray`,children:e.file_count}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded`,onClick:()=>x(e),title:r(`common.edit`),"aria-label":r(`fileManager.tags.editAria`,{name:e.name}),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded`,onClick:()=>p(e),title:r(`common.delete`),"aria-label":r(`fileManager.tags.deleteAria`,{name:e.name}),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},e.id))})]})})]}),o&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:S}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":T,children:[(0,G.jsx)(`h3`,{id:T,className:`text-lg font-semibold text-white mb-4`,children:r(c?`fileManager.tags.edit`:`fileManager.tags.add`)}),(0,G.jsxs)(`form`,{onSubmit:C,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`library-tag-name`,children:r(`fileManager.tags.name`)}),(0,G.jsx)(`input`,{id:`library-tag-name`,type:`text`,maxLength:64,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green mb-4`,placeholder:r(`fileManager.tags.createPlaceholder`),value:u,onChange:e=>d(e.target.value),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:S,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:_.isPending||!u.trim(),children:[_.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.save`)]})]})]})]})]}),f&&(0,G.jsx)(of,{title:r(`fileManager.tags.confirmDelete`,{name:f.name}),message:f.file_count>0?r(`fileManager.tags.confirmDeleteInUseMessage`,{count:f.file_count}):r(`fileManager.tags.confirmDeleteMessage`),confirmText:r(`common.delete`),variant:`danger`,isLoading:v.isPending,onConfirm:()=>v.mutate(f.id),onCancel:()=>p(null)})]})}var n$e=90;function r$e({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(n$e),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(i);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>l(i),300);return()=>window.clearTimeout(e)},[i]);let u=K({queryKey:[`library-purge-preview`,c,o],queryFn:()=>Z.previewLibraryPurge(c,o),enabled:c>=1}),d=q({mutationFn:()=>Z.executeLibraryPurge(i,o),onSuccess:i=>{r(t(`libraryPurge.toast.success`,{count:i.moved_to_trash}),`success`),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]}),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),e()},onError:e=>r(e.message||t(`libraryPurge.toast.failed`),`error`)});(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&!d.isPending&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,d.isPending]);let f=u.data,p=f?.count??0,m=f?.total_bytes??0,h=p>0&&!d.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-lg w-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),t(`libraryPurge.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-gray-400 hover:text-gray-600 dark:hover:text-gray-200`,"aria-label":t(`common.close`),disabled:d.isPending,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:t(`libraryPurge.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`purge-days`,className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:t(`libraryPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`input`,{id:`purge-days`,type:`number`,min:1,max:3650,value:i,onChange:e=>a(Math.max(1,Math.min(3650,parseInt(e.target.value||`0`,10)||0))),className:`w-24 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:t(`libraryPurge.days`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),className:`rounded border-gray-300`}),t(`libraryPurge.includeNeverPrinted`)]}),(0,G.jsxs)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/30 p-3`,children:[(0,G.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-gray-600 dark:text-gray-300 mb-2`,children:t(`libraryPurge.effectsTitle`)}),(0,G.jsxs)(`ul`,{className:`text-xs text-gray-700 dark:text-gray-300 space-y-1 list-disc pl-4`,children:[(0,G.jsx)(`li`,{children:t(`libraryPurge.effect1`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect2`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect3`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect4`)})]})]}),(0,G.jsx)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 p-3`,children:u.isLoading||u.isFetching?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,t(`libraryPurge.previewLoading`)]}):u.isError?(0,G.jsx)(`div`,{className:`text-sm text-red-600 dark:text-red-400`,children:u.error?.message??t(`libraryPurge.previewFailed`)}):(0,G.jsxs)(`div`,{className:`text-sm text-gray-900 dark:text-gray-100`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:t(`libraryPurge.previewSummary`,{count:p,size:Gd(m)})}),f?.sample_filenames&&f.sample_filenames.length>0&&(0,G.jsxs)(`ul`,{className:`mt-2 text-xs text-gray-600 dark:text-gray-400 space-y-0.5 list-disc pl-4`,children:[f.sample_filenames.map(e=>(0,G.jsx)(`li`,{className:`truncate`,children:e},e)),p>f.sample_filenames.length&&(0,G.jsx)(`li`,{className:`list-none italic text-gray-500`,children:t(`libraryPurge.andMore`,{count:p-f.sample_filenames.length})})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-start text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded px-3 py-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:t(`libraryPurge.warning`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-gray-200 dark:border-gray-700`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:d.isPending,children:t(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,disabled:!h,onClick:()=>d.mutate(),children:d.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}),t(`libraryPurge.purging`)]}):t(`libraryPurge.confirmCta`,{count:p})})]})]})})}function i$e({parentId:e,onClose:t,onSave:n,isLoading:r,t:i}){let[a,o]=(0,y.useState)(``);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`fileManager.newFolder`)})}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),n({name:a.trim(),parent_id:e})},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:i(`fileManager.folderName`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:i(`fileManager.folderNamePlaceholder`),autoFocus:!0,required:!0})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:i(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!a.trim()||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`common.create`)})]})]})]})})}function a$e({onClose:e,onSave:t,isLoading:n,t:r}){let[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(!0),[u,d]=(0,y.useState)(!1);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(bc,{className:`w-5 h-5 text-bambu-green`}),r(`fileManager.linkExternalFolder`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`fileManager.linkExternalFolderDescription`)})]}),(0,G.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),t({name:i.trim(),external_path:o.trim(),readonly:c,show_hidden:u})},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:r(`fileManager.folderName`)}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:r(`fileManager.externalFolderNamePlaceholder`),autoFocus:!0,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:r(`fileManager.externalPath`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green font-mono text-sm`,placeholder:`/mnt/nas/3d-prints`,required:!0}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`fileManager.externalPathHelp`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`fileManager.readOnly`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,r(`fileManager.readOnlyHelp`),`)`]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`fileManager.showHiddenFiles`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,children:r(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!i.trim()||!o.trim()||n,children:n?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):r(`fileManager.linkFolder`)})]})]})]})})}var o$e=`<>:"/\\|?*`;function s$e(e){for(let t of e)if(o$e.includes(t)||t.charCodeAt(0)<32)return t;return null}function c$e({type:e,currentName:t,onClose:n,onSave:r,isLoading:i,t:a}){let o=e===`file`?t.match(/(\.gcode\.3mf|\.3mf|\.gcode)$/i)?.[1]??``:``,s=e===`file`&&o?t.slice(0,-o.length):t,[c,l]=(0,y.useState)(s),u=e===`file`?s$e(c):null,d=u?a(`fileManager.invalidFilenameChar`,{char:u}):null;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(e===`file`?`fileManager.renameFile`:`fileManager.renameFolder`)})}),(0,G.jsxs)(`form`,{onSubmit:n=>{if(n.preventDefault(),d)return;let i=e===`file`?c.trim()+o:c.trim();c.trim()&&i!==t&&r(i)},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.name`)}),(0,G.jsxs)(`div`,{className:`flex items-center bg-bambu-dark border rounded focus-within:border-bambu-green ${d?`border-red-500`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),className:`flex-1 bg-transparent px-3 py-2 text-white placeholder-bambu-gray focus:outline-none min-w-0`,autoFocus:!0,required:!0}),o&&(0,G.jsx)(`span`,{className:`pr-3 text-bambu-gray text-sm select-none whitespace-nowrap`,children:o})]}),d&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:d})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,children:a(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!c.trim()||c.trim()===s||!!d||i,children:i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):a(`common.rename`)})]})]})]})})}function l$e({folders:e,selectedFiles:t,currentFolderId:n,onClose:r,onMove:i,isLoading:a,t:o}){let[s,c]=(0,y.useState)(null),l=(e,t=0)=>{let n=[];for(let r of e)n.push({id:r.id,name:r.name,depth:t}),r.children.length>0&&n.push(...l(r.children,t+1));return n},u=[{id:null,name:o(`fileManager.rootNoFolder`),depth:0},...l(e)];return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:o(`fileManager.moveFiles`,{count:t.length})})}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto space-y-1`,children:u.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),disabled:e.id===n,className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:e.id===n?`opacity-50 cursor-not-allowed text-bambu-gray`:`hover:bg-bambu-dark text-white`}`,style:{paddingLeft:`${12+e.depth*16}px`},children:[(0,G.jsx)(vc,{className:`w-4 h-4`}),e.name,e.id===n&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray ml-auto`,children:[`(`,o(`fileManager.current`),`)`]})]},e.id??`root`))}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:r,children:o(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>i(s),disabled:a,children:a?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):o(`common.move`)})]})]})]})})}function u$e({folder:e,onClose:t,onLink:n,isLoading:r,t:i}){let[a,o]=(0,y.useState)(`project`),[s,c]=(0,y.useState)(e.project_id||e.archive_id||null);(0,y.useState)(()=>{e.archive_id&&o(`archive`)});let{data:l}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:t=>JW([...t].sort((e,t)=>e.name.localeCompare(t.name)),e.project_id)}),{data:u}=K({queryKey:[`archives-for-link`],queryFn:()=>Z.getArchives(void 0,void 0,100)}),d=()=>{n(a===`project`?{project_id:s,archive_id:0}:{project_id:0,archive_id:s})},f=()=>{n({project_id:0,archive_id:0})},p=e.project_id||e.archive_id;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green`}),i(`fileManager.linkFolder`)]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`fileManager.linkFolderDescription`,{name:e.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>{o(`project`),c(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${a===`project`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Qo,{className:`w-4 h-4`}),i(`fileManager.project`)]}),(0,G.jsxs)(`button`,{onClick:()=>{o(`archive`),c(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${a===`archive`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),i(`fileManager.archive`)]})]}),(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto space-y-1 bg-bambu-dark rounded-lg p-2`,children:a===`project`?l&&l.length>0?l.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark-tertiary text-white`}`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:e.color||`#00ae42`}}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-4`,children:i(`fileManager.noProjectsFound`)}):u&&u.length>0?u.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark-tertiary text-white`}`,children:[(0,G.jsx)(sc,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.print_name||e.filename})]},e.id)):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-4`,children:i(`fileManager.noArchivesFound`)})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-between`,children:[p&&(0,G.jsxs)(Q,{variant:`danger`,onClick:f,disabled:r,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 mr-2`}),i(`fileManager.unlink`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ${p?``:`ml-auto`}`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:d,disabled:!s||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`fileManager.link`)})]})]})]})})}function d$e({folder:e,selectedFolderId:t,onSelect:n,onDelete:r,onLink:i,onRename:a,depth:o=0,wrapNames:s=!1,defaultExpanded:c=!0,showModified:l=!1,hasPermission:u,t:d}){let[f,p]=(0,y.useState)(c),[m,h]=(0,y.useState)(!1),g=e.children.length>0,_=e.project_id||e.archive_id,v=e.is_external,b=u(`library:delete_all`)||u(`library:delete_own`)&&e.file_count===0&&!g&&!v&&!_,x=b?void 0:u(`library:delete_own`)&&!v&&!_?d(`fileManager.onlyEmptyFoldersDeletable`):d(`fileManager.noPermissionDeleteFolder`);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`group flex items-center gap-1 px-2 py-1.5 rounded cursor-pointer transition-colors ${t===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,style:{paddingLeft:`${8+o*12}px`},onClick:()=>n(e.id),children:[g?(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),p(!f)},className:`p-0.5 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(ms,{className:`w-3.5 h-3.5 transition-transform ${f?`rotate-90`:``}`})}):(0,G.jsx)(`div`,{className:`w-4.5`}),v?(0,G.jsx)(bc,{className:`w-4 h-4 text-purple-600 dark:text-purple-400 flex-shrink-0`}):(0,G.jsx)(vc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`block text-sm ${s?`break-all`:`truncate`}`,title:e.name,children:e.name}),l&&e.latest_activity_at&&(0,G.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-xs text-bambu-gray`,title:d(`fileManager.lastActivity`),children:[(0,G.jsx)(rs,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:ip(e.latest_activity_at)})]})]}),_&&(0,G.jsxs)(`button`,{onClick:t=>{t.stopPropagation(),i(e)},className:`flex-shrink-0 flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-200 dark:hover:bg-blue-500/30 transition-colors`,title:`${e.project_name?`Project: ${e.project_name}`:`Archive: ${e.archive_name}`} (click to change)`,children:[(0,G.jsx)(Xc,{className:`w-3 h-3`}),e.project_name?(0,G.jsx)(Qo,{className:`w-3 h-3`}):(0,G.jsx)(Po,{className:`w-3 h-3`})]}),v&&e.external_readonly&&(0,G.jsx)(`span`,{title:d(`fileManager.readOnly`),children:(0,G.jsx)(nl,{className:`w-3 h-3 text-amber-600 dark:text-amber-400 flex-shrink-0`})}),e.file_count>0&&(0,G.jsx)(`span`,{className:`flex-shrink-0 text-xs text-bambu-gray`,children:e.file_count}),!_&&!v&&(0,G.jsx)(`button`,{onClick:t=>{t.stopPropagation(),i(e)},className:`flex-shrink-0 p-1 rounded hover:bg-bambu-dark-tertiary`,title:d(`fileManager.linkToProjectOrArchive`),children:(0,G.jsx)(Xc,{className:`w-3.5 h-3.5 text-bambu-gray hover:text-bambu-green`})}),(0,G.jsx)(`div`,{className:`flex-shrink-0 flex items-center gap-0.5 transition-opacity ${s?``:`can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`}`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>h(!m),className:`p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)($s,{className:`w-3.5 h-3.5 text-bambu-gray`})}),m&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>h(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${u(`library:update_all`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{u(`library:update_all`)&&(a(e),h(!1))},disabled:!u(`library:update_all`),title:u(`library:update_all`)?void 0:d(`fileManager.noPermissionRenameFolder`),children:[(0,G.jsx)(Al,{className:`w-3.5 h-3.5`}),d(`common.rename`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${u(`library:update_all`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{u(`library:update_all`)&&(i(e),h(!1))},disabled:!u(`library:update_all`),title:u(`library:update_all`)?void 0:d(`fileManager.noPermissionLinkFolder`),children:[(0,G.jsx)(Xc,{className:`w-3.5 h-3.5`}),d(_?`fileManager.changeLink`:`fileManager.linkTo`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${b?`text-red-700 dark:text-red-400 hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{b&&(r(e.id),h(!1))},disabled:!b,title:x,children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),d(`common.delete`)]})]})]})]})})]}),g&&f&&(0,G.jsx)(`div`,{children:e.children.map(e=>(0,G.jsx)(d$e,{folder:e,selectedFolderId:t,onSelect:n,onDelete:r,onLink:i,onRename:a,depth:o+1,wrapNames:s,defaultExpanded:c,showModified:l,hasPermission:u,t:d},e.id))})]})}function f$e({file:e,isSelected:t,onSelect:n,onDelete:r,onDownload:i,onPrint:a,onSlice:o,onOpenInSlicer:s,onRunPipeline:c,useSlicerApi:l,desktopSlicer:u,canSlice:d,onPreview3d:f,onRename:p,onGenerateThumbnail:m,onTagClick:h,thumbnailVersion:g,hasPermission:_,canModify:v,authEnabled:b,showModified:x,t:S}){let[C,w]=(0,y.useState)(null),T=_(`library:read`),E=v(`library`,`update`,e.created_by_id),D=v(`library`,`delete`,e.created_by_id),O=[];return a&&j5(e)&&O.push({label:S(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>a(e),disabled:!_(`queue:create`),title:_(`queue:create`)?void 0:S(`fileManager.noPermissionAddToQueue`)}),M5(e,!!l,u)&&(l?o:s)&&O.push({label:S(`slice.action`),icon:l?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{l?o?.(e):s?.(e)},disabled:!d,title:d?void 0:S(l?`fileManager.noPermissionSlice`:`fileManager.noPermissionDownload`)}),c&&l&&M5(e,!0,u)&&O.push({label:S(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>c(e),disabled:!_(`pipelines:run`),title:_(`pipelines:run`)?void 0:S(`library.runWithPipeline.noPermission`)}),f&&(e.file_type===`3mf`||e.file_type===`gcode`||e.file_type===`stl`||e.file_type===`gcode.3mf`)&&O.push({label:S(`fileManager.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>f(e),disabled:!T,title:T?void 0:S(`fileManager.noPermissionPreview`)}),O.push({label:S(`common.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>i(e.id),disabled:!_(`library:read`),title:_(`library:read`)?void 0:S(`fileManager.noPermissionDownload`)}),p&&O.push({label:S(`common.rename`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>p(e),disabled:!E,title:E?void 0:S(`fileManager.noPermissionRenameFile`)}),m&&e.file_type===`stl`&&O.push({label:S(`fileManager.generateThumbnail`),icon:(0,G.jsx)(Hc,{className:`w-4 h-4`}),onClick:()=>m(e),disabled:!E,title:E?void 0:S(`fileManager.noPermissionGenerateThumbnail`)}),O.push({label:S(`common.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>r(e.id),danger:!0,disabled:!D,title:D?void 0:S(`fileManager.noPermissionDeleteFile`)}),(0,G.jsxs)(`div`,{className:`group relative bg-bambu-dark-secondary rounded-lg border transition-all cursor-pointer ${t?`border-bambu-green ring-1 ring-bambu-green`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,onClick:()=>n(e.id),children:[(0,G.jsxs)(`div`,{className:`aspect-square bg-bambu-dark flex items-center justify-center overflow-hidden rounded-t-lg`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(e.id)}${g?(Z.getLibraryFileThumbnailUrl(e.id).includes(`?`)?`&`:`?`)+`v=${g}`:``}`,alt:e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(sc,{className:`w-12 h-12 text-bambu-gray/30`}),(0,G.jsx)(`div`,{className:`absolute top-2 right-2 text-xs px-1.5 py-0.5 rounded font-medium ${e.file_type===`3mf`?`bg-bambu-green/90 text-white`:e.file_type===`gcode`||e.file_type===`gcode.3mf`?`bg-blue-500/90 text-white`:e.file_type===`stl`?`bg-purple-500/90 text-white`:`bg-bambu-gray/90 text-white`}`,children:e.file_type.toUpperCase()})]}),(0,G.jsxs)(`div`,{className:`p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white truncate`,title:e.print_name||e.filename,children:e.print_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-1 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:Gd(e.file_size)}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.print_time_seconds)]})]}),e.sliced_for_model&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),e.sliced_for_model]}),(e.variant_count??0)>1&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-green flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),S(`fileManager.variants.badge`,{count:e.variant_count})]}),e.print_count>0&&(0,G.jsx)(`div`,{className:`mt-1 text-xs text-bambu-green`,children:S(`fileManager.printedCount`,{count:e.print_count})}),b&&e.created_by_username&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]}),x&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,title:S(`fileManager.lastModified`),children:[(0,G.jsx)(rs,{className:`w-3 h-3`}),ip(e.fs_modified_at??e.created_at)]}),(e.tags?.length??0)>0&&(0,G.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,onClick:e=>e.stopPropagation(),children:e.tags.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>h?.(e.id),className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[10px] bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20 transition-colors max-w-full`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-2.5 h-2.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`absolute bottom-2 right-2 transition-opacity can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();w({x:t.left,y:t.bottom+4})},className:`p-1.5 rounded bg-bambu-dark-secondary/90 hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)($s,{className:`w-4 h-4 text-bambu-gray`})}),C&&(0,G.jsx)(kT,{x:C.x,y:C.y,items:O,onClose:()=>w(null)})]}),(0,G.jsx)(`div`,{className:`absolute top-2 left-2 w-5 h-5 rounded border-2 flex items-center justify-center transition-all ${t?`bg-bambu-green border-bambu-green`:`border-white/30 bg-black/30 can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`}`,children:t&&(0,G.jsx)(`div`,{className:`w-2 h-2 bg-white rounded-sm`})})]})}function p$e(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i,canModify:a,authEnabled:o}=Nd(),[s]=Ri(),c=or(),l=s.get(`folder`),[u,d]=(0,y.useState)(l?parseInt(l,10):null),[f,p]=(0,y.useState)(`internal`),[m,h]=(0,y.useState)([]),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)([]),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),[N,P]=(0,y.useState)([]),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(null),[te,ne]=(0,y.useState)(null),[re,ie]=(0,y.useState)(null),[ae,oe]=(0,y.useState)({}),[se,H]=(0,y.useState)(null),[ce,le]=(0,y.useState)(()=>localStorage.getItem(`library-view-mode`)||`grid`),[ue,de]=(0,y.useState)(()=>localStorage.getItem(`library-wrap-folders`)===`true`),[fe,pe]=(0,y.useState)(()=>localStorage.getItem(`library-collapse-folders`)===`true`),[me,he]=(0,y.useState)(()=>localStorage.getItem(`library-folder-sort-field`)===`activity`?`activity`:`name`),[ge,_e]=(0,y.useState)(()=>localStorage.getItem(`library-folder-sort-direction`)===`desc`?`desc`:`asc`),[ve,ye]=(0,y.useState)(()=>{let e=localStorage.getItem(`library-sidebar-width`);return e?parseInt(e,10):256}),[be,xe]=(0,y.useState)(!1),Se=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!be)return;document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`;let e=e=>{if(!Se.current)return;let t=Se.current.parentElement?.getBoundingClientRect();if(!t)return;let n=e.clientX-t.left;ye(Math.min(500,Math.max(200,n)))},t=()=>{xe(!1),document.body.style.userSelect=``,document.body.style.cursor=``,localStorage.setItem(`library-sidebar-width`,String(ve))};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t),document.body.style.userSelect=``,document.body.style.cursor=``}},[be,ve]);let[Ce,we]=(0,y.useState)(``),[Te,Ee]=(0,y.useState)(`all`),[De,Oe]=(0,y.useState)(``),[ke,Ae]=(0,y.useState)(()=>localStorage.getItem(`library-sort-field`)||`name`),[je,Me]=(0,y.useState)(()=>localStorage.getItem(`library-sort-direction`)||`asc`),[Ne,Pe]=(0,y.useState)(()=>localStorage.getItem(`library-show-modified`)===`true`);(0,y.useEffect)(()=>{let e=s.get(`folder`);e&&d(parseInt(e,10))},[s]);let{data:Fe}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),Ie=HW(Fe?.open_in_slicer,Fe?.preferred_slicer),Le=(0,y.useCallback)(async t=>{try{let{token:e}=await Z.createLibrarySlicerToken(t.id),n=Z.getLibrarySlicerDownloadUrl(t.id,e,t.filename);KW(`${window.location.origin}${n}`,Ie)}catch{n(e(`fileManager.toast.openInSlicerFailed`),`error`);let r=Z.getLibraryFileDownloadUrl(t.id);KW(`${window.location.origin}${r}`,Ie)}},[Ie,n,e]),Re=(0,y.useCallback)(()=>Fe?.use_slicer_api?r(`library:upload`):i(`library:read_all`,`library:read_own`),[Fe?.use_slicer_api,r,i]),{data:ze,isLoading:Be}=K({queryKey:[`library-folders`],queryFn:()=>Z.getLibraryFolders()}),Ve=(0,y.useMemo)(()=>{if(!ze)return ze;let e=t=>[...t].sort((e,t)=>{let n=0;if(me===`name`)n=e.name.localeCompare(t.name);else{let r=e.latest_activity_at?new Date(e.latest_activity_at).getTime():null,i=t.latest_activity_at?new Date(t.latest_activity_at).getTime():null;if(r===null&&i===null)n=e.name.localeCompare(t.name);else if(r===null)return 1;else if(i===null)return-1;else n=r-i}return ge===`asc`?n:-n}).map(t=>({...t,children:e(t.children)}));return e(ze)},[ze,me,ge]),{data:He}=K({queryKey:[`library-trash-count`],queryFn:async()=>{try{return(await Z.listLibraryTrash(1,0)).total}catch{return 0}},staleTime:3e4}),Ue=u!==null&&Ce.trim().length>0,We=(0,y.useMemo)(()=>[...N].sort((e,t)=>e-t),[N]),{data:Ge=[]}=K({queryKey:[`library-tags`],queryFn:Z.getLibraryTags}),Ke=(0,y.useMemo)(()=>{let e=new Map;for(let t of Ge)e.set(t.id,t.name);return e},[Ge]);(0,y.useEffect)(()=>{Ge.length!==0&&P(e=>{let t=e.filter(e=>Ke.has(e));return t.length===e.length?e:t})},[Ge.length,Ke]);let qe=(0,y.useCallback)(e=>{P(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),{data:Je,isLoading:Ye}=K({queryKey:[`library-files`,u,f,Ue,We],queryFn:()=>Z.getLibraryFiles(u,!1,void 0,u===null?f:void 0,Ue,We)}),{data:Xe}=K({queryKey:[`library-stats`],queryFn:()=>Z.getLibraryStats()}),{data:Ze}=K({queryKey:[`users`,`slim`],queryFn:()=>Z.getUsersSlim()}),Qe=(0,y.useMemo)(()=>{if(!Je)return[];let e=new Set(Je.map(e=>e.file_type));return Array.from(e).sort()},[Je]),$e=(0,y.useMemo)(()=>{if(!Je)return[];let e=[...Je];if(Ce.trim()){let t=Ce.toLowerCase();e=e.filter(e=>e.filename.toLowerCase().includes(t)||e.print_name&&e.print_name.toLowerCase().includes(t))}if(Te!==`all`&&(e=e.filter(e=>e.file_type===Te)),De.trim()){let t=De.toLowerCase();e=e.filter(e=>e.created_by_username&&e.created_by_username.toLowerCase().includes(t))}return e.sort((e,t)=>{let n=0;switch(ke){case`name`:n=(e.print_name||e.filename).localeCompare(t.print_name||t.filename);break;case`date`:n=(rp(e.fs_modified_at??e.created_at)?.getTime()??0)-(rp(t.fs_modified_at??t.created_at)?.getTime()??0);break;case`size`:n=e.file_size-t.file_size;break;case`type`:n=e.file_type.localeCompare(t.file_type);break;case`prints`:n=e.print_count-t.print_count;break}return je===`asc`?n:-n}),e},[Je,Ce,Te,De,ke,je]),et=(0,y.useMemo)(()=>{if(!Xe||!Fe)return!1;let e=(Fe.library_disk_warning_gb||5)*1024*1024*1024;return Xe.disk_free_bytesZ.createLibraryFolder(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),_(!1),n(e(`fileManager.toast.folderCreated`),`success`)},onError:e=>n(e.message,`error`)}),nt=q({mutationFn:async e=>{let t=await Z.createExternalFolder(e);return await Z.scanExternalFolder(t.id),t},onSuccess:r=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-stats`]}),b(!1),d(r.id),n(e(`fileManager.toast.externalFolderLinked`),`success`)},onError:e=>n(e.message,`error`)}),rt=q({mutationFn:e=>Z.scanExternalFolder(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),n(e(`fileManager.toast.folderScanned`,{added:r.added,removed:r.removed}),`success`)},onError:e=>n(e.message,`error`)}),it=q({mutationFn:e=>Z.deleteLibraryFolder(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-stats`]}),u===L?.id&&d(null),R(null),n(e(`fileManager.toast.folderDeleted`),`success`)},onError:e=>{R(null),n(e.message,`error`)}}),at=q({mutationFn:e=>Z.deleteLibraryFile(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),t.invalidateQueries({queryKey:[`library-trash-count`]}),h(e=>e.filter(e=>e!==L?.id)),R(null),n(e(`fileManager.toast.fileDeleted`),`success`)},onError:e=>{R(null),n(e.message,`error`)}}),ot=q({mutationFn:e=>Z.createVariantGroup(e.map(e=>({library_file_id:e}))),onSuccess:r=>{t.invalidateQueries({queryKey:[`library-files`]}),n(e(`fileManager.variants.grouped`,{count:r.members.length}),`success`),h([])},onError:e=>n(e.message,`error`)}),st=q({mutationFn:e=>Z.bulkDeleteLibrary(e,[]),onSuccess:(r,i)=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),t.invalidateQueries({queryKey:[`library-trash-count`]}),n(e(`fileManager.toast.filesDeleted`,{count:i.length}),`success`),h([]),R(null)},onError:e=>{R(null),n(e.message,`error`)}}),ct=q({mutationFn:({fileIds:e,folderId:t})=>Z.moveLibraryFiles(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),h([]),S(!1),n(e(`fileManager.toast.filesMoved`),`success`)},onError:e=>n(e.message,`error`)}),lt=q({mutationFn:({id:e,data:t})=>Z.updateLibraryFolder(e,t),onSuccess:(r,i)=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`project-folders`]}),t.invalidateQueries({queryKey:[`archive-folders`]}),I(null),n(i.data.project_id===0&&i.data.archive_id===0?e(`fileManager.toast.folderUnlinked`):e(`fileManager.toast.folderLinked`),`success`)},onError:e=>n(e.message,`error`)}),ut=q({mutationFn:({id:e,filename:t})=>Z.updateLibraryFile(e,{filename:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),ie(null),n(e(`fileManager.toast.fileRenamed`),`success`)},onError:e=>{ie(null),n(e.message,`error`)}}),dt=q({mutationFn:({id:e,name:t})=>Z.updateLibraryFolder(e,{name:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),ie(null),n(e(`fileManager.toast.folderRenamed`),`success`)},onError:e=>{ie(null),n(e.message,`error`)}}),ft=q({mutationFn:()=>Z.batchGenerateStlThumbnails({all_missing:!0}),onSuccess:r=>{if(t.invalidateQueries({queryKey:[`library-files`]}),r.succeeded>0){let e=Date.now(),t={};r.results.forEach(n=>{n.success&&(t[n.file_id]=e)}),oe(e=>({...e,...t}))}r.succeeded>0&&r.failed===0?n(e(`fileManager.toast.thumbnailsGenerated`,{count:r.succeeded}),`success`):r.succeeded>0&&r.failed>0?n(e(`fileManager.toast.thumbnailsGeneratedPartial`,{succeeded:r.succeeded,failed:r.failed}),`success`):r.processed===0?n(e(`fileManager.toast.noStlMissingThumbnails`),`info`):n(e(`fileManager.toast.failedToGenerateThumbnails`,{error:r.results[0]?.error||`Unknown error`}),`error`)},onError:e=>n(e.message,`error`)}),pt=q({mutationFn:e=>Z.batchGenerateStlThumbnails({file_ids:[e]}),onSuccess:r=>{if(t.invalidateQueries({queryKey:[`library-files`]}),r.succeeded>0){let t=r.results[0]?.file_id;t&&oe(e=>({...e,[t]:Date.now()})),n(e(`fileManager.toast.thumbnailGenerated`),`success`)}else n(e(`fileManager.toast.failedToGenerateThumbnail`,{error:r.results[0]?.error||`Unknown error`}),`error`)},onError:e=>n(e.message,`error`)}),mt=(0,y.useMemo)(()=>Je?Je.filter(e=>m.includes(e.id)&&j5(e)):[],[Je,m]),{data:ht}=K({queryKey:[`variant-group`,z?.variant_group_id],queryFn:()=>Z.getVariantGroup(z.variant_group_id),enabled:!!z?.variant_group_id}),gt=(0,y.useMemo)(()=>{if(z){if(mt.length>1)return mt.map(e=>({id:e.id,filename:e.filename,sliced_for_model:e.sliced_for_model}));if(ht&&ht.members.length>1)return ht.members.map(e=>({id:e.library_file_id,filename:e.filename,sliced_for_model:e.target_model}))}},[z,mt,ht]),_t=(0,y.useCallback)(e=>{h(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),vt=(0,y.useCallback)(()=>{$e.length>0&&h($e.map(e=>e.id))},[$e]),yt=(0,y.useCallback)(()=>{h([])},[]),bt=()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]})},{isDraggingOver:xt,dragHandlers:St}=YW({disabled:!r(`library:upload`)||C,onFiles:e=>{E(e),w(!0)}}),Ct=e=>{Z.downloadLibraryFile(e).catch(e=>{console.error(`Library file download failed:`,e)})},wt=()=>{L&&(L.type===`file`?at.mutate(L.id):L.type===`folder`?it.mutate(L.id):L.type===`bulk`&&st.mutate(m))},Tt=it.isPending||at.isPending||st.isPending,Et=e=>{le(e),localStorage.setItem(`library-view-mode`,e)},Dt=Be||Ye,Ot=(0,y.useMemo)(()=>{if(!u||!ze)return null;let e=t=>{for(let n of t){if(n.id===u)return n;let t=e(n.children);if(t)return t}return null};return e(ze)},[u,ze]);return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 min-h-[calc(100vh-64px)] lg:h-[calc(100vh-64px)] flex flex-col relative`,...St,children:[xt&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-bambu-dark/90 flex items-center justify-center pointer-events-none`,children:(0,G.jsxs)(`div`,{className:`border-4 border-dashed border-bambu-green rounded-xl p-12 text-center`,children:[(0,G.jsx)(Vu,{className:`w-16 h-16 mx-auto mb-4 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-2xl font-semibold text-white mb-2`,children:e(`fileManager.dropFilesHere`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`fileManager.releaseToUpload`)})]})}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(vc,{className:`w-7 h-7 text-bambu-green`}),e(`fileManager.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`fileManager.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center bg-bambu-dark rounded-lg p-1`,children:[(0,G.jsx)(`button`,{onClick:()=>Et(`grid`),className:`p-1.5 rounded transition-colors ${ce===`grid`?`bg-bambu-dark-secondary text-white`:`text-bambu-gray hover:text-white`}`,title:e(`fileManager.gridView`),children:(0,G.jsx)(Yc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>Et(`list`),className:`p-1.5 rounded transition-colors ${ce===`list`?`bg-bambu-dark-secondary text-white`:`text-bambu-gray hover:text-white`}`,title:e(`fileManager.listView`),children:(0,G.jsx)(el,{className:`w-4 h-4`})})]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ft.mutate(),disabled:ft.isPending||!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?e(`fileManager.generateThumbnailsForMissing`):e(`fileManager.noPermissionGenerateThumbnail`),children:[ft.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}):(0,G.jsx)(Hc,{className:`w-4 h-4 mr-2`}),e(`fileManager.generateThumbnails`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>b(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?e(`fileManager.linkExternalFolder`):e(`fileManager.noPermissionCreateFolder`),children:[(0,G.jsx)(bc,{className:`w-4 h-4 mr-2`}),e(`fileManager.linkExternal`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>_(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionCreateFolder`),children:[(0,G.jsx)(yc,{className:`w-4 h-4 mr-2`}),e(`fileManager.newFolder`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>A(!0),title:e(`fileManager.tags.manageTitle`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4 mr-2`}),e(`fileManager.tags.manage`)]}),r(`library:purge`)&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>O(!0),title:e(`libraryPurge.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`libraryPurge.headerButton`)]}),i(`library:delete_own`,`library:delete_all`)&&(0,G.jsxs)(Ai,{to:`/files/trash`,className:`inline-flex items-center px-3 py-1.5 text-sm rounded bg-bambu-dark-secondary text-bambu-gray hover:text-white hover:bg-bambu-dark transition-colors`,title:e(`libraryTrash.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`libraryTrash.headerButton`),typeof He==`number`&&He>0&&(0,G.jsx)(`span`,{className:`ml-1.5 px-1.5 py-0.5 text-xs rounded-full bg-bambu-green/20 text-bambu-green`,children:He})]}),(0,G.jsxs)(Q,{onClick:()=>w(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionUpload`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),e(`common.upload`)]})]})]}),et&&Xe&&Fe&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 p-3 bg-amber-500/10 border border-amber-500/30 rounded-lg`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-amber-500 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-amber-500 font-medium`,children:e(`fileManager.lowDiskSpaceWarning`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-500/80`,children:e(`fileManager.lowDiskSpaceDetails`,{free:Gd(Xe.disk_free_bytes),total:Gd(Xe.disk_total_bytes),threshold:Fe.library_disk_warning_gb})})]})]}),Xe&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 sm:gap-6 mb-6 p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(pc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.files`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Xe.total_files})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(vc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.folders`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Xe.total_folders})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Pc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.size`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Gd(Xe.total_size_bytes)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm sm:ml-auto`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.free`),`:`]}),(0,G.jsx)(`span`,{className:`font-medium ${et?`text-amber-500`:`text-white`}`,children:Gd(Xe.disk_free_bytes)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col lg:flex-row gap-4 lg:gap-6 min-h-0`,children:[(0,G.jsx)(`div`,{className:`lg:hidden`,children:(0,G.jsxs)(`select`,{value:u===null?`__top:${f}`:String(u),onChange:e=>{let t=e.target.value;t.startsWith(`__top:`)?(d(null),p(t.slice(6))):d(parseInt(t,10))},className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg px-3 py-2.5 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsxs)(`option`,{value:`__top:internal`,children:[`📁 `,e(`fileManager.allFiles`)]}),ze?.some(e=>e.is_external)&&(0,G.jsxs)(`option`,{value:`__top:external`,children:[`🔗 `,e(`fileManager.allExternal`)]}),Ve&&(()=>{let e=(t,n=0)=>{let r=[];for(let i of t)r.push({id:i.id,name:i.name,fileCount:i.file_count,depth:n}),i.children.length>0&&r.push(...e(i.children,n+1));return r};return e(Ve).map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[`│ `.repeat(e.depth),`📂 `,e.name,` `,e.fileCount>0?`(${e.fileCount})`:``]},e.id))})()]})}),(0,G.jsxs)(`div`,{ref:Se,className:`hidden lg:flex flex-shrink-0 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary overflow-hidden flex-col relative`,style:{width:`${ve}px`},children:[(0,G.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 group/resize flex items-center justify-center transition-colors ${be?`bg-bambu-green`:`hover:bg-bambu-green/50`}`,onMouseDown:e=>{e.preventDefault(),xe(!0)},onDoubleClick:()=>{ye(256),localStorage.setItem(`library-sidebar-width`,`256`)},title:e(`fileManager.dragToResizeTooltip`),children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 opacity-0 group-hover/resize:opacity-100 transition-opacity ${be?`opacity-100`:``}`,children:[(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`}),(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`}),(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`})]})}),(0,G.jsxs)(`div`,{className:`p-3 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-medium text-white`,children:e(`fileManager.folders`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsxs)(`select`,{value:me,onChange:e=>{let t=e.target.value===`activity`?`activity`:`name`;he(t),localStorage.setItem(`library-folder-sort-field`,t)},className:`text-xs px-1 py-0.5 rounded bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray focus:outline-none focus:border-bambu-green`,title:e(`fileManager.folderSort`),"aria-label":e(`fileManager.folderSort`),children:[(0,G.jsx)(`option`,{value:`name`,children:e(`fileManager.folderSortByName`)}),(0,G.jsx)(`option`,{value:`activity`,children:e(`fileManager.folderSortByActivity`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=ge===`asc`?`desc`:`asc`;_e(e),localStorage.setItem(`library-folder-sort-direction`,e)},className:`text-bambu-gray hover:text-white hover:bg-bambu-dark p-1 rounded transition-colors`,title:e(ge===`asc`?`fileManager.ascending`:`fileManager.descending`),"aria-label":e(ge===`asc`?`fileManager.ascending`:`fileManager.descending`),children:ge===`asc`?(0,G.jsx)(Vo,{className:`w-3.5 h-3.5`}):(0,G.jsx)(Fo,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:()=>{let e=!fe;pe(e),localStorage.setItem(`library-collapse-folders`,String(e))},className:`text-xs px-1.5 py-0.5 rounded transition-colors ${fe?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,title:e(fe?`fileManager.expandFoldersByDefault`:`fileManager.collapseFoldersByDefault`),children:e(`fileManager.collapse`)}),(0,G.jsx)(`button`,{onClick:()=>{let e=!ue;de(e),localStorage.setItem(`library-wrap-folders`,String(e))},className:`text-xs px-1.5 py-0.5 rounded transition-colors ${ue?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,title:e(ue?`fileManager.disableTextWrapping`:`fileManager.enableTextWrapping`),children:e(`fileManager.wrap`)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer transition-colors ${u===null&&f===`internal`?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,onClick:()=>{d(null),p(`internal`)},children:[(0,G.jsx)(sc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm`,children:e(`fileManager.allFiles`)})]}),ze?.some(e=>e.is_external)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer transition-colors ${u===null&&f===`external`?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,onClick:()=>{d(null),p(`external`)},children:[(0,G.jsx)(bc,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`text-sm`,children:e(`fileManager.allExternal`)})]}),Ve?.map(t=>(0,G.jsx)(d$e,{folder:t,selectedFolderId:u,onSelect:d,onDelete:e=>R({type:`folder`,id:e}),onLink:I,onRename:e=>ie({type:`folder`,id:e.id,name:e.name}),wrapNames:ue,defaultExpanded:!fe,showModified:Ne,hasPermission:r,t:e},`${t.id}-${fe?`c`:`e`}`))]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col lg:flex-row min-w-0 min-h-0 gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0 min-h-0`,children:[Ge.length>0&&(0,G.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 p-2 sm:p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium shrink-0`,children:e(`fileManager.tags.filterLabel`)}),Ge.map(e=>{let t=N.includes(e.id);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>qe(e.id),className:t?`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-bambu-green/20 text-bambu-green border border-bambu-green/40 hover:bg-bambu-green/30 transition-colors`:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-bambu-dark text-bambu-gray border border-bambu-dark-tertiary hover:text-white hover:border-bambu-green/40 transition-colors`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:e.name}),t&&(0,G.jsx)(nd,{className:`w-3 h-3`})]},e.id)}),N.length>0&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>P([]),className:`ml-auto text-xs text-bambu-gray hover:text-white shrink-0`,children:e(`fileManager.tags.clearAll`)})]}),Ot?.is_external&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 p-3 bg-purple-50 dark:bg-purple-500/10 border border-purple-300 dark:border-purple-500/30 rounded-lg`,children:[(0,G.jsx)(bc,{className:`w-5 h-5 text-purple-600 dark:text-purple-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-purple-700 dark:text-purple-300`,children:e(`fileManager.externalFolder`)}),Ot.external_readonly&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 flex items-center gap-1`,children:[(0,G.jsx)(nl,{className:`w-3 h-3`}),e(`fileManager.readOnly`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate font-mono`,title:Ot.external_path||``,children:Ot.external_path})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>u&&rt.mutate(u),disabled:rt.isPending,title:e(`fileManager.scanFolder`),children:[rt.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`fileManager.scanFolder`)})]})]}),Je&&Je.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mb-4 p-2 sm:p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary sticky top-0 z-10 lg:static`,children:[(0,G.jsxs)(`div`,{className:`relative w-full sm:w-auto sm:flex-1 sm:max-w-xs`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:e(`fileManager.searchFiles`),value:Ce,onChange:e=>we(e.target.value),className:`w-full pl-9 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`}),Ue&&(0,G.jsx)(`span`,{className:`absolute -bottom-4 left-0 text-[10px] text-bambu-gray whitespace-nowrap`,title:e(`fileManager.searchSubfoldersHint`),children:e(`fileManager.searchSubfoldersHint`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray hidden sm:block`}),(0,G.jsxs)(`select`,{value:Te,onChange:e=>Ee(e.target.value),className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1.5 text-sm text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`fileManager.allTypes`)}),Qe.map(e=>(0,G.jsx)(`option`,{value:e,children:e.toUpperCase()},e))]})]}),o&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:e(`fileManager.filterByUser`,{defaultValue:`Filter by user`}),value:De,onChange:e=>Oe(e.target.value),list:`usernames-list`,className:`w-32 sm:w-40 px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green ${De?`pr-7`:``}`,style:De?{WebkitAppearance:`none`,MozAppearance:`textfield`}:void 0}),De&&(0,G.jsx)(`button`,{onClick:()=>Oe(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white z-10`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})}),(0,G.jsx)(`datalist`,{id:`usernames-list`,children:Ze?.map(e=>(0,G.jsx)(`option`,{value:e.username},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{value:ke,onChange:e=>{let t=e.target.value;Ae(t),localStorage.setItem(`library-sort-field`,t)},className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1.5 text-sm text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`name`,children:e(`common.name`)}),(0,G.jsx)(`option`,{value:`date`,children:e(`common.date`)}),(0,G.jsx)(`option`,{value:`size`,children:e(`fileManager.size`)}),(0,G.jsx)(`option`,{value:`type`,children:e(`common.type`)}),(0,G.jsx)(`option`,{value:`prints`,children:e(`fileManager.prints`)})]}),(0,G.jsx)(`button`,{onClick:()=>Me(e=>{let t=e===`asc`?`desc`:`asc`;return localStorage.setItem(`library-sort-direction`,t),t}),className:`p-1.5 rounded bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors`,title:e(je===`asc`?`fileManager.ascending`:`fileManager.descending`),children:je===`asc`?(0,G.jsx)(Vo,{className:`w-4 h-4 text-white`}):(0,G.jsx)(Fo,{className:`w-4 h-4 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>Pe(e=>{let t=!e;return localStorage.setItem(`library-show-modified`,String(t)),t}),className:`p-1.5 rounded bg-bambu-dark border transition-colors ${Ne?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-white hover:border-bambu-green`}`,title:e(Ne?`fileManager.hideModified`:`fileManager.showModified`),"aria-pressed":Ne,children:(0,G.jsx)(rs,{className:`w-4 h-4`})})]}),(Ce||Te!==`all`||De)&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray hidden sm:inline`,children:e(`fileManager.resultsCount`,{showing:$e.length,total:Je.length})})]}),$e.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4 p-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary sticky top-[52px] z-10 lg:static`,children:[m.length===$e.length&&m.length>0?(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:yt,children:[(0,G.jsx)(bu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.deselectAll`)})]}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:vt,children:[(0,G.jsx)(vu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.selectAll`)})]}),m.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray ml-2`,children:e(`fileManager.selected`,{count:m.length})}),(0,G.jsx)(`div`,{className:`hidden sm:block flex-1`}),(0,G.jsxs)(`div`,{className:`w-full sm:w-auto flex flex-wrap items-center gap-2 mt-2 sm:mt-0`,children:[mt.length>=1&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>B(mt[0]),disabled:!r(`queue:create`),title:r(`queue:create`)?void 0:e(`fileManager.noPermissionAddToQueue`),children:[(0,G.jsx)(Rl,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:mt.length>1?e(`fileManager.variants.printAlternatives`,{count:mt.length}):e(`common.print`)})]}),mt.length>=2&&!mt.some(e=>e.variant_group_id)&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ot.mutate(mt.map(e=>e.id)),disabled:ot.isPending||!i(`library:update_own`,`library:update_all`),title:e(`fileManager.variants.groupTooltip`),children:[(0,G.jsx)(Jc,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.variants.groupAction`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>S(!0),disabled:!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?void 0:e(`fileManager.noPermissionMoveFiles`),children:[(0,G.jsx)(vl,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.move`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>M(!0),disabled:!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?e(`fileManager.tags.bulkTooltip`):e(`fileManager.tags.noPermission`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.tags.tagAction`)})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>{m.length===1?R({type:`file`,id:m[0]}):R({type:`bulk`,id:0,count:m.length})},disabled:!i(`library:delete_own`,`library:delete_all`),title:i(`library:delete_own`,`library:delete_all`)?void 0:e(`fileManager.noPermissionDeleteFiles`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.delete`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:yt,children:[(0,G.jsx)(nd,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.clear`)})]})]})]})]}),Dt?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`fileManager.loadingFiles`)})]})}):Je?.length===0?(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(sc,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:e(u===null?f===`external`?`fileManager.externalIsEmpty`:`fileManager.noFilesYet`:`fileManager.folderIsEmpty`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:e(u===null?f===`external`?`fileManager.externalEmptyDescription`:`fileManager.noFilesDescription`:`fileManager.folderEmptyDescription`)}),(0,G.jsxs)(Q,{onClick:()=>w(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionUpload`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`fileManager.uploadFiles`)]})]}):$e.length===0?(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:e(`fileManager.noMatchingFiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:e(`fileManager.noMatchingFilesDescription`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{we(``),Ee(`all`)},children:e(`fileManager.clearFilters`)})]}):ce===`grid`?(0,G.jsx)(`div`,{className:`flex-1 lg:overflow-y-auto`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4`,children:$e.map(t=>(0,G.jsx)(f$e,{file:t,isSelected:m.includes(t.id),t:e,onSelect:_t,onDelete:e=>R({type:`file`,id:e}),onDownload:Ct,onPrint:B,onSlice:ee,onOpenInSlicer:Le,desktopSlicer:Ie,onRunPipeline:ne,useSlicerApi:Fe?.use_slicer_api??!1,canSlice:Re(),onPreview3d:e=>{j5(e)?c(`/gcode-viewer?library_file=${e.id}`):H(e)},onRename:e=>ie({type:`file`,id:e.id,name:e.filename}),onGenerateThumbnail:e=>pt.mutate(e.id),onTagClick:qe,thumbnailVersion:ae[t.id],hasPermission:r,canModify:a,authEnabled:o,showModified:Ne},t.id))})}):(0,G.jsx)(`div`,{className:`flex-1 lg:overflow-y-auto`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary overflow-x-auto`,children:[(0,G.jsxs)(`div`,{className:`hidden sm:grid ${o?`grid-cols-[auto_1fr_120px_100px_100px_100px_minmax(0,200px)_220px]`:`grid-cols-[auto_1fr_100px_100px_100px_minmax(0,200px)_220px]`} gap-4 px-4 py-2 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary text-xs text-bambu-gray font-medium`,children:[(0,G.jsx)(`div`,{className:`w-6`}),(0,G.jsx)(`div`,{children:e(`common.name`)}),o&&(0,G.jsx)(`div`,{children:e(`fileManager.uploadedBy`,{defaultValue:`Uploaded By`})}),(0,G.jsx)(`div`,{children:e(`common.type`)}),(0,G.jsx)(`div`,{children:e(`fileManager.size`)}),(0,G.jsx)(`div`,{children:e(`fileManager.prints`)}),(0,G.jsx)(`div`,{children:e(`fileManager.tags.title`)}),(0,G.jsx)(`div`,{})]}),$e.map(t=>(0,G.jsxs)(`div`,{className:`grid ${o?`grid-cols-[auto_1fr_120px_100px_100px_100px_minmax(0,200px)_220px]`:`grid-cols-[auto_1fr_100px_100px_100px_minmax(0,200px)_220px]`} gap-4 px-4 py-3 items-center border-b border-bambu-dark-tertiary last:border-b-0 cursor-pointer hover:bg-bambu-dark/50 transition-colors ${m.includes(t.id)?`bg-bambu-green/10`:``}`,onClick:()=>_t(t.id),children:[(0,G.jsx)(`div`,{className:`w-5 h-5 rounded border-2 flex items-center justify-center ${m.includes(t.id)?`bg-bambu-green border-bambu-green`:`border-bambu-gray/50`}`,children:m.includes(t.id)&&(0,G.jsx)(`div`,{className:`w-2 h-2 bg-white rounded-sm`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`relative group/thumb`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark flex-shrink-0 overflow-hidden`,children:t.thumbnail_path?(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(t.id)}${ae[t.id]?(Z.getLibraryFileThumbnailUrl(t.id).includes(`?`)?`&`:`?`)+`v=${ae[t.id]}`:``}`,alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(sc,{className:`w-5 h-5 text-bambu-gray/50`})})}),t.thumbnail_path&&(0,G.jsx)(`div`,{className:`absolute left-0 top-full mt-2 z-50 hidden group-hover/thumb:block`,children:(0,G.jsx)(`div`,{className:`w-48 h-48 rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary shadow-xl overflow-hidden`,children:(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(t.id)}${ae[t.id]?(Z.getLibraryFileThumbnailUrl(t.id).includes(`?`)?`&`:`?`)+`v=${ae[t.id]}`:``}`,alt:t.filename,className:`w-full h-full object-contain`})})})]}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white truncate`,children:t.print_name||t.filename}),Ne&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray flex items-center gap-1 mt-0.5`,title:e(`fileManager.lastModified`),children:[(0,G.jsx)(rs,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:ip(t.fs_modified_at??t.created_at)})]})]})]}),o&&(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray flex items-center gap-1`,children:t.created_by_username?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate`,children:t.created_by_username})]}):`-`}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded font-medium ${t.file_type===`3mf`?`bg-bambu-green/20 text-bambu-green`:t.file_type===`gcode`||t.file_type===`gcode.3mf`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:t.file_type===`stl`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`:`bg-bambu-gray/20 text-bambu-gray`}`,children:t.file_type.toUpperCase()})}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:Gd(t.file_size)}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:t.print_count>0?`${t.print_count}x`:`-`}),(0,G.jsx)(`div`,{className:`min-w-0`,onClick:e=>e.stopPropagation(),children:!t.tags||t.tags.length===0?(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/50`,children:`-`}):(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.tags.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>qe(e.id),className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[10px] bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20 transition-colors max-w-full`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-2.5 h-2.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id))})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[j5(t)&&(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(`button`,{onClick:()=>r(`queue:create`)&&B(t),className:`p-1.5 rounded transition-colors ${r(`queue:create`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`queue:create`)?e(`common.print`):e(`fileManager.noPermissionAddToQueue`),disabled:!r(`queue:create`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})})}),M5(t,!!Fe?.use_slicer_api,Ie)&&(0,G.jsx)(`button`,{onClick:()=>{Re()&&(Fe?.use_slicer_api?ee:Le)(t)},className:`p-1.5 rounded transition-colors ${Re()?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:Re()?e(`slice.action`):Fe?.use_slicer_api?e(`fileManager.noPermissionSlice`):e(`fileManager.noPermissionDownload`),disabled:!Re(),children:Fe?.use_slicer_api?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`})}),(Fe?.use_slicer_api??!1)&&M5(t,!0,Ie)&&(0,G.jsx)(`button`,{onClick:()=>r(`pipelines:run`)&&ne(t),className:`p-1.5 rounded transition-colors ${r(`pipelines:run`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`pipelines:run`)?e(`library.runWithPipeline.actionLabel`,`Run with pipeline`):e(`library.runWithPipeline.noPermission`,`You do not have permission to run pipelines`),disabled:!r(`pipelines:run`),children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(t.file_type===`3mf`||t.file_type===`gcode`||t.file_type===`gcode.3mf`||t.file_type===`stl`)&&(0,G.jsx)(`button`,{onClick:()=>{r(`library:read`)&&(j5(t)?c(`/gcode-viewer?library_file=${t.id}`):H(t))},className:`p-1.5 rounded transition-colors ${r(`library:read`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`library:read`)?`3D Preview`:`You do not have permission to preview files`,disabled:!r(`library:read`),children:(0,G.jsx)(Zo,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>r(`library:read`)&&Ct(t.id),className:`p-1.5 rounded transition-colors ${r(`library:read`)?`hover:bg-bambu-dark text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`library:read`)?e(`common.download`):e(`fileManager.noPermissionDownload`),disabled:!r(`library:read`),children:(0,G.jsx)(Xs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`library`,`update`,t.created_by_id)&&ie({type:`file`,id:t.id,name:t.filename}),className:`p-1.5 rounded transition-colors ${a(`library`,`update`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`update`,t.created_by_id)?e(`common.rename`):e(`fileManager.noPermissionRenameFile`),disabled:!a(`library`,`update`,t.created_by_id),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),t.file_type===`stl`&&(0,G.jsx)(`button`,{onClick:()=>a(`library`,`update`,t.created_by_id)&&pt.mutate(t.id),className:`p-1.5 rounded transition-colors ${a(`library`,`update`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`update`,t.created_by_id)?e(`fileManager.generateThumbnail`):e(`fileManager.noPermissionGenerateThumbnail`),disabled:pt.isPending||!a(`library`,`update`,t.created_by_id),children:(0,G.jsx)(Hc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`library`,`delete`,t.created_by_id)&&R({type:`file`,id:t.id}),className:`p-1.5 rounded transition-colors ${a(`library`,`delete`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-red-700 dark:hover:text-red-400`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`delete`,t.created_by_id)?e(`common.delete`):e(`fileManager.noPermissionDeleteFile`),disabled:!a(`library`,`delete`,t.created_by_id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},t.id))]})})]}),u!==null&&(0,G.jsx)(e$e,{folderId:u})]})]}),g&&(0,G.jsx)(i$e,{parentId:u,onClose:()=>_(!1),onSave:e=>tt.mutate(e),isLoading:tt.isPending,t:e}),v&&(0,G.jsx)(a$e,{onClose:()=>b(!1),onSave:e=>nt.mutate(e),isLoading:nt.isPending,t:e}),x&&ze&&(0,G.jsx)(l$e,{folders:ze,selectedFiles:m,currentFolderId:u,onClose:()=>S(!1),onMove:e=>ct.mutate({fileIds:m,folderId:e}),isLoading:ct.isPending,t:e}),C&&(0,G.jsx)(gU,{folderId:u,onClose:()=>{w(!1),E([])},onUploadComplete:bt,initialFiles:T.length>0?T:void 0}),D&&(0,G.jsx)(r$e,{onClose:()=>O(!1)}),(0,G.jsx)(t$e,{open:k,onClose:()=>A(!1),onPickTag:e=>{N.includes(e)||P(t=>[...t,e])}}),(0,G.jsx)(FKe,{open:j,fileIds:m,onClose:()=>M(!1)}),F&&(0,G.jsx)(u$e,{folder:F,onClose:()=>I(null),onLink:e=>lt.mutate({id:F.id,data:e}),isLoading:lt.isPending,t:e}),L&&(0,G.jsx)(of,{title:L.type===`folder`?e(`fileManager.deleteFolder`):L.type===`bulk`?e(`fileManager.deleteFilesCount`,{count:L.count}):e(`fileManager.deleteFile`),message:L.type===`folder`?e(`fileManager.deleteFolderConfirm`):L.type===`bulk`?e(`fileManager.deleteFilesConfirm`,{count:L.count}):e(`fileManager.deleteFileConfirm`),confirmText:e(`common.delete`),variant:`danger`,isLoading:Tt,loadingText:e(`fileManager.deleting`),onConfirm:wt,onCancel:()=>R(null)}),z&&(!z.variant_group_id||ht!==void 0)&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:gt?.[0]?.id??z.id,variantFiles:gt,archiveName:gt&>.length>1?`${gt[0].filename} ${e(`common.plusNMore`,{count:gt.length-1})}`:z.print_name||z.filename,onClose:()=>B(null),onSuccess:()=>{B(null),h([]),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`archives`]})}}),V&&(0,G.jsx)(RW,{source:{kind:`libraryFile`,id:V.id,filename:V.filename},onClose:()=>ee(null)}),te&&(0,G.jsx)(VW,{source:{kind:`libraryFile`,id:te.id,filename:te.filename},onClose:()=>ne(null)}),se&&(0,G.jsx)(PKe,{libraryFileId:se.id,title:se.print_name||se.filename,fileType:se.file_type,onClose:()=>H(null),onSliceWithBambuddy:M5(se,!0,Ie)&&r(`library:upload`)?()=>{let e=se;H(null),ee(e)}:void 0}),re&&(0,G.jsx)(c$e,{type:re.type,currentName:re.name,onClose:()=>ie(null),onSave:e=>{re.type===`file`?ut.mutate({id:re.id,filename:e}):dt.mutate({id:re.id,name:e})},isLoading:ut.isPending||dt.isPending,t:e})]})}function m$e(e){let t=rp(e);if(!t)return``;let n=Math.ceil((t.getTime()-Date.now())/(1e3*60*60*24));return n<=0?`any moment`:n===1?`1 day`:`${n} days`}function h$e(e){let t=rp(e);return t?t.toLocaleString():e}function g$e(){let{t:e}=U(),t=or(),n=co(),{showToast:r}=qd(),{hasPermission:i,authEnabled:a}=Nd(),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(new Set),u=!a||i(`library:purge`),d=K({queryKey:[`library-trash`],queryFn:()=>Z.listLibraryTrash(200,0)}),f=K({queryKey:[`library-trash-settings`],queryFn:()=>Z.getLibraryTrashSettings(),enabled:u}),[p,m]=(0,y.useState)(null);(0,y.useEffect)(()=>{f.data&&p===null&&m(f.data.retention_days)},[f.data,p]);let h=q({mutationFn:e=>{let t=f.data;return Z.updateLibraryTrashSettings({retention_days:e,auto_purge_enabled:t?.auto_purge_enabled??!1,auto_purge_days:t?.auto_purge_days??90,auto_purge_include_never_printed:t?.auto_purge_include_never_printed??!0})},onSuccess:t=>{r(e(`libraryTrash.toast.retentionSaved`,{days:t.retention_days}),`success`),n.invalidateQueries({queryKey:[`library-trash-settings`]}),n.invalidateQueries({queryKey:[`library-trash`]})},onError:t=>r(t.message||e(`libraryTrash.toast.retentionFailed`),`error`)}),g=q({mutationFn:e=>Z.restoreLibraryTrash(e),onSuccess:()=>{r(e(`libraryTrash.toast.restored`),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]})},onError:t=>r(t.message||e(`libraryTrash.toast.restoreFailed`),`error`)}),_=q({mutationFn:e=>Z.hardDeleteLibraryTrash(e),onSuccess:()=>{r(e(`libraryTrash.toast.purged`),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.purgeFailed`),`error`)}),v=q({mutationFn:()=>Z.emptyLibraryTrash(),onSuccess:t=>{r(e(`libraryTrash.toast.emptied`,{count:t.deleted}),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.emptyFailed`),`error`)}),b=q({mutationFn:e=>Promise.all(e.map(e=>Z.restoreLibraryTrash(e))),onSuccess:(t,i)=>{r(e(`libraryTrash.toast.bulkRestored`,{count:i.length}),`success`),l(new Set),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]})},onError:t=>r(t.message||e(`libraryTrash.toast.restoreFailed`),`error`)}),x=q({mutationFn:e=>Promise.all(e.map(e=>Z.hardDeleteLibraryTrash(e))),onSuccess:(t,i)=>{r(e(`libraryTrash.toast.bulkPurged`,{count:i.length}),`success`),l(new Set),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.purgeFailed`),`error`)}),S=(0,y.useMemo)(()=>d.data?.items??[],[d.data?.items]),C=d.data?.retention_days??30,w=(0,y.useMemo)(()=>S.reduce((e,t)=>e+t.file_size,0),[S]),T=S.length>0&&S.every(e=>c.has(e.id)),E=c.size>0&&!T,D=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(`div`,{className:`p-6 max-w-screen-2xl mx-auto`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-3 mb-4`,children:(0,G.jsxs)(Ai,{to:`/files`,className:`inline-flex items-center gap-1 text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200`,children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),` `,e(`libraryTrash.backToFiles`)]})}),(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-6 gap-4 flex-wrap`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900 dark:text-gray-100`,children:e(`libraryTrash.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400 mt-1`,children:e(u?`libraryTrash.subtitleAdmin`:`libraryTrash.subtitleUser`,{days:C})})]}),S.length>0&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s({type:`empty`}),className:`text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.emptyTrash`)]})]}),u&&f.data&&(0,G.jsxs)(`div`,{className:`mb-4 border border-gray-200 dark:border-gray-700 rounded-lg p-3 flex items-center gap-3 bg-gray-50 dark:bg-gray-800/40`,children:[(0,G.jsx)(`label`,{htmlFor:`retention-days`,className:`text-sm font-medium text-gray-700 dark:text-gray-300`,children:e(`libraryTrash.retentionLabel`)}),(0,G.jsx)(`input`,{id:`retention-days`,type:`number`,min:1,max:365,value:p??f.data.retention_days,onChange:e=>m(Math.max(1,Math.min(365,parseInt(e.target.value||`0`,10)||0))),className:`w-20 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:e(`libraryTrash.days`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>p!=null&&h.mutate(p),disabled:h.isPending||p==null||p===f.data.retention_days,className:`ml-auto`,children:[(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),e(`common.save`)]})]}),d.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,e(`libraryTrash.loading`)]}):S.length===0?(0,G.jsx)(`div`,{className:`border border-dashed border-gray-300 dark:border-gray-700 rounded-lg p-12 text-center`,children:(0,G.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:e(`libraryTrash.empty`)})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:e(`libraryTrash.summary`,{count:S.length,size:Gd(w)})}),c.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:e(`libraryTrash.selectionCount`,{count:c.size})}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>b.mutate(Array.from(c)),disabled:b.isPending,children:[(0,G.jsx)(Wl,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.bulkRestore`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s({type:`bulkDelete`,count:c.size}),disabled:x.isPending,className:`text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.bulkPurge`)]})]})]}),(0,G.jsx)(`div`,{className:`border border-gray-200 dark:border-gray-700 rounded-lg overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-gray-50 dark:bg-gray-800 text-left text-gray-600 dark:text-gray-300`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-3 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:T,ref:e=>{e&&(e.indeterminate=E)},onChange:()=>{l(e=>e.size===S.length?new Set:new Set(S.map(e=>e.id)))},"aria-label":e(`libraryTrash.selectAll`),className:`rounded border-gray-300 cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.filename`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.folder`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium text-right`,children:e(`libraryTrash.col.size`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium whitespace-nowrap`,children:e(`libraryTrash.col.deleted`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium whitespace-nowrap`,children:e(`libraryTrash.col.autoPurge`)}),u&&(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.owner`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium text-right`,children:e(`libraryTrash.col.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-gray-100 dark:divide-gray-800`,children:S.map(t=>(0,G.jsxs)(`tr`,{className:`hover:bg-gray-50 dark:hover:bg-gray-800/50`,children:[(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:c.has(t.id),onChange:()=>D(t.id),"aria-label":e(`libraryTrash.selectOne`,{filename:t.filename}),className:`rounded border-gray-300 cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-900 dark:text-gray-100 truncate max-w-md`,title:t.filename,children:t.filename}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400`,children:t.folder_name??`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-right text-gray-600 dark:text-gray-400 tabular-nums whitespace-nowrap`,children:Gd(t.file_size)}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400 whitespace-nowrap`,children:h$e(t.deleted_at)}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400 whitespace-nowrap`,children:(0,G.jsx)(`span`,{title:h$e(t.auto_purge_at),children:e(`libraryTrash.autoPurgeIn`,{when:m$e(t.auto_purge_at)})})}),u&&(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400`,children:t.created_by_username??`—`}),(0,G.jsxs)(`td`,{className:`px-3 py-2 text-right whitespace-nowrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>g.mutate(t.id),disabled:g.isPending,className:`inline-flex items-center gap-1 px-2 py-1 text-xs text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300`,children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`}),e(`libraryTrash.restore`)]}),(0,G.jsxs)(`button`,{onClick:()=>s({type:`delete`,id:t.id,filename:t.filename}),disabled:_.isPending,className:`inline-flex items-center gap-1 px-2 py-1 text-xs text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300 ml-2`,children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),e(`libraryTrash.purgeNow`)]})]})]},t.id))})]})})]}),o&&(0,G.jsx)(of,{onCancel:()=>s(null),onConfirm:()=>{o&&(o.type===`delete`?_.mutate(o.id):o.type===`bulkDelete`?x.mutate(Array.from(c)):v.mutate(),s(null))},title:o.type===`delete`?e(`libraryTrash.confirm.purgeTitle`):o.type===`bulkDelete`?e(`libraryTrash.confirm.bulkPurgeTitle`):e(`libraryTrash.confirm.emptyTitle`),message:o.type===`delete`?e(`libraryTrash.confirm.purgeBody`,{filename:o.filename}):o.type===`bulkDelete`?e(`libraryTrash.confirm.bulkPurgeBody`,{count:o.count}):e(`libraryTrash.confirm.emptyBody`,{count:S.length}),confirmText:e(`libraryTrash.confirm.cta`),variant:`danger`}),d.isError&&(0,G.jsxs)(`div`,{className:`mt-4 text-sm text-red-600 dark:text-red-400`,children:[d.error?.message??e(`libraryTrash.loadError`),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>t(`/files`),className:`ml-3`,children:e(`libraryTrash.backToFiles`)})]})]})}function _$e(e){return e.includes(`/camera/`)}function v$e(e,t,n){let r=0;return e.querySelectorAll(`img[src*="/api/v1/"], video[src*="/api/v1/"]`).forEach(e=>{let i=e.getAttribute(`src`)||``,a=_$e(i)?n:t;if(!a)return;let o=`token=${encodeURIComponent(a)}`;if(i.includes(o))return;let s=i.replace(/([?&])token=[^&]*(&|$)/,(e,t,n)=>n===`&`?t:``);e.src=`${s}${s.includes(`?`)?`&`:`?`}${o}`,r+=1}),r}function y$e(){let{authEnabled:e,user:t,loading:n,hasPermission:r}=Nd(),i=co(),a=(0,y.useRef)(!1),o=!n&&(!e||t!==null),{data:s}=K({queryKey:[`media-token`,t?.id??null],queryFn:()=>Z.getMediaToken(),enabled:o,staleTime:3e3*1e3,refetchInterval:3e3*1e3}),c=!e||r(`camera:view`),{data:l}=K({queryKey:[`camera-stream-token`,t?.id??null],queryFn:()=>Z.getCameraStreamToken(),enabled:o&&c,staleTime:3e3*1e3,refetchInterval:3e3*1e3}),u=s?.token??null,d=l?.token??null;(0,y.useEffect)(()=>(hd(u),pd(d),(u||d)&&v$e(document,u,d),()=>{hd(null),pd(null)}),[u,d]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{let t=e.target;if(!(t instanceof HTMLImageElement||t instanceof HTMLVideoElement))return;let n=t.src||``,r=_$e(n),o=r?md():gd();!o||!n.includes(`token=${encodeURIComponent(o)}`)||a.current||(a.current=!0,i.invalidateQueries({queryKey:r?[`camera-stream-token`]:[`media-token`]}),setTimeout(()=>{a.current=!1},5e3))};return document.addEventListener(`error`,t,!0),()=>document.removeEventListener(`error`,t,!0)},[e,i])}var a9=5,b$e=2e3,x$e=3e4,S$e=5e3;function C$e(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,authEnabled:i,user:a}=Nd(),{printerId:o}=dr(),s=parseInt(o||`0`,10),[c]=Ri(),l=parseInt(c.get(`fps`)||`15`,10),u=Math.min(Math.max(isNaN(l)?15:l,1),30);y$e();let{data:d,isPending:f}=K({queryKey:[`camera-stream-token`,a?.id??null],queryFn:()=>Z.getCameraStreamToken(),enabled:i?!!a:!0,staleTime:3e3*1e3}),p=d?.token??md(),[m,h]=(0,y.useState)(`stream`),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!0),[T,E]=(0,y.useState)(Date.now()),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(0),[N,P]=(0,y.useState)(!1),[F,I]=(0,y.useState)(0),[L,R]=(0,y.useState)(1),[z,B]=(0,y.useState)({x:0,y:0}),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)({x:0,y:0}),[re,ie]=(0,y.useState)(null),[ae,oe]=(0,y.useState)(null),se=(0,y.useRef)(null),H=(0,y.useRef)(null),ce=(0,y.useRef)(null),le=(0,y.useRef)(null),ue=(0,y.useRef)(null),de=(0,y.useRef)(0),{data:fe}=K({queryKey:[`printer`,s],queryFn:()=>Z.getPrinter(s),enabled:s>0}),{data:pe}=K({queryKey:[`printerStatus`,s],queryFn:()=>Z.getPrinterStatus(s),refetchInterval:3e4,enabled:s>0}),me=q({mutationFn:e=>Z.setChamberLight(s,e),onMutate:async e=>{await t.cancelQueries({queryKey:[`printerStatus`,s]});let n=t.getQueryData([`printerStatus`,s]);return t.setQueryData([`printerStatus`,s],t=>({...t,chamber_light:e})),{previousStatus:n}},onSuccess:(e,t)=>{n(`Chamber light ${t?`on`:`off`}`)},onError:(r,i,a)=>{a?.previousStatus&&t.setQueryData([`printerStatus`,s],a.previousStatus),n(r.message||e(`printers.toast.failedToControlChamberLight`),`error`)}}),he=(pe?.state===`RUNNING`||pe?.state===`PAUSE`)&&(pe?.printable_objects_count??0)>=2;(0,y.useEffect)(()=>(fe&&(document.title=`${fe.name} - Camera`),()=>{document.title=`Bambuddy`}),[fe]);let ge=(0,y.useRef)(!1);(0,y.useEffect)(()=>{let e=`/api/v1/printers/${s}/camera/stop`;ge.current=!1;let t=()=>{if(s>0&&!ge.current){ge.current=!0;let t={},n=ud();n&&(t.Authorization=`Bearer ${n}`),fetch(e,{method:`POST`,keepalive:!0,headers:t}).catch(()=>{})}},n=()=>{t()};window.addEventListener(`beforeunload`,n);let r=se.current;return()=>{window.removeEventListener(`beforeunload`,n),r&&(r.src=``),t()}},[s]),(0,y.useEffect)(()=>{if(C&&!D){let e=setTimeout(()=>{w(!1)},m===`stream`?3e3:2e4);return()=>clearTimeout(e)}},[m,C,T,D]),(0,y.useEffect)(()=>{let e=()=>{A(!!document.fullscreenElement),R(1),B({x:0,y:0}),m===`stream`&&!D&&(se.current&&(se.current.src=``),setTimeout(()=>{w(!0),E(Date.now())},200))};return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[m,D]),(0,y.useEffect)(()=>{let e,t=()=>{clearTimeout(e),e=setTimeout(()=>{localStorage.setItem(`cameraWindowState`,JSON.stringify({width:window.outerWidth,height:window.outerHeight,left:window.screenX,top:window.screenY}))},500)};return window.addEventListener(`resize`,t),()=>{clearTimeout(e),window.removeEventListener(`resize`,t)}},[]),(0,y.useEffect)(()=>()=>{ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),ue.current&&clearInterval(ue.current)},[]);let _e=(0,y.useCallback)(()=>{if(j>=a9){P(!1),S(!0);return}let e=Math.min(b$e*2**j,x$e);P(!0),I(Math.ceil(e/1e3)),le.current=setInterval(()=>{I(e=>e<=1?(le.current&&clearInterval(le.current),0):e-1)},1e3),ce.current=setTimeout(()=>{M(e=>e+1),P(!1),w(!0),S(!1),se.current&&(se.current.src=``),E(Date.now())},e)},[j]);(0,y.useEffect)(()=>{if(m!==`stream`||C||N||D){ue.current&&=(clearInterval(ue.current),null);return}return de.current=0,ue.current=setInterval(async()=>{try{let e=await Z.getCameraStatus(s);if(!(e.stalled||!e.active&&!x)){de.current=0;return}if(de.current+=1,de.current<2)return;de.current=0,console.log(`Stream issue detected: stalled=${e.stalled}, active=${e.active}, reconnecting...`),ue.current&&=(clearInterval(ue.current),null),w(!1),_e()}catch{}},S$e),()=>{ue.current&&=(clearInterval(ue.current),null)}},[m,C,x,N,D,s,_e]);let ve=()=>{w(!1),m===`stream`&&j{if(w(!1),S(!1),M(0),de.current=0,P(!1),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&!localStorage.getItem(`cameraWindowState`)){let e=se.current,t=e.naturalWidth,n=e.naturalHeight;if(t>0&&n>0){let e=window.outerWidth-window.innerWidth,r=window.outerHeight-window.innerHeight,i=t+16+e,a=n+45+16+r;try{window.resizeTo(i,a)}catch{}}}},be=()=>{if(s>0){let e={},t=ud();t&&(e.Authorization=`Bearer ${t}`),fetch(`/api/v1/printers/${s}/camera/stop`,{method:`POST`,headers:e}).catch(()=>{})}},xe=e=>{m===e||D||(O(!0),w(!0),S(!1),M(0),P(!1),R(1),B({x:0,y:0}),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&(se.current.src=``),m===`stream`&&be(),setTimeout(()=>{h(e),E(Date.now()),O(!1)},100))},Se=()=>{D||(O(!0),w(!0),S(!1),M(0),P(!1),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&(se.current.src=``),m===`stream`&&be(),setTimeout(()=>{E(Date.now()),O(!1)},100))},Ce=()=>{H.current&&(document.fullscreenElement?document.exitFullscreen():H.current.requestFullscreen())},we=()=>{R(e=>Math.min(e+.5,4))},Te=()=>{R(e=>{let t=Math.max(e-.5,1);return t===1&&B({x:0,y:0}),t})},Ee=e=>{e.preventDefault(),e.deltaY<0?we():Te()},De=e=>{L>1&&(e.preventDefault(),ee(!0),ne({x:e.clientX-z.x,y:e.clientY-z.y}))},Oe=(0,y.useCallback)(()=>{if(!H.current)return{x:300,y:200};let e=H.current.getBoundingClientRect(),t=e.width*(L-1)/2,n=e.height*(L-1)/2;return{x:Math.max(50,t),y:Math.max(50,n)}},[L]),ke=e=>{if(V&&L>1){let t=e.clientX-te.x,n=e.clientY-te.y,r=Oe();B({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Ae=()=>{ee(!1)},je=e=>{if(e.length<2)return 0;let t=e[0].clientX-e[1].clientX,n=e[0].clientY-e[1].clientY;return Math.sqrt(t*t+n*n)},Me=e=>e.length<2?{x:e[0].clientX,y:e[0].clientY}:{x:(e[0].clientX+e[1].clientX)/2,y:(e[0].clientY+e[1].clientY)/2},Ne=e=>{e.touches.length===2?(e.preventDefault(),ie(je(e.touches)),oe(Me(e.touches))):e.touches.length===1&&L>1&&(e.preventDefault(),ee(!0),ne({x:e.touches[0].clientX-z.x,y:e.touches[0].clientY-z.y}))},Pe=e=>{if(e.touches.length===2&&re!==null){e.preventDefault();let t=je(e.touches),n=t/re;R(e=>{let t=Math.max(1,Math.min(4,e*n));return t===1&&B({x:0,y:0}),t}),ie(t);let r=Me(e.touches);if(ae){let e=Oe();B(t=>({x:Math.max(-e.x,Math.min(e.x,t.x+(r.x-ae.x))),y:Math.max(-e.y,Math.min(e.y,t.y+(r.y-ae.y)))}))}oe(r)}else if(e.touches.length===1&&V&&L>1){e.preventDefault();let t=e.touches[0].clientX-te.x,n=e.touches[0].clientY-te.y,r=Oe();B({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Fe=e=>{e.touches.length<2&&(ie(null),oe(null)),e.touches.length===0&&ee(!1)},Ie=()=>{R(1),B({x:0,y:0})},Le=D||!p&&(i||f)?``:(e=>p?`${e}&token=${encodeURIComponent(p)}`:_d(e))(m===`stream`?`/api/v1/printers/${s}/camera/stream?fps=${u}&t=${T}`:`/api/v1/printers/${s}/camera/snapshot?t=${T}`),Re=C||D||N;return s?(0,G.jsxs)(`div`,{ref:H,className:`min-h-screen bg-black flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h1`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(ss,{className:`w-4 h-4`}),fe?.name||`Printer ${s}`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark rounded p-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>xe(`stream`),disabled:Re,className:`px-3 py-1 text-xs rounded transition-colors ${m===`stream`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white disabled:opacity-50`}`,children:e(`camera.live`)}),(0,G.jsx)(`button`,{onClick:()=>xe(`snapshot`),disabled:Re,className:`px-3 py-1 text-xs rounded transition-colors ${m===`snapshot`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white disabled:opacity-50`}`,children:e(`camera.snapshot`)})]}),(0,G.jsx)(`button`,{onClick:()=>me.mutate(!pe?.chamber_light),disabled:!pe?.connected||me.isPending||!r(`printers:control`),className:`p-1.5 rounded disabled:opacity-50 ${pe?.chamber_light?`bg-yellow-500/20 hover:bg-yellow-500/30`:`hover:bg-bambu-dark-tertiary`}`,title:r(`printers:control`)?e(`camera.chamberLight`):e(`printers.permission.noControl`),children:(0,G.jsx)(vT,{on:pe?.chamber_light??!1,className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>_(!0),disabled:!he||!r(`printers:control`),className:`p-1.5 rounded disabled:opacity-50 ${he&&r(`printers:control`)?`hover:bg-bambu-dark-tertiary`:``}`,title:r(`printers:control`)?e(he?`printers.skipObjects.tooltip`:`printers.skipObjects.onlyWhilePrinting`):e(`printers.permission.noControl`),children:(0,G.jsx)(yT,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:Se,disabled:Re,className:`p-1.5 hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,title:e(m===`stream`?`camera.restartStream`:`camera.refreshSnapshot`),children:(0,G.jsx)(Hl,{className:`w-4 h-4 text-bambu-gray ${Re?`animate-spin`:``}`})}),(0,G.jsx)(`button`,{onClick:()=>b(!0),className:`p-1.5 hover:bg-bambu-dark-tertiary rounded`,title:e(`camera.diagnose.button`),children:(0,G.jsx)(Su,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:Ce,className:`p-1.5 hover:bg-bambu-dark-tertiary rounded`,title:e(k?`camera.exitFullscreen`:`camera.fullscreen`),children:k?(0,G.jsx)(pl,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ll,{className:`w-4 h-4 text-bambu-gray`})})]})]}),(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-2 overflow-hidden`,onWheel:Ee,onMouseMove:ke,onMouseUp:Ae,onMouseLeave:Ae,onTouchStart:Ne,onTouchMove:Pe,onTouchEnd:Fe,style:{touchAction:`none`},children:(0,G.jsxs)(`div`,{className:`relative w-full h-full flex items-center justify-center`,children:[(C||D)&&!N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/50 z-10`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(Hl,{className:`w-8 h-8 text-bambu-gray animate-spin mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(m===`stream`?`camera.connectingToCamera`:`camera.capturingSnapshot`)})]})}),N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/80 z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-4`,children:[(0,G.jsx)(Zu,{className:`w-10 h-10 text-orange-400 mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:e(`camera.connectionLost`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:e(`camera.reconnecting`,{countdown:F,attempt:Math.min(j+1,a9),max:a9})}),(0,G.jsx)(`button`,{onClick:Se,className:`px-4 py-2 bg-bambu-green text-white text-sm rounded hover:bg-bambu-green/80 transition-colors`,children:e(`camera.reconnectNow`)})]})}),x&&!N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-4`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12 text-orange-400 mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:e(`camera.cameraUnavailable`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4 max-w-md`,children:e(`camera.cameraUnavailableDesc`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[(0,G.jsx)(`button`,{onClick:Se,className:`px-4 py-2 bg-bambu-green text-white rounded hover:bg-bambu-green/80 transition-colors`,children:e(`camera.retry`)}),(0,G.jsx)(`button`,{onClick:()=>b(!0),className:`px-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray hover:text-white rounded transition-colors`,children:e(`camera.diagnose.button`)})]})]})}),(0,G.jsx)(`img`,{ref:se,src:Le,alt:e(`camera.cameraStream`),className:`max-w-full max-h-full object-contain select-none`,style:{transform:`scale(${L}) translate(${z.x/L}px, ${z.y/L}px) rotate(${fe?.camera_rotation||0}deg)`,...fe?.camera_rotation===90||fe?.camera_rotation===270?{maxWidth:`100vh`,maxHeight:`100vw`}:{},cursor:L>1?V?`grabbing`:`grab`:`default`},onError:Le?ve:void 0,onLoad:Le?ye:void 0,onMouseDown:De,draggable:!1},T),(0,G.jsxs)(`div`,{className:`absolute bottom-4 left-4 flex items-center gap-1.5 bg-black/60 rounded-lg px-2 py-1.5`,children:[(0,G.jsx)(`button`,{onClick:Te,disabled:L<=1,className:`p-1.5 hover:bg-white/10 rounded disabled:opacity-30`,title:e(`camera.zoomOut`),children:(0,G.jsx)(ad,{className:`w-4 h-4 text-white`})}),(0,G.jsxs)(`button`,{onClick:Ie,className:`px-2 py-1 text-sm text-white hover:bg-white/10 rounded min-w-[48px]`,title:e(`camera.resetZoom`),children:[Math.round(L*100),`%`]}),(0,G.jsx)(`button`,{onClick:we,disabled:L>=4,className:`p-1.5 hover:bg-white/10 rounded disabled:opacity-30`,title:e(`camera.zoomIn`),children:(0,G.jsx)(rd,{className:`w-4 h-4 text-white`})})]})]})}),(0,G.jsx)(bT,{printerId:s,isOpen:g,onClose:()=>_(!1)}),v&&(0,G.jsx)(xT,{printerId:s,printerName:fe?.name||null,onClose:()=>b(!1)})]}):(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-white`,children:e(`camera.invalidPrinterId`)})})}var w$e=5e3,T$e=4,E$e=8,D$e=1,O$e=16,k$e=2,A$e=60;function j$e(e,t,n,r){let i=parseInt(e??``,10);return Number.isFinite(i)?Math.min(r,Math.max(n,i)):t}function M$e(e,t,n,r,i,a){return e.has(t)?j$e(e.get(t),r,i,a):j$e(localStorage.getItem(n),r,i,a)}function N$e(){let{t:e}=U(),t=rr(),{authEnabled:n,loading:r,user:i}=Nd(),[a]=Ri(),o=a.get(`token`),s=o!=null&&o!==``,[c,l]=(0,y.useState)(()=>M$e(a,`maxLive`,`camWallMaxLive`,T$e,D$e,O$e)),[u,d]=(0,y.useState)(()=>M$e(a,`interval`,`camWallSnapshotSec`,E$e,k$e,A$e)),[f,p]=(0,y.useState)(()=>{let e=a.get(`status`)??localStorage.getItem(`camWallStatusMode`);return(s?[`off`,`compact`]:[`off`,`compact`,`full`]).includes(e)?e:`compact`});(0,y.useEffect)(()=>{if(s)return pd(o),()=>pd(null)},[s,o]);let m=K({queryKey:[`camwall-printers`,o],queryFn:()=>Z.getCamWallPrinters(o??void 0),enabled:s,refetchInterval:w$e}),h=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters(),enabled:!s&&!r&&(!n||i!==null),refetchInterval:w$e}),g=(0,y.useMemo)(()=>{let e=new Map;for(let t of m.data??[])e.set(t.id,{connected:t.connected,state:t.state,progress:t.progress,remaining_time:t.remaining_time,layer_num:t.layer_num,total_layers:t.total_layers,hms_errors:t.hms_errors});return e},[m.data]);if(!s&&r)return(0,G.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-bambu-dark text-bambu-gray`,children:e(`common.loading`)});if(!s&&n&&!i)return(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:t}});let _=s?m:h,v=s?m.data??[]:h.data??[];return _.isError?(0,G.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-bambu-dark p-6 text-center`,children:(0,G.jsx)(`p`,{className:`max-w-md text-sm text-red-400`,children:e(s?`printers.camWall.page.tokenRejected`:`printers.camWall.page.loadFailed`)})}):(0,G.jsx)(`div`,{className:`min-h-screen bg-bambu-dark p-4`,children:(0,G.jsx)(OT,{printers:v,maxLive:c,snapshotIntervalSec:u,statusMode:f,statuses:s?g:void 0,showSettings:!s,onTileClick:s?void 0:e=>window.open(`/camera/${e}`,`camera-${e}`),onChangeMaxLive:e=>{l(e),localStorage.setItem(`camWallMaxLive`,String(e))},onChangeSnapshotIntervalSec:e=>{d(e),localStorage.setItem(`camWallSnapshotSec`,String(e))},onChangeStatusMode:e=>{p(e),localStorage.setItem(`camWallStatusMode`,e)}})})}function P$e(e,t,n){if(!e)return``;if(!t)return e;let r=t.match(/plate_(\d+)\.gcode/);return r&&parseInt(r[1],10)>1?`${e} — ${n(`printers.plateNumber`,`Plate {{number}}`,{number:r[1]})}`:e}function F$e(e){let t=e.get(`show`)?.split(`,`)||[`progress`,`layers`,`eta`,`filename`,`status`],n=parseInt(e.get(`fps`)||`15`,10),r=Math.min(Math.max(isNaN(n)?15:n,1),30),i=e.get(`camera`),a=i!==`false`&&i!==`0`;return{size:e.get(`size`)||`medium`,fps:r,showCamera:a,showProgress:t.includes(`progress`),showLayers:t.includes(`layers`),showEta:t.includes(`eta`),showFilename:t.includes(`filename`),showStatus:t.includes(`status`),showPrinter:t.includes(`printer`),showNozzle:t.includes(`nozzle`),showBed:t.includes(`bed`),showChamber:t.includes(`chamber`)}}function I$e(e,t){if(e.stg_cur_name)return e.stg_cur_name;switch(e.state){case`RUNNING`:return t(`streamOverlay.status.printing`);case`PAUSE`:return t(`streamOverlay.status.paused`);case`FINISH`:return t(`streamOverlay.status.finished`);case`FAILED`:return t(`streamOverlay.status.failed`);case`IDLE`:return t(`streamOverlay.status.idle`);default:return e.state||t(`streamOverlay.status.unknown`)}}function o9(e,t){let n=e[t];return typeof n==`number`?n:null}function L$e({icon:e,label:t,current:n,target:r,sizes:i}){let a=r!=null&&r>0&&Math.round(r)!==Math.round(n);return(0,G.jsxs)(`div`,{className:`flex items-center ${i.gap} text-white/70`,children:[e,(0,G.jsxs)(`span`,{className:i.text,children:[(0,G.jsx)(`span`,{className:`mr-1`,children:t}),(0,G.jsxs)(`span`,{className:`text-white`,children:[Math.round(n),`°C`]}),a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`mx-1`,children:`/`}),(0,G.jsxs)(`span`,{children:[Math.round(r),`°C`]})]})]})]})}function R$e(e){switch(e){case`small`:return{container:`p-3`,text:`text-sm`,textLarge:`text-lg`,progressHeight:`h-2`,icon:`w-3 h-3`,gap:`gap-2`,logoHeight:`h-12`};case`large`:return{container:`p-6`,text:`text-xl`,textLarge:`text-3xl`,progressHeight:`h-4`,icon:`w-6 h-6`,gap:`gap-4`,logoHeight:`h-24`};default:return{container:`p-4`,text:`text-base`,textLarge:`text-xl`,progressHeight:`h-3`,icon:`w-4 h-4`,gap:`gap-3`,logoHeight:`h-16`}}}function z$e(){let{printerId:e}=dr(),[t]=Ri(),{t:n}=U(),r=co(),i=parseInt(e||`0`,10),[a,o]=(0,y.useState)(Date.now()),s=(0,y.useMemo)(()=>F$e(t),[t]),c=R$e(s.size),l=t.get(`token`),u=l!=null&&l!==``,{data:d}=K({queryKey:[`overlayStatus`,i,l],queryFn:()=>Z.getOverlayStatus(i,l??void 0),enabled:i>0&&u,refetchInterval:2e3}),{data:f}=K({queryKey:[`printer`,i],queryFn:()=>Z.getPrinter(i),enabled:i>0&&!u}),{data:p}=K({queryKey:[`printerStatus`,i],queryFn:()=>Z.getPrinterStatus(i),enabled:i>0&&!u,refetchInterval:2e3}),{data:m}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:!u}),h=(0,y.useMemo)(()=>u?d&&{name:d.name,camera_rotation:d.camera_rotation}:f,[u,d,f]),g=u?d:p,_=(u?d?.time_format:m?.time_format)||`system`;(0,y.useEffect)(()=>{if(!i||u)return;let e=null,t=!1;return(async()=>{let n;try{n=(await Z.getWebSocketToken()).token}catch(e){let t=e instanceof sd?e.status:0;if(t===401||t===403)return}if(t)return;let a=window.location.protocol===`https:`?`wss:`:`ws:`,o=n?`?token=${encodeURIComponent(n)}`:``,s=`${a}//${window.location.host}/api/v1/ws${o}`;e=new WebSocket(s),e.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`printer_status`&&t.printer_id===i&&r.setQueryData([`printerStatus`,i],t.status)}catch{}},e.onerror=()=>{}})(),()=>{t=!0,e&&e.close()}},[i,u,r]),(0,y.useEffect)(()=>(document.title=h?`${h.name} - ${n(`streamOverlay.title`)}`:n(`streamOverlay.title`),()=>{document.title=`Bambuddy`}),[h,n]);let v=()=>{setTimeout(()=>{o(Date.now())},3e3)};if(!i)return(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-white`,children:n(`streamOverlay.invalidPrinterId`)})});if(!g)return(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-gray-400`,children:n(`common.loading`)})});let b=g.state===`RUNNING`||g.state===`PAUSE`,x=g.progress||0,S=g.temperatures??{},C=[];if(s.showNozzle){let e=o9(S,`nozzle`),t=o9(S,`nozzle_2`);e!=null&&C.push({key:`nozzle`,icon:(0,G.jsx)(hc,{className:c.icon}),label:n(`printers.heaterHistory.nozzle`,`Nozzle`),current:e,target:o9(S,`nozzle_target`)}),t!=null&&C.push({key:`nozzle_2`,icon:(0,G.jsx)(hc,{className:c.icon}),label:n(`printers.heaterHistory.nozzle2`,`Nozzle 2`),current:t,target:o9(S,`nozzle_2_target`)})}if(s.showBed){let e=o9(S,`bed`);e!=null&&C.push({key:`bed`,icon:(0,G.jsx)(bu,{className:c.icon}),label:n(`printers.heaterHistory.bed`,`Bed`),current:e,target:o9(S,`bed_target`)})}if(s.showChamber){let e=o9(S,`chamber`);e!=null&&C.push({key:`chamber`,icon:(0,G.jsx)(Zo,{className:c.icon}),label:n(`printers.heaterHistory.chamber`,`Chamber`),current:e,target:o9(S,`chamber_target`)})}let w=`/api/v1/printers/${i}/camera/stream?fps=${s.fps}&t=${a}`,T=u&&l?`${w}&token=${encodeURIComponent(l)}`:_d(w);return(0,G.jsxs)(`div`,{className:`min-h-screen bg-black relative overflow-hidden`,children:[s.showCamera&&(0,G.jsx)(`img`,{src:T,alt:n(`streamOverlay.cameraStream`),className:`absolute inset-0 w-full h-full object-contain`,style:h?.camera_rotation?{transform:`rotate(${h.camera_rotation}deg)`}:void 0,onError:v},a),(0,G.jsx)(`a`,{href:`https://github.com/maziggy/bambuddy`,target:`_blank`,rel:`noopener noreferrer`,className:`absolute top-4 right-4 z-10`,children:(0,G.jsx)(`img`,{src:`/img/bambuddy_logo_dark_transparent.png`,alt:`Bambuddy`,className:`${c.logoHeight} object-contain drop-shadow-lg hover:scale-105 transition-transform`})}),(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 z-10 bg-gradient-to-t from-black/80 via-black/60 to-transparent`,children:(0,G.jsxs)(`div`,{className:`${c.container}`,children:[s.showPrinter&&h&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} mb-2`,children:[(0,G.jsx)(Rl,{className:`${c.icon} text-white/70`}),(0,G.jsx)(`span`,{className:`${c.text} text-white font-medium`,children:h.name})]}),s.showFilename&&g.current_print&&(0,G.jsx)(`div`,{className:`${c.textLarge} text-white font-semibold mb-2 truncate drop-shadow-md`,children:P$e(g.current_print.replace(/\.gcode\.3mf$|\.3mf$|\.gcode$/i,``),g.gcode_file,n)}),s.showStatus&&(0,G.jsx)(`div`,{className:`${c.text} text-white/70 mb-2`,children:I$e(g,n)}),s.showProgress&&b&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1 ${c.text}`,children:[(0,G.jsx)(`span`,{className:`text-white/70`,children:n(`streamOverlay.progress`)}),(0,G.jsxs)(`span`,{className:`text-white font-bold`,children:[Math.round(x),`%`]})]}),(0,G.jsx)(`div`,{className:`w-full bg-white/20 rounded-full ${c.progressHeight}`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green ${c.progressHeight} rounded-full transition-all duration-500`,style:{width:`${x}%`}})})]}),b&&(s.showLayers||s.showEta)&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} flex-wrap`,children:[s.showLayers&&g.layer_num!=null&&g.total_layers!=null&&g.total_layers>0&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(Jc,{className:c.icon}),(0,G.jsxs)(`span`,{className:c.text,children:[(0,G.jsx)(`span`,{className:`text-white`,children:g.layer_num}),(0,G.jsx)(`span`,{className:`mx-1`,children:`/`}),(0,G.jsx)(`span`,{children:g.total_layers})]})]}),s.showEta&&g.remaining_time!=null&&g.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(Nu,{className:c.icon}),(0,G.jsx)(`span`,{className:`${c.text} text-white`,children:lp(g.remaining_time*60)})]}),(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(js,{className:c.icon}),(0,G.jsxs)(`span`,{className:`${c.text} text-white`,children:[n(`streamOverlay.eta`),` `,cp(g.remaining_time,_,n)]})]})]})]}),!b&&(0,G.jsx)(`div`,{className:`${c.text} text-white/70 py-2`,children:g.connected?n(`streamOverlay.printerIdle`):n(`streamOverlay.printerOffline`)}),C.length>0&&(0,G.jsx)(`div`,{className:`flex items-center ${c.gap} flex-wrap mt-2`,children:C.map(e=>(0,G.jsx)(L$e,{icon:e.icon,label:e.label,current:e.current,target:e.target,sizes:c},e.key))})]})})]})}function B$e(){let{t:e}=U(),{id:t}=dr(),{mode:n}=Id(),{data:r,isLoading:i,error:a}=K({queryKey:[`external-link`,t],queryFn:()=>Z.getExternalLink(Number(t)),enabled:!!t});return i?(0,G.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):a||!r?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-bambu-gray`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12`}),(0,G.jsx)(`p`,{children:e(`common.linkNotFound`)})]}):(0,G.jsx)(`iframe`,{src:r.url,className:`h-full w-full border-0`,style:{colorScheme:n},title:r.name,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox`})}function V$e(){let{id:e}=dr(),t=or(),n=co(),{t:r}=U(),{showToast:i}=qd(),a=!!e,[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!1),{data:g,isLoading:_}=K({queryKey:[`group`,e],queryFn:()=>Z.getGroup(Number(e)),enabled:a}),{data:v,isLoading:b}=K({queryKey:[`permissions`],queryFn:()=>Z.getPermissions()});a&&g&&!m&&(s(g.name),l(g.description||``),d(g.permissions),h(!0));let x=q({mutationFn:e=>Z.createGroup(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`groups`]}),n.invalidateQueries({queryKey:[`group`]}),i(r(`groups.toast.created`)),t(`/settings?tab=users`)},onError:e=>{i(e.message,`error`)}}),S=q({mutationFn:t=>Z.updateGroup(Number(e),t),onSuccess:a=>{n.invalidateQueries({queryKey:[`groups`]}),a&&n.setQueryData([`group`,e],a),i(r(`groups.toast.updated`)),t(`/settings?tab=users`)},onError:e=>{i(e.message,`error`)}}),C=x.isPending||S.isPending,w=()=>{if(!o.trim()){i(r(`groups.toast.enterGroupName`),`error`);return}a?S.mutate({name:o===g?.name?void 0:o,description:c,permissions:u}):x.mutate({name:o,description:c||void 0,permissions:u})},T=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},E=(e,t)=>{let n=e.permissions.map(e=>e.value);d(e=>{let r=e.filter(e=>!n.includes(e));return t?[...r,...n]:r})},D=e=>e.permissions.every(e=>u.includes(e.value)),O=e=>{let t=e.permissions.filter(e=>u.includes(e.value)).length;return t>0&&t{v&&d(v.all_permissions)},A=()=>{d([])},j=f.toLowerCase(),M=(0,y.useMemo)(()=>v?j?v.categories.map(e=>({...e,permissions:e.permissions.filter(e=>e.label.toLowerCase().includes(j))})).filter(e=>e.permissions.length>0):v.categories:[],[v,j]),N=v?.all_permissions.length??0;return _||b?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`space-y-6 max-w-5xl mx-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>t(`/settings?tab=users`),className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Lo,{className:`w-5 h-5`})}),(0,G.jsx)(`h1`,{className:`text-xl font-bold text-white`,children:r(a?`groups.editor.title`:`groups.editor.createTitle`)})]}),a&&g?.is_system&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 shrink-0`}),r(`groups.form.systemGroupWarning`)]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:r(`groups.form.groupName`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),disabled:a&&g?.is_system,className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors disabled:opacity-50`,placeholder:r(`groups.form.groupNamePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:r(`groups.form.description`)}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`groups.form.descriptionPlaceholder`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[r(`groups.editor.permissionsSelected`,{count:u.length}),` / `,N]}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:k,children:r(`groups.editor.selectAll`)}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:A,children:r(`groups.editor.clearAll`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:r(`groups.editor.search`),className:`pl-9 pr-4 py-2 text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors w-64`})]})]}),M.length===0?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:r(`groups.editor.noResults`)}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:M.map(e=>{let t=v.categories.find(t=>t.name===e.name),n=t.permissions.filter(e=>u.includes(e.value)).length,i=t.permissions.length,a=D(t),o=O(t);return(0,G.jsxs)(zd,{children:[(0,G.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary rounded-t-xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>E(t,!a),className:`w-5 h-5 rounded border flex items-center justify-center transition-colors shrink-0 ${a?`bg-bambu-green border-bambu-green`:o?`bg-bambu-green/50 border-bambu-green`:`border-bambu-gray hover:border-white`}`,children:[a&&(0,G.jsx)(fs,{className:`w-3 h-3 text-white`}),o&&!a&&(0,G.jsx)(ml,{className:`w-3 h-3 text-white`})]}),(0,G.jsx)(su,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-white font-medium text-sm`,children:e.name})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray tabular-nums`,children:[n,`/`,i]})]}),(0,G.jsx)(`div`,{className:`p-3 space-y-1`,children:e.permissions.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-secondary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u.includes(e.value),onChange:()=>T(e.value),className:`w-4 h-4 shrink-0 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark-secondary`}),(0,G.jsxs)(`span`,{className:`flex flex-col`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.label}),e.value===`websocket:connect`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:r(`groups.editor.websocketHint`)})]})]},e.value))})]},e.name)})}),(0,G.jsx)(`div`,{className:`h-16`}),(0,G.jsxs)(`div`,{className:`fixed bottom-0 left-0 right-0 z-20 px-6 py-3 bg-bambu-dark-secondary border-t border-bambu-dark-tertiary flex items-center justify-center gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>t(`/settings?tab=users`),children:r(`common.cancel`)}),(0,G.jsx)(Q,{onClick:w,disabled:C||!o.trim(),children:C?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})})]})]})}var H$e=1.65,U$e=[`#1DB954`,`#3B82F6`,`#F59E0B`,`#EF4444`,`#8B5CF6`];function s9(e,t,n,r){return`${e}||${t??``}||${n??``}||${r??``}`}function c9(e,t){let n=new Date(e);return n.setDate(n.getDate()+Math.round(t)),n}function l9(e){return e.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function u9(e){return e.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function W$e(e){if(e.length<2)return null;let t=new Map;for(let n of e){let e=n.created_at.slice(0,10);t.set(e,(t.get(e)??0)+n.weight_used)}if(t.size<2)return null;let n=[...t.entries()].map(([e,t])=>({ms:new Date(e).getTime(),totalG:t})).sort((e,t)=>e.ms-t.ms),r=Date.now(),i=Math.LN2/30,a=[];for(let e=1;ee+t.weight,0);if(o===0)return null;let s=a.reduce((e,t)=>e+t.rate*t.weight,0)/o,c=a.reduce((e,t)=>e+t.weight*(t.rate-s)**2,0)/o;return{rate:s,stdDev:Math.sqrt(c)}}function G$e(e){let t=e.reduce((e,t)=>e+Math.max(0,t.weight_used-(t.weight_used_baseline??0)),0);if(t===0)return null;let n=Date.now(),r=(n-e.reduce((e,t)=>{let n=new Date(t.created_at).getTime();return nZ.getAllUsageHistory(5e3),staleTime:6e4,enabled:o}),{data:O=[]}=K({queryKey:[`shopping-list`],queryFn:Z.getShoppingList,staleTime:3e4,enabled:o}),k=T?.forecast_global_lead_time_days??0,A=(0,y.useMemo)(()=>{let e=new Map;for(let t of E)e.set(s9(t.material,t.subtype,t.brand,t.color_name),t);return e},[E]),j=(0,y.useMemo)(()=>{let e=new Map;for(let t of D){let n=e.get(t.spool_id)??[];n.push(t),e.set(t.spool_id,n)}return e},[D]),M=(0,y.useMemo)(()=>{let t=new Map;for(let n of e){if(n.archived_at)continue;let e=s9(n.material,n.subtype,n.brand,n.color_name),r=t.get(e)??{key:e,material:n.material,subtype:n.subtype,brand:n.brand,colorName:n.color_name,spools:[]};r.spools.push(n),t.set(e,r)}return[...t.values()]},[e]),N=(0,y.useMemo)(()=>{let e=new Date;return e.setHours(0,0,0,0),M.map(t=>{let n=A.get(t.key)??(t.colorName===null?null:A.get(s9(t.material,t.subtype,t.brand,null))??null),r=n?.lead_time_days??0,i=Math.max(k,r),a=n?.safety_margin_value??14,o=n?.safety_margin_unit??`days`,s=t.spools.reduce((e,t)=>e+Math.max(0,t.label_weight-t.weight_used),0),c=t.spools.reduce((e,t)=>e+t.label_weight,0),l=t.spools.reduce((e,t)=>e+Math.max(0,t.weight_used-(t.weight_used_baseline??0)),0),u=[];for(let e of t.spools)(e.weight_used_baseline??0)===0&&u.push(...j.get(e.id)??[]);let d=null,f=null,p=`none`,m=W$e(u);if(m!==null)d=m.rate,f=m.stdDev,p=`history`;else{let e=G$e(t.spools);e!==null&&(d=e,p=`delta`)}let h=H$e*(f??(d===null?0:d*.2))*Math.sqrt(i)+(o===`g`?a:d===null?a*5:d*a),g=d===null?0:d*i+h,_=d&&d>0?Math.floor(s/d):null,v=_===null?null:c9(e,_),y=d&&d>0?Math.floor((s-g)/d):null,b=y===null?null:c9(e,Math.max(0,y)),x=_!==null&&i>0&&_<=i,S=!x&&y!==null&&y<=0;return{group:t,settings:n,totalRemainingG:s,totalLabelG:c,totalSpools:t.spools.length,totalUsedG:l,dailyRateG:d,dailyRateStdDev:f,rateTier:p,effectiveLeadTimeDays:i,safetyStockG:h,reorderPointG:g,daysRemaining:_,daysUntilROP:y,projectedEmptyDate:v,reorderTriggerDate:b,reorderAlert:S,stockBreakAlert:x}})},[M,A,j,k]),P=(0,y.useMemo)(()=>[...new Set(M.map(e=>e.material))].sort(),[M]),F=(0,y.useMemo)(()=>[...new Set(M.map(e=>e.brand).filter(Boolean))].sort(),[M]),I=(0,y.useMemo)(()=>{let e=[...N];return m&&(e=e.filter(e=>e.group.material===m)),g&&(e=e.filter(e=>e.group.brand===g)),e.sort((e,t)=>{let n=0,r=0;switch(u){case`material`:n=[e.group.material,e.group.subtype??``,e.group.brand??``].join(` `).toLowerCase(),r=[t.group.material,t.group.subtype??``,t.group.brand??``].join(` `).toLowerCase();break;case`used`:n=e.totalUsedG,r=t.totalUsedG;break;case`days_left`:n=e.daysRemaining??999999,r=t.daysRemaining??999999;break;case`stock`:n=e.totalRemainingG,r=t.totalRemainingG;break}let i=nr);return f===`asc`?i:-i}),e},[N,u,f,m,g]),L=(0,y.useMemo)(()=>N.filter(e=>!e.settings?.alerts_snoozed&&(e.stockBreakAlert||e.reorderAlert)),[N]),R=(0,y.useMemo)(()=>[...N].filter(e=>e.dailyRateG!==null).sort((e,t)=>t.totalUsedG-e.totalUsedG).slice(0,5),[N]);if(!o)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray gap-3`,children:[(0,G.jsx)(nl,{className:`w-8 h-8 opacity-40`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`forecast.noReadAccess`)})]});function z(e){u===e?p(e=>e===`asc`?`desc`:`asc`):(d(e),p(e===`days_left`?`asc`:`desc`))}let B=O.length>0?O.length:null;return(0,G.jsxs)(`div`,{className:`space-y-5`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[L.length>0&&(0,G.jsxs)(`button`,{onClick:()=>l(e=>!e),className:`flex items-center gap-2 px-3 py-1.5 rounded-lg border text-sm font-medium transition-colors ${L.some(e=>e.stockBreakAlert)?`bg-red-100 dark:bg-red-500/15 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300 hover:bg-red-200 dark:hover:bg-red-500/25`:`bg-yellow-100 dark:bg-yellow-500/15 border-yellow-300 dark:border-yellow-500/30 text-yellow-700 dark:text-yellow-300 hover:bg-yellow-200 dark:hover:bg-yellow-500/25`}`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4`}),r(`forecast.alertCount`,{count:L.length}),c?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})]}),s&&(0,G.jsx)(Z$e,{value:k,onSave:e=>{Z.updateSettings({forecast_global_lead_time_days:e}).then(()=>{t.invalidateQueries({queryKey:[`settings`]}),n(r(`forecast.globalLeadTimeSaved`),`success`)})}}),(0,G.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${m?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:r(`inventory.material`)}),P.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`select`,{value:g,onChange:e=>_(e.target.value),className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${g?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:r(`inventory.brand`)}),F.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`button`,{onClick:()=>S(e=>!e),className:`relative flex items-center gap-2 px-3 py-1.5 rounded-lg border border-bambu-dark-tertiary text-bambu-gray hover:bg-bambu-dark-tertiary text-sm transition-colors ml-auto`,children:[(0,G.jsx)(cu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:r(`forecast.shoppingList`)}),B&&(0,G.jsx)(`span`,{className:`absolute -top-1.5 -right-1.5 w-4 h-4 rounded-full bg-bambu-green text-white text-[10px] font-bold flex items-center justify-center`,children:B})]})]}),c&&L.length>0&&(0,G.jsx)(`div`,{className:`space-y-2`,children:L.map(e=>(0,G.jsx)(J$e,{forecast:e,onCart:()=>b(e)},e.group.key))}),x&&(0,G.jsx)(n1e,{items:O,forecasts:N,globalLeadTime:k,canWrite:s,onClose:()=>S(!1),onRemove:e=>{Z.removeFromShoppingList(e).then(()=>t.invalidateQueries({queryKey:[`shopping-list`]})).catch(()=>n(r(`forecast.failedSaveSettings`),`error`))},onClear:()=>{Z.clearShoppingList().then(()=>t.invalidateQueries({queryKey:[`shopping-list`]})).catch(()=>n(r(`forecast.failedSaveSettings`),`error`))}}),R.length>0&&(0,G.jsx)(X$e,{forecasts:R,days:C,onDaysChange:w}),N.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Fu,{className:`w-10 h-10 mb-3 opacity-40`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`forecast.noSpools`)})]}):(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`w-8 px-4 py-3`}),(0,G.jsx)(d9,{col:`material`,active:u,dir:f,onSort:z,children:r(`forecast.sku`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`locations.spools`)}),(0,G.jsx)(d9,{col:`stock`,active:u,dir:f,onSort:z,children:r(`forecast.stock`)}),(0,G.jsx)(d9,{col:`used`,active:u,dir:f,onSort:z,children:r(`forecast.dailyRate`)}),(0,G.jsx)(d9,{col:`days_left`,active:u,dir:f,onSort:z,children:r(`forecast.daysLeft`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`forecast.emptyBy`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`forecast.reorderBy`)}),(0,G.jsx)(`th`,{className:`w-24 px-4 py-3`})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:I.map(e=>(0,G.jsx)(Q$e,{forecast:e,globalLeadTime:k,canWrite:s,onSaved:()=>t.invalidateQueries({queryKey:[`sku-settings`]}),onCart:()=>b(e),showToast:n},e.group.key))})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 px-4 py-3 text-xs text-bambu-gray border-t border-bambu-dark-tertiary bg-bambu-dark-tertiary/20`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-bambu-green inline-block`}),r(`forecast.trendLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-blue-400 inline-block`}),r(`forecast.estimatedLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-bambu-gray/40 inline-block`}),r(`forecast.noDataLegend`)]})]})]}),v&&(0,G.jsx)(i1e,{forecast:v,onClose:()=>b(null),onAdd:e=>{Z.addToShoppingList(e).then(()=>{t.invalidateQueries({queryKey:[`shopping-list`]}),n(r(`forecast.addedToCart`),`success`),b(null),S(!0)}).catch(()=>n(r(`forecast.failedAddItem`),`error`))}})]})}function d9({col:e,active:t,dir:n,onSort:r,children:i}){return(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide cursor-pointer select-none hover:text-white transition-colors`,onClick:()=>r(e),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center`,children:[i,t===e?n===`asc`?(0,G.jsx)(Ho,{className:`w-3 h-3 ml-1 text-bambu-green`}):(0,G.jsx)(Io,{className:`w-3 h-3 ml-1 text-bambu-green`}):(0,G.jsx)(Bo,{className:`w-3 h-3 ml-1 opacity-40`})]})})}function J$e({forecast:e,onCart:t}){let{t:n}=U(),r=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),i=e.stockBreakAlert;return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 rounded-lg border text-sm ${i?`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300`:`bg-yellow-50 dark:bg-yellow-500/10 border-yellow-300 dark:border-yellow-500/30 text-yellow-700 dark:text-yellow-300`}`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:r}),i?(0,G.jsxs)(`span`,{className:`ml-2 text-xs opacity-80`,children:[n(`forecast.stockBreakRisk`),` — `,n(`forecast.stockBreakDetail`,{days:e.daysRemaining,lt:e.effectiveLeadTimeDays})]}):(0,G.jsxs)(`span`,{className:`ml-2 text-xs opacity-80`,children:[n(`forecast.reorderNow`),` — `,n(`forecast.reorderTriggerPassed`,{date:e.reorderTriggerDate?l9(e.reorderTriggerDate):`—`})]})]}),(0,G.jsxs)(`button`,{onClick:t,className:`flex items-center gap-1.5 px-2.5 py-1 rounded border border-current text-xs opacity-70 hover:opacity-100 transition-opacity`,children:[(0,G.jsx)(cu,{className:`w-3 h-3`}),` `,n(`forecast.order`)]})]})}var Y$e=[{label:`1W`,value:7},{label:`1M`,value:30},{label:`6M`,value:180}];function X$e({forecasts:e,days:t,onDaysChange:n}){let{t:r}=U(),i=Array.from({length:t+1},(e,t)=>t),a=e.map((e,n)=>({key:e.group.key,label:[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),color:U$e[n%U$e.length],rop:e.reorderPointG,points:K$e(e,t)})),o=i.map(e=>{let t={day:e,label:u9(c9(new Date,e))};for(let n of a){let r=n.points.find(t=>t.day===e);t[n.key]=r?.stock??0}return t}),s=(()=>{for(let e=t;e>=0;e--)if(a.some(t=>o[e]?.[t.key]>0))return e;return t})(),c=o.slice(0,s+1),l=a.filter(e=>e.rop>0);return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white`,children:r(`forecast.chartTitle`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1 hidden sm:inline`,children:r(`forecast.dashedLinesROP`)}),(0,G.jsx)(`div`,{className:`ml-auto flex items-center bg-bambu-dark-tertiary rounded-lg p-0.5`,children:Y$e.map(e=>(0,G.jsx)(`button`,{onClick:()=>n(e.value),className:`px-2.5 py-1 text-xs font-medium rounded-md transition-colors ${t===e.value?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:e.label},e.value))})]}),(0,G.jsx)(iA,{width:`100%`,height:220,children:(0,G.jsxs)(dH,{data:c,margin:{top:4,right:8,bottom:0,left:0},children:[(0,G.jsx)(`defs`,{children:a.map(e=>(0,G.jsxs)(`linearGradient`,{id:`grad-${e.key}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:e.color,stopOpacity:.25}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:e.color,stopOpacity:.02})]},e.key))}),(0,G.jsx)(GB,{strokeDasharray:`3 3`,stroke:`#374151`,strokeOpacity:.5}),(0,G.jsx)(xV,{dataKey:`label`,tick:{fill:`#6B7280`,fontSize:10},interval:Math.max(0,Math.ceil(s/8)-1),axisLine:!1,tickLine:!1}),(0,G.jsx)(EV,{tick:{fill:`#6B7280`,fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:e=>e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${e}g`,width:48}),(0,G.jsx)(cz,{content:({label:e,payload:t})=>t?.length?(0,G.jsxs)(`div`,{style:{background:`#1a1a2e`,border:`1px solid #374151`,borderRadius:8,fontSize:12,padding:`8px 12px`},children:[(0,G.jsx)(`div`,{style:{color:`#9CA3AF`,marginBottom:6},children:e}),t.map(e=>{let t=a.find(t=>t.key===String(e.dataKey));return typeof e.value==`number`?(0,G.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,color:`#E5E7EB`,marginBottom:2},children:[(0,G.jsx)(`span`,{style:{color:t?.color??`#9CA3AF`,fontSize:10},children:`●`}),(0,G.jsx)(`span`,{children:t?.label??String(e.dataKey)}),(0,G.jsxs)(`span`,{style:{color:`#9CA3AF`,marginLeft:4},children:[e.value,`g`]})]},String(e.dataKey)):null})]}):null}),(0,G.jsx)(lj,{formatter:e=>(0,G.jsx)(`span`,{style:{color:`#9CA3AF`,fontSize:11},children:a.find(t=>t.key===e)?.label??e})}),a.map(e=>(0,G.jsx)(iV,{type:`monotone`,dataKey:e.key,stroke:e.color,strokeWidth:2,fill:`url(#grad-${e.key})`,dot:!1,activeDot:{r:3}},e.key)),l.map(e=>(0,G.jsx)(PB,{y:e.rop,stroke:e.color,strokeDasharray:`4 3`,strokeOpacity:.6},`rop-${e.key}`))]})})]})}function Z$e({value:e,onSave:t}){let{t:n}=U(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(String(e));function s(){let e=parseInt(a,10);isNaN(e)||e<0||(t(e),i(!1))}return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 bg-bambu-dark-tertiary/40 rounded-lg border border-bambu-dark-tertiary text-xs text-bambu-gray`,children:[(0,G.jsx)(Wc,{className:`w-3.5 h-3.5 flex-shrink-0`,"aria-label":n(`forecast.globalLeadTimeHint`)}),(0,G.jsxs)(`span`,{className:`hidden sm:inline`,children:[n(`forecast.globalLeadTime`),`:`]}),r?(0,G.jsxs)(`form`,{className:`flex items-center gap-1.5`,onSubmit:e=>{e.preventDefault(),s()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:365,value:a,onChange:e=>o(e.target.value),className:`w-14 px-1.5 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`d`}),(0,G.jsx)(`button`,{type:`submit`,className:`px-2 py-0.5 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80`,children:n(`forecast.save`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(!1),className:`text-xs text-bambu-gray hover:text-white`,children:`✕`})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`span`,{className:`font-semibold text-white`,children:[e,`d`]}),(0,G.jsx)(`button`,{onClick:()=>{o(String(e)),i(!0)},className:`p-0.5 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function Q$e({forecast:e,globalLeadTime:t,canWrite:n,onSaved:r,onCart:i,showToast:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(String(e.settings?.lead_time_days??0)),[h,g]=(0,y.useState)(String(e.settings?.safety_margin_value??14)),[_,v]=(0,y.useState)(e.settings?.safety_margin_unit??`days`);(0,y.useEffect)(()=>{l||m(String(e.settings?.lead_time_days??0))},[e.settings?.lead_time_days,l]),(0,y.useEffect)(()=>{d||(g(String(e.settings?.safety_margin_value??14)),v(e.settings?.safety_margin_unit??`days`))},[e.settings?.safety_margin_value,e.settings?.safety_margin_unit,d]);let b=q({mutationFn:Z.upsertSkuSettings,onSuccess:()=>{r(),a(o(`forecast.settingsSaved`),`success`)},onError:()=>a(o(`forecast.failedSaveSettings`),`error`)}),x=e.settings?.alerts_snoozed??!1,S=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),C=e.group.spools[0]?.rgba?Mf(e.group.spools[0].rgba):{backgroundColor:`#4B5563`},w=e.totalLabelG>0?Math.round(e.totalRemainingG/e.totalLabelG*100):0,T=x||e.daysRemaining===null?`text-bambu-gray`:e.stockBreakAlert?`text-red-700 dark:text-red-400`:e.reorderAlert||e.daysRemaining<30?`text-yellow-700 dark:text-yellow-400`:`text-green-700 dark:text-green-400`;function E(t,n,r,i=x){b.mutate({material:e.group.material,subtype:e.group.subtype,brand:e.group.brand,color_name:e.group.colorName,lead_time_days:t,safety_margin_value:n,safety_margin_unit:r,alerts_snoozed:i})}function D(t){t.stopPropagation(),E(e.settings?.lead_time_days??0,e.settings?.safety_margin_value??14,e.settings?.safety_margin_unit??`days`,!x)}let O=e.rateTier===`history`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-bambu-green/15 text-bambu-green`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-green`}),o(`forecast.trend`)]}):e.rateTier===`delta`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-400/15 text-blue-700 dark:text-blue-400`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400`}),o(`forecast.estimated`)]}):(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray/60`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-gray/40`}),o(`forecast.noData`)]});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 cursor-pointer hover:bg-bambu-dark-tertiary/30 transition-colors ${x?``:e.stockBreakAlert?`bg-red-500/5`:e.reorderAlert?`bg-yellow-500/5`:``} ${x?`opacity-50`:``}`,onClick:()=>c(e=>!e),children:[(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`block w-5 h-5 rounded-full border border-black/20`,style:C})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-white`,children:S})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.totalSpools})}),(0,G.jsx)(`td`,{className:`px-4 py-3 min-w-[140px]`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${w>50?`bg-bambu-green`:w>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(w,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(e.totalRemainingG),`g`]})]})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.dailyRateG===null?`—`:`${e.dailyRateG.toFixed(1)}g/d`}),O]})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold ${T}`,children:e.daysRemaining===null?(0,G.jsx)(`span`,{className:`text-bambu-gray font-normal`,children:`—`}):`${e.daysRemaining}d`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.projectedEmptyDate?l9(e.projectedEmptyDate):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm ${!x&&e.reorderAlert?`text-yellow-700 dark:text-yellow-400`:`text-bambu-gray`}`,children:e.reorderTriggerDate?l9(e.reorderTriggerDate):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[n&&(0,G.jsx)(`button`,{onClick:i,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:o(`forecast.addToCart`),children:(0,G.jsx)(cu,{className:`w-4 h-4`})}),!x&&(e.stockBreakAlert?(0,G.jsx)(Lu,{className:`w-4 h-4 text-red-600 dark:text-red-400`,"aria-label":o(`forecast.stockBreakRisk`)}):e.reorderAlert?(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`,"aria-label":o(`forecast.reorderNow`)}):e.daysRemaining===null?null:(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green/50`})),n&&(0,G.jsx)(`button`,{onClick:D,className:`p-1 rounded transition-colors ${x?`text-amber-600/80 dark:text-amber-400/80 hover:text-amber-700 dark:hover:text-amber-300`:`text-slate-400 hover:text-white`}`,title:o(x?`forecast.alertsEnabled`:`forecast.alertsSnoozed`),children:(0,G.jsx)(Ko,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),c(e=>!e)},className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,children:s?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`})})]})})]}),s&&(0,G.jsx)(`tr`,{className:`bg-bambu-dark-tertiary/10`,children:(0,G.jsx)(`td`,{colSpan:9,className:`px-6 py-4`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid gap-2 ${n?`grid-cols-2 sm:grid-cols-4`:`grid-cols-2`}`,children:[(0,G.jsx)($$e,{label:o(`forecast.effectiveLeadTime`),value:`${e.effectiveLeadTimeDays}d`,hint:o(`forecast.effectiveLeadTimeHint`,{global:t,sku:e.settings?.lead_time_days??0})}),(0,G.jsx)($$e,{label:o(`forecast.reorderPoint`),value:`${Math.round(e.reorderPointG)}g`,hint:o(`forecast.reorderPointHint`)}),n&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(e1e,{label:o(`forecast.skuLeadTimeOverride`),hint:o(`forecast.skuLeadTimeHint`),unit:o(`forecast.leadTime`),editing:l,value:e.settings?.lead_time_days??0,inputValue:p,onInputChange:m,onEdit:()=>{m(String(e.settings?.lead_time_days??0)),u(!0)},onSave:()=>{let t=parseInt(p,10);!isNaN(t)&&t>=0&&(E(t,e.settings?.safety_margin_value??14,_),u(!1))},onCancel:()=>u(!1),isPending:b.isPending,saveLabel:o(`forecast.save`),cancelLabel:o(`forecast.cancel`)}),(0,G.jsx)(t1e,{value:e.settings?.safety_margin_value??14,unit:_,editing:d,inputValue:h,dailyRateG:e.dailyRateG,onInputChange:g,onUnitChange:e=>v(e),onEdit:()=>{g(String(e.settings?.safety_margin_value??14)),v(e.settings?.safety_margin_unit??`days`),f(!0)},onSave:()=>{let t=parseInt(h,10);!isNaN(t)&&t>=0&&(E(e.settings?.lead_time_days??0,t,_),f(!1))},onCancel:()=>f(!1),isPending:b.isPending,saveLabel:o(`forecast.save`),cancelLabel:o(`forecast.cancel`),safetyMarginLabel:o(`forecast.safetyMarginLabel`)})]})]}),e.group.spools.length>1&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:o(`forecast.individualSpools`)}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:`#`}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.remaining`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.used`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`forecast.labelWeight`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:e.group.spools.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used),n=e.label_weight>0?t/e.label_weight*100:0;return(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-tertiary/30 transition-colors`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray/70`,children:[`#`,e.id]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-24 h-1.5 bg-bambu-dark-tertiary rounded-full overflow-hidden flex-shrink-0`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${n>50?`bg-bambu-green`:n>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(n,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[Math.round(t),`g`]})]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[Math.round(Math.max(0,e.weight_used-(e.weight_used_baseline??0))),`g`]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e.label_weight,`g`]})})]},e.id)})})]})})]})]})})})]})}function $$e({label:e,value:t,hint:n}){return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3`,title:n,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium text-white mb-1`,children:e}),(0,G.jsx)(`div`,{className:`text-lg font-semibold text-white`,children:t})]})}function e1e({label:e,hint:t,unit:n,editing:r,value:i,inputValue:a,onInputChange:o,onEdit:s,onSave:c,onCancel:l,isPending:u,saveLabel:d=`Save`,cancelLabel:f=`Cancel`}){return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:e}),(0,G.jsx)(`span`,{title:t,children:(0,G.jsx)(Wc,{className:`w-3 h-3 text-bambu-gray/50`})})]}),r?(0,G.jsxs)(`form`,{className:`flex items-center gap-2`,onSubmit:e=>{e.preventDefault(),c()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:365,value:a,onChange:e=>o(e.target.value),className:`w-20 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0,disabled:u}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n}),(0,G.jsx)(`button`,{type:`submit`,disabled:u,className:`px-2 py-1 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:d}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:u,className:`px-2 py-1 text-xs text-bambu-gray hover:text-white`,children:f})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-lg font-semibold text-white`,children:i}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n}),(0,G.jsx)(`button`,{onClick:s,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function t1e({value:e,unit:t,editing:n,inputValue:r,dailyRateG:i,onInputChange:a,onUnitChange:o,onEdit:s,onSave:c,onCancel:l,isPending:u,saveLabel:d=`Save`,cancelLabel:f=`Cancel`,safetyMarginLabel:p=`Safety Margin`}){let{t:m}=U(),h=t===`g`?e:i===null?null:Math.round(i*e),g=t===`days`?m(`forecast.safetyMarginHintDays`,{approx:h===null?``:m(`forecast.safetyMarginHintDaysApprox`,{g:h})}):m(`forecast.safetyMarginHintG`,{approx:i===null?``:m(`forecast.safetyMarginHintGApprox`,{days:Math.round(e/i)})});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:p}),(0,G.jsx)(`span`,{title:g,children:(0,G.jsx)(Wc,{className:`w-3 h-3 text-bambu-gray/50`})})]}),n?(0,G.jsxs)(`form`,{className:`flex items-center gap-2 flex-wrap`,onSubmit:e=>{e.preventDefault(),c()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:t===`g`?1e4:365,value:r,onChange:e=>a(e.target.value),className:`w-20 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0,disabled:u}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded overflow-hidden text-xs`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`days`),className:`px-2 py-1 transition-colors ${t===`days`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`days`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`g`),className:`px-2 py-1 transition-colors ${t===`g`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`g`})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:u,className:`px-2 py-1 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:d}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:u,className:`px-2 py-1 text-xs text-bambu-gray hover:text-white`,children:f})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-lg font-semibold text-white`,children:e}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t}),h!==null&&t===`days`&&(0,G.jsxs)(`span`,{className:`text-lg font-semibold text-white`,children:[`≈ `,h,`g`]}),t===`g`&&i!==null&&(0,G.jsxs)(`span`,{className:`text-lg font-semibold text-white`,children:[`≈ `,Math.round(e/i),`d`]}),(0,G.jsx)(`button`,{onClick:s,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function n1e({items:e,forecasts:t,globalLeadTime:n,canWrite:r,onClose:i,onRemove:a,onClear:o}){let{t:s}=U(),c=co(),[l,u]=(0,y.useState)(`list`),d=q({mutationFn:async({id:e,status:t,item:n,avgSpoolG:r})=>{if(await Z.updateShoppingListStatus(e,t),t===`received`&&n){let t=r??1e3,i={material:n.material,subtype:n.subtype,brand:n.brand,label_weight:t,core_weight:0,core_weight_catalog_id:null,color_name:n.color_name,rgba:null,extra_colors:null,effect_type:null,nozzle_temp_min:null,nozzle_temp_max:null,note:n.note??null,tag_uid:null,tray_uuid:null,data_origin:`manual`,tag_type:null,cost_per_kg:null,last_scale_weight:null,last_weighed_at:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,added_full:null,last_used:null,encode_time:null,category:`Stock`,low_stock_threshold_pct:null};await Z.bulkCreateSpools(i,n.quantity_spools),await Z.removeFromShoppingList(e)}},onSuccess:()=>{c.invalidateQueries({queryKey:[`shopping-list`]}),c.invalidateQueries({queryKey:[`spools`]})}}),f=(0,y.useMemo)(()=>{let e=new Map;for(let n of t)e.set(n.group.key,n);return e},[t]),p=(0,y.useMemo)(()=>e.map(e=>({item:e,forecast:f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null})),[e,f]),m=(0,y.useMemo)(()=>p.filter(({forecast:e})=>!e||e.dailyRateG===null?!1:e.stockBreakAlert||e.daysRemaining!==null&&e.daysRemaining<=e.effectiveLeadTimeDays),[p]);function h(){let t=[s(`forecast.qty`),s(`forecast.material`),s(`inventory.brand`),s(`inventory.subtype`),s(`inventory.color`),`${s(`forecast.weight`)} (g)`,`${s(`forecast.leadTime`)} (d)`,s(`forecast.expectedRestock`),s(`forecast.status`),s(`forecast.note`)],r=e.map(e=>{let t=f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null,r=t&&t.totalSpools>0?t.totalLabelG/t.totalSpools:1e3,i=Math.round(e.quantity_spools*r),a=t?.effectiveLeadTimeDays??n??0,o=a>0?l9(c9(new Date,a)):``;return[e.quantity_spools,e.material,e.brand??``,e.subtype??``,e.color_name??``,i,a||``,o,e.status,e.note??``].map(e=>`"${String(e).replace(/"/g,`""`)}"`).join(`,`)}),i=[t.join(`,`),...r].join(` -`),a=new Blob([i],{type:`text/csv`}),o=URL.createObjectURL(a),c=document.createElement(`a`);c.href=o,c.download=`shopping-list-${new Date().toISOString().slice(0,10)}.csv`,c.click(),setTimeout(()=>URL.revokeObjectURL(o),100)}return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(cu,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white`,children:s(`forecast.shoppingList`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:s(`forecast.shoppingListItems`,{count:e.length})}),e.length>0&&(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-tertiary rounded-md p-0.5 ml-1`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(`list`),className:`flex items-center gap-1.5 px-2 py-0.5 text-xs font-medium rounded transition-colors ${l===`list`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Cl,{className:`w-3 h-3`}),s(`forecast.listView`)]}),(0,G.jsxs)(`button`,{onClick:()=>u(`logistics`),className:`flex items-center gap-1.5 px-2 py-0.5 text-xs font-medium rounded transition-colors ${l===`logistics`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(us,{className:`w-3 h-3`}),s(`forecast.logisticsView`),m.length>0&&(0,G.jsx)(`span`,{className:`w-3.5 h-3.5 rounded-full bg-red-500 text-white text-[9px] font-bold flex items-center justify-center`,children:m.length})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:h,className:`flex items-center gap-1.5 text-xs text-bambu-gray hover:text-white transition-colors px-2 py-1 rounded border border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`,children:[(0,G.jsx)(Xs,{className:`w-3 h-3`}),s(`forecast.downloadCsv`)]}),r&&(0,G.jsx)(`button`,{onClick:o,className:`text-xs text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 transition-colors px-2 py-1 rounded border border-red-200 dark:border-red-500/20 hover:bg-red-50 dark:hover:bg-red-500/10`,children:s(`forecast.clearAll`)})]}),(0,G.jsx)(`button`,{onClick:i,className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),e.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-8 h-8 mb-2 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:s(`forecast.shoppingListEmpty`)})]}):l===`list`?(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/20`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.qty`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.material`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.weight`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.leadTime`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.expectedRestock`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.status`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.note`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-right text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:e.map(e=>{let t=[e.brand,e.material,e.subtype,e.color_name].filter(Boolean).join(` `),i=m.some(t=>t.item.id===e.id),o=f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null,c=o&&o.totalSpools>0?o.totalLabelG/o.totalSpools:1e3,l=Math.round(e.quantity_spools*c),u=o?.effectiveLeadTimeDays??n??0,p=u>0?c9(new Date,u):null,h=e.status===`purchased`||e.status===`received`,g=e.status===`received`,_=d.isPending;return(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-tertiary/30 transition-colors ${i&&!h?`bg-red-500/5`:``}`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsxs)(`span`,{className:`text-sm font-semibold text-bambu-green`,children:[e.quantity_spools,`×`]})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t}),i&&!h&&(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-red-600 dark:text-red-400 flex-shrink-0`,"aria-label":s(`forecast.stockBreakBefore`)})]})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-white`,children:l>=1e3?`${(l/1e3).toFixed(1)}kg`:`${l}g`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:u>0?`${u}d`:`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:p?l9(p):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${g?`bg-bambu-green/20 text-bambu-green`:h?`bg-blue-100 dark:bg-blue-400/20 text-blue-700 dark:text-blue-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:s(g?`forecast.received`:h?`forecast.purchased`:`forecast.pending`)})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.note||`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`div`,{className:`flex items-center justify-end gap-1`,children:r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>d.mutate({id:e.id,status:h?`pending`:`purchased`}),disabled:_||g,title:s(h?`forecast.resetToPending`:`forecast.markPurchased`),className:`p-1.5 rounded transition-colors disabled:opacity-30 ${h?`text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300`:`text-blue-600/50 dark:text-blue-400/50 hover:text-blue-600 dark:hover:text-blue-400`}`,children:h?(0,G.jsx)(Wl,{className:`w-4 h-4`}):(0,G.jsx)(Us,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>d.mutate({id:e.id,status:`received`,item:e,avgSpoolG:c}),disabled:_||!h||g,title:s(`forecast.markReceived`),className:`p-1.5 rounded transition-colors text-bambu-green/50 hover:text-bambu-green disabled:opacity-30`,children:(0,G.jsx)(xl,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,title:s(`forecast.remove`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})})})]},e.id)})})]})}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:p.filter(({item:e})=>e.status!==`received`).map(({item:e,forecast:t})=>(0,G.jsx)(r1e,{item:e,forecast:t,globalLeadTime:n,canWrite:r,onRemove:()=>a(e.id)},e.id))})]})}function r1e({item:e,forecast:t,globalLeadTime:n,canWrite:r,onRemove:i}){let{t:a}=U(),o=[e.brand,e.material,e.subtype,e.color_name].filter(Boolean).join(` `),s=(0,y.useMemo)(()=>{if(!t||t.dailyRateG===null||t.dailyRateG<=0)return null;let n=t.dailyRateG,r=t.effectiveLeadTimeDays,i=t.totalSpools>0?t.totalLabelG/t.totalSpools:1e3,a=e.quantity_spools*i,o=Math.max(0,t.totalRemainingG-n*r),s=o+a,c=Math.ceil(s/n),l=Math.min(r+c+5,365),u=[];for(let e=0;e<=l;e++){let i=u9(c9(new Date,e));if(e===r)u.push({day:e,label:i,stock:Math.round(o),rop:Math.round(t.reorderPointG),safetyStock:Math.round(t.safetyStockG)}),u.push({day:e,label:i,stock:Math.round(s),rop:Math.round(t.reorderPointG),safetyStock:Math.round(t.safetyStockG),arrival:!0});else{let a=e{if(!t||t.dailyRateG===null||t.dailyRateG<=0)return null;let e=Math.floor(t.totalRemainingG/t.dailyRateG);return ee>=1e3?`${(e/1e3).toFixed(1)}kg`:`${e}g`,width:44}),(0,G.jsx)(cz,{contentStyle:{background:`#1a1a2e`,border:`1px solid #374151`,borderRadius:8,fontSize:11},labelStyle:{color:`#9CA3AF`},formatter:(e,t)=>typeof e==`number`?t===`stock`?`${e}g — ${a(`forecast.stock`)}`:t===`rop`?`${e}g — ${a(`forecast.reorderPoint`)}`:t===`safetyStock`?`${e}g — ${a(`forecast.safetyMarginLabel`)}`:`${e}`:``}),(0,G.jsx)(iV,{type:`linear`,dataKey:`stock`,stroke:`#1DB954`,strokeWidth:2,fill:`url(#cart-post-${e.id})`,dot:!1,activeDot:{r:3}}),t.reorderPointG>0&&(0,G.jsx)(PB,{y:t.reorderPointG,stroke:`#F59E0B`,strokeDasharray:`5 3`,strokeOpacity:.8,label:{value:`ROP`,position:`insideTopRight`,fill:`#F59E0B`,fontSize:9}}),t.safetyStockG>0&&(0,G.jsx)(PB,{y:t.safetyStockG,stroke:`#6B7280`,strokeDasharray:`3 3`,strokeOpacity:.6,label:{value:`SS`,position:`insideTopRight`,fill:`#6B7280`,fontSize:9}}),(0,G.jsx)(PB,{x:u9(c9(new Date,s.lt)),stroke:`#3B82F6`,strokeWidth:1.5,strokeDasharray:`4 3`,strokeOpacity:.9,label:{value:`+${s.arrivalG>=1e3?`${(s.arrivalG/1e3).toFixed(1)}kg`:`${Math.round(s.arrivalG)}g`} arrives (d${s.lt})`,position:`insideTopLeft`,fill:`#3B82F6`,fontSize:9}}),c!==null&&(0,G.jsx)(PB,{x:u9(c9(new Date,c)),stroke:`#EF4444`,strokeWidth:1.5,strokeOpacity:.9,label:{value:`OUT`,position:`insideTopLeft`,fill:`#EF4444`,fontSize:9}})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 mt-2 text-[10px] text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-yellow-400 border-dashed`}),` `,a(`forecast.ropLabel`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t border-bambu-gray border-dashed`}),` `,a(`forecast.safetyStockLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-blue-400 border-dashed`}),` `,a(`forecast.stockArrivalLegend`)]}),l&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-red-400`}),` `,a(`forecast.stockoutLegend`)]})]})]}):null]})}function i1e({forecast:e,onClose:t,onAdd:n}){let{t:r}=U(),i=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),[a,o]=(0,y.useState)(`qty`),[s,c]=(0,y.useState)(`1`),[l,u]=(0,y.useState)(`30`),[d,f]=(0,y.useState)(``),p=(0,y.useMemo)(()=>{if(!e.dailyRateG||e.dailyRateG<=0)return null;let t=e.dailyRateG*Number(l),n=e.group.spools.length>0?e.group.spools.reduce((e,t)=>e+t.label_weight,0)/e.group.spools.length:1e3;return Math.ceil(t/n)},[e,l]),m=a===`qty`?parseInt(s,10)||1:p??1;function h(t){t.preventDefault(),n({material:e.group.material,subtype:e.group.subtype,brand:e.group.brand,color_name:e.group.colorName,quantity_spools:m,note:d||null})}return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-2xl border border-bambu-dark-tertiary w-full max-w-sm shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 pt-5 pb-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(cu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-base font-semibold text-white`,children:r(`forecast.addToCartTitle`)})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:h,className:`p-5 space-y-4`,children:[(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:i}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-tertiary rounded-lg p-0.5`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`qty`),className:`flex-1 py-1.5 text-xs font-medium rounded-md transition-colors ${a===`qty`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:r(`forecast.byQuantity`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`duration`),className:`flex-1 py-1.5 text-xs font-medium rounded-md transition-colors ${a===`duration`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:r(`forecast.byDuration`)})]}),a===`qty`?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.numberOfSpools`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:99,value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,autoFocus:!0})]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.lastHowManyDays`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:365,value:l,onChange:e=>u(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,autoFocus:!0})]}),e.dailyRateG===null?(0,G.jsx)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-400 px-1`,children:r(`forecast.noUsageQty`)}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary/50 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`≈`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-bambu-green`,children:r(`forecast.spoolCount`,{count:p??0})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`at `,e.dailyRateG.toFixed(1),`g/day`]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.noteOptional`)}),(0,G.jsx)(`input`,{type:`text`,maxLength:200,value:d,onChange:e=>f(e.target.value),placeholder:r(`forecast.notePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/40 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 pt-1`,children:[(0,G.jsx)(`button`,{type:`submit`,className:`flex-1 py-2 bg-bambu-green text-white text-sm font-medium rounded-lg hover:bg-bambu-green/80 transition-colors`,children:r(`forecast.addNSpools`,{count:m})}),(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 text-sm text-bambu-gray hover:text-white border border-bambu-dark-tertiary rounded-lg transition-colors`,children:r(`forecast.cancel`)})]})]})]})})}var f9={material:``,subtype:``,brand:``,color_name:``,rgba:`808080FF`,extra_colors:``,effect_type:``,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:``,note:``,cost_per_kg:null,category:``,low_stock_threshold_pct:null,location_id:null,spoolman_filament_id:null},a1e=new Set([`material`,`subtype`,`brand`,`rgba`,`color_name`,`label_weight`]);function o1e(e,t=!1,n=!1,r=`create`){let i={};return t||n||r!==`create`?(!e.material&&!e.spoolman_filament_id&&(i.material=`Material is required`),{isValid:Object.keys(i).length===0,errors:i}):(e.slicer_filament||(i.slicer_filament=`Slicer preset is required`),e.material||(i.material=`Material is required`),e.brand||(i.brand=`Brand is required`),e.subtype||(i.subtype=`Subtype is required`),{isValid:Object.keys(i).length===0,errors:i})}var s1e={local:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,orca_cloud:`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,cloud:`bg-bambu-blue/20 text-bambu-blue`,builtin:`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`};function p9({source:e}){let{t}=U(),n={local:t(`profiles.localProfiles.badge`),orca_cloud:t(`configureAmsSlot.orcaCloud`),cloud:t(`configureAmsSlot.bambuCloud`),builtin:t(`configureAmsSlot.builtin`)}[e];return(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded whitespace-nowrap ${s1e[e]}`,children:n})}function c1e({value:e,options:t,inheritLabel:n,onChange:r,disabled:i=!1,ariaLabel:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(``),d=(0,y.useRef)(null),f=t.find(t=>t.code===e);(0,y.useEffect)(()=>{if(!s)return;let e=e=>{d.current&&!d.current.contains(e.target)&&c(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),c(!1))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t,!0)}},[s]);let p=l.trim().toLowerCase(),m=p?t.filter(e=>e.displayName.toLowerCase().includes(p)):t,h=e=>{r(e),c(!1),u(``)};return(0,G.jsxs)(`div`,{className:`relative`,ref:d,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-label":a,"aria-haspopup":`listbox`,"aria-expanded":s,disabled:i,onClick:()=>c(e=>!e),className:`w-full flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-left focus:outline-none focus:border-bambu-green disabled:opacity-50`,children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate ${f?`text-white`:`text-bambu-gray italic`}`,children:f?f.displayName:n}),f&&(0,G.jsx)(p9,{source:f.source}),(0,G.jsx)(ps,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`})]}),s&&(0,G.jsxs)(`div`,{className:`absolute z-50 mt-1 w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl`,children:[(0,G.jsx)(`div`,{className:`p-2 border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-3.5 h-3.5 text-bambu-gray absolute left-2 top-1/2 -translate-y-1/2`}),(0,G.jsx)(`input`,{autoFocus:!0,type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:o(`inventory.searchPresets`),className:`w-full pl-7 pr-7 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-md text-sm text-white placeholder:text-bambu-gray/60 focus:outline-none focus:border-bambu-green`}),l&&(0,G.jsx)(`button`,{type:`button`,"aria-label":o(`common.clear`),onClick:()=>u(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})})]})}),(0,G.jsxs)(`div`,{className:`max-h-56 overflow-y-auto p-1`,role:`listbox`,"aria-label":a,children:[(0,G.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":!f,onClick:()=>h(null),className:`w-full text-left px-2 py-1.5 rounded-md text-sm italic ${f?`text-bambu-gray hover:bg-bambu-dark`:`bg-bambu-green/15 text-bambu-green`}`,children:n}),m.length===0?(0,G.jsx)(`p`,{className:`px-2 py-2 text-sm text-bambu-gray`,children:o(`inventory.noResults`)}):m.map(t=>(0,G.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t.code===e,onClick:()=>h(t),className:`w-full flex items-center gap-2 text-left px-2 py-1.5 rounded-md text-sm ${t.code===e?`bg-bambu-green/15 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate`,title:t.displayName,children:t.displayName}),(0,G.jsx)(p9,{source:t.source})]},t.code))]})]})]})}function l1e(e,t){if(t.length===0)return{top:[],rest:e};let n=new Set(t.map(e=>e.toLowerCase()));return{top:e.filter(e=>n.has(e.toLowerCase())),rest:e.filter(e=>!n.has(e.toLowerCase()))}}function m9({label:e}){return(0,G.jsx)(`div`,{className:`px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-bambu-gray/70 bg-bambu-dark-tertiary/40`,children:e})}function u1e({formData:e,updateField:t,cloudAuthenticated:n,loadingCloudPresets:r,presetInputValue:i,setPresetInputValue:a,selectedPresetOption:o,filamentOptions:s,availableBrands:c,availableMaterials:l,suggestedBrands:u,suggestedMaterials:d,quickAdd:f,detailsRequired:p,quantity:m,onQuantityChange:h,errors:g}){let{t:_}=U(),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(``),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(``),[N,P]=(0,y.useState)(String(e.label_weight)),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(new Set),z=(0,y.useRef)(null),B=(0,y.useRef)(null),V=(0,y.useRef)(null),ee=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{z.current&&!z.current.contains(e.target)&&b(!1),ee.current&&!ee.current.contains(e.target)&&E(!1),B.current&&!B.current.contains(e.target)&&S(!1),V.current&&!V.current.contains(e.target)&&w(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let te=(0,y.useMemo)(()=>{if(!i)return s;let e=i.toLowerCase();return s.filter(t=>t.displayName.toLowerCase().includes(e)||t.code.toLowerCase().includes(e))},[s,i]),ne=(0,y.useMemo)(()=>{if(!D)return c;let e=D.toLowerCase();return c.filter(t=>t.toLowerCase().includes(e)).sort((t,n)=>{let r=t.toLowerCase()===e,i=n.toLowerCase()===e;return r&&!i?-1:!r&&i?1:t.localeCompare(n)})},[c,D]),re=(0,y.useMemo)(()=>{if(!k)return zH;let e=k.toLowerCase();return zH.filter(t=>t.toLowerCase().includes(e))},[k]),ie=(0,y.useMemo)(()=>{if(!j)return l;let e=j.toLowerCase();return l.filter(t=>t.toLowerCase().includes(e)).sort((t,n)=>{let r=t.toLowerCase()===e,i=n.toLowerCase()===e;return r&&!i?-1:!r&&i?1:t.localeCompare(n)})},[j,l]),ae=(0,y.useMemo)(()=>l1e(ne,u),[ne,u]),oe=(0,y.useMemo)(()=>l1e(ie,d),[ie,d]);(0,y.useEffect)(()=>{F||P(String(e.label_weight))},[e.label_weight,F]);let se=n=>{t(`slicer_filament`,n.code),a(n.displayName),b(!1);let r=GH(n.name),i=new Set,o=[[`material`,r.material],[`brand`,r.brand],[`subtype`,r.variant]];for(let[n,r]of o)r&&(e[n]&&!L.has(n)||(t(n,r),i.add(n)));R(i)},H=(e,n)=>{L.has(e)&&R(t=>{let n=new Set(t);return n.delete(e),n}),t(e,n)},ce=t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.brand===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`brand`,t),S(!1),O(``)},children:t},t),le=t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.material===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`material`,t),E(!1),M(``)},children:t},t);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[!f&&(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}),` `,_(`inventory.loadingPresets`)]}):n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ps,{className:`w-3 h-3 text-bambu-green`}),` `,_(`inventory.cloudConnected`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ms,{className:`w-3 h-3`}),` `,_(`inventory.cloudNotConnected`)]})}),!f&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.slicerPreset`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:z,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.searchPresets`),value:i,onChange:e=>{a(e.target.value),b(!0)},onFocus:()=>{b(!0),a(``)}}),v&&(0,G.jsx)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:te.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noPresetsFound`)}):te.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 ${o?.code===e.code?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>se(e),children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate`,title:e.displayName,children:e.displayName}),(0,G.jsx)(p9,{source:e.source})]},`${e.code}::${e.name}`))})]}),o&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray`,children:[_(`inventory.selectedPreset`),`: `,(0,G.jsx)(`span`,{className:`font-mono text-bambu-green`,children:o.code})]}),g?.slicer_filament&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.slicer_filament})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.material`),` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:ee,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.selectMaterial`),value:T?j:e.material,onChange:e=>{M(e.target.value),E(!0)},onFocus:()=>{E(!0),M(``)}}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),T&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[ie.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):(0,G.jsxs)(G.Fragment,{children:[oe.top.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m9,{label:_(`inventory.suggestedOptions`)}),oe.top.map(le)]}),oe.rest.length>0&&(0,G.jsxs)(G.Fragment,{children:[oe.top.length>0&&(0,G.jsx)(m9,{label:_(`inventory.allOptions`)}),oe.rest.map(le)]})]}),j&&!ie.includes(j)&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`material`,j),E(!1),M(``)},children:_(`inventory.useCustomMaterial`,{material:j})})]})]}),g?.material&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.material})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.brand`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:B,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.searchBrand`),value:x?D:e.brand,onChange:e=>{O(e.target.value),S(!0)},onFocus:()=>{S(!0),O(``)}}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),x&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[ne.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):(0,G.jsxs)(G.Fragment,{children:[ae.top.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m9,{label:_(`inventory.suggestedOptions`)}),ae.top.map(ce)]}),ae.rest.length>0&&(0,G.jsxs)(G.Fragment,{children:[ae.top.length>0&&(0,G.jsx)(m9,{label:_(`inventory.allOptions`)}),ae.rest.map(ce)]})]}),D&&!ne.includes(D)&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`brand`,D),S(!1),O(``)},children:_(`inventory.useCustomBrand`,{brand:D})})]})]}),g?.brand&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.brand})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.subtype`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:V,children:[(0,G.jsx)(`input`,{type:`text`,value:C?k:e.subtype,onChange:e=>{A(e.target.value),w(!0)},onFocus:()=>{w(!0),A(``)},placeholder:`Basic, Matte, Silk...`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),C&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[re.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):re.map(t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.subtype===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`subtype`,t),w(!1),A(``)},children:t},t)),k&&!zH.some(e=>e.toLowerCase()===k.toLowerCase().trim())&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`subtype`,k),w(!1),A(``)},children:_(`inventory.useCustomBrand`,{brand:k})})]})]}),g?.subtype&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.subtype})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:_(`inventory.labelWeight`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`number`,className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:N,min:0,onFocus:()=>I(!0),onChange:e=>P(e.target.value),onBlur:()=>{I(!1);let n=N.trim(),r=Number(n);if(!n||!Number.isFinite(r)||r<0){P(String(e.label_weight));return}let i=Math.round(r);t(`label_weight`,i),P(String(i))}}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]})]}),f&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:_(`inventory.quantity`)}),(0,G.jsx)(`input`,{type:`number`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:m,min:1,max:100,onChange:e=>{h(Math.max(1,Math.min(100,parseInt(e.target.value)||1)))}})]})]})}function d1e(e){let t=e.split(/[\s,]+/).map(e=>e.trim().replace(/^#/,``)).filter(Boolean),n=[],r=[];for(let e of t)(e.length===6||e.length===8)&&/^[0-9a-fA-F]+$/.test(e)?n.push(e.toLowerCase()):r.push(e);return{value:n.join(`,`),invalid:r}}function f1e({formData:e,updateField:t,recentColors:n,onColorUsed:r,catalogColors:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(``),u=(e.rgba.replace(`#`,``)+`FF`).substring(0,8).toUpperCase(),d=u.substring(0,6),f=u.substring(6,8)===`00`,[p,m]=(0,y.useState)(f?u:d);(0,y.useEffect)(()=>{m(f?u:d)},[d,u,f]);let h=e=>u===(e.replace(`#`,``)+`FF`).substring(0,8).toUpperCase(),g=e=>Mf(e),_=(e,n,i,a)=>{let o=e.replace(`#`,``).toUpperCase();if(t(`rgba`,o.length===8?o:o+`FF`),t(`color_name`,n),i!==void 0){let e=i??``;w(e),E([]),D.current=e,t(`extra_colors`,e)}a!==void 0&&t(`effect_type`,a??``),r({name:n,hex:e})},v=(0,y.useMemo)(()=>{if(i.length===0)return[];let t=e.brand?.trim(),n=e.material?.toLowerCase().trim(),r=e.subtype?.toLowerCase().trim();if(!t&&!n)return[];let a=t?t.toLowerCase().split(/[\s\-_]+/).filter(e=>e.length>=2):[],o=e=>{if(a.length===0)return!0;let t=e.toLowerCase();return a.some(e=>t.includes(e))};if(t&&!n){let e=i.filter(e=>o(e.manufacturer));if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}))}let s=n&&r?`${n} ${r}`:``;if(s){let e=i.filter(e=>o(e.manufacturer)&&e.material?.toLowerCase()===s);if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}));let t=s.replace(/\+$/,``);if(t!==s){let e=i.filter(e=>o(e.manufacturer)&&e.material?.toLowerCase()===t);if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0}))}}if(n){let e=i.filter(e=>o(e.manufacturer)&&(!e.material||e.material.toLowerCase().startsWith(n)));if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}))}return[]},[i,e.brand,e.material,e.subtype]),b=(0,y.useMemo)(()=>{if(!c)return v;if(v.length===0)return[];let e=c.toLowerCase();return v.filter(t=>t.name.toLowerCase().includes(e)||(t.manufacturer?.toLowerCase().includes(e)??!1)||(t.material?.toLowerCase().includes(e)??!1))},[c,v]),x=v.length>0,S=(0,y.useMemo)(()=>c?VH.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())):o?VH:BH,[c,o]),[C,w]=(0,y.useState)(e.extra_colors),[T,E]=(0,y.useState)([]),D=(0,y.useRef)(e.extra_colors);(0,y.useEffect)(()=>{e.extra_colors!==D.current&&(w(e.extra_colors),E([]),D.current=e.extra_colors)},[e.extra_colors]);let O=(0,y.useMemo)(()=>xH({rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`bar`}),[e.rgba,e.extra_colors,e.effect_type,e.subtype]),k=e=>{if(w(e),!e.trim()){E([]),D.current=``,t(`extra_colors`,``);return}let{value:n,invalid:r}=d1e(e);E(r),D.current=n,t(`extra_colors`,n)};return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`div`,{className:`h-10 rounded-lg border border-bambu-dark-tertiary`,style:O,"data-testid":`color-preview-banner`}),n.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray shrink-0`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:a(`inventory.recentColors`)})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.name},e.hex))})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.searchColors`),value:c,onChange:e=>l(e.target.value)})]}),x?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:c?a(`inventory.searchResults`):`${e.brand}${e.material?` ${e.material}`:``}`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[b.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name,e.extra_colors,e.effect_type),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:z-20 relative group ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.manufacturer&&e.material?`${e.name} (${e.manufacturer} — ${e.material})`:e.manufacturer?`${e.name} (${e.manufacturer})`:e.name,children:(0,G.jsx)(`span`,{className:`absolute -bottom-7 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-xs whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-20 shadow-lg text-white`,children:e.manufacturer&&e.material?`${e.name} (${e.manufacturer} — ${e.material})`:e.manufacturer?`${e.name} (${e.manufacturer})`:e.name})},`${e.hex}-${e.name}-${e.manufacturer??``}`)),b.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray py-1`,children:a(`inventory.noColorsFound`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:a(c?`inventory.searchResults`:o?`inventory.allColors`:`inventory.commonColors`)}),!c&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>s(!o),className:`flex items-center gap-1 hover:text-white transition-colors`,children:o?(0,G.jsxs)(G.Fragment,{children:[a(`inventory.showLess`),` `,(0,G.jsx)(gs,{className:`w-3 h-3`})]}):(0,G.jsxs)(G.Fragment,{children:[a(`inventory.showAll`),` `,(0,G.jsx)(ps,{className:`w-3 h-3`})]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[S.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:z-20 relative group ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.name,children:(0,G.jsx)(`span`,{className:`absolute -bottom-7 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-xs whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-20 shadow-lg text-white`,children:e.name})},e.hex)),S.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray py-1`,children:a(`inventory.noColorsFound`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.colorName`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.colorNamePlaceholder`),value:e.color_name,onChange:e=>t(`color_name`,e.target.value)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.hexColor`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray`,children:`#`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-7 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono uppercase focus:outline-none focus:border-bambu-green`,placeholder:`RRGGBB`,value:p.toUpperCase(),onChange:e=>{let n=e.target.value.replace(`#`,``).replace(/[^0-9A-Fa-f]/g,``).toUpperCase(),r=n.length>8?n.substring(0,8):n;m(r),r.length===6?t(`rgba`,r+`FF`):r.length===8&&t(`rgba`,r)},onBlur:()=>{if(p.length===7){let e=p+`0`;m(e),t(`rgba`,e)}else if(p.length>0&&p.length<6){let e=p.padEnd(6,`0`);m(e),t(`rgba`,e+`FF`)}}})]}),(0,G.jsx)(`input`,{type:`color`,className:`w-11 h-[38px] rounded-lg cursor-pointer border border-bambu-dark-tertiary shrink-0 bg-transparent`,value:`#${d}`,onChange:e=>{t(`rgba`,e.target.value.replace(`#`,``).toUpperCase()+`FF`)},title:a(`inventory.pickColor`)})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.extraColorsLabel`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.extraColorsPlaceholder`),value:C,onChange:e=>k(e.target.value),"data-testid":`extra-colors-input`}),T.length>0&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:a(`inventory.extraColorsInvalid`,{tokens:T.join(`, `)})}),!T.length&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:a(`inventory.extraColorsHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1 flex items-center gap-1.5`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),a(`inventory.colorEffectLabel`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-stretch`,children:[(0,G.jsx)(`select`,{className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:e.effect_type,onChange:e=>t(`effect_type`,e.target.value),"data-testid":`effect-type-select`,children:vH.map(e=>(0,G.jsx)(`option`,{value:e.value,children:a(e.labelKey)},e.value||`none`))}),(0,G.jsx)(C8,{rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`preview`,className:`w-10 h-10`,shape:`square`})]})]})]})]})}function p1e({catalog:e,value:t,onChange:n,catalogId:r,onCatalogIdChange:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(``),u=(0,y.useRef)(null),d=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,y.useEffect)(()=>{if(e.length===0)return;let n=e.filter(e=>e.weight===t);if(r){let n=e.find(e=>e.id===r);if(n&&n.weight===t)return}n.length===1?i(n[0].id):n.length===0&&r!==null&&i(null)},[t,e,r,i]);let f=(0,y.useMemo)(()=>{if(!c)return e;let t=c.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.weight.toString().includes(t))},[e,c]),p=(0,y.useMemo)(()=>e.filter(e=>e.weight===t),[e,t]),m=(0,y.useMemo)(()=>{if(o)return c;if(r){let t=e.find(e=>e.id===r);if(t)return t.name}return p.length>0?p[0].name:``},[o,c,r,e,p]);return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Jl,{className:`w-3.5 h-3.5 text-bambu-gray`}),a(`inventory.coreWeight`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 relative`,ref:u,children:[(0,G.jsx)(`input`,{ref:d,type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.searchSpoolWeight`),value:m,onFocus:()=>{s(!0),l(``)},onChange:e=>{l(e.target.value),s(!0)}}),o&&(0,G.jsx)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:f.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:a(`inventory.noResults`)}):f.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex justify-between items-center ${(r?e.id===r:e.weight===t)?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{i(e.id),n(e.weight),s(!1),l(``)},children:[(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsxs)(`span`,{className:`font-mono text-xs text-bambu-gray ml-2 shrink-0`,children:[e.weight,`g`]})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(`input`,{type:`number`,className:`w-16 px-2 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm text-center font-mono focus:outline-none focus:border-bambu-green`,value:t,min:0,max:2e3,onChange:e=>{let t=parseInt(e.target.value);!isNaN(t)&&t>=0&&n(t)}}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-sm`,children:`g`})]})]})]})}function m1e({formData:e,updateField:t,spoolCatalog:n,currencySymbol:r,availableCategories:i,availableLocations:a=[],onCreateLocation:o,globalLowStockThreshold:s,spoolmanMode:c=!1}){let{t:l}=U(),{showToast:u}=qd(),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(``),[S,C]=(0,y.useState)(!1),w=Math.max(0,e.label_weight-e.weight_used),T=e.core_weight+w;return(0,y.useEffect)(()=>{p||f(String(T))},[p,T]),(0,y.useEffect)(()=>{_||g(String(w))},[_,w]),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4`,children:[(0,G.jsx)(`div`,{className:`sm:col-span-2`,children:c?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray px-1`,children:l(`inventory.spoolWeightManagedBySpoolman`)}):(0,G.jsx)(p1e,{catalog:n,value:e.core_weight,onChange:e=>t(`core_weight`,e),catalogId:e.core_weight_catalog_id,onCatalogIdChange:e=>t(`core_weight_catalog_id`,e)})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.currentWeight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:`number`,value:h,min:0,max:e.label_weight,onFocus:()=>v(!0),onChange:e=>{g(e.target.value)},onBlur:()=>{v(!1);let n=h.trim(),r=Number(n);if(!n||!Number.isFinite(r)||r<0||r>e.label_weight){g(String(w));return}let i=Math.round(r);t(`weight_used`,Math.max(0,e.label_weight-i)),g(String(i))},className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:[`/ `,e.label_weight,`g`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.measuredWeight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:`number`,value:d,min:0,onFocus:()=>m(!0),onChange:e=>{f(e.target.value)},onBlur:()=>{m(!1);let n=d.trim(),r=Number(n),i=e.core_weight,a=e.core_weight+e.label_weight;if(!n||!Number.isFinite(r)||ra){u(l(`inventory.measuredWeightError`,{min:i,max:a}),`error`),f(String(T));return}let o=Math.round(r),s=Math.max(0,Math.min(e.label_weight,o-e.core_weight));t(`weight_used`,Math.max(0,e.label_weight-s)),f(String(o))},className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:[`/ `,e.core_weight+e.label_weight,`g`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.costPerKg`,`Cost per kg`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:r}),(0,G.jsx)(`input`,{type:`number`,value:e.cost_per_kg??``,min:0,step:.01,placeholder:`0.00`,onChange:e=>{t(`cost_per_kg`,e.target.value===``?null:parseFloat(e.target.value))},style:{paddingLeft:`${Math.max(2,r.length*.6+1)}rem`},className:`w-full py-2 pr-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-category`,children:l(`inventory.category`)}),(0,G.jsx)(`input`,{id:`spool-category`,type:`text`,list:`spool-category-options`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:l(`inventory.categoryPlaceholder`),value:e.category,maxLength:50,onChange:e=>t(`category`,e.target.value)}),i.length>0&&(0,G.jsx)(`datalist`,{id:`spool-category-options`,children:i.map(e=>(0,G.jsx)(`option`,{value:e},e))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-low-stock-threshold`,children:l(`inventory.lowStockThresholdOverride`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{id:`spool-low-stock-threshold`,type:`number`,className:`w-full px-3 py-2 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:String(s),value:e.low_stock_threshold_pct??``,min:1,max:99,step:1,onChange:e=>{let n=e.target.value;if(n===``){t(`low_stock_threshold_pct`,null);return}let r=Number(n);Number.isFinite(r)&&t(`low_stock_threshold_pct`,Math.min(99,Math.max(1,Math.round(r))))}}),(0,G.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-xs text-bambu-gray pointer-events-none`,children:`%`})]})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:l(`inventory.lowStockThresholdOverrideHelp`,{global:s})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-storage-location`,children:l(`inventory.storageLocation`)}),(0,G.jsxs)(`select`,{id:`spool-storage-location`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:e.location_id??``,onChange:e=>{let n=e.target.value;if(!n){t(`location_id`,null);return}t(`location_id`,Number(n))},children:[(0,G.jsx)(`option`,{value:``,children:l(`inventory.storageLocationNone`)}),a.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),o&&(0,G.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,maxLength:255,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:l(`locations.createPlaceholder`),value:b,onChange:e=>x(e.target.value)}),(0,G.jsx)(`button`,{type:`button`,className:`px-3 py-2 text-sm rounded-lg bg-bambu-dark-tertiary text-white hover:bg-bambu-gray-dark disabled:opacity-50`,disabled:!b.trim()||S,onClick:async()=>{let e=b.trim();if(!(!e||!o)){C(!0);try{let n=await o(e);n&&(t(`location_id`,n.id),x(``))}finally{C(!1)}}},children:l(`locations.addShort`)})]})]}),(0,G.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.note`)}),(0,G.jsx)(`textarea`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green resize-none min-h-[80px]`,placeholder:l(`inventory.notePlaceholder`),value:e.note,onChange:e=>t(`note`,e.target.value)})]})]})}function h1e({filaments:e,isLoading:t,selectedId:n,onSelect:r}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(``),l=(0,y.useRef)(null),u=(0,y.useRef)(null),d=(0,y.useMemo)(()=>e.find(e=>e.id===n)??null,[e,n]);(0,y.useEffect)(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&(o(!1),c(``))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let f=(0,y.useMemo)(()=>{let t=s.toLowerCase().trim();return t?e.filter(e=>e.name.toLowerCase().includes(t)||(e.material?.toLowerCase().includes(t)??!1)||(e.vendor?.name.toLowerCase().includes(t)??!1)||(e.color_name?.toLowerCase().includes(t)??!1)):e},[e,s]);(0,y.useEffect)(()=>{a&&u.current?.focus()},[a]);let p=()=>{o(!0),c(``)},m=e=>{r(e),o(!1),c(``)};return(0,G.jsxs)(`div`,{ref:l,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:i(`inventory.pickFromSpoolmanCatalog`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:p,className:`w-full flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-left focus:outline-none focus:border-bambu-green hover:border-bambu-gray transition-colors`,children:[t?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin shrink-0`}):d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full shrink-0 border border-white/20`,style:Mf(d.color_hex),"aria-label":i(`inventory.spoolmanFilamentColorSwatch`)}),(0,G.jsxs)(`span`,{className:`text-white text-sm truncate flex-1`,children:[d.vendor?.name?`${d.vendor.name} — `:``,d.name]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-sm flex-1`,children:i(`inventory.spoolmanFilamentCatalog`)})]}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0 ml-auto`})]}),a&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl`,children:[(0,G.jsx)(`div`,{className:`p-2 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`input`,{ref:u,type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:i(`inventory.pickFromSpoolmanCatalog`),className:`w-full px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`ul`,{className:`max-h-56 overflow-y-auto py-1`,children:t?(0,G.jsxs)(`li`,{className:`flex items-center justify-center gap-2 py-4 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:i(`common.loading`,`Loading…`)})]}):f.length===0?(0,G.jsx)(`li`,{className:`py-4 text-center text-bambu-gray text-sm`,children:i(`inventory.noSpoolmanFilaments`)}):f.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>m(e),className:`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-bambu-dark-tertiary transition-colors ${e.id===n?`bg-bambu-dark-tertiary`:``}`,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full shrink-0 border border-white/20`,style:Mf(e.color_hex),"aria-label":i(`inventory.spoolmanFilamentColorSwatch`)}),(0,G.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`span`,{className:`block text-white text-sm truncate`,children:[e.vendor?.name?`${e.vendor.name} — `:``,e.name]}),(0,G.jsxs)(`span`,{className:`block text-bambu-gray text-xs truncate`,children:[[e.material,e.color_name].filter(Boolean).join(` · `),e.weight?` · ${e.weight}g`:``]})]})]})},e.id))})]})]})}function h9(e){let t=(e??``).trim().toUpperCase().slice(0,2);return t===`HH`||t===`HS`?t:null}function g9(e){return e?e===`HH`?`HF`:`S`:null}function g1e(e,t){let n=e.nozzles??[];return h9(n[(e.printer.nozzle_count??1)>1&&t>0?t:0]?.nozzle_type)??h9(n[0]?.nozzle_type)}function _1e(e){let t=new Set;for(let n of e.nozzles??[]){let e=(n?.nozzle_diameter??``).trim();e&&parseFloat(e)>0&&t.add(e)}for(let n of e.calibrations){let e=(n.nozzle_diameter??``).trim();e&&parseFloat(e)>0&&t.add(e)}return Array.from(t).sort((e,t)=>parseFloat(e)-parseFloat(t))}function v1e(e,t){return(e.printer.nozzle_count??1)>1?[{extruder:1,label:t.left},{extruder:0,label:t.right}]:[{extruder:0,label:t.single}]}function y1e({formData:e,printersWithCalibrations:t,filamentOptions:n,modelPresets:r,setModelPresets:i,selectedProfiles:a,setSelectedProfiles:o,selectedGroupId:s,setSelectedGroupId:c,printerModels:l,isLoading:u=!1}){let{t:d}=U(),f=(0,y.useMemo)(()=>{let e=new Map,n=[];for(let r of t){let t=(r.printer.model||``).trim();if(!t){n.push(r);continue}let i=e.get(t);i?i.push(r):e.set(t,[r])}return[...Array.from(e.entries()).map(([e,t])=>({id:`m:${e}`,model:e,printers:t,diameters:Array.from(new Set([...UH,...t.flatMap(_1e)])).sort((e,t)=>parseFloat(e)-parseFloat(t))})).sort((e,t)=>e.model.localeCompare(t.model)),...n.map(e=>({id:`p:${e.printer.id}`,model:``,printers:[e],diameters:Array.from(new Set([...UH,..._1e(e)])).sort((e,t)=>parseFloat(e)-parseFloat(t))}))]},[t]),p=f.find(e=>e.id===s)??f[0],m=(0,y.useMemo)(()=>{let e=new Map;return(t,r)=>{if(!t)return n;let i=e.get(t);if(i||(i=n.filter(e=>{let n=IH(e.name,l??{});return!n||OH(n,t)}),e.set(t,i)),r&&!i.some(e=>e.code===r)){let e=n.find(e=>e.code===r);if(e)return[e,...i]}return i}},[n,l]),h=[e.brand,e.material,e.subtype].map(e=>e.trim()).filter(Boolean).join(` `),g=/^[0-9A-Fa-f]{6,8}$/.test(e.rgba)?`#${e.rgba.slice(0,6)}`:`var(--bambu-gray, #808080)`,_=e=>v1e(e,{left:d(`inventory.leftNozzle`),right:d(`inventory.rightNozzle`),single:d(`inventory.nozzle`)}),v=t=>t.printer.connected?t.calibrations.filter(t=>rU(t,e)):[],b=e=>{let t=0;for(let n of e.printers){let r=v(n);for(let i of _(n))for(let o of e.diameters)r.some(e=>(e.extruder_id??0)===i.extruder&&((e.nozzle_diameter??``).trim()||`0.4`)===o)&&(a.get(tU(n.printer.id,i.extruder,o))||t++)}return t},x=(e,t,n)=>{i(r=>{let i=new Map(r),a=nU(e,t);return n?i.set(a,{code:n.code,name:n.name}):i.delete(a),i})},S=(e,t,n,r)=>{o(i=>{let a=new Map(i),o=tU(e,t,n);return r?a.set(o,r):a.delete(o),a})},C=()=>{let t=n.find(t=>t.code===e.slicer_filament);if(!t)return;let r=t.name.split(`@`)[0].trim().toLowerCase();r&&i(e=>{let t=new Map(e);for(let e of f){if(!e.model)continue;let n=m(e.model,void 0).filter(e=>e.name.toLowerCase().startsWith(r)&&IH(e.name,l??{})!==null);if(n.length!==0)for(let r of e.diameters){let i=n.find(e=>RegExp(`\\b${r.replace(`.`,`\\.`)}\\s*nozzle\\b`,`i`).test(e.name)),a=n.find(e=>!/\b[\d.]+\s*nozzle\b/i.test(e.name)),o=i??a;o&&t.set(nU(e.model,r),{code:o.code,name:o.name})}}return t})};if(t.length===0)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsxs)(`p`,{className:`text-bambu-gray flex items-center justify-center gap-2`,children:[u&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),d(u?`common.loading`:`inventory.noPrintersConfigured`)]})});let w=(e,t,n)=>{let i=nU(e,t),a=r.get(i),o=m(e,a?.code);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(c1e,{ariaLabel:`${e} ${t}mm ${d(`inventory.filamentPreset`)}`,value:a?.code??``,options:o,inheritLabel:n,disabled:!e,onChange:n=>x(e,t,n)})}),(0,G.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide px-2 py-1 rounded-full shrink-0 ${a?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:d(a?`inventory.presetOverride`:`inventory.presetInherited`)})]})};return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(h||e.color_name)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`span`,{className:`w-5 h-5 rounded-full border border-white/15 shrink-0`,style:{background:g},"aria-hidden":`true`}),h&&(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:h}),e.color_name&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate`,children:e.color_name})]}),(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-4`,children:[(0,G.jsx)(`div`,{role:`tablist`,"aria-label":d(`inventory.printersTab`),"aria-orientation":`vertical`,className:`md:w-52 md:shrink-0 md:self-start md:sticky md:top-0 flex md:flex-col gap-1.5 overflow-x-auto md:overflow-x-visible`,children:f.map(e=>{let t=e===p,n=b(e);return(0,G.jsxs)(`button`,{type:`button`,role:`tab`,onClick:()=>c(e.id),"aria-selected":t,className:`flex items-center gap-2 px-3 py-2 rounded-lg border text-left transition-colors shrink-0 md:shrink ${t?`bg-bambu-green/10 border-bambu-green/40 text-white`:`bg-transparent border-transparent text-bambu-gray hover:bg-bambu-dark hover:text-white`}`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`text-sm font-semibold truncate`,children:e.model||d(`inventory.unknownModel`)}),(0,G.jsx)(`div`,{className:`text-[11px] text-bambu-gray`,children:e.printers.length===1?d(`inventory.onePrinter`):d(`inventory.nPrinters`,{n:e.printers.length})})]}),n>0?(0,G.jsx)(`span`,{className:`text-[10px] font-mono px-1.5 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray shrink-0`,children:n}):(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green shrink-0`})]},e.id)})}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:p&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h4`,{className:`text-base font-semibold text-white truncate`,children:p.model||d(`inventory.unknownModel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:p.printers.map(e=>e.printer.name).join(`, `)})]}),e.slicer_filament&&(0,G.jsxs)(`button`,{type:`button`,onClick:C,title:d(`inventory.autoMatchPresetsHint`),className:`flex items-center gap-1.5 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white hover:border-bambu-green transition-colors shrink-0`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),d(`inventory.autoMatchPresets`)]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-semibold text-bambu-gray uppercase tracking-wide`,children:d(`inventory.filamentPreset`)}),p.model?(0,G.jsx)(`div`,{className:`space-y-2`,children:p.diameters.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray w-14 shrink-0`,children:[e,`mm`]}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:w(p.model,e,d(`inventory.presetUseSpoolDefault`))})]},e))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:d(`inventory.presetNeedsModel`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-semibold text-bambu-gray uppercase tracking-wide`,children:d(`inventory.kProfilesPerPrinter`)}),e.material?p.printers.map(e=>{let t=v(e);return(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-white truncate`,children:e.printer.name}),(0,G.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide px-2 py-0.5 rounded-full shrink-0 ${e.printer.connected?`bg-green-500/20 text-green-500`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:e.printer.connected?d(`inventory.connected`):d(`inventory.offline`)})]}),e.printer.connected?t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-1`,children:d(`inventory.noKProfilesMatch`)}):(0,G.jsxs)(`div`,{className:`grid gap-x-3 gap-y-1.5 items-center`,style:{gridTemplateColumns:`3.5rem repeat(${_(e).length}, minmax(0, 1fr))`},children:[(0,G.jsx)(`span`,{}),_(e).map(e=>(0,G.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-bambu-gray`,children:e.label},e.extruder)),p.diameters.map(n=>(0,G.jsxs)(y.Fragment,{children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray`,children:[n,`mm`]}),_(e).map(r=>{let i=t.filter(e=>(e.extruder_id??0)===r.extruder&&((e.nozzle_diameter??``).trim()||`0.4`)===n),o=tU(e.printer.id,r.extruder,n),s=a.get(o);if(i.length===0)return(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/50 px-2 py-1.5`,title:d(`inventory.noKProfilesMatch`),children:`—`},o);let c=g1e(e,r.extruder),l=h9(s?.nozzle_id),u=!!(c&&l&&c!==l);return(0,G.jsxs)(`select`,{title:u?d(`inventory.kProfileFlowMismatch`,{profile:g9(l),fitted:g9(c)}):void 0,"aria-label":`${e.printer.name} ${r.label} ${n}mm`,value:s?String(s.cali_idx):``,onChange:t=>{let a=i.find(e=>String(e.cali_idx)===t.target.value)??null;S(e.printer.id,r.extruder,n,a)},className:`min-w-0 px-2 py-1.5 bg-bambu-dark-secondary border rounded-lg text-sm text-white focus:outline-none focus:border-bambu-green ${u?`border-amber-500/60`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:d(`inventory.kProfileNotSet`)}),i.map(e=>{let t=g9(h9(e.nozzle_id));return(0,G.jsx)(`option`,{value:e.cali_idx,children:`${t?`[${t}] `:``}${e.name||e.filament_id} K=${e.k_value.toFixed(3)}`},e.cali_idx)})]},o)})]},n))]}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-1`,children:d(`inventory.printerOffline`)})]},e.printer.id)}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:d(`inventory.selectMaterialFirst`)})]})]})})]})]})}function b1e(e){let t=rp(e);return t?t.toLocaleDateString(`en-GB`,{day:`2-digit`,month:`2-digit`,year:`2-digit`})+` `+t.toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`}):``}var x1e={completed:`text-bambu-green`,failed:`text-red-700 dark:text-red-400`,aborted:`text-yellow-700 dark:text-yellow-400`};function S1e({spoolId:e}){let{t}=U(),n=co(),{showToast:r}=qd(),{data:i,isLoading:a}=K({queryKey:[`spool-usage`,e],queryFn:()=>Z.getSpoolUsageHistory(e)}),o=q({mutationFn:()=>Z.clearSpoolUsageHistory(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`spool-usage`,e]}),r(t(`inventory.historyCleared`),`success`)}});return a?(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin text-bambu-green`})}):!i||i.length===0?(0,G.jsxs)(`div`,{className:`text-center py-4 text-bambu-gray text-sm`,children:[(0,G.jsx)(js,{className:`w-5 h-5 mx-auto mb-2 opacity-50`}),t(`inventory.noUsageHistory`)]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:t(`inventory.usageHistory`)}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>o.mutate(),disabled:o.isPending,className:`text-xs text-bambu-gray hover:text-red-700 dark:hover:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-3 h-3 mr-1`}),t(`inventory.clearHistory`)]})]}),(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1`,children:i.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded bg-bambu-dark/50 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:b1e(e.created_at)}),e.print_name&&(0,G.jsx)(`span`,{className:`text-white ml-2 truncate`,title:e.print_name,children:e.print_name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0 ml-2`,children:[(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[e.weight_used.toFixed(1),`g`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.percent_used,`%)`]}),(0,G.jsx)(`span`,{className:x1e[e.status]||`text-bambu-gray`,children:e.status})]})]},e.id))})]})}var C1e={tag_uid:null,tray_uuid:null,tag_type:null,data_origin:null};function w1e({isOpen:e,onClose:t,spool:n,mode:r,printersWithCalibrations:i=[],currencySymbol:a,onSpoolsCreated:o,spoolmanMode:s=!1,spoolsQueryKey:c=[`inventory-spools`]}){let{t:l}=U(),u=co(),{showToast:d}=qd(),f=()=>y6(u,c),p=r===`edit`,m=r===`copy`,[h,g]=(0,y.useState)(f9),[_,v]=(0,y.useState)({}),[b,x]=(0,y.useState)(`filament`),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(1),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)([]),[I,L]=(0,y.useState)(new Set),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)([]),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)([]),[ie,ae]=(0,y.useState)([]),[oe,se]=(0,y.useState)([]),[H,ce]=(0,y.useState)([]),[le,ue]=(0,y.useState)([]),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(new Map),[he,ge]=(0,y.useState)(new Map),[_e,ve]=(0,y.useState)(``),ye=i.length>0?i:le,be=pe.size+he.size,{data:xe=[],isLoading:Se,error:Ce}=K({queryKey:[`spoolman-inventory-filaments`],queryFn:()=>Z.getSpoolmanInventoryFilaments(),enabled:s&&e,staleTime:6e4,retry:!1});(0,y.useEffect)(()=>{ce(ZH())},[]),(0,y.useEffect)(()=>{let t=!1;return e&&((async()=>{N(!0);try{let[e,n]=await Promise.allSettled([(async()=>(await Z.getCloudStatus()).is_authenticated?{connected:!0,presets:await Z.getFilamentPresets()}:{connected:!1,presets:[]})(),(async()=>(await Z.orcaCloudStatus()).connected?{connected:!0,presets:(await Z.orcaCloudListProfiles()).filament}:{connected:!1,presets:[]})()]);if(t)return;let r=e.status===`fulfilled`&&e.value.connected,i=n.status===`fulfilled`&&n.value.connected,a=e.status===`fulfilled`?e.value.presets:[],o=n.status===`fulfilled`?n.value.presets:[];j(r||i),F([...a,...o]),L(new Set(o.map(e=>e.setting_id)))}catch(e){if(t)return;console.error(`Failed to fetch cloud presets:`,e),j(!1)}finally{t||N(!1)}})(),s||Z.getSpoolCatalog().then(V).catch(console.error),Z.getColorCatalog().then(se).catch(console.error),Z.getLocalPresets().then(e=>re(e.filament)).catch(console.error),Z.getBuiltinFilaments().then(ae).catch(console.error),Z.getLocations().then(e=>te(e.map(e=>({id:e.id,name:e.name})))).catch(console.error),i.length===0&&(async()=>{fe(!0);try{let e=await Z.getPrinters(),n=await Promise.all(e.map(e=>Z.getPrinterStatus(e.id).catch(()=>null))),r=await Promise.all(e.map(async(e,t)=>{let r=n[t],i=r?.connected??!1,a=[];return i&&(a=await WH(e.id,r)),{printer:{...e,connected:i},calibrations:a,nozzles:r?.nozzles}}));t||ue(r)}catch(e){console.error(`Failed to fetch printer calibrations:`,e)}finally{t||fe(!1)}})()),()=>{t=!0}},[e,i.length]);let we=(0,y.useMemo)(()=>qH(P,new Set,ne,ie,I),[P,ne,ie,I]),Te=(0,y.useMemo)(()=>{let e=KH(P,ne),t=oe.map(e=>e.manufacturer?.trim()).filter(e=>!!e),n=new Set([...e,...t]);return Array.from(n).sort((e,t)=>e.localeCompare(t))},[P,ne,oe]),Ee=(0,y.useMemo)(()=>{let e=oe.map(e=>e.material?.trim()).filter(e=>!!e),t=new Set([...LH,...e]);return Array.from(t).sort((e,t)=>e.localeCompare(t))},[oe]),De=(0,y.useMemo)(()=>{let e=[];for(let t of oe){let n=t.manufacturer?.trim(),r=t.material?.trim();n&&r&&e.push({brand:n,material:r})}for(let t of P){let n=GH(t.name);n.brand&&n.material&&e.push({brand:n.brand,material:n.material})}for(let t of ne){let n=GH(t.name),r=t.filament_vendor?.trim()||n.brand,i=n.material;r&&i&&e.push({brand:r,material:i})}return e},[P,oe,ne]),Oe=(0,y.useMemo)(()=>{let e=new Map;for(let t of De){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(n)||e.set(n,new Set),e.get(n).add(r)}return e},[De]),ke=(0,y.useMemo)(()=>{let e=new Map;for(let t of De){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(r)||e.set(r,new Set),e.get(r).add(n)}return e},[De]),Ae=(0,y.useMemo)(()=>YH(Te,h.brand),[Te,h.brand]),je=(0,y.useMemo)(()=>YH(Ee,h.material),[Ee,h.material]),Me=(0,y.useMemo)(()=>XH(Ae,h.material,ke),[Ae,h.material,ke]),Ne=(0,y.useMemo)(()=>XH(je,h.brand,Oe),[je,h.brand,Oe]),Pe=(0,y.useMemo)(()=>JH(h.slicer_filament,we),[h.slicer_filament,we]);(0,y.useEffect)(()=>{if(e){if(n){let e=n.rgba&&/^[0-9A-Fa-f]{8}$/.test(n.rgba)?n.rgba:`808080FF`;if(g({material:n.material||``,subtype:n.subtype||``,brand:n.brand||``,color_name:n.color_name_is_synthesized?``:n.color_name||``,rgba:e,extra_colors:n.extra_colors||``,effect_type:n.effect_type||``,label_weight:n.label_weight||1e3,core_weight:n.core_weight||250,core_weight_catalog_id:n.core_weight_catalog_id??null,weight_used:m?0:n.weight_used||0,slicer_filament:n.slicer_filament||``,note:n.note||``,cost_per_kg:n.cost_per_kg??null,category:n.category||``,low_stock_threshold_pct:n.low_stock_threshold_pct??null,location_id:n.location_id??null,spoolman_filament_id:null}),z(n.slicer_filament_name||n.slicer_filament||``),n.k_profiles&&n.k_profiles.length>0){let e=new Map;for(let t of n.k_profiles){if(t.cali_idx===null||t.cali_idx===void 0)continue;let n=(t.nozzle_diameter||``).trim()||`0.4`,r=t.extruder??0;e.set(tU(t.printer_id,r,n),{cali_idx:t.cali_idx,filament_id:``,setting_id:t.setting_id||``,name:t.name||``,k_value:t.k_value,n_coef:0,extruder_id:r,nozzle_diameter:n,nozzle_id:t.nozzle_type||``})}me(e)}else me(new Map)}else g(f9),z(``),me(new Map);D(!1),k(1),v({}),x(`filament`),ve(``),ge(new Map),C(!1),T(!1)}},[e,n,r,m]),(0,y.useEffect)(()=>{if(!e||!n)return;let t=!1;return(s?Z.getSpoolmanFilamentPresets:Z.getSpoolFilamentPresets)(n.id).then(e=>{if(t)return;let n=new Map;for(let t of e)n.set(nU(t.printer_model,t.nozzle_diameter||``),{code:t.slicer_filament||``,name:t.slicer_filament_name||``});ge(n)}).catch(e=>{t||(console.error(`Failed to load filament preset overrides:`,e),d(l(`inventory.filamentPresetsLoadFailed`),`warning`))}),()=>{t=!0}},[e,n?.id,s]),(0,y.useEffect)(()=>{if(!e||!n||w||h.location_id!=null)return;let t=n.storage_location?.trim();if(!t||ee.length===0)return;let r=ee.find(e=>e.name.toLowerCase()===t.toLowerCase());r&&g(e=>e.location_id===r.id?e:{...e,location_id:r.id})},[e,n,ee,h.location_id,w]);let Fe=(e,t)=>{let n=a1e.has(e);s&&n&&h.spoolman_filament_id!==null&&d(l(`inventory.spoolmanFilamentUnlinked`),`info`),g(r=>({...r,[e]:t,...s&&n&&r.spoolman_filament_id!==null?{spoolman_filament_id:null}:{}})),e===`weight_used`&&C(!0),e===`location_id`&&T(!0),_[e]&&v(t=>({...t,[e]:void 0}))},Ie=e=>{let t=e.material||``,n=e.name||``,r=t&&n.startsWith(t)?n.slice(t.length).trim():n,i=(e.color_hex??``).replace(`#`,``).toUpperCase(),a=/^[0-9A-F]{6}(?:[0-9A-F]{2})?$/.test(i)?i:`808080`,o=a.length===8?a:`${a}FF`;g(n=>({...n,spoolman_filament_id:e.id,material:t,subtype:r,brand:e.vendor?.name||``,rgba:o,color_name:e.color_name||``,label_weight:e.weight??n.label_weight})),d(l(`inventory.spoolmanFilamentSelected`),`success`)},Le=e=>{ce(t=>QH(e,t))},Re=q({mutationFn:e=>s?Z.createSpoolmanInventorySpool(e):Z.createSpool(e),onSuccess:async e=>{e?.id&&!await Ze(e.id)||(await f(),o&&o([e]),d(l(`inventory.spoolCreated`),`success`),t())},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),ze=q({mutationFn:({data:e,qty:t})=>s?Z.bulkCreateSpoolmanInventorySpools(e,t):Z.bulkCreateSpools(e,t),onSuccess:async e=>{let n=s&&`created`in e?e:null,r=n?n.created:e;if(pe.size>0||he.size>0)for(let e of r)await Ze(e.id);await f(),o&&o(r),n&&n.failed_count>0?d(l(`inventory.spoolsPartiallyCreated`,{created:r.length,total:n.requested_count}),`warning`):d(l(`inventory.spoolsCreated`,{count:r.length}),`success`),t()},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),Be=q({mutationFn:e=>s?Z.updateSpoolmanInventorySpool(n.id,e):Z.updateSpool(n.id,e),onSuccess:async()=>{n?.id&&!await Ze(n.id)||(await f(),d(l(`inventory.spoolUpdated`),`success`),t())},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),Ve=q({mutationFn:()=>s?Z.updateSpoolmanInventorySpool(n.id,C1e):Z.updateSpool(n.id,C1e),onSuccess:async()=>{await f(),d(l(`inventory.rfidCleared`,`RFID tag cleared`),`success`),t()},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.tagClearFailed`),`error`)}}),{data:He}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:e&&p&&!s}),{data:Ue}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e&&p&&s}),We=(()=>{if(n)return s?Ue?.find(e=>e.spoolman_spool_id===n.id):He?.find(e=>e.spool_id===n.id)})(),{data:Ge}=K({queryKey:[`inventory-spools`],queryFn:()=>Z.getSpools(!0),enabled:e}),{data:Ke}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:e}),{data:qe}=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,enabled:e,staleTime:1/0}),Je=(()=>{let e=new Set;for(let t of Ge??[]){let n=t.category?.trim();n&&e.add(n)}return Array.from(e).sort((e,t)=>e.localeCompare(t))})(),Ye=Ke?.low_stock_threshold??20,Xe=q({mutationFn:async()=>{if(!We)throw Error(`No assignment`);if(s){if(!n)throw Error(`No spool`);await Z.unassignSpoolmanSlot(n.id);return}await Z.unassignSpool(We.printer_id,We.ams_id,We.tray_id)},onSuccess:async()=>{s?(await u.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),await u.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})):await u.invalidateQueries({queryKey:[`spool-assignments`]}),d(l(`inventory.unassignSuccess`,`Spool unassigned`),`success`),t()},onError:e=>{d(e.message,`error`)}}),Ze=async e=>{let t=s?Z.saveSpoolmanKProfiles:Z.saveSpoolKProfiles,n=s?Z.saveSpoolmanFilamentPresets:Z.saveSpoolFilamentPresets,r=[];for(let[e,t]of pe){let[n,i,a]=e.split(`:`);r.push({printer_id:parseInt(n),extruder:parseInt(i),nozzle_diameter:a||`0.4`,nozzle_type:h9(t.nozzle_id),k_value:t.k_value,name:t.name||null,cali_idx:t.cali_idx,setting_id:t.setting_id||null})}let i=[];for(let[e,t]of he){let{model:n,diameter:r}=bke(e);n&&i.push({printer_model:n,nozzle_diameter:r,slicer_filament:t.code||null,slicer_filament_name:t.name||null})}try{await t(e,r)}catch(e){return console.error(`Failed to save K-profiles:`,e),d(l(`inventory.kProfileSaveFailed`),`warning`),!1}try{await n(e,i)}catch(e){return console.error(`Failed to save filament preset overrides:`,e),d(l(`inventory.filamentPresetSaveFailed`),`warning`),!1}return!0};if((0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let Qe=()=>{let e=o1e(h,E,s,r);if(!e.isValid){v(e.errors),(e.errors.slicer_filament||e.errors.material||e.errors.brand||e.errors.subtype)&&x(`filament`);return}let t=Pe?.displayName||R||null,n={material:h.material||null,subtype:h.subtype||null,brand:h.brand||null,color_name:h.color_name||null,rgba:h.rgba||null,extra_colors:h.extra_colors||null,effect_type:h.effect_type||null,label_weight:h.label_weight,...s?{}:{core_weight:h.core_weight,core_weight_catalog_id:h.core_weight_catalog_id},slicer_filament:h.slicer_filament||null,slicer_filament_name:t,nozzle_temp_min:null,nozzle_temp_max:null,note:h.note||null,cost_per_kg:h.cost_per_kg,category:h.category.trim()||null,low_stock_threshold_pct:h.low_stock_threshold_pct,...s?{spoolman_filament_id:h.spoolman_filament_id}:{}};(!p||S)&&(n.weight_used=h.weight_used),(!p||w)&&(n.location_id=h.location_id),p?Be.mutate(n):O>1?ze.mutate({data:n,qty:O}):Re.mutate(n)},$e=Re.isPending||ze.isPending||Be.isPending||Ve.isPending||Xe.isPending;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-5xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-baseline gap-2`,children:[l(p?`inventory.editSpool`:m?`inventory.copySpool`:`inventory.addSpool`),p&&n&&(0,G.jsxs)(`span`,{className:`text-sm font-mono text-bambu-gray`,children:[`#`,n.id]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),r===`create`&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:l(`inventory.quickAdd`)})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{D(!E),E||x(`filament`)},className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${E?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform ${E?`translate-x-4`:`translate-x-0.5`}`})})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`button`,{onClick:()=>x(`filament`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`filament`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Go,{className:`w-4 h-4`}),l(`inventory.filamentInfoTab`)]}),!E&&(0,G.jsxs)(`button`,{onClick:()=>x(`appearance`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`appearance`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(wl,{className:`w-4 h-4`}),l(`inventory.colorAndCostTab`)]}),!E&&(0,G.jsxs)(`button`,{onClick:()=>x(`printers`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`printers`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(id,{className:`w-4 h-4`}),l(`inventory.printersTab`),be>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full bg-bambu-green/20 text-bambu-green`,children:be})]})]}),(0,G.jsx)(`div`,{className:`p-4 overflow-y-auto flex-1`,style:{scrollbarGutter:`stable`},children:b===`filament`?(0,G.jsxs)(`div`,{className:`space-y-6`,children:[s&&!p&&(0,G.jsx)(`div`,{children:Ce?(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400 px-1`,children:l(`inventory.spoolmanCatalogLoadFailed`)}):(0,G.jsx)(h1e,{filaments:xe,isLoading:Se,selectedId:h.spoolman_filament_id,onSelect:Ie})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.filamentInfo`)}),(0,G.jsx)(u1e,{formData:h,updateField:Fe,cloudAuthenticated:A,loadingCloudPresets:M,presetInputValue:R,setPresetInputValue:z,selectedPresetOption:Pe,filamentOptions:we,availableBrands:Ae,availableMaterials:je,suggestedBrands:Me,suggestedMaterials:Ne,quickAdd:E,detailsRequired:!E&&!s&&r===`create`,quantity:O,onQuantityChange:k,errors:_})]})]}):b===`appearance`?(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.color`)}),(0,G.jsx)(f1e,{formData:h,updateField:Fe,recentColors:H,onColorUsed:Le,catalogColors:oe})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.additional`)}),(0,G.jsx)(m1e,{formData:h,updateField:Fe,spoolCatalog:B,currencySymbol:a,availableCategories:Je,availableLocations:ee,onCreateLocation:async e=>{try{let t=await Z.createLocation({name:e});return te(e=>[...e,{id:t.id,name:t.name}].sort((e,t)=>e.name.localeCompare(t.name))),await v6(u),{id:t.id,name:t.name}}catch(e){return console.error(e),d((e instanceof Error?e.message:l(`locations.saveFailed`))||l(`locations.saveFailed`),`error`),null}},globalLowStockThreshold:Ye,spoolmanMode:s})]}),p&&n&&!s&&(0,G.jsx)(`div`,{children:(0,G.jsx)(S1e,{spoolId:n.id})})]}):(0,G.jsx)(y1e,{formData:h,printersWithCalibrations:ye,filamentOptions:we,modelPresets:he,setModelPresets:ge,selectedProfiles:pe,setSelectedProfiles:me,selectedGroupId:_e,setSelectedGroupId:ve,printerModels:qe,isLoading:de})}),(0,G.jsxs)(`div`,{className:`flex gap-2 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:[p&&(0,G.jsxs)(`div`,{className:`flex gap-2 mr-auto`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Ve.mutate(),disabled:$e||!n?.tag_uid,children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),l(`inventory.clearRfid`,`Clear RFID Tag`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Xe.mutate(),disabled:$e||!We,children:[(0,G.jsx)(Bu,{className:`w-4 h-4`}),l(`inventory.unassignSpool`,`Unassign`)]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:l(`common.cancel`)}),(0,G.jsx)(Q,{onClick:Qe,disabled:$e,children:$e?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),l(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),l(p?`common.save`:m?`inventory.copySpool`:`inventory.addSpool`)]})})]})]})]})]})}var T1e=[{value:`ams_holder_74x33`,i18nKey:`amsHolderSmall`,fallbackLabel:`AMS holder — small (74 × 33 mm)`,fallbackHint:`Single label per page; matches the printable label from MakerWorld model 752566 (AMS Filament Label Holder).`},{value:`ams_holder_75x55`,i18nKey:`amsHolderLarge`,fallbackLabel:`AMS holder — large (75 × 55 mm)`,fallbackHint:`Single label per page; fits the cardstock-insert variant of the AMS Filament Label Holder. Roomy enough for swatch, brand, material, ID, and QR code.`},{value:`box_40x30`,i18nKey:`box40x30`,fallbackLabel:`Box label (40 × 30 mm)`,fallbackHint:`Single label per page; common DK/Brother roll size, good for filament-bag and storage-bin labels.`},{value:`box_62x29`,i18nKey:`box`,fallbackLabel:`Box label (62 × 29 mm)`,fallbackHint:`Single label per page; sized for Brother PT/QL and Dymo small labels.`},{value:`avery_l7160`,i18nKey:`averyL7160`,fallbackLabel:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,fallbackHint:`EU sheet stock; 21 labels per A4 page.`},{value:`avery_5160`,i18nKey:`avery5160`,fallbackLabel:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,fallbackHint:`US sheet stock; 30 labels per Letter page.`}],_9={avery_l7160:21,avery_5160:30},v9=Math.max(...Object.values(_9));function E1e(e){let t=window.URL.createObjectURL(e);if(!window.open(t,`_blank`)){let e=document.createElement(`a`);e.href=t,e.download=`bambuddy-labels.pdf`,document.body.appendChild(e),e.click(),document.body.removeChild(e)}setTimeout(()=>window.URL.revokeObjectURL(t),6e4)}function D1e(e){return Mf(e)}function O1e(e){return`${e.color_name??`${e.material}${e.subtype?` ${e.subtype}`:``}`}${e.brand?` · ${e.brand}`:``}`}function k1e(e){return[e.color_name,e.material,e.subtype,e.brand,`#${e.id}`].filter(Boolean).join(` `).toLowerCase()}function A1e(e){if(!e)return[1,0];let t=e.replace(/^#/,``).slice(0,6);if(t.length!==6)return[1,0];let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);if([n,r,i].some(Number.isNaN))return[1,0];let a=n/255,o=r/255,s=i/255,c=Math.max(a,o,s),l=Math.min(a,o,s),u=(c+l)/2,d=c-l;if((d===0?0:d/(1-Math.abs(2*u-1)))<.1)return[1,u];let f=0;return f=c===a?(o-s)/d%6:c===o?(s-a)/d+2:(a-o)/d+4,f*=60,f<0&&(f+=360),[0,f]}function j1e({isOpen:e,onClose:t,availableSpools:n,initialSelectedIds:r,spoolmanMode:i}){let{t:a}=U(),{showToast:o}=qd(),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(new Set),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`id`),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(`1`);(0,y.useEffect)(()=>{if(e){let e=new Set(n.map(e=>e.id));u(new Set(r.filter(t=>e.has(t)))),f(``),m(``),g(`id`),v(!1),x(`1`),c(null)}},[e]);let S=(0,y.useMemo)(()=>{let e=[...n];return h===`color`?(e.sort((e,t)=>{let n=A1e(e.rgba),r=A1e(t.rgba);return n[0]===r[0]?n[1]===r[1]?e.id-t.id:n[1]-r[1]:n[0]-r[0]}),e):(e.sort((e,t)=>e.id-t.id),e)},[n,h]),C=(0,y.useMemo)(()=>{let e=new Set;for(let t of S)t.material&&e.add(t.material.toUpperCase());return[...e].sort()},[S]),w=(0,y.useMemo)(()=>{let e=d.trim().toLowerCase();return S.filter(t=>!(p&&(t.material||``).toUpperCase()!==p||e&&!k1e(t).includes(e)))},[S,d,p]),T=w.length>0&&w.every(e=>l.has(e.id));if(!e)return null;let E=l.size,D=E===0,O=Number(b),k=Number.isInteger(O)&&O>=1&&O<=v9;function A(e){u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function j(){u(e=>{let t=new Set(e);for(let e of w)t.add(e.id);return t})}function M(){u(e=>{let t=new Set(e);for(let e of w)t.delete(e.id);return t})}function N(){u(new Set)}async function P(e){if(D||s)return;let n=_9[e];if(n!==void 0&&(!k||O>n)){o(a(`inventory.labels.startingPositionRangeError`,`Starting position must be between 1 and {{capacity}} for this sheet.`,{capacity:n}),`error`);return}let r=S.filter(e=>l.has(e.id)).map(e=>e.id);c(e);try{E1e(i?await Z.printSpoolmanSpoolLabels({spool_ids:r,template:e,monochrome:_,starting_position:n===void 0?1:O}):await Z.printSpoolLabels({spool_ids:r,template:e,monochrome:_,starting_position:n===void 0?1:O})),t()}catch(e){o(a(`inventory.labels.error`,`Could not generate labels: {{msg}}`,{msg:e instanceof Error?e.message:String(e)}),`error`)}finally{c(null)}}return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start sm:items-center justify-center p-4 overflow-y-auto`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{"data-testid":`label-template-picker-panel`,className:`relative w-full max-w-3xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] overflow-clip flex flex-col my-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(`inventory.labels.title`,`Print spool labels`)}),E>0&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,a(`inventory.labels.selectedCount`,`{{count}} selected`,{count:E}),`)`]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,"aria-label":a(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-2 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:a(`inventory.labels.searchPlaceholder`,`Search name, brand, or #ID`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),C.length>1&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:a(`inventory.labels.filterByMaterial`,`Material:`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(``),className:`px-2 py-0.5 text-xs rounded-full border transition ${p===``?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.allMaterials`,`All`)}),C.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(e),className:`px-2 py-0.5 text-xs rounded-full border transition ${p===e?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:e},e))]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:a(`inventory.labels.sortBy.label`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(`id`),className:`px-2 py-0.5 text-xs rounded-full border transition ${h===`id`?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.sortBy.id`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(`color`),className:`px-2 py-0.5 text-xs rounded-full border transition ${h===`color`?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.sortBy.color`)})]})]}),(0,G.jsxs)(`div`,{className:`px-4 pt-3 pb-2 flex items-center justify-between gap-3 flex-wrap`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`inventory.labels.pickSpools`,`Pick which spools to print labels for:`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-xs`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:T?M:j,disabled:w.length===0,className:`text-bambu-green hover:underline disabled:opacity-50 disabled:no-underline disabled:cursor-not-allowed`,children:T?a(`inventory.labels.deselectVisible`,`Deselect visible`):a(`inventory.labels.selectVisible`,`Select all visible ({{count}})`,{count:w.length})}),(0,G.jsx)(`button`,{type:`button`,onClick:N,disabled:E===0,className:`text-bambu-gray hover:text-white hover:underline disabled:opacity-50 disabled:no-underline disabled:cursor-not-allowed`,children:a(`inventory.labels.clearAll`,`Clear all`)})]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-2 pb-2 min-h-0`,children:w.length===0?(0,G.jsx)(`div`,{className:`text-center text-sm text-bambu-gray py-6`,children:S.length===0?a(`inventory.labels.noSpoolsToShow`,`No spools to show. Adjust your filter and try again.`):a(`inventory.labels.noMatches`,`No spools match the current search or filter.`)}):(0,G.jsx)(`ul`,{className:`space-y-0.5`,children:w.map(e=>{let t=l.has(e.id);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary/50 cursor-pointer`,children:[t?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`input`,{type:`checkbox`,checked:t,onChange:()=>A(e.id),className:`sr-only`}),(0,G.jsx)(`span`,{className:`w-4 h-4 rounded border border-black/20 shrink-0`,style:D1e(e.rgba)}),(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-sm text-white`,children:O1e(e)}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray shrink-0`,children:[`#`,e.id]})]})},e.id)})})}),(0,G.jsxs)(`div`,{className:`px-4 pt-2 pb-1 border-t border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-2 cursor-pointer select-none`,children:[_?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`sr-only`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:a(`inventory.labels.monochrome`,`Monochrome (black & white printer)`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:a(`inventory.labels.monochromeHint`,`Drops the colour swatch and widens the text`)})]}),(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`label`,{htmlFor:`label-starting-position`,className:`text-sm text-white whitespace-nowrap pt-1.5`,children:a(`inventory.labels.startingPosition`,`Starting label position`)}),(0,G.jsx)(`input`,{id:`label-starting-position`,"data-testid":`label-starting-position`,type:`number`,min:1,max:v9,step:1,value:b,onChange:e=>x(e.target.value),"aria-describedby":`label-starting-position-help`,className:`w-20 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsxs)(`div`,{id:`label-starting-position-help`,className:`text-xs text-bambu-gray pt-1.5`,children:[(0,G.jsx)(`div`,{children:a(`inventory.labels.startingPositionRange`,`Sheet templates only: L7160 supports 1–21; 5160 supports 1–30.`)}),(0,G.jsx)(`div`,{"data-testid":`label-starting-position-status`,className:k?``:`text-red-400`,children:k?O===1?a(`inventory.labels.startingPositionFirst`,`Printing starts at position 1.`):a(`inventory.labels.startingPositionSkipped`,`Positions 1 through {{lastPosition}} will be left blank on the first sheet.`,{lastPosition:O-1}):a(`inventory.labels.startingPositionInvalid`,`Enter a whole number from 1 to {{capacity}}.`,{capacity:v9})})]})]})]}),(0,G.jsx)(`div`,{className:`px-3 pt-1 pb-2 grid grid-cols-1 sm:grid-cols-2 gap-2`,children:T1e.map(e=>{let t=s===e.value,n=_9[e.value],r=n!==void 0&&(!k||O>n),i=a(`inventory.labels.templates.${e.i18nKey}.label`,e.fallbackLabel),o=r?a(`inventory.labels.startingPositionRangeError`,`Starting position must be between 1 and {{capacity}} for this sheet.`,{capacity:n}):a(`inventory.labels.templates.${e.i18nKey}.hint`,e.fallbackHint);return(0,G.jsxs)(`button`,{"data-testid":`print-labels-${e.value}`,disabled:D||s!==null||r,onClick:()=>P(e.value),title:`${i} — ${o}`,className:`w-full text-left p-2.5 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-green hover:bg-bambu-green/10 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-bambu-dark-tertiary disabled:hover:bg-bambu-dark transition flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`font-medium text-white text-sm truncate`,children:i}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-0.5 truncate`,children:o})]}),t&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-green shrink-0`})]},e.value)})}),(0,G.jsx)(`div`,{className:`flex justify-end gap-2 px-5 py-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,disabled:s!==null,children:a(`common.cancel`,`Cancel`)})})]})]})}function M1e({onClose:e,onImported:t}){let{t:n}=U(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=(0,y.useRef)(null),g=async e=>{i(e),c(null),m(null),u(!0);try{c(await Z.importSpoolsCsvPreview(e))}catch(e){m(e instanceof Error?e.message:n(`inventory.csv.previewError`,`Could not read the CSV file`))}finally{u(!1)}},_=e=>{let t=e.target.files?.[0];t&&g(t)},v=e=>{e.preventDefault(),o(!1);let t=e.dataTransfer.files?.[0];t&&g(t)},b=async()=>{if(r){f(!0),m(null);try{t((await Z.importSpoolsCsv(r)).created)}catch(e){m(e instanceof Error?e.message:n(`inventory.csv.importError`,`Import failed`)),f(!1)}}},x=e=>e===`valid`?(0,G.jsx)(xs,{className:`w-4 h-4 text-green-500 flex-shrink-0`}):e===`error`?(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-500 flex-shrink-0`}):(0,G.jsx)(ws,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),S=s?.valid_count??0;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-3xl border border-bambu-dark-tertiary flex flex-col max-h-[90vh]`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`inventory.csv.modalTitle`,`Import spools from CSV`)}),(0,G.jsx)(`button`,{onClick:e,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),o(!0)},onDragLeave:e=>{e.preventDefault(),o(!1)},onDrop:v,onClick:()=>h.current?.click(),className:`border-2 border-dashed rounded-lg p-6 text-center cursor-pointer transition-colors ${a?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Vu,{className:`w-9 h-9 mx-auto mb-2 ${a?`text-bambu-green`:`text-bambu-gray`}`}),r?(0,G.jsxs)(`p`,{className:`text-white font-medium flex items-center justify-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),` `,r.name]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.csv.selectFile`,`Choose a CSV file or drag it here`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:n(`inventory.csv.dragHint`,`Header: material (required), brand, subtype, color_name, rgba, …`)})]})]}),(0,G.jsx)(`input`,{ref:h,type:`file`,accept:`.csv,text/csv`,className:`hidden`,onChange:_}),l&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-bambu-gray py-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`inventory.csv.parsing`,`Reading file…`)]}),p&&(0,G.jsxs)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg flex items-start gap-3`,children:[(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300 break-words`,children:p})]}),s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400`,children:n(`inventory.csv.validCount`,`{{count}} valid`,{count:s.valid_count})}),(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-red-50 dark:bg-red-500/10 text-red-700 dark:text-red-400`,children:n(`inventory.csv.errorCount`,`{{count}} error`,{count:s.error_count})}),(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-bambu-dark text-bambu-gray`,children:n(`inventory.csv.skippedCount`,`{{count}} skipped`,{count:s.skipped_count})})]}),s.warnings.length>0&&(0,G.jsx)(`div`,{className:`p-3 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg space-y-1`,children:s.warnings.map((e,t)=>(0,G.jsx)(`p`,{className:`text-xs text-yellow-700 dark:text-yellow-300`,children:e},t))}),s.rows.length>0&&(0,G.jsx)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:(0,G.jsx)(`div`,{className:`max-h-72 overflow-y-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{className:`text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colRow`,`Row`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colStatus`,`Status`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.material`,`Material`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.brand`,`Brand`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colColor`,`Color`)})]})}),(0,G.jsx)(`tbody`,{children:s.rows.map(e=>(0,G.jsxs)(`tr`,{className:`border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`td`,{className:`px-3 py-2 text-bambu-gray`,children:e.row_number}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[x(e.status),e.status===`error`&&e.reason&&(0,G.jsx)(`span`,{className:`text-xs text-red-700 dark:text-red-400 break-words`,children:e.reason})]})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:e.material||`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:e.brand||`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`inline-block w-4 h-4 rounded-full border border-bambu-dark-tertiary flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.color_name||`—`}),e.resolved_color&&!e.cross_material_color&&(0,G.jsx)(`span`,{title:n(`inventory.csv.colorResolved`,`Color filled from catalog`),children:(0,G.jsx)(Yu,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`})}),e.cross_material_color&&(0,G.jsx)(`span`,{title:n(`inventory.csv.colorCrossMaterial`,`Color taken from a different material — no exact match in catalog`),children:(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-yellow-500 flex-shrink-0`})}),e.duplicate_of_existing&&(0,G.jsx)(`span`,{title:n(`inventory.csv.duplicateExisting`,`A spool with this material, brand and color already exists — it will still be imported as a new spool`),children:(0,G.jsx)(Vs,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 flex-shrink-0`})})]})})]},e.row_number))})]})})})]})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:d,children:n(`common.cancel`)}),(0,G.jsx)(Q,{onClick:b,disabled:!s||S===0||d,children:d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),n(`inventory.csv.importing`,`Importing…`)]}):S>0?n(`inventory.csv.importValidRows`,`Import {{count}} valid rows`,{count:S}):n(`inventory.csv.noValidRows`,`No valid rows`)})]})]})})}var y9=[{id:`material`,type:`searchable`,labelKey:`inventory.material`},{id:`subtype`,type:`searchable`,labelKey:`inventory.subtype`},{id:`brand`,type:`searchable`,labelKey:`inventory.brand`},{id:`color_name`,type:`text`,labelKey:`inventory.colorName`},{id:`rgba`,type:`color`,labelKey:`inventory.color`,pattern:`^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$`},{id:`location_id`,type:`searchableClosed`,labelKey:`inventory.storageLocation`},{id:`slicer_filament_name`,type:`searchable`,labelKey:`inventory.slicerFilamentName`},{id:`slicer_filament`,type:`searchable`,labelKey:`inventory.slicerFilament`},{id:`cost_per_kg`,type:`number`,labelKey:`inventory.costPerKg`,min:0,step:.01},{id:`note`,type:`textarea`,labelKey:`inventory.note`},{id:`label_weight`,type:`number`,labelKey:`inventory.labelWeight`,min:1,step:1},{id:`core_weight`,type:`number`,labelKey:`inventory.coreWeight`,min:0,step:1},{id:`category`,type:`searchable`,labelKey:`inventory.category`},{id:`low_stock_threshold_pct`,type:`number`,labelKey:`inventory.lowStockThresholdOverride`,min:1,max:99,step:1}];function N1e({value:e,onChange:t,options:n,allowCustom:r,placeholderKey:i,disabled:a}){let{t:o}=U(),s=(0,y.useRef)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``);(0,y.useEffect)(()=>{if(!c)return;let e=e=>{s.current&&!s.current.contains(e.target)&&(l(!1),d(``))},t=e=>{e.key===`Escape`&&(l(!1),d(``))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[c]);let f=c?u:n.find(t=>t.value===e)?.label??e,p=(0,y.useMemo)(()=>{if(!c)return n;let e=u.trim().toLowerCase();return e?n.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)):n},[c,u,n]),m=c&&u.trim()&&!n.some(e=>e.value.toLowerCase()===u.trim().toLowerCase());return(0,G.jsxs)(`div`,{className:`relative`,ref:s,children:[(0,G.jsx)(`input`,{type:`text`,disabled:a,value:f,onChange:e=>{d(e.target.value),l(!0),r&&t(e.target.value)},onFocus:()=>{l(!0),d(``)},placeholder:i?o(i):void 0,className:`w-full px-3 py-2 pr-9 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),c&&(0,G.jsxs)(`div`,{className:`absolute z-50 left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:[p.length===0&&!r&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:o(`inventory.noResults`)}),p.map(n=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e===n.value?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{t(n.value),l(!1),d(``)},children:n.label},n.value)),r&&m&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{t(u.trim()),l(!1),d(``)},children:o(`inventory.bulk.useCustom`,{value:u.trim()})})]})]})}function b9(...e){let t=new Set;for(let n of e)for(let e of n){let n=e?.trim();n&&t.add(n)}return Array.from(t).sort((e,t)=>e.localeCompare(t))}function P1e({isOpen:e,selectedCount:t,isPending:n,availableLocations:r,availableMaterials:i,availableSubtypes:a,availableBrands:o,availableCategories:s,availableSlicerFilaments:c,availableSlicerFilamentNames:l,onClose:u,onApply:d}){let{t:f}=U(),{data:p=[]}=K({queryKey:[`bulk-edit-cloud-presets`],enabled:e,staleTime:300*1e3,queryFn:async()=>{let e=[];try{if((await Z.getCloudStatus()).is_authenticated){let t=await Z.getFilamentPresets();e.push(...t)}}catch{}try{if((await Z.orcaCloudStatus()).connected){let t=await Z.orcaCloudListProfiles();e.push(...t.filament)}}catch{}return e}}),{data:m}=K({queryKey:[`bulk-edit-local-presets`],enabled:e,staleTime:300*1e3,queryFn:Z.getLocalPresets}),{data:h=[]}=K({queryKey:[`builtin-filaments`],enabled:e,staleTime:300*1e3,queryFn:Z.getBuiltinFilaments}),g=(0,y.useMemo)(()=>qH(p,new Set,m?.filament??[],h),[p,m,h]),[_,v]=(0,y.useState)({}),b=(0,y.useMemo)(()=>b9(LH,i).map(e=>({value:e,label:e})),[i]),x=(0,y.useMemo)(()=>b9(zH,a).map(e=>({value:e,label:e})),[a]),S=(0,y.useMemo)(()=>b9(RH,o).map(e=>({value:e,label:e})),[o]),C=(0,y.useMemo)(()=>b9(s).map(e=>({value:e,label:e})),[s]),w=(0,y.useMemo)(()=>{let e=g.map(e=>({value:e.code,label:e.displayName})),t=c.filter(t=>!e.some(e=>e.value===t)).map(e=>({value:e,label:e}));return[...e,...t].sort((e,t)=>e.label.localeCompare(t.label))},[g,c]),T=(0,y.useMemo)(()=>{let e=g.map(e=>({value:e.displayName,label:e.displayName})),t=l.filter(t=>!e.some(e=>e.value===t)).map(e=>({value:e,label:e}));return[...e,...t].sort((e,t)=>e.label.localeCompare(t.label))},[g,l]),E=(0,y.useMemo)(()=>r.map(e=>({value:String(e.id),label:e.name})),[r]);if(!e)return null;let D=(e,t)=>{v(n=>({...n,[e]:t}))},O=e=>{v(t=>{let n={...t};return delete n[e],n})},k=(()=>{let e={};for(let t of y9){let n=_[t.id];if(n===void 0)continue;let r=typeof n==`string`?n.trim():n;if(!(r===``||r===null))if(t.type===`number`){let n=Number(r);Number.isFinite(n)&&(e[t.id]=n)}else if(t.id===`location_id`){let n=Number(r);Number.isFinite(n)&&n>0&&(e[t.id]=n)}else if(t.id===`rgba`){let n=String(r).replace(/^#/,``),i=n.length===6?`${n}FF`:n;/^[0-9A-Fa-f]{8}$/.test(i)&&(e[t.id]=i.toUpperCase())}else e[t.id]=String(r)}return e})(),A=Object.keys(k).length>0,j=y9.some(e=>{let t=_[e.id];return t===void 0||t.trim()===``?!1:k[e.id]===void 0}),M=e=>e===`material`?b:e===`subtype`?x:e===`brand`?S:e===`category`?C:e===`slicer_filament`?w:e===`slicer_filament_name`?T:e===`location_id`?E:[],N=e=>{let t=_[e.id]??``;if(e.type===`searchable`||e.type===`searchableClosed`)return(0,G.jsx)(N1e,{value:t,onChange:t=>{t===``?O(e.id):D(e.id,t)},options:M(e.id),allowCustom:e.type===`searchable`,disabled:n});if(e.type===`textarea`)return(0,G.jsx)(`textarea`,{disabled:n,value:t,onChange:t=>D(e.id,t.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none resize-none min-h-[60px]`});if(e.type===`color`){let r=t.trim().replace(/^#/,``),i=r.length===6?`${r}FF`:r,a=t.trim()!==``&&!/^[0-9A-Fa-f]{8}$/.test(i);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,disabled:n,value:`#${(t||`808080`).replace(/^#/,``).slice(0,6)}`,onChange:t=>D(e.id,t.target.value.replace(/^#/,``).toUpperCase()),className:`h-9 w-12 rounded cursor-pointer`}),(0,G.jsx)(`input`,{type:`text`,disabled:n,value:t,onChange:t=>D(e.id,t.target.value.replace(/^#/,``).toUpperCase()),placeholder:`RRGGBB or RRGGBBAA`,className:`flex-1 px-3 py-2 bg-bambu-dark border rounded-lg text-white placeholder-bambu-gray/50 focus:outline-none ${a?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,pattern:e.pattern})]}),a&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-400`,children:f(`inventory.bulk.invalidHex`)})]})}return(0,G.jsx)(`input`,{type:e.type===`number`?`number`:`text`,disabled:n,value:t,onChange:t=>D(e.id,t.target.value),min:e.min,max:e.max,step:e.step,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`})};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50`,onClick:n?void 0:u,children:(0,G.jsxs)(`div`,{className:`w-full max-w-3xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-5 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:f(`inventory.bulk.editTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-0.5`,children:f(`inventory.bulk.editSubtitle`,{count:t})})]}),(0,G.jsx)(`button`,{onClick:u,disabled:n,className:`p-1 text-bambu-gray hover:text-white transition-colors`,"aria-label":f(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`p`,{className:`px-5 pt-4 text-xs text-bambu-gray`,children:f(`inventory.bulk.editHint`)}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-5 space-y-3`,children:y9.map(e=>{let t=_[e.id]!==void 0;return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 rounded-md p-2 transition-colors ${t?`bg-bambu-green/5 border border-bambu-green/30`:`border border-transparent`}`,children:[(0,G.jsx)(`div`,{className:`pt-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,checked:t,onChange:t=>{t.target.checked?D(e.id,``):O(e.id)},"aria-label":f(`inventory.bulk.toggleField`)})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:f(e.labelKey)}),N(e)]})]},e.id)})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-5 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:f(`inventory.bulk.changeCount`,{count:Object.keys(k).length})}),(0,G.jsxs)(`div`,{className:`ml-auto flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:u,disabled:n,children:f(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>d(k),disabled:!A||n||j,children:n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),f(`inventory.bulk.applyPending`)]}):f(`inventory.bulk.applyButton`,{count:t})})]})]})]})})}function F1e(e){let t=e[0],n=0,r=0,i=0;for(let t of e)n+=t.label_weight,r+=t.weight_used,i+=t.core_weight;return{...t,label_weight:n,weight_used:r,core_weight:i}}function x9(e){let t=new Set;for(let n of e)if(typeof n==`string`){let e=n.trim();e&&t.add(e)}return Array.from(t).sort((e,t)=>e.localeCompare(t))}function I1e(e){return`${e.material}|${e.subtype||``}|${e.brand||``}|${e.color_name||``}|${e.rgba||``}|${e.extra_colors||``}|${e.effect_type||``}|${e.label_weight}`}var L1e=`bambuddy-inventory-columns`,S9=[{id:`id`,label:`#`,visible:!0},{id:`added_time`,label:`Added`,visible:!0},{id:`encode_time`,label:`Encoded`,visible:!1},{id:`last_used_time`,label:`Last Used`,visible:!1},{id:`rgba`,label:`Color`,visible:!0},{id:`material`,label:`Material`,visible:!0},{id:`subtype`,label:`Subtype`,visible:!0},{id:`color_name`,label:`Color Name`,visible:!1},{id:`brand`,label:`Brand`,visible:!0},{id:`slicer_filament`,label:`Slicer Filament`,visible:!1},{id:`location`,label:`Location`,visible:!0},{id:`storage_location`,label:`Storage Location`,visible:!1},{id:`temperature`,label:`Temperature`,visible:!1},{id:`humidity`,label:`Humidity`,visible:!1},{id:`battery`,label:`Battery`,visible:!1},{id:`label_weight`,label:`Label`,visible:!0},{id:`net`,label:`Net`,visible:!0},{id:`gross`,label:`Gross`,visible:!1},{id:`added_full`,label:`Full`,visible:!1},{id:`used`,label:`Used`,visible:!1},{id:`printed_total`,label:`Printed Total`,visible:!1},{id:`printed_since_weight`,label:`Printed Since Weight`,visible:!1},{id:`note`,label:`Note`,visible:!1},{id:`pa_k`,label:`PA(K)`,visible:!0},{id:`tag_id`,label:`Tag ID`,visible:!1},{id:`data_origin`,label:`Data Origin`,visible:!1},{id:`tag_type`,label:`Linked Tag Type`,visible:!1},{id:`stock`,label:`Stock`,visible:!1},{id:`remaining`,label:`Remaining`,visible:!0},{id:`spool_name`,label:`Spool`,visible:!1},{id:`cost_per_kg`,label:`Cost/kg`,visible:!1},{id:`weight_check`,label:`Weight Check`,visible:!1}];function R1e(){try{let e=localStorage.getItem(L1e);if(e){let t=JSON.parse(e),n=new Set(S9.map(e=>e.id)),r=new Set(t.map(e=>e.id)),i=[...t.filter(e=>n.has(e.id))];for(let e of S9){if(r.has(e.id))continue;let t=S9.indexOf(e),n=i.length;for(let e=t-1;e>=0;e--){let t=i.findIndex(t=>t.id===S9[e].id);if(t!==-1){n=t+1;break}}i.splice(n,0,e)}return i}}catch{}return S9.map(e=>({...e}))}function z1e(e){try{localStorage.setItem(L1e,JSON.stringify(e))}catch{}}function C9(e,t=!1){return t&&e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}var B1e={PLA:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,ABS:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,PETG:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,TPU:`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,ASA:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`,PA:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,PC:`bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400`,PET:`bg-sky-100 dark:bg-sky-500/20 text-sky-700 dark:text-sky-400`};function w9(e,t=`system`){if(!e)return`-`;let n=rp(e);return n?Yf(n,t):`-`}var V1e={id:()=>`#`,added_time:()=>`Added`,encode_time:()=>`Encoded`,last_used_time:()=>`Last Used`,rgba:e=>e(`inventory.color`),material:e=>e(`inventory.material`),subtype:e=>e(`inventory.subtype`),color_name:e=>e(`inventory.colorName`),brand:e=>e(`inventory.brand`),slicer_filament:e=>e(`inventory.slicerFilament`),location:()=>`Location`,storage_location:e=>e(`inventory.storageLocation`),temperature:e=>e(`inventory.temperature`),humidity:e=>e(`inventory.humidity`),battery:e=>e(`inventory.battery`),label_weight:e=>e(`inventory.labelWeight`),net:e=>e(`inventory.net`),gross:()=>`Gross`,added_full:()=>`Full`,used:e=>e(`inventory.weightUsed`),printed_total:()=>`Printed Total`,printed_since_weight:()=>`Printed Since Weight`,note:e=>e(`inventory.note`),pa_k:()=>`PA(K)`,tag_id:()=>`Tag ID`,data_origin:()=>`Data Origin`,tag_type:()=>`Linked Tag Type`,stock:e=>e(`inventory.stock`),remaining:e=>e(`inventory.remaining`),spool_name:e=>e(`inventory.spoolName`),cost_per_kg:e=>e(`inventory.costPerKg`),weight_check:e=>e(`inventory.weightCheck`)},T9={id:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:e.id}),added_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:w9(e.created_at,t)}),encode_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:w9(e.encode_time,t)}),last_used_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.last_used?w9(e.last_used,t):`Never`}),rgba:({spool:e})=>(0,G.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,G.jsx)(C8,{rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,effectSize:`table`,subtype:e.subtype})}),material:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.material}),subtype:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.subtype||`-`}),color_name:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:kf(e.color_name,e.rgba)||`-`}),brand:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.brand||`-`}),slicer_filament:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,title:e.slicer_filament||void 0,children:e.slicer_filament_name||e.slicer_filament||`-`}),location:({spool:e,assignmentMap:t})=>{let n=t[e.id];if(!n)return(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`});let r=n.printer_name||`Printer ${n.printer_id}`,i=n.ams_id===254||n.ams_id===255,a=!i&&n.ams_id>=128;return(0,G.jsxs)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:[r,` `,jp(n.ams_id,n.tray_id,a,i),n.ams_label?` (${n.ams_label})`:``]})},storage_location:({spool:e})=>e.storage_location?(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:e.storage_location}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}),temperature:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`temperature`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},humidity:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`humidity`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},battery:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`battery`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},label_weight:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:C9(e.label_weight)}),net:({remaining:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:C9(e)}),gross:({spool:e,remaining:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:C9(t+e.core_weight)}),added_full:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.added_full==null?`-`:e.added_full?`Yes`:`No`}),used:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.weight_used>0?C9(e.weight_used):`-`}),printed_total:()=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`}),printed_since_weight:()=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`}),note:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray max-w-[150px] truncate block`,title:e.note||void 0,children:e.note||`-`}),pa_k:({spool:e})=>(e.k_profiles?.length??0)===0?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}):(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-bambu-green/20 text-bambu-green`,children:`K`}),tag_id:({spool:e})=>{let t=e.tag_uid||e.tray_uuid;return t?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray font-mono`,title:t,children:t.length>12?`${t.slice(0,6)}...${t.slice(-4)}`:t}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},data_origin:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.data_origin||`-`}),tag_type:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.tag_type||`-`}),stock:({spool:e,t})=>e.slicer_filament?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}):(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:t(`inventory.stock`)}),remaining:({remaining:e,pct:t})=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${t>50?`bg-bambu-green`:t>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(t,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(e),`g`]})]}),spool_name:({spool:e,catalogMap:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:(e.core_weight_catalog_id==null?void 0:t[e.core_weight_catalog_id])?.name||`-`}),cost_per_kg:({spool:e,currencySymbol:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.cost_per_kg==null?`-`:`${t}${e.cost_per_kg.toFixed(2)}`}),weight_check:({spool:e,onSyncWeight:t})=>{let n=e.last_scale_weight;if(n==null)return(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,title:`No scale measurement`,children:`-`});let r=e.core_weight||0,i=Math.max(0,e.label_weight-e.weight_used)+r,a,o;n0?`+${Math.round(a)}`:`${Math.round(a)}`,c=o?`Scale: ${Math.round(n)}g\nCalculated: ${Math.round(i)}g\nDifference: ${s}g (within tolerance)`:`Scale: ${Math.round(n)}g\nCalculated: ${Math.round(i)}g\nDifference: ${s}g (mismatch!)`;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm font-medium ${o?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`}`,title:c,children:[(0,G.jsxs)(`span`,{children:[Math.round(n),`g`]}),o?(0,G.jsx)(fs,{className:`w-3 h-3`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),t&&(0,G.jsx)(`button`,{type:`button`,onClick:n=>{n.stopPropagation(),n.preventDefault(),t(e)},className:`p-1 hover:bg-bambu-green/20 rounded transition-colors text-bambu-green`,title:`Sync: trust scale weight and reset tracking`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})})]})]})}},E9={id:e=>e.id,added_time:e=>e.created_at||``,encode_time:e=>e.encode_time||``,last_used_time:e=>e.last_used||``,material:e=>(e.material||``).toLowerCase(),subtype:e=>(e.subtype||``).toLowerCase(),color_name:e=>(e.color_name||``).toLowerCase(),rgba:e=>Ef(e.rgba),brand:e=>(e.brand||``).toLowerCase(),slicer_filament:e=>(e.slicer_filament_name||e.slicer_filament||``).toLowerCase(),location:(e,t)=>{let n=t[e.id];if(!n)return``;let r=n.ams_id===254||n.ams_id===255,i=!r&&n.ams_id>=128,a=n.ams_label?` (${n.ams_label})`:``;return`${n.printer_name||``} ${jp(n.ams_id,n.tray_id,i,r)}${a}`},storage_location:e=>(e.storage_location||``).toLowerCase(),label_weight:e=>e.label_weight,net:e=>Math.max(0,e.label_weight-e.weight_used),gross:e=>Math.max(0,e.label_weight-e.weight_used)+e.core_weight,used:e=>e.weight_used,remaining:e=>e.label_weight>0?Math.max(0,e.label_weight-e.weight_used)/e.label_weight:0,note:e=>(e.note||``).toLowerCase(),data_origin:e=>(e.data_origin||``).toLowerCase(),tag_type:e=>(e.tag_type||``).toLowerCase(),stock:e=>+!!e.slicer_filament,spool_name:e=>e.core_weight_catalog_id??0,cost_per_kg:e=>e.cost_per_kg??0,weight_check:e=>{if(e.last_scale_weight==null)return-1;let t=Math.max(0,e.label_weight-e.weight_used)+e.core_weight;return Math.abs(e.last_scale_weight-t)},temperature:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`temperature`)?.value??-1/0,humidity:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`humidity`)?.value??-1/0,battery:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`battery`)?.value??-1/0},D9=`bambuddy-inventory-sort`;function H1e(){try{let e=localStorage.getItem(D9);if(e)return JSON.parse(e)}catch{}return null}function U1e(e){try{e?localStorage.setItem(D9,JSON.stringify(e)):localStorage.removeItem(D9)}catch{}}function W1e(){let{data:e}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),t=e!==void 0;return(0,G.jsx)(G1e,{spoolmanMode:e?.spoolman_enabled===`true`&&!!e?.spoolman_url,spoolmanModeReady:t})}function G1e({spoolmanMode:e=!1,spoolmanModeReady:t=!0}){let{t:n}=U(),r=co(),{showToast:i}=qd(),{hasPermission:a,loading:o}=Nd(),s=!o&&a(`inventory:forecast_read`),[c,l]=Ri(),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(`active`),[E,D]=(0,y.useState)(`all`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(`all`),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)(`table`),[ee,te]=(0,y.useState)(H1e),[ne,re]=(0,y.useState)(R1e),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(()=>{try{return localStorage.getItem(`bambuddy-inventory-group`)===`true`}catch{return!1}}),[H,ce]=(0,y.useState)(new Set),[le,ue]=(0,y.useState)(new Set),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),he=(0,y.useCallback)(e=>{ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ge=(0,y.useCallback)(()=>ue(new Set),[]);(0,y.useEffect)(()=>{ue(new Set)},[w,E,O,A,M,P,I,R]);let[_e,ve]=(0,y.useState)(0),[ye,be]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`bambuddy-inventory-pageSize`);if(e){let t=Number(e);if([15,30,50,100,-1].includes(t))return t}}catch{}return 15}),{data:xe}=K({queryKey:[`settings`],queryFn:Z.getSettings}),Se=xe?.date_format||`system`,Ce=(xe?.location_sensor_poll_interval||120)*1e3,{colorize:we,aboveColor:Te,belowColor:Ee,optimalColor:De}=L6(),Oe=e?[`spoolman-inventory-spools`]:[`inventory-spools`],ke=()=>y6(r,Oe),{data:Ae,isLoading:je}=K({queryKey:Oe,queryFn:()=>e?Z.getSpoolmanInventorySpools(!0):Z.getSpools(!0),refetchInterval:3e4}),Me=(0,y.useCallback)(async()=>{x(!0);try{await Z.exportSpoolsCsv()}catch(e){i(e instanceof Error?e.message:n(`inventory.csv.exportError`,`Export failed`),`error`)}finally{x(!1)}},[i,n]),Ne=e?n(`inventory.csv.spoolmanHint`,`In Spoolman mode, use Spoolman's built-in CSV import/export.`):void 0,{data:Pe=[]}=K({queryKey:_6,queryFn:Z.getLocations}),Fe=c.get(`location_id`),Ie=Fe===`__none__`?`__none__`:Fe&&/^\d+$/.test(Fe)&&Number(Fe)>0?Fe:``,Le=c.get(`spool`),Re=Le&&/^\d+$/.test(Le)&&Number(Le)>0?Number(Le):null,ze=Ae?.find(e=>e.id===Re)??null,Be=(0,y.useCallback)(()=>{f.current=!0,l(e=>(e.delete(`spool`),e),{replace:!0})},[l]),{data:Ve,isError:He,error:Ue}=K({queryKey:e?[`spoolman-inventory-spool`,Re]:[`inventory-spool`,Re],queryFn:()=>e?Z.getSpoolmanInventorySpool(Re):Z.getSpool(Re),enabled:t&&Re!==null&&ze===null,staleTime:1/0,retry:(e,t)=>e<2&&!(t instanceof sd&&t.status===404)});(0,y.useEffect)(()=>{if(!f.current){if(t&&Re&&ze){Be(),d({spool:ze,mode:`edit`});return}if(Ve){Be(),d({spool:Ve,mode:`edit`});return}He&&(Be(),i(n(Ue instanceof sd&&Ue.status===404?`inventory.deepLinkSpoolNotFound`:`inventory.deepLinkFetchFailed`),`error`))}},[t,Re,ze,Ve,He,Ue,Be,i,n]);let{data:We}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),refetchInterval:3e4}),{data:Ge=[],isError:Ke}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e,refetchInterval:3e4,staleTime:1e4,retry:1}),qe=(0,y.useRef)(!1);(0,y.useEffect)(()=>{Ke&&!qe.current?(qe.current=!0,i(n(`inventory.spoolmanUnreachable`),`error`)):Ke||(qe.current=!1)},[Ke,i,n]);let{data:Je}=K({queryKey:[`spool-catalog`],queryFn:()=>Z.getSpoolCatalog()}),Ye=q({mutationFn:t=>e?Z.deleteSpoolmanInventorySpool(t):Z.deleteSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolDeleted`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.deleteSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.deleteFailed`),`error`)}}),Xe=q({mutationFn:t=>e?Z.archiveSpoolmanInventorySpool(t):Z.archiveSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolArchived`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.archiveSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.archiveFailed`),`error`)}}),Ze=q({mutationFn:t=>e?Z.restoreSpoolmanInventorySpool(t):Z.restoreSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolRestored`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.restoreSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.restoreFailed`),`error`)}}),Qe=q({mutationFn:t=>e?Z.resetSpoolmanInventorySpoolConsumedCounter(t):Z.resetSpoolConsumedCounter(t),onSuccess:()=>{r.invalidateQueries({queryKey:Oe}),i(n(`inventory.consumedCounterReset`),`success`)},onError:()=>{i(n(`inventory.resetConsumedCounterFailed`),`error`)}}),$e=q({mutationFn:t=>e?Z.bulkResetSpoolmanInventorySpoolConsumedCounter(t):Z.bulkResetSpoolConsumedCounter(t),onSuccess:e=>{r.invalidateQueries({queryKey:Oe}),i(n(`inventory.allConsumedCountersReset`,{count:e.reset}),`success`),me(null),ge()},onError:()=>{i(n(`inventory.resetConsumedCounterFailed`),`error`)}}),et=e=>(e.not_found?.length??0)+(e.errors?.length??0),tt=q({mutationFn:async({ids:t,update:n})=>e?Z.bulkUpdateSpoolmanInventorySpools(t,n):Z.bulkUpdateSpools(t,n),onSuccess:e=>{ke();let t=et(e);if(e.updated===0){i(n(`inventory.bulk.updateAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.updatePartial`,{ok:e.updated,failed:t}),`warning`):i(n(`inventory.bulk.updateSuccess`,{count:e.updated}),`success`),fe(!1),ge()},onError:e=>{i(e.message||n(`inventory.bulk.updateFailed`),`error`)}}),nt=q({mutationFn:async t=>e?Z.bulkDeleteSpoolmanInventorySpools(t):Z.bulkDeleteSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.deleted===0){i(n(`inventory.bulk.deleteAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.deletePartial`,{ok:e.deleted,failed:t}),`warning`):i(n(`inventory.bulk.deleteSuccess`,{count:e.deleted}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.deleteFailed`),`error`)}}),rt=q({mutationFn:async t=>e?Z.bulkArchiveSpoolmanInventorySpools(t):Z.bulkArchiveSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.archived===0&&t>0){i(n(`inventory.bulk.archiveAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.archivePartial`,{ok:e.archived,failed:t}),`warning`):i(n(`inventory.bulk.archiveSuccess`,{count:e.archived}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.archiveFailed`),`error`)}}),it=q({mutationFn:async t=>e?Z.bulkRestoreSpoolmanInventorySpools(t):Z.bulkRestoreSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.restored===0&&t>0){i(n(`inventory.bulk.restoreAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.restorePartial`,{ok:e.restored,failed:t}),`warning`):i(n(`inventory.bulk.restoreSuccess`,{count:e.restored}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.restoreFailed`),`error`)}}),at=(0,y.useMemo)(()=>(Ae??[]).map(e=>e.id),[Ae]),ot=async t=>{if(t.last_scale_weight!=null)try{e?await Z.syncSpoolmanSpoolWeight(t.id,t.last_scale_weight):await Od.updateSpoolWeight(t.id,t.last_scale_weight),r.invalidateQueries({queryKey:Oe}),i(`Synced "${[t.brand,t.material,t.color_name].filter(Boolean).join(` `)}" to scale weight`,`success`)}catch(e){let t=e instanceof sd&&e.status===404,r=e instanceof sd&&e.status===503;i(n(t?`inventory.syncWeightSpoolNotFound`:r?`inventory.syncWeightSpoolmanUnreachable`:`inventory.syncWeightFailed`),`error`)}},st=xe?.low_stock_threshold??20,[ct,lt]=(0,y.useState)(!1),[ut,dt]=(0,y.useState)(st.toString());(0,y.useEffect)(()=>{ct||dt(st.toString())},[st,ct]);let ft=q({mutationFn:e=>Z.updateSettings({low_stock_threshold:e}),onSuccess:()=>{r.invalidateQueries({queryKey:[`settings`]}),i(n(`common.saved`),`success`),lt(!1)},onError:()=>{i(n(`inventory.lowStockThresholdError`),`error`)}}),pt=(0,y.useMemo)(()=>{if(!Ae)return null;let e=0,t=0,n=0,r=0,i={};for(let a of Ae){if(t+=Math.max(0,a.weight_used-(a.weight_used_baseline??0)),a.archived_at)continue;r++;let o=Math.max(0,a.label_weight-a.weight_used);e+=o,(a.label_weight>0?o/a.label_weight*100:0)<(a.low_stock_threshold_pct??st)&&n++;let s=a.material||`Unknown`;i[s]||(i[s]={count:0,weight:0}),i[s].count++,i[s].weight+=o}return{totalWeight:e,totalConsumed:t,lowStock:n,byMaterial:i,totalSpools:r}},[Ae,st]),mt=(We?.length??0)+(e?Ge.length:0),ht=Lf(xe?.currency||`USD`),gt=(0,y.useMemo)(()=>{let e={};for(let t of We||[])e[t.spool_id]={printer_id:t.printer_id,printer_name:t.printer_name,ams_id:t.ams_id,tray_id:t.tray_id,ams_label:t.ams_label??null};for(let t of Ge)typeof t?.spoolman_spool_id!=`number`||t.spoolman_spool_id<=0||typeof t.printer_id!=`number`||typeof t.ams_id!=`number`||typeof t.tray_id!=`number`||e[t.spoolman_spool_id]||(e[t.spoolman_spool_id]={printer_id:t.printer_id,printer_name:t.printer_name??null,ams_id:t.ams_id,tray_id:t.tray_id,ams_label:t.ams_label??null});return e},[We,Ge]),_t=(0,y.useMemo)(()=>{let e={};for(let t of Je||[])e[t.id]=t;return e},[Je]),{data:vt}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),yt=(0,y.useMemo)(()=>new Set((vt??[]).map(e=>e.location_id)),[vt]),bt=(0,y.useMemo)(()=>{let e=new Set;for(let t of Ae||[])t.location_id&&yt.has(t.location_id)&&e.add(t.location_id);return Array.from(e)},[Ae,yt]),xt=B===`cards`||B===`table`&&ne.some(e=>e.visible&&(e.id===`temperature`||e.id===`humidity`||e.id===`battery`)),St=Co({queries:bt.map(e=>({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),refetchInterval:Ce,enabled:xt}))}),Ct=(0,y.useMemo)(()=>{let e={};return bt.forEach((t,n)=>{let r=St[n]?.data;r&&(e[t]=r)}),e},[bt,St]),wt=(0,y.useMemo)(()=>pt?Object.entries(pt.byMaterial).sort((e,t)=>t[1].weight-e[1].weight).slice(0,4):[],[pt]),Tt=(0,y.useMemo)(()=>{let e=Ae||[];if(e=w===`active`?e.filter(e=>!e.archived_at):e.filter(e=>!!e.archived_at),E===`used`?e=e.filter(e=>e.weight_used>0):E===`new`?e=e.filter(e=>e.weight_used===0):E===`lowstock`&&(e=e.filter(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(e.label_weight>0?t/e.label_weight*100:0)<(e.low_stock_threshold_pct??st)})),O&&(e=e.filter(e=>e.material===O)),A&&(e=e.filter(e=>e.brand===A)),M&&(e=M===`__none__`?e.filter(e=>!e.category):e.filter(e=>e.category===M)),P){let t=Number(P);e=e.filter(e=>e.core_weight_catalog_id===t)}if(Ie)if(Ie===`__none__`)e=e.filter(e=>!e.location_id&&!e.storage_location?.trim());else{let t=Number(Ie),n=Pe.find(e=>e.id===t)?.name?.trim().toLowerCase();e=e.filter(e=>e.location_id==null?n?(e.storage_location||``).trim().toLowerCase()===n:!1:e.location_id===t)}return I===`stock`?e=e.filter(e=>!e.slicer_filament):I===`configured`&&(e=e.filter(e=>!!e.slicer_filament)),R&&(e=TH(e,R)),e},[Ae,w,E,O,A,M,P,I,Ie,R,st,Pe]),Et=()=>ve(0),Dt=(0,y.useCallback)(e=>{l(t=>(t.delete(`location_id`),e&&t.set(`location_id`,e),t),{replace:!0}),Et()},[l]),Ot=[...new Set(Ae?.map(e=>e.material)||[])].sort(),kt=[...new Set(Ae?.map(e=>e.brand).filter(Boolean)||[])].sort(),At=[...new Set(Ae?.map(e=>e.category?.trim()).filter(Boolean)||[])].sort(),jt=(Ae??[]).some(e=>!e.category),Mt=[...new Set(Ae?.map(e=>e.core_weight_catalog_id).filter(e=>e!=null)||[])].sort((e,t)=>{let n=(_t[e]?.name||``).toLowerCase(),r=(_t[t]?.name||``).toLowerCase();return n.localeCompare(r)}),Nt=(Ae??[]).some(e=>!e.location_id&&!e.storage_location?.trim()),Pt=w!==`active`||E!==`all`||!!O||!!A||!!M||!!P||!!Ie||I!==`all`||!!R,Ft=e=>{re(e),z1e(e)},It=(0,y.useMemo)(()=>ne.filter(e=>e.visible).map(e=>e.id),[ne]),Lt=e=>{E9[e]&&(te(t=>{let n;return n=t?.column===e?t.direction===`asc`?{column:e,direction:`desc`}:null:{column:e,direction:`asc`},U1e(n),n}),Et())},Rt=(0,y.useMemo)(()=>{if(!ee)return Tt;let e=E9[ee.column];return e?[...Tt].sort((t,n)=>{let r=e(t,gt,Ct),i=e(n,gt,Ct);return ri?ee.direction===`asc`?1:-1:0}):Tt},[Tt,ee,gt,Ct]),zt=(0,y.useMemo)(()=>{if(!oe)return Rt.map(e=>({type:`single`,spool:e}));let e=new Map;for(let t of Rt)if(!(t.weight_used>0||gt[t.id])){let n=I1e(t),r=e.get(n);r?r.push(t):e.set(n,[t])}let t=[],n=new Set;for(let r of Rt){if(r.weight_used>0||gt[r.id]){t.push({type:`single`,spool:r});continue}let i=I1e(r);if(n.has(i))continue;n.add(i);let a=e.get(i);a.length===1?t.push({type:`single`,spool:a[0]}):t.push({type:`group`,key:i,spools:a,representative:a[0]})}return t},[Rt,oe,gt]),Bt=ye===-1,Vt=zt.length,Ht=Bt?Vt||1:ye,Ut=Math.max(1,Math.ceil(Vt/Ht)),Wt=Bt?0:Math.min(_e,Ut-1),Gt=Bt?zt:zt.slice(Wt*Ht,(Wt+1)*Ht),Kt=()=>{let e=!oe;se(e),ce(new Set),Et();try{localStorage.setItem(`bambuddy-inventory-group`,String(e))}catch{}},qt=e=>{ce(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Jt=e=>{be(e),ve(0);try{localStorage.setItem(`bambuddy-inventory-pageSize`,String(e))}catch{}};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Cl,{className:`w-7 h-7 text-bambu-green`}),n(`inventory.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:n(`inventory.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,disabled:e,onClick:()=>v(!0),title:Ne,children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`inventory.csv.importButton`,`Import CSV`)]}),(0,G.jsxs)(Q,{variant:`secondary`,disabled:e||b,onClick:Me,title:Ne,children:[b?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xs,{className:`w-4 h-4`}),n(`inventory.csv.exportButton`,`Export CSV`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!0),children:[(0,G.jsx)(ol,{className:`w-4 h-4`}),n(`locations.manage`)]}),(0,G.jsxs)(Q,{variant:`secondary`,disabled:Tt.length===0,onClick:()=>g(Tt.map(e=>e.id)),title:Tt.length===0?n(`inventory.labels.noSpoolsTitle`,`No spools to label`):n(`inventory.labels.bulkTitle`,`Pick spools to print labels for from the {{count}} currently shown`,{count:Tt.length}),children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),n(`inventory.labels.printLabels`,`Print labels…`)]}),(0,G.jsxs)(Q,{onClick:()=>d({spool:null,mode:`create`}),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),n(`inventory.addSpool`)]})]})]}),pt&&!je&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-3`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.totalInventory`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:C9(pt.totalWeight,!0)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[pt.totalSpools,` `,pt.totalSpools===1?n(`inventory.spool`):n(`inventory.spools`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.totalConsumed`)})]}),pt.totalConsumed>0&&at.length>0&&(0,G.jsx)(`button`,{onClick:()=>m({type:`reset-all-consumed-counters`}),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded transition-colors`,title:n(`inventory.resetAllConsumedCountersTooltip`),"aria-label":n(`inventory.resetAllConsumedCounters`),children:(0,G.jsx)(nc,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:C9(pt.totalConsumed,!0)}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:n(`inventory.sinceTracking`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-green-600 dark:text-green-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.byMaterial`)})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mt-1`,children:wt.map(([e,t])=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium ${B1e[e]||`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[e,` `,(0,G.jsx)(`span`,{className:`opacity-70`,children:C9(t.weight,!0)})]},e))})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.inPrinter`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:mt}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:n(`inventory.loadedInAms`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.lowStock`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold ${pt.lowStock>0?`text-yellow-700 dark:text-yellow-400`:`text-white`}`,children:pt.lowStock}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1 flex items-center gap-2`,children:ct?(0,G.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=parseFloat(ut);!isNaN(t)&&t>=.1&&t<=99.9?ft.mutate(t):i(n(`inventory.lowStockThresholdError`),`error`)},className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`<`}),(0,G.jsx)(`input`,{type:`text`,inputMode:`decimal`,pattern:`^\\d{0,2}(\\.\\d?)?$`,maxLength:4,value:ut,onChange:e=>{let t=e.target.value.replace(/[^\d.]/g,``);/^\d{0,2}(\.\d?)?$/.test(t)&&dt(t)},className:`px-1.5 py-1 rounded border border-bambu-dark-tertiary text-xs text-white bg-bambu-dark-secondary focus:outline-none focus:border-bambu-green w-14 text-center`,onWheel:e=>e.currentTarget.blur(),disabled:ft.isPending}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`%`}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:ft.isPending,children:n(`common.save`)}),(0,G.jsx)(Q,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>lt(!1),disabled:ft.isPending,children:n(`common.cancel`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`< `,st,`%`]}),(0,G.jsx)(`button`,{className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:n(`common.edit`),onClick:()=>{dt(st.toString()),lt(!0)},children:(0,G.jsx)(kl,{className:`w-4 h-4`})})]})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3 items-start sm:items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 max-w-md ${B===`forecast`?`invisible pointer-events-none`:``}`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50`}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>{z(e.target.value),Et()},placeholder:n(`inventory.search`),className:`w-full pl-10 pr-8 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),R&&(0,G.jsx)(`button`,{onClick:()=>{z(``),Et()},className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[B===`table`&&(0,G.jsxs)(`button`,{onClick:()=>ae(!0),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-bambu-gray border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,title:n(`inventory.configureColumns`),children:[(0,G.jsx)(zs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.columns`)})]}),B!==`forecast`&&(0,G.jsxs)(`button`,{onClick:Kt,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium border rounded-lg transition-colors ${oe?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,title:n(`inventory.groupSimilar`),children:[(0,G.jsx)(Mc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.groupSimilar`)})]}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-primary border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>V(`table`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors ${B===`table`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Tu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.table`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(`cards`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors ${B===`cards`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.cards`)})]}),(0,G.jsxs)(`button`,{onClick:()=>s&&V(`forecast`),disabled:!s,title:s?void 0:n(`forecast.noReadAccess`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${B===`forecast`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[s?(0,G.jsx)(Iu,{className:`w-4 h-4`}):(0,G.jsx)(nl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`forecast.title`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 ${B===`forecast`?`hidden`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>{T(`active`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${w===`active`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5`}),n(`inventory.active`)]}),(0,G.jsxs)(`button`,{onClick:()=>{T(`archived`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${w===`archived`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5`}),n(`inventory.archived`)]})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>{D(`all`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${E===`all`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.all`)}),(0,G.jsxs)(`button`,{onClick:()=>{D(`used`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${E===`used`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),n(`inventory.used`)]}),(0,G.jsx)(`button`,{onClick:()=>{D(`new`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${E===`new`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.new`)}),(0,G.jsxs)(`button`,{onClick:()=>{D(`lowstock`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${E===`lowstock`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),n(`inventory.lowStock`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>{L(`all`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`all`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.all`)}),(0,G.jsx)(`button`,{onClick:()=>{L(`stock`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`stock`?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.stock`)}),(0,G.jsx)(`button`,{onClick:()=>{L(`configured`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`configured`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.configured`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`select`,{value:O,onChange:e=>{k(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${O?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.material`)}),Ot.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`select`,{value:A,onChange:e=>{j(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${A?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.brand`)}),kt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(At.length>0||M)&&(0,G.jsxs)(`select`,{value:M,onChange:e=>{N(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${M?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.category`)}),At.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),jt&&(0,G.jsx)(`option`,{value:`__none__`,children:n(`inventory.categoryNone`)})]}),Mt.length>0&&(0,G.jsxs)(`select`,{value:P,onChange:e=>{F(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${P?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.spoolName`)}),Mt.map(e=>(0,G.jsx)(`option`,{value:e,children:_t[e]?.name||`#${e}`},e))]}),(Pe.length>0||Ie)&&(0,G.jsxs)(`select`,{value:Ie,onChange:e=>{Dt(e.target.value)},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${Ie?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.storageLocation`)}),Pe.map(e=>(0,G.jsx)(`option`,{value:String(e.id),children:e.name},e.id)),Nt&&(0,G.jsx)(`option`,{value:`__none__`,children:n(`inventory.storageLocationNone`)})]}),Pt&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`button`,{onClick:()=>{T(`active`),D(`all`),k(``),j(``),N(``),F(``),L(`all`),z(``),l(e=>(e.delete(`location_id`),e),{replace:!0}),Et()},className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-bambu-green transition-colors`,children:[(0,G.jsx)(nd,{className:`w-3.5 h-3.5`}),n(`inventory.clearFilters`)]})]}),B!==`forecast`&&(0,G.jsxs)(`span`,{className:`ml-auto text-xs text-bambu-gray`,children:[Rt.length,` `,Rt.length===1?n(`inventory.spool`):n(`inventory.spools`),oe&&Vt0&&B!==`forecast`&&(0,G.jsxs)(`div`,{className:`sticky top-2 z-10 mb-4 flex items-center gap-2 px-3 py-2 bg-bambu-green/10 border border-bambu-green/30 rounded-lg backdrop-blur-sm`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-green font-medium`,children:n(`inventory.bulk.selectionCount`,{count:le.size})}),(0,G.jsxs)(`div`,{className:`ml-auto flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>fe(!0),children:[(0,G.jsx)(kl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.edit`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>g([...le]),children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.printLabels`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`reset-consumed-counter`),children:[(0,G.jsx)(nc,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.resetUsage`)]}),w===`archived`?(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`restore`),children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.restore`)]}):(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`archive`),children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.archive`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`danger`,onClick:()=>me(`delete`),children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.delete`)]}),(0,G.jsx)(`button`,{className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,onClick:ge,title:n(`inventory.bulk.clearSelection`),"aria-label":n(`inventory.bulk.clearSelection`),children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),je?(0,G.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):B===`forecast`?(0,G.jsx)(q$e,{spools:Ae||[]}):B===`cards`?Gt.length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:Gt.map(e=>{if(e.type===`group`){let{key:t,spools:r,representative:i}=e,a=r.reduce((e,t)=>e+Math.max(0,t.label_weight-t.weight_used),0),o=xH({rgba:i.rgba,extraColors:i.extra_colors,effectType:i.effect_type,subtype:i.subtype,effectSize:`groupheader`}),s=H.has(t);return(0,G.jsxs)(`div`,{className:`col-span-full`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-green/30 hover:border-bambu-green transition-colors cursor-pointer`,onClick:()=>qt(t),children:[(0,G.jsx)(`div`,{className:`h-10 flex items-center px-4 gap-3`,style:o,children:(0,G.jsx)(`span`,{className:`bg-white/90 text-gray-800 px-3 py-0.5 rounded-full text-sm font-medium`,children:kf(i.color_name,i.rgba)||`-`})}),(0,G.jsxs)(`div`,{className:`px-4 py-3 flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${s?``:`-rotate-90`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`font-semibold text-white`,children:[i.material,i.subtype?` ${i.subtype}`:``]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i.brand||`-`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,title:n(`inventory.remaining`),children:C9(a)}),(0,G.jsx)(`span`,{className:`text-xs font-medium bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full`,children:n(`inventory.groupedSpools`,{count:r.length})})]})]})]}),s&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 mt-2 ml-4`,children:r.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(0,G.jsx)(q1e,{spool:e,remaining:t,pct:e.label_weight>0?t/e.label_weight*100:0,onClick:()=>d({spool:e,mode:`edit`}),onPrintLabel:()=>g([e.id]),onCopy:()=>d({spool:e,mode:`copy`}),t:n,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},e.id)})})]},`group-${t}`)}let t=e.spool,r=Math.max(0,t.label_weight-t.weight_used);return(0,G.jsx)(q1e,{spool:t,remaining:r,pct:t.label_weight>0?r/t.label_weight*100:0,onClick:()=>d({spool:t,mode:`edit`}),onPrintLabel:()=>g([t.id]),onCopy:()=>d({spool:t,mode:`copy`}),t:n,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},t.id)})}),(0,G.jsx)(K1e,{pageIndex:Wt,pageSize:ye,totalRows:Vt,totalPages:Ut,onPageChange:ve,onPageSizeChange:Jt,t:n})]}):(0,G.jsx)($1e,{hasFilters:Pt,onAddSpool:()=>d({spool:null,mode:`create`}),t:n}):Gt.length>0?(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`w-10 px-3 py-3`,children:(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":n(`inventory.bulk.selectAllVisible`),checked:Gt.length>0&&Gt.every(e=>(e.type===`group`?e.spools.map(e=>e.id):[e.spool.id]).every(e=>le.has(e))),onChange:e=>{if(e.target.checked){let e=new Set(le);for(let t of Gt){let n=t.type===`group`?t.spools.map(e=>e.id):[t.spool.id];for(let t of n)e.add(t)}ue(e)}else{let e=new Set(le);for(let t of Gt){let n=t.type===`group`?t.spools.map(e=>e.id):[t.spool.id];for(let t of n)e.delete(t)}ue(e)}}})}),It.map(e=>{let t=!!E9[e],r=ee?.column===e;return(0,G.jsx)(`th`,{className:`text-left py-3 px-4 text-xs font-medium uppercase tracking-wide select-none ${e===`remaining`?`min-w-[150px]`:``} ${t?`cursor-pointer hover:text-bambu-green transition-colors`:``} ${r?`text-bambu-green`:`text-bambu-gray`}`,onClick:t?()=>Lt(e):void 0,children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[V1e[e]?.(n)??e,t&&(r?ee.direction===`asc`?(0,G.jsx)(Ho,{className:`w-3 h-3`}):(0,G.jsx)(Io,{className:`w-3 h-3`}):(0,G.jsx)(Bo,{className:`w-3 h-3 opacity-30`}))]})},e)}),(0,G.jsx)(`th`,{className:`text-right py-3 px-4 text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:n(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:Gt.map(e=>{if(e.type===`group`){let{key:t,spools:r}=e,i=H.has(t),a=F1e(r),o=Math.max(0,a.label_weight-a.weight_used);return(0,G.jsx)(Q1e,{spools:r,headerSpool:a,remaining:o,pct:a.label_weight>0?o/a.label_weight*100:0,isExpanded:i,onToggle:()=>qt(t),selectedIds:le,onToggleSelected:he,onToggleGroupSelected:(e,t)=>{ue(n=>{let r=new Set(n);for(let n of e)t?r.add(n):r.delete(n);return r})},onEdit:e=>d({spool:e,mode:`edit`}),onCopy:e=>d({spool:e,mode:`copy`}),onArchive:e=>m({type:`archive`,spoolId:e}),onDelete:e=>m({type:`delete`,spoolId:e}),onPrintLabel:e=>g([e]),onResetConsumedCounter:e=>m({type:`reset-consumed-counter`,spoolId:e}),visibleColumns:It,assignmentMap:gt,catalogMap:_t,locationReadingsMap:Ct,currencySymbol:ht,dateFormat:Se,t:n,onSyncWeight:ot,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},`group-${t}`)}let t=e.spool,r=Math.max(0,t.label_weight-t.weight_used);return(0,G.jsx)(Z1e,{spool:t,remaining:r,pct:t.label_weight>0?r/t.label_weight*100:0,isSelected:le.has(t.id),onToggleSelected:()=>he(t.id),onEdit:()=>d({spool:t,mode:`edit`}),onCopy:()=>d({spool:t,mode:`copy`}),onRestore:()=>Ze.mutate(t.id),onArchive:()=>m({type:`archive`,spoolId:t.id}),onDelete:()=>m({type:`delete`,spoolId:t.id}),onPrintLabel:()=>g([t.id]),onResetConsumedCounter:()=>m({type:`reset-consumed-counter`,spoolId:t.id}),visibleColumns:It,assignmentMap:gt,catalogMap:_t,locationReadingsMap:Ct,currencySymbol:ht,dateFormat:Se,t:n,onSyncWeight:ot,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},t.id)})})]})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 bg-bambu-dark-tertiary/50 border-t border-bambu-dark-tertiary text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:Bt?`${Vt} ${n(Vt===1?`inventory.spool`:`inventory.spools`)}`:(0,G.jsxs)(G.Fragment,{children:[n(`inventory.showing`),` `,Wt*Ht+1,` `,n(`inventory.to`),` `,Math.min((Wt+1)*Ht,Vt),` `,n(`inventory.of`),` `,Vt,` `,n(`inventory.spools`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`inventory.show`)}),(0,G.jsxs)(`select`,{value:ye,onChange:e=>Jt(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[15,30,50,100].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:n(`inventory.all`)})]}),!Bt&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>ve(0),disabled:Wt===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,title:`First page`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>ve(e=>Math.max(0,e-1)),disabled:Wt===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[n(`inventory.page`),` `,Wt+1,` `,n(`inventory.of`),` `,Ut]}),(0,G.jsx)(`button`,{onClick:()=>ve(e=>Math.min(Ut-1,e+1)),disabled:Wt>=Ut-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>ve(Ut-1),disabled:Wt>=Ut-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,title:`Last page`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})]}):(0,G.jsx)($1e,{hasFilters:Pt,onAddSpool:()=>d({spool:null,mode:`create`}),t:n}),u!==null&&(0,G.jsx)(w1e,{isOpen:!0,onClose:()=>d(null),spool:u.spool,mode:u.mode,currencySymbol:ht,spoolmanMode:e,spoolsQueryKey:Oe}),p&&(0,G.jsx)(of,{title:p.type===`delete`?n(`common.delete`):p.type===`archive`?n(`inventory.archive`):p.type===`reset-consumed-counter`?n(`inventory.resetConsumedCounter`):n(`inventory.resetAllConsumedCounters`),message:p.type===`delete`?n(`inventory.deleteConfirm`):p.type===`archive`?n(`inventory.archiveConfirm`):p.type===`reset-consumed-counter`?n(`inventory.resetConsumedCounterConfirm`):n(`inventory.resetAllConsumedCountersConfirm`,{count:at.length}),confirmText:p.type===`delete`?n(`common.delete`):p.type===`archive`?n(`inventory.archive`):n(`inventory.resetConsumedCounter`),variant:p.type===`archive`?`warning`:`danger`,onConfirm:()=>{p.type===`delete`?Ye.mutate(p.spoolId):p.type===`archive`?Xe.mutate(p.spoolId):p.type===`reset-consumed-counter`?Qe.mutate(p.spoolId):$e.mutate(at),m(null)},onCancel:()=>m(null)}),(0,G.jsx)(tG,{isOpen:ie,onClose:()=>ae(!1),columns:ne,defaultColumns:S9,onSave:Ft}),(0,G.jsx)(j1e,{isOpen:h!==null,onClose:()=>g(null),availableSpools:Tt,initialSelectedIds:h??[],spoolmanMode:e}),(0,G.jsx)(P1e,{isOpen:de,selectedCount:le.size,isPending:tt.isPending,availableLocations:Pe.map(e=>({id:e.id,name:e.name})),availableMaterials:x9((Ae??[]).map(e=>e.material)),availableSubtypes:x9((Ae??[]).map(e=>e.subtype)),availableBrands:x9((Ae??[]).map(e=>e.brand)),availableCategories:x9((Ae??[]).map(e=>e.category)),availableSlicerFilaments:x9((Ae??[]).map(e=>e.slicer_filament)),availableSlicerFilamentNames:x9((Ae??[]).map(e=>e.slicer_filament_name)),onClose:()=>fe(!1),onApply:e=>tt.mutate({ids:[...le],update:e})}),pe&&(0,G.jsx)(of,{title:n(pe===`delete`?`inventory.bulk.deleteTitle`:pe===`archive`?`inventory.bulk.archiveTitle`:pe===`restore`?`inventory.bulk.restoreTitle`:`inventory.bulk.resetUsageTitle`),message:n(pe===`delete`?`inventory.bulk.deleteMessage`:pe===`archive`?`inventory.bulk.archiveMessage`:pe===`restore`?`inventory.bulk.restoreMessage`:`inventory.bulk.resetUsageMessage`,{count:le.size}),confirmText:n(pe===`delete`?`common.delete`:pe===`archive`?`inventory.archive`:pe===`restore`?`inventory.restore`:`inventory.resetConsumedCounter`),variant:pe===`delete`?`danger`:`warning`,isLoading:nt.isPending||rt.isPending||it.isPending||$e.isPending,onConfirm:()=>{let e=[...le];pe===`delete`?nt.mutate(e):pe===`archive`?rt.mutate(e):pe===`restore`?it.mutate(e):$e.mutate(e)},onCancel:()=>me(null)}),_&&(0,G.jsx)(M1e,{onClose:()=>v(!1),onImported:e=>{v(!1),r.invalidateQueries({queryKey:Oe}),i(n(`inventory.csv.importSuccess`,`{{count}} spools imported`,{count:e}),`success`)}}),(0,G.jsx)(X6,{open:S,onClose:()=>C(!1),onPickLocation:e=>Dt(String(e))})]})}function K1e({pageIndex:e,pageSize:t,totalRows:n,totalPages:r,onPageChange:i,onPageSizeChange:a,t:o}){let s=t===-1;if(r<=1&&!s)return null;let c=s?n||1:t;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:s?`${n} ${o(n===1?`inventory.spool`:`inventory.spools`)}`:(0,G.jsxs)(G.Fragment,{children:[o(`inventory.showing`),` `,e*c+1,` `,o(`inventory.to`),` `,Math.min((e+1)*c,n),` `,o(`inventory.of`),` `,n,` `,o(`inventory.spools`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`inventory.show`)}),(0,G.jsxs)(`select`,{value:t,onChange:e=>a(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[15,30,50,100].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:o(`inventory.all`)})]}),!s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>i(0),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(Math.max(0,e-1)),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[o(`inventory.page`),` `,e+1,` `,o(`inventory.of`),` `,r]}),(0,G.jsx)(`button`,{onClick:()=>i(Math.min(r-1,e+1)),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(r-1),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})}function q1e({spool:e,remaining:t,pct:n,onClick:r,onPrintLabel:i,onCopy:a,t:o,colorizeLocationSensors:s,locationSensorAboveColor:c,locationSensorBelowColor:l,locationSensorOptimalColor:u}){let d=xH({rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`card`});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary hover:border-bambu-green transition-colors cursor-pointer ${e.archived_at?`opacity-50`:``}`,onClick:r,children:[(0,G.jsxs)(`div`,{className:`h-14 flex items-center justify-center`,style:d,children:[(0,G.jsx)(`span`,{className:`bg-white/90 text-gray-800 px-3 py-0.5 rounded-full text-sm font-medium`,children:kf(e.color_name,e.rgba)||`-`}),a&&(0,G.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),a()},className:`p-1.5 bg-black/20 hover:bg-black/40 text-white rounded-full transition-colors`,title:o(`inventory.copySpool`),children:(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`font-semibold text-white`,children:[e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e.brand||`-`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[i&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),i()},className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,title:o(`inventory.labels.printOne`),"aria-label":o(`inventory.labels.printOne`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray bg-bambu-dark-tertiary px-2 py-1 rounded`,children:[`#`,e.id]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-xs text-bambu-gray mb-1`,children:[(0,G.jsx)(`span`,{children:o(`inventory.remaining`)}),(0,G.jsxs)(`span`,{children:[Math.round(n),`%`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${n>50?`bg-bambu-green`:n>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(n,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(t),`g`]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[o(`inventory.labelWeight`),`: `]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:C9(e.label_weight)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[o(`inventory.weightUsed`),`: `]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e.weight_used>0?C9(e.weight_used):`-`})]})]}),e.location_id&&(0,G.jsx)(X1e,{locationId:e.location_id,locationName:e.storage_location??null,isLast:!e.note,colorize:s,aboveColor:c,belowColor:l,optimalColor:u}),e.note&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/60 pt-3 border-t border-bambu-dark-tertiary truncate`,title:e.note,children:e.note})]})]})}var J1e={temperature:0,humidity:1,battery:2};function Y1e(e){return e===`humidity`?`mr-[2px]`:e===`battery`?`mr-[3px]`:``}function O9(e,t){return PT(e,t,{decimals:2})}function k9(e,t,n,r,i){return t&&z6(R6(e),n,r,i)||`text-bambu-gray`}function X1e({locationId:e,locationName:t,isLast:n,colorize:r,aboveColor:i,belowColor:a,optimalColor:o}){let{t:s}=U(),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=(c?.location_sensor_poll_interval||120)*1e3,{data:u}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),d=(u??[]).some(t=>t.location_id===e),{data:f}=K({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),refetchInterval:l,enabled:d}),p=f?.filter(e=>e.show_on_card);if(!p?.length)return null;let m=p.find(e=>e.device_class===`battery`),h=p.filter(e=>e.device_class!==`battery`).sort((e,t)=>(J1e[e.device_class??``]??99)-(J1e[t.device_class??``]??99));return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-3 border-t border-bambu-dark-tertiary text-xs text-bambu-gray ${n?`-mb-1`:``}`,children:[t&&(0,G.jsx)(`span`,{className:`truncate`,children:t}),(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`|`}),(0,G.jsx)(`div`,{className:`flex items-center gap-3`,children:h.map((e,t)=>{let n=FT(e),c=t===0?`ml-[-3.6px]`:``;return(0,G.jsxs)(`span`,{title:e.name,className:`flex items-center gap-[3px]`,children:[(0,G.jsx)(n,{className:`w-3 h-3 ${Y1e(e.device_class)} ${c}`}),(0,G.jsx)(`span`,{className:k9(e,r,i,a,o),children:O9(e,s)})]},e.id)})}),m&&(()=>{let e=FT(m);return(0,G.jsxs)(`span`,{title:m.name,className:`flex items-center gap-[3px] ml-auto`,children:[(0,G.jsx)(e,{className:`w-3 h-3 ${Y1e(m.device_class)}`}),(0,G.jsx)(`span`,{className:k9(m,r,i,a,o),children:O9(m,s)})]},m.id)})()]})}function Z1e({spool:e,remaining:t,pct:n,isSelected:r,onToggleSelected:i,onEdit:a,onCopy:o,onRestore:s,onArchive:c,onDelete:l,onPrintLabel:u,onResetConsumedCounter:d,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C}){return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-tertiary/30 transition-colors cursor-pointer ${e.archived_at?`opacity-50`:``} ${r?`bg-bambu-green/10`:``}`,onClick:a,children:[(0,G.jsx)(`td`,{className:`w-10 px-3 py-3`,onClick:e=>e.stopPropagation(),children:i&&(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":v(`inventory.bulk.selectRow`),checked:!!r,onChange:i})}),f.map(r=>(0,G.jsx)(`td`,{className:`py-3 px-4`,children:T9[r]?.({spool:e,remaining:t,pct:n,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})},r)),(0,G.jsx)(`td`,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{onClick:a,className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:v(`common.edit`),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),o&&(0,G.jsx)(`button`,{onClick:o,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:v(`inventory.copySpool`),children:(0,G.jsx)(Vs,{className:`w-4 h-4`})}),u&&(0,G.jsx)(`button`,{onClick:u,className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:v(`inventory.labels.printOne`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})}),d&&e.weight_used>0&&(0,G.jsx)(`button`,{onClick:d,className:`p-1.5 text-bambu-gray hover:text-orange-600 dark:hover:text-orange-400 rounded transition-colors`,title:v(`inventory.resetConsumedCounterTooltip`),children:(0,G.jsx)(nc,{className:`w-4 h-4`})}),e.archived_at?(0,G.jsx)(`button`,{onClick:s,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:v(`inventory.restore`),children:(0,G.jsx)(Wl,{className:`w-4 h-4`})}):(0,G.jsx)(`button`,{onClick:c,className:`p-1.5 text-bambu-gray hover:text-yellow-600 dark:hover:text-yellow-400 rounded transition-colors`,title:v(`inventory.archive`),children:(0,G.jsx)(Po,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:l,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded transition-colors`,title:v(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}function Q1e({spools:e,headerSpool:t,remaining:n,pct:r,isExpanded:i,onToggle:a,onEdit:o,onCopy:s,onArchive:c,onDelete:l,onPrintLabel:u,onResetConsumedCounter:d,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C,selectedIds:w,onToggleSelected:T,onToggleGroupSelected:E}){let D=!!w&&e.every(e=>w.has(e.id));return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-tertiary/30 transition-colors cursor-pointer bg-bambu-green/5`,onClick:a,children:[(0,G.jsx)(`td`,{className:`w-10 px-3 py-3`,onClick:e=>e.stopPropagation(),children:E&&(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":v(`inventory.bulk.selectGroup`),checked:D,onChange:t=>E(e.map(e=>e.id),t.target.checked)})}),f.map((a,o)=>(0,G.jsx)(`td`,{className:`py-3 px-4`,children:o===0?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?``:`-rotate-90`}`}),T9[a]?.({spool:t,remaining:n,pct:r,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})]}):a===`id`?(0,G.jsx)(`span`,{className:`text-xs font-medium bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full`,children:v(`inventory.groupedSpools`,{count:e.length})}):T9[a]?.({spool:t,remaining:n,pct:r,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})},a)),(0,G.jsx)(`td`,{className:`py-3 px-4`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.map(e=>`#${e.id}`).join(`, `)})})]}),i&&e.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(0,G.jsx)(Z1e,{spool:e,remaining:t,pct:e.label_weight>0?t/e.label_weight*100:0,isSelected:w?.has(e.id),onToggleSelected:T?()=>T(e.id):void 0,onEdit:()=>o(e),onCopy:s?()=>s(e):void 0,onRestore:()=>{},onArchive:()=>c(e.id),onDelete:()=>l(e.id),onPrintLabel:u?()=>u(e.id):void 0,onResetConsumedCounter:d?()=>d(e.id):void 0,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C},e.id)})]})}function $1e({hasFilters:e,onAddSpool:t,t:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 px-4`,children:[(0,G.jsxs)(`div`,{className:`relative mb-6`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 -m-4 bg-bambu-green/5 rounded-full blur-2xl`}),(0,G.jsxs)(`div`,{className:`relative flex items-center justify-center w-24 h-24 rounded-2xl bg-gradient-to-br from-bambu-dark-secondary to-bambu-dark-tertiary border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsx)(`div`,{className:`absolute -top-1 -right-1 w-3 h-3 rounded-full bg-bambu-green/30`}),(0,G.jsx)(`div`,{className:`absolute -bottom-2 -left-2 w-2 h-2 rounded-full bg-bambu-green/20`}),e?(0,G.jsx)(Ql,{className:`w-10 h-10 text-bambu-gray/40`,strokeWidth:1.5}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full border-4 border-bambu-gray/20 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-6 h-6 rounded-full bg-bambu-gray/10 border-2 border-bambu-gray/20`})}),(0,G.jsx)(`div`,{className:`absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-bambu-green flex items-center justify-center shadow-md`,children:(0,G.jsx)(`span`,{className:`text-white text-lg font-bold leading-none`,children:`+`})})]})]})]}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2 text-center`,children:e?n(`inventory.noSpoolsMatch`):n(`inventory.noSpools`).split(`.`)[0]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center max-w-sm mb-6`,children:n(e?`inventory.noSpoolsMatchDesc`:`inventory.noSpools`)}),!e&&(0,G.jsxs)(Q,{onClick:t,children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),n(`inventory.addSpool`)]})]})}function A9(e,t){let n=e?.[t];return typeof n==`string`?n:``}function e0e(e){return e.replace(/(https?:\/\/(?:makerworld|public-cdn)\.bblmw\.com\/[^\s"']+)/gi,e=>`/api/v1/makerworld/thumbnail?url=${encodeURIComponent(e)}`)}function j9(e){return e?/^https?:\/\/(makerworld|public-cdn)\.bblmw\.com\//i.test(e)?`/api/v1/makerworld/thumbnail?url=${encodeURIComponent(e)}`:e:``}function M9(e,t){let n=e?.[t];return typeof n==`number`?n:null}function t0e(e,t){let n=e?.[t];return n&&typeof n==`object`&&!Array.isArray(n)?n:void 0}function n0e(e,t=0,n=[]){n.push({folder:e,depth:t});for(let r of e.children??[])n0e(r,t+1,n);return n}function r0e(e,t){return t(e<1?`makerworld.phaseResolving`:`makerworld.phaseDownloading`)}function i0e(e){let[t,n]=(0,y.useState)(0);return(0,y.useEffect)(()=>{if(!e){n(0);return}let t=Date.now(),r=()=>n(Math.floor((Date.now()-t)/1e3));r();let i=window.setInterval(r,1e3);return()=>window.clearInterval(i)},[e]),t}function a0e(){let{t:e}=U(),{hasPermission:t}=Nd(),{showToast:n}=qd(),r=co(),i=t(`makerworld:import`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)({}),S=K({queryKey:[`makerworld-status`],queryFn:()=>Z.getMakerworldStatus()}),C=K({queryKey:[`library-folders`],queryFn:()=>Z.getLibraryFolders()}),w=K({queryKey:[`makerworld-recent-imports`],queryFn:()=>Z.getMakerworldRecentImports(10)}),T=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),E=T.data?.use_slicer_api??!1,D=T.data?.preferred_slicer||`bambu_studio`,O=HW(T.data?.open_in_slicer,T.data?.preferred_slicer),k=E?D:O,A=k===`orcaslicer`?`OrcaSlicer`:`Bambu Studio`,[j,M]=(0,y.useState)(null),N=(e,t)=>{M({kind:`libraryFile`,id:e,filename:t})},P=q({mutationFn:e=>Z.resolveMakerworldUrl(e),onSuccess:(e,t)=>{c(e),v(t),x({})},onError:t=>n(t.message||e(`makerworld.errors.resolveFailed`),`error`)});(0,y.useEffect)(()=>{s!==null&&a.trim()!==_.trim()&&(c(null),v(``),x({}))},[a,s,_]);let F=q({mutationFn:({instanceId:e,profileId:t})=>Z.importMakerworldInstance(s?.model_id??0,e,t,l),onSuccess:t=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),t.profile_id&&x(e=>({...e,[t.profile_id]:t})),n(t.was_existing?e(`makerworld.alreadyInLibrary`):e(`makerworld.importSuccess`,{filename:t.filename}),`success`)},onError:t=>n(t.message||e(`makerworld.errors.downloadFailed`),`error`)}),I=q({mutationFn:({libraryFileId:e})=>Z.deleteLibraryFile(e),onSuccess:(t,{profileId:i})=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),r.invalidateQueries({queryKey:[`makerworld-recent-imports`]}),x(e=>{let t={...e};return delete t[i],t}),m(null),n(e(`makerworld.importDeleted`),`success`)},onError:t=>{m(null),n(t.message||e(`makerworld.errors.deleteFailed`),`error`)}}),L=q({mutationFn:({instanceId:e,profileId:t})=>Z.importMakerworldInstance(s?.model_id??0,e,t,l),onSuccess:async e=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),r.invalidateQueries({queryKey:[`makerworld-recent-imports`]}),e.profile_id&&x(t=>({...t,[e.profile_id]:e})),E?N(e.library_file_id,e.filename):await te(e.library_file_id,e.filename,k)},onError:t=>n(t.message||e(`makerworld.errors.downloadFailed`),`error`)}),R=i0e(F.isPending||L.isPending),z=r0e(R,e),B=e=>{e?.preventDefault();let t=a.trim();t&&P.mutate(t)};(0,y.useEffect)(()=>{if(!h)return;let e=e=>{e.key===`Escape`?g(null):e.key===`ArrowLeft`?g(e=>e&&e.index>0?{...e,index:e.index-1}:e):e.key===`ArrowRight`&&g(e=>e&&e.indexwindow.removeEventListener(`keydown`,e)},[h]);let V=e=>{let t=(Array.isArray(e.pictures)?e.pictures:[]).filter(e=>typeof e==`object`&&!!e).map(e=>({name:A9(e,`name`)||`image`,url:A9(e,`url`)})).filter(e=>e.url);if(t.length>0)return t;let n=A9(e,`cover`);return n?[{name:`cover`,url:n}]:[]},ee=async()=>{if(!s)return;let e=s.instances.filter(e=>{let t=M9(e,`profileId`);return t!==null&&!b[t]});if(e.length!==0){f({current:0,total:e.length});try{for(let t=0;t{try{let{token:r}=await Z.createLibrarySlicerToken(e),i=Z.getLibrarySlicerDownloadUrl(e,r,t);KW(`${window.location.origin}${i}`,n)}catch{let t=Z.getLibraryFileDownloadUrl(e);KW(`${window.location.origin}${t}`,n)}},ne=s?.design,re=t0e(ne,`designCreator`),ie=s?.instances??[],ae=(s?.already_imported_library_ids.length??0)>0,oe=S.data?.can_download??!1,se=S.data?.sign_in_expired??!1,H=(0,y.useMemo)(()=>A9(ne,`coverUrl`),[ne]),ce=A9(ne,`title`),le=A9(ne,`summary`),ue=A9(ne,`license`),de=M9(ne,`downloadCount`);return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 max-w-screen-2xl space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Ac,{className:`w-7 h-7 text-bambu-green`}),e(`makerworld.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`makerworld.description`)})]}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[1fr_20rem]`,children:[(0,G.jsxs)(`div`,{className:`space-y-6 min-w-0`,children:[!oe&&(0,G.jsx)(zd,{className:`border-amber-300 dark:border-amber-700 bg-amber-50 dark:bg-amber-900/20`,children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3 py-2`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 mt-0.5 shrink-0`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`font-medium text-amber-900 dark:text-amber-100`,children:e(se?`makerworld.signInExpiredTitle`:`makerworld.signInRequiredTitle`)}),(0,G.jsxs)(`p`,{className:`text-amber-800 dark:text-amber-200 mt-1`,children:[e(se?`makerworld.signInExpiredBody`:`makerworld.signInRequiredBody`),` `,(0,G.jsx)(Ai,{to:`/profiles`,className:`underline`,children:e(`makerworld.openCloudSettings`)})]})]})]})})}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`makerworld.pasteUrlHeader`)})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`form`,{onSubmit:B,className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:e(`makerworld.pasteUrlPlaceholder`),className:`flex-1 min-w-0 px-3 py-2 border rounded bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700`,autoComplete:`off`}),(0,G.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:!a.trim()||P.isPending,children:[P.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(zo,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.resolveButton`)})]})]})})]}),s&&(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex gap-4 py-2`,children:[H&&(0,G.jsx)(`img`,{src:j9(H),alt:ce,className:`w-32 h-32 object-cover rounded`,loading:`lazy`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-xl font-semibold truncate`,children:ce||e(`makerworld.untitledModel`)}),re&&(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400 mt-1`,children:e(`makerworld.byCreator`,{name:A9(re,`name`)})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 mt-2 text-xs text-gray-500 dark:text-gray-400`,children:[de!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.downloadsCount`,{count:de})}),ue&&(0,G.jsxs)(`span`,{children:[e(`makerworld.licensePrefix`),`: `,ue]}),ae&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-emerald-600 dark:text-emerald-400`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),` `,e(`makerworld.alreadyImported`)]})]}),le&&(0,G.jsx)(`div`,{className:`mt-3 text-sm prose prose-sm max-w-none dark:prose-invert line-clamp-3`,dangerouslySetInnerHTML:{__html:JG.sanitize(e0e(le))}}),s&&(0,G.jsxs)(`a`,{href:`https://makerworld.com/models/${s.model_id}${s.profile_id?`#profileId-${s.profile_id}`:``}`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-3 inline-flex items-center gap-1 text-xs text-brand-500 hover:underline`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),` `,e(`makerworld.openOnMakerworld`)]})]})]})})}),s&&ie.length>0&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`makerworld.platesHeader`,{count:ie.length})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-gray-600 dark:text-gray-400`,children:e(`makerworld.importTo`)}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`text-sm px-2 py-1 border rounded bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700`,disabled:d!==null,children:[(0,G.jsx)(`option`,{value:``,children:e(`makerworld.folderAuto`)}),(C.data??[]).filter(e=>!(e.is_external&&e.external_readonly)).flatMap(e=>n0e(e)).map(({folder:e,depth:t})=>(0,G.jsx)(`option`,{value:e.id,children:`${`— `.repeat(t)}${e.name}`},e.id))]}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,disabled:!i||!oe||d!==null||F.isPending||L.isPending,onClick:ee,children:d===null?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.importAll`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[e(`makerworld.importAllProgress`,{current:d.current,total:d.total}),R>0&&` · ${z} · ${R}s`]})]})})]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`grid gap-3`,children:ie.map((t,n)=>{let r=M9(t,`id`),a=M9(t,`profileId`),o=A9(t,`title`),s=A9(t,`cover`),c=M9(t,`materialCnt`),l=t?.needAms===!0,u=M9(t,`downloadCount`),f=t?.compatibility??null,p=t?.otherCompatibility??null,h=f?.devProductName??null,_=Array.isArray(p)?p.map(e=>e?.devProductName??``).filter(Boolean):[];if(r==null)return null;let v=F.isPending&&F.variables?.instanceId===r,y=L.isPending&&L.variables?.instanceId===r,x=a===null?void 0:b[a];return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 p-3 border rounded border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`div`,{className:`flex gap-3 items-center`,children:[(()=>{let n=V(t),r=n.length>0;return(0,G.jsxs)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&g({images:n,index:0}),className:`relative w-16 h-16 shrink-0 rounded overflow-hidden group`,"aria-label":e(`makerworld.openGallery`),children:[s?(0,G.jsx)(`img`,{src:j9(s),alt:``,className:`w-16 h-16 object-cover`,loading:`lazy`}):(0,G.jsx)(`div`,{className:`w-16 h-16 bg-gray-100 dark:bg-gray-800`}),n.length>1&&(0,G.jsxs)(`span`,{className:`absolute bottom-0.5 right-0.5 bg-black/70 text-white text-[10px] px-1.5 py-0.5 rounded flex items-center gap-1`,children:[(0,G.jsx)(Uc,{className:`w-2.5 h-2.5`}),n.length]})]})})(),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`font-medium truncate`,children:o||e(`makerworld.plateDefaultName`,{n:n+1})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-gray-500 dark:text-gray-400 mt-1`,children:[h&&(0,G.jsx)(`span`,{className:`font-medium text-gray-700 dark:text-gray-300`,children:e(`makerworld.slicedFor`,{printer:h,defaultValue:`Sliced for {{printer}}`})}),c!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.materialCount`,{count:c})}),l&&(0,G.jsx)(`span`,{children:e(`makerworld.amsRequired`)}),u!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.downloadsCount`,{count:u})})]}),_.length>0&&(0,G.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-1`,title:_.join(`, `),children:e(`makerworld.alsoCompatible`,{printers:_.slice(0,6).join(`, `)+(_.length>6?`…`:``),defaultValue:`Also marked compatible: {{printers}}`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 shrink-0`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,disabled:!i||!oe||v||y||d!==null,onClick:()=>F.mutate({instanceId:r,profileId:a}),title:oe?void 0:e(`makerworld.signInRequiredTitle`),children:v?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[z,R>0&&` · ${R}s`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.importToLibrary`)})]})}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,disabled:!i||!oe||v||y||d!==null,onClick:()=>L.mutate({instanceId:r,profileId:a}),title:oe?void 0:e(`makerworld.signInRequiredTitle`),children:y?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[z,R>0&&` · ${R}s`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.sliceIn`,{slicer:A})})]})})]})]}),x&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pl-20 text-xs`,children:[(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-emerald-600 dark:text-emerald-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-300`,children:x.was_existing?e(`makerworld.lastImportAlreadyInLibrary`):e(`makerworld.lastImportSuccess`)}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=x.folder_id?`/files?folder=${x.folder_id}`:`/files`;window.location.assign(e)},children:[(0,G.jsx)(vc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.viewInLibrary`)})]}),E?(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>N(x.library_file_id,x.filename),children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`slice.action`,`Slice`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(x.library_file_id,x.filename,`bambu_studio`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.openInBambuStudio`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(x.library_file_id,x.filename,`orcaslicer`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.openInOrcaSlicer`)})]})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,disabled:I.isPending&&I.variables?.profileId===a,onClick:()=>{a!==null&&m({libraryFileId:x.library_file_id,profileId:a,filename:x.filename})},title:e(`makerworld.deleteImport`),children:I.isPending&&I.variables?.profileId===a?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(Pu,{className:`w-3.5 h-3.5 text-red-500`})})})]})]},r)})})})]})]}),(0,G.jsx)(`aside`,{className:`lg:sticky lg:top-6 lg:self-start min-w-0`,children:w.data&&w.data.length>0&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-base font-semibold`,children:e(`makerworld.recentImportsHeader`)})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex flex-col gap-2 max-h-[28rem] overflow-y-auto -mx-2 px-2`,children:w.data.map(t=>(0,G.jsxs)(`div`,{className:`flex gap-2 p-2 border rounded border-gray-200 dark:border-gray-700`,children:[t.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getLibraryFileThumbnailUrl(t.library_file_id),alt:``,className:`w-12 h-12 shrink-0 object-cover rounded bg-gray-100 dark:bg-gray-800`,loading:`lazy`}):(0,G.jsx)(`div`,{className:`w-12 h-12 shrink-0 rounded bg-gray-100 dark:bg-gray-800`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-col gap-1`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium truncate`,title:t.filename,children:t.filename}),(0,G.jsxs)(`div`,{className:`flex gap-0.5`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=t.folder_id?`/files?folder=${t.folder_id}`:`/files`;window.location.assign(e)},title:e(`makerworld.viewInLibrary`),children:(0,G.jsx)(vc,{className:`w-3.5 h-3.5`})}),E?(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>N(t.library_file_id,t.filename),title:e(`slice.action`,`Slice`),children:(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`})}):(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(t.library_file_id,t.filename,`bambu_studio`),title:e(`makerworld.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}),t.source_url&&(0,G.jsx)(`a`,{href:t.source_url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center h-7 w-7 rounded text-gray-500 hover:text-gray-700 dark:hover:text-gray-300`,title:e(`makerworld.openOnMakerworld`),children:(0,G.jsx)(Ac,{className:`w-3.5 h-3.5`})})]})]})]},t.library_file_id))})})]})})]}),(0,G.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 pt-4 border-t border-gray-200 dark:border-gray-700`,children:e(`makerworld.disclaimer`)}),p&&(0,G.jsx)(of,{title:e(`makerworld.deleteImport`),message:e(`makerworld.confirmDelete`,{filename:p.filename}),confirmText:e(`makerworld.deleteImport`),variant:`danger`,isLoading:I.isPending,loadingText:e(`makerworld.importDeleting`),onCancel:()=>m(null),onConfirm:()=>I.mutate({libraryFileId:p.libraryFileId,profileId:p.profileId})}),j&&(0,G.jsx)(RW,{source:j,onClose:()=>M(null)}),h&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-50`,onClick:()=>g(null),role:`dialog`,"aria-modal":`true`,children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-4 right-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white`,onClick:e=>{e.stopPropagation(),g(null)},"aria-label":e(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})}),h.images.length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute left-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white disabled:opacity-30`,disabled:h.index===0,onClick:e=>{e.stopPropagation(),g(e=>e&&{...e,index:Math.max(0,e.index-1)})},"aria-label":e(`makerworld.galleryPrev`),children:(0,G.jsx)(hs,{className:`w-6 h-6`})}),(0,G.jsx)(`button`,{type:`button`,className:`absolute right-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white disabled:opacity-30`,disabled:h.index>=h.images.length-1,onClick:e=>{e.stopPropagation(),g(e=>e&&{...e,index:Math.min(e.images.length-1,e.index+1)})},"aria-label":e(`makerworld.galleryNext`),children:(0,G.jsx)(ms,{className:`w-6 h-6`})})]}),(0,G.jsx)(`img`,{src:j9(h.images[h.index].url),alt:h.images[h.index].name,className:`max-w-[90vw] max-h-[90vh] object-contain`,onClick:e=>e.stopPropagation()}),h.images.length>1&&(0,G.jsxs)(`div`,{className:`absolute bottom-6 left-1/2 -translate-x-1/2 text-white bg-black/60 px-3 py-1 rounded text-xs`,children:[h.index+1,` / `,h.images.length]})]})]})}var o0e=[`DEBUG`,`INFO`,`WARNING`,`ERROR`],N9={DEBUG:`text-gray-400`,INFO:`text-blue-400`,WARNING:`text-yellow-400`,ERROR:`text-red-400`},s0e={DEBUG:$o,INFO:Wc,WARNING:Lu,ERROR:ys};function c0e(){let e=co(),[t,n]=(0,y.useState)(!0),[r,i]=(0,y.useState)(new Set),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`ALL`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),p=(0,y.useRef)(null),{data:m,isLoading:h,refetch:g}=K({queryKey:[`application-logs`,s,a],queryFn:()=>Dd.getLogs({limit:200,level:s===`ALL`?void 0:s,search:a||void 0}),refetchInterval:d?2e3:!1,enabled:l});(0,y.useEffect)(()=>{l||f(!1)},[l]);let _=q({mutationFn:()=>Dd.clearLogs(),onSuccess:()=>{e.invalidateQueries({queryKey:[`application-logs`]})}});(0,y.useEffect)(()=>{t&&p.current&&m?.entries&&(p.current.scrollTop=p.current.scrollHeight)},[m?.entries,t]);let v=e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},b=e=>{let t=e.split(` `);return t.length>=2?t[1]:e},x=(0,y.useMemo)(()=>m?.entries??[],[m?.entries]),S=(0,y.useMemo)(()=>[...x].reverse(),[x]),C=({level:e})=>(0,G.jsx)(s0e[e]||Wc,{className:`w-3.5 h-3.5 ${N9[e]||`text-gray-400`}`});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(!l),className:`w-full flex items-center justify-between p-4 hover:bg-bambu-dark-tertiary/50 transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${d?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:(0,G.jsx)($o,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{className:`text-left`,children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:`Application Logs`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:d?`Live streaming - ${m?.filtered_count??0} entries`:`View and filter application logs`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 bg-bambu-green/20 rounded text-bambu-green text-xs`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 bg-bambu-green rounded-full animate-pulse`}),`Live`]}),l?(0,G.jsx)(gs,{className:`w-5 h-5 text-bambu-gray`}):(0,G.jsx)(ps,{className:`w-5 h-5 text-bambu-gray`})]})]}),l&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[d?(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),f(!1)},className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-500/30 rounded transition-colors`,children:[(0,G.jsx)(bu,{className:`w-4 h-4`}),`Stop`]}):(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),f(!0),g()},className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30 rounded transition-colors`,children:[(0,G.jsx)(Nl,{className:`w-4 h-4`}),`Start`]}),(0,G.jsxs)(`button`,{onClick:()=>_.mutate(),disabled:_.isPending||x.length===0,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-secondary rounded transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Clear`]}),(0,G.jsx)(`button`,{onClick:()=>g(),disabled:h,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-secondary rounded transition-colors disabled:opacity-50`,children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${h?`animate-spin`:``}`})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark-tertiary`}),`Auto-scroll`]}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[m?.filtered_count??0,`/`,m?.total_in_file??0]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:`Search message or logger name...`,value:a,onChange:e=>o(e.target.value),className:`w-full pl-8 pr-8 py-1.5 text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),a&&(0,G.jsx)(`button`,{onClick:()=>o(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 bg-bambu-dark-secondary rounded border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>c(`ALL`),className:`px-2 py-1.5 text-xs rounded-l transition-colors ${s===`ALL`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`All`}),o0e.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>c(e),className:`px-2 py-1.5 text-xs transition-colors flex items-center gap-1 ${t===o0e.length-1?`rounded-r`:``} ${s===e?`${N9[e]} bg-bambu-dark-tertiary`:`text-bambu-gray hover:text-white`}`,children:e},e))]})]})]}),(0,G.jsx)(`div`,{ref:p,className:`overflow-auto font-mono text-xs bg-black min-h-[300px] max-h-[500px]`,children:x.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-[300px] text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`mb-2`,children:`No log entries found`}),(0,G.jsx)(`p`,{className:`text-sm`,children:`Log file may be empty or cleared`})]}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary/30`,children:S.map((e,t)=>{let n=r.has(t),i=e.message.includes(` +`}),n}function CZe(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function wZe(e,t){let n=vZe(e,t),r=n.one(e,void 0),i=aZe(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:` +`},i)),a}function TZe(e,t){return e&&`run`in e?async function(n,r){let i=wZe(n,{file:r,...t});await e.run(i,r)}:function(n,r){return wZe(n,{file:r,...e||t})}}function EZe(e){if(e)throw e}var DZe=o(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});ft.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var G7={basename:AZe,dirname:jZe,extname:MZe,join:NZe,sep:`/`};function AZe(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);K7(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function jZe(e){if(K7(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function MZe(e){K7(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function NZe(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function FZe(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function K7(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var IZe={cwd:LZe};function LZe(){return`/`}function q7(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function RZe(e){if(typeof e==`string`)e=new URL(e);else if(!q7(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return zZe(e)}function zZe(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n0){let[r,...a]=t,o=n[i][1];W7(o)&&W7(r)&&(r=(0,Z7.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function Q7(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function $7(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function e9(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function KZe(e){if(!W7(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function qZe(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function t9(e){return JZe(e)?e:new BZe(e)}function JZe(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function YZe(e){return typeof e==`string`||XZe(e)}function XZe(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var ZZe=[],QZe={allowDangerousHtml:!0},$Ze=/^(https?|ircs?|mailto|xmpp)$/i,eQe=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function tQe(e){let t=nQe(e),n=rQe(e);return iQe(t.runSync(t.parse(n),n),e)}function nQe(e){let t=e.rehypePlugins||ZZe,n=e.remarkPlugins||ZZe,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...QZe}:QZe;return GZe().use(_Xe).use(n).use(TZe,r).use(t)}function rQe(e){let t=e.children||``,n=new BZe;return typeof t==`string`?n.value=t:``+t,n}function iQe(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||aQe;for(let e of eQe)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return t.className&&(e={type:`element`,tagName:`div`,properties:{className:t.className},children:e.type===`root`?e.children:[e]}),gZe(e,l),Cqe(e,{Fragment:G.Fragment,components:i,ignoreInvalidStyle:!0,jsx:G.jsx,jsxs:G.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in u7)if(Object.hasOwn(u7,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=u7[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function aQe(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||$Ze.test(e.slice(0,t))?e:``}hQe.peek=mQe;function oQe(){this.buffer()}function sQe(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function cQe(){this.buffer()}function lQe(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function uQe(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=m7(this.sliceSerialize(e)).toLowerCase(),n.label=t}function dQe(e){this.exit(e)}function fQe(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=m7(this.sliceSerialize(e)).toLowerCase(),n.label=t}function pQe(e){this.exit(e)}function mQe(){return`[`}function hQe(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function gQe(){return{enter:{gfmFootnoteCallString:oQe,gfmFootnoteCall:sQe,gfmFootnoteDefinitionLabelString:cQe,gfmFootnoteDefinition:lQe},exit:{gfmFootnoteCallString:uQe,gfmFootnoteCall:dQe,gfmFootnoteDefinitionLabelString:fQe,gfmFootnoteDefinition:pQe}}}bQe.peek=xQe;function _Qe(){return{canContainEols:[`delete`],enter:{strikethrough:vQe},exit:{strikethrough:yQe}}}function vQe(e){this.enter({type:`delete`,children:[]},e)}function yQe(e){this.exit(e)}function bQe(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function xQe(){return`~`}function SQe(){return{enter:{table:CQe,tableData:EQe,tableHeader:EQe,tableRow:TQe},exit:{codeText:DQe,table:wQe,tableData:n9,tableHeader:n9,tableRow:n9}}}function CQe(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function wQe(e){this.exit(e),this.data.inTable=void 0}function TQe(e){this.enter({type:`tableRow`,children:[]},e)}function n9(e){this.exit(e)}function EQe(e){this.enter({type:`tableCell`,children:[]},e)}function DQe(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,OQe));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function OQe(e,t){return t===`|`?t:e}function kQe(){return{exit:{taskListCheckValueChecked:AQe,taskListCheckValueUnchecked:AQe,paragraph:jQe}}}function AQe(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function jQe(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i999||s===93&&!o||s===null||s===91||b7(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(m7(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return b7(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function LQe(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||b7(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=m7(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return b7(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),w7(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function RQe(e,t,n){return e.check(O7,t,e.attempt(MQe,t,n))}function zQe(e){e.exit(`gfmFootnoteDefinition`)}function BQe(e,t,n){let r=this;return w7(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function VQe(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=T7(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var HQe=class{constructor(){this.map=[]}add(e,t,n){UQe(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function UQe(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):y7(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):x7(t)?w7(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||b7(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,x7(t)?w7(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return x7(t)?w7(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||y7(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return x7(t)?w7(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||y7(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||y7(n)?(e.exit(`tableRow`),t(n)):x7(n)?w7(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||b7(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function qQe(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new HQe;for(;++nn[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},i9(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function JQe(e,t,n,r,i){let a=[],o=i9(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function i9(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var YQe={name:`tasklistCheck`,tokenize:ZQe};function XQe(){return{text:{91:YQe}}}function ZQe(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return b7(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return y7(r)?t(r):x7(r)?e.check({tokenize:QQe},t,n)(r):n(r)}}function QQe(e,t,n){return w7(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function $Qe(){let e=this.data(),t=e.micromarkExtensions||=[],n=e.fromMarkdownExtensions||=[];t.push(NQe(),VQe(),GQe(),XQe()),n.push(gQe(),_Qe(),SQe(),kQe())}var e$e=`fileManager.readmeCollapsed`;function t$e({folderId:e}){let{t}=U(),[n,r]=(0,y.useState)(()=>localStorage.getItem(e$e)===`1`);(0,y.useEffect)(()=>{localStorage.setItem(e$e,n?`1`:`0`)},[n]);let{data:i,isLoading:a,error:o}=K({queryKey:[`folder-readme`,e],queryFn:()=>Z.getLibraryFolderReadme(e),retry:!1,staleTime:3e4});return a||o||!i?null:n?(0,G.jsxs)(`div`,{className:`mb-2 lg:mb-0 order-first lg:order-none lg:w-10 lg:flex-shrink-0 lg:h-full`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(!1),title:t(`fileManager.readme.show`),"aria-label":t(`fileManager.readme.show`),className:`flex lg:hidden w-full items-center gap-2 px-3 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark/40 transition-colors`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,children:i.filename}),(0,G.jsx)(El,{className:`w-4 h-4 text-bambu-gray flex-shrink-0 ml-auto`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>r(!1),title:t(`fileManager.readme.show`),"aria-label":t(`fileManager.readme.show`),className:`hidden lg:flex h-full w-10 flex-col items-center gap-2 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark/40 transition-colors`,children:[(0,G.jsx)(El,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-bambu-gray [writing-mode:vertical-rl] rotate-180 select-none`,children:t(`fileManager.readme.label`)})]})]}):(0,G.jsxs)(`div`,{className:`mb-4 lg:mb-0 order-first lg:order-none lg:w-80 xl:w-96 lg:flex-shrink-0 lg:h-full flex flex-col bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-medium text-white truncate`,title:i.filename,children:i.filename}),i.truncated&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 flex-shrink-0`,children:t(`fileManager.readme.truncated`)})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>r(!0),title:t(`fileManager.readme.hide`),"aria-label":t(`fileManager.readme.hide`),className:`p-1 rounded text-bambu-gray hover:text-white hover:bg-bambu-dark/40 transition-colors flex-shrink-0`,children:(0,G.jsx)(Tl,{className:`w-4 h-4`})})]}),(0,G.jsx)(`div`,{className:`px-4 py-3 border-t border-bambu-dark-tertiary flex-1 overflow-y-auto max-h-96 lg:max-h-none text-sm text-bambu-gray-light leading-relaxed space-y-2`,children:(0,G.jsx)(tQe,{remarkPlugins:[$Qe],components:{h1:({children:e})=>(0,G.jsx)(`h1`,{className:`text-lg font-semibold text-white mt-2 mb-1`,children:e}),h2:({children:e})=>(0,G.jsx)(`h2`,{className:`text-base font-semibold text-white mt-2 mb-1`,children:e}),h3:({children:e})=>(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white mt-2 mb-1`,children:e}),p:({children:e})=>(0,G.jsx)(`p`,{className:`my-1`,children:e}),ul:({children:e})=>(0,G.jsx)(`ul`,{className:`list-disc list-inside space-y-0.5 ml-2`,children:e}),ol:({children:e})=>(0,G.jsx)(`ol`,{className:`list-decimal list-inside space-y-0.5 ml-2`,children:e}),li:({children:e})=>(0,G.jsx)(`li`,{children:e}),code:({children:e,...t})=>t.className?(0,G.jsx)(`code`,{className:`block p-2 bg-bambu-dark rounded text-xs font-mono text-bambu-gray-light overflow-x-auto`,children:e}):(0,G.jsx)(`code`,{className:`px-1 py-0.5 bg-bambu-dark rounded text-xs font-mono text-bambu-green`,children:e}),pre:({children:e})=>(0,G.jsx)(`pre`,{className:`my-2`,children:e}),blockquote:({children:e})=>(0,G.jsx)(`blockquote`,{className:`border-l-2 border-bambu-dark-tertiary pl-3 text-bambu-gray italic`,children:e}),a:({children:e,href:t})=>(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`text-bambu-green hover:underline`,children:e}),table:({children:e})=>(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsx)(`table`,{className:`min-w-full text-xs border-collapse`,children:e})}),th:({children:e})=>(0,G.jsx)(`th`,{className:`border border-bambu-dark-tertiary px-2 py-1 text-left font-semibold text-white`,children:e}),td:({children:e})=>(0,G.jsx)(`td`,{className:`border border-bambu-dark-tertiary px-2 py-1`,children:e}),hr:()=>(0,G.jsx)(`hr`,{className:`border-bambu-dark-tertiary my-2`})},children:i.content})})]})}function n$e({open:e,onClose:t,onPickTag:n}){let{t:r}=U(),i=co(),{showToast:a}=qd(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(null),{data:m=[],isLoading:h}=K({queryKey:R5,queryFn:Z.getLibraryTags,enabled:e}),g=()=>{i.invalidateQueries({queryKey:R5}),i.invalidateQueries({queryKey:[`library-files`]})},_=q({mutationFn:async()=>{let e=u.trim();if(!e)throw Error(r(`fileManager.tags.nameRequired`));return c?Z.updateLibraryTag(c.id,e):Z.createLibraryTag(e)},onSuccess:()=>{a(r(c?`fileManager.tags.updated`:`fileManager.tags.created`),`success`),s(!1),l(null),d(``),g()},onError:e=>{a(e.message||r(`fileManager.tags.saveFailed`),`error`)}}),v=q({mutationFn:e=>Z.deleteLibraryTag(e),onSuccess:()=>{a(r(`fileManager.tags.deleted`),`success`),p(null),g()},onError:e=>{a(e.message||r(`fileManager.tags.deleteFailed`),`error`)}}),b=()=>{l(null),d(``),s(!0)},x=e=>{l(e),d(e.name),s(!0)},S=(0,y.useCallback)(()=>{_.isPending||(s(!1),l(null),d(``))},[_.isPending]);(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(_.isPending||v.isPending||(o?S():f||t()))};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,o,f,_.isPending,v.isPending,S,t]);let C=e=>{e.preventDefault(),_.mutate()};if(!e)return null;let w=`library-tags-modal-title`,T=`library-tag-editor-title`;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:()=>{_.isPending||v.isPending||t()}}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-4xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":w,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`h2`,{id:w,className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Eu,{className:`w-5 h-5 text-bambu-green`}),r(`fileManager.tags.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm mt-0.5`,children:r(`fileManager.tags.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Q,{onClick:b,children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),r(`fileManager.tags.add`)]}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-white rounded`,onClick:t,"aria-label":r(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})]}),(0,G.jsx)(`div`,{className:`overflow-y-auto`,children:h?(0,G.jsxs)(`div`,{className:`flex items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Y,{className:`w-6 h-6 animate-spin mr-2`}),r(`common.loading`)]}):m.length===0?(0,G.jsx)(`div`,{className:`py-16 text-center text-bambu-gray`,children:r(`fileManager.tags.empty`)}):(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium`,children:r(`fileManager.tags.name`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right`,children:r(`fileManager.tags.fileCount`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 font-medium text-right w-32`,children:r(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:m.map(e=>(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/60 hover:bg-bambu-dark-tertiary/30 ${n?`cursor-pointer`:``}`,onClick:()=>{n&&(n(e.id),t())},children:[(0,G.jsx)(`td`,{className:`px-4 py-3 text-white font-medium`,children:e.name}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right text-bambu-gray`,children:e.file_count}),(0,G.jsx)(`td`,{className:`px-4 py-3 text-right`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded`,onClick:()=>x(e),title:r(`common.edit`),"aria-label":r(`fileManager.tags.editAria`,{name:e.name}),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{type:`button`,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded`,onClick:()=>p(e),title:r(`common.delete`),"aria-label":r(`fileManager.tags.deleteAria`,{name:e.name}),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]},e.id))})]})})]}),o&&(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60`,onClick:S}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-md mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl p-6 shadow-2xl`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":T,children:[(0,G.jsx)(`h3`,{id:T,className:`text-lg font-semibold text-white mb-4`,children:r(c?`fileManager.tags.edit`:`fileManager.tags.add`)}),(0,G.jsxs)(`form`,{onSubmit:C,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`library-tag-name`,children:r(`fileManager.tags.name`)}),(0,G.jsx)(`input`,{id:`library-tag-name`,type:`text`,maxLength:64,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green mb-4`,placeholder:r(`fileManager.tags.createPlaceholder`),value:u,onChange:e=>d(e.target.value),autoFocus:!0}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:S,children:r(`common.cancel`)}),(0,G.jsxs)(Q,{type:`submit`,disabled:_.isPending||!u.trim(),children:[_.isPending&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.save`)]})]})]})]})]}),f&&(0,G.jsx)(of,{title:r(`fileManager.tags.confirmDelete`,{name:f.name}),message:f.file_count>0?r(`fileManager.tags.confirmDeleteInUseMessage`,{count:f.file_count}):r(`fileManager.tags.confirmDeleteMessage`),confirmText:r(`common.delete`),variant:`danger`,isLoading:v.isPending,onConfirm:()=>v.mutate(f.id),onCancel:()=>p(null)})]})}var r$e=90;function i$e({onClose:e}){let{t}=U(),n=co(),{showToast:r}=qd(),[i,a]=(0,y.useState)(r$e),[o,s]=(0,y.useState)(!0),[c,l]=(0,y.useState)(i);(0,y.useEffect)(()=>{let e=window.setTimeout(()=>l(i),300);return()=>window.clearTimeout(e)},[i]);let u=K({queryKey:[`library-purge-preview`,c,o],queryFn:()=>Z.previewLibraryPurge(c,o),enabled:c>=1}),d=q({mutationFn:()=>Z.executeLibraryPurge(i,o),onSuccess:i=>{r(t(`libraryPurge.toast.success`,{count:i.moved_to_trash}),`success`),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]}),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),e()},onError:e=>r(e.message||t(`libraryPurge.toast.failed`),`error`)});(0,y.useEffect)(()=>{let t=t=>{t.key===`Escape`&&!d.isPending&&e()};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e,d.isPending]);let f=u.data,p=f?.count??0,m=f?.total_bytes??0,h=p>0&&!d.isPending;return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-white dark:bg-gray-900 rounded-lg shadow-xl max-w-lg w-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,G.jsx)(Pu,{className:`w-5 h-5`}),t(`libraryPurge.title`)]}),(0,G.jsx)(`button`,{onClick:e,className:`text-gray-400 hover:text-gray-600 dark:hover:text-gray-200`,"aria-label":t(`common.close`),disabled:d.isPending,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:t(`libraryPurge.description`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`purge-days`,className:`block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1`,children:t(`libraryPurge.ageLabel`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`input`,{id:`purge-days`,type:`number`,min:1,max:3650,value:i,onChange:e=>a(Math.max(1,Math.min(3650,parseInt(e.target.value||`0`,10)||0))),className:`w-24 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:t(`libraryPurge.days`)})]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-gray-700 dark:text-gray-300`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),className:`rounded border-gray-300`}),t(`libraryPurge.includeNeverPrinted`)]}),(0,G.jsxs)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/30 p-3`,children:[(0,G.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-wide text-gray-600 dark:text-gray-300 mb-2`,children:t(`libraryPurge.effectsTitle`)}),(0,G.jsxs)(`ul`,{className:`text-xs text-gray-700 dark:text-gray-300 space-y-1 list-disc pl-4`,children:[(0,G.jsx)(`li`,{children:t(`libraryPurge.effect1`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect2`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect3`)}),(0,G.jsx)(`li`,{children:t(`libraryPurge.effect4`)})]})]}),(0,G.jsx)(`div`,{className:`rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 p-3`,children:u.isLoading||u.isFetching?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,t(`libraryPurge.previewLoading`)]}):u.isError?(0,G.jsx)(`div`,{className:`text-sm text-red-600 dark:text-red-400`,children:u.error?.message??t(`libraryPurge.previewFailed`)}):(0,G.jsxs)(`div`,{className:`text-sm text-gray-900 dark:text-gray-100`,children:[(0,G.jsx)(`div`,{className:`font-medium`,children:t(`libraryPurge.previewSummary`,{count:p,size:Gd(m)})}),f?.sample_filenames&&f.sample_filenames.length>0&&(0,G.jsxs)(`ul`,{className:`mt-2 text-xs text-gray-600 dark:text-gray-400 space-y-0.5 list-disc pl-4`,children:[f.sample_filenames.map(e=>(0,G.jsx)(`li`,{className:`truncate`,children:e},e)),p>f.sample_filenames.length&&(0,G.jsx)(`li`,{className:`list-none italic text-gray-500`,children:t(`libraryPurge.andMore`,{count:p-f.sample_filenames.length})})]})]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-start text-xs text-amber-700 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 rounded px-3 py-2`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 mt-0.5 shrink-0`}),(0,G.jsx)(`span`,{children:t(`libraryPurge.warning`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 p-4 border-t border-gray-200 dark:border-gray-700`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:d.isPending,children:t(`common.cancel`)}),(0,G.jsx)(Q,{variant:`danger`,disabled:!h,onClick:()=>d.mutate(),children:d.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mr-1`}),t(`libraryPurge.purging`)]}):t(`libraryPurge.confirmCta`,{count:p})})]})]})})}function a$e({parentId:e,onClose:t,onSave:n,isLoading:r,t:i}){let[a,o]=(0,y.useState)(``);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:i(`fileManager.newFolder`)})}),(0,G.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),n({name:a.trim(),parent_id:e})},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:i(`fileManager.folderName`)}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:i(`fileManager.folderNamePlaceholder`),autoFocus:!0,required:!0})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:t,children:i(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!a.trim()||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`common.create`)})]})]})]})})}function o$e({onClose:e,onSave:t,isLoading:n,t:r}){let[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(!0),[u,d]=(0,y.useState)(!1);return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(bc,{className:`w-5 h-5 text-bambu-green`}),r(`fileManager.linkExternalFolder`)]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:r(`fileManager.linkExternalFolderDescription`)})]}),(0,G.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),t({name:i.trim(),external_path:o.trim(),readonly:c,show_hidden:u})},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:r(`fileManager.folderName`)}),(0,G.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`,placeholder:r(`fileManager.externalFolderNamePlaceholder`),autoFocus:!0,required:!0})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:r(`fileManager.externalPath`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),className:`w-full bg-bambu-dark border border-bambu-dark-tertiary rounded px-3 py-2 text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green font-mono text-sm`,placeholder:`/mnt/nas/3d-prints`,required:!0}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:r(`fileManager.externalPathHelp`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`fileManager.readOnly`)}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`(`,r(`fileManager.readOnlyHelp`),`)`]})]}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:r(`fileManager.showHiddenFiles`)})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:e,children:r(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!i.trim()||!o.trim()||n,children:n?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):r(`fileManager.linkFolder`)})]})]})]})})}var s$e=`<>:"/\\|?*`;function c$e(e){for(let t of e)if(s$e.includes(t)||t.charCodeAt(0)<32)return t;return null}function l$e({type:e,currentName:t,onClose:n,onSave:r,isLoading:i,t:a}){let o=e===`file`?t.match(/(\.gcode\.3mf|\.3mf|\.gcode)$/i)?.[1]??``:``,s=e===`file`&&o?t.slice(0,-o.length):t,[c,l]=(0,y.useState)(s),u=e===`file`?c$e(c):null,d=u?a(`fileManager.invalidFilenameChar`,{char:u}):null;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(e===`file`?`fileManager.renameFile`:`fileManager.renameFolder`)})}),(0,G.jsxs)(`form`,{onSubmit:n=>{if(n.preventDefault(),d)return;let i=e===`file`?c.trim()+o:c.trim();c.trim()&&i!==t&&r(i)},className:`p-4 space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-1`,children:a(`common.name`)}),(0,G.jsxs)(`div`,{className:`flex items-center bg-bambu-dark border rounded focus-within:border-bambu-green ${d?`border-red-500`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),className:`flex-1 bg-transparent px-3 py-2 text-white placeholder-bambu-gray focus:outline-none min-w-0`,autoFocus:!0,required:!0}),o&&(0,G.jsx)(`span`,{className:`pr-3 text-bambu-gray text-sm select-none whitespace-nowrap`,children:o})]}),d&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:d})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:n,children:a(`common.cancel`)}),(0,G.jsx)(Q,{type:`submit`,disabled:!c.trim()||c.trim()===s||!!d||i,children:i?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):a(`common.rename`)})]})]})]})})}function u$e({folders:e,selectedFiles:t,currentFolderId:n,onClose:r,onMove:i,isLoading:a,t:o}){let[s,c]=(0,y.useState)(null),l=(e,t=0)=>{let n=[];for(let r of e)n.push({id:r.id,name:r.name,depth:t}),r.children.length>0&&n.push(...l(r.children,t+1));return n},u=[{id:null,name:o(`fileManager.rootNoFolder`),depth:0},...l(e)];return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-sm border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:o(`fileManager.moveFiles`,{count:t.length})})}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto space-y-1`,children:u.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),disabled:e.id===n,className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:e.id===n?`opacity-50 cursor-not-allowed text-bambu-gray`:`hover:bg-bambu-dark text-white`}`,style:{paddingLeft:`${12+e.depth*16}px`},children:[(0,G.jsx)(vc,{className:`w-4 h-4`}),e.name,e.id===n&&(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray ml-auto`,children:[`(`,o(`fileManager.current`),`)`]})]},e.id??`root`))}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,onClick:r,children:o(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>i(s),disabled:a,children:a?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):o(`common.move`)})]})]})]})})}function d$e({folder:e,onClose:t,onLink:n,isLoading:r,t:i}){let[a,o]=(0,y.useState)(`project`),[s,c]=(0,y.useState)(e.project_id||e.archive_id||null);(0,y.useState)(()=>{e.archive_id&&o(`archive`)});let{data:l}=K({queryKey:[`projects`],queryFn:()=>Z.getProjects(),select:t=>JW([...t].sort((e,t)=>e.name.localeCompare(t.name)),e.project_id)}),{data:u}=K({queryKey:[`archives-for-link`],queryFn:()=>Z.getArchives(void 0,void 0,100)}),d=()=>{n(a===`project`?{project_id:s,archive_id:0}:{project_id:0,archive_id:s})},f=()=>{n({project_id:0,archive_id:0})},p=e.project_id||e.archive_id;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-md border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-center gap-2`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green`}),i(`fileManager.linkFolder`)]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i(`fileManager.linkFolderDescription`,{name:e.name})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>{o(`project`),c(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${a===`project`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Qo,{className:`w-4 h-4`}),i(`fileManager.project`)]}),(0,G.jsxs)(`button`,{onClick:()=>{o(`archive`),c(null)},className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-lg border transition-colors ${a===`archive`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Po,{className:`w-4 h-4`}),i(`fileManager.archive`)]})]}),(0,G.jsx)(`div`,{className:`max-h-64 overflow-y-auto space-y-1 bg-bambu-dark rounded-lg p-2`,children:a===`project`?l&&l.length>0?l.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark-tertiary text-white`}`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full flex-shrink-0`,style:{backgroundColor:e.color||`#00ae42`}}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id)):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-4`,children:i(`fileManager.noProjectsFound`)}):u&&u.length>0?u.map(e=>(0,G.jsxs)(`button`,{onClick:()=>c(e.id),className:`w-full text-left px-3 py-2 rounded transition-colors flex items-center gap-2 ${s===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark-tertiary text-white`}`,children:[(0,G.jsx)(sc,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.print_name||e.filename})]},e.id)):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center py-4`,children:i(`fileManager.noArchivesFound`)})})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-between`,children:[p&&(0,G.jsxs)(Q,{variant:`danger`,onClick:f,disabled:r,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 mr-2`}),i(`fileManager.unlink`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ${p?``:`ml-auto`}`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:i(`common.cancel`)}),(0,G.jsx)(Q,{onClick:d,disabled:!s||r,children:r?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):i(`fileManager.link`)})]})]})]})})}function f$e({folder:e,selectedFolderId:t,onSelect:n,onDelete:r,onLink:i,onRename:a,depth:o=0,wrapNames:s=!1,defaultExpanded:c=!0,showModified:l=!1,hasPermission:u,t:d}){let[f,p]=(0,y.useState)(c),[m,h]=(0,y.useState)(!1),g=e.children.length>0,_=e.project_id||e.archive_id,v=e.is_external,b=u(`library:delete_all`)||u(`library:delete_own`)&&e.file_count===0&&!g&&!v&&!_,x=b?void 0:u(`library:delete_own`)&&!v&&!_?d(`fileManager.onlyEmptyFoldersDeletable`):d(`fileManager.noPermissionDeleteFolder`);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`group flex items-center gap-1 px-2 py-1.5 rounded cursor-pointer transition-colors ${t===e.id?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,style:{paddingLeft:`${8+o*12}px`},onClick:()=>n(e.id),children:[g?(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),p(!f)},className:`p-0.5 hover:bg-bambu-dark-tertiary rounded`,children:(0,G.jsx)(ms,{className:`w-3.5 h-3.5 transition-transform ${f?`rotate-90`:``}`})}):(0,G.jsx)(`div`,{className:`w-4.5`}),v?(0,G.jsx)(bc,{className:`w-4 h-4 text-purple-600 dark:text-purple-400 flex-shrink-0`}):(0,G.jsx)(vc,{className:`w-4 h-4 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`block text-sm ${s?`break-all`:`truncate`}`,title:e.name,children:e.name}),l&&e.latest_activity_at&&(0,G.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-xs text-bambu-gray`,title:d(`fileManager.lastActivity`),children:[(0,G.jsx)(rs,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:ip(e.latest_activity_at)})]})]}),_&&(0,G.jsxs)(`button`,{onClick:t=>{t.stopPropagation(),i(e)},className:`flex-shrink-0 flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400 hover:bg-blue-200 dark:hover:bg-blue-500/30 transition-colors`,title:`${e.project_name?`Project: ${e.project_name}`:`Archive: ${e.archive_name}`} (click to change)`,children:[(0,G.jsx)(Xc,{className:`w-3 h-3`}),e.project_name?(0,G.jsx)(Qo,{className:`w-3 h-3`}):(0,G.jsx)(Po,{className:`w-3 h-3`})]}),v&&e.external_readonly&&(0,G.jsx)(`span`,{title:d(`fileManager.readOnly`),children:(0,G.jsx)(nl,{className:`w-3 h-3 text-amber-600 dark:text-amber-400 flex-shrink-0`})}),e.file_count>0&&(0,G.jsx)(`span`,{className:`flex-shrink-0 text-xs text-bambu-gray`,children:e.file_count}),!_&&!v&&(0,G.jsx)(`button`,{onClick:t=>{t.stopPropagation(),i(e)},className:`flex-shrink-0 p-1 rounded hover:bg-bambu-dark-tertiary`,title:d(`fileManager.linkToProjectOrArchive`),children:(0,G.jsx)(Xc,{className:`w-3.5 h-3.5 text-bambu-gray hover:text-bambu-green`})}),(0,G.jsx)(`div`,{className:`flex-shrink-0 flex items-center gap-0.5 transition-opacity ${s?``:`can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`}`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`button`,{onClick:()=>h(!m),className:`p-1 rounded hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)($s,{className:`w-3.5 h-3.5 text-bambu-gray`})}),m&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-10`,onClick:()=>h(!1)}),(0,G.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-20 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 min-w-[120px]`,children:[(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${u(`library:update_all`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{u(`library:update_all`)&&(a(e),h(!1))},disabled:!u(`library:update_all`),title:u(`library:update_all`)?void 0:d(`fileManager.noPermissionRenameFolder`),children:[(0,G.jsx)(Al,{className:`w-3.5 h-3.5`}),d(`common.rename`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${u(`library:update_all`)?`text-white hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{u(`library:update_all`)&&(i(e),h(!1))},disabled:!u(`library:update_all`),title:u(`library:update_all`)?void 0:d(`fileManager.noPermissionLinkFolder`),children:[(0,G.jsx)(Xc,{className:`w-3.5 h-3.5`}),d(_?`fileManager.changeLink`:`fileManager.linkTo`)]}),(0,G.jsxs)(`button`,{className:`w-full px-3 py-1.5 text-left text-sm flex items-center gap-2 ${b?`text-red-700 dark:text-red-400 hover:bg-bambu-dark`:`text-bambu-gray cursor-not-allowed`}`,onClick:()=>{b&&(r(e.id),h(!1))},disabled:!b,title:x,children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),d(`common.delete`)]})]})]})]})})]}),g&&f&&(0,G.jsx)(`div`,{children:e.children.map(e=>(0,G.jsx)(f$e,{folder:e,selectedFolderId:t,onSelect:n,onDelete:r,onLink:i,onRename:a,depth:o+1,wrapNames:s,defaultExpanded:c,showModified:l,hasPermission:u,t:d},e.id))})]})}function p$e({file:e,isSelected:t,onSelect:n,onDelete:r,onDownload:i,onPrint:a,onSlice:o,onOpenInSlicer:s,onRunPipeline:c,useSlicerApi:l,desktopSlicer:u,canSlice:d,onPreview3d:f,onRename:p,onGenerateThumbnail:m,onTagClick:h,thumbnailVersion:g,hasPermission:_,canModify:v,authEnabled:b,showModified:x,t:S}){let[C,w]=(0,y.useState)(null),T=_(`library:read`),E=v(`library`,`update`,e.created_by_id),D=v(`library`,`delete`,e.created_by_id),O=[];return a&&M5(e)&&O.push({label:S(`common.print`),icon:(0,G.jsx)(Rl,{className:`w-4 h-4 text-bambu-green`}),onClick:()=>a(e),disabled:!_(`queue:create`),title:_(`queue:create`)?void 0:S(`fileManager.noPermissionAddToQueue`)}),N5(e,!!l,u)&&(l?o:s)&&O.push({label:S(`slice.action`),icon:l?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`}),onClick:()=>{l?o?.(e):s?.(e)},disabled:!d,title:d?void 0:S(l?`fileManager.noPermissionSlice`:`fileManager.noPermissionDownload`)}),c&&l&&N5(e,!0,u)&&O.push({label:S(`library.runWithPipeline.actionLabel`),icon:(0,G.jsx)(Nl,{className:`w-4 h-4`}),onClick:()=>c(e),disabled:!_(`pipelines:run`),title:_(`pipelines:run`)?void 0:S(`library.runWithPipeline.noPermission`)}),f&&(e.file_type===`3mf`||e.file_type===`gcode`||e.file_type===`stl`||e.file_type===`gcode.3mf`)&&O.push({label:S(`fileManager.preview3d`),icon:(0,G.jsx)(Zo,{className:`w-4 h-4`}),onClick:()=>f(e),disabled:!T,title:T?void 0:S(`fileManager.noPermissionPreview`)}),O.push({label:S(`common.download`),icon:(0,G.jsx)(Xs,{className:`w-4 h-4`}),onClick:()=>i(e.id),disabled:!_(`library:read`),title:_(`library:read`)?void 0:S(`fileManager.noPermissionDownload`)}),p&&O.push({label:S(`common.rename`),icon:(0,G.jsx)(Al,{className:`w-4 h-4`}),onClick:()=>p(e),disabled:!E,title:E?void 0:S(`fileManager.noPermissionRenameFile`)}),m&&e.file_type===`stl`&&O.push({label:S(`fileManager.generateThumbnail`),icon:(0,G.jsx)(Hc,{className:`w-4 h-4`}),onClick:()=>m(e),disabled:!E,title:E?void 0:S(`fileManager.noPermissionGenerateThumbnail`)}),O.push({label:S(`common.delete`),icon:(0,G.jsx)(Pu,{className:`w-4 h-4`}),onClick:()=>r(e.id),danger:!0,disabled:!D,title:D?void 0:S(`fileManager.noPermissionDeleteFile`)}),(0,G.jsxs)(`div`,{className:`group relative bg-bambu-dark-secondary rounded-lg border transition-all cursor-pointer ${t?`border-bambu-green ring-1 ring-bambu-green`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,onClick:()=>n(e.id),children:[(0,G.jsxs)(`div`,{className:`aspect-square bg-bambu-dark flex items-center justify-center overflow-hidden rounded-t-lg`,children:[e.thumbnail_path?(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(e.id)}${g?(Z.getLibraryFileThumbnailUrl(e.id).includes(`?`)?`&`:`?`)+`v=${g}`:``}`,alt:e.filename,className:`w-full h-full object-cover`}):(0,G.jsx)(sc,{className:`w-12 h-12 text-bambu-gray/30`}),(0,G.jsx)(`div`,{className:`absolute top-2 right-2 text-xs px-1.5 py-0.5 rounded font-medium ${e.file_type===`3mf`?`bg-bambu-green/90 text-white`:e.file_type===`gcode`||e.file_type===`gcode.3mf`?`bg-blue-500/90 text-white`:e.file_type===`stl`?`bg-purple-500/90 text-white`:`bg-bambu-gray/90 text-white`}`,children:e.file_type.toUpperCase()})]}),(0,G.jsxs)(`div`,{className:`p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-medium text-white truncate`,title:e.print_name||e.filename,children:e.print_name||e.filename}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mt-1 text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:Gd(e.file_size)}),e.print_time_seconds&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),lp(e.print_time_seconds)]})]}),e.sliced_for_model&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Rl,{className:`w-3 h-3`}),e.sliced_for_model]}),(e.variant_count??0)>1&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-green flex items-center gap-1`,children:[(0,G.jsx)(Jc,{className:`w-3 h-3`}),S(`fileManager.variants.badge`,{count:e.variant_count})]}),e.print_count>0&&(0,G.jsx)(`div`,{className:`mt-1 text-xs text-bambu-green`,children:S(`fileManager.printedCount`,{count:e.print_count})}),b&&e.created_by_username&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),e.created_by_username]}),x&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray flex items-center gap-1`,title:S(`fileManager.lastModified`),children:[(0,G.jsx)(rs,{className:`w-3 h-3`}),ip(e.fs_modified_at??e.created_at)]}),(e.tags?.length??0)>0&&(0,G.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1`,onClick:e=>e.stopPropagation(),children:e.tags.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>h?.(e.id),className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[10px] bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20 transition-colors max-w-full`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-2.5 h-2.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`absolute bottom-2 right-2 transition-opacity can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();w({x:t.left,y:t.bottom+4})},className:`p-1.5 rounded bg-bambu-dark-secondary/90 hover:bg-bambu-dark-tertiary`,children:(0,G.jsx)($s,{className:`w-4 h-4 text-bambu-gray`})}),C&&(0,G.jsx)(kT,{x:C.x,y:C.y,items:O,onClose:()=>w(null)})]}),(0,G.jsx)(`div`,{className:`absolute top-2 left-2 w-5 h-5 rounded border-2 flex items-center justify-center transition-all ${t?`bg-bambu-green border-bambu-green`:`border-white/30 bg-black/30 can-hover:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`}`,children:t&&(0,G.jsx)(`div`,{className:`w-2 h-2 bg-white rounded-sm`})})]})}function m$e(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,hasAnyPermission:i,canModify:a,authEnabled:o}=Nd(),[s]=Ri(),c=or(),l=s.get(`folder`),[u,d]=(0,y.useState)(l?parseInt(l,10):null),[f,p]=(0,y.useState)(`internal`),[m,h]=(0,y.useState)([]),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)([]),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(!1),[N,P]=(0,y.useState)([]),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(null),[te,ne]=(0,y.useState)(null),[re,ie]=(0,y.useState)(null),[ae,oe]=(0,y.useState)({}),[se,H]=(0,y.useState)(null),[ce,le]=(0,y.useState)(()=>localStorage.getItem(`library-view-mode`)||`grid`),[ue,de]=(0,y.useState)(()=>localStorage.getItem(`library-wrap-folders`)===`true`),[fe,pe]=(0,y.useState)(()=>localStorage.getItem(`library-collapse-folders`)===`true`),[me,he]=(0,y.useState)(()=>localStorage.getItem(`library-folder-sort-field`)===`activity`?`activity`:`name`),[ge,_e]=(0,y.useState)(()=>localStorage.getItem(`library-folder-sort-direction`)===`desc`?`desc`:`asc`),[ve,ye]=(0,y.useState)(()=>{let e=localStorage.getItem(`library-sidebar-width`);return e?parseInt(e,10):256}),[be,xe]=(0,y.useState)(!1),Se=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!be)return;document.body.style.userSelect=`none`,document.body.style.cursor=`col-resize`;let e=e=>{if(!Se.current)return;let t=Se.current.parentElement?.getBoundingClientRect();if(!t)return;let n=e.clientX-t.left;ye(Math.min(500,Math.max(200,n)))},t=()=>{xe(!1),document.body.style.userSelect=``,document.body.style.cursor=``,localStorage.setItem(`library-sidebar-width`,String(ve))};return document.addEventListener(`mousemove`,e),document.addEventListener(`mouseup`,t),()=>{document.removeEventListener(`mousemove`,e),document.removeEventListener(`mouseup`,t),document.body.style.userSelect=``,document.body.style.cursor=``}},[be,ve]);let[Ce,we]=(0,y.useState)(``),[Te,Ee]=(0,y.useState)(`all`),[De,Oe]=(0,y.useState)(``),[ke,Ae]=(0,y.useState)(()=>localStorage.getItem(`library-sort-field`)||`name`),[je,Me]=(0,y.useState)(()=>localStorage.getItem(`library-sort-direction`)||`asc`),[Ne,Pe]=(0,y.useState)(()=>localStorage.getItem(`library-show-modified`)===`true`);(0,y.useEffect)(()=>{let e=s.get(`folder`);e&&d(parseInt(e,10))},[s]);let{data:Fe}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),Ie=HW(Fe?.open_in_slicer,Fe?.preferred_slicer),Le=(0,y.useCallback)(async t=>{try{let{token:e}=await Z.createLibrarySlicerToken(t.id),n=Z.getLibrarySlicerDownloadUrl(t.id,e,t.filename);KW(`${window.location.origin}${n}`,Ie)}catch{n(e(`fileManager.toast.openInSlicerFailed`),`error`);let r=Z.getLibraryFileDownloadUrl(t.id);KW(`${window.location.origin}${r}`,Ie)}},[Ie,n,e]),Re=(0,y.useCallback)(()=>Fe?.use_slicer_api?r(`library:upload`):i(`library:read_all`,`library:read_own`),[Fe?.use_slicer_api,r,i]),{data:ze,isLoading:Be}=K({queryKey:[`library-folders`],queryFn:()=>Z.getLibraryFolders()}),Ve=(0,y.useMemo)(()=>{if(!ze)return ze;let e=t=>[...t].sort((e,t)=>{let n=0;if(me===`name`)n=e.name.localeCompare(t.name);else{let r=e.latest_activity_at?new Date(e.latest_activity_at).getTime():null,i=t.latest_activity_at?new Date(t.latest_activity_at).getTime():null;if(r===null&&i===null)n=e.name.localeCompare(t.name);else if(r===null)return 1;else if(i===null)return-1;else n=r-i}return ge===`asc`?n:-n}).map(t=>({...t,children:e(t.children)}));return e(ze)},[ze,me,ge]),{data:He}=K({queryKey:[`library-trash-count`],queryFn:async()=>{try{return(await Z.listLibraryTrash(1,0)).total}catch{return 0}},staleTime:3e4}),Ue=u!==null&&Ce.trim().length>0,We=(0,y.useMemo)(()=>[...N].sort((e,t)=>e-t),[N]),{data:Ge=[]}=K({queryKey:[`library-tags`],queryFn:Z.getLibraryTags}),Ke=(0,y.useMemo)(()=>{let e=new Map;for(let t of Ge)e.set(t.id,t.name);return e},[Ge]);(0,y.useEffect)(()=>{Ge.length!==0&&P(e=>{let t=e.filter(e=>Ke.has(e));return t.length===e.length?e:t})},[Ge.length,Ke]);let qe=(0,y.useCallback)(e=>{P(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),{data:Je,isLoading:Ye}=K({queryKey:[`library-files`,u,f,Ue,We],queryFn:()=>Z.getLibraryFiles(u,!1,void 0,u===null?f:void 0,Ue,We)}),{data:Xe}=K({queryKey:[`library-stats`],queryFn:()=>Z.getLibraryStats()}),{data:Ze}=K({queryKey:[`users`,`slim`],queryFn:()=>Z.getUsersSlim()}),Qe=(0,y.useMemo)(()=>{if(!Je)return[];let e=new Set(Je.map(e=>e.file_type));return Array.from(e).sort()},[Je]),$e=(0,y.useMemo)(()=>{if(!Je)return[];let e=[...Je];if(Ce.trim()){let t=Ce.toLowerCase();e=e.filter(e=>e.filename.toLowerCase().includes(t)||e.print_name&&e.print_name.toLowerCase().includes(t))}if(Te!==`all`&&(e=e.filter(e=>e.file_type===Te)),De.trim()){let t=De.toLowerCase();e=e.filter(e=>e.created_by_username&&e.created_by_username.toLowerCase().includes(t))}return e.sort((e,t)=>{let n=0;switch(ke){case`name`:n=(e.print_name||e.filename).localeCompare(t.print_name||t.filename);break;case`date`:n=(rp(e.fs_modified_at??e.created_at)?.getTime()??0)-(rp(t.fs_modified_at??t.created_at)?.getTime()??0);break;case`size`:n=e.file_size-t.file_size;break;case`type`:n=e.file_type.localeCompare(t.file_type);break;case`prints`:n=e.print_count-t.print_count;break}return je===`asc`?n:-n}),e},[Je,Ce,Te,De,ke,je]),et=(0,y.useMemo)(()=>{if(!Xe||!Fe)return!1;let e=(Fe.library_disk_warning_gb||5)*1024*1024*1024;return Xe.disk_free_bytesZ.createLibraryFolder(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),_(!1),n(e(`fileManager.toast.folderCreated`),`success`)},onError:e=>n(e.message,`error`)}),nt=q({mutationFn:async e=>{let t=await Z.createExternalFolder(e);return await Z.scanExternalFolder(t.id),t},onSuccess:r=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-stats`]}),b(!1),d(r.id),n(e(`fileManager.toast.externalFolderLinked`),`success`)},onError:e=>n(e.message,`error`)}),rt=q({mutationFn:e=>Z.scanExternalFolder(e),onSuccess:r=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),n(e(`fileManager.toast.folderScanned`,{added:r.added,removed:r.removed}),`success`)},onError:e=>n(e.message,`error`)}),it=q({mutationFn:e=>Z.deleteLibraryFolder(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-stats`]}),u===L?.id&&d(null),R(null),n(e(`fileManager.toast.folderDeleted`),`success`)},onError:e=>{R(null),n(e.message,`error`)}}),at=q({mutationFn:e=>Z.deleteLibraryFile(e),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),t.invalidateQueries({queryKey:[`library-trash-count`]}),h(e=>e.filter(e=>e!==L?.id)),R(null),n(e(`fileManager.toast.fileDeleted`),`success`)},onError:e=>{R(null),n(e.message,`error`)}}),ot=q({mutationFn:e=>Z.createVariantGroup(e.map(e=>({library_file_id:e}))),onSuccess:r=>{t.invalidateQueries({queryKey:[`library-files`]}),n(e(`fileManager.variants.grouped`,{count:r.members.length}),`success`),h([])},onError:e=>n(e.message,`error`)}),st=q({mutationFn:e=>Z.bulkDeleteLibrary(e,[]),onSuccess:(r,i)=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]}),t.invalidateQueries({queryKey:[`library-trash-count`]}),n(e(`fileManager.toast.filesDeleted`,{count:i.length}),`success`),h([]),R(null)},onError:e=>{R(null),n(e.message,`error`)}}),ct=q({mutationFn:({fileIds:e,folderId:t})=>Z.moveLibraryFiles(e,t),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),h([]),S(!1),n(e(`fileManager.toast.filesMoved`),`success`)},onError:e=>n(e.message,`error`)}),lt=q({mutationFn:({id:e,data:t})=>Z.updateLibraryFolder(e,t),onSuccess:(r,i)=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`project-folders`]}),t.invalidateQueries({queryKey:[`archive-folders`]}),I(null),n(i.data.project_id===0&&i.data.archive_id===0?e(`fileManager.toast.folderUnlinked`):e(`fileManager.toast.folderLinked`),`success`)},onError:e=>n(e.message,`error`)}),ut=q({mutationFn:({id:e,filename:t})=>Z.updateLibraryFile(e,{filename:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-files`]}),ie(null),n(e(`fileManager.toast.fileRenamed`),`success`)},onError:e=>{ie(null),n(e.message,`error`)}}),dt=q({mutationFn:({id:e,name:t})=>Z.updateLibraryFolder(e,{name:t}),onSuccess:()=>{t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-files`]}),ie(null),n(e(`fileManager.toast.folderRenamed`),`success`)},onError:e=>{ie(null),n(e.message,`error`)}}),ft=q({mutationFn:()=>Z.batchGenerateStlThumbnails({all_missing:!0}),onSuccess:r=>{if(t.invalidateQueries({queryKey:[`library-files`]}),r.succeeded>0){let e=Date.now(),t={};r.results.forEach(n=>{n.success&&(t[n.file_id]=e)}),oe(e=>({...e,...t}))}r.succeeded>0&&r.failed===0?n(e(`fileManager.toast.thumbnailsGenerated`,{count:r.succeeded}),`success`):r.succeeded>0&&r.failed>0?n(e(`fileManager.toast.thumbnailsGeneratedPartial`,{succeeded:r.succeeded,failed:r.failed}),`success`):r.processed===0?n(e(`fileManager.toast.noStlMissingThumbnails`),`info`):n(e(`fileManager.toast.failedToGenerateThumbnails`,{error:r.results[0]?.error||`Unknown error`}),`error`)},onError:e=>n(e.message,`error`)}),pt=q({mutationFn:e=>Z.batchGenerateStlThumbnails({file_ids:[e]}),onSuccess:r=>{if(t.invalidateQueries({queryKey:[`library-files`]}),r.succeeded>0){let t=r.results[0]?.file_id;t&&oe(e=>({...e,[t]:Date.now()})),n(e(`fileManager.toast.thumbnailGenerated`),`success`)}else n(e(`fileManager.toast.failedToGenerateThumbnail`,{error:r.results[0]?.error||`Unknown error`}),`error`)},onError:e=>n(e.message,`error`)}),mt=(0,y.useMemo)(()=>Je?Je.filter(e=>m.includes(e.id)&&M5(e)):[],[Je,m]),{data:ht}=K({queryKey:[`variant-group`,z?.variant_group_id],queryFn:()=>Z.getVariantGroup(z.variant_group_id),enabled:!!z?.variant_group_id}),gt=(0,y.useMemo)(()=>{if(z){if(mt.length>1)return mt.map(e=>({id:e.id,filename:e.filename,sliced_for_model:e.sliced_for_model}));if(ht&&ht.members.length>1)return ht.members.map(e=>({id:e.library_file_id,filename:e.filename,sliced_for_model:e.target_model}))}},[z,mt,ht]),_t=(0,y.useCallback)(e=>{h(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),vt=(0,y.useCallback)(()=>{$e.length>0&&h($e.map(e=>e.id))},[$e]),yt=(0,y.useCallback)(()=>{h([])},[]),bt=()=>{t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`library-folders`]}),t.invalidateQueries({queryKey:[`library-stats`]})},{isDraggingOver:xt,dragHandlers:St}=YW({disabled:!r(`library:upload`)||C,onFiles:e=>{E(e),w(!0)}}),Ct=e=>{Z.downloadLibraryFile(e).catch(e=>{console.error(`Library file download failed:`,e)})},wt=()=>{L&&(L.type===`file`?at.mutate(L.id):L.type===`folder`?it.mutate(L.id):L.type===`bulk`&&st.mutate(m))},Tt=it.isPending||at.isPending||st.isPending,Et=e=>{le(e),localStorage.setItem(`library-view-mode`,e)},Dt=Be||Ye,Ot=(0,y.useMemo)(()=>{if(!u||!ze)return null;let e=t=>{for(let n of t){if(n.id===u)return n;let t=e(n.children);if(t)return t}return null};return e(ze)},[u,ze]);return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 min-h-[calc(100vh-64px)] lg:h-[calc(100vh-64px)] flex flex-col relative`,...St,children:[xt&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-bambu-dark/90 flex items-center justify-center pointer-events-none`,children:(0,G.jsxs)(`div`,{className:`border-4 border-dashed border-bambu-green rounded-xl p-12 text-center`,children:[(0,G.jsx)(Vu,{className:`w-16 h-16 mx-auto mb-4 text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-2xl font-semibold text-white mb-2`,children:e(`fileManager.dropFilesHere`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`fileManager.releaseToUpload`)})]})}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(vc,{className:`w-7 h-7 text-bambu-green`}),e(`fileManager.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`fileManager.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center bg-bambu-dark rounded-lg p-1`,children:[(0,G.jsx)(`button`,{onClick:()=>Et(`grid`),className:`p-1.5 rounded transition-colors ${ce===`grid`?`bg-bambu-dark-secondary text-white`:`text-bambu-gray hover:text-white`}`,title:e(`fileManager.gridView`),children:(0,G.jsx)(Yc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>Et(`list`),className:`p-1.5 rounded transition-colors ${ce===`list`?`bg-bambu-dark-secondary text-white`:`text-bambu-gray hover:text-white`}`,title:e(`fileManager.listView`),children:(0,G.jsx)(el,{className:`w-4 h-4`})})]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>ft.mutate(),disabled:ft.isPending||!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?e(`fileManager.generateThumbnailsForMissing`):e(`fileManager.noPermissionGenerateThumbnail`),children:[ft.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}):(0,G.jsx)(Hc,{className:`w-4 h-4 mr-2`}),e(`fileManager.generateThumbnails`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>b(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?e(`fileManager.linkExternalFolder`):e(`fileManager.noPermissionCreateFolder`),children:[(0,G.jsx)(bc,{className:`w-4 h-4 mr-2`}),e(`fileManager.linkExternal`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>_(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionCreateFolder`),children:[(0,G.jsx)(yc,{className:`w-4 h-4 mr-2`}),e(`fileManager.newFolder`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>A(!0),title:e(`fileManager.tags.manageTitle`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4 mr-2`}),e(`fileManager.tags.manage`)]}),r(`library:purge`)&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>O(!0),title:e(`libraryPurge.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`libraryPurge.headerButton`)]}),i(`library:delete_own`,`library:delete_all`)&&(0,G.jsxs)(Ai,{to:`/files/trash`,className:`inline-flex items-center px-3 py-1.5 text-sm rounded bg-bambu-dark-secondary text-bambu-gray hover:text-white hover:bg-bambu-dark transition-colors`,title:e(`libraryTrash.headerTooltip`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-2`}),e(`libraryTrash.headerButton`),typeof He==`number`&&He>0&&(0,G.jsx)(`span`,{className:`ml-1.5 px-1.5 py-0.5 text-xs rounded-full bg-bambu-green/20 text-bambu-green`,children:He})]}),(0,G.jsxs)(Q,{onClick:()=>w(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionUpload`),children:[(0,G.jsx)(Vu,{className:`w-4 h-4 mr-2`}),e(`common.upload`)]})]})]}),et&&Xe&&Fe&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 p-3 bg-amber-500/10 border border-amber-500/30 rounded-lg`,children:[(0,G.jsx)(Lu,{className:`w-5 h-5 text-amber-500 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`p`,{className:`text-sm text-amber-500 font-medium`,children:e(`fileManager.lowDiskSpaceWarning`)}),(0,G.jsx)(`p`,{className:`text-xs text-amber-500/80`,children:e(`fileManager.lowDiskSpaceDetails`,{free:Gd(Xe.disk_free_bytes),total:Gd(Xe.disk_total_bytes),threshold:Fe.library_disk_warning_gb})})]})]}),Xe&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 sm:gap-6 mb-6 p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(pc,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.files`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Xe.total_files})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(vc,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.folders`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Xe.total_folders})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(Pc,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.size`),`:`]}),(0,G.jsx)(`span`,{className:`text-white font-medium`,children:Gd(Xe.total_size_bytes)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm sm:ml-auto`,children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[e(`fileManager.free`),`:`]}),(0,G.jsx)(`span`,{className:`font-medium ${et?`text-amber-500`:`text-white`}`,children:Gd(Xe.disk_free_bytes)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col lg:flex-row gap-4 lg:gap-6 min-h-0`,children:[(0,G.jsx)(`div`,{className:`lg:hidden`,children:(0,G.jsxs)(`select`,{value:u===null?`__top:${f}`:String(u),onChange:e=>{let t=e.target.value;t.startsWith(`__top:`)?(d(null),p(t.slice(6))):d(parseInt(t,10))},className:`w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg px-3 py-2.5 text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsxs)(`option`,{value:`__top:internal`,children:[`📁 `,e(`fileManager.allFiles`)]}),ze?.some(e=>e.is_external)&&(0,G.jsxs)(`option`,{value:`__top:external`,children:[`🔗 `,e(`fileManager.allExternal`)]}),Ve&&(()=>{let e=(t,n=0)=>{let r=[];for(let i of t)r.push({id:i.id,name:i.name,fileCount:i.file_count,depth:n}),i.children.length>0&&r.push(...e(i.children,n+1));return r};return e(Ve).map(e=>(0,G.jsxs)(`option`,{value:e.id,children:[`│ `.repeat(e.depth),`📂 `,e.name,` `,e.fileCount>0?`(${e.fileCount})`:``]},e.id))})()]})}),(0,G.jsxs)(`div`,{ref:Se,className:`hidden lg:flex flex-shrink-0 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary overflow-hidden flex-col relative`,style:{width:`${ve}px`},children:[(0,G.jsx)(`div`,{className:`absolute right-0 top-0 bottom-0 w-1.5 cursor-col-resize z-10 group/resize flex items-center justify-center transition-colors ${be?`bg-bambu-green`:`hover:bg-bambu-green/50`}`,onMouseDown:e=>{e.preventDefault(),xe(!0)},onDoubleClick:()=>{ye(256),localStorage.setItem(`library-sidebar-width`,`256`)},title:e(`fileManager.dragToResizeTooltip`),children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 opacity-0 group-hover/resize:opacity-100 transition-opacity ${be?`opacity-100`:``}`,children:[(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`}),(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`}),(0,G.jsx)(`div`,{className:`w-0.5 h-0.5 rounded-full bg-white/70`})]})}),(0,G.jsxs)(`div`,{className:`p-3 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-medium text-white`,children:e(`fileManager.folders`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsxs)(`select`,{value:me,onChange:e=>{let t=e.target.value===`activity`?`activity`:`name`;he(t),localStorage.setItem(`library-folder-sort-field`,t)},className:`text-xs px-1 py-0.5 rounded bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray focus:outline-none focus:border-bambu-green`,title:e(`fileManager.folderSort`),"aria-label":e(`fileManager.folderSort`),children:[(0,G.jsx)(`option`,{value:`name`,children:e(`fileManager.folderSortByName`)}),(0,G.jsx)(`option`,{value:`activity`,children:e(`fileManager.folderSortByActivity`)})]}),(0,G.jsx)(`button`,{onClick:()=>{let e=ge===`asc`?`desc`:`asc`;_e(e),localStorage.setItem(`library-folder-sort-direction`,e)},className:`text-bambu-gray hover:text-white hover:bg-bambu-dark p-1 rounded transition-colors`,title:e(ge===`asc`?`fileManager.ascending`:`fileManager.descending`),"aria-label":e(ge===`asc`?`fileManager.ascending`:`fileManager.descending`),children:ge===`asc`?(0,G.jsx)(Vo,{className:`w-3.5 h-3.5`}):(0,G.jsx)(Fo,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:()=>{let e=!fe;pe(e),localStorage.setItem(`library-collapse-folders`,String(e))},className:`text-xs px-1.5 py-0.5 rounded transition-colors ${fe?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,title:e(fe?`fileManager.expandFoldersByDefault`:`fileManager.collapseFoldersByDefault`),children:e(`fileManager.collapse`)}),(0,G.jsx)(`button`,{onClick:()=>{let e=!ue;de(e),localStorage.setItem(`library-wrap-folders`,String(e))},className:`text-xs px-1.5 py-0.5 rounded transition-colors ${ue?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:text-white hover:bg-bambu-dark`}`,title:e(ue?`fileManager.disableTextWrapping`:`fileManager.enableTextWrapping`),children:e(`fileManager.wrap`)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer transition-colors ${u===null&&f===`internal`?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,onClick:()=>{d(null),p(`internal`)},children:[(0,G.jsx)(sc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`text-sm`,children:e(`fileManager.allFiles`)})]}),ze?.some(e=>e.is_external)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer transition-colors ${u===null&&f===`external`?`bg-bambu-green/20 text-bambu-green`:`hover:bg-bambu-dark text-white`}`,onClick:()=>{d(null),p(`external`)},children:[(0,G.jsx)(bc,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`text-sm`,children:e(`fileManager.allExternal`)})]}),Ve?.map(t=>(0,G.jsx)(f$e,{folder:t,selectedFolderId:u,onSelect:d,onDelete:e=>R({type:`folder`,id:e}),onLink:I,onRename:e=>ie({type:`folder`,id:e.id,name:e.name}),wrapNames:ue,defaultExpanded:!fe,showModified:Ne,hasPermission:r,t:e},`${t.id}-${fe?`c`:`e`}`))]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col lg:flex-row min-w-0 min-h-0 gap-4 lg:gap-6`,children:[(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0 min-h-0`,children:[Ge.length>0&&(0,G.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center gap-2 p-2 sm:p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium shrink-0`,children:e(`fileManager.tags.filterLabel`)}),Ge.map(e=>{let t=N.includes(e.id);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>qe(e.id),className:t?`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-bambu-green/20 text-bambu-green border border-bambu-green/40 hover:bg-bambu-green/30 transition-colors`:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-bambu-dark text-bambu-gray border border-bambu-dark-tertiary hover:text-white hover:border-bambu-green/40 transition-colors`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:e.name}),t&&(0,G.jsx)(nd,{className:`w-3 h-3`})]},e.id)}),N.length>0&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>P([]),className:`ml-auto text-xs text-bambu-gray hover:text-white shrink-0`,children:e(`fileManager.tags.clearAll`)})]}),Ot?.is_external&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4 p-3 bg-purple-50 dark:bg-purple-500/10 border border-purple-300 dark:border-purple-500/30 rounded-lg`,children:[(0,G.jsx)(bc,{className:`w-5 h-5 text-purple-600 dark:text-purple-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-purple-700 dark:text-purple-300`,children:e(`fileManager.externalFolder`)}),Ot.external_readonly&&(0,G.jsxs)(`span`,{className:`text-xs px-1.5 py-0.5 rounded bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400 flex items-center gap-1`,children:[(0,G.jsx)(nl,{className:`w-3 h-3`}),e(`fileManager.readOnly`)]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray truncate font-mono`,title:Ot.external_path||``,children:Ot.external_path})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>u&&rt.mutate(u),disabled:rt.isPending,title:e(`fileManager.scanFolder`),children:[rt.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Hl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`fileManager.scanFolder`)})]})]}),Je&&Je.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 sm:gap-3 mb-4 p-2 sm:p-3 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary sticky top-0 z-10 lg:static`,children:[(0,G.jsxs)(`div`,{className:`relative w-full sm:w-auto sm:flex-1 sm:max-w-xs`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:e(`fileManager.searchFiles`),value:Ce,onChange:e=>we(e.target.value),className:`w-full pl-9 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green`}),Ue&&(0,G.jsx)(`span`,{className:`absolute -bottom-4 left-0 text-[10px] text-bambu-gray whitespace-nowrap`,title:e(`fileManager.searchSubfoldersHint`),children:e(`fileManager.searchSubfoldersHint`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(wc,{className:`w-4 h-4 text-bambu-gray hidden sm:block`}),(0,G.jsxs)(`select`,{value:Te,onChange:e=>Ee(e.target.value),className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1.5 text-sm text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`all`,children:e(`fileManager.allTypes`)}),Qe.map(e=>(0,G.jsx)(`option`,{value:e,children:e.toUpperCase()},e))]})]}),o&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`text`,placeholder:e(`fileManager.filterByUser`,{defaultValue:`Filter by user`}),value:De,onChange:e=>Oe(e.target.value),list:`usernames-list`,className:`w-32 sm:w-40 px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-sm text-white placeholder-bambu-gray focus:outline-none focus:border-bambu-green ${De?`pr-7`:``}`,style:De?{WebkitAppearance:`none`,MozAppearance:`textfield`}:void 0}),De&&(0,G.jsx)(`button`,{onClick:()=>Oe(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white z-10`,children:(0,G.jsx)(nd,{className:`w-3 h-3`})}),(0,G.jsx)(`datalist`,{id:`usernames-list`,children:Ze?.map(e=>(0,G.jsx)(`option`,{value:e.username},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`select`,{value:ke,onChange:e=>{let t=e.target.value;Ae(t),localStorage.setItem(`library-sort-field`,t)},className:`bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1.5 text-sm text-white focus:outline-none focus:border-bambu-green`,children:[(0,G.jsx)(`option`,{value:`name`,children:e(`common.name`)}),(0,G.jsx)(`option`,{value:`date`,children:e(`common.date`)}),(0,G.jsx)(`option`,{value:`size`,children:e(`fileManager.size`)}),(0,G.jsx)(`option`,{value:`type`,children:e(`common.type`)}),(0,G.jsx)(`option`,{value:`prints`,children:e(`fileManager.prints`)})]}),(0,G.jsx)(`button`,{onClick:()=>Me(e=>{let t=e===`asc`?`desc`:`asc`;return localStorage.setItem(`library-sort-direction`,t),t}),className:`p-1.5 rounded bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors`,title:e(je===`asc`?`fileManager.ascending`:`fileManager.descending`),children:je===`asc`?(0,G.jsx)(Vo,{className:`w-4 h-4 text-white`}):(0,G.jsx)(Fo,{className:`w-4 h-4 text-white`})}),(0,G.jsx)(`button`,{onClick:()=>Pe(e=>{let t=!e;return localStorage.setItem(`library-show-modified`,String(t)),t}),className:`p-1.5 rounded bg-bambu-dark border transition-colors ${Ne?`border-bambu-green text-bambu-green`:`border-bambu-dark-tertiary text-white hover:border-bambu-green`}`,title:e(Ne?`fileManager.hideModified`:`fileManager.showModified`),"aria-pressed":Ne,children:(0,G.jsx)(rs,{className:`w-4 h-4`})})]}),(Ce||Te!==`all`||De)&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray hidden sm:inline`,children:e(`fileManager.resultsCount`,{showing:$e.length,total:Je.length})})]}),$e.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mb-4 p-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary sticky top-[52px] z-10 lg:static`,children:[m.length===$e.length&&m.length>0?(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:yt,children:[(0,G.jsx)(bu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.deselectAll`)})]}):(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:vt,children:[(0,G.jsx)(vu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.selectAll`)})]}),m.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray ml-2`,children:e(`fileManager.selected`,{count:m.length})}),(0,G.jsx)(`div`,{className:`hidden sm:block flex-1`}),(0,G.jsxs)(`div`,{className:`w-full sm:w-auto flex flex-wrap items-center gap-2 mt-2 sm:mt-0`,children:[mt.length>=1&&(0,G.jsxs)(Q,{variant:`primary`,size:`sm`,onClick:()=>B(mt[0]),disabled:!r(`queue:create`),title:r(`queue:create`)?void 0:e(`fileManager.noPermissionAddToQueue`),children:[(0,G.jsx)(Rl,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:mt.length>1?e(`fileManager.variants.printAlternatives`,{count:mt.length}):e(`common.print`)})]}),mt.length>=2&&!mt.some(e=>e.variant_group_id)&&(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>ot.mutate(mt.map(e=>e.id)),disabled:ot.isPending||!i(`library:update_own`,`library:update_all`),title:e(`fileManager.variants.groupTooltip`),children:[(0,G.jsx)(Jc,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.variants.groupAction`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>S(!0),disabled:!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?void 0:e(`fileManager.noPermissionMoveFiles`),children:[(0,G.jsx)(vl,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.move`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:()=>M(!0),disabled:!i(`library:update_own`,`library:update_all`),title:i(`library:update_own`,`library:update_all`)?e(`fileManager.tags.bulkTooltip`):e(`fileManager.tags.noPermission`),children:[(0,G.jsx)(Eu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`fileManager.tags.tagAction`)})]}),(0,G.jsxs)(Q,{variant:`danger`,size:`sm`,onClick:()=>{m.length===1?R({type:`file`,id:m[0]}):R({type:`bulk`,id:0,count:m.length})},disabled:!i(`library:delete_own`,`library:delete_all`),title:i(`library:delete_own`,`library:delete_all`)?void 0:e(`fileManager.noPermissionDeleteFiles`),children:[(0,G.jsx)(Pu,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.delete`)})]}),(0,G.jsxs)(Q,{variant:`secondary`,size:`sm`,onClick:yt,children:[(0,G.jsx)(nd,{className:`w-4 h-4 sm:mr-1`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:e(`common.clear`)})]})]})]})]}),Dt?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`fileManager.loadingFiles`)})]})}):Je?.length===0?(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(sc,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:e(u===null?f===`external`?`fileManager.externalIsEmpty`:`fileManager.noFilesYet`:`fileManager.folderIsEmpty`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:e(u===null?f===`external`?`fileManager.externalEmptyDescription`:`fileManager.noFilesDescription`:`fileManager.folderEmptyDescription`)}),(0,G.jsxs)(Q,{onClick:()=>w(!0),disabled:!r(`library:upload`),title:r(`library:upload`)?void 0:e(`fileManager.noPermissionUpload`),children:[(0,G.jsx)(Fl,{className:`w-4 h-4 mr-2`}),e(`fileManager.uploadFiles`)]})]}):$e.length===0?(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark rounded-2xl mb-4`,children:(0,G.jsx)(Ql,{className:`w-12 h-12 text-bambu-gray/50`})}),(0,G.jsx)(`h3`,{className:`text-lg font-medium text-white mb-2`,children:e(`fileManager.noMatchingFiles`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray text-center max-w-md mb-6`,children:e(`fileManager.noMatchingFilesDescription`)}),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>{we(``),Ee(`all`)},children:e(`fileManager.clearFilters`)})]}):ce===`grid`?(0,G.jsx)(`div`,{className:`flex-1 lg:overflow-y-auto`,children:(0,G.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4`,children:$e.map(t=>(0,G.jsx)(p$e,{file:t,isSelected:m.includes(t.id),t:e,onSelect:_t,onDelete:e=>R({type:`file`,id:e}),onDownload:Ct,onPrint:B,onSlice:ee,onOpenInSlicer:Le,desktopSlicer:Ie,onRunPipeline:ne,useSlicerApi:Fe?.use_slicer_api??!1,canSlice:Re(),onPreview3d:e=>{M5(e)?c(`/gcode-viewer?library_file=${e.id}`):H(e)},onRename:e=>ie({type:`file`,id:e.id,name:e.filename}),onGenerateThumbnail:e=>pt.mutate(e.id),onTagClick:qe,thumbnailVersion:ae[t.id],hasPermission:r,canModify:a,authEnabled:o,showModified:Ne},t.id))})}):(0,G.jsx)(`div`,{className:`flex-1 lg:overflow-y-auto`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary overflow-x-auto`,children:[(0,G.jsxs)(`div`,{className:`hidden sm:grid ${o?`grid-cols-[auto_1fr_120px_100px_100px_100px_minmax(0,200px)_220px]`:`grid-cols-[auto_1fr_100px_100px_100px_minmax(0,200px)_220px]`} gap-4 px-4 py-2 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary text-xs text-bambu-gray font-medium`,children:[(0,G.jsx)(`div`,{className:`w-6`}),(0,G.jsx)(`div`,{children:e(`common.name`)}),o&&(0,G.jsx)(`div`,{children:e(`fileManager.uploadedBy`,{defaultValue:`Uploaded By`})}),(0,G.jsx)(`div`,{children:e(`common.type`)}),(0,G.jsx)(`div`,{children:e(`fileManager.size`)}),(0,G.jsx)(`div`,{children:e(`fileManager.prints`)}),(0,G.jsx)(`div`,{children:e(`fileManager.tags.title`)}),(0,G.jsx)(`div`,{})]}),$e.map(t=>(0,G.jsxs)(`div`,{className:`grid ${o?`grid-cols-[auto_1fr_120px_100px_100px_100px_minmax(0,200px)_220px]`:`grid-cols-[auto_1fr_100px_100px_100px_minmax(0,200px)_220px]`} gap-4 px-4 py-3 items-center border-b border-bambu-dark-tertiary last:border-b-0 cursor-pointer hover:bg-bambu-dark/50 transition-colors ${m.includes(t.id)?`bg-bambu-green/10`:``}`,onClick:()=>_t(t.id),children:[(0,G.jsx)(`div`,{className:`w-5 h-5 rounded border-2 flex items-center justify-center ${m.includes(t.id)?`bg-bambu-green border-bambu-green`:`border-bambu-gray/50`}`,children:m.includes(t.id)&&(0,G.jsx)(`div`,{className:`w-2 h-2 bg-white rounded-sm`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`relative group/thumb`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded bg-bambu-dark flex-shrink-0 overflow-hidden`,children:t.thumbnail_path?(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(t.id)}${ae[t.id]?(Z.getLibraryFileThumbnailUrl(t.id).includes(`?`)?`&`:`?`)+`v=${ae[t.id]}`:``}`,alt:``,className:`w-full h-full object-cover`}):(0,G.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,G.jsx)(sc,{className:`w-5 h-5 text-bambu-gray/50`})})}),t.thumbnail_path&&(0,G.jsx)(`div`,{className:`absolute left-0 top-full mt-2 z-50 hidden group-hover/thumb:block`,children:(0,G.jsx)(`div`,{className:`w-48 h-48 rounded-lg bg-bambu-dark-secondary border border-bambu-dark-tertiary shadow-xl overflow-hidden`,children:(0,G.jsx)(`img`,{src:`${Z.getLibraryFileThumbnailUrl(t.id)}${ae[t.id]?(Z.getLibraryFileThumbnailUrl(t.id).includes(`?`)?`&`:`?`)+`v=${ae[t.id]}`:``}`,alt:t.filename,className:`w-full h-full object-contain`})})})]}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`div`,{className:`text-sm text-white truncate`,children:t.print_name||t.filename}),Ne&&(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray flex items-center gap-1 mt-0.5`,title:e(`fileManager.lastModified`),children:[(0,G.jsx)(rs,{className:`w-3 h-3 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:ip(t.fs_modified_at??t.created_at)})]})]})]}),o&&(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray flex items-center gap-1`,children:t.created_by_username?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Hu,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{className:`truncate`,children:t.created_by_username})]}):`-`}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded font-medium ${t.file_type===`3mf`?`bg-bambu-green/20 text-bambu-green`:t.file_type===`gcode`||t.file_type===`gcode.3mf`?`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`:t.file_type===`stl`?`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`:`bg-bambu-gray/20 text-bambu-gray`}`,children:t.file_type.toUpperCase()})}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:Gd(t.file_size)}),(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:t.print_count>0?`${t.print_count}x`:`-`}),(0,G.jsx)(`div`,{className:`min-w-0`,onClick:e=>e.stopPropagation(),children:!t.tags||t.tags.length===0?(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/50`,children:`-`}):(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.tags.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>qe(e.id),className:`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full text-[10px] bg-bambu-green/10 text-bambu-green hover:bg-bambu-green/20 transition-colors max-w-full`,title:e.name,children:[(0,G.jsx)(Eu,{className:`w-2.5 h-2.5 flex-shrink-0`}),(0,G.jsx)(`span`,{className:`truncate`,children:e.name})]},e.id))})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[M5(t)&&(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(`button`,{onClick:()=>r(`queue:create`)&&B(t),className:`p-1.5 rounded transition-colors ${r(`queue:create`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`queue:create`)?e(`common.print`):e(`fileManager.noPermissionAddToQueue`),disabled:!r(`queue:create`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})})}),N5(t,!!Fe?.use_slicer_api,Ie)&&(0,G.jsx)(`button`,{onClick:()=>{Re()&&(Fe?.use_slicer_api?ee:Le)(t)},className:`p-1.5 rounded transition-colors ${Re()?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:Re()?e(`slice.action`):Fe?.use_slicer_api?e(`fileManager.noPermissionSlice`):e(`fileManager.noPermissionDownload`),disabled:!Re(),children:Fe?.use_slicer_api?(0,G.jsx)(Rs,{className:`w-4 h-4`}):(0,G.jsx)(rc,{className:`w-4 h-4`})}),(Fe?.use_slicer_api??!1)&&N5(t,!0,Ie)&&(0,G.jsx)(`button`,{onClick:()=>r(`pipelines:run`)&&ne(t),className:`p-1.5 rounded transition-colors ${r(`pipelines:run`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`pipelines:run`)?e(`library.runWithPipeline.actionLabel`,`Run with pipeline`):e(`library.runWithPipeline.noPermission`,`You do not have permission to run pipelines`),disabled:!r(`pipelines:run`),children:(0,G.jsx)(Nl,{className:`w-4 h-4`})}),(t.file_type===`3mf`||t.file_type===`gcode`||t.file_type===`gcode.3mf`||t.file_type===`stl`)&&(0,G.jsx)(`button`,{onClick:()=>{r(`library:read`)&&(M5(t)?c(`/gcode-viewer?library_file=${t.id}`):H(t))},className:`p-1.5 rounded transition-colors ${r(`library:read`)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`library:read`)?`3D Preview`:`You do not have permission to preview files`,disabled:!r(`library:read`),children:(0,G.jsx)(Zo,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>r(`library:read`)&&Ct(t.id),className:`p-1.5 rounded transition-colors ${r(`library:read`)?`hover:bg-bambu-dark text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:r(`library:read`)?e(`common.download`):e(`fileManager.noPermissionDownload`),disabled:!r(`library:read`),children:(0,G.jsx)(Xs,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`library`,`update`,t.created_by_id)&&ie({type:`file`,id:t.id,name:t.filename}),className:`p-1.5 rounded transition-colors ${a(`library`,`update`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-white`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`update`,t.created_by_id)?e(`common.rename`):e(`fileManager.noPermissionRenameFile`),disabled:!a(`library`,`update`,t.created_by_id),children:(0,G.jsx)(Al,{className:`w-4 h-4`})}),t.file_type===`stl`&&(0,G.jsx)(`button`,{onClick:()=>a(`library`,`update`,t.created_by_id)&&pt.mutate(t.id),className:`p-1.5 rounded transition-colors ${a(`library`,`update`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-bambu-green`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`update`,t.created_by_id)?e(`fileManager.generateThumbnail`):e(`fileManager.noPermissionGenerateThumbnail`),disabled:pt.isPending||!a(`library`,`update`,t.created_by_id),children:(0,G.jsx)(Hc,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(`library`,`delete`,t.created_by_id)&&R({type:`file`,id:t.id}),className:`p-1.5 rounded transition-colors ${a(`library`,`delete`,t.created_by_id)?`hover:bg-bambu-dark text-bambu-gray hover:text-red-700 dark:hover:text-red-400`:`text-bambu-gray/50 cursor-not-allowed`}`,title:a(`library`,`delete`,t.created_by_id)?e(`common.delete`):e(`fileManager.noPermissionDeleteFile`),disabled:!a(`library`,`delete`,t.created_by_id),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})]},t.id))]})})]}),u!==null&&(0,G.jsx)(t$e,{folderId:u})]})]}),g&&(0,G.jsx)(a$e,{parentId:u,onClose:()=>_(!1),onSave:e=>tt.mutate(e),isLoading:tt.isPending,t:e}),v&&(0,G.jsx)(o$e,{onClose:()=>b(!1),onSave:e=>nt.mutate(e),isLoading:nt.isPending,t:e}),x&&ze&&(0,G.jsx)(u$e,{folders:ze,selectedFiles:m,currentFolderId:u,onClose:()=>S(!1),onMove:e=>ct.mutate({fileIds:m,folderId:e}),isLoading:ct.isPending,t:e}),C&&(0,G.jsx)(gU,{folderId:u,onClose:()=>{w(!1),E([])},onUploadComplete:bt,initialFiles:T.length>0?T:void 0}),D&&(0,G.jsx)(i$e,{onClose:()=>O(!1)}),(0,G.jsx)(n$e,{open:k,onClose:()=>A(!1),onPickTag:e=>{N.includes(e)||P(t=>[...t,e])}}),(0,G.jsx)(FKe,{open:j,fileIds:m,onClose:()=>M(!1)}),F&&(0,G.jsx)(d$e,{folder:F,onClose:()=>I(null),onLink:e=>lt.mutate({id:F.id,data:e}),isLoading:lt.isPending,t:e}),L&&(0,G.jsx)(of,{title:L.type===`folder`?e(`fileManager.deleteFolder`):L.type===`bulk`?e(`fileManager.deleteFilesCount`,{count:L.count}):e(`fileManager.deleteFile`),message:L.type===`folder`?e(`fileManager.deleteFolderConfirm`):L.type===`bulk`?e(`fileManager.deleteFilesConfirm`,{count:L.count}):e(`fileManager.deleteFileConfirm`),confirmText:e(`common.delete`),variant:`danger`,isLoading:Tt,loadingText:e(`fileManager.deleting`),onConfirm:wt,onCancel:()=>R(null)}),z&&(!z.variant_group_id||ht!==void 0)&&(0,G.jsx)(zU,{mode:`create`,libraryFileId:gt?.[0]?.id??z.id,variantFiles:gt,archiveName:gt&>.length>1?`${gt[0].filename} ${e(`common.plusNMore`,{count:gt.length-1})}`:z.print_name||z.filename,onClose:()=>B(null),onSuccess:()=>{B(null),h([]),t.invalidateQueries({queryKey:[`library-files`]}),t.invalidateQueries({queryKey:[`queue`]}),t.invalidateQueries({queryKey:[`archives`]})}}),V&&(0,G.jsx)(RW,{source:{kind:`libraryFile`,id:V.id,filename:V.filename},onClose:()=>ee(null)}),te&&(0,G.jsx)(VW,{source:{kind:`libraryFile`,id:te.id,filename:te.filename},onClose:()=>ne(null)}),se&&(0,G.jsx)(PKe,{libraryFileId:se.id,title:se.print_name||se.filename,fileType:se.file_type,onClose:()=>H(null),onSliceWithBambuddy:N5(se,!0,Ie)&&r(`library:upload`)?()=>{let e=se;H(null),ee(e)}:void 0}),re&&(0,G.jsx)(l$e,{type:re.type,currentName:re.name,onClose:()=>ie(null),onSave:e=>{re.type===`file`?ut.mutate({id:re.id,filename:e}):dt.mutate({id:re.id,name:e})},isLoading:ut.isPending||dt.isPending,t:e})]})}function h$e(e){let t=rp(e);if(!t)return``;let n=Math.ceil((t.getTime()-Date.now())/(1e3*60*60*24));return n<=0?`any moment`:n===1?`1 day`:`${n} days`}function g$e(e){let t=rp(e);return t?t.toLocaleString():e}function _$e(){let{t:e}=U(),t=or(),n=co(),{showToast:r}=qd(),{hasPermission:i,authEnabled:a}=Nd(),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(new Set),u=!a||i(`library:purge`),d=K({queryKey:[`library-trash`],queryFn:()=>Z.listLibraryTrash(200,0)}),f=K({queryKey:[`library-trash-settings`],queryFn:()=>Z.getLibraryTrashSettings(),enabled:u}),[p,m]=(0,y.useState)(null);(0,y.useEffect)(()=>{f.data&&p===null&&m(f.data.retention_days)},[f.data,p]);let h=q({mutationFn:e=>{let t=f.data;return Z.updateLibraryTrashSettings({retention_days:e,auto_purge_enabled:t?.auto_purge_enabled??!1,auto_purge_days:t?.auto_purge_days??90,auto_purge_include_never_printed:t?.auto_purge_include_never_printed??!0})},onSuccess:t=>{r(e(`libraryTrash.toast.retentionSaved`,{days:t.retention_days}),`success`),n.invalidateQueries({queryKey:[`library-trash-settings`]}),n.invalidateQueries({queryKey:[`library-trash`]})},onError:t=>r(t.message||e(`libraryTrash.toast.retentionFailed`),`error`)}),g=q({mutationFn:e=>Z.restoreLibraryTrash(e),onSuccess:()=>{r(e(`libraryTrash.toast.restored`),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]})},onError:t=>r(t.message||e(`libraryTrash.toast.restoreFailed`),`error`)}),_=q({mutationFn:e=>Z.hardDeleteLibraryTrash(e),onSuccess:()=>{r(e(`libraryTrash.toast.purged`),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.purgeFailed`),`error`)}),v=q({mutationFn:()=>Z.emptyLibraryTrash(),onSuccess:t=>{r(e(`libraryTrash.toast.emptied`,{count:t.deleted}),`success`),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.emptyFailed`),`error`)}),b=q({mutationFn:e=>Promise.all(e.map(e=>Z.restoreLibraryTrash(e))),onSuccess:(t,i)=>{r(e(`libraryTrash.toast.bulkRestored`,{count:i.length}),`success`),l(new Set),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]}),n.invalidateQueries({queryKey:[`library-files`]}),n.invalidateQueries({queryKey:[`library-folders`]})},onError:t=>r(t.message||e(`libraryTrash.toast.restoreFailed`),`error`)}),x=q({mutationFn:e=>Promise.all(e.map(e=>Z.hardDeleteLibraryTrash(e))),onSuccess:(t,i)=>{r(e(`libraryTrash.toast.bulkPurged`,{count:i.length}),`success`),l(new Set),n.invalidateQueries({queryKey:[`library-trash`]}),n.invalidateQueries({queryKey:[`library-trash-count`]})},onError:t=>r(t.message||e(`libraryTrash.toast.purgeFailed`),`error`)}),S=(0,y.useMemo)(()=>d.data?.items??[],[d.data?.items]),C=d.data?.retention_days??30,w=(0,y.useMemo)(()=>S.reduce((e,t)=>e+t.file_size,0),[S]),T=S.length>0&&S.every(e=>c.has(e.id)),E=c.size>0&&!T,D=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,G.jsxs)(`div`,{className:`p-6 max-w-screen-2xl mx-auto`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-3 mb-4`,children:(0,G.jsxs)(Ai,{to:`/files`,className:`inline-flex items-center gap-1 text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200`,children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),` `,e(`libraryTrash.backToFiles`)]})}),(0,G.jsxs)(`div`,{className:`flex items-start justify-between mb-6 gap-4 flex-wrap`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900 dark:text-gray-100`,children:e(`libraryTrash.title`)}),(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400 mt-1`,children:e(u?`libraryTrash.subtitleAdmin`:`libraryTrash.subtitleUser`,{days:C})})]}),S.length>0&&(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s({type:`empty`}),className:`text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.emptyTrash`)]})]}),u&&f.data&&(0,G.jsxs)(`div`,{className:`mb-4 border border-gray-200 dark:border-gray-700 rounded-lg p-3 flex items-center gap-3 bg-gray-50 dark:bg-gray-800/40`,children:[(0,G.jsx)(`label`,{htmlFor:`retention-days`,className:`text-sm font-medium text-gray-700 dark:text-gray-300`,children:e(`libraryTrash.retentionLabel`)}),(0,G.jsx)(`input`,{id:`retention-days`,type:`number`,min:1,max:365,value:p??f.data.retention_days,onChange:e=>m(Math.max(1,Math.min(365,parseInt(e.target.value||`0`,10)||0))),className:`w-20 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-sm px-2 py-1 text-gray-900 dark:text-gray-100`}),(0,G.jsx)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:e(`libraryTrash.days`)}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>p!=null&&h.mutate(p),disabled:h.isPending||p==null||p===f.data.retention_days,className:`ml-auto`,children:[(0,G.jsx)(ql,{className:`w-4 h-4 mr-1`}),e(`common.save`)]})]}),d.isLoading?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-gray-500 dark:text-gray-400`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),` `,e(`libraryTrash.loading`)]}):S.length===0?(0,G.jsx)(`div`,{className:`border border-dashed border-gray-300 dark:border-gray-700 rounded-lg p-12 text-center`,children:(0,G.jsx)(`p`,{className:`text-gray-500 dark:text-gray-400`,children:e(`libraryTrash.empty`)})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:e(`libraryTrash.summary`,{count:S.length,size:Gd(w)})}),c.size>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:e(`libraryTrash.selectionCount`,{count:c.size})}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>b.mutate(Array.from(c)),disabled:b.isPending,children:[(0,G.jsx)(Wl,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.bulkRestore`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>s({type:`bulkDelete`,count:c.size}),disabled:x.isPending,className:`text-red-600 dark:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4 mr-1`}),e(`libraryTrash.bulkPurge`)]})]})]}),(0,G.jsx)(`div`,{className:`border border-gray-200 dark:border-gray-700 rounded-lg overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-gray-50 dark:bg-gray-800 text-left text-gray-600 dark:text-gray-300`,children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{className:`px-3 py-2 w-10`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:T,ref:e=>{e&&(e.indeterminate=E)},onChange:()=>{l(e=>e.size===S.length?new Set:new Set(S.map(e=>e.id)))},"aria-label":e(`libraryTrash.selectAll`),className:`rounded border-gray-300 cursor-pointer`})}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.filename`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.folder`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium text-right`,children:e(`libraryTrash.col.size`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium whitespace-nowrap`,children:e(`libraryTrash.col.deleted`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium whitespace-nowrap`,children:e(`libraryTrash.col.autoPurge`)}),u&&(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:e(`libraryTrash.col.owner`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium text-right`,children:e(`libraryTrash.col.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-gray-100 dark:divide-gray-800`,children:S.map(t=>(0,G.jsxs)(`tr`,{className:`hover:bg-gray-50 dark:hover:bg-gray-800/50`,children:[(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,checked:c.has(t.id),onChange:()=>D(t.id),"aria-label":e(`libraryTrash.selectOne`,{filename:t.filename}),className:`rounded border-gray-300 cursor-pointer`})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-900 dark:text-gray-100 truncate max-w-md`,title:t.filename,children:t.filename}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400`,children:t.folder_name??`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-right text-gray-600 dark:text-gray-400 tabular-nums whitespace-nowrap`,children:Gd(t.file_size)}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400 whitespace-nowrap`,children:g$e(t.deleted_at)}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400 whitespace-nowrap`,children:(0,G.jsx)(`span`,{title:g$e(t.auto_purge_at),children:e(`libraryTrash.autoPurgeIn`,{when:h$e(t.auto_purge_at)})})}),u&&(0,G.jsx)(`td`,{className:`px-3 py-2 text-gray-600 dark:text-gray-400`,children:t.created_by_username??`—`}),(0,G.jsxs)(`td`,{className:`px-3 py-2 text-right whitespace-nowrap`,children:[(0,G.jsxs)(`button`,{onClick:()=>g.mutate(t.id),disabled:g.isPending,className:`inline-flex items-center gap-1 px-2 py-1 text-xs text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300`,children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5`}),e(`libraryTrash.restore`)]}),(0,G.jsxs)(`button`,{onClick:()=>s({type:`delete`,id:t.id,filename:t.filename}),disabled:_.isPending,className:`inline-flex items-center gap-1 px-2 py-1 text-xs text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300 ml-2`,children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`}),e(`libraryTrash.purgeNow`)]})]})]},t.id))})]})})]}),o&&(0,G.jsx)(of,{onCancel:()=>s(null),onConfirm:()=>{o&&(o.type===`delete`?_.mutate(o.id):o.type===`bulkDelete`?x.mutate(Array.from(c)):v.mutate(),s(null))},title:o.type===`delete`?e(`libraryTrash.confirm.purgeTitle`):o.type===`bulkDelete`?e(`libraryTrash.confirm.bulkPurgeTitle`):e(`libraryTrash.confirm.emptyTitle`),message:o.type===`delete`?e(`libraryTrash.confirm.purgeBody`,{filename:o.filename}):o.type===`bulkDelete`?e(`libraryTrash.confirm.bulkPurgeBody`,{count:o.count}):e(`libraryTrash.confirm.emptyBody`,{count:S.length}),confirmText:e(`libraryTrash.confirm.cta`),variant:`danger`}),d.isError&&(0,G.jsxs)(`div`,{className:`mt-4 text-sm text-red-600 dark:text-red-400`,children:[d.error?.message??e(`libraryTrash.loadError`),(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>t(`/files`),className:`ml-3`,children:e(`libraryTrash.backToFiles`)})]})]})}function v$e(e){return e.includes(`/camera/`)}function y$e(e,t,n){let r=0;return e.querySelectorAll(`img[src*="/api/v1/"], video[src*="/api/v1/"]`).forEach(e=>{let i=e.getAttribute(`src`)||``,a=v$e(i)?n:t;if(!a)return;let o=`token=${encodeURIComponent(a)}`;if(i.includes(o))return;let s=i.replace(/([?&])token=[^&]*(&|$)/,(e,t,n)=>n===`&`?t:``);e.src=`${s}${s.includes(`?`)?`&`:`?`}${o}`,r+=1}),r}function b$e(){let{authEnabled:e,user:t,loading:n,hasPermission:r}=Nd(),i=co(),a=(0,y.useRef)(!1),o=!n&&(!e||t!==null),{data:s}=K({queryKey:[`media-token`,t?.id??null],queryFn:()=>Z.getMediaToken(),enabled:o,staleTime:3e3*1e3,refetchInterval:3e3*1e3}),c=!e||r(`camera:view`),{data:l}=K({queryKey:[`camera-stream-token`,t?.id??null],queryFn:()=>Z.getCameraStreamToken(),enabled:o&&c,staleTime:3e3*1e3,refetchInterval:3e3*1e3}),u=s?.token??null,d=l?.token??null;(0,y.useEffect)(()=>(hd(u),pd(d),(u||d)&&y$e(document,u,d),()=>{hd(null),pd(null)}),[u,d]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{let t=e.target;if(!(t instanceof HTMLImageElement||t instanceof HTMLVideoElement))return;let n=t.src||``,r=v$e(n),o=r?md():gd();!o||!n.includes(`token=${encodeURIComponent(o)}`)||a.current||(a.current=!0,i.invalidateQueries({queryKey:r?[`camera-stream-token`]:[`media-token`]}),setTimeout(()=>{a.current=!1},5e3))};return document.addEventListener(`error`,t,!0),()=>document.removeEventListener(`error`,t,!0)},[e,i])}var a9=5,x$e=2e3,S$e=3e4,C$e=5e3;function w$e(){let{t:e}=U(),t=co(),{showToast:n}=qd(),{hasPermission:r,authEnabled:i,user:a}=Nd(),{printerId:o}=dr(),s=parseInt(o||`0`,10),[c]=Ri(),l=parseInt(c.get(`fps`)||`15`,10),u=Math.min(Math.max(isNaN(l)?15:l,1),30);b$e();let{data:d,isPending:f}=K({queryKey:[`camera-stream-token`,a?.id??null],queryFn:()=>Z.getCameraStreamToken(),enabled:i?!!a:!0,staleTime:3e3*1e3}),p=d?.token??md(),[m,h]=(0,y.useState)(`stream`),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!0),[T,E]=(0,y.useState)(Date.now()),[D,O]=(0,y.useState)(!1),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)(0),[N,P]=(0,y.useState)(!1),[F,I]=(0,y.useState)(0),[L,R]=(0,y.useState)(1),[z,B]=(0,y.useState)({x:0,y:0}),[V,ee]=(0,y.useState)(!1),[te,ne]=(0,y.useState)({x:0,y:0}),[re,ie]=(0,y.useState)(null),[ae,oe]=(0,y.useState)(null),se=(0,y.useRef)(null),H=(0,y.useRef)(null),ce=(0,y.useRef)(null),le=(0,y.useRef)(null),ue=(0,y.useRef)(null),de=(0,y.useRef)(0),{data:fe}=K({queryKey:[`printer`,s],queryFn:()=>Z.getPrinter(s),enabled:s>0}),{data:pe}=K({queryKey:[`printerStatus`,s],queryFn:()=>Z.getPrinterStatus(s),refetchInterval:3e4,enabled:s>0}),me=q({mutationFn:e=>Z.setChamberLight(s,e),onMutate:async e=>{await t.cancelQueries({queryKey:[`printerStatus`,s]});let n=t.getQueryData([`printerStatus`,s]);return t.setQueryData([`printerStatus`,s],t=>({...t,chamber_light:e})),{previousStatus:n}},onSuccess:(e,t)=>{n(`Chamber light ${t?`on`:`off`}`)},onError:(r,i,a)=>{a?.previousStatus&&t.setQueryData([`printerStatus`,s],a.previousStatus),n(r.message||e(`printers.toast.failedToControlChamberLight`),`error`)}}),he=(pe?.state===`RUNNING`||pe?.state===`PAUSE`)&&(pe?.printable_objects_count??0)>=2;(0,y.useEffect)(()=>(fe&&(document.title=`${fe.name} - Camera`),()=>{document.title=`Bambuddy`}),[fe]);let ge=(0,y.useRef)(!1);(0,y.useEffect)(()=>{let e=`/api/v1/printers/${s}/camera/stop`;ge.current=!1;let t=()=>{if(s>0&&!ge.current){ge.current=!0;let t={},n=ud();n&&(t.Authorization=`Bearer ${n}`),fetch(e,{method:`POST`,keepalive:!0,headers:t}).catch(()=>{})}},n=()=>{t()};window.addEventListener(`beforeunload`,n);let r=se.current;return()=>{window.removeEventListener(`beforeunload`,n),r&&(r.src=``),t()}},[s]),(0,y.useEffect)(()=>{if(C&&!D){let e=setTimeout(()=>{w(!1)},m===`stream`?3e3:2e4);return()=>clearTimeout(e)}},[m,C,T,D]),(0,y.useEffect)(()=>{let e=()=>{A(!!document.fullscreenElement),R(1),B({x:0,y:0}),m===`stream`&&!D&&(se.current&&(se.current.src=``),setTimeout(()=>{w(!0),E(Date.now())},200))};return document.addEventListener(`fullscreenchange`,e),()=>document.removeEventListener(`fullscreenchange`,e)},[m,D]),(0,y.useEffect)(()=>{let e,t=()=>{clearTimeout(e),e=setTimeout(()=>{localStorage.setItem(`cameraWindowState`,JSON.stringify({width:window.outerWidth,height:window.outerHeight,left:window.screenX,top:window.screenY}))},500)};return window.addEventListener(`resize`,t),()=>{clearTimeout(e),window.removeEventListener(`resize`,t)}},[]),(0,y.useEffect)(()=>()=>{ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),ue.current&&clearInterval(ue.current)},[]);let _e=(0,y.useCallback)(()=>{if(j>=a9){P(!1),S(!0);return}let e=Math.min(x$e*2**j,S$e);P(!0),I(Math.ceil(e/1e3)),le.current=setInterval(()=>{I(e=>e<=1?(le.current&&clearInterval(le.current),0):e-1)},1e3),ce.current=setTimeout(()=>{M(e=>e+1),P(!1),w(!0),S(!1),se.current&&(se.current.src=``),E(Date.now())},e)},[j]);(0,y.useEffect)(()=>{if(m!==`stream`||C||N||D){ue.current&&=(clearInterval(ue.current),null);return}return de.current=0,ue.current=setInterval(async()=>{try{let e=await Z.getCameraStatus(s);if(!(e.stalled||!e.active&&!x)){de.current=0;return}if(de.current+=1,de.current<2)return;de.current=0,console.log(`Stream issue detected: stalled=${e.stalled}, active=${e.active}, reconnecting...`),ue.current&&=(clearInterval(ue.current),null),w(!1),_e()}catch{}},C$e),()=>{ue.current&&=(clearInterval(ue.current),null)}},[m,C,x,N,D,s,_e]);let ve=()=>{w(!1),m===`stream`&&j{if(w(!1),S(!1),M(0),de.current=0,P(!1),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&!localStorage.getItem(`cameraWindowState`)){let e=se.current,t=e.naturalWidth,n=e.naturalHeight;if(t>0&&n>0){let e=window.outerWidth-window.innerWidth,r=window.outerHeight-window.innerHeight,i=t+16+e,a=n+45+16+r;try{window.resizeTo(i,a)}catch{}}}},be=()=>{if(s>0){let e={},t=ud();t&&(e.Authorization=`Bearer ${t}`),fetch(`/api/v1/printers/${s}/camera/stop`,{method:`POST`,headers:e}).catch(()=>{})}},xe=e=>{m===e||D||(O(!0),w(!0),S(!1),M(0),P(!1),R(1),B({x:0,y:0}),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&(se.current.src=``),m===`stream`&&be(),setTimeout(()=>{h(e),E(Date.now()),O(!1)},100))},Se=()=>{D||(O(!0),w(!0),S(!1),M(0),P(!1),ce.current&&clearTimeout(ce.current),le.current&&clearInterval(le.current),se.current&&(se.current.src=``),m===`stream`&&be(),setTimeout(()=>{E(Date.now()),O(!1)},100))},Ce=()=>{H.current&&(document.fullscreenElement?document.exitFullscreen():H.current.requestFullscreen())},we=()=>{R(e=>Math.min(e+.5,4))},Te=()=>{R(e=>{let t=Math.max(e-.5,1);return t===1&&B({x:0,y:0}),t})},Ee=e=>{e.preventDefault(),e.deltaY<0?we():Te()},De=e=>{L>1&&(e.preventDefault(),ee(!0),ne({x:e.clientX-z.x,y:e.clientY-z.y}))},Oe=(0,y.useCallback)(()=>{if(!H.current)return{x:300,y:200};let e=H.current.getBoundingClientRect(),t=e.width*(L-1)/2,n=e.height*(L-1)/2;return{x:Math.max(50,t),y:Math.max(50,n)}},[L]),ke=e=>{if(V&&L>1){let t=e.clientX-te.x,n=e.clientY-te.y,r=Oe();B({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Ae=()=>{ee(!1)},je=e=>{if(e.length<2)return 0;let t=e[0].clientX-e[1].clientX,n=e[0].clientY-e[1].clientY;return Math.sqrt(t*t+n*n)},Me=e=>e.length<2?{x:e[0].clientX,y:e[0].clientY}:{x:(e[0].clientX+e[1].clientX)/2,y:(e[0].clientY+e[1].clientY)/2},Ne=e=>{e.touches.length===2?(e.preventDefault(),ie(je(e.touches)),oe(Me(e.touches))):e.touches.length===1&&L>1&&(e.preventDefault(),ee(!0),ne({x:e.touches[0].clientX-z.x,y:e.touches[0].clientY-z.y}))},Pe=e=>{if(e.touches.length===2&&re!==null){e.preventDefault();let t=je(e.touches),n=t/re;R(e=>{let t=Math.max(1,Math.min(4,e*n));return t===1&&B({x:0,y:0}),t}),ie(t);let r=Me(e.touches);if(ae){let e=Oe();B(t=>({x:Math.max(-e.x,Math.min(e.x,t.x+(r.x-ae.x))),y:Math.max(-e.y,Math.min(e.y,t.y+(r.y-ae.y)))}))}oe(r)}else if(e.touches.length===1&&V&&L>1){e.preventDefault();let t=e.touches[0].clientX-te.x,n=e.touches[0].clientY-te.y,r=Oe();B({x:Math.max(-r.x,Math.min(r.x,t)),y:Math.max(-r.y,Math.min(r.y,n))})}},Fe=e=>{e.touches.length<2&&(ie(null),oe(null)),e.touches.length===0&&ee(!1)},Ie=()=>{R(1),B({x:0,y:0})},Le=D||!p&&(i||f)?``:(e=>p?`${e}&token=${encodeURIComponent(p)}`:_d(e))(m===`stream`?`/api/v1/printers/${s}/camera/stream?fps=${u}&t=${T}`:`/api/v1/printers/${s}/camera/snapshot?t=${T}`),Re=C||D||N;return s?(0,G.jsxs)(`div`,{ref:H,className:`min-h-screen bg-black flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`h1`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(ss,{className:`w-4 h-4`}),fe?.name||`Printer ${s}`]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark rounded p-0.5`,children:[(0,G.jsx)(`button`,{onClick:()=>xe(`stream`),disabled:Re,className:`px-3 py-1 text-xs rounded transition-colors ${m===`stream`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white disabled:opacity-50`}`,children:e(`camera.live`)}),(0,G.jsx)(`button`,{onClick:()=>xe(`snapshot`),disabled:Re,className:`px-3 py-1 text-xs rounded transition-colors ${m===`snapshot`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white disabled:opacity-50`}`,children:e(`camera.snapshot`)})]}),(0,G.jsx)(`button`,{onClick:()=>me.mutate(!pe?.chamber_light),disabled:!pe?.connected||me.isPending||!r(`printers:control`),className:`p-1.5 rounded disabled:opacity-50 ${pe?.chamber_light?`bg-yellow-500/20 hover:bg-yellow-500/30`:`hover:bg-bambu-dark-tertiary`}`,title:r(`printers:control`)?e(`camera.chamberLight`):e(`printers.permission.noControl`),children:(0,G.jsx)(vT,{on:pe?.chamber_light??!1,className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>_(!0),disabled:!he||!r(`printers:control`),className:`p-1.5 rounded disabled:opacity-50 ${he&&r(`printers:control`)?`hover:bg-bambu-dark-tertiary`:``}`,title:r(`printers:control`)?e(he?`printers.skipObjects.tooltip`:`printers.skipObjects.onlyWhilePrinting`):e(`printers.permission.noControl`),children:(0,G.jsx)(yT,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:Se,disabled:Re,className:`p-1.5 hover:bg-bambu-dark-tertiary rounded disabled:opacity-50`,title:e(m===`stream`?`camera.restartStream`:`camera.refreshSnapshot`),children:(0,G.jsx)(Hl,{className:`w-4 h-4 text-bambu-gray ${Re?`animate-spin`:``}`})}),(0,G.jsx)(`button`,{onClick:()=>b(!0),className:`p-1.5 hover:bg-bambu-dark-tertiary rounded`,title:e(`camera.diagnose.button`),children:(0,G.jsx)(Su,{className:`w-4 h-4 text-bambu-gray`})}),(0,G.jsx)(`button`,{onClick:Ce,className:`p-1.5 hover:bg-bambu-dark-tertiary rounded`,title:e(k?`camera.exitFullscreen`:`camera.fullscreen`),children:k?(0,G.jsx)(pl,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ll,{className:`w-4 h-4 text-bambu-gray`})})]})]}),(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-2 overflow-hidden`,onWheel:Ee,onMouseMove:ke,onMouseUp:Ae,onMouseLeave:Ae,onTouchStart:Ne,onTouchMove:Pe,onTouchEnd:Fe,style:{touchAction:`none`},children:(0,G.jsxs)(`div`,{className:`relative w-full h-full flex items-center justify-center`,children:[(C||D)&&!N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/50 z-10`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(Hl,{className:`w-8 h-8 text-bambu-gray animate-spin mx-auto mb-2`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(m===`stream`?`camera.connectingToCamera`:`camera.capturingSnapshot`)})]})}),N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/80 z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-4`,children:[(0,G.jsx)(Zu,{className:`w-10 h-10 text-orange-400 mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:e(`camera.connectionLost`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-3`,children:e(`camera.reconnecting`,{countdown:F,attempt:Math.min(j+1,a9),max:a9})}),(0,G.jsx)(`button`,{onClick:Se,className:`px-4 py-2 bg-bambu-green text-white text-sm rounded hover:bg-bambu-green/80 transition-colors`,children:e(`camera.reconnectNow`)})]})}),x&&!N&&(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black z-10`,children:(0,G.jsxs)(`div`,{className:`text-center p-4`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12 text-orange-400 mx-auto mb-3`}),(0,G.jsx)(`p`,{className:`text-white mb-2`,children:e(`camera.cameraUnavailable`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-4 max-w-md`,children:e(`camera.cameraUnavailableDesc`)}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[(0,G.jsx)(`button`,{onClick:Se,className:`px-4 py-2 bg-bambu-green text-white rounded hover:bg-bambu-green/80 transition-colors`,children:e(`camera.retry`)}),(0,G.jsx)(`button`,{onClick:()=>b(!0),className:`px-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary text-bambu-gray hover:text-white rounded transition-colors`,children:e(`camera.diagnose.button`)})]})]})}),(0,G.jsx)(`img`,{ref:se,src:Le,alt:e(`camera.cameraStream`),className:`max-w-full max-h-full object-contain select-none`,style:{transform:`scale(${L}) translate(${z.x/L}px, ${z.y/L}px) rotate(${fe?.camera_rotation||0}deg)`,...fe?.camera_rotation===90||fe?.camera_rotation===270?{maxWidth:`100vh`,maxHeight:`100vw`}:{},cursor:L>1?V?`grabbing`:`grab`:`default`},onError:Le?ve:void 0,onLoad:Le?ye:void 0,onMouseDown:De,draggable:!1},T),(0,G.jsxs)(`div`,{className:`absolute bottom-4 left-4 flex items-center gap-1.5 bg-black/60 rounded-lg px-2 py-1.5`,children:[(0,G.jsx)(`button`,{onClick:Te,disabled:L<=1,className:`p-1.5 hover:bg-white/10 rounded disabled:opacity-30`,title:e(`camera.zoomOut`),children:(0,G.jsx)(ad,{className:`w-4 h-4 text-white`})}),(0,G.jsxs)(`button`,{onClick:Ie,className:`px-2 py-1 text-sm text-white hover:bg-white/10 rounded min-w-[48px]`,title:e(`camera.resetZoom`),children:[Math.round(L*100),`%`]}),(0,G.jsx)(`button`,{onClick:we,disabled:L>=4,className:`p-1.5 hover:bg-white/10 rounded disabled:opacity-30`,title:e(`camera.zoomIn`),children:(0,G.jsx)(rd,{className:`w-4 h-4 text-white`})})]})]})}),(0,G.jsx)(bT,{printerId:s,isOpen:g,onClose:()=>_(!1)}),v&&(0,G.jsx)(xT,{printerId:s,printerName:fe?.name||null,onClose:()=>b(!1)})]}):(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-white`,children:e(`camera.invalidPrinterId`)})})}var T$e=5e3,E$e=4,D$e=8,O$e=1,k$e=16,A$e=2,j$e=60;function M$e(e,t,n,r){let i=parseInt(e??``,10);return Number.isFinite(i)?Math.min(r,Math.max(n,i)):t}function N$e(e,t,n,r,i,a){return e.has(t)?M$e(e.get(t),r,i,a):M$e(localStorage.getItem(n),r,i,a)}function P$e(){let{t:e}=U(),t=rr(),{authEnabled:n,loading:r,user:i}=Nd(),[a]=Ri(),o=a.get(`token`),s=o!=null&&o!==``,[c,l]=(0,y.useState)(()=>N$e(a,`maxLive`,`camWallMaxLive`,E$e,O$e,k$e)),[u,d]=(0,y.useState)(()=>N$e(a,`interval`,`camWallSnapshotSec`,D$e,A$e,j$e)),[f,p]=(0,y.useState)(()=>{let e=a.get(`status`)??localStorage.getItem(`camWallStatusMode`);return(s?[`off`,`compact`]:[`off`,`compact`,`full`]).includes(e)?e:`compact`});(0,y.useEffect)(()=>{if(s)return pd(o),()=>pd(null)},[s,o]);let m=K({queryKey:[`camwall-printers`,o],queryFn:()=>Z.getCamWallPrinters(o??void 0),enabled:s,refetchInterval:T$e}),h=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters(),enabled:!s&&!r&&(!n||i!==null),refetchInterval:T$e}),g=(0,y.useMemo)(()=>{let e=new Map;for(let t of m.data??[])e.set(t.id,{connected:t.connected,state:t.state,progress:t.progress,remaining_time:t.remaining_time,layer_num:t.layer_num,total_layers:t.total_layers,hms_errors:t.hms_errors});return e},[m.data]);if(!s&&r)return(0,G.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-bambu-dark text-bambu-gray`,children:e(`common.loading`)});if(!s&&n&&!i)return(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:t}});let _=s?m:h,v=s?m.data??[]:h.data??[];return _.isError?(0,G.jsx)(`div`,{className:`flex min-h-screen items-center justify-center bg-bambu-dark p-6 text-center`,children:(0,G.jsx)(`p`,{className:`max-w-md text-sm text-red-400`,children:e(s?`printers.camWall.page.tokenRejected`:`printers.camWall.page.loadFailed`)})}):(0,G.jsx)(`div`,{className:`min-h-screen bg-bambu-dark p-4`,children:(0,G.jsx)(OT,{printers:v,maxLive:c,snapshotIntervalSec:u,statusMode:f,statuses:s?g:void 0,showSettings:!s,onTileClick:s?void 0:e=>window.open(`/camera/${e}`,`camera-${e}`),onChangeMaxLive:e=>{l(e),localStorage.setItem(`camWallMaxLive`,String(e))},onChangeSnapshotIntervalSec:e=>{d(e),localStorage.setItem(`camWallSnapshotSec`,String(e))},onChangeStatusMode:e=>{p(e),localStorage.setItem(`camWallStatusMode`,e)}})})}function F$e(e,t,n){if(!e)return``;if(!t)return e;let r=t.match(/plate_(\d+)\.gcode/);return r&&parseInt(r[1],10)>1?`${e} — ${n(`printers.plateNumber`,`Plate {{number}}`,{number:r[1]})}`:e}function I$e(e){let t=e.get(`show`)?.split(`,`)||[`progress`,`layers`,`eta`,`filename`,`status`],n=parseInt(e.get(`fps`)||`15`,10),r=Math.min(Math.max(isNaN(n)?15:n,1),30),i=e.get(`camera`),a=i!==`false`&&i!==`0`;return{size:e.get(`size`)||`medium`,fps:r,showCamera:a,showProgress:t.includes(`progress`),showLayers:t.includes(`layers`),showEta:t.includes(`eta`),showFilename:t.includes(`filename`),showStatus:t.includes(`status`),showPrinter:t.includes(`printer`),showNozzle:t.includes(`nozzle`),showBed:t.includes(`bed`),showChamber:t.includes(`chamber`)}}function L$e(e,t){if(e.stg_cur_name)return e.stg_cur_name;switch(e.state){case`RUNNING`:return t(`streamOverlay.status.printing`);case`PAUSE`:return t(`streamOverlay.status.paused`);case`FINISH`:return t(`streamOverlay.status.finished`);case`FAILED`:return t(`streamOverlay.status.failed`);case`IDLE`:return t(`streamOverlay.status.idle`);default:return e.state||t(`streamOverlay.status.unknown`)}}function o9(e,t){let n=e[t];return typeof n==`number`?n:null}function R$e({icon:e,label:t,current:n,target:r,sizes:i}){let a=r!=null&&r>0&&Math.round(r)!==Math.round(n);return(0,G.jsxs)(`div`,{className:`flex items-center ${i.gap} text-white/70`,children:[e,(0,G.jsxs)(`span`,{className:i.text,children:[(0,G.jsx)(`span`,{className:`mr-1`,children:t}),(0,G.jsxs)(`span`,{className:`text-white`,children:[Math.round(n),`°C`]}),a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`mx-1`,children:`/`}),(0,G.jsxs)(`span`,{children:[Math.round(r),`°C`]})]})]})]})}function z$e(e){switch(e){case`small`:return{container:`p-3`,text:`text-sm`,textLarge:`text-lg`,progressHeight:`h-2`,icon:`w-3 h-3`,gap:`gap-2`,logoHeight:`h-12`};case`large`:return{container:`p-6`,text:`text-xl`,textLarge:`text-3xl`,progressHeight:`h-4`,icon:`w-6 h-6`,gap:`gap-4`,logoHeight:`h-24`};default:return{container:`p-4`,text:`text-base`,textLarge:`text-xl`,progressHeight:`h-3`,icon:`w-4 h-4`,gap:`gap-3`,logoHeight:`h-16`}}}function B$e(){let{printerId:e}=dr(),[t]=Ri(),{t:n}=U(),r=co(),i=parseInt(e||`0`,10),[a,o]=(0,y.useState)(Date.now()),s=(0,y.useMemo)(()=>I$e(t),[t]),c=z$e(s.size),l=t.get(`token`),u=l!=null&&l!==``,{data:d}=K({queryKey:[`overlayStatus`,i,l],queryFn:()=>Z.getOverlayStatus(i,l??void 0),enabled:i>0&&u,refetchInterval:2e3}),{data:f}=K({queryKey:[`printer`,i],queryFn:()=>Z.getPrinter(i),enabled:i>0&&!u}),{data:p}=K({queryKey:[`printerStatus`,i],queryFn:()=>Z.getPrinterStatus(i),enabled:i>0&&!u,refetchInterval:2e3}),{data:m}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:!u}),h=(0,y.useMemo)(()=>u?d&&{name:d.name,camera_rotation:d.camera_rotation}:f,[u,d,f]),g=u?d:p,_=(u?d?.time_format:m?.time_format)||`system`;(0,y.useEffect)(()=>{if(!i||u)return;let e=null,t=!1;return(async()=>{let n;try{n=(await Z.getWebSocketToken()).token}catch(e){let t=e instanceof sd?e.status:0;if(t===401||t===403)return}if(t)return;let a=window.location.protocol===`https:`?`wss:`:`ws:`,o=n?`?token=${encodeURIComponent(n)}`:``,s=`${a}//${window.location.host}/api/v1/ws${o}`;e=new WebSocket(s),e.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`printer_status`&&t.printer_id===i&&r.setQueryData([`printerStatus`,i],t.status)}catch{}},e.onerror=()=>{}})(),()=>{t=!0,e&&e.close()}},[i,u,r]),(0,y.useEffect)(()=>(document.title=h?`${h.name} - ${n(`streamOverlay.title`)}`:n(`streamOverlay.title`),()=>{document.title=`Bambuddy`}),[h,n]);let v=()=>{setTimeout(()=>{o(Date.now())},3e3)};if(!i)return(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-white`,children:n(`streamOverlay.invalidPrinterId`)})});if(!g)return(0,G.jsx)(`div`,{className:`min-h-screen bg-black flex items-center justify-center`,children:(0,G.jsx)(`p`,{className:`text-gray-400`,children:n(`common.loading`)})});let b=g.state===`RUNNING`||g.state===`PAUSE`,x=g.progress||0,S=g.temperatures??{},C=[];if(s.showNozzle){let e=o9(S,`nozzle`),t=o9(S,`nozzle_2`);e!=null&&C.push({key:`nozzle`,icon:(0,G.jsx)(hc,{className:c.icon}),label:n(`printers.heaterHistory.nozzle`,`Nozzle`),current:e,target:o9(S,`nozzle_target`)}),t!=null&&C.push({key:`nozzle_2`,icon:(0,G.jsx)(hc,{className:c.icon}),label:n(`printers.heaterHistory.nozzle2`,`Nozzle 2`),current:t,target:o9(S,`nozzle_2_target`)})}if(s.showBed){let e=o9(S,`bed`);e!=null&&C.push({key:`bed`,icon:(0,G.jsx)(bu,{className:c.icon}),label:n(`printers.heaterHistory.bed`,`Bed`),current:e,target:o9(S,`bed_target`)})}if(s.showChamber){let e=o9(S,`chamber`);e!=null&&C.push({key:`chamber`,icon:(0,G.jsx)(Zo,{className:c.icon}),label:n(`printers.heaterHistory.chamber`,`Chamber`),current:e,target:o9(S,`chamber_target`)})}let w=`/api/v1/printers/${i}/camera/stream?fps=${s.fps}&t=${a}`,T=u&&l?`${w}&token=${encodeURIComponent(l)}`:_d(w);return(0,G.jsxs)(`div`,{className:`min-h-screen bg-black relative overflow-hidden`,children:[s.showCamera&&(0,G.jsx)(`img`,{src:T,alt:n(`streamOverlay.cameraStream`),className:`absolute inset-0 w-full h-full object-contain`,style:h?.camera_rotation?{transform:`rotate(${h.camera_rotation}deg)`}:void 0,onError:v},a),(0,G.jsx)(`a`,{href:`https://github.com/maziggy/bambuddy`,target:`_blank`,rel:`noopener noreferrer`,className:`absolute top-4 right-4 z-10`,children:(0,G.jsx)(`img`,{src:`/img/bambuddy_logo_dark_transparent.png`,alt:`Bambuddy`,className:`${c.logoHeight} object-contain drop-shadow-lg hover:scale-105 transition-transform`})}),(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 z-10 bg-gradient-to-t from-black/80 via-black/60 to-transparent`,children:(0,G.jsxs)(`div`,{className:`${c.container}`,children:[s.showPrinter&&h&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} mb-2`,children:[(0,G.jsx)(Rl,{className:`${c.icon} text-white/70`}),(0,G.jsx)(`span`,{className:`${c.text} text-white font-medium`,children:h.name})]}),s.showFilename&&g.current_print&&(0,G.jsx)(`div`,{className:`${c.textLarge} text-white font-semibold mb-2 truncate drop-shadow-md`,children:F$e(g.current_print.replace(/\.gcode\.3mf$|\.3mf$|\.gcode$/i,``),g.gcode_file,n)}),s.showStatus&&(0,G.jsx)(`div`,{className:`${c.text} text-white/70 mb-2`,children:L$e(g,n)}),s.showProgress&&b&&(0,G.jsxs)(`div`,{className:`mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1 ${c.text}`,children:[(0,G.jsx)(`span`,{className:`text-white/70`,children:n(`streamOverlay.progress`)}),(0,G.jsxs)(`span`,{className:`text-white font-bold`,children:[Math.round(x),`%`]})]}),(0,G.jsx)(`div`,{className:`w-full bg-white/20 rounded-full ${c.progressHeight}`,children:(0,G.jsx)(`div`,{className:`bg-bambu-green ${c.progressHeight} rounded-full transition-all duration-500`,style:{width:`${x}%`}})})]}),b&&(s.showLayers||s.showEta)&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} flex-wrap`,children:[s.showLayers&&g.layer_num!=null&&g.total_layers!=null&&g.total_layers>0&&(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(Jc,{className:c.icon}),(0,G.jsxs)(`span`,{className:c.text,children:[(0,G.jsx)(`span`,{className:`text-white`,children:g.layer_num}),(0,G.jsx)(`span`,{className:`mx-1`,children:`/`}),(0,G.jsx)(`span`,{children:g.total_layers})]})]}),s.showEta&&g.remaining_time!=null&&g.remaining_time>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(Nu,{className:c.icon}),(0,G.jsx)(`span`,{className:`${c.text} text-white`,children:lp(g.remaining_time*60)})]}),(0,G.jsxs)(`div`,{className:`flex items-center ${c.gap} text-white/70`,children:[(0,G.jsx)(js,{className:c.icon}),(0,G.jsxs)(`span`,{className:`${c.text} text-white`,children:[n(`streamOverlay.eta`),` `,cp(g.remaining_time,_,n)]})]})]})]}),!b&&(0,G.jsx)(`div`,{className:`${c.text} text-white/70 py-2`,children:g.connected?n(`streamOverlay.printerIdle`):n(`streamOverlay.printerOffline`)}),C.length>0&&(0,G.jsx)(`div`,{className:`flex items-center ${c.gap} flex-wrap mt-2`,children:C.map(e=>(0,G.jsx)(R$e,{icon:e.icon,label:e.label,current:e.current,target:e.target,sizes:c},e.key))})]})})]})}function V$e(){let{t:e}=U(),{id:t}=dr(),{mode:n}=Id(),{data:r,isLoading:i,error:a}=K({queryKey:[`external-link`,t],queryFn:()=>Z.getExternalLink(Number(t)),enabled:!!t});return i?(0,G.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):a||!r?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-4 text-bambu-gray`,children:[(0,G.jsx)(Lu,{className:`w-12 h-12`}),(0,G.jsx)(`p`,{children:e(`common.linkNotFound`)})]}):(0,G.jsx)(`iframe`,{src:r.url,className:`h-full w-full border-0`,style:{colorScheme:n},title:r.name,sandbox:`allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox`})}function H$e(){let{id:e}=dr(),t=or(),n=co(),{t:r}=U(),{showToast:i}=qd(),a=!!e,[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)([]),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!1),{data:g,isLoading:_}=K({queryKey:[`group`,e],queryFn:()=>Z.getGroup(Number(e)),enabled:a}),{data:v,isLoading:b}=K({queryKey:[`permissions`],queryFn:()=>Z.getPermissions()});a&&g&&!m&&(s(g.name),l(g.description||``),d(g.permissions),h(!0));let x=q({mutationFn:e=>Z.createGroup(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`groups`]}),n.invalidateQueries({queryKey:[`group`]}),i(r(`groups.toast.created`)),t(`/settings?tab=users`)},onError:e=>{i(e.message,`error`)}}),S=q({mutationFn:t=>Z.updateGroup(Number(e),t),onSuccess:a=>{n.invalidateQueries({queryKey:[`groups`]}),a&&n.setQueryData([`group`,e],a),i(r(`groups.toast.updated`)),t(`/settings?tab=users`)},onError:e=>{i(e.message,`error`)}}),C=x.isPending||S.isPending,w=()=>{if(!o.trim()){i(r(`groups.toast.enterGroupName`),`error`);return}a?S.mutate({name:o===g?.name?void 0:o,description:c,permissions:u}):x.mutate({name:o,description:c||void 0,permissions:u})},T=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},E=(e,t)=>{let n=e.permissions.map(e=>e.value);d(e=>{let r=e.filter(e=>!n.includes(e));return t?[...r,...n]:r})},D=e=>e.permissions.every(e=>u.includes(e.value)),O=e=>{let t=e.permissions.filter(e=>u.includes(e.value)).length;return t>0&&t{v&&d(v.all_permissions)},A=()=>{d([])},j=f.toLowerCase(),M=(0,y.useMemo)(()=>v?j?v.categories.map(e=>({...e,permissions:e.permissions.filter(e=>e.label.toLowerCase().includes(j))})).filter(e=>e.permissions.length>0):v.categories:[],[v,j]),N=v?.all_permissions.length??0;return _||b?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):(0,G.jsxs)(`div`,{className:`space-y-6 max-w-5xl mx-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>t(`/settings?tab=users`),className:`p-2 rounded-lg hover:bg-bambu-dark-tertiary text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(Lo,{className:`w-5 h-5`})}),(0,G.jsx)(`h1`,{className:`text-xl font-bold text-white`,children:r(a?`groups.editor.title`:`groups.editor.createTitle`)})]}),a&&g?.is_system&&(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 rounded-lg bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/20 text-yellow-700 dark:text-yellow-400 text-sm`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 shrink-0`}),r(`groups.form.systemGroupWarning`)]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:r(`groups.form.groupName`)}),(0,G.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),disabled:a&&g?.is_system,className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors disabled:opacity-50`,placeholder:r(`groups.form.groupNamePlaceholder`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-white mb-2`,children:r(`groups.form.description`)}),(0,G.jsx)(`input`,{type:`text`,value:c,onChange:e=>l(e.target.value),className:`w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`groups.form.descriptionPlaceholder`)})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[r(`groups.editor.permissionsSelected`,{count:u.length}),` / `,N]}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:k,children:r(`groups.editor.selectAll`)}),(0,G.jsx)(Q,{size:`sm`,variant:`ghost`,onClick:A,children:r(`groups.editor.clearAll`)})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:r(`groups.editor.search`),className:`pl-9 pr-4 py-2 text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors w-64`})]})]}),M.length===0?(0,G.jsx)(`div`,{className:`text-center py-12 text-bambu-gray`,children:r(`groups.editor.noResults`)}):(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:M.map(e=>{let t=v.categories.find(t=>t.name===e.name),n=t.permissions.filter(e=>u.includes(e.value)).length,i=t.permissions.length,a=D(t),o=O(t);return(0,G.jsxs)(zd,{children:[(0,G.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center justify-between px-4 py-3 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary rounded-t-xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>E(t,!a),className:`w-5 h-5 rounded border flex items-center justify-center transition-colors shrink-0 ${a?`bg-bambu-green border-bambu-green`:o?`bg-bambu-green/50 border-bambu-green`:`border-bambu-gray hover:border-white`}`,children:[a&&(0,G.jsx)(fs,{className:`w-3 h-3 text-white`}),o&&!a&&(0,G.jsx)(ml,{className:`w-3 h-3 text-white`})]}),(0,G.jsx)(su,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-white font-medium text-sm`,children:e.name})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray tabular-nums`,children:[n,`/`,i]})]}),(0,G.jsx)(`div`,{className:`p-3 space-y-1`,children:e.permissions.map(e=>(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-secondary cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:u.includes(e.value),onChange:()=>T(e.value),className:`w-4 h-4 shrink-0 rounded border-bambu-gray text-bambu-green focus:ring-bambu-green focus:ring-offset-0 bg-bambu-dark-secondary`}),(0,G.jsxs)(`span`,{className:`flex flex-col`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.label}),e.value===`websocket:connect`&&(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/60`,children:r(`groups.editor.websocketHint`)})]})]},e.value))})]},e.name)})}),(0,G.jsx)(`div`,{className:`h-16`}),(0,G.jsxs)(`div`,{className:`fixed bottom-0 left-0 right-0 z-20 px-6 py-3 bg-bambu-dark-secondary border-t border-bambu-dark-tertiary flex items-center justify-center gap-3`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:()=>t(`/settings?tab=users`),children:r(`common.cancel`)}),(0,G.jsx)(Q,{onClick:w,disabled:C||!o.trim(),children:C?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),r(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),r(`common.save`)]})})]})]})}var U$e=1.65,W$e=[`#1DB954`,`#3B82F6`,`#F59E0B`,`#EF4444`,`#8B5CF6`];function s9(e,t,n,r){return`${e}||${t??``}||${n??``}||${r??``}`}function c9(e,t){let n=new Date(e);return n.setDate(n.getDate()+Math.round(t)),n}function l9(e){return e.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function u9(e){return e.toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function G$e(e){if(e.length<2)return null;let t=new Map;for(let n of e){let e=n.created_at.slice(0,10);t.set(e,(t.get(e)??0)+n.weight_used)}if(t.size<2)return null;let n=[...t.entries()].map(([e,t])=>({ms:new Date(e).getTime(),totalG:t})).sort((e,t)=>e.ms-t.ms),r=Date.now(),i=Math.LN2/30,a=[];for(let e=1;ee+t.weight,0);if(o===0)return null;let s=a.reduce((e,t)=>e+t.rate*t.weight,0)/o,c=a.reduce((e,t)=>e+t.weight*(t.rate-s)**2,0)/o;return{rate:s,stdDev:Math.sqrt(c)}}function K$e(e){let t=e.reduce((e,t)=>e+Math.max(0,t.weight_used-(t.weight_used_baseline??0)),0);if(t===0)return null;let n=Date.now(),r=(n-e.reduce((e,t)=>{let n=new Date(t.created_at).getTime();return nZ.getAllUsageHistory(5e3),staleTime:6e4,enabled:o}),{data:O=[]}=K({queryKey:[`shopping-list`],queryFn:Z.getShoppingList,staleTime:3e4,enabled:o}),k=T?.forecast_global_lead_time_days??0,A=(0,y.useMemo)(()=>{let e=new Map;for(let t of E)e.set(s9(t.material,t.subtype,t.brand,t.color_name),t);return e},[E]),j=(0,y.useMemo)(()=>{let e=new Map;for(let t of D){let n=e.get(t.spool_id)??[];n.push(t),e.set(t.spool_id,n)}return e},[D]),M=(0,y.useMemo)(()=>{let t=new Map;for(let n of e){if(n.archived_at)continue;let e=s9(n.material,n.subtype,n.brand,n.color_name),r=t.get(e)??{key:e,material:n.material,subtype:n.subtype,brand:n.brand,colorName:n.color_name,spools:[]};r.spools.push(n),t.set(e,r)}return[...t.values()]},[e]),N=(0,y.useMemo)(()=>{let e=new Date;return e.setHours(0,0,0,0),M.map(t=>{let n=A.get(t.key)??(t.colorName===null?null:A.get(s9(t.material,t.subtype,t.brand,null))??null),r=n?.lead_time_days??0,i=Math.max(k,r),a=n?.safety_margin_value??14,o=n?.safety_margin_unit??`days`,s=t.spools.reduce((e,t)=>e+Math.max(0,t.label_weight-t.weight_used),0),c=t.spools.reduce((e,t)=>e+t.label_weight,0),l=t.spools.reduce((e,t)=>e+Math.max(0,t.weight_used-(t.weight_used_baseline??0)),0),u=[];for(let e of t.spools)(e.weight_used_baseline??0)===0&&u.push(...j.get(e.id)??[]);let d=null,f=null,p=`none`,m=G$e(u);if(m!==null)d=m.rate,f=m.stdDev,p=`history`;else{let e=K$e(t.spools);e!==null&&(d=e,p=`delta`)}let h=U$e*(f??(d===null?0:d*.2))*Math.sqrt(i)+(o===`g`?a:d===null?a*5:d*a),g=d===null?0:d*i+h,_=d&&d>0?Math.floor(s/d):null,v=_===null?null:c9(e,_),y=d&&d>0?Math.floor((s-g)/d):null,b=y===null?null:c9(e,Math.max(0,y)),x=_!==null&&i>0&&_<=i,S=!x&&y!==null&&y<=0;return{group:t,settings:n,totalRemainingG:s,totalLabelG:c,totalSpools:t.spools.length,totalUsedG:l,dailyRateG:d,dailyRateStdDev:f,rateTier:p,effectiveLeadTimeDays:i,safetyStockG:h,reorderPointG:g,daysRemaining:_,daysUntilROP:y,projectedEmptyDate:v,reorderTriggerDate:b,reorderAlert:S,stockBreakAlert:x}})},[M,A,j,k]),P=(0,y.useMemo)(()=>[...new Set(M.map(e=>e.material))].sort(),[M]),F=(0,y.useMemo)(()=>[...new Set(M.map(e=>e.brand).filter(Boolean))].sort(),[M]),I=(0,y.useMemo)(()=>{let e=[...N];return m&&(e=e.filter(e=>e.group.material===m)),g&&(e=e.filter(e=>e.group.brand===g)),e.sort((e,t)=>{let n=0,r=0;switch(u){case`material`:n=[e.group.material,e.group.subtype??``,e.group.brand??``].join(` `).toLowerCase(),r=[t.group.material,t.group.subtype??``,t.group.brand??``].join(` `).toLowerCase();break;case`used`:n=e.totalUsedG,r=t.totalUsedG;break;case`days_left`:n=e.daysRemaining??999999,r=t.daysRemaining??999999;break;case`stock`:n=e.totalRemainingG,r=t.totalRemainingG;break}let i=nr);return f===`asc`?i:-i}),e},[N,u,f,m,g]),L=(0,y.useMemo)(()=>N.filter(e=>!e.settings?.alerts_snoozed&&(e.stockBreakAlert||e.reorderAlert)),[N]),R=(0,y.useMemo)(()=>[...N].filter(e=>e.dailyRateG!==null).sort((e,t)=>t.totalUsedG-e.totalUsedG).slice(0,5),[N]);if(!o)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray gap-3`,children:[(0,G.jsx)(nl,{className:`w-8 h-8 opacity-40`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`forecast.noReadAccess`)})]});function z(e){u===e?p(e=>e===`asc`?`desc`:`asc`):(d(e),p(e===`days_left`?`asc`:`desc`))}let B=O.length>0?O.length:null;return(0,G.jsxs)(`div`,{className:`space-y-5`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[L.length>0&&(0,G.jsxs)(`button`,{onClick:()=>l(e=>!e),className:`flex items-center gap-2 px-3 py-1.5 rounded-lg border text-sm font-medium transition-colors ${L.some(e=>e.stockBreakAlert)?`bg-red-100 dark:bg-red-500/15 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300 hover:bg-red-200 dark:hover:bg-red-500/25`:`bg-yellow-100 dark:bg-yellow-500/15 border-yellow-300 dark:border-yellow-500/30 text-yellow-700 dark:text-yellow-300 hover:bg-yellow-200 dark:hover:bg-yellow-500/25`}`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4`}),r(`forecast.alertCount`,{count:L.length}),c?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})]}),s&&(0,G.jsx)(Q$e,{value:k,onSave:e=>{Z.updateSettings({forecast_global_lead_time_days:e}).then(()=>{t.invalidateQueries({queryKey:[`settings`]}),n(r(`forecast.globalLeadTimeSaved`),`success`)})}}),(0,G.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${m?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:r(`inventory.material`)}),P.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`select`,{value:g,onChange:e=>_(e.target.value),className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${g?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:r(`inventory.brand`)}),F.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`button`,{onClick:()=>S(e=>!e),className:`relative flex items-center gap-2 px-3 py-1.5 rounded-lg border border-bambu-dark-tertiary text-bambu-gray hover:bg-bambu-dark-tertiary text-sm transition-colors ml-auto`,children:[(0,G.jsx)(cu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:r(`forecast.shoppingList`)}),B&&(0,G.jsx)(`span`,{className:`absolute -top-1.5 -right-1.5 w-4 h-4 rounded-full bg-bambu-green text-white text-[10px] font-bold flex items-center justify-center`,children:B})]})]}),c&&L.length>0&&(0,G.jsx)(`div`,{className:`space-y-2`,children:L.map(e=>(0,G.jsx)(Y$e,{forecast:e,onCart:()=>b(e)},e.group.key))}),x&&(0,G.jsx)(r1e,{items:O,forecasts:N,globalLeadTime:k,canWrite:s,onClose:()=>S(!1),onRemove:e=>{Z.removeFromShoppingList(e).then(()=>t.invalidateQueries({queryKey:[`shopping-list`]})).catch(()=>n(r(`forecast.failedSaveSettings`),`error`))},onClear:()=>{Z.clearShoppingList().then(()=>t.invalidateQueries({queryKey:[`shopping-list`]})).catch(()=>n(r(`forecast.failedSaveSettings`),`error`))}}),R.length>0&&(0,G.jsx)(Z$e,{forecasts:R,days:C,onDaysChange:w}),N.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-bambu-gray`,children:[(0,G.jsx)(Fu,{className:`w-10 h-10 mb-3 opacity-40`}),(0,G.jsx)(`p`,{className:`text-sm`,children:r(`forecast.noSpools`)})]}):(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`w-8 px-4 py-3`}),(0,G.jsx)(d9,{col:`material`,active:u,dir:f,onSort:z,children:r(`forecast.sku`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`locations.spools`)}),(0,G.jsx)(d9,{col:`stock`,active:u,dir:f,onSort:z,children:r(`forecast.stock`)}),(0,G.jsx)(d9,{col:`used`,active:u,dir:f,onSort:z,children:r(`forecast.dailyRate`)}),(0,G.jsx)(d9,{col:`days_left`,active:u,dir:f,onSort:z,children:r(`forecast.daysLeft`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`forecast.emptyBy`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:r(`forecast.reorderBy`)}),(0,G.jsx)(`th`,{className:`w-24 px-4 py-3`})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:I.map(e=>(0,G.jsx)($$e,{forecast:e,globalLeadTime:k,canWrite:s,onSaved:()=>t.invalidateQueries({queryKey:[`sku-settings`]}),onCart:()=>b(e),showToast:n},e.group.key))})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 px-4 py-3 text-xs text-bambu-gray border-t border-bambu-dark-tertiary bg-bambu-dark-tertiary/20`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-bambu-green inline-block`}),r(`forecast.trendLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-blue-400 inline-block`}),r(`forecast.estimatedLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-bambu-gray/40 inline-block`}),r(`forecast.noDataLegend`)]})]})]}),v&&(0,G.jsx)(a1e,{forecast:v,onClose:()=>b(null),onAdd:e=>{Z.addToShoppingList(e).then(()=>{t.invalidateQueries({queryKey:[`shopping-list`]}),n(r(`forecast.addedToCart`),`success`),b(null),S(!0)}).catch(()=>n(r(`forecast.failedAddItem`),`error`))}})]})}function d9({col:e,active:t,dir:n,onSort:r,children:i}){return(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide cursor-pointer select-none hover:text-white transition-colors`,onClick:()=>r(e),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center`,children:[i,t===e?n===`asc`?(0,G.jsx)(Ho,{className:`w-3 h-3 ml-1 text-bambu-green`}):(0,G.jsx)(Io,{className:`w-3 h-3 ml-1 text-bambu-green`}):(0,G.jsx)(Bo,{className:`w-3 h-3 ml-1 opacity-40`})]})})}function Y$e({forecast:e,onCart:t}){let{t:n}=U(),r=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),i=e.stockBreakAlert;return(0,G.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 rounded-lg border text-sm ${i?`bg-red-50 dark:bg-red-500/10 border-red-300 dark:border-red-500/30 text-red-700 dark:text-red-300`:`bg-yellow-50 dark:bg-yellow-500/10 border-yellow-300 dark:border-yellow-500/30 text-yellow-700 dark:text-yellow-300`}`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:r}),i?(0,G.jsxs)(`span`,{className:`ml-2 text-xs opacity-80`,children:[n(`forecast.stockBreakRisk`),` — `,n(`forecast.stockBreakDetail`,{days:e.daysRemaining,lt:e.effectiveLeadTimeDays})]}):(0,G.jsxs)(`span`,{className:`ml-2 text-xs opacity-80`,children:[n(`forecast.reorderNow`),` — `,n(`forecast.reorderTriggerPassed`,{date:e.reorderTriggerDate?l9(e.reorderTriggerDate):`—`})]})]}),(0,G.jsxs)(`button`,{onClick:t,className:`flex items-center gap-1.5 px-2.5 py-1 rounded border border-current text-xs opacity-70 hover:opacity-100 transition-opacity`,children:[(0,G.jsx)(cu,{className:`w-3 h-3`}),` `,n(`forecast.order`)]})]})}var X$e=[{label:`1W`,value:7},{label:`1M`,value:30},{label:`6M`,value:180}];function Z$e({forecasts:e,days:t,onDaysChange:n}){let{t:r}=U(),i=Array.from({length:t+1},(e,t)=>t),a=e.map((e,n)=>({key:e.group.key,label:[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),color:W$e[n%W$e.length],rop:e.reorderPointG,points:q$e(e,t)})),o=i.map(e=>{let t={day:e,label:u9(c9(new Date,e))};for(let n of a){let r=n.points.find(t=>t.day===e);t[n.key]=r?.stock??0}return t}),s=(()=>{for(let e=t;e>=0;e--)if(a.some(t=>o[e]?.[t.key]>0))return e;return t})(),c=o.slice(0,s+1),l=a.filter(e=>e.rop>0);return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white`,children:r(`forecast.chartTitle`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray ml-1 hidden sm:inline`,children:r(`forecast.dashedLinesROP`)}),(0,G.jsx)(`div`,{className:`ml-auto flex items-center bg-bambu-dark-tertiary rounded-lg p-0.5`,children:X$e.map(e=>(0,G.jsx)(`button`,{onClick:()=>n(e.value),className:`px-2.5 py-1 text-xs font-medium rounded-md transition-colors ${t===e.value?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:e.label},e.value))})]}),(0,G.jsx)(rA,{width:`100%`,height:220,children:(0,G.jsxs)(uH,{data:c,margin:{top:4,right:8,bottom:0,left:0},children:[(0,G.jsx)(`defs`,{children:a.map(e=>(0,G.jsxs)(`linearGradient`,{id:`grad-${e.key}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,G.jsx)(`stop`,{offset:`5%`,stopColor:e.color,stopOpacity:.25}),(0,G.jsx)(`stop`,{offset:`95%`,stopColor:e.color,stopOpacity:.02})]},e.key))}),(0,G.jsx)(WB,{strokeDasharray:`3 3`,stroke:`#374151`,strokeOpacity:.5}),(0,G.jsx)(bV,{dataKey:`label`,tick:{fill:`#6B7280`,fontSize:10},interval:Math.max(0,Math.ceil(s/8)-1),axisLine:!1,tickLine:!1}),(0,G.jsx)(TV,{tick:{fill:`#6B7280`,fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:e=>e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${e}g`,width:48}),(0,G.jsx)(sz,{content:({label:e,payload:t})=>t?.length?(0,G.jsxs)(`div`,{style:{background:`#1a1a2e`,border:`1px solid #374151`,borderRadius:8,fontSize:12,padding:`8px 12px`},children:[(0,G.jsx)(`div`,{style:{color:`#9CA3AF`,marginBottom:6},children:e}),t.map(e=>{let t=a.find(t=>t.key===String(e.dataKey));return typeof e.value==`number`?(0,G.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,color:`#E5E7EB`,marginBottom:2},children:[(0,G.jsx)(`span`,{style:{color:t?.color??`#9CA3AF`,fontSize:10},children:`●`}),(0,G.jsx)(`span`,{children:t?.label??String(e.dataKey)}),(0,G.jsxs)(`span`,{style:{color:`#9CA3AF`,marginLeft:4},children:[e.value,`g`]})]},String(e.dataKey)):null})]}):null}),(0,G.jsx)(cj,{formatter:e=>(0,G.jsx)(`span`,{style:{color:`#9CA3AF`,fontSize:11},children:a.find(t=>t.key===e)?.label??e})}),a.map(e=>(0,G.jsx)(rV,{type:`monotone`,dataKey:e.key,stroke:e.color,strokeWidth:2,fill:`url(#grad-${e.key})`,dot:!1,activeDot:{r:3}},e.key)),l.map(e=>(0,G.jsx)(NB,{y:e.rop,stroke:e.color,strokeDasharray:`4 3`,strokeOpacity:.6},`rop-${e.key}`))]})})]})}function Q$e({value:e,onSave:t}){let{t:n}=U(),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(String(e));function s(){let e=parseInt(a,10);isNaN(e)||e<0||(t(e),i(!1))}return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 bg-bambu-dark-tertiary/40 rounded-lg border border-bambu-dark-tertiary text-xs text-bambu-gray`,children:[(0,G.jsx)(Wc,{className:`w-3.5 h-3.5 flex-shrink-0`,"aria-label":n(`forecast.globalLeadTimeHint`)}),(0,G.jsxs)(`span`,{className:`hidden sm:inline`,children:[n(`forecast.globalLeadTime`),`:`]}),r?(0,G.jsxs)(`form`,{className:`flex items-center gap-1.5`,onSubmit:e=>{e.preventDefault(),s()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:365,value:a,onChange:e=>o(e.target.value),className:`w-14 px-1.5 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:`d`}),(0,G.jsx)(`button`,{type:`submit`,className:`px-2 py-0.5 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80`,children:n(`forecast.save`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>i(!1),className:`text-xs text-bambu-gray hover:text-white`,children:`✕`})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`span`,{className:`font-semibold text-white`,children:[e,`d`]}),(0,G.jsx)(`button`,{onClick:()=>{o(String(e)),i(!0)},className:`p-0.5 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function $$e({forecast:e,globalLeadTime:t,canWrite:n,onSaved:r,onCart:i,showToast:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(String(e.settings?.lead_time_days??0)),[h,g]=(0,y.useState)(String(e.settings?.safety_margin_value??14)),[_,v]=(0,y.useState)(e.settings?.safety_margin_unit??`days`);(0,y.useEffect)(()=>{l||m(String(e.settings?.lead_time_days??0))},[e.settings?.lead_time_days,l]),(0,y.useEffect)(()=>{d||(g(String(e.settings?.safety_margin_value??14)),v(e.settings?.safety_margin_unit??`days`))},[e.settings?.safety_margin_value,e.settings?.safety_margin_unit,d]);let b=q({mutationFn:Z.upsertSkuSettings,onSuccess:()=>{r(),a(o(`forecast.settingsSaved`),`success`)},onError:()=>a(o(`forecast.failedSaveSettings`),`error`)}),x=e.settings?.alerts_snoozed??!1,S=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),C=e.group.spools[0]?.rgba?Mf(e.group.spools[0].rgba):{backgroundColor:`#4B5563`},w=e.totalLabelG>0?Math.round(e.totalRemainingG/e.totalLabelG*100):0,T=x||e.daysRemaining===null?`text-bambu-gray`:e.stockBreakAlert?`text-red-700 dark:text-red-400`:e.reorderAlert||e.daysRemaining<30?`text-yellow-700 dark:text-yellow-400`:`text-green-700 dark:text-green-400`;function E(t,n,r,i=x){b.mutate({material:e.group.material,subtype:e.group.subtype,brand:e.group.brand,color_name:e.group.colorName,lead_time_days:t,safety_margin_value:n,safety_margin_unit:r,alerts_snoozed:i})}function D(t){t.stopPropagation(),E(e.settings?.lead_time_days??0,e.settings?.safety_margin_value??14,e.settings?.safety_margin_unit??`days`,!x)}let O=e.rateTier===`history`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-bambu-green/15 text-bambu-green`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-green`}),o(`forecast.trend`)]}):e.rateTier===`delta`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-blue-100 dark:bg-blue-400/15 text-blue-700 dark:text-blue-400`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-blue-400`}),o(`forecast.estimated`)]}):(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs px-1.5 py-0.5 rounded bg-bambu-dark-tertiary text-bambu-gray/60`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-bambu-gray/40`}),o(`forecast.noData`)]});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 cursor-pointer hover:bg-bambu-dark-tertiary/30 transition-colors ${x?``:e.stockBreakAlert?`bg-red-500/5`:e.reorderAlert?`bg-yellow-500/5`:``} ${x?`opacity-50`:``}`,onClick:()=>c(e=>!e),children:[(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`block w-5 h-5 rounded-full border border-black/20`,style:C})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-white`,children:S})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.totalSpools})}),(0,G.jsx)(`td`,{className:`px-4 py-3 min-w-[140px]`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${w>50?`bg-bambu-green`:w>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(w,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(e.totalRemainingG),`g`]})]})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.dailyRateG===null?`—`:`${e.dailyRateG.toFixed(1)}g/d`}),O]})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm font-semibold ${T}`,children:e.daysRemaining===null?(0,G.jsx)(`span`,{className:`text-bambu-gray font-normal`,children:`—`}):`${e.daysRemaining}d`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.projectedEmptyDate?l9(e.projectedEmptyDate):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,children:(0,G.jsx)(`span`,{className:`text-sm ${!x&&e.reorderAlert?`text-yellow-700 dark:text-yellow-400`:`text-bambu-gray`}`,children:e.reorderTriggerDate?l9(e.reorderTriggerDate):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-3`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[n&&(0,G.jsx)(`button`,{onClick:i,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:o(`forecast.addToCart`),children:(0,G.jsx)(cu,{className:`w-4 h-4`})}),!x&&(e.stockBreakAlert?(0,G.jsx)(Lu,{className:`w-4 h-4 text-red-600 dark:text-red-400`,"aria-label":o(`forecast.stockBreakRisk`)}):e.reorderAlert?(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`,"aria-label":o(`forecast.reorderNow`)}):e.daysRemaining===null?null:(0,G.jsx)(fs,{className:`w-4 h-4 text-bambu-green/50`})),n&&(0,G.jsx)(`button`,{onClick:D,className:`p-1 rounded transition-colors ${x?`text-amber-600/80 dark:text-amber-400/80 hover:text-amber-700 dark:hover:text-amber-300`:`text-slate-400 hover:text-white`}`,title:o(x?`forecast.alertsEnabled`:`forecast.alertsSnoozed`),children:(0,G.jsx)(Ko,{className:`w-3.5 h-3.5`})}),(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),c(e=>!e)},className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,children:s?(0,G.jsx)(gs,{className:`w-4 h-4`}):(0,G.jsx)(ps,{className:`w-4 h-4`})})]})})]}),s&&(0,G.jsx)(`tr`,{className:`bg-bambu-dark-tertiary/10`,children:(0,G.jsx)(`td`,{colSpan:9,className:`px-6 py-4`,children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`grid gap-2 ${n?`grid-cols-2 sm:grid-cols-4`:`grid-cols-2`}`,children:[(0,G.jsx)(e1e,{label:o(`forecast.effectiveLeadTime`),value:`${e.effectiveLeadTimeDays}d`,hint:o(`forecast.effectiveLeadTimeHint`,{global:t,sku:e.settings?.lead_time_days??0})}),(0,G.jsx)(e1e,{label:o(`forecast.reorderPoint`),value:`${Math.round(e.reorderPointG)}g`,hint:o(`forecast.reorderPointHint`)}),n&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(t1e,{label:o(`forecast.skuLeadTimeOverride`),hint:o(`forecast.skuLeadTimeHint`),unit:o(`forecast.leadTime`),editing:l,value:e.settings?.lead_time_days??0,inputValue:p,onInputChange:m,onEdit:()=>{m(String(e.settings?.lead_time_days??0)),u(!0)},onSave:()=>{let t=parseInt(p,10);!isNaN(t)&&t>=0&&(E(t,e.settings?.safety_margin_value??14,_),u(!1))},onCancel:()=>u(!1),isPending:b.isPending,saveLabel:o(`forecast.save`),cancelLabel:o(`forecast.cancel`)}),(0,G.jsx)(n1e,{value:e.settings?.safety_margin_value??14,unit:_,editing:d,inputValue:h,dailyRateG:e.dailyRateG,onInputChange:g,onUnitChange:e=>v(e),onEdit:()=>{g(String(e.settings?.safety_margin_value??14)),v(e.settings?.safety_margin_unit??`days`),f(!0)},onSave:()=>{let t=parseInt(h,10);!isNaN(t)&&t>=0&&(E(e.settings?.lead_time_days??0,t,_),f(!1))},onCancel:()=>f(!1),isPending:b.isPending,saveLabel:o(`forecast.save`),cancelLabel:o(`forecast.cancel`),safetyMarginLabel:o(`forecast.safetyMarginLabel`)})]})]}),e.group.spools.length>1&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary pt-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-2`,children:o(`forecast.individualSpools`)}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:`#`}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.remaining`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.used`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`forecast.labelWeight`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:e.group.spools.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used),n=e.label_weight>0?t/e.label_weight*100:0;return(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-tertiary/30 transition-colors`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray/70`,children:[`#`,e.id]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-24 h-1.5 bg-bambu-dark-tertiary rounded-full overflow-hidden flex-shrink-0`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${n>50?`bg-bambu-green`:n>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(n,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[Math.round(t),`g`]})]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[Math.round(Math.max(0,e.weight_used-(e.weight_used_baseline??0))),`g`]})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[e.label_weight,`g`]})})]},e.id)})})]})})]})]})})})]})}function e1e({label:e,value:t,hint:n}){return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3`,title:n,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium text-white mb-1`,children:e}),(0,G.jsx)(`div`,{className:`text-lg font-semibold text-white`,children:t})]})}function t1e({label:e,hint:t,unit:n,editing:r,value:i,inputValue:a,onInputChange:o,onEdit:s,onSave:c,onCancel:l,isPending:u,saveLabel:d=`Save`,cancelLabel:f=`Cancel`}){return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:e}),(0,G.jsx)(`span`,{title:t,children:(0,G.jsx)(Wc,{className:`w-3 h-3 text-bambu-gray/50`})})]}),r?(0,G.jsxs)(`form`,{className:`flex items-center gap-2`,onSubmit:e=>{e.preventDefault(),c()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:365,value:a,onChange:e=>o(e.target.value),className:`w-20 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0,disabled:u}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n}),(0,G.jsx)(`button`,{type:`submit`,disabled:u,className:`px-2 py-1 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:d}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:u,className:`px-2 py-1 text-xs text-bambu-gray hover:text-white`,children:f})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-lg font-semibold text-white`,children:i}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:n}),(0,G.jsx)(`button`,{onClick:s,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function n1e({value:e,unit:t,editing:n,inputValue:r,dailyRateG:i,onInputChange:a,onUnitChange:o,onEdit:s,onSave:c,onCancel:l,isPending:u,saveLabel:d=`Save`,cancelLabel:f=`Cancel`,safetyMarginLabel:p=`Safety Margin`}){let{t:m}=U(),h=t===`g`?e:i===null?null:Math.round(i*e),g=t===`days`?m(`forecast.safetyMarginHintDays`,{approx:h===null?``:m(`forecast.safetyMarginHintDaysApprox`,{g:h})}):m(`forecast.safetyMarginHintG`,{approx:i===null?``:m(`forecast.safetyMarginHintGApprox`,{days:Math.round(e/i)})});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-tertiary/40 rounded-lg p-3 space-y-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium text-white`,children:p}),(0,G.jsx)(`span`,{title:g,children:(0,G.jsx)(Wc,{className:`w-3 h-3 text-bambu-gray/50`})})]}),n?(0,G.jsxs)(`form`,{className:`flex items-center gap-2 flex-wrap`,onSubmit:e=>{e.preventDefault(),c()},children:[(0,G.jsx)(`input`,{type:`number`,min:0,max:t===`g`?1e4:365,value:r,onChange:e=>a(e.target.value),className:`w-20 px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,autoFocus:!0,disabled:u}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded overflow-hidden text-xs`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`days`),className:`px-2 py-1 transition-colors ${t===`days`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`days`}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`g`),className:`px-2 py-1 transition-colors ${t===`g`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`g`})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:u,className:`px-2 py-1 bg-bambu-green text-white text-xs rounded hover:bg-bambu-green/80 disabled:opacity-50`,children:d}),(0,G.jsx)(`button`,{type:`button`,onClick:l,disabled:u,className:`px-2 py-1 text-xs text-bambu-gray hover:text-white`,children:f})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-lg font-semibold text-white`,children:e}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:t}),h!==null&&t===`days`&&(0,G.jsxs)(`span`,{className:`text-lg font-semibold text-white`,children:[`≈ `,h,`g`]}),t===`g`&&i!==null&&(0,G.jsxs)(`span`,{className:`text-lg font-semibold text-white`,children:[`≈ `,Math.round(e/i),`d`]}),(0,G.jsx)(`button`,{onClick:s,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(kl,{className:`w-3 h-3`})})]})]})}function r1e({items:e,forecasts:t,globalLeadTime:n,canWrite:r,onClose:i,onRemove:a,onClear:o}){let{t:s}=U(),c=co(),[l,u]=(0,y.useState)(`list`),d=q({mutationFn:async({id:e,status:t,item:n,avgSpoolG:r})=>{if(await Z.updateShoppingListStatus(e,t),t===`received`&&n){let t=r??1e3,i={material:n.material,subtype:n.subtype,brand:n.brand,label_weight:t,core_weight:0,core_weight_catalog_id:null,color_name:n.color_name,rgba:null,extra_colors:null,effect_type:null,nozzle_temp_min:null,nozzle_temp_max:null,note:n.note??null,tag_uid:null,tray_uuid:null,data_origin:`manual`,tag_type:null,cost_per_kg:null,last_scale_weight:null,last_weighed_at:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,added_full:null,last_used:null,encode_time:null,category:`Stock`,low_stock_threshold_pct:null};await Z.bulkCreateSpools(i,n.quantity_spools),await Z.removeFromShoppingList(e)}},onSuccess:()=>{c.invalidateQueries({queryKey:[`shopping-list`]}),c.invalidateQueries({queryKey:[`spools`]})}}),f=(0,y.useMemo)(()=>{let e=new Map;for(let n of t)e.set(n.group.key,n);return e},[t]),p=(0,y.useMemo)(()=>e.map(e=>({item:e,forecast:f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null})),[e,f]),m=(0,y.useMemo)(()=>p.filter(({forecast:e})=>!e||e.dailyRateG===null?!1:e.stockBreakAlert||e.daysRemaining!==null&&e.daysRemaining<=e.effectiveLeadTimeDays),[p]);function h(){let t=[s(`forecast.qty`),s(`forecast.material`),s(`inventory.brand`),s(`inventory.subtype`),s(`inventory.color`),`${s(`forecast.weight`)} (g)`,`${s(`forecast.leadTime`)} (d)`,s(`forecast.expectedRestock`),s(`forecast.status`),s(`forecast.note`)],r=e.map(e=>{let t=f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null,r=t&&t.totalSpools>0?t.totalLabelG/t.totalSpools:1e3,i=Math.round(e.quantity_spools*r),a=t?.effectiveLeadTimeDays??n??0,o=a>0?l9(c9(new Date,a)):``;return[e.quantity_spools,e.material,e.brand??``,e.subtype??``,e.color_name??``,i,a||``,o,e.status,e.note??``].map(e=>`"${String(e).replace(/"/g,`""`)}"`).join(`,`)}),i=[t.join(`,`),...r].join(` +`),a=new Blob([i],{type:`text/csv`}),o=URL.createObjectURL(a),c=document.createElement(`a`);c.href=o,c.download=`shopping-list-${new Date().toISOString().slice(0,10)}.csv`,c.click(),setTimeout(()=>URL.revokeObjectURL(o),100)}return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(cu,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-white`,children:s(`forecast.shoppingList`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:s(`forecast.shoppingListItems`,{count:e.length})}),e.length>0&&(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-tertiary rounded-md p-0.5 ml-1`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(`list`),className:`flex items-center gap-1.5 px-2 py-0.5 text-xs font-medium rounded transition-colors ${l===`list`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Cl,{className:`w-3 h-3`}),s(`forecast.listView`)]}),(0,G.jsxs)(`button`,{onClick:()=>u(`logistics`),className:`flex items-center gap-1.5 px-2 py-0.5 text-xs font-medium rounded transition-colors ${l===`logistics`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(us,{className:`w-3 h-3`}),s(`forecast.logisticsView`),m.length>0&&(0,G.jsx)(`span`,{className:`w-3.5 h-3.5 rounded-full bg-red-500 text-white text-[9px] font-bold flex items-center justify-center`,children:m.length})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:h,className:`flex items-center gap-1.5 text-xs text-bambu-gray hover:text-white transition-colors px-2 py-1 rounded border border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`,children:[(0,G.jsx)(Xs,{className:`w-3 h-3`}),s(`forecast.downloadCsv`)]}),r&&(0,G.jsx)(`button`,{onClick:o,className:`text-xs text-red-700 dark:text-red-400 hover:text-red-800 dark:hover:text-red-300 transition-colors px-2 py-1 rounded border border-red-200 dark:border-red-500/20 hover:bg-red-50 dark:hover:bg-red-500/10`,children:s(`forecast.clearAll`)})]}),(0,G.jsx)(`button`,{onClick:i,className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),e.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center py-8 text-bambu-gray`,children:[(0,G.jsx)(Cl,{className:`w-8 h-8 mb-2 opacity-30`}),(0,G.jsx)(`p`,{className:`text-sm`,children:s(`forecast.shoppingListEmpty`)})]}):l===`list`?(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/20`,children:[(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.qty`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.material`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.weight`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.leadTime`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.expectedRestock`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.status`)}),(0,G.jsx)(`th`,{className:`px-4 py-3 text-left text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.note`)}),(0,G.jsx)(`th`,{className:`px-4 py-2 text-right text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:s(`forecast.actions`)})]})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-bambu-dark-tertiary`,children:e.map(e=>{let t=[e.brand,e.material,e.subtype,e.color_name].filter(Boolean).join(` `),i=m.some(t=>t.item.id===e.id),o=f.get(s9(e.material,e.subtype,e.brand,e.color_name))??null,c=o&&o.totalSpools>0?o.totalLabelG/o.totalSpools:1e3,l=Math.round(e.quantity_spools*c),u=o?.effectiveLeadTimeDays??n??0,p=u>0?c9(new Date,u):null,h=e.status===`purchased`||e.status===`received`,g=e.status===`received`,_=d.isPending;return(0,G.jsxs)(`tr`,{className:`hover:bg-bambu-dark-tertiary/30 transition-colors ${i&&!h?`bg-red-500/5`:``}`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsxs)(`span`,{className:`text-sm font-semibold text-bambu-green`,children:[e.quantity_spools,`×`]})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-white`,children:t}),i&&!h&&(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-red-600 dark:text-red-400 flex-shrink-0`,"aria-label":s(`forecast.stockBreakBefore`)})]})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-white`,children:l>=1e3?`${(l/1e3).toFixed(1)}kg`:`${l}g`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:u>0?`${u}d`:`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:p?l9(p):`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium ${g?`bg-bambu-green/20 text-bambu-green`:h?`bg-blue-100 dark:bg-blue-400/20 text-blue-700 dark:text-blue-400`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:s(g?`forecast.received`:h?`forecast.purchased`:`forecast.pending`)})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.note||`—`})}),(0,G.jsx)(`td`,{className:`px-4 py-2.5`,children:(0,G.jsx)(`div`,{className:`flex items-center justify-end gap-1`,children:r&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>d.mutate({id:e.id,status:h?`pending`:`purchased`}),disabled:_||g,title:s(h?`forecast.resetToPending`:`forecast.markPurchased`),className:`p-1.5 rounded transition-colors disabled:opacity-30 ${h?`text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300`:`text-blue-600/50 dark:text-blue-400/50 hover:text-blue-600 dark:hover:text-blue-400`}`,children:h?(0,G.jsx)(Wl,{className:`w-4 h-4`}):(0,G.jsx)(Us,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>d.mutate({id:e.id,status:`received`,item:e,avgSpoolG:c}),disabled:_||!h||g,title:s(`forecast.markReceived`),className:`p-1.5 rounded transition-colors text-bambu-green/50 hover:text-bambu-green disabled:opacity-30`,children:(0,G.jsx)(xl,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>a(e.id),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 transition-colors`,title:s(`forecast.remove`),children:(0,G.jsx)(Pu,{className:`w-3.5 h-3.5`})})]})})})]},e.id)})})]})}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary`,children:p.filter(({item:e})=>e.status!==`received`).map(({item:e,forecast:t})=>(0,G.jsx)(i1e,{item:e,forecast:t,globalLeadTime:n,canWrite:r,onRemove:()=>a(e.id)},e.id))})]})}function i1e({item:e,forecast:t,globalLeadTime:n,canWrite:r,onRemove:i}){let{t:a}=U(),o=[e.brand,e.material,e.subtype,e.color_name].filter(Boolean).join(` `),s=(0,y.useMemo)(()=>{if(!t||t.dailyRateG===null||t.dailyRateG<=0)return null;let n=t.dailyRateG,r=t.effectiveLeadTimeDays,i=t.totalSpools>0?t.totalLabelG/t.totalSpools:1e3,a=e.quantity_spools*i,o=Math.max(0,t.totalRemainingG-n*r),s=o+a,c=Math.ceil(s/n),l=Math.min(r+c+5,365),u=[];for(let e=0;e<=l;e++){let i=u9(c9(new Date,e));if(e===r)u.push({day:e,label:i,stock:Math.round(o),rop:Math.round(t.reorderPointG),safetyStock:Math.round(t.safetyStockG)}),u.push({day:e,label:i,stock:Math.round(s),rop:Math.round(t.reorderPointG),safetyStock:Math.round(t.safetyStockG),arrival:!0});else{let a=e{if(!t||t.dailyRateG===null||t.dailyRateG<=0)return null;let e=Math.floor(t.totalRemainingG/t.dailyRateG);return ee>=1e3?`${(e/1e3).toFixed(1)}kg`:`${e}g`,width:44}),(0,G.jsx)(sz,{contentStyle:{background:`#1a1a2e`,border:`1px solid #374151`,borderRadius:8,fontSize:11},labelStyle:{color:`#9CA3AF`},formatter:(e,t)=>typeof e==`number`?t===`stock`?`${e}g — ${a(`forecast.stock`)}`:t===`rop`?`${e}g — ${a(`forecast.reorderPoint`)}`:t===`safetyStock`?`${e}g — ${a(`forecast.safetyMarginLabel`)}`:`${e}`:``}),(0,G.jsx)(rV,{type:`linear`,dataKey:`stock`,stroke:`#1DB954`,strokeWidth:2,fill:`url(#cart-post-${e.id})`,dot:!1,activeDot:{r:3}}),t.reorderPointG>0&&(0,G.jsx)(NB,{y:t.reorderPointG,stroke:`#F59E0B`,strokeDasharray:`5 3`,strokeOpacity:.8,label:{value:`ROP`,position:`insideTopRight`,fill:`#F59E0B`,fontSize:9}}),t.safetyStockG>0&&(0,G.jsx)(NB,{y:t.safetyStockG,stroke:`#6B7280`,strokeDasharray:`3 3`,strokeOpacity:.6,label:{value:`SS`,position:`insideTopRight`,fill:`#6B7280`,fontSize:9}}),(0,G.jsx)(NB,{x:u9(c9(new Date,s.lt)),stroke:`#3B82F6`,strokeWidth:1.5,strokeDasharray:`4 3`,strokeOpacity:.9,label:{value:`+${s.arrivalG>=1e3?`${(s.arrivalG/1e3).toFixed(1)}kg`:`${Math.round(s.arrivalG)}g`} arrives (d${s.lt})`,position:`insideTopLeft`,fill:`#3B82F6`,fontSize:9}}),c!==null&&(0,G.jsx)(NB,{x:u9(c9(new Date,c)),stroke:`#EF4444`,strokeWidth:1.5,strokeOpacity:.9,label:{value:`OUT`,position:`insideTopLeft`,fill:`#EF4444`,fontSize:9}})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 mt-2 text-[10px] text-bambu-gray`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-yellow-400 border-dashed`}),` `,a(`forecast.ropLabel`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t border-bambu-gray border-dashed`}),` `,a(`forecast.safetyStockLegend`)]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-blue-400 border-dashed`}),` `,a(`forecast.stockArrivalLegend`)]}),l&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 text-red-700 dark:text-red-400`,children:[(0,G.jsx)(`span`,{className:`inline-block w-4 border-t-2 border-red-400`}),` `,a(`forecast.stockoutLegend`)]})]})]}):null]})}function a1e({forecast:e,onClose:t,onAdd:n}){let{t:r}=U(),i=[e.group.brand,e.group.material,e.group.subtype,e.group.colorName].filter(Boolean).join(` `),[a,o]=(0,y.useState)(`qty`),[s,c]=(0,y.useState)(`1`),[l,u]=(0,y.useState)(`30`),[d,f]=(0,y.useState)(``),p=(0,y.useMemo)(()=>{if(!e.dailyRateG||e.dailyRateG<=0)return null;let t=e.dailyRateG*Number(l),n=e.group.spools.length>0?e.group.spools.reduce((e,t)=>e+t.label_weight,0)/e.group.spools.length:1e3;return Math.ceil(t/n)},[e,l]),m=a===`qty`?parseInt(s,10)||1:p??1;function h(t){t.preventDefault(),n({material:e.group.material,subtype:e.group.subtype,brand:e.group.brand,color_name:e.group.colorName,quantity_spools:m,note:d||null})}return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-2xl border border-bambu-dark-tertiary w-full max-w-sm shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 pt-5 pb-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(cu,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-base font-semibold text-white`,children:r(`forecast.addToCartTitle`)})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`form`,{onSubmit:h,className:`p-5 space-y-4`,children:[(0,G.jsx)(`div`,{className:`text-sm text-bambu-gray`,children:i}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-tertiary rounded-lg p-0.5`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`qty`),className:`flex-1 py-1.5 text-xs font-medium rounded-md transition-colors ${a===`qty`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:r(`forecast.byQuantity`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>o(`duration`),className:`flex-1 py-1.5 text-xs font-medium rounded-md transition-colors ${a===`duration`?`bg-bambu-dark-secondary text-white shadow`:`text-bambu-gray hover:text-white`}`,children:r(`forecast.byDuration`)})]}),a===`qty`?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.numberOfSpools`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:99,value:s,onChange:e=>c(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,autoFocus:!0})]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.lastHowManyDays`)}),(0,G.jsx)(`input`,{type:`number`,min:1,max:365,value:l,onChange:e=>u(e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,autoFocus:!0})]}),e.dailyRateG===null?(0,G.jsx)(`div`,{className:`text-xs text-yellow-700 dark:text-yellow-400 px-1`,children:r(`forecast.noUsageQty`)}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 bg-bambu-dark-tertiary/50 rounded-lg`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`≈`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-bambu-green`,children:r(`forecast.spoolCount`,{count:p??0})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray`,children:[`at `,e.dailyRateG.toFixed(1),`g/day`]})]})]}),(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{className:`text-xs text-bambu-gray`,children:r(`forecast.noteOptional`)}),(0,G.jsx)(`input`,{type:`text`,maxLength:200,value:d,onChange:e=>f(e.target.value),placeholder:r(`forecast.notePlaceholder`),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/40 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 pt-1`,children:[(0,G.jsx)(`button`,{type:`submit`,className:`flex-1 py-2 bg-bambu-green text-white text-sm font-medium rounded-lg hover:bg-bambu-green/80 transition-colors`,children:r(`forecast.addNSpools`,{count:m})}),(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-2 text-sm text-bambu-gray hover:text-white border border-bambu-dark-tertiary rounded-lg transition-colors`,children:r(`forecast.cancel`)})]})]})]})})}var f9={material:``,subtype:``,brand:``,color_name:``,rgba:`808080FF`,extra_colors:``,effect_type:``,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:``,note:``,cost_per_kg:null,category:``,low_stock_threshold_pct:null,location_id:null,spoolman_filament_id:null},o1e=new Set([`material`,`subtype`,`brand`,`rgba`,`color_name`,`label_weight`]);function s1e(e,t=!1,n=!1,r=`create`){let i={};return t||n||r!==`create`?(!e.material&&!e.spoolman_filament_id&&(i.material=`Material is required`),{isValid:Object.keys(i).length===0,errors:i}):(e.slicer_filament||(i.slicer_filament=`Slicer preset is required`),e.material||(i.material=`Material is required`),e.brand||(i.brand=`Brand is required`),e.subtype||(i.subtype=`Subtype is required`),{isValid:Object.keys(i).length===0,errors:i})}var c1e={local:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,orca_cloud:`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,cloud:`bg-bambu-blue/20 text-bambu-blue`,builtin:`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`};function p9({source:e}){let{t}=U(),n={local:t(`profiles.localProfiles.badge`),orca_cloud:t(`configureAmsSlot.orcaCloud`),cloud:t(`configureAmsSlot.bambuCloud`),builtin:t(`configureAmsSlot.builtin`)}[e];return(0,G.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded whitespace-nowrap ${c1e[e]}`,children:n})}function l1e({value:e,options:t,inheritLabel:n,onChange:r,disabled:i=!1,ariaLabel:a}){let{t:o}=U(),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(``),d=(0,y.useRef)(null),f=t.find(t=>t.code===e);(0,y.useEffect)(()=>{if(!s)return;let e=e=>{d.current&&!d.current.contains(e.target)&&c(!1)},t=e=>{e.key===`Escape`&&(e.stopPropagation(),c(!1))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t,!0),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t,!0)}},[s]);let p=l.trim().toLowerCase(),m=p?t.filter(e=>e.displayName.toLowerCase().includes(p)):t,h=e=>{r(e),c(!1),u(``)};return(0,G.jsxs)(`div`,{className:`relative`,ref:d,children:[(0,G.jsxs)(`button`,{type:`button`,"aria-label":a,"aria-haspopup":`listbox`,"aria-expanded":s,disabled:i,onClick:()=>c(e=>!e),className:`w-full flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-sm text-left focus:outline-none focus:border-bambu-green disabled:opacity-50`,children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate ${f?`text-white`:`text-bambu-gray italic`}`,children:f?f.displayName:n}),f&&(0,G.jsx)(p9,{source:f.source}),(0,G.jsx)(ps,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`})]}),s&&(0,G.jsxs)(`div`,{className:`absolute z-50 mt-1 w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl`,children:[(0,G.jsx)(`div`,{className:`p-2 border-b border-bambu-dark-tertiary`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`w-3.5 h-3.5 text-bambu-gray absolute left-2 top-1/2 -translate-y-1/2`}),(0,G.jsx)(`input`,{autoFocus:!0,type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:o(`inventory.searchPresets`),className:`w-full pl-7 pr-7 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-md text-sm text-white placeholder:text-bambu-gray/60 focus:outline-none focus:border-bambu-green`}),l&&(0,G.jsx)(`button`,{type:`button`,"aria-label":o(`common.clear`),onClick:()=>u(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-3.5 h-3.5`})})]})}),(0,G.jsxs)(`div`,{className:`max-h-56 overflow-y-auto p-1`,role:`listbox`,"aria-label":a,children:[(0,G.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":!f,onClick:()=>h(null),className:`w-full text-left px-2 py-1.5 rounded-md text-sm italic ${f?`text-bambu-gray hover:bg-bambu-dark`:`bg-bambu-green/15 text-bambu-green`}`,children:n}),m.length===0?(0,G.jsx)(`p`,{className:`px-2 py-2 text-sm text-bambu-gray`,children:o(`inventory.noResults`)}):m.map(t=>(0,G.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t.code===e,onClick:()=>h(t),className:`w-full flex items-center gap-2 text-left px-2 py-1.5 rounded-md text-sm ${t.code===e?`bg-bambu-green/15 text-bambu-green`:`text-white hover:bg-bambu-dark`}`,children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate`,title:t.displayName,children:t.displayName}),(0,G.jsx)(p9,{source:t.source})]},t.code))]})]})]})}function u1e(e,t){if(t.length===0)return{top:[],rest:e};let n=new Set(t.map(e=>e.toLowerCase()));return{top:e.filter(e=>n.has(e.toLowerCase())),rest:e.filter(e=>!n.has(e.toLowerCase()))}}function m9({label:e}){return(0,G.jsx)(`div`,{className:`px-3 py-1 text-[11px] font-semibold uppercase tracking-wide text-bambu-gray/70 bg-bambu-dark-tertiary/40`,children:e})}function d1e({formData:e,updateField:t,cloudAuthenticated:n,loadingCloudPresets:r,presetInputValue:i,setPresetInputValue:a,selectedPresetOption:o,filamentOptions:s,availableBrands:c,availableMaterials:l,suggestedBrands:u,suggestedMaterials:d,quickAdd:f,detailsRequired:p,quantity:m,onQuantityChange:h,errors:g}){let{t:_}=U(),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(``),[k,A]=(0,y.useState)(``),[j,M]=(0,y.useState)(``),[N,P]=(0,y.useState)(String(e.label_weight)),[F,I]=(0,y.useState)(!1),[L,R]=(0,y.useState)(new Set),z=(0,y.useRef)(null),B=(0,y.useRef)(null),V=(0,y.useRef)(null),ee=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{z.current&&!z.current.contains(e.target)&&b(!1),ee.current&&!ee.current.contains(e.target)&&E(!1),B.current&&!B.current.contains(e.target)&&S(!1),V.current&&!V.current.contains(e.target)&&w(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let te=(0,y.useMemo)(()=>{if(!i)return s;let e=i.toLowerCase();return s.filter(t=>t.displayName.toLowerCase().includes(e)||t.code.toLowerCase().includes(e))},[s,i]),ne=(0,y.useMemo)(()=>{if(!D)return c;let e=D.toLowerCase();return c.filter(t=>t.toLowerCase().includes(e)).sort((t,n)=>{let r=t.toLowerCase()===e,i=n.toLowerCase()===e;return r&&!i?-1:!r&&i?1:t.localeCompare(n)})},[c,D]),re=(0,y.useMemo)(()=>{if(!k)return RH;let e=k.toLowerCase();return RH.filter(t=>t.toLowerCase().includes(e))},[k]),ie=(0,y.useMemo)(()=>{if(!j)return l;let e=j.toLowerCase();return l.filter(t=>t.toLowerCase().includes(e)).sort((t,n)=>{let r=t.toLowerCase()===e,i=n.toLowerCase()===e;return r&&!i?-1:!r&&i?1:t.localeCompare(n)})},[j,l]),ae=(0,y.useMemo)(()=>u1e(ne,u),[ne,u]),oe=(0,y.useMemo)(()=>u1e(ie,d),[ie,d]);(0,y.useEffect)(()=>{F||P(String(e.label_weight))},[e.label_weight,F]);let se=n=>{t(`slicer_filament`,n.code),a(n.displayName),b(!1);let r=WH(n.name),i=new Set,o=[[`material`,r.material],[`brand`,r.brand],[`subtype`,r.variant]];for(let[n,r]of o)r&&(e[n]&&!L.has(n)||(t(n,r),i.add(n)));R(i)},H=(e,n)=>{L.has(e)&&R(t=>{let n=new Set(t);return n.delete(e),n}),t(e,n)},ce=t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.brand===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`brand`,t),S(!1),O(``)},children:t},t),le=t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.material===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`material`,t),E(!1),M(``)},children:t},t);return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[!f&&(0,G.jsx)(`div`,{className:`flex items-center gap-2 text-xs text-bambu-gray`,children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin`}),` `,_(`inventory.loadingPresets`)]}):n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ps,{className:`w-3 h-3 text-bambu-green`}),` `,_(`inventory.cloudConnected`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ms,{className:`w-3 h-3`}),` `,_(`inventory.cloudNotConnected`)]})}),!f&&(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.slicerPreset`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:z,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.searchPresets`),value:i,onChange:e=>{a(e.target.value),b(!0)},onFocus:()=>{b(!0),a(``)}}),v&&(0,G.jsx)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:te.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noPresetsFound`)}):te.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2 ${o?.code===e.code?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>se(e),children:[(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate`,title:e.displayName,children:e.displayName}),(0,G.jsx)(p9,{source:e.source})]},`${e.code}::${e.name}`))})]}),o&&(0,G.jsxs)(`div`,{className:`mt-1 text-xs text-bambu-gray`,children:[_(`inventory.selectedPreset`),`: `,(0,G.jsx)(`span`,{className:`font-mono text-bambu-green`,children:o.code})]}),g?.slicer_filament&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.slicer_filament})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.material`),` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:ee,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.selectMaterial`),value:T?j:e.material,onChange:e=>{M(e.target.value),E(!0)},onFocus:()=>{E(!0),M(``)}}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),T&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[ie.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):(0,G.jsxs)(G.Fragment,{children:[oe.top.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m9,{label:_(`inventory.suggestedOptions`)}),oe.top.map(le)]}),oe.rest.length>0&&(0,G.jsxs)(G.Fragment,{children:[oe.top.length>0&&(0,G.jsx)(m9,{label:_(`inventory.allOptions`)}),oe.rest.map(le)]})]}),j&&!ie.includes(j)&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`material`,j),E(!1),M(``)},children:_(`inventory.useCustomMaterial`,{material:j})})]})]}),g?.material&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.material})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.brand`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:B,children:[(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:_(`inventory.searchBrand`),value:x?D:e.brand,onChange:e=>{O(e.target.value),S(!0)},onFocus:()=>{S(!0),O(``)}}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),x&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[ne.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):(0,G.jsxs)(G.Fragment,{children:[ae.top.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m9,{label:_(`inventory.suggestedOptions`)}),ae.top.map(ce)]}),ae.rest.length>0&&(0,G.jsxs)(G.Fragment,{children:[ae.top.length>0&&(0,G.jsx)(m9,{label:_(`inventory.allOptions`)}),ae.rest.map(ce)]})]}),D&&!ne.includes(D)&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`brand`,D),S(!1),O(``)},children:_(`inventory.useCustomBrand`,{brand:D})})]})]}),g?.brand&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.brand})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:[_(`inventory.subtype`),p&&` *`]}),(0,G.jsxs)(`div`,{className:`relative`,ref:V,children:[(0,G.jsx)(`input`,{type:`text`,value:C?k:e.subtype,onChange:e=>{A(e.target.value),w(!0)},onFocus:()=>{w(!0),A(``)},placeholder:`Basic, Matte, Silk...`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),C&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-48 overflow-y-auto`,children:[re.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:_(`inventory.noResults`)}):re.map(t=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e.subtype===t?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{H(`subtype`,t),w(!1),A(``)},children:t},t)),k&&!RH.some(e=>e.toLowerCase()===k.toLowerCase().trim())&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{H(`subtype`,k),w(!1),A(``)},children:_(`inventory.useCustomBrand`,{brand:k})})]})]}),g?.subtype&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-700 dark:text-red-400`,children:g.subtype})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:_(`inventory.labelWeight`)}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{type:`number`,className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:N,min:0,onFocus:()=>I(!0),onChange:e=>P(e.target.value),onBlur:()=>{I(!1);let n=N.trim(),r=Number(n);if(!n||!Number.isFinite(r)||r<0){P(String(e.label_weight));return}let i=Math.round(r);t(`label_weight`,i),P(String(i))}}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]})]}),f&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:_(`inventory.quantity`)}),(0,G.jsx)(`input`,{type:`number`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:m,min:1,max:100,onChange:e=>{h(Math.max(1,Math.min(100,parseInt(e.target.value)||1)))}})]})]})}function f1e(e){let t=e.split(/[\s,]+/).map(e=>e.trim().replace(/^#/,``)).filter(Boolean),n=[],r=[];for(let e of t)(e.length===6||e.length===8)&&/^[0-9a-fA-F]+$/.test(e)?n.push(e.toLowerCase()):r.push(e);return{value:n.join(`,`),invalid:r}}function p1e({formData:e,updateField:t,recentColors:n,onColorUsed:r,catalogColors:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(``),u=(e.rgba.replace(`#`,``)+`FF`).substring(0,8).toUpperCase(),d=u.substring(0,6),f=u.substring(6,8)===`00`,[p,m]=(0,y.useState)(f?u:d);(0,y.useEffect)(()=>{m(f?u:d)},[d,u,f]);let h=e=>u===(e.replace(`#`,``)+`FF`).substring(0,8).toUpperCase(),g=e=>Mf(e),_=(e,n,i,a)=>{let o=e.replace(`#`,``).toUpperCase();if(t(`rgba`,o.length===8?o:o+`FF`),t(`color_name`,n),i!==void 0){let e=i??``;w(e),E([]),D.current=e,t(`extra_colors`,e)}a!==void 0&&t(`effect_type`,a??``),r({name:n,hex:e})},v=(0,y.useMemo)(()=>{if(i.length===0)return[];let t=e.brand?.trim(),n=e.material?.toLowerCase().trim(),r=e.subtype?.toLowerCase().trim();if(!t&&!n)return[];let a=t?t.toLowerCase().split(/[\s\-_]+/).filter(e=>e.length>=2):[],o=e=>{if(a.length===0)return!0;let t=e.toLowerCase();return a.some(e=>t.includes(e))};if(t&&!n){let e=i.filter(e=>o(e.manufacturer));if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}))}let s=n&&r?`${n} ${r}`:``;if(s){let e=i.filter(e=>o(e.manufacturer)&&e.material?.toLowerCase()===s);if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}));let t=s.replace(/\+$/,``);if(t!==s){let e=i.filter(e=>o(e.manufacturer)&&e.material?.toLowerCase()===t);if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0}))}}if(n){let e=i.filter(e=>o(e.manufacturer)&&(!e.material||e.material.toLowerCase().startsWith(n)));if(e.length>0)return e.map(e=>({name:e.color_name,hex:e.hex_color.replace(`#`,``).substring(0,6),manufacturer:e.manufacturer,material:typeof e.material==`string`?e.material:void 0,extra_colors:e.extra_colors??null,effect_type:e.effect_type??null}))}return[]},[i,e.brand,e.material,e.subtype]),b=(0,y.useMemo)(()=>{if(!c)return v;if(v.length===0)return[];let e=c.toLowerCase();return v.filter(t=>t.name.toLowerCase().includes(e)||(t.manufacturer?.toLowerCase().includes(e)??!1)||(t.material?.toLowerCase().includes(e)??!1))},[c,v]),x=v.length>0,S=(0,y.useMemo)(()=>c?BH.filter(e=>e.name.toLowerCase().includes(c.toLowerCase())):o?BH:zH,[c,o]),[C,w]=(0,y.useState)(e.extra_colors),[T,E]=(0,y.useState)([]),D=(0,y.useRef)(e.extra_colors);(0,y.useEffect)(()=>{e.extra_colors!==D.current&&(w(e.extra_colors),E([]),D.current=e.extra_colors)},[e.extra_colors]);let O=(0,y.useMemo)(()=>bH({rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`bar`}),[e.rgba,e.extra_colors,e.effect_type,e.subtype]),k=e=>{if(w(e),!e.trim()){E([]),D.current=``,t(`extra_colors`,``);return}let{value:n,invalid:r}=f1e(e);E(r),D.current=n,t(`extra_colors`,n)};return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`div`,{className:`h-10 rounded-lg border border-bambu-dark-tertiary`,style:O,"data-testid":`color-preview-banner`}),n.length>0&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-bambu-gray shrink-0`,children:[(0,G.jsx)(js,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:a(`inventory.recentColors`)})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.name},e.hex))})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.searchColors`),value:c,onChange:e=>l(e.target.value)})]}),x?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:c?a(`inventory.searchResults`):`${e.brand}${e.material?` ${e.material}`:``}`}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[b.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name,e.extra_colors,e.effect_type),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:z-20 relative group ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.manufacturer&&e.material?`${e.name} (${e.manufacturer} — ${e.material})`:e.manufacturer?`${e.name} (${e.manufacturer})`:e.name,children:(0,G.jsx)(`span`,{className:`absolute -bottom-7 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-xs whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-20 shadow-lg text-white`,children:e.manufacturer&&e.material?`${e.name} (${e.manufacturer} — ${e.material})`:e.manufacturer?`${e.name} (${e.manufacturer})`:e.name})},`${e.hex}-${e.name}-${e.manufacturer??``}`)),b.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray py-1`,children:a(`inventory.noColorsFound`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:a(c?`inventory.searchResults`:o?`inventory.allColors`:`inventory.commonColors`)}),!c&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>s(!o),className:`flex items-center gap-1 hover:text-white transition-colors`,children:o?(0,G.jsxs)(G.Fragment,{children:[a(`inventory.showLess`),` `,(0,G.jsx)(gs,{className:`w-3 h-3`})]}):(0,G.jsxs)(G.Fragment,{children:[a(`inventory.showAll`),` `,(0,G.jsx)(ps,{className:`w-3 h-3`})]})})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[S.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>_(e.hex,e.name),className:`w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:z-20 relative group ${h(e.hex)?`border-bambu-green ring-1 ring-bambu-green/30 scale-110`:`border-bambu-dark-tertiary`}`,style:g(e.hex),title:e.name,children:(0,G.jsx)(`span`,{className:`absolute -bottom-7 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-xs whitespace-nowrap opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-20 shadow-lg text-white`,children:e.name})},e.hex)),S.length===0&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray py-1`,children:a(`inventory.noColorsFound`)})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.colorName`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.colorNamePlaceholder`),value:e.color_name,onChange:e=>t(`color_name`,e.target.value)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.hexColor`)}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray`,children:`#`}),(0,G.jsx)(`input`,{type:`text`,className:`w-full pl-7 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono uppercase focus:outline-none focus:border-bambu-green`,placeholder:`RRGGBB`,value:p.toUpperCase(),onChange:e=>{let n=e.target.value.replace(`#`,``).replace(/[^0-9A-Fa-f]/g,``).toUpperCase(),r=n.length>8?n.substring(0,8):n;m(r),r.length===6?t(`rgba`,r+`FF`):r.length===8&&t(`rgba`,r)},onBlur:()=>{if(p.length===7){let e=p+`0`;m(e),t(`rgba`,e)}else if(p.length>0&&p.length<6){let e=p.padEnd(6,`0`);m(e),t(`rgba`,e+`FF`)}}})]}),(0,G.jsx)(`input`,{type:`color`,className:`w-11 h-[38px] rounded-lg cursor-pointer border border-bambu-dark-tertiary shrink-0 bg-transparent`,value:`#${d}`,onChange:e=>{t(`rgba`,e.target.value.replace(`#`,``).toUpperCase()+`FF`)},title:a(`inventory.pickColor`)})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 pt-2 border-t border-bambu-dark-tertiary/50`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:a(`inventory.extraColorsLabel`)}),(0,G.jsx)(`input`,{type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm font-mono placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.extraColorsPlaceholder`),value:C,onChange:e=>k(e.target.value),"data-testid":`extra-colors-input`}),T.length>0&&(0,G.jsx)(`p`,{className:`text-xs text-red-700 dark:text-red-400 mt-1`,children:a(`inventory.extraColorsInvalid`,{tokens:T.join(`, `)})}),!T.length&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:a(`inventory.extraColorsHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1 flex items-center gap-1.5`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),a(`inventory.colorEffectLabel`)]}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-stretch`,children:[(0,G.jsx)(`select`,{className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:e.effect_type,onChange:e=>t(`effect_type`,e.target.value),"data-testid":`effect-type-select`,children:_H.map(e=>(0,G.jsx)(`option`,{value:e.value,children:a(e.labelKey)},e.value||`none`))}),(0,G.jsx)(w8,{rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`preview`,className:`w-10 h-10`,shape:`square`})]})]})]})]})}function m1e({catalog:e,value:t,onChange:n,catalogId:r,onCatalogIdChange:i}){let{t:a}=U(),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(``),u=(0,y.useRef)(null),d=(0,y.useRef)(null);(0,y.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&s(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,y.useEffect)(()=>{if(e.length===0)return;let n=e.filter(e=>e.weight===t);if(r){let n=e.find(e=>e.id===r);if(n&&n.weight===t)return}n.length===1?i(n[0].id):n.length===0&&r!==null&&i(null)},[t,e,r,i]);let f=(0,y.useMemo)(()=>{if(!c)return e;let t=c.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||e.weight.toString().includes(t))},[e,c]),p=(0,y.useMemo)(()=>e.filter(e=>e.weight===t),[e,t]),m=(0,y.useMemo)(()=>{if(o)return c;if(r){let t=e.find(e=>e.id===r);if(t)return t.name}return p.length>0?p[0].name:``},[o,c,r,e,p]);return(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Jl,{className:`w-3.5 h-3.5 text-bambu-gray`}),a(`inventory.coreWeight`)]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 relative`,ref:u,children:[(0,G.jsx)(`input`,{ref:d,type:`text`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:a(`inventory.searchSpoolWeight`),value:m,onFocus:()=>{s(!0),l(``)},onChange:e=>{l(e.target.value),s(!0)}}),o&&(0,G.jsx)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:f.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:a(`inventory.noResults`)}):f.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex justify-between items-center ${(r?e.id===r:e.weight===t)?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{i(e.id),n(e.weight),s(!1),l(``)},children:[(0,G.jsx)(`span`,{className:`truncate`,children:e.name}),(0,G.jsxs)(`span`,{className:`font-mono text-xs text-bambu-gray ml-2 shrink-0`,children:[e.weight,`g`]})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,G.jsx)(`input`,{type:`number`,className:`w-16 px-2 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm text-center font-mono focus:outline-none focus:border-bambu-green`,value:t,min:0,max:2e3,onChange:e=>{let t=parseInt(e.target.value);!isNaN(t)&&t>=0&&n(t)}}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-sm`,children:`g`})]})]})]})}function h1e({formData:e,updateField:t,spoolCatalog:n,currencySymbol:r,availableCategories:i,availableLocations:a=[],onCreateLocation:o,globalLowStockThreshold:s,spoolmanMode:c=!1}){let{t:l}=U(),{showToast:u}=qd(),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(``),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(``),[S,C]=(0,y.useState)(!1),w=Math.max(0,e.label_weight-e.weight_used),T=e.core_weight+w;return(0,y.useEffect)(()=>{p||f(String(T))},[p,T]),(0,y.useEffect)(()=>{_||g(String(w))},[_,w]),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4`,children:[(0,G.jsx)(`div`,{className:`sm:col-span-2`,children:c?(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray px-1`,children:l(`inventory.spoolWeightManagedBySpoolman`)}):(0,G.jsx)(m1e,{catalog:n,value:e.core_weight,onChange:e=>t(`core_weight`,e),catalogId:e.core_weight_catalog_id,onCatalogIdChange:e=>t(`core_weight_catalog_id`,e)})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.currentWeight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:`number`,value:h,min:0,max:e.label_weight,onFocus:()=>v(!0),onChange:e=>{g(e.target.value)},onBlur:()=>{v(!1);let n=h.trim(),r=Number(n);if(!n||!Number.isFinite(r)||r<0||r>e.label_weight){g(String(w));return}let i=Math.round(r);t(`weight_used`,Math.max(0,e.label_weight-i)),g(String(i))},className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:[`/ `,e.label_weight,`g`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.measuredWeight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{type:`number`,value:d,min:0,onFocus:()=>m(!0),onChange:e=>{f(e.target.value)},onBlur:()=>{m(!1);let n=d.trim(),r=Number(n),i=e.core_weight,a=e.core_weight+e.label_weight;if(!n||!Number.isFinite(r)||ra){u(l(`inventory.measuredWeightError`,{min:i,max:a}),`error`),f(String(T));return}let o=Math.round(r),s=Math.max(0,Math.min(e.label_weight,o-e.core_weight));t(`weight_used`,Math.max(0,e.label_weight-s)),f(String(o))},className:`w-full px-3 py-2 pr-7 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsx)(`span`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-xs text-bambu-gray`,children:`g`})]}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray shrink-0`,children:[`/ `,e.core_weight+e.label_weight,`g`]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.costPerKg`,`Cost per kg`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-bambu-gray text-sm pointer-events-none`,children:r}),(0,G.jsx)(`input`,{type:`number`,value:e.cost_per_kg??``,min:0,step:.01,placeholder:`0.00`,onChange:e=>{t(`cost_per_kg`,e.target.value===``?null:parseFloat(e.target.value))},style:{paddingLeft:`${Math.max(2,r.length*.6+1)}rem`},className:`w-full py-2 pr-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`})]})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-category`,children:l(`inventory.category`)}),(0,G.jsx)(`input`,{id:`spool-category`,type:`text`,list:`spool-category-options`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:l(`inventory.categoryPlaceholder`),value:e.category,maxLength:50,onChange:e=>t(`category`,e.target.value)}),i.length>0&&(0,G.jsx)(`datalist`,{id:`spool-category-options`,children:i.map(e=>(0,G.jsx)(`option`,{value:e},e))})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-low-stock-threshold`,children:l(`inventory.lowStockThresholdOverride`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(`input`,{id:`spool-low-stock-threshold`,type:`number`,className:`w-full px-3 py-2 pr-8 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:String(s),value:e.low_stock_threshold_pct??``,min:1,max:99,step:1,onChange:e=>{let n=e.target.value;if(n===``){t(`low_stock_threshold_pct`,null);return}let r=Number(n);Number.isFinite(r)&&t(`low_stock_threshold_pct`,Math.min(99,Math.max(1,Math.round(r))))}}),(0,G.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-xs text-bambu-gray pointer-events-none`,children:`%`})]})}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:l(`inventory.lowStockThresholdOverrideHelp`,{global:s})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,htmlFor:`spool-storage-location`,children:l(`inventory.storageLocation`)}),(0,G.jsxs)(`select`,{id:`spool-storage-location`,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:outline-none focus:border-bambu-green`,value:e.location_id??``,onChange:e=>{let n=e.target.value;if(!n){t(`location_id`,null);return}t(`location_id`,Number(n))},children:[(0,G.jsx)(`option`,{value:``,children:l(`inventory.storageLocationNone`)}),a.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),o&&(0,G.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,maxLength:255,className:`flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`,placeholder:l(`locations.createPlaceholder`),value:b,onChange:e=>x(e.target.value)}),(0,G.jsx)(`button`,{type:`button`,className:`px-3 py-2 text-sm rounded-lg bg-bambu-dark-tertiary text-white hover:bg-bambu-gray-dark disabled:opacity-50`,disabled:!b.trim()||S,onClick:async()=>{let e=b.trim();if(!(!e||!o)){C(!0);try{let n=await o(e);n&&(t(`location_id`,n.id),x(``))}finally{C(!1)}}},children:l(`locations.addShort`)})]})]}),(0,G.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:l(`inventory.note`)}),(0,G.jsx)(`textarea`,{className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green resize-none min-h-[80px]`,placeholder:l(`inventory.notePlaceholder`),value:e.note,onChange:e=>t(`note`,e.target.value)})]})]})}function g1e({filaments:e,isLoading:t,selectedId:n,onSelect:r}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(``),l=(0,y.useRef)(null),u=(0,y.useRef)(null),d=(0,y.useMemo)(()=>e.find(e=>e.id===n)??null,[e,n]);(0,y.useEffect)(()=>{let e=e=>{l.current&&!l.current.contains(e.target)&&(o(!1),c(``))};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let f=(0,y.useMemo)(()=>{let t=s.toLowerCase().trim();return t?e.filter(e=>e.name.toLowerCase().includes(t)||(e.material?.toLowerCase().includes(t)??!1)||(e.vendor?.name.toLowerCase().includes(t)??!1)||(e.color_name?.toLowerCase().includes(t)??!1)):e},[e,s]);(0,y.useEffect)(()=>{a&&u.current?.focus()},[a]);let p=()=>{o(!0),c(``)},m=e=>{r(e),o(!1),c(``)};return(0,G.jsxs)(`div`,{ref:l,className:`relative`,children:[(0,G.jsx)(`label`,{className:`block text-sm font-medium text-bambu-gray mb-1`,children:i(`inventory.pickFromSpoolmanCatalog`)}),(0,G.jsxs)(`button`,{type:`button`,onClick:p,className:`w-full flex items-center gap-2 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-left focus:outline-none focus:border-bambu-green hover:border-bambu-gray transition-colors`,children:[t?(0,G.jsx)(Y,{className:`w-4 h-4 text-bambu-gray animate-spin shrink-0`}):d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full shrink-0 border border-white/20`,style:Mf(d.color_hex),"aria-label":i(`inventory.spoolmanFilamentColorSwatch`)}),(0,G.jsxs)(`span`,{className:`text-white text-sm truncate flex-1`,children:[d.vendor?.name?`${d.vendor.name} — `:``,d.name]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-bambu-gray text-sm flex-1`,children:i(`inventory.spoolmanFilamentCatalog`)})]}),(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray shrink-0 ml-auto`})]}),a&&(0,G.jsxs)(`div`,{className:`absolute z-50 w-full mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl`,children:[(0,G.jsx)(`div`,{className:`p-2 border-b border-bambu-dark-tertiary`,children:(0,G.jsx)(`input`,{ref:u,type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:i(`inventory.pickFromSpoolmanCatalog`),className:`w-full px-2 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm placeholder-bambu-gray focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`ul`,{className:`max-h-56 overflow-y-auto py-1`,children:t?(0,G.jsxs)(`li`,{className:`flex items-center justify-center gap-2 py-4 text-bambu-gray text-sm`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsx)(`span`,{children:i(`common.loading`,`Loading…`)})]}):f.length===0?(0,G.jsx)(`li`,{className:`py-4 text-center text-bambu-gray text-sm`,children:i(`inventory.noSpoolmanFilaments`)}):f.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>m(e),className:`w-full flex items-center gap-2 px-3 py-2 text-left hover:bg-bambu-dark-tertiary transition-colors ${e.id===n?`bg-bambu-dark-tertiary`:``}`,children:[(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full shrink-0 border border-white/20`,style:Mf(e.color_hex),"aria-label":i(`inventory.spoolmanFilamentColorSwatch`)}),(0,G.jsxs)(`span`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`span`,{className:`block text-white text-sm truncate`,children:[e.vendor?.name?`${e.vendor.name} — `:``,e.name]}),(0,G.jsxs)(`span`,{className:`block text-bambu-gray text-xs truncate`,children:[[e.material,e.color_name].filter(Boolean).join(` · `),e.weight?` · ${e.weight}g`:``]})]})]})},e.id))})]})]})}function h9(e){let t=(e??``).trim().toUpperCase().slice(0,2);return t===`HH`||t===`HS`?t:null}function g9(e){return e?e===`HH`?`HF`:`S`:null}function _1e(e,t){let n=e.nozzles??[];return h9(n[(e.printer.nozzle_count??1)>1&&t>0?t:0]?.nozzle_type)??h9(n[0]?.nozzle_type)}function v1e(e){let t=new Set;for(let n of e.nozzles??[]){let e=(n?.nozzle_diameter??``).trim();e&&parseFloat(e)>0&&t.add(e)}for(let n of e.calibrations){let e=(n.nozzle_diameter??``).trim();e&&parseFloat(e)>0&&t.add(e)}return Array.from(t).sort((e,t)=>parseFloat(e)-parseFloat(t))}function y1e(e,t){return(e.printer.nozzle_count??1)>1?[{extruder:1,label:t.left},{extruder:0,label:t.right}]:[{extruder:0,label:t.single}]}function b1e({formData:e,printersWithCalibrations:t,filamentOptions:n,modelPresets:r,setModelPresets:i,selectedProfiles:a,setSelectedProfiles:o,selectedGroupId:s,setSelectedGroupId:c,printerModels:l,isLoading:u=!1}){let{t:d}=U(),f=(0,y.useMemo)(()=>{let e=new Map,n=[];for(let r of t){let t=(r.printer.model||``).trim();if(!t){n.push(r);continue}let i=e.get(t);i?i.push(r):e.set(t,[r])}return[...Array.from(e.entries()).map(([e,t])=>({id:`m:${e}`,model:e,printers:t,diameters:Array.from(new Set([...HH,...t.flatMap(v1e)])).sort((e,t)=>parseFloat(e)-parseFloat(t))})).sort((e,t)=>e.model.localeCompare(t.model)),...n.map(e=>({id:`p:${e.printer.id}`,model:``,printers:[e],diameters:Array.from(new Set([...HH,...v1e(e)])).sort((e,t)=>parseFloat(e)-parseFloat(t))}))]},[t]),p=f.find(e=>e.id===s)??f[0],m=(0,y.useMemo)(()=>{let e=new Map;return(t,r)=>{if(!t)return n;let i=e.get(t);if(i||(i=n.filter(e=>{let n=FH(e.name,l??{});return!n||DH(n,t)}),e.set(t,i)),r&&!i.some(e=>e.code===r)){let e=n.find(e=>e.code===r);if(e)return[e,...i]}return i}},[n,l]),h=[e.brand,e.material,e.subtype].map(e=>e.trim()).filter(Boolean).join(` `),g=/^[0-9A-Fa-f]{6,8}$/.test(e.rgba)?`#${e.rgba.slice(0,6)}`:`var(--bambu-gray, #808080)`,_=e=>y1e(e,{left:d(`inventory.leftNozzle`),right:d(`inventory.rightNozzle`),single:d(`inventory.nozzle`)}),v=t=>t.printer.connected?t.calibrations.filter(t=>nU(t,e)):[],b=e=>{let t=0;for(let n of e.printers){let r=v(n);for(let i of _(n))for(let o of e.diameters)r.some(e=>(e.extruder_id??0)===i.extruder&&((e.nozzle_diameter??``).trim()||`0.4`)===o)&&(a.get(eU(n.printer.id,i.extruder,o))||t++)}return t},x=(e,t,n)=>{i(r=>{let i=new Map(r),a=tU(e,t);return n?i.set(a,{code:n.code,name:n.name}):i.delete(a),i})},S=(e,t,n,r)=>{o(i=>{let a=new Map(i),o=eU(e,t,n);return r?a.set(o,r):a.delete(o),a})},C=()=>{let t=n.find(t=>t.code===e.slicer_filament);if(!t)return;let r=t.name.split(`@`)[0].trim().toLowerCase();r&&i(e=>{let t=new Map(e);for(let e of f){if(!e.model)continue;let n=m(e.model,void 0).filter(e=>e.name.toLowerCase().startsWith(r)&&FH(e.name,l??{})!==null);if(n.length!==0)for(let r of e.diameters){let i=n.find(e=>RegExp(`\\b${r.replace(`.`,`\\.`)}\\s*nozzle\\b`,`i`).test(e.name)),a=n.find(e=>!/\b[\d.]+\s*nozzle\b/i.test(e.name)),o=i??a;o&&t.set(tU(e.model,r),{code:o.code,name:o.name})}}return t})};if(t.length===0)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsxs)(`p`,{className:`text-bambu-gray flex items-center justify-center gap-2`,children:[u&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),d(u?`common.loading`:`inventory.noPrintersConfigured`)]})});let w=(e,t,n)=>{let i=tU(e,t),a=r.get(i),o=m(e,a?.code);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(l1e,{ariaLabel:`${e} ${t}mm ${d(`inventory.filamentPreset`)}`,value:a?.code??``,options:o,inheritLabel:n,disabled:!e,onChange:n=>x(e,t,n)})}),(0,G.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide px-2 py-1 rounded-full shrink-0 ${a?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:d(a?`inventory.presetOverride`:`inventory.presetInherited`)})]})};return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(h||e.color_name)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`span`,{className:`w-5 h-5 rounded-full border border-white/15 shrink-0`,style:{background:g},"aria-hidden":`true`}),h&&(0,G.jsx)(`span`,{className:`text-sm text-white truncate`,children:h}),e.color_name&&(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray truncate`,children:e.color_name})]}),(0,G.jsxs)(`div`,{className:`flex flex-col md:flex-row gap-4`,children:[(0,G.jsx)(`div`,{role:`tablist`,"aria-label":d(`inventory.printersTab`),"aria-orientation":`vertical`,className:`md:w-52 md:shrink-0 md:self-start md:sticky md:top-0 flex md:flex-col gap-1.5 overflow-x-auto md:overflow-x-visible`,children:f.map(e=>{let t=e===p,n=b(e);return(0,G.jsxs)(`button`,{type:`button`,role:`tab`,onClick:()=>c(e.id),"aria-selected":t,className:`flex items-center gap-2 px-3 py-2 rounded-lg border text-left transition-colors shrink-0 md:shrink ${t?`bg-bambu-green/10 border-bambu-green/40 text-white`:`bg-transparent border-transparent text-bambu-gray hover:bg-bambu-dark hover:text-white`}`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`div`,{className:`text-sm font-semibold truncate`,children:e.model||d(`inventory.unknownModel`)}),(0,G.jsx)(`div`,{className:`text-[11px] text-bambu-gray`,children:e.printers.length===1?d(`inventory.onePrinter`):d(`inventory.nPrinters`,{n:e.printers.length})})]}),n>0?(0,G.jsx)(`span`,{className:`text-[10px] font-mono px-1.5 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray shrink-0`,children:n}):(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-bambu-green shrink-0`})]},e.id)})}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:p&&(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h4`,{className:`text-base font-semibold text-white truncate`,children:p.model||d(`inventory.unknownModel`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:p.printers.map(e=>e.printer.name).join(`, `)})]}),e.slicer_filament&&(0,G.jsxs)(`button`,{type:`button`,onClick:C,title:d(`inventory.autoMatchPresetsHint`),className:`flex items-center gap-1.5 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white hover:border-bambu-green transition-colors shrink-0`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),d(`inventory.autoMatchPresets`)]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-semibold text-bambu-gray uppercase tracking-wide`,children:d(`inventory.filamentPreset`)}),p.model?(0,G.jsx)(`div`,{className:`space-y-2`,children:p.diameters.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray w-14 shrink-0`,children:[e,`mm`]}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:w(p.model,e,d(`inventory.presetUseSpoolDefault`))})]},e))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:d(`inventory.presetNeedsModel`)})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-semibold text-bambu-gray uppercase tracking-wide`,children:d(`inventory.kProfilesPerPrinter`)}),e.material?p.printers.map(e=>{let t=v(e);return(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 text-bambu-gray shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-white truncate`,children:e.printer.name}),(0,G.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide px-2 py-0.5 rounded-full shrink-0 ${e.printer.connected?`bg-green-500/20 text-green-500`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:e.printer.connected?d(`inventory.connected`):d(`inventory.offline`)})]}),e.printer.connected?t.length===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-1`,children:d(`inventory.noKProfilesMatch`)}):(0,G.jsxs)(`div`,{className:`grid gap-x-3 gap-y-1.5 items-center`,style:{gridTemplateColumns:`3.5rem repeat(${_(e).length}, minmax(0, 1fr))`},children:[(0,G.jsx)(`span`,{}),_(e).map(e=>(0,G.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-bambu-gray`,children:e.label},e.extruder)),p.diameters.map(n=>(0,G.jsxs)(y.Fragment,{children:[(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray`,children:[n,`mm`]}),_(e).map(r=>{let i=t.filter(e=>(e.extruder_id??0)===r.extruder&&((e.nozzle_diameter??``).trim()||`0.4`)===n),o=eU(e.printer.id,r.extruder,n),s=a.get(o);if(i.length===0)return(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray/50 px-2 py-1.5`,title:d(`inventory.noKProfilesMatch`),children:`—`},o);let c=_1e(e,r.extruder),l=h9(s?.nozzle_id),u=!!(c&&l&&c!==l);return(0,G.jsxs)(`select`,{title:u?d(`inventory.kProfileFlowMismatch`,{profile:g9(l),fitted:g9(c)}):void 0,"aria-label":`${e.printer.name} ${r.label} ${n}mm`,value:s?String(s.cali_idx):``,onChange:t=>{let a=i.find(e=>String(e.cali_idx)===t.target.value)??null;S(e.printer.id,r.extruder,n,a)},className:`min-w-0 px-2 py-1.5 bg-bambu-dark-secondary border rounded-lg text-sm text-white focus:outline-none focus:border-bambu-green ${u?`border-amber-500/60`:`border-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:d(`inventory.kProfileNotSet`)}),i.map(e=>{let t=g9(h9(e.nozzle_id));return(0,G.jsx)(`option`,{value:e.cali_idx,children:`${t?`[${t}] `:``}${e.name||e.filament_id} K=${e.k_value.toFixed(3)}`},e.cali_idx)})]},o)})]},n))]}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-1`,children:d(`inventory.printerOffline`)})]},e.printer.id)}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic`,children:d(`inventory.selectMaterialFirst`)})]})]})})]})]})}function x1e(e){let t=rp(e);return t?t.toLocaleDateString(`en-GB`,{day:`2-digit`,month:`2-digit`,year:`2-digit`})+` `+t.toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`}):``}var S1e={completed:`text-bambu-green`,failed:`text-red-700 dark:text-red-400`,aborted:`text-yellow-700 dark:text-yellow-400`};function C1e({spoolId:e}){let{t}=U(),n=co(),{showToast:r}=qd(),{data:i,isLoading:a}=K({queryKey:[`spool-usage`,e],queryFn:()=>Z.getSpoolUsageHistory(e)}),o=q({mutationFn:()=>Z.clearSpoolUsageHistory(e),onSuccess:()=>{n.invalidateQueries({queryKey:[`spool-usage`,e]}),r(t(`inventory.historyCleared`),`success`)}});return a?(0,G.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,G.jsx)(Y,{className:`w-5 h-5 animate-spin text-bambu-green`})}):!i||i.length===0?(0,G.jsxs)(`div`,{className:`text-center py-4 text-bambu-gray text-sm`,children:[(0,G.jsx)(js,{className:`w-5 h-5 mx-auto mb-2 opacity-50`}),t(`inventory.noUsageHistory`)]}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-medium text-white`,children:t(`inventory.usageHistory`)}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>o.mutate(),disabled:o.isPending,className:`text-xs text-bambu-gray hover:text-red-700 dark:hover:text-red-400`,children:[(0,G.jsx)(Pu,{className:`w-3 h-3 mr-1`}),t(`inventory.clearHistory`)]})]}),(0,G.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-1`,children:i.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded bg-bambu-dark/50 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:x1e(e.created_at)}),e.print_name&&(0,G.jsx)(`span`,{className:`text-white ml-2 truncate`,title:e.print_name,children:e.print_name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0 ml-2`,children:[(0,G.jsxs)(`span`,{className:`text-white font-medium`,children:[e.weight_used.toFixed(1),`g`]}),(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`(`,e.percent_used,`%)`]}),(0,G.jsx)(`span`,{className:S1e[e.status]||`text-bambu-gray`,children:e.status})]})]},e.id))})]})}var w1e={tag_uid:null,tray_uuid:null,tag_type:null,data_origin:null};function T1e({isOpen:e,onClose:t,spool:n,mode:r,printersWithCalibrations:i=[],currencySymbol:a,onSpoolsCreated:o,spoolmanMode:s=!1,spoolsQueryKey:c=[`inventory-spools`]}){let{t:l}=U(),u=co(),{showToast:d}=qd(),f=()=>b6(u,c),p=r===`edit`,m=r===`copy`,[h,g]=(0,y.useState)(f9),[_,v]=(0,y.useState)({}),[b,x]=(0,y.useState)(`filament`),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(1),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)([]),[I,L]=(0,y.useState)(new Set),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)([]),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)([]),[ie,ae]=(0,y.useState)([]),[oe,se]=(0,y.useState)([]),[H,ce]=(0,y.useState)([]),[le,ue]=(0,y.useState)([]),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(new Map),[he,ge]=(0,y.useState)(new Map),[_e,ve]=(0,y.useState)(``),ye=i.length>0?i:le,be=pe.size+he.size,{data:xe=[],isLoading:Se,error:Ce}=K({queryKey:[`spoolman-inventory-filaments`],queryFn:()=>Z.getSpoolmanInventoryFilaments(),enabled:s&&e,staleTime:6e4,retry:!1});(0,y.useEffect)(()=>{ce(XH())},[]),(0,y.useEffect)(()=>{let t=!1;return e&&((async()=>{N(!0);try{let[e,n]=await Promise.allSettled([(async()=>(await Z.getCloudStatus()).is_authenticated?{connected:!0,presets:await Z.getFilamentPresets()}:{connected:!1,presets:[]})(),(async()=>(await Z.orcaCloudStatus()).connected?{connected:!0,presets:(await Z.orcaCloudListProfiles()).filament}:{connected:!1,presets:[]})()]);if(t)return;let r=e.status===`fulfilled`&&e.value.connected,i=n.status===`fulfilled`&&n.value.connected,a=e.status===`fulfilled`?e.value.presets:[],o=n.status===`fulfilled`?n.value.presets:[];j(r||i),F([...a,...o]),L(new Set(o.map(e=>e.setting_id)))}catch(e){if(t)return;console.error(`Failed to fetch cloud presets:`,e),j(!1)}finally{t||N(!1)}})(),s||Z.getSpoolCatalog().then(V).catch(console.error),Z.getColorCatalog().then(se).catch(console.error),Z.getLocalPresets().then(e=>re(e.filament)).catch(console.error),Z.getBuiltinFilaments().then(ae).catch(console.error),Z.getLocations().then(e=>te(e.map(e=>({id:e.id,name:e.name})))).catch(console.error),i.length===0&&(async()=>{fe(!0);try{let e=await Z.getPrinters(),n=await Promise.all(e.map(e=>Z.getPrinterStatus(e.id).catch(()=>null))),r=await Promise.all(e.map(async(e,t)=>{let r=n[t],i=r?.connected??!1,a=[];return i&&(a=await UH(e.id,r)),{printer:{...e,connected:i},calibrations:a,nozzles:r?.nozzles}}));t||ue(r)}catch(e){console.error(`Failed to fetch printer calibrations:`,e)}finally{t||fe(!1)}})()),()=>{t=!0}},[e,i.length]);let we=(0,y.useMemo)(()=>KH(P,new Set,ne,ie,I),[P,ne,ie,I]),Te=(0,y.useMemo)(()=>{let e=GH(P,ne),t=oe.map(e=>e.manufacturer?.trim()).filter(e=>!!e),n=new Set([...e,...t]);return Array.from(n).sort((e,t)=>e.localeCompare(t))},[P,ne,oe]),Ee=(0,y.useMemo)(()=>{let e=oe.map(e=>e.material?.trim()).filter(e=>!!e),t=new Set([...IH,...e]);return Array.from(t).sort((e,t)=>e.localeCompare(t))},[oe]),De=(0,y.useMemo)(()=>{let e=[];for(let t of oe){let n=t.manufacturer?.trim(),r=t.material?.trim();n&&r&&e.push({brand:n,material:r})}for(let t of P){let n=WH(t.name);n.brand&&n.material&&e.push({brand:n.brand,material:n.material})}for(let t of ne){let n=WH(t.name),r=t.filament_vendor?.trim()||n.brand,i=n.material;r&&i&&e.push({brand:r,material:i})}return e},[P,oe,ne]),Oe=(0,y.useMemo)(()=>{let e=new Map;for(let t of De){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(n)||e.set(n,new Set),e.get(n).add(r)}return e},[De]),ke=(0,y.useMemo)(()=>{let e=new Map;for(let t of De){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(r)||e.set(r,new Set),e.get(r).add(n)}return e},[De]),Ae=(0,y.useMemo)(()=>JH(Te,h.brand),[Te,h.brand]),je=(0,y.useMemo)(()=>JH(Ee,h.material),[Ee,h.material]),Me=(0,y.useMemo)(()=>YH(Ae,h.material,ke),[Ae,h.material,ke]),Ne=(0,y.useMemo)(()=>YH(je,h.brand,Oe),[je,h.brand,Oe]),Pe=(0,y.useMemo)(()=>qH(h.slicer_filament,we),[h.slicer_filament,we]);(0,y.useEffect)(()=>{if(e){if(n){let e=n.rgba&&/^[0-9A-Fa-f]{8}$/.test(n.rgba)?n.rgba:`808080FF`;if(g({material:n.material||``,subtype:n.subtype||``,brand:n.brand||``,color_name:n.color_name_is_synthesized?``:n.color_name||``,rgba:e,extra_colors:n.extra_colors||``,effect_type:n.effect_type||``,label_weight:n.label_weight||1e3,core_weight:n.core_weight||250,core_weight_catalog_id:n.core_weight_catalog_id??null,weight_used:m?0:n.weight_used||0,slicer_filament:n.slicer_filament||``,note:n.note||``,cost_per_kg:n.cost_per_kg??null,category:n.category||``,low_stock_threshold_pct:n.low_stock_threshold_pct??null,location_id:n.location_id??null,spoolman_filament_id:null}),z(n.slicer_filament_name||n.slicer_filament||``),n.k_profiles&&n.k_profiles.length>0){let e=new Map;for(let t of n.k_profiles){if(t.cali_idx===null||t.cali_idx===void 0)continue;let n=(t.nozzle_diameter||``).trim()||`0.4`,r=t.extruder??0;e.set(eU(t.printer_id,r,n),{cali_idx:t.cali_idx,filament_id:``,setting_id:t.setting_id||``,name:t.name||``,k_value:t.k_value,n_coef:0,extruder_id:r,nozzle_diameter:n,nozzle_id:t.nozzle_type||``})}me(e)}else me(new Map)}else g(f9),z(``),me(new Map);D(!1),k(1),v({}),x(`filament`),ve(``),ge(new Map),C(!1),T(!1)}},[e,n,r,m]),(0,y.useEffect)(()=>{if(!e||!n)return;let t=!1;return(s?Z.getSpoolmanFilamentPresets:Z.getSpoolFilamentPresets)(n.id).then(e=>{if(t)return;let n=new Map;for(let t of e)n.set(tU(t.printer_model,t.nozzle_diameter||``),{code:t.slicer_filament||``,name:t.slicer_filament_name||``});ge(n)}).catch(e=>{t||(console.error(`Failed to load filament preset overrides:`,e),d(l(`inventory.filamentPresetsLoadFailed`),`warning`))}),()=>{t=!0}},[e,n?.id,s]),(0,y.useEffect)(()=>{if(!e||!n||w||h.location_id!=null)return;let t=n.storage_location?.trim();if(!t||ee.length===0)return;let r=ee.find(e=>e.name.toLowerCase()===t.toLowerCase());r&&g(e=>e.location_id===r.id?e:{...e,location_id:r.id})},[e,n,ee,h.location_id,w]);let Fe=(e,t)=>{let n=o1e.has(e);s&&n&&h.spoolman_filament_id!==null&&d(l(`inventory.spoolmanFilamentUnlinked`),`info`),g(r=>({...r,[e]:t,...s&&n&&r.spoolman_filament_id!==null?{spoolman_filament_id:null}:{}})),e===`weight_used`&&C(!0),e===`location_id`&&T(!0),_[e]&&v(t=>({...t,[e]:void 0}))},Ie=e=>{let t=e.material||``,n=e.name||``,r=t&&n.startsWith(t)?n.slice(t.length).trim():n,i=(e.color_hex??``).replace(`#`,``).toUpperCase(),a=/^[0-9A-F]{6}(?:[0-9A-F]{2})?$/.test(i)?i:`808080`,o=a.length===8?a:`${a}FF`;g(n=>({...n,spoolman_filament_id:e.id,material:t,subtype:r,brand:e.vendor?.name||``,rgba:o,color_name:e.color_name||``,label_weight:e.weight??n.label_weight})),d(l(`inventory.spoolmanFilamentSelected`),`success`)},Le=e=>{ce(t=>ZH(e,t))},Re=q({mutationFn:e=>s?Z.createSpoolmanInventorySpool(e):Z.createSpool(e),onSuccess:async e=>{e?.id&&!await Ze(e.id)||(await f(),o&&o([e]),d(l(`inventory.spoolCreated`),`success`),t())},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),ze=q({mutationFn:({data:e,qty:t})=>s?Z.bulkCreateSpoolmanInventorySpools(e,t):Z.bulkCreateSpools(e,t),onSuccess:async e=>{let n=s&&`created`in e?e:null,r=n?n.created:e;if(pe.size>0||he.size>0)for(let e of r)await Ze(e.id);await f(),o&&o(r),n&&n.failed_count>0?d(l(`inventory.spoolsPartiallyCreated`,{created:r.length,total:n.requested_count}),`warning`):d(l(`inventory.spoolsCreated`,{count:r.length}),`success`),t()},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),Be=q({mutationFn:e=>s?Z.updateSpoolmanInventorySpool(n.id,e):Z.updateSpool(n.id,e),onSuccess:async()=>{n?.id&&!await Ze(n.id)||(await f(),d(l(`inventory.spoolUpdated`),`success`),t())},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.saveFailed`),`error`)}}),Ve=q({mutationFn:()=>s?Z.updateSpoolmanInventorySpool(n.id,w1e):Z.updateSpool(n.id,w1e),onSuccess:async()=>{await f(),d(l(`inventory.rfidCleared`,`RFID tag cleared`),`success`),t()},onError:e=>{e instanceof sd&&e.status===503?d(l(`inventory.spoolmanUnreachable`),`error`):d(l(`inventory.tagClearFailed`),`error`)}}),{data:He}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),enabled:e&&p&&!s}),{data:Ue}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e&&p&&s}),We=(()=>{if(n)return s?Ue?.find(e=>e.spoolman_spool_id===n.id):He?.find(e=>e.spool_id===n.id)})(),{data:Ge}=K({queryKey:[`inventory-spools`],queryFn:()=>Z.getSpools(!0),enabled:e}),{data:Ke}=K({queryKey:[`settings`],queryFn:Z.getSettings,enabled:e}),{data:qe}=K({queryKey:[`slicerPrinterModels`],queryFn:Z.getSlicerPrinterModels,enabled:e,staleTime:1/0}),Je=(()=>{let e=new Set;for(let t of Ge??[]){let n=t.category?.trim();n&&e.add(n)}return Array.from(e).sort((e,t)=>e.localeCompare(t))})(),Ye=Ke?.low_stock_threshold??20,Xe=q({mutationFn:async()=>{if(!We)throw Error(`No assignment`);if(s){if(!n)throw Error(`No spool`);await Z.unassignSpoolmanSlot(n.id);return}await Z.unassignSpool(We.printer_id,We.ams_id,We.tray_id)},onSuccess:async()=>{s?(await u.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),await u.invalidateQueries({queryKey:[`spoolman-slot-assignments`]})):await u.invalidateQueries({queryKey:[`spool-assignments`]}),d(l(`inventory.unassignSuccess`,`Spool unassigned`),`success`),t()},onError:e=>{d(e.message,`error`)}}),Ze=async e=>{let t=s?Z.saveSpoolmanKProfiles:Z.saveSpoolKProfiles,n=s?Z.saveSpoolmanFilamentPresets:Z.saveSpoolFilamentPresets,r=[];for(let[e,t]of pe){let[n,i,a]=e.split(`:`);r.push({printer_id:parseInt(n),extruder:parseInt(i),nozzle_diameter:a||`0.4`,nozzle_type:h9(t.nozzle_id),k_value:t.k_value,name:t.name||null,cali_idx:t.cali_idx,setting_id:t.setting_id||null})}let i=[];for(let[e,t]of he){let{model:n,diameter:r}=xke(e);n&&i.push({printer_model:n,nozzle_diameter:r,slicer_filament:t.code||null,slicer_filament_name:t.name||null})}try{await t(e,r)}catch(e){return console.error(`Failed to save K-profiles:`,e),d(l(`inventory.kProfileSaveFailed`),`warning`),!1}try{await n(e,i)}catch(e){return console.error(`Failed to save filament preset overrides:`,e),d(l(`inventory.filamentPresetSaveFailed`),`warning`),!1}return!0};if((0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let Qe=()=>{let e=s1e(h,E,s,r);if(!e.isValid){v(e.errors),(e.errors.slicer_filament||e.errors.material||e.errors.brand||e.errors.subtype)&&x(`filament`);return}let t=Pe?.displayName||R||null,n={material:h.material||null,subtype:h.subtype||null,brand:h.brand||null,color_name:h.color_name||null,rgba:h.rgba||null,extra_colors:h.extra_colors||null,effect_type:h.effect_type||null,label_weight:h.label_weight,...s?{}:{core_weight:h.core_weight,core_weight_catalog_id:h.core_weight_catalog_id},slicer_filament:h.slicer_filament||null,slicer_filament_name:t,nozzle_temp_min:null,nozzle_temp_max:null,note:h.note||null,cost_per_kg:h.cost_per_kg,category:h.category.trim()||null,low_stock_threshold_pct:h.low_stock_threshold_pct,...s?{spoolman_filament_id:h.spoolman_filament_id}:{}};(!p||S)&&(n.weight_used=h.weight_used),(!p||w)&&(n.location_id=h.location_id),p?Be.mutate(n):O>1?ze.mutate({data:n,qty:O}):Re.mutate(n)},$e=Re.isPending||ze.isPending||Be.isPending||Ve.isPending||Xe.isPending;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-5xl mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`h2`,{className:`text-lg font-semibold text-white flex items-baseline gap-2`,children:[l(p?`inventory.editSpool`:m?`inventory.copySpool`:`inventory.addSpool`),p&&n&&(0,G.jsxs)(`span`,{className:`text-sm font-mono text-bambu-gray`,children:[`#`,n.id]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),r===`create`&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-2 border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-amber-600 dark:text-amber-400`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:l(`inventory.quickAdd`)})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{D(!E),E||x(`filament`)},className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors ${E?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform ${E?`translate-x-4`:`translate-x-0.5`}`})})]}),(0,G.jsxs)(`div`,{className:`flex border-b border-bambu-dark-tertiary flex-shrink-0`,children:[(0,G.jsxs)(`button`,{onClick:()=>x(`filament`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`filament`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(Go,{className:`w-4 h-4`}),l(`inventory.filamentInfoTab`)]}),!E&&(0,G.jsxs)(`button`,{onClick:()=>x(`appearance`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`appearance`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(wl,{className:`w-4 h-4`}),l(`inventory.colorAndCostTab`)]}),!E&&(0,G.jsxs)(`button`,{onClick:()=>x(`printers`),className:`flex-1 px-4 py-2.5 text-sm font-medium flex items-center justify-center gap-2 transition-colors ${b===`printers`?`text-bambu-green border-b-2 border-bambu-green`:`text-bambu-gray hover:text-white`}`,children:[(0,G.jsx)(id,{className:`w-4 h-4`}),l(`inventory.printersTab`),be>0&&(0,G.jsx)(`span`,{className:`text-xs px-1.5 py-0.5 rounded-full bg-bambu-green/20 text-bambu-green`,children:be})]})]}),(0,G.jsx)(`div`,{className:`p-4 overflow-y-auto flex-1`,style:{scrollbarGutter:`stable`},children:b===`filament`?(0,G.jsxs)(`div`,{className:`space-y-6`,children:[s&&!p&&(0,G.jsx)(`div`,{children:Ce?(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-400 px-1`,children:l(`inventory.spoolmanCatalogLoadFailed`)}):(0,G.jsx)(g1e,{filaments:xe,isLoading:Se,selectedId:h.spoolman_filament_id,onSelect:Ie})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.filamentInfo`)}),(0,G.jsx)(d1e,{formData:h,updateField:Fe,cloudAuthenticated:A,loadingCloudPresets:M,presetInputValue:R,setPresetInputValue:z,selectedPresetOption:Pe,filamentOptions:we,availableBrands:Ae,availableMaterials:je,suggestedBrands:Me,suggestedMaterials:Ne,quickAdd:E,detailsRequired:!E&&!s&&r===`create`,quantity:O,onQuantityChange:k,errors:_})]})]}):b===`appearance`?(0,G.jsxs)(`div`,{className:`space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.color`)}),(0,G.jsx)(p1e,{formData:h,updateField:Fe,recentColors:H,onColorUsed:Le,catalogColors:oe})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-bambu-gray uppercase tracking-wide mb-3`,children:l(`inventory.additional`)}),(0,G.jsx)(h1e,{formData:h,updateField:Fe,spoolCatalog:B,currencySymbol:a,availableCategories:Je,availableLocations:ee,onCreateLocation:async e=>{try{let t=await Z.createLocation({name:e});return te(e=>[...e,{id:t.id,name:t.name}].sort((e,t)=>e.name.localeCompare(t.name))),await y6(u),{id:t.id,name:t.name}}catch(e){return console.error(e),d((e instanceof Error?e.message:l(`locations.saveFailed`))||l(`locations.saveFailed`),`error`),null}},globalLowStockThreshold:Ye,spoolmanMode:s})]}),p&&n&&!s&&(0,G.jsx)(`div`,{children:(0,G.jsx)(C1e,{spoolId:n.id})})]}):(0,G.jsx)(b1e,{formData:h,printersWithCalibrations:ye,filamentOptions:we,modelPresets:he,setModelPresets:ge,selectedProfiles:pe,setSelectedProfiles:me,selectedGroupId:_e,setSelectedGroupId:ve,printerModels:qe,isLoading:de})}),(0,G.jsxs)(`div`,{className:`flex gap-2 p-4 border-t border-bambu-dark-tertiary flex-shrink-0`,children:[p&&(0,G.jsxs)(`div`,{className:`flex gap-2 mr-auto`,children:[(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Ve.mutate(),disabled:$e||!n?.tag_uid,children:[(0,G.jsx)(Eu,{className:`w-4 h-4`}),l(`inventory.clearRfid`,`Clear RFID Tag`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>Xe.mutate(),disabled:$e||!We,children:[(0,G.jsx)(Bu,{className:`w-4 h-4`}),l(`inventory.unassignSpool`,`Unassign`)]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:t,children:l(`common.cancel`)}),(0,G.jsx)(Q,{onClick:Qe,disabled:$e,children:$e?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),l(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),l(p?`common.save`:m?`inventory.copySpool`:`inventory.addSpool`)]})})]})]})]})]})}var E1e=[{value:`ams_holder_74x33`,i18nKey:`amsHolderSmall`,fallbackLabel:`AMS holder — small (74 × 33 mm)`,fallbackHint:`Single label per page; matches the printable label from MakerWorld model 752566 (AMS Filament Label Holder).`},{value:`ams_holder_75x55`,i18nKey:`amsHolderLarge`,fallbackLabel:`AMS holder — large (75 × 55 mm)`,fallbackHint:`Single label per page; fits the cardstock-insert variant of the AMS Filament Label Holder. Roomy enough for swatch, brand, material, ID, and QR code.`},{value:`box_40x30`,i18nKey:`box40x30`,fallbackLabel:`Box label (40 × 30 mm)`,fallbackHint:`Single label per page; common DK/Brother roll size, good for filament-bag and storage-bin labels.`},{value:`box_62x29`,i18nKey:`box`,fallbackLabel:`Box label (62 × 29 mm)`,fallbackHint:`Single label per page; sized for Brother PT/QL and Dymo small labels.`},{value:`avery_l7160`,i18nKey:`averyL7160`,fallbackLabel:`Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)`,fallbackHint:`EU sheet stock; 21 labels per A4 page.`},{value:`avery_5160`,i18nKey:`avery5160`,fallbackLabel:`Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)`,fallbackHint:`US sheet stock; 30 labels per Letter page.`}],_9={avery_l7160:21,avery_5160:30},v9=Math.max(...Object.values(_9));function D1e(e){let t=window.URL.createObjectURL(e);if(!window.open(t,`_blank`)){let e=document.createElement(`a`);e.href=t,e.download=`bambuddy-labels.pdf`,document.body.appendChild(e),e.click(),document.body.removeChild(e)}setTimeout(()=>window.URL.revokeObjectURL(t),6e4)}function O1e(e){return Mf(e)}function k1e(e){return`${e.color_name??`${e.material}${e.subtype?` ${e.subtype}`:``}`}${e.brand?` · ${e.brand}`:``}`}function A1e(e){return[e.color_name,e.material,e.subtype,e.brand,`#${e.id}`].filter(Boolean).join(` `).toLowerCase()}function j1e(e){if(!e)return[1,0];let t=e.replace(/^#/,``).slice(0,6);if(t.length!==6)return[1,0];let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16);if([n,r,i].some(Number.isNaN))return[1,0];let a=n/255,o=r/255,s=i/255,c=Math.max(a,o,s),l=Math.min(a,o,s),u=(c+l)/2,d=c-l;if((d===0?0:d/(1-Math.abs(2*u-1)))<.1)return[1,u];let f=0;return f=c===a?(o-s)/d%6:c===o?(s-a)/d+2:(a-o)/d+4,f*=60,f<0&&(f+=360),[0,f]}function M1e({isOpen:e,onClose:t,availableSpools:n,initialSelectedIds:r,spoolmanMode:i}){let{t:a}=U(),{showToast:o}=qd(),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(new Set),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(`id`),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(`1`);(0,y.useEffect)(()=>{if(e){let e=new Set(n.map(e=>e.id));u(new Set(r.filter(t=>e.has(t)))),f(``),m(``),g(`id`),v(!1),x(`1`),c(null)}},[e]);let S=(0,y.useMemo)(()=>{let e=[...n];return h===`color`?(e.sort((e,t)=>{let n=j1e(e.rgba),r=j1e(t.rgba);return n[0]===r[0]?n[1]===r[1]?e.id-t.id:n[1]-r[1]:n[0]-r[0]}),e):(e.sort((e,t)=>e.id-t.id),e)},[n,h]),C=(0,y.useMemo)(()=>{let e=new Set;for(let t of S)t.material&&e.add(t.material.toUpperCase());return[...e].sort()},[S]),w=(0,y.useMemo)(()=>{let e=d.trim().toLowerCase();return S.filter(t=>!(p&&(t.material||``).toUpperCase()!==p||e&&!A1e(t).includes(e)))},[S,d,p]),T=w.length>0&&w.every(e=>l.has(e.id));if(!e)return null;let E=l.size,D=E===0,O=Number(b),k=Number.isInteger(O)&&O>=1&&O<=v9;function A(e){u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function j(){u(e=>{let t=new Set(e);for(let e of w)t.add(e.id);return t})}function M(){u(e=>{let t=new Set(e);for(let e of w)t.delete(e.id);return t})}function N(){u(new Set)}async function P(e){if(D||s)return;let n=_9[e];if(n!==void 0&&(!k||O>n)){o(a(`inventory.labels.startingPositionRangeError`,`Starting position must be between 1 and {{capacity}} for this sheet.`,{capacity:n}),`error`);return}let r=S.filter(e=>l.has(e.id)).map(e=>e.id);c(e);try{D1e(i?await Z.printSpoolmanSpoolLabels({spool_ids:r,template:e,monochrome:_,starting_position:n===void 0?1:O}):await Z.printSpoolLabels({spool_ids:r,template:e,monochrome:_,starting_position:n===void 0?1:O})),t()}catch(e){o(a(`inventory.labels.error`,`Could not generate labels: {{msg}}`,{msg:e instanceof Error?e.message:String(e)}),`error`)}finally{c(null)}}return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start sm:items-center justify-center p-4 overflow-y-auto`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:t}),(0,G.jsxs)(`div`,{"data-testid":`label-template-picker-panel`,className:`relative w-full max-w-3xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl max-h-[90vh] overflow-clip flex flex-col my-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Rl,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:a(`inventory.labels.title`,`Print spool labels`)}),E>0&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,a(`inventory.labels.selectedCount`,`{{count}} selected`,{count:E}),`)`]})]}),(0,G.jsx)(`button`,{onClick:t,className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,"aria-label":a(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-2 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray pointer-events-none`}),(0,G.jsx)(`input`,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:a(`inventory.labels.searchPlaceholder`,`Search name, brand, or #ID`),className:`w-full pl-9 pr-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray focus:outline-none focus:border-bambu-green`})]}),C.length>1&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:a(`inventory.labels.filterByMaterial`,`Material:`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(``),className:`px-2 py-0.5 text-xs rounded-full border transition ${p===``?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.allMaterials`,`All`)}),C.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>m(e),className:`px-2 py-0.5 text-xs rounded-full border transition ${p===e?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:e},e))]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray mr-1`,children:a(`inventory.labels.sortBy.label`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(`id`),className:`px-2 py-0.5 text-xs rounded-full border transition ${h===`id`?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.sortBy.id`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(`color`),className:`px-2 py-0.5 text-xs rounded-full border transition ${h===`color`?`bg-bambu-green text-bambu-dark border-bambu-green`:`bg-bambu-dark text-bambu-gray border-bambu-dark-tertiary hover:border-bambu-gray`}`,children:a(`inventory.labels.sortBy.color`)})]})]}),(0,G.jsxs)(`div`,{className:`px-4 pt-3 pb-2 flex items-center justify-between gap-3 flex-wrap`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:a(`inventory.labels.pickSpools`,`Pick which spools to print labels for:`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 text-xs`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:T?M:j,disabled:w.length===0,className:`text-bambu-green hover:underline disabled:opacity-50 disabled:no-underline disabled:cursor-not-allowed`,children:T?a(`inventory.labels.deselectVisible`,`Deselect visible`):a(`inventory.labels.selectVisible`,`Select all visible ({{count}})`,{count:w.length})}),(0,G.jsx)(`button`,{type:`button`,onClick:N,disabled:E===0,className:`text-bambu-gray hover:text-white hover:underline disabled:opacity-50 disabled:no-underline disabled:cursor-not-allowed`,children:a(`inventory.labels.clearAll`,`Clear all`)})]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-2 pb-2 min-h-0`,children:w.length===0?(0,G.jsx)(`div`,{className:`text-center text-sm text-bambu-gray py-6`,children:S.length===0?a(`inventory.labels.noSpoolsToShow`,`No spools to show. Adjust your filter and try again.`):a(`inventory.labels.noMatches`,`No spools match the current search or filter.`)}):(0,G.jsx)(`ul`,{className:`space-y-0.5`,children:w.map(e=>{let t=l.has(e.id);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`label`,{className:`flex items-center gap-3 px-2 py-1.5 rounded hover:bg-bambu-dark-tertiary/50 cursor-pointer`,children:[t?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`input`,{type:`checkbox`,checked:t,onChange:()=>A(e.id),className:`sr-only`}),(0,G.jsx)(`span`,{className:`w-4 h-4 rounded border border-black/20 shrink-0`,style:O1e(e.rgba)}),(0,G.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-sm text-white`,children:k1e(e)}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray shrink-0`,children:[`#`,e.id]})]})},e.id)})})}),(0,G.jsxs)(`div`,{className:`px-4 pt-2 pb-1 border-t border-bambu-dark-tertiary space-y-2`,children:[(0,G.jsxs)(`label`,{className:`inline-flex items-center gap-2 cursor-pointer select-none`,children:[_?(0,G.jsx)(vu,{className:`w-4 h-4 text-bambu-green shrink-0`}):(0,G.jsx)(bu,{className:`w-4 h-4 text-bambu-gray shrink-0`}),(0,G.jsx)(`input`,{type:`checkbox`,checked:_,onChange:e=>v(e.target.checked),className:`sr-only`}),(0,G.jsx)(`span`,{className:`text-sm text-white`,children:a(`inventory.labels.monochrome`,`Monochrome (black & white printer)`)}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:a(`inventory.labels.monochromeHint`,`Drops the colour swatch and widens the text`)})]}),(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`label`,{htmlFor:`label-starting-position`,className:`text-sm text-white whitespace-nowrap pt-1.5`,children:a(`inventory.labels.startingPosition`,`Starting label position`)}),(0,G.jsx)(`input`,{id:`label-starting-position`,"data-testid":`label-starting-position`,type:`number`,min:1,max:v9,step:1,value:b,onChange:e=>x(e.target.value),"aria-describedby":`label-starting-position-help`,className:`w-20 px-2 py-1 bg-bambu-dark border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`}),(0,G.jsxs)(`div`,{id:`label-starting-position-help`,className:`text-xs text-bambu-gray pt-1.5`,children:[(0,G.jsx)(`div`,{children:a(`inventory.labels.startingPositionRange`,`Sheet templates only: L7160 supports 1–21; 5160 supports 1–30.`)}),(0,G.jsx)(`div`,{"data-testid":`label-starting-position-status`,className:k?``:`text-red-400`,children:k?O===1?a(`inventory.labels.startingPositionFirst`,`Printing starts at position 1.`):a(`inventory.labels.startingPositionSkipped`,`Positions 1 through {{lastPosition}} will be left blank on the first sheet.`,{lastPosition:O-1}):a(`inventory.labels.startingPositionInvalid`,`Enter a whole number from 1 to {{capacity}}.`,{capacity:v9})})]})]})]}),(0,G.jsx)(`div`,{className:`px-3 pt-1 pb-2 grid grid-cols-1 sm:grid-cols-2 gap-2`,children:E1e.map(e=>{let t=s===e.value,n=_9[e.value],r=n!==void 0&&(!k||O>n),i=a(`inventory.labels.templates.${e.i18nKey}.label`,e.fallbackLabel),o=r?a(`inventory.labels.startingPositionRangeError`,`Starting position must be between 1 and {{capacity}} for this sheet.`,{capacity:n}):a(`inventory.labels.templates.${e.i18nKey}.hint`,e.fallbackHint);return(0,G.jsxs)(`button`,{"data-testid":`print-labels-${e.value}`,disabled:D||s!==null||r,onClick:()=>P(e.value),title:`${i} — ${o}`,className:`w-full text-left p-2.5 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-green hover:bg-bambu-green/10 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-bambu-dark-tertiary disabled:hover:bg-bambu-dark transition flex items-center gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`div`,{className:`font-medium text-white text-sm truncate`,children:i}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-0.5 truncate`,children:o})]}),t&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin text-bambu-green shrink-0`})]},e.value)})}),(0,G.jsx)(`div`,{className:`flex justify-end gap-2 px-5 py-2 border-t border-bambu-dark-tertiary`,children:(0,G.jsx)(Q,{variant:`secondary`,onClick:t,disabled:s!==null,children:a(`common.cancel`,`Cancel`)})})]})]})}function N1e({onClose:e,onImported:t}){let{t:n}=U(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=(0,y.useRef)(null),g=async e=>{i(e),c(null),m(null),u(!0);try{c(await Z.importSpoolsCsvPreview(e))}catch(e){m(e instanceof Error?e.message:n(`inventory.csv.previewError`,`Could not read the CSV file`))}finally{u(!1)}},_=e=>{let t=e.target.files?.[0];t&&g(t)},v=e=>{e.preventDefault(),o(!1);let t=e.dataTransfer.files?.[0];t&&g(t)},b=async()=>{if(r){f(!0),m(null);try{t((await Z.importSpoolsCsv(r)).created)}catch(e){m(e instanceof Error?e.message:n(`inventory.csv.importError`,`Import failed`)),f(!1)}}},x=e=>e===`valid`?(0,G.jsx)(xs,{className:`w-4 h-4 text-green-500 flex-shrink-0`}):e===`error`?(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-500 flex-shrink-0`}):(0,G.jsx)(ws,{className:`w-4 h-4 text-bambu-gray flex-shrink-0`}),S=s?.valid_count??0;return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,children:(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg w-full max-w-3xl border border-bambu-dark-tertiary flex flex-col max-h-[90vh]`,children:[(0,G.jsxs)(`div`,{className:`p-4 border-b border-bambu-dark-tertiary flex items-center justify-between`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:n(`inventory.csv.modalTitle`,`Import spools from CSV`)}),(0,G.jsx)(`button`,{onClick:e,className:`p-1 hover:bg-bambu-dark rounded`,children:(0,G.jsx)(nd,{className:`w-5 h-5 text-bambu-gray`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto flex-1`,children:[(0,G.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),o(!0)},onDragLeave:e=>{e.preventDefault(),o(!1)},onDrop:v,onClick:()=>h.current?.click(),className:`border-2 border-dashed rounded-lg p-6 text-center cursor-pointer transition-colors ${a?`border-bambu-green bg-bambu-green/10`:`border-bambu-dark-tertiary hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Vu,{className:`w-9 h-9 mx-auto mb-2 ${a?`text-bambu-green`:`text-bambu-gray`}`}),r?(0,G.jsxs)(`p`,{className:`text-white font-medium flex items-center justify-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4`}),` `,r.name]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.csv.selectFile`,`Choose a CSV file or drag it here`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70 mt-1`,children:n(`inventory.csv.dragHint`,`Header: material (required), brand, subtype, color_name, rgba, …`)})]})]}),(0,G.jsx)(`input`,{ref:h,type:`file`,accept:`.csv,text/csv`,className:`hidden`,onChange:_}),l&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-bambu-gray py-4`,children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),n(`inventory.csv.parsing`,`Reading file…`)]}),p&&(0,G.jsxs)(`div`,{className:`p-3 bg-red-50 dark:bg-red-500/10 border border-red-300 dark:border-red-500/30 rounded-lg flex items-start gap-3`,children:[(0,G.jsx)(Ds,{className:`w-5 h-5 text-red-600 dark:text-red-400 mt-0.5 flex-shrink-0`}),(0,G.jsx)(`p`,{className:`text-sm text-red-700 dark:text-red-300 break-words`,children:p})]}),s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-sm`,children:[(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400`,children:n(`inventory.csv.validCount`,`{{count}} valid`,{count:s.valid_count})}),(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-red-50 dark:bg-red-500/10 text-red-700 dark:text-red-400`,children:n(`inventory.csv.errorCount`,`{{count}} error`,{count:s.error_count})}),(0,G.jsx)(`span`,{className:`px-2 py-1 rounded bg-bambu-dark text-bambu-gray`,children:n(`inventory.csv.skippedCount`,`{{count}} skipped`,{count:s.skipped_count})})]}),s.warnings.length>0&&(0,G.jsx)(`div`,{className:`p-3 bg-yellow-50 dark:bg-yellow-500/10 border border-yellow-300 dark:border-yellow-500/30 rounded-lg space-y-1`,children:s.warnings.map((e,t)=>(0,G.jsx)(`p`,{className:`text-xs text-yellow-700 dark:text-yellow-300`,children:e},t))}),s.rows.length>0&&(0,G.jsx)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:(0,G.jsx)(`div`,{className:`max-h-72 overflow-y-auto`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-bambu-dark sticky top-0`,children:(0,G.jsxs)(`tr`,{className:`text-left text-bambu-gray`,children:[(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colRow`,`Row`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colStatus`,`Status`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.material`,`Material`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.brand`,`Brand`)}),(0,G.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:n(`inventory.csv.colColor`,`Color`)})]})}),(0,G.jsx)(`tbody`,{children:s.rows.map(e=>(0,G.jsxs)(`tr`,{className:`border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`td`,{className:`px-3 py-2 text-bambu-gray`,children:e.row_number}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[x(e.status),e.status===`error`&&e.reason&&(0,G.jsx)(`span`,{className:`text-xs text-red-700 dark:text-red-400 break-words`,children:e.reason})]})}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:e.material||`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2 text-white`,children:e.brand||`—`}),(0,G.jsx)(`td`,{className:`px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.rgba&&(0,G.jsx)(`span`,{className:`inline-block w-4 h-4 rounded-full border border-bambu-dark-tertiary flex-shrink-0`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-white`,children:e.color_name||`—`}),e.resolved_color&&!e.cross_material_color&&(0,G.jsx)(`span`,{title:n(`inventory.csv.colorResolved`,`Color filled from catalog`),children:(0,G.jsx)(Yu,{className:`w-3.5 h-3.5 text-bambu-green flex-shrink-0`})}),e.cross_material_color&&(0,G.jsx)(`span`,{title:n(`inventory.csv.colorCrossMaterial`,`Color taken from a different material — no exact match in catalog`),children:(0,G.jsx)(Lu,{className:`w-3.5 h-3.5 text-yellow-500 flex-shrink-0`})}),e.duplicate_of_existing&&(0,G.jsx)(`span`,{title:n(`inventory.csv.duplicateExisting`,`A spool with this material, brand and color already exists — it will still be imported as a new spool`),children:(0,G.jsx)(Vs,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 flex-shrink-0`})})]})})]},e.row_number))})]})})})]})]}),(0,G.jsxs)(`div`,{className:`p-4 border-t border-bambu-dark-tertiary flex justify-end gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:e,disabled:d,children:n(`common.cancel`)}),(0,G.jsx)(Q,{onClick:b,disabled:!s||S===0||d,children:d?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),n(`inventory.csv.importing`,`Importing…`)]}):S>0?n(`inventory.csv.importValidRows`,`Import {{count}} valid rows`,{count:S}):n(`inventory.csv.noValidRows`,`No valid rows`)})]})]})})}var y9=[{id:`material`,type:`searchable`,labelKey:`inventory.material`},{id:`subtype`,type:`searchable`,labelKey:`inventory.subtype`},{id:`brand`,type:`searchable`,labelKey:`inventory.brand`},{id:`color_name`,type:`text`,labelKey:`inventory.colorName`},{id:`rgba`,type:`color`,labelKey:`inventory.color`,pattern:`^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$`},{id:`location_id`,type:`searchableClosed`,labelKey:`inventory.storageLocation`},{id:`slicer_filament_name`,type:`searchable`,labelKey:`inventory.slicerFilamentName`},{id:`slicer_filament`,type:`searchable`,labelKey:`inventory.slicerFilament`},{id:`cost_per_kg`,type:`number`,labelKey:`inventory.costPerKg`,min:0,step:.01},{id:`note`,type:`textarea`,labelKey:`inventory.note`},{id:`label_weight`,type:`number`,labelKey:`inventory.labelWeight`,min:1,step:1},{id:`core_weight`,type:`number`,labelKey:`inventory.coreWeight`,min:0,step:1},{id:`category`,type:`searchable`,labelKey:`inventory.category`},{id:`low_stock_threshold_pct`,type:`number`,labelKey:`inventory.lowStockThresholdOverride`,min:1,max:99,step:1}];function P1e({value:e,onChange:t,options:n,allowCustom:r,placeholderKey:i,disabled:a}){let{t:o}=U(),s=(0,y.useRef)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(``);(0,y.useEffect)(()=>{if(!c)return;let e=e=>{s.current&&!s.current.contains(e.target)&&(l(!1),d(``))},t=e=>{e.key===`Escape`&&(l(!1),d(``))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[c]);let f=c?u:n.find(t=>t.value===e)?.label??e,p=(0,y.useMemo)(()=>{if(!c)return n;let e=u.trim().toLowerCase();return e?n.filter(t=>t.label.toLowerCase().includes(e)||t.value.toLowerCase().includes(e)):n},[c,u,n]),m=c&&u.trim()&&!n.some(e=>e.value.toLowerCase()===u.trim().toLowerCase());return(0,G.jsxs)(`div`,{className:`relative`,ref:s,children:[(0,G.jsx)(`input`,{type:`text`,disabled:a,value:f,onChange:e=>{d(e.target.value),l(!0),r&&t(e.target.value)},onFocus:()=>{l(!0),d(``)},placeholder:i?o(i):void 0,className:`w-full px-3 py-2 pr-9 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`}),(0,G.jsx)(ps,{className:`absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50 pointer-events-none`}),c&&(0,G.jsxs)(`div`,{className:`absolute z-50 left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg max-h-64 overflow-y-auto`,children:[p.length===0&&!r&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-sm text-bambu-gray`,children:o(`inventory.noResults`)}),p.map(n=>(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary ${e===n.value?`bg-bambu-green/10 text-bambu-green`:`text-white`}`,onClick:()=>{t(n.value),l(!1),d(``)},children:n.label},n.value)),r&&m&&(0,G.jsx)(`button`,{type:`button`,className:`w-full px-3 py-2 text-left text-sm hover:bg-bambu-dark-tertiary text-bambu-green border-t border-bambu-dark-tertiary`,onClick:()=>{t(u.trim()),l(!1),d(``)},children:o(`inventory.bulk.useCustom`,{value:u.trim()})})]})]})}function b9(...e){let t=new Set;for(let n of e)for(let e of n){let n=e?.trim();n&&t.add(n)}return Array.from(t).sort((e,t)=>e.localeCompare(t))}function F1e({isOpen:e,selectedCount:t,isPending:n,availableLocations:r,availableMaterials:i,availableSubtypes:a,availableBrands:o,availableCategories:s,availableSlicerFilaments:c,availableSlicerFilamentNames:l,onClose:u,onApply:d}){let{t:f}=U(),{data:p=[]}=K({queryKey:[`bulk-edit-cloud-presets`],enabled:e,staleTime:300*1e3,queryFn:async()=>{let e=[];try{if((await Z.getCloudStatus()).is_authenticated){let t=await Z.getFilamentPresets();e.push(...t)}}catch{}try{if((await Z.orcaCloudStatus()).connected){let t=await Z.orcaCloudListProfiles();e.push(...t.filament)}}catch{}return e}}),{data:m}=K({queryKey:[`bulk-edit-local-presets`],enabled:e,staleTime:300*1e3,queryFn:Z.getLocalPresets}),{data:h=[]}=K({queryKey:[`builtin-filaments`],enabled:e,staleTime:300*1e3,queryFn:Z.getBuiltinFilaments}),g=(0,y.useMemo)(()=>KH(p,new Set,m?.filament??[],h),[p,m,h]),[_,v]=(0,y.useState)({}),b=(0,y.useMemo)(()=>b9(IH,i).map(e=>({value:e,label:e})),[i]),x=(0,y.useMemo)(()=>b9(RH,a).map(e=>({value:e,label:e})),[a]),S=(0,y.useMemo)(()=>b9(LH,o).map(e=>({value:e,label:e})),[o]),C=(0,y.useMemo)(()=>b9(s).map(e=>({value:e,label:e})),[s]),w=(0,y.useMemo)(()=>{let e=g.map(e=>({value:e.code,label:e.displayName})),t=c.filter(t=>!e.some(e=>e.value===t)).map(e=>({value:e,label:e}));return[...e,...t].sort((e,t)=>e.label.localeCompare(t.label))},[g,c]),T=(0,y.useMemo)(()=>{let e=g.map(e=>({value:e.displayName,label:e.displayName})),t=l.filter(t=>!e.some(e=>e.value===t)).map(e=>({value:e,label:e}));return[...e,...t].sort((e,t)=>e.label.localeCompare(t.label))},[g,l]),E=(0,y.useMemo)(()=>r.map(e=>({value:String(e.id),label:e.name})),[r]);if(!e)return null;let D=(e,t)=>{v(n=>({...n,[e]:t}))},O=e=>{v(t=>{let n={...t};return delete n[e],n})},k=(()=>{let e={};for(let t of y9){let n=_[t.id];if(n===void 0)continue;let r=typeof n==`string`?n.trim():n;if(!(r===``||r===null))if(t.type===`number`){let n=Number(r);Number.isFinite(n)&&(e[t.id]=n)}else if(t.id===`location_id`){let n=Number(r);Number.isFinite(n)&&n>0&&(e[t.id]=n)}else if(t.id===`rgba`){let n=String(r).replace(/^#/,``),i=n.length===6?`${n}FF`:n;/^[0-9A-Fa-f]{8}$/.test(i)&&(e[t.id]=i.toUpperCase())}else e[t.id]=String(r)}return e})(),A=Object.keys(k).length>0,j=y9.some(e=>{let t=_[e.id];return t===void 0||t.trim()===``?!1:k[e.id]===void 0}),M=e=>e===`material`?b:e===`subtype`?x:e===`brand`?S:e===`category`?C:e===`slicer_filament`?w:e===`slicer_filament_name`?T:e===`location_id`?E:[],N=e=>{let t=_[e.id]??``;if(e.type===`searchable`||e.type===`searchableClosed`)return(0,G.jsx)(P1e,{value:t,onChange:t=>{t===``?O(e.id):D(e.id,t)},options:M(e.id),allowCustom:e.type===`searchable`,disabled:n});if(e.type===`textarea`)return(0,G.jsx)(`textarea`,{disabled:n,value:t,onChange:t=>D(e.id,t.target.value),className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none resize-none min-h-[60px]`});if(e.type===`color`){let r=t.trim().replace(/^#/,``),i=r.length===6?`${r}FF`:r,a=t.trim()!==``&&!/^[0-9A-Fa-f]{8}$/.test(i);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,disabled:n,value:`#${(t||`808080`).replace(/^#/,``).slice(0,6)}`,onChange:t=>D(e.id,t.target.value.replace(/^#/,``).toUpperCase()),className:`h-9 w-12 rounded cursor-pointer`}),(0,G.jsx)(`input`,{type:`text`,disabled:n,value:t,onChange:t=>D(e.id,t.target.value.replace(/^#/,``).toUpperCase()),placeholder:`RRGGBB or RRGGBBAA`,className:`flex-1 px-3 py-2 bg-bambu-dark border rounded-lg text-white placeholder-bambu-gray/50 focus:outline-none ${a?`border-red-500 focus:border-red-500`:`border-bambu-dark-tertiary focus:border-bambu-green`}`,pattern:e.pattern})]}),a&&(0,G.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-400`,children:f(`inventory.bulk.invalidHex`)})]})}return(0,G.jsx)(`input`,{type:e.type===`number`?`number`:`text`,disabled:n,value:t,onChange:t=>D(e.id,t.target.value),min:e.min,max:e.max,step:e.step,className:`w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray/50 focus:border-bambu-green focus:outline-none`})};return(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50`,onClick:n?void 0:u,children:(0,G.jsxs)(`div`,{className:`w-full max-w-3xl bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg max-h-[90vh] flex flex-col`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-5 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:f(`inventory.bulk.editTitle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-0.5`,children:f(`inventory.bulk.editSubtitle`,{count:t})})]}),(0,G.jsx)(`button`,{onClick:u,disabled:n,className:`p-1 text-bambu-gray hover:text-white transition-colors`,"aria-label":f(`common.close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsx)(`p`,{className:`px-5 pt-4 text-xs text-bambu-gray`,children:f(`inventory.bulk.editHint`)}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto p-5 space-y-3`,children:y9.map(e=>{let t=_[e.id]!==void 0;return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 rounded-md p-2 transition-colors ${t?`bg-bambu-green/5 border border-bambu-green/30`:`border border-transparent`}`,children:[(0,G.jsx)(`div`,{className:`pt-2`,children:(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,checked:t,onChange:t=>{t.target.checked?D(e.id,``):O(e.id)},"aria-label":f(`inventory.bulk.toggleField`)})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-sm text-bambu-gray mb-1`,children:f(e.labelKey)}),N(e)]})]},e.id)})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 p-5 border-t border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:f(`inventory.bulk.changeCount`,{count:Object.keys(k).length})}),(0,G.jsxs)(`div`,{className:`ml-auto flex gap-2`,children:[(0,G.jsx)(Q,{variant:`secondary`,onClick:u,disabled:n,children:f(`common.cancel`)}),(0,G.jsx)(Q,{onClick:()=>d(k),disabled:!A||n||j,children:n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 mr-2 animate-spin`}),f(`inventory.bulk.applyPending`)]}):f(`inventory.bulk.applyButton`,{count:t})})]})]})]})})}function I1e(e){let t=e[0],n=0,r=0,i=0;for(let t of e)n+=t.label_weight,r+=t.weight_used,i+=t.core_weight;return{...t,label_weight:n,weight_used:r,core_weight:i}}function x9(e){let t=new Set;for(let n of e)if(typeof n==`string`){let e=n.trim();e&&t.add(e)}return Array.from(t).sort((e,t)=>e.localeCompare(t))}function L1e(e){return`${e.material}|${e.subtype||``}|${e.brand||``}|${e.color_name||``}|${e.rgba||``}|${e.extra_colors||``}|${e.effect_type||``}|${e.label_weight}`}var R1e=`bambuddy-inventory-columns`,S9=[{id:`id`,label:`#`,visible:!0},{id:`added_time`,label:`Added`,visible:!0},{id:`encode_time`,label:`Encoded`,visible:!1},{id:`last_used_time`,label:`Last Used`,visible:!1},{id:`rgba`,label:`Color`,visible:!0},{id:`material`,label:`Material`,visible:!0},{id:`subtype`,label:`Subtype`,visible:!0},{id:`color_name`,label:`Color Name`,visible:!1},{id:`brand`,label:`Brand`,visible:!0},{id:`slicer_filament`,label:`Slicer Filament`,visible:!1},{id:`location`,label:`Location`,visible:!0},{id:`storage_location`,label:`Storage Location`,visible:!1},{id:`temperature`,label:`Temperature`,visible:!1},{id:`humidity`,label:`Humidity`,visible:!1},{id:`battery`,label:`Battery`,visible:!1},{id:`label_weight`,label:`Label`,visible:!0},{id:`net`,label:`Net`,visible:!0},{id:`gross`,label:`Gross`,visible:!1},{id:`added_full`,label:`Full`,visible:!1},{id:`used`,label:`Used`,visible:!1},{id:`printed_total`,label:`Printed Total`,visible:!1},{id:`printed_since_weight`,label:`Printed Since Weight`,visible:!1},{id:`note`,label:`Note`,visible:!1},{id:`pa_k`,label:`PA(K)`,visible:!0},{id:`tag_id`,label:`Tag ID`,visible:!1},{id:`data_origin`,label:`Data Origin`,visible:!1},{id:`tag_type`,label:`Linked Tag Type`,visible:!1},{id:`stock`,label:`Stock`,visible:!1},{id:`remaining`,label:`Remaining`,visible:!0},{id:`spool_name`,label:`Spool`,visible:!1},{id:`cost_per_kg`,label:`Cost/kg`,visible:!1},{id:`weight_check`,label:`Weight Check`,visible:!1}];function z1e(){try{let e=localStorage.getItem(R1e);if(e){let t=JSON.parse(e),n=new Set(S9.map(e=>e.id)),r=new Set(t.map(e=>e.id)),i=[...t.filter(e=>n.has(e.id))];for(let e of S9){if(r.has(e.id))continue;let t=S9.indexOf(e),n=i.length;for(let e=t-1;e>=0;e--){let t=i.findIndex(t=>t.id===S9[e].id);if(t!==-1){n=t+1;break}}i.splice(n,0,e)}return i}}catch{}return S9.map(e=>({...e}))}function B1e(e){try{localStorage.setItem(R1e,JSON.stringify(e))}catch{}}function C9(e,t=!1){return t&&e>=1e3?`${(e/1e3).toFixed(1)}kg`:`${Math.round(e)}g`}var V1e={PLA:`bg-green-100 dark:bg-green-500/20 text-green-700 dark:text-green-400`,ABS:`bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400`,PETG:`bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,TPU:`bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,ASA:`bg-orange-100 dark:bg-orange-500/20 text-orange-700 dark:text-orange-400`,PA:`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`,PC:`bg-cyan-100 dark:bg-cyan-500/20 text-cyan-700 dark:text-cyan-400`,PET:`bg-sky-100 dark:bg-sky-500/20 text-sky-700 dark:text-sky-400`};function w9(e,t=`system`){if(!e)return`-`;let n=rp(e);return n?Yf(n,t):`-`}var H1e={id:()=>`#`,added_time:()=>`Added`,encode_time:()=>`Encoded`,last_used_time:()=>`Last Used`,rgba:e=>e(`inventory.color`),material:e=>e(`inventory.material`),subtype:e=>e(`inventory.subtype`),color_name:e=>e(`inventory.colorName`),brand:e=>e(`inventory.brand`),slicer_filament:e=>e(`inventory.slicerFilament`),location:()=>`Location`,storage_location:e=>e(`inventory.storageLocation`),temperature:e=>e(`inventory.temperature`),humidity:e=>e(`inventory.humidity`),battery:e=>e(`inventory.battery`),label_weight:e=>e(`inventory.labelWeight`),net:e=>e(`inventory.net`),gross:()=>`Gross`,added_full:()=>`Full`,used:e=>e(`inventory.weightUsed`),printed_total:()=>`Printed Total`,printed_since_weight:()=>`Printed Since Weight`,note:e=>e(`inventory.note`),pa_k:()=>`PA(K)`,tag_id:()=>`Tag ID`,data_origin:()=>`Data Origin`,tag_type:()=>`Linked Tag Type`,stock:e=>e(`inventory.stock`),remaining:e=>e(`inventory.remaining`),spool_name:e=>e(`inventory.spoolName`),cost_per_kg:e=>e(`inventory.costPerKg`),weight_check:e=>e(`inventory.weightCheck`)},T9={id:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm font-medium text-white`,children:e.id}),added_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:w9(e.created_at,t)}),encode_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:w9(e.encode_time,t)}),last_used_time:({spool:e,dateFormat:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.last_used?w9(e.last_used,t):`Never`}),rgba:({spool:e})=>(0,G.jsx)(`div`,{className:`flex items-center justify-center`,children:(0,G.jsx)(w8,{rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,effectSize:`table`,subtype:e.subtype})}),material:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:e.material}),subtype:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.subtype||`-`}),color_name:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:kf(e.color_name,e.rgba)||`-`}),brand:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.brand||`-`}),slicer_filament:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,title:e.slicer_filament||void 0,children:e.slicer_filament_name||e.slicer_filament||`-`}),location:({spool:e,assignmentMap:t})=>{let n=t[e.id];if(!n)return(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`});let r=n.printer_name||`Printer ${n.printer_id}`,i=n.ams_id===254||n.ams_id===255,a=!i&&n.ams_id>=128;return(0,G.jsxs)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-500/20 text-purple-700 dark:text-purple-400`,children:[r,` `,jp(n.ams_id,n.tray_id,a,i),n.ams_label?` (${n.ams_label})`:``]})},storage_location:({spool:e})=>e.storage_location?(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-500/20 text-blue-700 dark:text-blue-400`,children:e.storage_location}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}),temperature:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`temperature`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},humidity:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`humidity`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},battery:({spool:e,locationReadingsMap:t,t:n,colorizeLocationSensors:r,locationSensorAboveColor:i,locationSensorBelowColor:a,locationSensorOptimalColor:o})=>{let s=e.location_id?t[e.location_id]?.find(e=>e.device_class===`battery`):void 0;return s?(0,G.jsx)(`span`,{title:s.name,className:`text-sm ${k9(s,r,i,a,o)}`,children:O9(s,n)}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},label_weight:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:C9(e.label_weight)}),net:({remaining:e})=>(0,G.jsx)(`span`,{className:`text-sm text-white`,children:C9(e)}),gross:({spool:e,remaining:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:C9(t+e.core_weight)}),added_full:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.added_full==null?`-`:e.added_full?`Yes`:`No`}),used:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.weight_used>0?C9(e.weight_used):`-`}),printed_total:()=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`}),printed_since_weight:()=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`}),note:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray max-w-[150px] truncate block`,title:e.note||void 0,children:e.note||`-`}),pa_k:({spool:e})=>(e.k_profiles?.length??0)===0?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}):(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-bambu-green/20 text-bambu-green`,children:`K`}),tag_id:({spool:e})=>{let t=e.tag_uid||e.tray_uuid;return t?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray font-mono`,title:t,children:t.length>12?`${t.slice(0,6)}...${t.slice(-4)}`:t}):(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,children:`-`})},data_origin:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.data_origin||`-`}),tag_type:({spool:e})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.tag_type||`-`}),stock:({spool:e,t})=>e.slicer_filament?(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:`-`}):(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`,children:t(`inventory.stock`)}),remaining:({remaining:e,pct:t})=>(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${t>50?`bg-bambu-green`:t>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(t,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(e),`g`]})]}),spool_name:({spool:e,catalogMap:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:(e.core_weight_catalog_id==null?void 0:t[e.core_weight_catalog_id])?.name||`-`}),cost_per_kg:({spool:e,currencySymbol:t})=>(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,children:e.cost_per_kg==null?`-`:`${t}${e.cost_per_kg.toFixed(2)}`}),weight_check:({spool:e,onSyncWeight:t})=>{let n=e.last_scale_weight;if(n==null)return(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray/50`,title:`No scale measurement`,children:`-`});let r=e.core_weight||0,i=Math.max(0,e.label_weight-e.weight_used)+r,a,o;n0?`+${Math.round(a)}`:`${Math.round(a)}`,c=o?`Scale: ${Math.round(n)}g\nCalculated: ${Math.round(i)}g\nDifference: ${s}g (within tolerance)`:`Scale: ${Math.round(n)}g\nCalculated: ${Math.round(i)}g\nDifference: ${s}g (mismatch!)`;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-sm font-medium ${o?`text-green-700 dark:text-green-400`:`text-yellow-700 dark:text-yellow-400`}`,title:c,children:[(0,G.jsxs)(`span`,{children:[Math.round(n),`g`]}),o?(0,G.jsx)(fs,{className:`w-3 h-3`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3 h-3`}),t&&(0,G.jsx)(`button`,{type:`button`,onClick:n=>{n.stopPropagation(),n.preventDefault(),t(e)},className:`p-1 hover:bg-bambu-green/20 rounded transition-colors text-bambu-green`,title:`Sync: trust scale weight and reset tracking`,children:(0,G.jsx)(Hl,{className:`w-3.5 h-3.5`})})]})]})}},E9={id:e=>e.id,added_time:e=>e.created_at||``,encode_time:e=>e.encode_time||``,last_used_time:e=>e.last_used||``,material:e=>(e.material||``).toLowerCase(),subtype:e=>(e.subtype||``).toLowerCase(),color_name:e=>(e.color_name||``).toLowerCase(),rgba:e=>Ef(e.rgba),brand:e=>(e.brand||``).toLowerCase(),slicer_filament:e=>(e.slicer_filament_name||e.slicer_filament||``).toLowerCase(),location:(e,t)=>{let n=t[e.id];if(!n)return``;let r=n.ams_id===254||n.ams_id===255,i=!r&&n.ams_id>=128,a=n.ams_label?` (${n.ams_label})`:``;return`${n.printer_name||``} ${jp(n.ams_id,n.tray_id,i,r)}${a}`},storage_location:e=>(e.storage_location||``).toLowerCase(),label_weight:e=>e.label_weight,net:e=>Math.max(0,e.label_weight-e.weight_used),gross:e=>Math.max(0,e.label_weight-e.weight_used)+e.core_weight,used:e=>e.weight_used,remaining:e=>e.label_weight>0?Math.max(0,e.label_weight-e.weight_used)/e.label_weight:0,note:e=>(e.note||``).toLowerCase(),data_origin:e=>(e.data_origin||``).toLowerCase(),tag_type:e=>(e.tag_type||``).toLowerCase(),stock:e=>+!!e.slicer_filament,spool_name:e=>e.core_weight_catalog_id??0,cost_per_kg:e=>e.cost_per_kg??0,weight_check:e=>{if(e.last_scale_weight==null)return-1;let t=Math.max(0,e.label_weight-e.weight_used)+e.core_weight;return Math.abs(e.last_scale_weight-t)},temperature:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`temperature`)?.value??-1/0,humidity:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`humidity`)?.value??-1/0,battery:(e,t,n)=>(e.location_id?n[e.location_id]:void 0)?.find(e=>e.device_class===`battery`)?.value??-1/0},D9=`bambuddy-inventory-sort`;function U1e(){try{let e=localStorage.getItem(D9);if(e)return JSON.parse(e)}catch{}return null}function W1e(e){try{e?localStorage.setItem(D9,JSON.stringify(e)):localStorage.removeItem(D9)}catch{}}function G1e(){let{data:e}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),t=e!==void 0;return(0,G.jsx)(K1e,{spoolmanMode:e?.spoolman_enabled===`true`&&!!e?.spoolman_url,spoolmanModeReady:t})}function K1e({spoolmanMode:e=!1,spoolmanModeReady:t=!0}){let{t:n}=U(),r=co(),{showToast:i}=qd(),{hasPermission:a,loading:o}=Nd(),s=!o&&a(`inventory:forecast_read`),[c,l]=Ri(),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(`active`),[E,D]=(0,y.useState)(`all`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(``),[M,N]=(0,y.useState)(``),[P,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(`all`),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)(`table`),[ee,te]=(0,y.useState)(U1e),[ne,re]=(0,y.useState)(z1e),[ie,ae]=(0,y.useState)(!1),[oe,se]=(0,y.useState)(()=>{try{return localStorage.getItem(`bambuddy-inventory-group`)===`true`}catch{return!1}}),[H,ce]=(0,y.useState)(new Set),[le,ue]=(0,y.useState)(new Set),[de,fe]=(0,y.useState)(!1),[pe,me]=(0,y.useState)(null),he=(0,y.useCallback)(e=>{ue(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ge=(0,y.useCallback)(()=>ue(new Set),[]);(0,y.useEffect)(()=>{ue(new Set)},[w,E,O,A,M,P,I,R]);let[_e,ve]=(0,y.useState)(0),[ye,be]=(0,y.useState)(()=>{try{let e=localStorage.getItem(`bambuddy-inventory-pageSize`);if(e){let t=Number(e);if([15,30,50,100,-1].includes(t))return t}}catch{}return 15}),{data:xe}=K({queryKey:[`settings`],queryFn:Z.getSettings}),Se=xe?.date_format||`system`,Ce=(xe?.location_sensor_poll_interval||120)*1e3,{colorize:we,aboveColor:Te,belowColor:Ee,optimalColor:De}=R6(),Oe=e?[`spoolman-inventory-spools`]:[`inventory-spools`],ke=()=>b6(r,Oe),{data:Ae,isLoading:je}=K({queryKey:Oe,queryFn:()=>e?Z.getSpoolmanInventorySpools(!0):Z.getSpools(!0),refetchInterval:3e4}),Me=(0,y.useCallback)(async()=>{x(!0);try{await Z.exportSpoolsCsv()}catch(e){i(e instanceof Error?e.message:n(`inventory.csv.exportError`,`Export failed`),`error`)}finally{x(!1)}},[i,n]),Ne=e?n(`inventory.csv.spoolmanHint`,`In Spoolman mode, use Spoolman's built-in CSV import/export.`):void 0,{data:Pe=[]}=K({queryKey:v6,queryFn:Z.getLocations}),Fe=c.get(`location_id`),Ie=Fe===`__none__`?`__none__`:Fe&&/^\d+$/.test(Fe)&&Number(Fe)>0?Fe:``,Le=c.get(`spool`),Re=Le&&/^\d+$/.test(Le)&&Number(Le)>0?Number(Le):null,ze=Ae?.find(e=>e.id===Re)??null,Be=(0,y.useCallback)(()=>{f.current=!0,l(e=>(e.delete(`spool`),e),{replace:!0})},[l]),{data:Ve,isError:He,error:Ue}=K({queryKey:e?[`spoolman-inventory-spool`,Re]:[`inventory-spool`,Re],queryFn:()=>e?Z.getSpoolmanInventorySpool(Re):Z.getSpool(Re),enabled:t&&Re!==null&&ze===null,staleTime:1/0,retry:(e,t)=>e<2&&!(t instanceof sd&&t.status===404)});(0,y.useEffect)(()=>{if(!f.current){if(t&&Re&&ze){Be(),d({spool:ze,mode:`edit`});return}if(Ve){Be(),d({spool:Ve,mode:`edit`});return}He&&(Be(),i(n(Ue instanceof sd&&Ue.status===404?`inventory.deepLinkSpoolNotFound`:`inventory.deepLinkFetchFailed`),`error`))}},[t,Re,ze,Ve,He,Ue,Be,i,n]);let{data:We}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),refetchInterval:3e4}),{data:Ge=[],isError:Ke}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:e,refetchInterval:3e4,staleTime:1e4,retry:1}),qe=(0,y.useRef)(!1);(0,y.useEffect)(()=>{Ke&&!qe.current?(qe.current=!0,i(n(`inventory.spoolmanUnreachable`),`error`)):Ke||(qe.current=!1)},[Ke,i,n]);let{data:Je}=K({queryKey:[`spool-catalog`],queryFn:()=>Z.getSpoolCatalog()}),Ye=q({mutationFn:t=>e?Z.deleteSpoolmanInventorySpool(t):Z.deleteSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolDeleted`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.deleteSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.deleteFailed`),`error`)}}),Xe=q({mutationFn:t=>e?Z.archiveSpoolmanInventorySpool(t):Z.archiveSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolArchived`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.archiveSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.archiveFailed`),`error`)}}),Ze=q({mutationFn:t=>e?Z.restoreSpoolmanInventorySpool(t):Z.restoreSpool(t),onSuccess:()=>{ke(),i(n(`inventory.spoolRestored`),`success`)},onError:e=>{e instanceof sd&&e.status===404?i(n(`inventory.restoreSpoolNotFound`),`error`):e instanceof sd&&e.status===503?i(n(`inventory.spoolmanUnreachable`),`error`):i(n(`inventory.restoreFailed`),`error`)}}),Qe=q({mutationFn:t=>e?Z.resetSpoolmanInventorySpoolConsumedCounter(t):Z.resetSpoolConsumedCounter(t),onSuccess:()=>{r.invalidateQueries({queryKey:Oe}),i(n(`inventory.consumedCounterReset`),`success`)},onError:()=>{i(n(`inventory.resetConsumedCounterFailed`),`error`)}}),$e=q({mutationFn:t=>e?Z.bulkResetSpoolmanInventorySpoolConsumedCounter(t):Z.bulkResetSpoolConsumedCounter(t),onSuccess:e=>{r.invalidateQueries({queryKey:Oe}),i(n(`inventory.allConsumedCountersReset`,{count:e.reset}),`success`),me(null),ge()},onError:()=>{i(n(`inventory.resetConsumedCounterFailed`),`error`)}}),et=e=>(e.not_found?.length??0)+(e.errors?.length??0),tt=q({mutationFn:async({ids:t,update:n})=>e?Z.bulkUpdateSpoolmanInventorySpools(t,n):Z.bulkUpdateSpools(t,n),onSuccess:e=>{ke();let t=et(e);if(e.updated===0){i(n(`inventory.bulk.updateAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.updatePartial`,{ok:e.updated,failed:t}),`warning`):i(n(`inventory.bulk.updateSuccess`,{count:e.updated}),`success`),fe(!1),ge()},onError:e=>{i(e.message||n(`inventory.bulk.updateFailed`),`error`)}}),nt=q({mutationFn:async t=>e?Z.bulkDeleteSpoolmanInventorySpools(t):Z.bulkDeleteSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.deleted===0){i(n(`inventory.bulk.deleteAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.deletePartial`,{ok:e.deleted,failed:t}),`warning`):i(n(`inventory.bulk.deleteSuccess`,{count:e.deleted}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.deleteFailed`),`error`)}}),rt=q({mutationFn:async t=>e?Z.bulkArchiveSpoolmanInventorySpools(t):Z.bulkArchiveSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.archived===0&&t>0){i(n(`inventory.bulk.archiveAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.archivePartial`,{ok:e.archived,failed:t}),`warning`):i(n(`inventory.bulk.archiveSuccess`,{count:e.archived}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.archiveFailed`),`error`)}}),it=q({mutationFn:async t=>e?Z.bulkRestoreSpoolmanInventorySpools(t):Z.bulkRestoreSpools(t),onSuccess:e=>{ke();let t=et(e);if(e.restored===0&&t>0){i(n(`inventory.bulk.restoreAllFailed`,{count:t}),`error`);return}t>0?i(n(`inventory.bulk.restorePartial`,{ok:e.restored,failed:t}),`warning`):i(n(`inventory.bulk.restoreSuccess`,{count:e.restored}),`success`),me(null),ge()},onError:e=>{i(e.message||n(`inventory.bulk.restoreFailed`),`error`)}}),at=(0,y.useMemo)(()=>(Ae??[]).map(e=>e.id),[Ae]),ot=async t=>{if(t.last_scale_weight!=null)try{e?await Z.syncSpoolmanSpoolWeight(t.id,t.last_scale_weight):await Od.updateSpoolWeight(t.id,t.last_scale_weight),r.invalidateQueries({queryKey:Oe}),i(`Synced "${[t.brand,t.material,t.color_name].filter(Boolean).join(` `)}" to scale weight`,`success`)}catch(e){let t=e instanceof sd&&e.status===404,r=e instanceof sd&&e.status===503;i(n(t?`inventory.syncWeightSpoolNotFound`:r?`inventory.syncWeightSpoolmanUnreachable`:`inventory.syncWeightFailed`),`error`)}},st=xe?.low_stock_threshold??20,[ct,lt]=(0,y.useState)(!1),[ut,dt]=(0,y.useState)(st.toString());(0,y.useEffect)(()=>{ct||dt(st.toString())},[st,ct]);let ft=q({mutationFn:e=>Z.updateSettings({low_stock_threshold:e}),onSuccess:()=>{r.invalidateQueries({queryKey:[`settings`]}),i(n(`common.saved`),`success`),lt(!1)},onError:()=>{i(n(`inventory.lowStockThresholdError`),`error`)}}),pt=(0,y.useMemo)(()=>{if(!Ae)return null;let e=0,t=0,n=0,r=0,i={};for(let a of Ae){if(t+=Math.max(0,a.weight_used-(a.weight_used_baseline??0)),a.archived_at)continue;r++;let o=Math.max(0,a.label_weight-a.weight_used);e+=o,(a.label_weight>0?o/a.label_weight*100:0)<(a.low_stock_threshold_pct??st)&&n++;let s=a.material||`Unknown`;i[s]||(i[s]={count:0,weight:0}),i[s].count++,i[s].weight+=o}return{totalWeight:e,totalConsumed:t,lowStock:n,byMaterial:i,totalSpools:r}},[Ae,st]),mt=(We?.length??0)+(e?Ge.length:0),ht=Lf(xe?.currency||`USD`),gt=(0,y.useMemo)(()=>{let e={};for(let t of We||[])e[t.spool_id]={printer_id:t.printer_id,printer_name:t.printer_name,ams_id:t.ams_id,tray_id:t.tray_id,ams_label:t.ams_label??null};for(let t of Ge)typeof t?.spoolman_spool_id!=`number`||t.spoolman_spool_id<=0||typeof t.printer_id!=`number`||typeof t.ams_id!=`number`||typeof t.tray_id!=`number`||e[t.spoolman_spool_id]||(e[t.spoolman_spool_id]={printer_id:t.printer_id,printer_name:t.printer_name??null,ams_id:t.ams_id,tray_id:t.tray_id,ams_label:t.ams_label??null});return e},[We,Ge]),_t=(0,y.useMemo)(()=>{let e={};for(let t of Je||[])e[t.id]=t;return e},[Je]),{data:vt}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),yt=(0,y.useMemo)(()=>new Set((vt??[]).map(e=>e.location_id)),[vt]),bt=(0,y.useMemo)(()=>{let e=new Set;for(let t of Ae||[])t.location_id&&yt.has(t.location_id)&&e.add(t.location_id);return Array.from(e)},[Ae,yt]),xt=B===`cards`||B===`table`&&ne.some(e=>e.visible&&(e.id===`temperature`||e.id===`humidity`||e.id===`battery`)),St=Co({queries:bt.map(e=>({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),refetchInterval:Ce,enabled:xt}))}),Ct=(0,y.useMemo)(()=>{let e={};return bt.forEach((t,n)=>{let r=St[n]?.data;r&&(e[t]=r)}),e},[bt,St]),wt=(0,y.useMemo)(()=>pt?Object.entries(pt.byMaterial).sort((e,t)=>t[1].weight-e[1].weight).slice(0,4):[],[pt]),Tt=(0,y.useMemo)(()=>{let e=Ae||[];if(e=w===`active`?e.filter(e=>!e.archived_at):e.filter(e=>!!e.archived_at),E===`used`?e=e.filter(e=>e.weight_used>0):E===`new`?e=e.filter(e=>e.weight_used===0):E===`lowstock`&&(e=e.filter(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(e.label_weight>0?t/e.label_weight*100:0)<(e.low_stock_threshold_pct??st)})),O&&(e=e.filter(e=>e.material===O)),A&&(e=e.filter(e=>e.brand===A)),M&&(e=M===`__none__`?e.filter(e=>!e.category):e.filter(e=>e.category===M)),P){let t=Number(P);e=e.filter(e=>e.core_weight_catalog_id===t)}if(Ie)if(Ie===`__none__`)e=e.filter(e=>!e.location_id&&!e.storage_location?.trim());else{let t=Number(Ie),n=Pe.find(e=>e.id===t)?.name?.trim().toLowerCase();e=e.filter(e=>e.location_id==null?n?(e.storage_location||``).trim().toLowerCase()===n:!1:e.location_id===t)}return I===`stock`?e=e.filter(e=>!e.slicer_filament):I===`configured`&&(e=e.filter(e=>!!e.slicer_filament)),R&&(e=wH(e,R)),e},[Ae,w,E,O,A,M,P,I,Ie,R,st,Pe]),Et=()=>ve(0),Dt=(0,y.useCallback)(e=>{l(t=>(t.delete(`location_id`),e&&t.set(`location_id`,e),t),{replace:!0}),Et()},[l]),Ot=[...new Set(Ae?.map(e=>e.material)||[])].sort(),kt=[...new Set(Ae?.map(e=>e.brand).filter(Boolean)||[])].sort(),At=[...new Set(Ae?.map(e=>e.category?.trim()).filter(Boolean)||[])].sort(),jt=(Ae??[]).some(e=>!e.category),Mt=[...new Set(Ae?.map(e=>e.core_weight_catalog_id).filter(e=>e!=null)||[])].sort((e,t)=>{let n=(_t[e]?.name||``).toLowerCase(),r=(_t[t]?.name||``).toLowerCase();return n.localeCompare(r)}),Nt=(Ae??[]).some(e=>!e.location_id&&!e.storage_location?.trim()),Pt=w!==`active`||E!==`all`||!!O||!!A||!!M||!!P||!!Ie||I!==`all`||!!R,Ft=e=>{re(e),B1e(e)},It=(0,y.useMemo)(()=>ne.filter(e=>e.visible).map(e=>e.id),[ne]),Lt=e=>{E9[e]&&(te(t=>{let n;return n=t?.column===e?t.direction===`asc`?{column:e,direction:`desc`}:null:{column:e,direction:`asc`},W1e(n),n}),Et())},Rt=(0,y.useMemo)(()=>{if(!ee)return Tt;let e=E9[ee.column];return e?[...Tt].sort((t,n)=>{let r=e(t,gt,Ct),i=e(n,gt,Ct);return ri?ee.direction===`asc`?1:-1:0}):Tt},[Tt,ee,gt,Ct]),zt=(0,y.useMemo)(()=>{if(!oe)return Rt.map(e=>({type:`single`,spool:e}));let e=new Map;for(let t of Rt)if(!(t.weight_used>0||gt[t.id])){let n=L1e(t),r=e.get(n);r?r.push(t):e.set(n,[t])}let t=[],n=new Set;for(let r of Rt){if(r.weight_used>0||gt[r.id]){t.push({type:`single`,spool:r});continue}let i=L1e(r);if(n.has(i))continue;n.add(i);let a=e.get(i);a.length===1?t.push({type:`single`,spool:a[0]}):t.push({type:`group`,key:i,spools:a,representative:a[0]})}return t},[Rt,oe,gt]),Bt=ye===-1,Vt=zt.length,Ht=Bt?Vt||1:ye,Ut=Math.max(1,Math.ceil(Vt/Ht)),Wt=Bt?0:Math.min(_e,Ut-1),Gt=Bt?zt:zt.slice(Wt*Ht,(Wt+1)*Ht),Kt=()=>{let e=!oe;se(e),ce(new Set),Et();try{localStorage.setItem(`bambuddy-inventory-group`,String(e))}catch{}},qt=e=>{ce(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Jt=e=>{be(e),ve(0);try{localStorage.setItem(`bambuddy-inventory-pageSize`,String(e))}catch{}};return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Cl,{className:`w-7 h-7 text-bambu-green`}),n(`inventory.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:n(`inventory.subtitle`)})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(Q,{variant:`secondary`,disabled:e,onClick:()=>v(!0),title:Ne,children:[(0,G.jsx)(Vu,{className:`w-4 h-4`}),n(`inventory.csv.importButton`,`Import CSV`)]}),(0,G.jsxs)(Q,{variant:`secondary`,disabled:e||b,onClick:Me,title:Ne,children:[b?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(Xs,{className:`w-4 h-4`}),n(`inventory.csv.exportButton`,`Export CSV`)]}),(0,G.jsxs)(Q,{variant:`secondary`,onClick:()=>C(!0),children:[(0,G.jsx)(ol,{className:`w-4 h-4`}),n(`locations.manage`)]}),(0,G.jsxs)(Q,{variant:`secondary`,disabled:Tt.length===0,onClick:()=>g(Tt.map(e=>e.id)),title:Tt.length===0?n(`inventory.labels.noSpoolsTitle`,`No spools to label`):n(`inventory.labels.bulkTitle`,`Pick spools to print labels for from the {{count}} currently shown`,{count:Tt.length}),children:[(0,G.jsx)(Rl,{className:`w-4 h-4`}),n(`inventory.labels.printLabels`,`Print labels…`)]}),(0,G.jsxs)(Q,{onClick:()=>d({spool:null,mode:`create`}),children:[(0,G.jsx)(Fl,{className:`w-4 h-4`}),n(`inventory.addSpool`)]})]})]}),pt&&!je&&(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-3`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Cl,{className:`w-4 h-4 text-bambu-green`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.totalInventory`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:C9(pt.totalWeight,!0)}),(0,G.jsxs)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:[pt.totalSpools,` `,pt.totalSpools===1?n(`inventory.spool`):n(`inventory.spools`)]})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Fu,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.totalConsumed`)})]}),pt.totalConsumed>0&&at.length>0&&(0,G.jsx)(`button`,{onClick:()=>m({type:`reset-all-consumed-counters`}),className:`p-1 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded transition-colors`,title:n(`inventory.resetAllConsumedCountersTooltip`),"aria-label":n(`inventory.resetAllConsumedCounters`),children:(0,G.jsx)(nc,{className:`w-3.5 h-3.5`})})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:C9(pt.totalConsumed,!0)}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:n(`inventory.sinceTracking`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Jc,{className:`w-4 h-4 text-green-600 dark:text-green-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.byMaterial`)})]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mt-1`,children:wt.map(([e,t])=>(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium ${V1e[e]||`bg-bambu-dark-tertiary text-bambu-gray`}`,children:[e,` `,(0,G.jsx)(`span`,{className:`opacity-70`,children:C9(t.weight,!0)})]},e))})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Rl,{className:`w-4 h-4 text-purple-600 dark:text-purple-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.inPrinter`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold text-white`,children:mt}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1`,children:n(`inventory.loadedInAms`)})]}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,G.jsx)(Lu,{className:`w-4 h-4 text-yellow-600 dark:text-yellow-400`}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray font-medium uppercase tracking-wide`,children:n(`inventory.lowStock`)})]}),(0,G.jsx)(`div`,{className:`text-xl font-bold ${pt.lowStock>0?`text-yellow-700 dark:text-yellow-400`:`text-white`}`,children:pt.lowStock}),(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray mt-1 flex items-center gap-2`,children:ct?(0,G.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=parseFloat(ut);!isNaN(t)&&t>=.1&&t<=99.9?ft.mutate(t):i(n(`inventory.lowStockThresholdError`),`error`)},className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`<`}),(0,G.jsx)(`input`,{type:`text`,inputMode:`decimal`,pattern:`^\\d{0,2}(\\.\\d?)?$`,maxLength:4,value:ut,onChange:e=>{let t=e.target.value.replace(/[^\d.]/g,``);/^\d{0,2}(\.\d?)?$/.test(t)&&dt(t)},className:`px-1.5 py-1 rounded border border-bambu-dark-tertiary text-xs text-white bg-bambu-dark-secondary focus:outline-none focus:border-bambu-green w-14 text-center`,onWheel:e=>e.currentTarget.blur(),disabled:ft.isPending}),(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:`%`}),(0,G.jsx)(Q,{type:`submit`,size:`sm`,disabled:ft.isPending,children:n(`common.save`)}),(0,G.jsx)(Q,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>lt(!1),disabled:ft.isPending,children:n(`common.cancel`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray`,children:[`< `,st,`%`]}),(0,G.jsx)(`button`,{className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:n(`common.edit`),onClick:()=>{dt(st.toString()),lt(!0)},children:(0,G.jsx)(kl,{className:`w-4 h-4`})})]})})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3 items-start sm:items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1 max-w-md ${B===`forecast`?`invisible pointer-events-none`:``}`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray/50`}),(0,G.jsx)(`input`,{type:`text`,value:R,onChange:e=>{z(e.target.value),Et()},placeholder:n(`inventory.search`),className:`w-full pl-10 pr-8 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white text-sm placeholder:text-bambu-gray/50 focus:outline-none focus:border-bambu-green`}),R&&(0,G.jsx)(`button`,{onClick:()=>{z(``),Et()},className:`absolute right-3 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[B===`table`&&(0,G.jsxs)(`button`,{onClick:()=>ae(!0),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-bambu-gray border border-bambu-dark-tertiary rounded-lg hover:bg-bambu-dark-tertiary transition-colors`,title:n(`inventory.configureColumns`),children:[(0,G.jsx)(zs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.columns`)})]}),B!==`forecast`&&(0,G.jsxs)(`button`,{onClick:Kt,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium border rounded-lg transition-colors ${oe?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,title:n(`inventory.groupSimilar`),children:[(0,G.jsx)(Mc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.groupSimilar`)})]}),(0,G.jsxs)(`div`,{className:`flex bg-bambu-dark-primary border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>V(`table`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors ${B===`table`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Tu,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.table`)})]}),(0,G.jsxs)(`button`,{onClick:()=>V(`cards`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors ${B===`cards`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Yc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`inventory.cards`)})]}),(0,G.jsxs)(`button`,{onClick:()=>s&&V(`forecast`),disabled:!s,title:s?void 0:n(`forecast.noReadAccess`),className:`flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium transition-colors disabled:opacity-40 disabled:cursor-not-allowed ${B===`forecast`?`bg-bambu-green text-white`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[s?(0,G.jsx)(Iu,{className:`w-4 h-4`}):(0,G.jsx)(nl,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:n(`forecast.title`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 ${B===`forecast`?`hidden`:``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>{T(`active`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${w===`active`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Cl,{className:`w-3.5 h-3.5`}),n(`inventory.active`)]}),(0,G.jsxs)(`button`,{onClick:()=>{T(`archived`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${w===`archived`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5`}),n(`inventory.archived`)]})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>{D(`all`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${E===`all`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.all`)}),(0,G.jsxs)(`button`,{onClick:()=>{D(`used`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${E===`used`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(js,{className:`w-3.5 h-3.5`}),n(`inventory.used`)]}),(0,G.jsx)(`button`,{onClick:()=>{D(`new`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${E===`new`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.new`)}),(0,G.jsxs)(`button`,{onClick:()=>{D(`lowstock`),Et()},className:`flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium transition-colors ${E===`lowstock`?`bg-yellow-100 dark:bg-yellow-500/20 text-yellow-700 dark:text-yellow-400`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),n(`inventory.lowStock`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center rounded-lg border border-bambu-dark-tertiary overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>{L(`all`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`all`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.all`)}),(0,G.jsx)(`button`,{onClick:()=>{L(`stock`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`stock`?`bg-amber-100 dark:bg-amber-500/20 text-amber-700 dark:text-amber-400`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.stock`)}),(0,G.jsx)(`button`,{onClick:()=>{L(`configured`),Et()},className:`px-3 py-1.5 text-xs font-medium transition-colors ${I===`configured`?`bg-bambu-green/20 text-bambu-green`:`text-bambu-gray hover:bg-bambu-dark-tertiary`}`,children:n(`inventory.configured`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`select`,{value:O,onChange:e=>{k(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${O?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.material`)}),Ot.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(0,G.jsxs)(`select`,{value:A,onChange:e=>{j(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${A?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.brand`)}),kt.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))]}),(At.length>0||M)&&(0,G.jsxs)(`select`,{value:M,onChange:e=>{N(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${M?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.category`)}),At.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),jt&&(0,G.jsx)(`option`,{value:`__none__`,children:n(`inventory.categoryNone`)})]}),Mt.length>0&&(0,G.jsxs)(`select`,{value:P,onChange:e=>{F(e.target.value),Et()},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${P?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.spoolName`)}),Mt.map(e=>(0,G.jsx)(`option`,{value:e,children:_t[e]?.name||`#${e}`},e))]}),(Pe.length>0||Ie)&&(0,G.jsxs)(`select`,{value:Ie,onChange:e=>{Dt(e.target.value)},className:`px-3 py-1.5 rounded-lg border text-xs font-medium transition-colors cursor-pointer focus:outline-none ${Ie?`bg-bambu-green/20 text-bambu-green border-bambu-green/30`:`bg-transparent text-bambu-gray border-bambu-dark-tertiary hover:bg-bambu-dark-tertiary`}`,children:[(0,G.jsx)(`option`,{value:``,children:n(`inventory.storageLocation`)}),Pe.map(e=>(0,G.jsx)(`option`,{value:String(e.id),children:e.name},e.id)),Nt&&(0,G.jsx)(`option`,{value:`__none__`,children:n(`inventory.storageLocationNone`)})]}),Pt&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`w-px h-5 bg-bambu-dark-tertiary`}),(0,G.jsxs)(`button`,{onClick:()=>{T(`active`),D(`all`),k(``),j(``),N(``),F(``),L(`all`),z(``),l(e=>(e.delete(`location_id`),e),{replace:!0}),Et()},className:`flex items-center gap-1 text-xs text-bambu-gray hover:text-bambu-green transition-colors`,children:[(0,G.jsx)(nd,{className:`w-3.5 h-3.5`}),n(`inventory.clearFilters`)]})]}),B!==`forecast`&&(0,G.jsxs)(`span`,{className:`ml-auto text-xs text-bambu-gray`,children:[Rt.length,` `,Rt.length===1?n(`inventory.spool`):n(`inventory.spools`),oe&&Vt0&&B!==`forecast`&&(0,G.jsxs)(`div`,{className:`sticky top-2 z-10 mb-4 flex items-center gap-2 px-3 py-2 bg-bambu-green/10 border border-bambu-green/30 rounded-lg backdrop-blur-sm`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-green font-medium`,children:n(`inventory.bulk.selectionCount`,{count:le.size})}),(0,G.jsxs)(`div`,{className:`ml-auto flex flex-wrap items-center gap-2`,children:[(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>fe(!0),children:[(0,G.jsx)(kl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.edit`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>g([...le]),children:[(0,G.jsx)(Rl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.printLabels`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`reset-consumed-counter`),children:[(0,G.jsx)(nc,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.resetUsage`)]}),w===`archived`?(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`restore`),children:[(0,G.jsx)(Wl,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.restore`)]}):(0,G.jsxs)(Q,{size:`sm`,variant:`secondary`,onClick:()=>me(`archive`),children:[(0,G.jsx)(Po,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.archive`)]}),(0,G.jsxs)(Q,{size:`sm`,variant:`danger`,onClick:()=>me(`delete`),children:[(0,G.jsx)(Pu,{className:`w-3.5 h-3.5 mr-1.5`}),n(`inventory.bulk.delete`)]}),(0,G.jsx)(`button`,{className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,onClick:ge,title:n(`inventory.bulk.clearSelection`),"aria-label":n(`inventory.bulk.clearSelection`),children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]})]}),je?(0,G.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})}):B===`forecast`?(0,G.jsx)(J$e,{spools:Ae||[]}):B===`cards`?Gt.length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:Gt.map(e=>{if(e.type===`group`){let{key:t,spools:r,representative:i}=e,a=r.reduce((e,t)=>e+Math.max(0,t.label_weight-t.weight_used),0),o=bH({rgba:i.rgba,extraColors:i.extra_colors,effectType:i.effect_type,subtype:i.subtype,effectSize:`groupheader`}),s=H.has(t);return(0,G.jsxs)(`div`,{className:`col-span-full`,children:[(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-green/30 hover:border-bambu-green transition-colors cursor-pointer`,onClick:()=>qt(t),children:[(0,G.jsx)(`div`,{className:`h-10 flex items-center px-4 gap-3`,style:o,children:(0,G.jsx)(`span`,{className:`bg-white/90 text-gray-800 px-3 py-0.5 rounded-full text-sm font-medium`,children:kf(i.color_name,i.rgba)||`-`})}),(0,G.jsxs)(`div`,{className:`px-4 py-3 flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${s?``:`-rotate-90`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`font-semibold text-white`,children:[i.material,i.subtype?` ${i.subtype}`:``]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:i.brand||`-`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray`,title:n(`inventory.remaining`),children:C9(a)}),(0,G.jsx)(`span`,{className:`text-xs font-medium bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full`,children:n(`inventory.groupedSpools`,{count:r.length})})]})]})]}),s&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 mt-2 ml-4`,children:r.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(0,G.jsx)(J1e,{spool:e,remaining:t,pct:e.label_weight>0?t/e.label_weight*100:0,onClick:()=>d({spool:e,mode:`edit`}),onPrintLabel:()=>g([e.id]),onCopy:()=>d({spool:e,mode:`copy`}),t:n,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},e.id)})})]},`group-${t}`)}let t=e.spool,r=Math.max(0,t.label_weight-t.weight_used);return(0,G.jsx)(J1e,{spool:t,remaining:r,pct:t.label_weight>0?r/t.label_weight*100:0,onClick:()=>d({spool:t,mode:`edit`}),onPrintLabel:()=>g([t.id]),onCopy:()=>d({spool:t,mode:`copy`}),t:n,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},t.id)})}),(0,G.jsx)(q1e,{pageIndex:Wt,pageSize:ye,totalRows:Vt,totalPages:Ut,onPageChange:ve,onPageSizeChange:Jt,t:n})]}):(0,G.jsx)(e0e,{hasFilters:Pt,onAddSpool:()=>d({spool:null,mode:`create`}),t:n}):Gt.length>0?(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`div`,{className:`overflow-x-auto`,children:(0,G.jsxs)(`table`,{className:`w-full`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary bg-bambu-dark-tertiary/30`,children:[(0,G.jsx)(`th`,{className:`w-10 px-3 py-3`,children:(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":n(`inventory.bulk.selectAllVisible`),checked:Gt.length>0&&Gt.every(e=>(e.type===`group`?e.spools.map(e=>e.id):[e.spool.id]).every(e=>le.has(e))),onChange:e=>{if(e.target.checked){let e=new Set(le);for(let t of Gt){let n=t.type===`group`?t.spools.map(e=>e.id):[t.spool.id];for(let t of n)e.add(t)}ue(e)}else{let e=new Set(le);for(let t of Gt){let n=t.type===`group`?t.spools.map(e=>e.id):[t.spool.id];for(let t of n)e.delete(t)}ue(e)}}})}),It.map(e=>{let t=!!E9[e],r=ee?.column===e;return(0,G.jsx)(`th`,{className:`text-left py-3 px-4 text-xs font-medium uppercase tracking-wide select-none ${e===`remaining`?`min-w-[150px]`:``} ${t?`cursor-pointer hover:text-bambu-green transition-colors`:``} ${r?`text-bambu-green`:`text-bambu-gray`}`,onClick:t?()=>Lt(e):void 0,children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[H1e[e]?.(n)??e,t&&(r?ee.direction===`asc`?(0,G.jsx)(Ho,{className:`w-3 h-3`}):(0,G.jsx)(Io,{className:`w-3 h-3`}):(0,G.jsx)(Bo,{className:`w-3 h-3 opacity-30`}))]})},e)}),(0,G.jsx)(`th`,{className:`text-right py-3 px-4 text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:n(`common.actions`)})]})}),(0,G.jsx)(`tbody`,{children:Gt.map(e=>{if(e.type===`group`){let{key:t,spools:r}=e,i=H.has(t),a=I1e(r),o=Math.max(0,a.label_weight-a.weight_used);return(0,G.jsx)($1e,{spools:r,headerSpool:a,remaining:o,pct:a.label_weight>0?o/a.label_weight*100:0,isExpanded:i,onToggle:()=>qt(t),selectedIds:le,onToggleSelected:he,onToggleGroupSelected:(e,t)=>{ue(n=>{let r=new Set(n);for(let n of e)t?r.add(n):r.delete(n);return r})},onEdit:e=>d({spool:e,mode:`edit`}),onCopy:e=>d({spool:e,mode:`copy`}),onArchive:e=>m({type:`archive`,spoolId:e}),onDelete:e=>m({type:`delete`,spoolId:e}),onPrintLabel:e=>g([e]),onResetConsumedCounter:e=>m({type:`reset-consumed-counter`,spoolId:e}),visibleColumns:It,assignmentMap:gt,catalogMap:_t,locationReadingsMap:Ct,currencySymbol:ht,dateFormat:Se,t:n,onSyncWeight:ot,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},`group-${t}`)}let t=e.spool,r=Math.max(0,t.label_weight-t.weight_used);return(0,G.jsx)(Q1e,{spool:t,remaining:r,pct:t.label_weight>0?r/t.label_weight*100:0,isSelected:le.has(t.id),onToggleSelected:()=>he(t.id),onEdit:()=>d({spool:t,mode:`edit`}),onCopy:()=>d({spool:t,mode:`copy`}),onRestore:()=>Ze.mutate(t.id),onArchive:()=>m({type:`archive`,spoolId:t.id}),onDelete:()=>m({type:`delete`,spoolId:t.id}),onPrintLabel:()=>g([t.id]),onResetConsumedCounter:()=>m({type:`reset-consumed-counter`,spoolId:t.id}),visibleColumns:It,assignmentMap:gt,catalogMap:_t,locationReadingsMap:Ct,currencySymbol:ht,dateFormat:Se,t:n,onSyncWeight:ot,colorizeLocationSensors:we,locationSensorAboveColor:Te,locationSensorBelowColor:Ee,locationSensorOptimalColor:De},t.id)})})]})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 bg-bambu-dark-tertiary/50 border-t border-bambu-dark-tertiary text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:Bt?`${Vt} ${n(Vt===1?`inventory.spool`:`inventory.spools`)}`:(0,G.jsxs)(G.Fragment,{children:[n(`inventory.showing`),` `,Wt*Ht+1,` `,n(`inventory.to`),` `,Math.min((Wt+1)*Ht,Vt),` `,n(`inventory.of`),` `,Vt,` `,n(`inventory.spools`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:n(`inventory.show`)}),(0,G.jsxs)(`select`,{value:ye,onChange:e=>Jt(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[15,30,50,100].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:n(`inventory.all`)})]}),!Bt&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>ve(0),disabled:Wt===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,title:`First page`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>ve(e=>Math.max(0,e-1)),disabled:Wt===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[n(`inventory.page`),` `,Wt+1,` `,n(`inventory.of`),` `,Ut]}),(0,G.jsx)(`button`,{onClick:()=>ve(e=>Math.min(Ut-1,e+1)),disabled:Wt>=Ut-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>ve(Ut-1),disabled:Wt>=Ut-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,title:`Last page`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})]}):(0,G.jsx)(e0e,{hasFilters:Pt,onAddSpool:()=>d({spool:null,mode:`create`}),t:n}),u!==null&&(0,G.jsx)(T1e,{isOpen:!0,onClose:()=>d(null),spool:u.spool,mode:u.mode,currencySymbol:ht,spoolmanMode:e,spoolsQueryKey:Oe}),p&&(0,G.jsx)(of,{title:p.type===`delete`?n(`common.delete`):p.type===`archive`?n(`inventory.archive`):p.type===`reset-consumed-counter`?n(`inventory.resetConsumedCounter`):n(`inventory.resetAllConsumedCounters`),message:p.type===`delete`?n(`inventory.deleteConfirm`):p.type===`archive`?n(`inventory.archiveConfirm`):p.type===`reset-consumed-counter`?n(`inventory.resetConsumedCounterConfirm`):n(`inventory.resetAllConsumedCountersConfirm`,{count:at.length}),confirmText:p.type===`delete`?n(`common.delete`):p.type===`archive`?n(`inventory.archive`):n(`inventory.resetConsumedCounter`),variant:p.type===`archive`?`warning`:`danger`,onConfirm:()=>{p.type===`delete`?Ye.mutate(p.spoolId):p.type===`archive`?Xe.mutate(p.spoolId):p.type===`reset-consumed-counter`?Qe.mutate(p.spoolId):$e.mutate(at),m(null)},onCancel:()=>m(null)}),(0,G.jsx)(tG,{isOpen:ie,onClose:()=>ae(!1),columns:ne,defaultColumns:S9,onSave:Ft}),(0,G.jsx)(M1e,{isOpen:h!==null,onClose:()=>g(null),availableSpools:Tt,initialSelectedIds:h??[],spoolmanMode:e}),(0,G.jsx)(F1e,{isOpen:de,selectedCount:le.size,isPending:tt.isPending,availableLocations:Pe.map(e=>({id:e.id,name:e.name})),availableMaterials:x9((Ae??[]).map(e=>e.material)),availableSubtypes:x9((Ae??[]).map(e=>e.subtype)),availableBrands:x9((Ae??[]).map(e=>e.brand)),availableCategories:x9((Ae??[]).map(e=>e.category)),availableSlicerFilaments:x9((Ae??[]).map(e=>e.slicer_filament)),availableSlicerFilamentNames:x9((Ae??[]).map(e=>e.slicer_filament_name)),onClose:()=>fe(!1),onApply:e=>tt.mutate({ids:[...le],update:e})}),pe&&(0,G.jsx)(of,{title:n(pe===`delete`?`inventory.bulk.deleteTitle`:pe===`archive`?`inventory.bulk.archiveTitle`:pe===`restore`?`inventory.bulk.restoreTitle`:`inventory.bulk.resetUsageTitle`),message:n(pe===`delete`?`inventory.bulk.deleteMessage`:pe===`archive`?`inventory.bulk.archiveMessage`:pe===`restore`?`inventory.bulk.restoreMessage`:`inventory.bulk.resetUsageMessage`,{count:le.size}),confirmText:n(pe===`delete`?`common.delete`:pe===`archive`?`inventory.archive`:pe===`restore`?`inventory.restore`:`inventory.resetConsumedCounter`),variant:pe===`delete`?`danger`:`warning`,isLoading:nt.isPending||rt.isPending||it.isPending||$e.isPending,onConfirm:()=>{let e=[...le];pe===`delete`?nt.mutate(e):pe===`archive`?rt.mutate(e):pe===`restore`?it.mutate(e):$e.mutate(e)},onCancel:()=>me(null)}),_&&(0,G.jsx)(N1e,{onClose:()=>v(!1),onImported:e=>{v(!1),r.invalidateQueries({queryKey:Oe}),i(n(`inventory.csv.importSuccess`,`{{count}} spools imported`,{count:e}),`success`)}}),(0,G.jsx)(Z6,{open:S,onClose:()=>C(!1),onPickLocation:e=>Dt(String(e))})]})}function q1e({pageIndex:e,pageSize:t,totalRows:n,totalPages:r,onPageChange:i,onPageSizeChange:a,t:o}){let s=t===-1;if(r<=1&&!s)return null;let c=s?n||1:t;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between pt-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:s?`${n} ${o(n===1?`inventory.spool`:`inventory.spools`)}`:(0,G.jsxs)(G.Fragment,{children:[o(`inventory.showing`),` `,e*c+1,` `,o(`inventory.to`),` `,Math.min((e+1)*c,n),` `,o(`inventory.of`),` `,n,` `,o(`inventory.spools`)]})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:o(`inventory.show`)}),(0,G.jsxs)(`select`,{value:t,onChange:e=>a(Number(e.target.value)),className:`px-2 py-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white text-sm focus:outline-none focus:border-bambu-green`,children:[[15,30,50,100].map(e=>(0,G.jsx)(`option`,{value:e,children:e},e)),(0,G.jsx)(`option`,{value:-1,children:o(`inventory.all`)})]}),!s&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{onClick:()=>i(0),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(_s,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(Math.max(0,e-1)),disabled:e===0,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(hs,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-bambu-gray px-2 whitespace-nowrap`,children:[o(`inventory.page`),` `,e+1,` `,o(`inventory.of`),` `,r]}),(0,G.jsx)(`button`,{onClick:()=>i(Math.min(r-1,e+1)),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(ms,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:()=>i(r-1),disabled:e>=r-1,className:`p-1.5 rounded text-bambu-gray hover:text-white disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,children:(0,G.jsx)(vs,{className:`w-4 h-4`})})]})]})]})}function J1e({spool:e,remaining:t,pct:n,onClick:r,onPrintLabel:i,onCopy:a,t:o,colorizeLocationSensors:s,locationSensorAboveColor:c,locationSensorBelowColor:l,locationSensorOptimalColor:u}){let d=bH({rgba:e.rgba,extraColors:e.extra_colors,effectType:e.effect_type,subtype:e.subtype,effectSize:`card`});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg overflow-hidden border border-bambu-dark-tertiary hover:border-bambu-green transition-colors cursor-pointer ${e.archived_at?`opacity-50`:``}`,onClick:r,children:[(0,G.jsxs)(`div`,{className:`h-14 flex items-center justify-center`,style:d,children:[(0,G.jsx)(`span`,{className:`bg-white/90 text-gray-800 px-3 py-0.5 rounded-full text-sm font-medium`,children:kf(e.color_name,e.rgba)||`-`}),a&&(0,G.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),a()},className:`p-1.5 bg-black/20 hover:bg-black/40 text-white rounded-full transition-colors`,title:o(`inventory.copySpool`),children:(0,G.jsx)(Vs,{className:`w-3.5 h-3.5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{className:`font-semibold text-white`,children:[e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e.brand||`-`})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[i&&(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),i()},className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,title:o(`inventory.labels.printOne`),"aria-label":o(`inventory.labels.printOne`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-bambu-gray bg-bambu-dark-tertiary px-2 py-1 rounded`,children:[`#`,e.id]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-xs text-bambu-gray mb-1`,children:[(0,G.jsx)(`span`,{children:o(`inventory.remaining`)}),(0,G.jsxs)(`span`,{children:[Math.round(n),`%`]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`flex-1 h-2 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${n>50?`bg-bambu-green`:n>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(n,100)}%`}})}),(0,G.jsxs)(`span`,{className:`text-xs text-bambu-gray min-w-[40px] text-right`,children:[Math.round(t),`g`]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[o(`inventory.labelWeight`),`: `]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:C9(e.label_weight)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{className:`text-bambu-gray/60`,children:[o(`inventory.weightUsed`),`: `]}),(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e.weight_used>0?C9(e.weight_used):`-`})]})]}),e.location_id&&(0,G.jsx)(Z1e,{locationId:e.location_id,locationName:e.storage_location??null,isLast:!e.note,colorize:s,aboveColor:c,belowColor:l,optimalColor:u}),e.note&&(0,G.jsx)(`div`,{className:`text-xs text-bambu-gray/60 pt-3 border-t border-bambu-dark-tertiary truncate`,title:e.note,children:e.note})]})]})}var Y1e={temperature:0,humidity:1,battery:2};function X1e(e){return e===`humidity`?`mr-[2px]`:e===`battery`?`mr-[3px]`:``}function O9(e,t){return PT(e,t,{decimals:2})}function k9(e,t,n,r,i){return t&&B6(z6(e),n,r,i)||`text-bambu-gray`}function Z1e({locationId:e,locationName:t,isLast:n,colorize:r,aboveColor:i,belowColor:a,optimalColor:o}){let{t:s}=U(),{data:c}=K({queryKey:[`settings`],queryFn:Z.getSettings}),l=(c?.location_sensor_poll_interval||120)*1e3,{data:u}=K({queryKey:[`locationHaSensors`],queryFn:()=>Z.getLocationHASensors()}),d=(u??[]).some(t=>t.location_id===e),{data:f}=K({queryKey:[`locationHaSensorReadings`,e],queryFn:()=>Z.getLocationHASensorReadings(e,!1),refetchInterval:l,enabled:d}),p=f?.filter(e=>e.show_on_card);if(!p?.length)return null;let m=p.find(e=>e.device_class===`battery`),h=p.filter(e=>e.device_class!==`battery`).sort((e,t)=>(Y1e[e.device_class??``]??99)-(Y1e[t.device_class??``]??99));return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pt-3 border-t border-bambu-dark-tertiary text-xs text-bambu-gray ${n?`-mb-1`:``}`,children:[t&&(0,G.jsx)(`span`,{className:`truncate`,children:t}),(0,G.jsx)(`span`,{className:`text-bambu-gray/40`,children:`|`}),(0,G.jsx)(`div`,{className:`flex items-center gap-3`,children:h.map((e,t)=>{let n=FT(e),c=t===0?`ml-[-3.6px]`:``;return(0,G.jsxs)(`span`,{title:e.name,className:`flex items-center gap-[3px]`,children:[(0,G.jsx)(n,{className:`w-3 h-3 ${X1e(e.device_class)} ${c}`}),(0,G.jsx)(`span`,{className:k9(e,r,i,a,o),children:O9(e,s)})]},e.id)})}),m&&(()=>{let e=FT(m);return(0,G.jsxs)(`span`,{title:m.name,className:`flex items-center gap-[3px] ml-auto`,children:[(0,G.jsx)(e,{className:`w-3 h-3 ${X1e(m.device_class)}`}),(0,G.jsx)(`span`,{className:k9(m,r,i,a,o),children:O9(m,s)})]},m.id)})()]})}function Q1e({spool:e,remaining:t,pct:n,isSelected:r,onToggleSelected:i,onEdit:a,onCopy:o,onRestore:s,onArchive:c,onDelete:l,onPrintLabel:u,onResetConsumedCounter:d,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C}){return(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-tertiary/30 transition-colors cursor-pointer ${e.archived_at?`opacity-50`:``} ${r?`bg-bambu-green/10`:``}`,onClick:a,children:[(0,G.jsx)(`td`,{className:`w-10 px-3 py-3`,onClick:e=>e.stopPropagation(),children:i&&(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":v(`inventory.bulk.selectRow`),checked:!!r,onChange:i})}),f.map(r=>(0,G.jsx)(`td`,{className:`py-3 px-4`,children:T9[r]?.({spool:e,remaining:t,pct:n,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})},r)),(0,G.jsx)(`td`,{className:`py-3 px-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`button`,{onClick:a,className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:v(`common.edit`),children:(0,G.jsx)(kl,{className:`w-4 h-4`})}),o&&(0,G.jsx)(`button`,{onClick:o,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:v(`inventory.copySpool`),children:(0,G.jsx)(Vs,{className:`w-4 h-4`})}),u&&(0,G.jsx)(`button`,{onClick:u,className:`p-1.5 text-bambu-gray hover:text-white rounded transition-colors`,title:v(`inventory.labels.printOne`),children:(0,G.jsx)(Rl,{className:`w-4 h-4`})}),d&&e.weight_used>0&&(0,G.jsx)(`button`,{onClick:d,className:`p-1.5 text-bambu-gray hover:text-orange-600 dark:hover:text-orange-400 rounded transition-colors`,title:v(`inventory.resetConsumedCounterTooltip`),children:(0,G.jsx)(nc,{className:`w-4 h-4`})}),e.archived_at?(0,G.jsx)(`button`,{onClick:s,className:`p-1.5 text-bambu-gray hover:text-bambu-green rounded transition-colors`,title:v(`inventory.restore`),children:(0,G.jsx)(Wl,{className:`w-4 h-4`})}):(0,G.jsx)(`button`,{onClick:c,className:`p-1.5 text-bambu-gray hover:text-yellow-600 dark:hover:text-yellow-400 rounded transition-colors`,title:v(`inventory.archive`),children:(0,G.jsx)(Po,{className:`w-4 h-4`})}),(0,G.jsx)(`button`,{onClick:l,className:`p-1.5 text-bambu-gray hover:text-red-600 dark:hover:text-red-400 rounded transition-colors`,title:v(`common.delete`),children:(0,G.jsx)(Pu,{className:`w-4 h-4`})})]})})]})}function $1e({spools:e,headerSpool:t,remaining:n,pct:r,isExpanded:i,onToggle:a,onEdit:o,onCopy:s,onArchive:c,onDelete:l,onPrintLabel:u,onResetConsumedCounter:d,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C,selectedIds:w,onToggleSelected:T,onToggleGroupSelected:E}){let D=!!w&&e.every(e=>w.has(e.id));return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`tr`,{className:`border-b border-bambu-dark-tertiary/50 hover:bg-bambu-dark-tertiary/30 transition-colors cursor-pointer bg-bambu-green/5`,onClick:a,children:[(0,G.jsx)(`td`,{className:`w-10 px-3 py-3`,onClick:e=>e.stopPropagation(),children:E&&(0,G.jsx)(`input`,{type:`checkbox`,className:`h-4 w-4 cursor-pointer`,"aria-label":v(`inventory.bulk.selectGroup`),checked:D,onChange:t=>E(e.map(e=>e.id),t.target.checked)})}),f.map((a,o)=>(0,G.jsx)(`td`,{className:`py-3 px-4`,children:o===0?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray transition-transform ${i?``:`-rotate-90`}`}),T9[a]?.({spool:t,remaining:n,pct:r,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})]}):a===`id`?(0,G.jsx)(`span`,{className:`text-xs font-medium bg-bambu-green/20 text-bambu-green px-2 py-0.5 rounded-full`,children:v(`inventory.groupedSpools`,{count:e.length})}):T9[a]?.({spool:t,remaining:n,pct:r,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C})},a)),(0,G.jsx)(`td`,{className:`py-3 px-4`,children:(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:e.map(e=>`#${e.id}`).join(`, `)})})]}),i&&e.map(e=>{let t=Math.max(0,e.label_weight-e.weight_used);return(0,G.jsx)(Q1e,{spool:e,remaining:t,pct:e.label_weight>0?t/e.label_weight*100:0,isSelected:w?.has(e.id),onToggleSelected:T?()=>T(e.id):void 0,onEdit:()=>o(e),onCopy:s?()=>s(e):void 0,onRestore:()=>{},onArchive:()=>c(e.id),onDelete:()=>l(e.id),onPrintLabel:u?()=>u(e.id):void 0,onResetConsumedCounter:d?()=>d(e.id):void 0,visibleColumns:f,assignmentMap:p,catalogMap:m,locationReadingsMap:h,currencySymbol:g,dateFormat:_,t:v,onSyncWeight:y,colorizeLocationSensors:b,locationSensorAboveColor:x,locationSensorBelowColor:S,locationSensorOptimalColor:C},e.id)})]})}function e0e({hasFilters:e,onAddSpool:t,t:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 px-4`,children:[(0,G.jsxs)(`div`,{className:`relative mb-6`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 -m-4 bg-bambu-green/5 rounded-full blur-2xl`}),(0,G.jsxs)(`div`,{className:`relative flex items-center justify-center w-24 h-24 rounded-2xl bg-gradient-to-br from-bambu-dark-secondary to-bambu-dark-tertiary border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsx)(`div`,{className:`absolute -top-1 -right-1 w-3 h-3 rounded-full bg-bambu-green/30`}),(0,G.jsx)(`div`,{className:`absolute -bottom-2 -left-2 w-2 h-2 rounded-full bg-bambu-green/20`}),e?(0,G.jsx)(Ql,{className:`w-10 h-10 text-bambu-gray/40`,strokeWidth:1.5}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full border-4 border-bambu-gray/20 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-6 h-6 rounded-full bg-bambu-gray/10 border-2 border-bambu-gray/20`})}),(0,G.jsx)(`div`,{className:`absolute -bottom-1 -right-1 w-6 h-6 rounded-full bg-bambu-green flex items-center justify-center shadow-md`,children:(0,G.jsx)(`span`,{className:`text-white text-lg font-bold leading-none`,children:`+`})})]})]})]}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-white mb-2 text-center`,children:e?n(`inventory.noSpoolsMatch`):n(`inventory.noSpools`).split(`.`)[0]}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray text-center max-w-sm mb-6`,children:n(e?`inventory.noSpoolsMatchDesc`:`inventory.noSpools`)}),!e&&(0,G.jsxs)(Q,{onClick:t,children:[(0,G.jsx)(Cl,{className:`w-4 h-4`}),n(`inventory.addSpool`)]})]})}function A9(e,t){let n=e?.[t];return typeof n==`string`?n:``}function t0e(e){return e.replace(/(https?:\/\/(?:makerworld|public-cdn)\.bblmw\.com\/[^\s"']+)/gi,e=>`/api/v1/makerworld/thumbnail?url=${encodeURIComponent(e)}`)}function j9(e){return e?/^https?:\/\/(makerworld|public-cdn)\.bblmw\.com\//i.test(e)?`/api/v1/makerworld/thumbnail?url=${encodeURIComponent(e)}`:e:``}function M9(e,t){let n=e?.[t];return typeof n==`number`?n:null}function n0e(e,t){let n=e?.[t];return n&&typeof n==`object`&&!Array.isArray(n)?n:void 0}function r0e(e,t=0,n=[]){n.push({folder:e,depth:t});for(let r of e.children??[])r0e(r,t+1,n);return n}function i0e(e,t){return t(e<1?`makerworld.phaseResolving`:`makerworld.phaseDownloading`)}function a0e(e){let[t,n]=(0,y.useState)(0);return(0,y.useEffect)(()=>{if(!e){n(0);return}let t=Date.now(),r=()=>n(Math.floor((Date.now()-t)/1e3));r();let i=window.setInterval(r,1e3);return()=>window.clearInterval(i)},[e]),t}function o0e(){let{t:e}=U(),{hasPermission:t}=Nd(),{showToast:n}=qd(),r=co(),i=t(`makerworld:import`),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)({}),S=K({queryKey:[`makerworld-status`],queryFn:()=>Z.getMakerworldStatus()}),C=K({queryKey:[`library-folders`],queryFn:()=>Z.getLibraryFolders()}),w=K({queryKey:[`makerworld-recent-imports`],queryFn:()=>Z.getMakerworldRecentImports(10)}),T=K({queryKey:[`settings`],queryFn:()=>Z.getSettings()}),E=T.data?.use_slicer_api??!1,D=T.data?.preferred_slicer||`bambu_studio`,O=HW(T.data?.open_in_slicer,T.data?.preferred_slicer),k=E?D:O,A=k===`orcaslicer`?`OrcaSlicer`:`Bambu Studio`,[j,M]=(0,y.useState)(null),N=(e,t)=>{M({kind:`libraryFile`,id:e,filename:t})},P=q({mutationFn:e=>Z.resolveMakerworldUrl(e),onSuccess:(e,t)=>{c(e),v(t),x({})},onError:t=>n(t.message||e(`makerworld.errors.resolveFailed`),`error`)});(0,y.useEffect)(()=>{s!==null&&a.trim()!==_.trim()&&(c(null),v(``),x({}))},[a,s,_]);let F=q({mutationFn:({instanceId:e,profileId:t})=>Z.importMakerworldInstance(s?.model_id??0,e,t,l),onSuccess:t=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),t.profile_id&&x(e=>({...e,[t.profile_id]:t})),n(t.was_existing?e(`makerworld.alreadyInLibrary`):e(`makerworld.importSuccess`,{filename:t.filename}),`success`)},onError:t=>n(t.message||e(`makerworld.errors.downloadFailed`),`error`)}),I=q({mutationFn:({libraryFileId:e})=>Z.deleteLibraryFile(e),onSuccess:(t,{profileId:i})=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),r.invalidateQueries({queryKey:[`makerworld-recent-imports`]}),x(e=>{let t={...e};return delete t[i],t}),m(null),n(e(`makerworld.importDeleted`),`success`)},onError:t=>{m(null),n(t.message||e(`makerworld.errors.deleteFailed`),`error`)}}),L=q({mutationFn:({instanceId:e,profileId:t})=>Z.importMakerworldInstance(s?.model_id??0,e,t,l),onSuccess:async e=>{r.invalidateQueries({queryKey:[`library-files`]}),r.invalidateQueries({queryKey:[`library-folders`]}),r.invalidateQueries({queryKey:[`makerworld-recent-imports`]}),e.profile_id&&x(t=>({...t,[e.profile_id]:e})),E?N(e.library_file_id,e.filename):await te(e.library_file_id,e.filename,k)},onError:t=>n(t.message||e(`makerworld.errors.downloadFailed`),`error`)}),R=a0e(F.isPending||L.isPending),z=i0e(R,e),B=e=>{e?.preventDefault();let t=a.trim();t&&P.mutate(t)};(0,y.useEffect)(()=>{if(!h)return;let e=e=>{e.key===`Escape`?g(null):e.key===`ArrowLeft`?g(e=>e&&e.index>0?{...e,index:e.index-1}:e):e.key===`ArrowRight`&&g(e=>e&&e.indexwindow.removeEventListener(`keydown`,e)},[h]);let V=e=>{let t=(Array.isArray(e.pictures)?e.pictures:[]).filter(e=>typeof e==`object`&&!!e).map(e=>({name:A9(e,`name`)||`image`,url:A9(e,`url`)})).filter(e=>e.url);if(t.length>0)return t;let n=A9(e,`cover`);return n?[{name:`cover`,url:n}]:[]},ee=async()=>{if(!s)return;let e=s.instances.filter(e=>{let t=M9(e,`profileId`);return t!==null&&!b[t]});if(e.length!==0){f({current:0,total:e.length});try{for(let t=0;t{try{let{token:r}=await Z.createLibrarySlicerToken(e),i=Z.getLibrarySlicerDownloadUrl(e,r,t);KW(`${window.location.origin}${i}`,n)}catch{let t=Z.getLibraryFileDownloadUrl(e);KW(`${window.location.origin}${t}`,n)}},ne=s?.design,re=n0e(ne,`designCreator`),ie=s?.instances??[],ae=(s?.already_imported_library_ids.length??0)>0,oe=S.data?.can_download??!1,se=S.data?.sign_in_expired??!1,H=(0,y.useMemo)(()=>A9(ne,`coverUrl`),[ne]),ce=A9(ne,`title`),le=A9(ne,`summary`),ue=A9(ne,`license`),de=M9(ne,`downloadCount`);return(0,G.jsxs)(`div`,{className:`p-4 md:p-8 max-w-screen-2xl space-y-6`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h1`,{className:`text-2xl font-bold text-white flex items-center gap-3`,children:[(0,G.jsx)(Ac,{className:`w-7 h-7 text-bambu-green`}),e(`makerworld.title`)]}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`makerworld.description`)})]}),(0,G.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-[1fr_20rem]`,children:[(0,G.jsxs)(`div`,{className:`space-y-6 min-w-0`,children:[!oe&&(0,G.jsx)(zd,{className:`border-amber-300 dark:border-amber-700 bg-amber-50 dark:bg-amber-900/20`,children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3 py-2`,children:[(0,G.jsx)(ys,{className:`w-5 h-5 text-amber-600 dark:text-amber-400 mt-0.5 shrink-0`}),(0,G.jsxs)(`div`,{className:`text-sm`,children:[(0,G.jsx)(`p`,{className:`font-medium text-amber-900 dark:text-amber-100`,children:e(se?`makerworld.signInExpiredTitle`:`makerworld.signInRequiredTitle`)}),(0,G.jsxs)(`p`,{className:`text-amber-800 dark:text-amber-200 mt-1`,children:[e(se?`makerworld.signInExpiredBody`:`makerworld.signInRequiredBody`),` `,(0,G.jsx)(Ai,{to:`/profiles`,className:`underline`,children:e(`makerworld.openCloudSettings`)})]})]})]})})}),(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`makerworld.pasteUrlHeader`)})}),(0,G.jsx)(Vd,{children:(0,G.jsxs)(`form`,{onSubmit:B,className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:e(`makerworld.pasteUrlPlaceholder`),className:`flex-1 min-w-0 px-3 py-2 border rounded bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700`,autoComplete:`off`}),(0,G.jsxs)(Q,{type:`submit`,variant:`primary`,disabled:!a.trim()||P.isPending,children:[P.isPending?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}):(0,G.jsx)(zo,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.resolveButton`)})]})]})})]}),s&&(0,G.jsx)(zd,{children:(0,G.jsx)(Vd,{children:(0,G.jsxs)(`div`,{className:`flex gap-4 py-2`,children:[H&&(0,G.jsx)(`img`,{src:j9(H),alt:ce,className:`w-32 h-32 object-cover rounded`,loading:`lazy`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-xl font-semibold truncate`,children:ce||e(`makerworld.untitledModel`)}),re&&(0,G.jsx)(`p`,{className:`text-sm text-gray-600 dark:text-gray-400 mt-1`,children:e(`makerworld.byCreator`,{name:A9(re,`name`)})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 mt-2 text-xs text-gray-500 dark:text-gray-400`,children:[de!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.downloadsCount`,{count:de})}),ue&&(0,G.jsxs)(`span`,{children:[e(`makerworld.licensePrefix`),`: `,ue]}),ae&&(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-emerald-600 dark:text-emerald-400`,children:[(0,G.jsx)(fs,{className:`w-3 h-3`}),` `,e(`makerworld.alreadyImported`)]})]}),le&&(0,G.jsx)(`div`,{className:`mt-3 text-sm prose prose-sm max-w-none dark:prose-invert line-clamp-3`,dangerouslySetInnerHTML:{__html:JG.sanitize(t0e(le))}}),s&&(0,G.jsxs)(`a`,{href:`https://makerworld.com/models/${s.model_id}${s.profile_id?`#profileId-${s.profile_id}`:``}`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-3 inline-flex items-center gap-1 text-xs text-brand-500 hover:underline`,children:[(0,G.jsx)(rc,{className:`w-3 h-3`}),` `,e(`makerworld.openOnMakerworld`)]})]})]})})}),s&&ie.length>0&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:e(`makerworld.platesHeader`,{count:ie.length})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(`label`,{className:`text-xs text-gray-600 dark:text-gray-400`,children:e(`makerworld.importTo`)}),(0,G.jsxs)(`select`,{value:l??``,onChange:e=>u(e.target.value?Number(e.target.value):null),className:`text-sm px-2 py-1 border rounded bg-white dark:bg-gray-800 border-gray-300 dark:border-gray-700`,disabled:d!==null,children:[(0,G.jsx)(`option`,{value:``,children:e(`makerworld.folderAuto`)}),(C.data??[]).filter(e=>!(e.is_external&&e.external_readonly)).flatMap(e=>r0e(e)).map(({folder:e,depth:t})=>(0,G.jsx)(`option`,{value:e.id,children:`${`— `.repeat(t)}${e.name}`},e.id))]}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,disabled:!i||!oe||d!==null||F.isPending||L.isPending,onClick:ee,children:d===null?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.importAll`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[e(`makerworld.importAllProgress`,{current:d.current,total:d.total}),R>0&&` · ${z} · ${R}s`]})]})})]})]})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`grid gap-3`,children:ie.map((t,n)=>{let r=M9(t,`id`),a=M9(t,`profileId`),o=A9(t,`title`),s=A9(t,`cover`),c=M9(t,`materialCnt`),l=t?.needAms===!0,u=M9(t,`downloadCount`),f=t?.compatibility??null,p=t?.otherCompatibility??null,h=f?.devProductName??null,_=Array.isArray(p)?p.map(e=>e?.devProductName??``).filter(Boolean):[];if(r==null)return null;let v=F.isPending&&F.variables?.instanceId===r,y=L.isPending&&L.variables?.instanceId===r,x=a===null?void 0:b[a];return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 p-3 border rounded border-gray-200 dark:border-gray-700`,children:[(0,G.jsxs)(`div`,{className:`flex gap-3 items-center`,children:[(()=>{let n=V(t),r=n.length>0;return(0,G.jsxs)(`button`,{type:`button`,disabled:!r,onClick:()=>r&&g({images:n,index:0}),className:`relative w-16 h-16 shrink-0 rounded overflow-hidden group`,"aria-label":e(`makerworld.openGallery`),children:[s?(0,G.jsx)(`img`,{src:j9(s),alt:``,className:`w-16 h-16 object-cover`,loading:`lazy`}):(0,G.jsx)(`div`,{className:`w-16 h-16 bg-gray-100 dark:bg-gray-800`}),n.length>1&&(0,G.jsxs)(`span`,{className:`absolute bottom-0.5 right-0.5 bg-black/70 text-white text-[10px] px-1.5 py-0.5 rounded flex items-center gap-1`,children:[(0,G.jsx)(Uc,{className:`w-2.5 h-2.5`}),n.length]})]})})(),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`font-medium truncate`,children:o||e(`makerworld.plateDefaultName`,{n:n+1})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-3 text-xs text-gray-500 dark:text-gray-400 mt-1`,children:[h&&(0,G.jsx)(`span`,{className:`font-medium text-gray-700 dark:text-gray-300`,children:e(`makerworld.slicedFor`,{printer:h,defaultValue:`Sliced for {{printer}}`})}),c!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.materialCount`,{count:c})}),l&&(0,G.jsx)(`span`,{children:e(`makerworld.amsRequired`)}),u!==null&&(0,G.jsx)(`span`,{children:e(`makerworld.downloadsCount`,{count:u})})]}),_.length>0&&(0,G.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-1`,title:_.join(`, `),children:e(`makerworld.alsoCompatible`,{printers:_.slice(0,6).join(`, `)+(_.length>6?`…`:``),defaultValue:`Also marked compatible: {{printers}}`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 shrink-0`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,disabled:!i||!oe||v||y||d!==null,onClick:()=>F.mutate({instanceId:r,profileId:a}),title:oe?void 0:e(`makerworld.signInRequiredTitle`),children:v?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[z,R>0&&` · ${R}s`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Xs,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.importToLibrary`)})]})}),(0,G.jsx)(Q,{variant:`primary`,size:`sm`,disabled:!i||!oe||v||y||d!==null,onClick:()=>L.mutate({instanceId:r,profileId:a}),title:oe?void 0:e(`makerworld.signInRequiredTitle`),children:y?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),(0,G.jsxs)(`span`,{className:`ml-2`,children:[z,R>0&&` · ${R}s`]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(rc,{className:`w-4 h-4`}),(0,G.jsx)(`span`,{className:`ml-2`,children:e(`makerworld.sliceIn`,{slicer:A})})]})})]})]}),x&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pl-20 text-xs`,children:[(0,G.jsx)(fs,{className:`w-3.5 h-3.5 text-emerald-600 dark:text-emerald-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-emerald-700 dark:text-emerald-300`,children:x.was_existing?e(`makerworld.lastImportAlreadyInLibrary`):e(`makerworld.lastImportSuccess`)}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=x.folder_id?`/files?folder=${x.folder_id}`:`/files`;window.location.assign(e)},children:[(0,G.jsx)(vc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.viewInLibrary`)})]}),E?(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>N(x.library_file_id,x.filename),children:[(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`slice.action`,`Slice`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(x.library_file_id,x.filename,`bambu_studio`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.openInBambuStudio`)})]}),(0,G.jsxs)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(x.library_file_id,x.filename,`orcaslicer`),children:[(0,G.jsx)(rc,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`span`,{className:`ml-1.5`,children:e(`makerworld.openInOrcaSlicer`)})]})]}),(0,G.jsx)(`div`,{className:`ml-auto`,children:(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,disabled:I.isPending&&I.variables?.profileId===a,onClick:()=>{a!==null&&m({libraryFileId:x.library_file_id,profileId:a,filename:x.filename})},title:e(`makerworld.deleteImport`),children:I.isPending&&I.variables?.profileId===a?(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin`}):(0,G.jsx)(Pu,{className:`w-3.5 h-3.5 text-red-500`})})})]})]},r)})})})]})]}),(0,G.jsx)(`aside`,{className:`lg:sticky lg:top-6 lg:self-start min-w-0`,children:w.data&&w.data.length>0&&(0,G.jsxs)(zd,{children:[(0,G.jsx)(Bd,{children:(0,G.jsx)(`h2`,{className:`text-base font-semibold`,children:e(`makerworld.recentImportsHeader`)})}),(0,G.jsx)(Vd,{children:(0,G.jsx)(`div`,{className:`flex flex-col gap-2 max-h-[28rem] overflow-y-auto -mx-2 px-2`,children:w.data.map(t=>(0,G.jsxs)(`div`,{className:`flex gap-2 p-2 border rounded border-gray-200 dark:border-gray-700`,children:[t.thumbnail_path?(0,G.jsx)(`img`,{src:Z.getLibraryFileThumbnailUrl(t.library_file_id),alt:``,className:`w-12 h-12 shrink-0 object-cover rounded bg-gray-100 dark:bg-gray-800`,loading:`lazy`}):(0,G.jsx)(`div`,{className:`w-12 h-12 shrink-0 rounded bg-gray-100 dark:bg-gray-800`}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 flex flex-col gap-1`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium truncate`,title:t.filename,children:t.filename}),(0,G.jsxs)(`div`,{className:`flex gap-0.5`,children:[(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{let e=t.folder_id?`/files?folder=${t.folder_id}`:`/files`;window.location.assign(e)},title:e(`makerworld.viewInLibrary`),children:(0,G.jsx)(vc,{className:`w-3.5 h-3.5`})}),E?(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>N(t.library_file_id,t.filename),title:e(`slice.action`,`Slice`),children:(0,G.jsx)(Rs,{className:`w-3.5 h-3.5`})}):(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>te(t.library_file_id,t.filename,`bambu_studio`),title:e(`makerworld.openInBambuStudio`),children:(0,G.jsx)(rc,{className:`w-3.5 h-3.5`})}),t.source_url&&(0,G.jsx)(`a`,{href:t.source_url,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center justify-center h-7 w-7 rounded text-gray-500 hover:text-gray-700 dark:hover:text-gray-300`,title:e(`makerworld.openOnMakerworld`),children:(0,G.jsx)(Ac,{className:`w-3.5 h-3.5`})})]})]})]},t.library_file_id))})})]})})]}),(0,G.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 pt-4 border-t border-gray-200 dark:border-gray-700`,children:e(`makerworld.disclaimer`)}),p&&(0,G.jsx)(of,{title:e(`makerworld.deleteImport`),message:e(`makerworld.confirmDelete`,{filename:p.filename}),confirmText:e(`makerworld.deleteImport`),variant:`danger`,isLoading:I.isPending,loadingText:e(`makerworld.importDeleting`),onCancel:()=>m(null),onConfirm:()=>I.mutate({libraryFileId:p.libraryFileId,profileId:p.profileId})}),j&&(0,G.jsx)(RW,{source:j,onClose:()=>M(null)}),h&&(0,G.jsxs)(`div`,{className:`fixed inset-0 bg-black/90 flex items-center justify-center z-50`,onClick:()=>g(null),role:`dialog`,"aria-modal":`true`,children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute top-4 right-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white`,onClick:e=>{e.stopPropagation(),g(null)},"aria-label":e(`common.close`,`Close`),children:(0,G.jsx)(nd,{className:`w-5 h-5`})}),h.images.length>1&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,className:`absolute left-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white disabled:opacity-30`,disabled:h.index===0,onClick:e=>{e.stopPropagation(),g(e=>e&&{...e,index:Math.max(0,e.index-1)})},"aria-label":e(`makerworld.galleryPrev`),children:(0,G.jsx)(hs,{className:`w-6 h-6`})}),(0,G.jsx)(`button`,{type:`button`,className:`absolute right-4 p-2 bg-white/10 hover:bg-white/20 rounded-full text-white disabled:opacity-30`,disabled:h.index>=h.images.length-1,onClick:e=>{e.stopPropagation(),g(e=>e&&{...e,index:Math.min(e.images.length-1,e.index+1)})},"aria-label":e(`makerworld.galleryNext`),children:(0,G.jsx)(ms,{className:`w-6 h-6`})})]}),(0,G.jsx)(`img`,{src:j9(h.images[h.index].url),alt:h.images[h.index].name,className:`max-w-[90vw] max-h-[90vh] object-contain`,onClick:e=>e.stopPropagation()}),h.images.length>1&&(0,G.jsxs)(`div`,{className:`absolute bottom-6 left-1/2 -translate-x-1/2 text-white bg-black/60 px-3 py-1 rounded text-xs`,children:[h.index+1,` / `,h.images.length]})]})]})}var s0e=[`DEBUG`,`INFO`,`WARNING`,`ERROR`],N9={DEBUG:`text-gray-400`,INFO:`text-blue-400`,WARNING:`text-yellow-400`,ERROR:`text-red-400`},c0e={DEBUG:$o,INFO:Wc,WARNING:Lu,ERROR:ys};function l0e(){let e=co(),[t,n]=(0,y.useState)(!0),[r,i]=(0,y.useState)(new Set),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`ALL`),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),p=(0,y.useRef)(null),{data:m,isLoading:h,refetch:g}=K({queryKey:[`application-logs`,s,a],queryFn:()=>Dd.getLogs({limit:200,level:s===`ALL`?void 0:s,search:a||void 0}),refetchInterval:d?2e3:!1,enabled:l});(0,y.useEffect)(()=>{l||f(!1)},[l]);let _=q({mutationFn:()=>Dd.clearLogs(),onSuccess:()=>{e.invalidateQueries({queryKey:[`application-logs`]})}});(0,y.useEffect)(()=>{t&&p.current&&m?.entries&&(p.current.scrollTop=p.current.scrollHeight)},[m?.entries,t]);let v=e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},b=e=>{let t=e.split(` `);return t.length>=2?t[1]:e},x=(0,y.useMemo)(()=>m?.entries??[],[m?.entries]),S=(0,y.useMemo)(()=>[...x].reverse(),[x]),C=({level:e})=>(0,G.jsx)(c0e[e]||Wc,{className:`w-3.5 h-3.5 ${N9[e]||`text-gray-400`}`});return(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{onClick:()=>u(!l),className:`w-full flex items-center justify-between p-4 hover:bg-bambu-dark-tertiary/50 transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${d?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:(0,G.jsx)($o,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{className:`text-left`,children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:`Application Logs`}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:d?`Live streaming - ${m?.filtered_count??0} entries`:`View and filter application logs`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 px-2 py-1 bg-bambu-green/20 rounded text-bambu-green text-xs`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 bg-bambu-green rounded-full animate-pulse`}),`Live`]}),l?(0,G.jsx)(gs,{className:`w-5 h-5 text-bambu-gray`}):(0,G.jsx)(ps,{className:`w-5 h-5 text-bambu-gray`})]})]}),l&&(0,G.jsxs)(`div`,{className:`border-t border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2 p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[d?(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),f(!1)},className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-red-100 dark:bg-red-500/20 text-red-700 dark:text-red-400 hover:bg-red-200 dark:hover:bg-red-500/30 rounded transition-colors`,children:[(0,G.jsx)(bu,{className:`w-4 h-4`}),`Stop`]}):(0,G.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),f(!0),g()},className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30 rounded transition-colors`,children:[(0,G.jsx)(Nl,{className:`w-4 h-4`}),`Start`]}),(0,G.jsxs)(`button`,{onClick:()=>_.mutate(),disabled:_.isPending||x.length===0,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-secondary rounded transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Pu,{className:`w-4 h-4`}),`Clear`]}),(0,G.jsx)(`button`,{onClick:()=>g(),disabled:h,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bambu-dark-tertiary text-bambu-gray hover:text-white hover:bg-bambu-dark-secondary rounded transition-colors disabled:opacity-50`,children:(0,G.jsx)(Hl,{className:`w-4 h-4 ${h?`animate-spin`:``}`})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-bambu-gray cursor-pointer`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked),className:`rounded border-bambu-dark-tertiary bg-bambu-dark-tertiary`}),`Auto-scroll`]}),(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[m?.filtered_count??0,`/`,m?.total_in_file??0]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(Ql,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`input`,{type:`text`,placeholder:`Search message or logger name...`,value:a,onChange:e=>o(e.target.value),className:`w-full pl-8 pr-8 py-1.5 text-sm bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded text-white placeholder-bambu-gray focus:border-bambu-green focus:outline-none`}),a&&(0,G.jsx)(`button`,{onClick:()=>o(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-bambu-gray hover:text-white`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 bg-bambu-dark-secondary rounded border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{onClick:()=>c(`ALL`),className:`px-2 py-1.5 text-xs rounded-l transition-colors ${s===`ALL`?`bg-bambu-green text-white`:`text-bambu-gray hover:text-white`}`,children:`All`}),s0e.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>c(e),className:`px-2 py-1.5 text-xs transition-colors flex items-center gap-1 ${t===s0e.length-1?`rounded-r`:``} ${s===e?`${N9[e]} bg-bambu-dark-tertiary`:`text-bambu-gray hover:text-white`}`,children:e},e))]})]})]}),(0,G.jsx)(`div`,{ref:p,className:`overflow-auto font-mono text-xs bg-black min-h-[300px] max-h-[500px]`,children:x.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-[300px] text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`mb-2`,children:`No log entries found`}),(0,G.jsx)(`p`,{className:`text-sm`,children:`Log file may be empty or cleared`})]}):(0,G.jsx)(`div`,{className:`divide-y divide-bambu-dark-tertiary/30`,children:S.map((e,t)=>{let n=r.has(t),i=e.message.includes(` `);return(0,G.jsx)(`div`,{className:`p-2 cursor-pointer hover:bg-bambu-dark-secondary/50 transition-colors ${n?`bg-bambu-dark-secondary/30`:``}`,onClick:()=>i&&v(t),children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray/70 shrink-0 w-20`,children:b(e.timestamp)}),(0,G.jsx)(`span`,{className:`shrink-0`,children:(0,G.jsx)(C,{level:e.level})}),(0,G.jsxs)(`span`,{className:`text-purple-400/80 shrink-0 max-w-[200px] truncate`,title:e.logger_name,children:[`[`,e.logger_name,`]`]}),(0,G.jsx)(`span`,{className:`flex-1 ${N9[e.level]||`text-white/80`} ${!n&&i?`truncate`:``}`,children:n?(0,G.jsx)(`pre`,{className:`whitespace-pre-wrap break-all`,children:e.message}):e.message.split(` -`)[0]}),i&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50 shrink-0`,children:n?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})})]})},t)})})}),(0,G.jsx)(`div`,{className:`flex items-center justify-between p-3 border-t border-bambu-dark-tertiary text-sm text-bambu-gray`,children:d?(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 bg-green-500 rounded-full animate-pulse`}),`Auto-refreshing every 2 seconds`]}):(0,G.jsx)(`span`,{children:`Click Start to enable live log streaming`})})]})]})}function l0e(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function P9({icon:e,label:t,value:n,subValue:r,color:i=`text-bambu-green`}){return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary ${i}`,children:(0,G.jsx)(e,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white truncate`,children:n}),r&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:r})]})]})}function u0e({percent:e,color:t=`bg-bambu-green`}){return(0,G.jsx)(`div`,{className:`w-full h-2 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full ${t} transition-all duration-300`,style:{width:`${Math.min(100,e)}%`}})})}function F9({title:e,icon:t,children:n}){return(0,G.jsxs)(zd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e})]}),n]})}function d0e(){let{t:e}=U(),t=co(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),{data:u,isLoading:d,refetch:f,isFetching:p}=K({queryKey:[`systemInfo`],queryFn:Z.getSystemInfo,refetchInterval:3e4}),{data:m}=K({queryKey:[`debugLogging`],queryFn:Dd.getDebugLoggingState,staleTime:10*1e3,refetchInterval:10*1e3}),{data:h}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:g}=K({queryKey:[`library-stats`],queryFn:Z.getLibraryStats}),{data:_}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:v,refetch:b,isFetching:x}=K({queryKey:[`systemHealth`],queryFn:Z.getSystemHealth,staleTime:60*1e3}),S=h?.time_format||`system`,C=async()=>{s(!0);try{let e=await Dd.setDebugLogging(!m?.enabled);t.setQueryData([`debugLogging`],e)}catch(e){console.error(`Failed to toggle debug logging:`,e)}finally{s(!1)}},w=async()=>{r(null),a(!0);try{await Dd.downloadSupportBundle()}catch(e){r(e instanceof Error?e.message:`Failed to download support bundle`)}finally{a(!1)}};if(d)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-64`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});if(!u)return(0,G.jsx)(`div`,{className:`p-6 text-center text-bambu-gray`,children:e(`system.failedToLoad`,`Failed to load system information`)});let T=u.storage.disk_percent_used>90?`bg-red-500`:u.storage.disk_percent_used>75?`bg-yellow-500`:`bg-bambu-green`,E=u.memory.percent_used>90?`bg-red-500`:u.memory.percent_used>75?`bg-yellow-500`:`bg-bambu-green`;return(0,G.jsxs)(`div`,{className:`p-6 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`system.title`,`System Information`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`system.subtitle`,`Monitor system resources and database statistics`)})]}),(0,G.jsxs)(`button`,{onClick:()=>f(),disabled:p,className:`flex items-center gap-2 px-4 py-2 bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary rounded-lg transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${p?`animate-spin`:``}`}),e(`common.refresh`,`Refresh`)]})]}),(0,G.jsx)(F9,{title:e(`system.application`,`Application`),icon:tu,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[(0,G.jsx)(P9,{icon:tu,label:e(`system.version`,`Version`),value:`v${u.app.version}`}),(0,G.jsx)(P9,{icon:js,label:e(`system.uptime`,`System Uptime`),value:u.system.uptime_formatted}),(0,G.jsx)(P9,{icon:tu,label:e(`system.hostname`,`Hostname`),value:u.system.hostname})]})}),(0,G.jsx)(F9,{title:e(`support.title`,`Support & Troubleshooting`),icon:Ic,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`support.description`,`Enable debug logging to capture detailed information, then download a support bundle to share when reporting issues.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${m?.enabled?`bg-amber-500/20 text-amber-500`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:(0,G.jsx)($o,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:e(`support.debugLogging`,`Debug Logging`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[m?.enabled?e(`support.debugLoggingEnabled`,`Capturing detailed logs`):e(`support.debugLoggingDisabled`,`Normal logging level`),m?.enabled&&m.duration_seconds!==null&&(0,G.jsxs)(`span`,{className:`text-amber-700 dark:text-amber-400 ml-2`,children:[`(`,Math.floor(m.duration_seconds/60),`m `,m.duration_seconds%60,`s)`]})]})]})]}),(0,G.jsxs)(`button`,{onClick:C,disabled:o,className:`px-4 py-2 rounded-lg font-medium transition-colors flex items-center gap-2 ${m?.enabled?`bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-500/20 dark:text-amber-400 dark:hover:bg-amber-500/30`:`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`} disabled:opacity-50`,children:[o&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),m?.enabled?e(`support.disableDebug`,`Disable`):e(`support.enableDebug`,`Enable`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-green`,children:(0,G.jsx)(Xs,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:e(`support.supportBundle`,`Support Bundle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`support.supportBundleDescription`,`Download system info and logs as a ZIP file`)})]})]}),(0,G.jsxs)(`button`,{onClick:w,disabled:i||!m?.enabled,className:`px-4 py-2 rounded-lg font-medium bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30 transition-colors flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed`,title:m?.enabled?void 0:e(`support.enableDebugFirst`,`Enable debug logging first`),children:[i&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i?e(`support.bundleGenerating`,`Generating...`):e(`common.download`,`Download`)]})]}),i&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark-tertiary/40 rounded-lg space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin text-bambu-green`}),e(`support.bundleGenerating`,`Generating...`)]}),(0,G.jsxs)(`ul`,{className:`text-xs text-bambu-gray list-disc list-inside space-y-0.5 pl-1`,children:[(0,G.jsx)(`li`,{children:e(`support.bundleStepConnection`,`Running printer connectivity checks`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepVirtualPrinters`,`Running virtual-printer setup checks`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepLogScan`,`Scanning recent logs for known issues`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepBuild`,`Building the support bundle ZIP`)})]})]}),n&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 border border-red-300 rounded-lg text-red-700 dark:bg-red-500/20 dark:border-red-500/30 dark:text-red-400 text-sm`,children:n}),!m?.enabled&&(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark-tertiary/50 rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400 font-medium`,children:e(`support.instructions`,`To report an issue:`)}),(0,G.jsx)(`br`,{}),`1. `,e(`support.step1`,`Enable debug logging`),(0,G.jsx)(`br`,{}),`2. `,e(`support.step2`,`Reproduce the issue`),(0,G.jsx)(`br`,{}),`3. `,e(`support.step3`,`Download the support bundle`),(0,G.jsx)(`br`,{}),`4. `,e(`support.step4`,`Attach the ZIP file to your issue report`)]})}),(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e(`support.privacyTitle`,`What's in the support bundle?`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-green font-medium mb-1`,children:e(`support.collected`,`Collected:`)}),(0,G.jsxs)(`ul`,{className:`text-bambu-gray space-y-0.5`,children:[(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem1`,`App version and debug mode`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem2`,`OS, architecture, Python version`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem3`,`Database statistics (counts only)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem4`,`Printer models and nozzle counts`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem5`,`Non-sensitive settings (themes, formats)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem6`,`Debug logs (sanitized)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem7`,`Printer connectivity and firmware versions`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem8`,`Integration status (Spoolman, MQTT, HA)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem9`,`Network interfaces (subnets only)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem10`,`Python package versions`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem11`,`Database health checks`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem12`,`Docker environment details`)]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 font-medium mb-1`,children:e(`support.notCollected`,`NOT collected:`)}),(0,G.jsxs)(`ul`,{className:`text-bambu-gray space-y-0.5`,children:[(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem1`,`Printer names and serial numbers`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem2`,`Access codes and passwords`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem3`,`Email addresses`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem4`,`API keys and tokens`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem5`,`Webhook URLs`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem6`,`Your hostname or username`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem7`,`IP addresses`)]})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:e(`support.privacyNote`,`Email addresses in logs are replaced with [EMAIL], printer names with [PRINTER], serial numbers with [SERIAL], and IP addresses with [IP].`)})]}),(0,G.jsx)(c0e,{})]})}),(0,G.jsxs)(F9,{title:e(`diagnostic.sectionTitle`,`Connection Diagnostic`),icon:Su,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`diagnostic.sectionDescription`,`Check why a printer won't connect or won't print — port reachability, LAN developer mode, Docker network mode, and credentials.`)}),_&&_.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-medium text-white`,children:t.name}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray ml-2`,children:t.ip_address})]}),(0,G.jsxs)(`button`,{onClick:()=>l(t),className:`flex items-center gap-2 px-3 py-1.5 text-sm bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary text-white rounded-lg transition-colors flex-shrink-0`,children:[(0,G.jsx)(Su,{className:`w-4 h-4`}),e(`diagnostic.runButton`,`Run diagnostic`)]})]},t.id))}):(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`diagnostic.noPrinters`,`No printers configured.`)})]}),(0,G.jsxs)(F9,{title:e(`systemHealth.sectionTitle`),icon:Lc,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 mb-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`systemHealth.sectionDescription`)}),(0,G.jsxs)(`button`,{onClick:()=>b(),disabled:x,className:`flex items-center gap-2 px-3 py-1.5 text-sm bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary text-white rounded-lg transition-colors flex-shrink-0 disabled:opacity-50`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${x?`animate-spin`:``}`}),e(`systemHealth.rescan`)]})]}),v?(0,G.jsx)(Qp,{result:v}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`)})]}),(0,G.jsxs)(F9,{title:e(`system.database`,`Database`),icon:Gs,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(0,G.jsx)(P9,{icon:Gs,label:e(`system.dbEngine`,`Database Engine`),value:u.database.engine||`SQLite`}),(0,G.jsx)(P9,{icon:Gs,label:e(`system.dbVersion`,`Version`),value:u.database.version||`unknown`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4 mb-4`,children:[(0,G.jsx)(P9,{icon:Po,label:e(`system.totalArchives`,`Total Archives`),value:u.database.archives}),(0,G.jsx)(P9,{icon:Ss,label:e(`system.completed`,`Completed`),value:u.database.archives_completed,color:`text-green-500`}),(0,G.jsx)(P9,{icon:Ds,label:e(`system.failed`,`Failed`),value:u.database.archives_failed,color:`text-red-500`}),(0,G.jsx)(P9,{icon:Y,label:e(`system.printing`,`Printing`),value:u.database.archives_printing,color:`text-yellow-500`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(P9,{icon:Rl,label:e(`system.printers`,`Printers`),value:u.database.printers}),(0,G.jsx)(P9,{icon:wl,label:e(`system.filaments`,`Filaments`),value:u.database.filaments}),(0,G.jsx)(P9,{icon:_c,label:e(`system.projects`,`Projects`),value:u.database.projects}),(0,G.jsx)(P9,{icon:Pl,label:e(`system.smartPlugs`,`Smart Plugs`),value:u.database.smart_plugs})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mt-4`,children:[(0,G.jsx)(P9,{icon:js,label:e(`system.totalPrintTime`,`Total Print Time`),value:u.database.total_print_time_formatted}),(0,G.jsx)(P9,{icon:Po,label:e(`system.totalFilament`,`Total Filament Used`),value:`${u.database.total_filament_kg} kg`,subValue:`${u.database.total_filament_grams.toLocaleString()} g`})]})]}),(0,G.jsxs)(F9,{title:e(`system.connectedPrinters`,`Connected Printers`),icon:Rl,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 mb-4`,children:[(0,G.jsx)(`div`,{className:`text-3xl font-bold text-bambu-green`,children:u.printers.connected}),(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:e(`system.ofTotal`,`of {{total}} printers connected`,{total:u.printers.total})})]}),u.printers.connected_list.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:u.printers.connected_list.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green`}),(0,G.jsx)(`span`,{className:`font-medium text-white`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:e.model}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded ${e.state===`RUNNING`?`bg-bambu-green/20 text-bambu-green`:e.state===`IDLE`?`bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400`:`bg-bambu-dark-tertiary`}`,children:e.state})]})]},e.id))}):(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`system.noPrintersConnected`,`No printers connected`)})]}),(0,G.jsx)(F9,{title:e(`system.storage`,`Storage`),icon:Pc,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`system.diskUsage`,`Disk Usage`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[u.storage.disk_used_formatted,` / `,u.storage.disk_total_formatted]})]}),(0,G.jsx)(u0e,{percent:u.storage.disk_percent_used,color:T}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[u.storage.disk_free_formatted,` `,e(`system.free`,`free`),` (`,(100-u.storage.disk_percent_used).toFixed(1),`%)`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[(0,G.jsx)(P9,{icon:Po,label:e(`system.archiveStorage`,`Archive Storage`),value:u.storage.archive_size_formatted}),(0,G.jsx)(P9,{icon:Gs,label:e(`system.databaseSize`,`Database Size`),value:u.storage.database_size_formatted}),g&&(0,G.jsx)(P9,{icon:vc,label:e(`system.fileManagerStorage`,`File Manager`),value:l0e(g.total_size_bytes),subValue:`${g.total_files} files, ${g.total_folders} folders`})]})]})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,G.jsx)(F9,{title:e(`system.memory`,`Memory`),icon:ul,children:(0,G.jsx)(`div`,{className:`space-y-4`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`system.memoryUsage`,`Memory Usage`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[u.memory.used_formatted,` / `,u.memory.total_formatted]})]}),(0,G.jsx)(u0e,{percent:u.memory.percent_used,color:E}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[u.memory.available_formatted,` `,e(`system.available`,`available`)]})]})})}),(0,G.jsx)(F9,{title:e(`system.cpu`,`CPU`),icon:Hs,children:(0,G.jsx)(`div`,{className:`space-y-4`,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsx)(P9,{icon:Hs,label:e(`system.cores`,`Cores`),value:u.cpu.count,subValue:`${u.cpu.count_logical} logical`}),(0,G.jsx)(P9,{icon:Hs,label:e(`system.usage`,`Usage`),value:`${u.cpu.percent}%`})]})})})]}),(0,G.jsx)(F9,{title:e(`system.systemDetails`,`System Details`),icon:tu,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(P9,{icon:tu,label:e(`system.os`,`Operating System`),value:u.system.platform,subValue:u.system.platform_release}),(0,G.jsx)(P9,{icon:Hs,label:e(`system.architecture`,`Architecture`),value:u.system.architecture}),(0,G.jsx)(P9,{icon:tu,label:e(`system.python`,`Python`),value:u.system.python_version}),(0,G.jsx)(P9,{icon:js,label:e(`system.bootTime`,`Boot Time`),value:op(u.system.boot_time,S)})]})}),c&&(0,G.jsx)(Xp,{printerId:c.id,printerName:c.name,onClose:()=>l(null)})]})}var I9=`auth_remember_me`,L9=`auth_post_login_redirect`;function R9(e){return e?`persistent`:`session`}function f0e(){try{let e=sessionStorage.getItem(I9)===`1`;return sessionStorage.removeItem(I9),e}catch(e){return console.warn(`consumeSavedRememberMe: sessionStorage unavailable, Remember Me preference lost across OIDC redirect`,e),!1}}function z9(e){return!e||!e.startsWith(`/`)||e.startsWith(`//`)||e.startsWith(`/login`)?null:e}function p0e(e){let t=z9(e);if(t)try{sessionStorage.setItem(L9,t)}catch(e){console.warn(`stashPostLoginRedirect: sessionStorage unavailable, post-login target will be lost across OIDC redirect`,e)}}function m0e(){try{let e=sessionStorage.getItem(L9);return sessionStorage.removeItem(L9),z9(e)}catch(e){return console.warn(`consumePostLoginRedirect: sessionStorage unavailable`,e),null}}function h0e({provider:e,onClick:t,disabled:n}){let{t:r}=U(),[i,a]=(0,y.useState)(!1);return(0,G.jsxs)(`button`,{type:`button`,onClick:t,disabled:n,className:`w-full flex items-center justify-center gap-3 py-3 px-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary hover:border-bambu-green/50 rounded-lg text-white font-medium transition-colors disabled:opacity-50`,children:[e.has_icon&&!i?(0,G.jsx)(`img`,{src:Z.oidcProviderIconUrl(e.id),alt:``,className:`w-5 h-5 object-contain`,onError:()=>a(!0)}):(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),r(`login.twoFA.signInWith`,{provider:e.name})]})}function g0e(){let e=or(),t=rr(),[n]=Ri(),{t:r}=U(),{login:i,loginWithToken:a,user:o,loading:s}=Nd(),{showToast:c}=qd(),{mode:l}=Id();function u(){let e=t.state?.from;if(e?.pathname){let t=z9(`${e.pathname}${e.search??``}`);if(t)return t}return m0e()??`/`}let[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`credentials`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)([]),[E,D]=(0,y.useState)(`totp`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(!1),M=(0,y.useRef)(null),[N,P]=(0,y.useState)(!1),[F,I]=(0,y.useState)(``),[L,R]=(0,y.useState)(``),[z,B]=(0,y.useState)(``),{data:V}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()}),{data:ee}=K({queryKey:[`oidcProviders`],queryFn:()=>Z.getOIDCProviders()}),[te,ne]=(0,y.useState)(!1);(0,y.useEffect)(()=>{!s&&o&&b===`credentials`&&e(`/`,{replace:!0})},[s,o,b,e]);let re=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(re.current||n.get(`fallback`)===`local`||!V||!V.autologin_provider_id||window.location.hash.startsWith(`#oidc_token=`)||n.get(`oidc_error`))return;re.current=!0;let e=V.autologin_provider_id,t=new Promise((e,t)=>setTimeout(()=>t(Error(`autologin timeout`)),5e3));Promise.race([Z.getOIDCAuthorizeUrl(e),t]).then(e=>{window.location.href=e.auth_url}).catch(()=>{ne(!0)})},[V,n]);let ie=V?.local_login_enabled!==!1,ae=te&&V?.autologin_provider_id!=null;(0,y.useEffect)(()=>{let t=window.location.hash,n=t.startsWith(`#reset_token=`)?t.slice(13):null;n&&(I(n),x(`reset-password`),e(`/login`,{replace:!0}))},[]),(0,y.useEffect)(()=>{let t=window.location.hash,i=t.startsWith(`#oidc_token=`)?t.slice(12):null,o=n.get(`oidc_error`);if(!i&&!o)return;let s=f0e();if(o){c({oidc_provider_error:r(`login.oidcErrors.providerError`),missing_parameters:r(`login.oidcErrors.missingParameters`),invalid_state:r(`login.oidcErrors.invalidState`),state_expired:r(`login.oidcErrors.stateExpired`),provider_not_found:r(`login.oidcErrors.providerNotFound`),discovery_failed:r(`login.oidcErrors.discoveryFailed`),invalid_discovery_document:r(`login.oidcErrors.invalidDiscovery`),token_exchange_network_error:r(`login.oidcErrors.networkError`),token_exchange_bad_response:r(`login.oidcErrors.badResponse`),no_id_token:r(`login.oidcErrors.noIdToken`),token_validation_failed:r(`login.oidcErrors.validationFailed`),nonce_mismatch:r(`login.oidcErrors.nonceMismatch`),missing_sub_claim:r(`login.oidcErrors.missingSubClaim`),no_linked_account:r(`login.oidcErrors.noLinkedAccount`),account_inactive:r(`login.oidcErrors.accountInactive`),user_resolution_failed:r(`login.oidcErrors.userResolutionFailed`),internal_error:r(`login.oidcErrors.internalError`)}[o]??(o.startsWith(`token_exchange_`)?r(`login.oidcErrors.tokenExchangeFailed`):r(`login.oidcLoginFailed`)),`error`),e(`/login`,{replace:!0});return}i&&Z.exchangeOIDCToken(i).then(t=>{if(t.requires_2fa&&t.pre_auth_token){P(s),C(t.pre_auth_token);let n=t.two_fa_methods??[];T(n),n.includes(`totp`)?D(`totp`):n.includes(`email`)?D(`email`):D(`backup`),x(`2fa`),e(`/login`,{replace:!0})}else t.access_token&&t.user?(a(t.access_token,t.user,R9(s)),c(r(`login.loginSuccess`)),e(u(),{replace:!0})):(c(r(`login.oidcLoginFailed`),`error`),e(`/login`,{replace:!0}))}).catch(t=>{console.error(`OIDC token exchange failed`,t),c(r(`login.oidcLoginFailed`),`error`),e(`/login`,{replace:!0})})},[n]);let oe=q({mutationFn:()=>i(d,p,R9(N)),onSuccess:t=>{if(t.requires_2fa&&t.pre_auth_token){C(t.pre_auth_token);let e=t.two_fa_methods??[];T(e),e.includes(`totp`)?D(`totp`):e.includes(`email`)?D(`email`):D(`backup`),x(`2fa`)}else t.access_token&&t.user&&(c(r(`login.loginSuccess`)),e(u(),{replace:!0}))},onError:e=>{c(e.message||r(`login.loginFailed`),`error`)}}),se=q({mutationFn:e=>Z.forgotPassword({email:e}),onSuccess:e=>{c(e.message,`success`),g(!1),v(``)},onError:e=>{c(e.message,`error`)}}),H=q({mutationFn:()=>Z.forgotPasswordConfirm(F,L),onSuccess:e=>{c(e.message,`success`),x(`credentials`),I(``),R(``),B(``)},onError:e=>{c(e.message||r(`login.resetPassword.resetFailed`),`error`)}}),ce=q({mutationFn:()=>Z.sendEmailOTP(S),onSuccess:e=>{j(!0),e.pre_auth_token&&C(e.pre_auth_token),c(e.message,`success`)},onError:e=>{c(e.message||r(`login.twoFA.sendCodeFailed`),`error`)}}),le=q({mutationFn:()=>Z.verify2FA({pre_auth_token:S,code:O,method:E}),onSuccess:t=>{t.access_token&&t.user?(a(t.access_token,t.user,R9(N)),c(r(`login.loginSuccess`)),e(u(),{replace:!0})):(console.error(`2FA verify: unexpected response shape`,t),c(r(`login.loginFailed`),`error`))},onError:e=>{c(e.message||r(`login.twoFA.invalidCode`),`error`),k(``)}}),ue=q({mutationFn:e=>Z.getOIDCAuthorizeUrl(e),onSuccess:e=>{if(N)try{sessionStorage.setItem(I9,`1`)}catch(e){console.warn(`setItem auth_remember_me failed, Remember Me will not carry through OIDC redirect`,e)}let n=t.state?.from;n?.pathname&&p0e(`${n.pathname}${n.search??``}`),window.location.href=e.auth_url},onError:e=>{c(e.message||r(`login.oidcLoginFailed`),`error`)}}),de=e=>{if(e.preventDefault(),!d||!p){c(r(`login.enterCredentials`),`error`);return}oe.mutate()},fe=e=>{if(e.preventDefault(),!O.trim()){c(r(`login.twoFA.enterCode`),`error`);return}le.mutate()},pe=e=>{if(e.preventDefault(),!_){c(r(`login.enterEmail`),`error`);return}se.mutate(_)},me=e=>{D(e),k(``),j(!1),setTimeout(()=>M.current?.focus(),0)};return b===`reset-password`?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full bg-bambu-green/20 flex items-center justify-center`,children:(0,G.jsx)(Kc,{className:`w-7 h-7 text-bambu-green`})})}),(0,G.jsx)(`h2`,{className:`text-2xl font-bold text-white`,children:r(`login.resetPassword.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.resetPassword.subtitle`)})]}),(0,G.jsxs)(`form`,{onSubmit:e=>{if(e.preventDefault(),L!==z){c(r(`login.resetPassword.passwordsDoNotMatch`),`error`);return}if(L.length<8){c(r(`login.resetPassword.passwordTooShort`),`error`);return}H.mutate()},className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`new-password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.resetPassword.newPassword`)}),(0,G.jsx)(`input`,{id:`new-password`,type:`password`,required:!0,value:L,onChange:e=>R(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.resetPassword.newPasswordPlaceholder`),autoFocus:!0,autoComplete:`new-password`,minLength:8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`confirm-password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.resetPassword.confirmPassword`)}),(0,G.jsx)(`input`,{id:`confirm-password`,type:`password`,required:!0,value:z,onChange:e=>B(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.resetPassword.confirmPasswordPlaceholder`),autoComplete:`new-password`})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:H.isPending||!L||!z,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed`,children:H.isPending?r(`login.resetPassword.saving`):r(`login.resetPassword.submit`)})]}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>{x(`credentials`),I(``),R(``),B(``)},className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.resetPassword.backToLogin`)})})]})}):b===`2fa`?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full bg-bambu-green/20 flex items-center justify-center`,children:(0,G.jsx)(su,{className:`w-7 h-7 text-bambu-green`})})}),(0,G.jsx)(`h2`,{className:`text-2xl font-bold text-white`,children:r(`login.twoFA.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.twoFA.subtitle`)})]}),w.length>1&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[w.includes(`totp`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`totp`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`totp`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),r(`login.twoFA.methodAuthenticator`)]}),w.includes(`email`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`email`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`email`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),r(`login.twoFA.methodEmail`)]}),w.includes(`backup`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`backup`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`backup`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),r(`login.twoFA.methodBackup`)]})]}),(0,G.jsxs)(`form`,{onSubmit:fe,className:`space-y-4`,children:[E===`totp`&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(`login.twoFA.instructionsTotp`)}),E===`email`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(A?`login.twoFA.instructionsEmail`:`login.twoFA.instructionsEmailNotSent`)}),!A&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,className:`w-full`,onClick:()=>ce.mutate(),disabled:ce.isPending,children:ce.isPending?r(`login.twoFA.sendingCode`):r(`login.twoFA.sendCodeButton`)}),A&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{j(!1),ce.mutate()},className:`text-xs text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.twoFA.resendCode`)})]}),E===`backup`&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(`login.twoFA.instructionsBackup`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`twofa-code`,className:`block text-sm font-medium text-white mb-2`,children:r(E===`backup`?`login.twoFA.backupCodeLabel`:`login.twoFA.codeLabel`)}),(0,G.jsx)(`input`,{ref:M,id:`twofa-code`,type:`text`,inputMode:E===`backup`?`text`:`numeric`,autoComplete:`one-time-code`,value:O,onChange:e=>k(e.target.value.trim()),disabled:E===`email`&&!A,className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray text-center tracking-widest text-xl font-mono focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors disabled:opacity-40`,placeholder:r(E===`backup`?`login.twoFA.backupCodePlaceholder`:`login.twoFA.codePlaceholder`),maxLength:E===`backup`?8:6,autoFocus:!0})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:le.isPending||!O.trim()||E===`email`&&!A,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed`,children:le.isPending?r(`login.twoFA.verifyingButton`):r(`login.twoFA.verifyButton`)})]}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>{x(`credentials`),C(``),k(``),j(!1)},className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.twoFA.backToLogin`)})})]})}):(0,G.jsxs)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:[(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-6`,children:(0,G.jsx)(`img`,{src:l===`dark`?`/img/bambuddy_logo_dark_transparent.png`:`/img/bambuddy_logo_light.png`,alt:`Bambuddy`,className:`h-16`})}),(0,G.jsx)(`h2`,{className:`text-3xl font-bold text-white`,children:r(`login.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.subtitle`)})]}),ae&&(0,G.jsx)(`div`,{className:`mt-6 rounded-lg border border-amber-300 dark:border-amber-500/40 bg-amber-50 dark:bg-amber-500/10 px-4 py-3 text-sm text-amber-800 dark:text-amber-200`,children:r(`login.autologinFailed`)}),!ie&&(0,G.jsx)(`div`,{className:`mt-6 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark/40 px-4 py-3 text-sm text-bambu-gray`,children:r(`login.localDisabledNotice`)}),ie&&(0,G.jsxs)(`form`,{className:`mt-8 space-y-6`,onSubmit:de,children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`username`,className:`block text-sm font-medium text-white mb-2`,children:V?.advanced_auth_enabled?r(`login.usernameOrEmail`):r(`login.username`)}),(0,G.jsx)(`input`,{id:`username`,type:`text`,required:!0,value:d,onChange:e=>f(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:V?.advanced_auth_enabled?r(`login.usernameOrEmailPlaceholder`):r(`login.usernamePlaceholder`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.password`)||`Password`}),(0,G.jsx)(`input`,{id:`password`,type:`password`,required:!0,value:p,onChange:e=>m(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.passwordPlaceholder`),autoComplete:`current-password`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{id:`remember-me`,type:`checkbox`,checked:N,onChange:e=>P(e.target.checked),className:`h-4 w-4 rounded border-bambu-dark-tertiary bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green/50 cursor-pointer`}),(0,G.jsx)(`label`,{htmlFor:`remember-me`,className:`text-sm text-bambu-gray cursor-pointer`,children:r(`login.rememberMe`)})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`button`,{type:`submit`,disabled:oe.isPending,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-bambu-green`,children:oe.isPending?r(`login.signingIn`):r(`login.signIn`)})}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(!0),className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.forgotPassword`)})})]}),ee&&ee.length>0&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center`,children:(0,G.jsx)(`div`,{className:`w-full border-t border-bambu-dark-tertiary`})}),(0,G.jsx)(`div`,{className:`relative flex justify-center text-sm`,children:(0,G.jsx)(`span`,{className:`px-2 bg-bambu-dark-secondary text-bambu-gray`,children:r(`login.twoFA.orContinueWith`)})})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:ee.map(e=>(0,G.jsx)(h0e,{provider:e,onClick:()=>ue.mutate(e.id),disabled:ue.isPending},e.id))})]})]}),h&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>g(!1),children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`login.forgotPasswordTitle`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{g(!1),v(``)},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsx)(Vd,{children:V?.advanced_auth_enabled?(0,G.jsxs)(`form`,{onSubmit:pe,className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:r(`login.forgotPasswordEmailMessage`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`forgot-email`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.emailAddress`)}),(0,G.jsx)(`input`,{id:`forgot-email`,type:`email`,required:!0,value:_,onChange:e=>v(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.emailPlaceholder`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,className:`flex-1`,onClick:()=>{g(!1),v(``)},children:r(`login.cancel`)}),(0,G.jsx)(Q,{type:`submit`,className:`flex-1`,disabled:se.isPending,children:se.isPending?r(`login.sending`):r(`login.sendResetEmail`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:r(`login.forgotPasswordMessage`)}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4 space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:r(`login.howToReset`)}),(0,G.jsxs)(`ol`,{className:`text-sm text-bambu-gray space-y-1 list-decimal list-inside`,children:[(0,G.jsx)(`li`,{children:r(`login.resetStep1`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep2`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep3`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep4`)})]})]}),(0,G.jsx)(Q,{variant:`secondary`,className:`w-full`,onClick:()=>g(!1),children:r(`login.gotIt`)})]})})]})})]})}function _0e(){let e=or(),{t}=U(),{showToast:n}=qd(),{mode:r}=Id(),{refreshAuth:i}=Nd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),p=q({mutationFn:()=>Z.setupAuth({auth_enabled:a,admin_username:a?s:void 0,admin_password:a?l:void 0}),onSuccess:async r=>{await i(),r.auth_enabled?r.admin_created?(n(t(`setup.toast.authEnabledAdminCreated`)),e(`/login`)):(n(t(`setup.toast.authEnabledExistingAdmins`)),e(`/login`)):(n(t(`setup.toast.setupCompleted`)),e(`/`))},onError:e=>{n(e.message,`error`)}});return(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-6`,children:(0,G.jsx)(`img`,{src:r===`dark`?`/img/bambuddy_logo_dark_transparent.png`:`/img/bambuddy_logo_light.png`,alt:`Bambuddy`,className:`h-16`})}),(0,G.jsx)(`h2`,{className:`text-3xl font-bold text-white`,children:t(`setup.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:t(`setup.subtitle`)})]}),(0,G.jsxs)(`form`,{className:`mt-8 space-y-6`,onSubmit:e=>{if(e.preventDefault(),a&&(s||l)){if(!s||!l){n(t(`setup.toast.enterBothCredentials`),`error`);return}if(l!==d){n(t(`setup.toast.passwordsDoNotMatch`),`error`);return}if(l.length<6){n(t(`setup.toast.passwordTooShort`),`error`);return}}p.mutate()},children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center p-4 bg-bambu-dark-secondary/50 rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`input`,{id:`auth-enabled`,type:`checkbox`,checked:a,onChange:e=>o(e.target.checked),className:`h-4 w-4 text-bambu-green focus:ring-bambu-green border-bambu-dark-tertiary rounded bg-bambu-dark-secondary`}),(0,G.jsx)(`label`,{htmlFor:`auth-enabled`,className:`ml-3 block text-sm font-medium text-white`,children:t(`setup.enableAuth`)})]}),a&&(0,G.jsxs)(`div`,{className:`space-y-4 mt-4`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-bambu-dark-secondary/50 border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:t(`setup.adminAccount`)}),(0,G.jsx)(`p`,{children:t(`setup.adminAccountDesc`)})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{htmlFor:`admin-username`,className:`block text-sm font-medium text-white mb-2`,children:[t(`setup.adminUsername`),` `,(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:t(`setup.optionalIfAdminExists`)})]}),(0,G.jsx)(`input`,{id:`admin-username`,type:`text`,value:s,onChange:e=>c(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.adminUsernamePlaceholder`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{htmlFor:`admin-password`,className:`block text-sm font-medium text-white mb-2`,children:[t(`setup.adminPassword`),` `,(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:t(`setup.optionalIfAdminExists`)})]}),(0,G.jsx)(`input`,{id:`admin-password`,type:`password`,value:l,onChange:e=>u(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.adminPasswordPlaceholder`),minLength:6,autoComplete:`new-password`})]}),l&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`confirm-password`,className:`block text-sm font-medium text-white mb-2`,children:t(`setup.confirmPassword`)}),(0,G.jsx)(`input`,{id:`confirm-password`,type:`password`,value:d,onChange:e=>f(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.confirmPasswordPlaceholder`),minLength:6,autoComplete:`new-password`})]})]})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`button`,{type:`submit`,disabled:p.isPending,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-bambu-green`,children:p.isPending?t(`setup.settingUp`):t(`setup.completeSetup`)})})]})]})})}function v0e(){let{t:e}=U(),{user:t}=Nd(),{showToast:n}=qd(),r=co(),i=or(),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(!0),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),{data:h,isLoading:g}=K({queryKey:[`advancedAuthStatus`],queryFn:Z.getAdvancedAuthStatus,staleTime:300*1e3}),{data:_,isLoading:v}=K({queryKey:[`settings`],queryFn:Z.getSettings,staleTime:300*1e3}),{data:b,isLoading:x}=K({queryKey:[`user-email-preferences`],queryFn:()=>Z.getUserEmailPreferences()});(0,y.useEffect)(()=>{(h&&!h.advanced_auth_enabled||_&&!_.user_notifications_enabled)&&i(`/settings`,{replace:!0})},[h,_,i]),(0,y.useEffect)(()=>{b&&(o(b.notify_print_start),c(b.notify_print_complete),u(b.notify_print_failed),f(b.notify_print_stopped),m(!1))},[b]);let S=q({mutationFn:()=>Z.updateUserEmailPreferences({notify_print_start:a,notify_print_complete:s,notify_print_failed:l,notify_print_stopped:d}),onSuccess:()=>{r.invalidateQueries({queryKey:[`user-email-preferences`]}),m(!1),n(e(`notifications.userEmail.saveSuccess`),`success`)},onError:t=>{n(t.message||e(`notifications.userEmail.saveError`),`error`)}}),C=(e,t)=>{e(!t),m(!0)};return x||g||v?(0,G.jsx)(`div`,{className:`flex items-center justify-center h-64`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`p-4 md:p-6 max-w-2xl mx-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,G.jsx)(qo,{className:`w-7 h-7 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`notifications.userEmail.title`)})]}),(0,G.jsx)(zd,{className:`mb-6 border-blue-300 bg-blue-50 dark:border-blue-500/30 dark:bg-blue-500/5`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center bg-blue-100 dark:bg-blue-500/20 flex-shrink-0`,children:(0,G.jsx)(al,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:e(`notifications.userEmail.emailNotifications`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.emailNotificationsDesc`)}),t?.email?(0,G.jsxs)(`p`,{className:`text-sm text-blue-700 dark:text-blue-400 mt-2`,children:[e(`notifications.userEmail.sendingTo`),`: `,(0,G.jsx)(`strong`,{children:t.email})]}):(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-400 mt-2`,children:e(`notifications.userEmail.noEmailWarning`)})]})]})})}),(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`notifications.userEmail.printJobNotifications`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.printJobNotificationsDesc`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${a?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${a?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStarts`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStartsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(o,a),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${a?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":a,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${a?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${s?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${s?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobFinishes`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobFinishesDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(c,s),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${s?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":s,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${s?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${l?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${l?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printErrors`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printErrorsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(u,l),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${l?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":l,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${l?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${d?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${d?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStops`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStopsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(f,d),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${d?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":d,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${d?`translate-x-6`:`translate-x-1`}`})})]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{onClick:()=>S.mutate(),disabled:!p||S.isPending||!t?.email,children:S.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),e(`common.save`)]})})})]})}function y0e(){let e=or(),[t,n]=Ri(),{t:r}=U(),i=t.get(`archive`),a=t.get(`library_file`),o=t.get(`plate`),s=K({queryKey:[`gcode-viewer-archive-colors`,i],queryFn:()=>Z.getArchiveCapabilities(Number(i)),enabled:!!i,staleTime:5*6e4,retry:!1}),c=K({queryKey:[`gcode-viewer-library-colors`,a],queryFn:()=>Z.getLibraryFilePlates(Number(a)),enabled:!!a,staleTime:5*6e4,retry:!1}),l=K({queryKey:[`gcode-viewer-archive-plates`,i],queryFn:()=>Z.getArchivePlates(Number(i)),enabled:!!i,staleTime:5*6e4,retry:!1}),u=(0,y.useMemo)(()=>(i?l.data?.plates:c.data?.plates)??[],[i,l.data,c.data]),d=(0,y.useMemo)(()=>o?Number(o):u.length===0?null:Math.min(...u.map(e=>e.index)),[o,u]),f=e=>{if(e===d)return;let r=new URLSearchParams(t);r.set(`plate`,String(e)),n(r,{replace:!0})},p=(0,y.useMemo)(()=>{if(i)return s.data?.filament_colors;let e=u.find(e=>e.index===d)||u[0];if(!e?.filaments?.length)return;let t=[];for(let n of e.filaments){let e=Math.max(0,(n.slot_id??1)-1);n.color&&(t[e]=n.color)}return t.length>0?t:void 0},[i,s.data,u,d]),m=(0,y.useMemo)(()=>{let e=e=>o?`${e}?plate=${encodeURIComponent(o)}`:e;return i?e(Z.getArchiveGcode(Number(i))):a?e(Z.getLibraryFileGcodeUrl(Number(a))):null},[i,a,o]),h=()=>{window.history.length>1?e(-1):e(i?`/archives`:`/files`)},g=i?r(`gcodeViewer.backToArchives`,`Back to Archives`):r(`gcodeViewer.backToFiles`,`Back to File Manager`);return(0,G.jsxs)(`div`,{className:`flex flex-col min-h-[calc(100vh-64px)] lg:h-[calc(100vh-64px)]`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 px-4 py-2 border-b border-bambu-dark-tertiary flex flex-wrap items-center gap-x-4 gap-y-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:h,className:`inline-flex items-center gap-1.5 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white transition-colors`,children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),g]}),u.length>1&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:r(`gcodeViewer.plates`,`Plates`)}),u.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(e.index),"aria-pressed":e.index===d,title:e.name??void 0,className:`px-2 py-0.5 rounded text-xs transition-colors ${e.index===d?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white`}`,children:r(`gcodeViewer.plateN`,`Plate {{n}}`,{n:e.index})},e.index))]})]}),m?(0,G.jsx)(gT,{gcodeUrl:m,filamentColors:p,className:`flex-1 min-h-0`}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-sm text-bambu-gray`,children:r(`gcodeViewer.noSource`,`No file was given to preview.`)})]})}var b0e=4401;function x0e(){let e=(0,y.useRef)(null),t=(0,y.useRef)(null),n=(0,y.useRef)(!1),r=co(),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(new Map),{showToast:s}=qd(),{t:c}=U(),l=(0,y.useRef)(new Set),u=(0,y.useRef)(null),d=(0,y.useRef)(new Map),f=(0,y.useRef)(null),p=(0,y.useRef)([]),m=(0,y.useRef)(!1),h=(0,y.useRef)(()=>{}),g=(0,y.useCallback)(()=>{if(m.current||p.current.length===0)return;m.current=!0;let e=()=>{let t=p.current.shift();t?(h.current(t),p.current.length>0?setTimeout(e,16):m.current=!1):m.current=!1};e()},[]),_=(0,y.useCallback)(async()=>{if(n.current||e.current?.readyState===WebSocket.OPEN)return;let r;try{r=(await Z.getWebSocketToken()).token}catch(e){let t=e instanceof sd?e.status:0;if(t===401||t===403)return}if(n.current)return;let i=window.location.protocol===`https:`?`wss:`:`ws:`,o=r?`?token=${encodeURIComponent(r)}`:``,s=`${i}//${window.location.host}/api/v1/ws${o}`,c=new WebSocket(s),l=null;c.onopen=()=>{console.log(`[WebSocket] Connected`),a(!0),l=window.setInterval(()=>{c.readyState===WebSocket.OPEN&&c.send(JSON.stringify({type:`ping`}))},3e4)},c.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`printer_status`&&t.printer_id!==void 0&&t.data?h.current(t):(p.current.push(t),g())}catch{}},c.onclose=r=>{console.log(`[WebSocket] Closed`,r.code,r.reason),l&&=(clearInterval(l),null),a(!1),e.current=null,!(n.current||r.code===b0e)&&(t.current=window.setTimeout(()=>{_()},3e3))},c.onerror=e=>{console.error(`[WebSocket] Error`,e),c.close()},e.current=c},[g]),v=(0,y.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null);let e=new Map(d.current);d.current.clear(),e.forEach((e,t)=>{r.setQueryData([`printerStatus`,t],t=>{let n={...t,...e};return n.wifi_signal==null&&t?.wifi_signal!=null&&(n.wifi_signal=t.wifi_signal),n})})},[r]),b=(0,y.useCallback)((e,t)=>{let n=d.current.get(e)||{};if(d.current.set(e,{...n,...t}),document.hidden){v();return}f.current||=window.setTimeout(v,100)},[v]),x=(0,y.useCallback)(e=>{l.current.add(e),u.current&&clearTimeout(u.current),u.current=window.setTimeout(()=>{let e=Array.from(l.current);l.current.clear(),u.current=null;let t=0;e.forEach(e=>{setTimeout(()=>{r.invalidateQueries({queryKey:[e]})},t),t+=500})},3e3)},[r]),S=(0,y.useCallback)(()=>{r.invalidateQueries({queryKey:[`spool-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`slotPresets`]})},[r]),C=(0,y.useCallback)(e=>{switch(e.type){case`printer_status`:e.printer_id!==void 0&&e.data&&b(e.printer_id,e.data);break;case`print_start`:e.printer_id!==void 0&&r.invalidateQueries({queryKey:[`printerStatus`,e.printer_id]});break;case`missing_spool_assignment`:{if(e.printer_id===void 0||!Array.isArray(e.missing_slots))break;let t=e.missing_slots.map(e=>e&&typeof e.slot==`string`?e.slot:`Unknown`).filter(e=>e.length>0);if(t.length===0){o.current.delete(e.printer_id);break}let n=t.join(`|`);if(o.current.get(e.printer_id)===n)break;o.current.set(e.printer_id,n),s(c(`printers.toast.missingSpoolAssignment`,{printer:e.printer_name||`Printer ${e.printer_id}`,slots:t.join(`, `)}),`warning`);break}case`print_complete`:x(`archives`),x(`archiveStats`);break;case`kill_switch_triggered`:s(c(`printers.toast.killSwitchTriggered`,{printer:e.printer_name||`Printer ${e.printer_id??`?`}`,filename:e.filename||c(`common.unknown`)}),`error`);break;case`billing_charge_failed`:s(c(`printers.toast.billingChargeFailed`,{printer:e.printer_name||`Printer ${e.printer_id??`?`}`,filename:e.filename||c(`common.unknown`)}),`error`);break;case`archive_created`:x(`archives`),x(`archiveStats`);break;case`archive_updated`:x(`archives`);break;case`pong`:break;case`plate_not_empty`:window.dispatchEvent(new CustomEvent(`plate-not-empty`,{detail:{printer_id:e.printer_id,printer_name:e.printer_name,message:e.message}}));break;case`inventory_changed`:x(`inventory-spools`),x(`spoolman-inventory-spools`),x(_6[0]);break;case`spool_assignment_changed`:S();break;case`spool_assignment_verified`:{let t=e.printer_name||`Printer`,n=e.slot||`?`;e.verified?e.kprofile_applied===!1?s(c(`printers.toast.assignmentVerifiedNoKprofile`,{slot:n,printer:t}),`warning`):s(c(`printers.toast.assignmentVerified`,{slot:n,printer:t}),`success`):s(c(`printers.toast.assignmentNotConfirmed`,{slot:n,printer:t}),`warning`);break}case`spool_auto_assigned`:x(`inventory-spools`),S();break;case`spool_usage_logged`:x(`inventory-spools`);break;case`unknown_tag`:{let t=e;window.dispatchEvent(new CustomEvent(`unknown-tag`,{detail:{printer_id:t.printer_id,ams_id:t.ams_id,tray_id:t.tray_id,tag_uid:t.tag_uid,tray_uuid:t.tray_uuid,tray_type:t.tray_type,tray_color:t.tray_color,tray_sub_brands:t.tray_sub_brands,tray_count:t.tray_count}}));break}case`spoolbuddy_weight`:window.dispatchEvent(new CustomEvent(`spoolbuddy-weight`,{detail:e}));break;case`spoolbuddy_tag_matched`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-matched`,{detail:e})),x(`inventory-spools`);break;case`spoolbuddy_unknown_tag`:window.dispatchEvent(new CustomEvent(`spoolbuddy-unknown-tag`,{detail:e}));break;case`spoolbuddy_tag_removed`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-removed`,{detail:e}));break;case`spoolbuddy_tag_written`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-written`,{detail:e})),x(`inventory-spools`);break;case`spoolbuddy_tag_write_failed`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-write-failed`,{detail:e}));break;case`spoolbuddy_online`:window.dispatchEvent(new CustomEvent(`spoolbuddy-online`,{detail:e})),x(`spoolbuddy-devices`),x(`spoolbuddy-update-check`);break;case`spoolbuddy_offline`:window.dispatchEvent(new CustomEvent(`spoolbuddy-offline`,{detail:e})),x(`spoolbuddy-devices`);break;case`spoolbuddy_update`:x(`spoolbuddy-devices`),x(`spoolbuddy-update-check`);break;case`queue_item_uploading`:case`queue_item_upload_progress`:case`queue_item_acked`:case`queue_item_failed`:window.dispatchEvent(new CustomEvent(`bambuddy:dispatch-toast`,{detail:e}));break;case`pipeline_run_updated`:r.invalidateQueries({queryKey:[`pipeline-runs-all`]}),e.run?.pipeline_id&&r.invalidateQueries({queryKey:[`pipeline-runs`,e.run.pipeline_id]});break}},[r,x,S,b,s,c]);return(0,y.useEffect)(()=>{h.current=C},[C]),(0,y.useEffect)(()=>(n.current=!1,_(),()=>{n.current=!0,t.current&&clearTimeout(t.current),u.current&&clearTimeout(u.current),f.current&&clearTimeout(f.current),e.current&&e.current.close()}),[_]),{isConnected:i,sendMessage:(0,y.useCallback)(t=>{e.current?.readyState===WebSocket.OPEN&&e.current.send(JSON.stringify(t))},[])}}var S0e=`#00ae42`,C0e=e=>e!=null&&e>0?e:1/0;function w0e(e){let t=null;for(let n of e){if(!n||n.state!==`RUNNING`||n.progress==null)continue;if(t===null){t=n;continue}let e=C0e(n.remaining_time),r=C0e(t.remaining_time);(e(t.progress??0))&&(t=n)}return t}function T0e(e){let t=document.createElement(`canvas`);t.width=32,t.height=32;let n=t.getContext(`2d`);if(!n)return null;let r=getComputedStyle(document.documentElement).getPropertyValue(`--accent`).trim()||S0e,i=Math.max(0,Math.min(100,e))/100,a=-Math.PI/2;return n.lineWidth=4,n.beginPath(),n.arc(16,16,13,0,Math.PI*2),n.strokeStyle=`rgba(128,128,128,0.3)`,n.stroke(),n.beginPath(),n.arc(16,16,13,a,a+i*Math.PI*2),n.strokeStyle=r,n.lineCap=`round`,n.stroke(),t.toDataURL(`image/png`)}function B9(e,t){document.querySelectorAll(`link[rel~="icon"]`).forEach(n=>{if(e)t.has(n)||t.set(n,n.href),n.href=e;else{let e=t.get(n);e!==void 0&&(n.href=e)}}),e||t.clear()}function E0e(){let{progressInTitle:e,resolvedMode:t,darkAccent:n,lightAccent:r}=Id(),i=t===`dark`?n:r,{data:a}=K({queryKey:[`printers`],queryFn:Z.getPrinters,enabled:e}),o=Co({queries:(e?a??[]:[]).map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id)}))}),s=(0,y.useRef)(new Map),c=(0,y.useRef)(document.title),l=(0,y.useRef)(!1),u=e?w0e(o.map(e=>e.data)):null,d=u&&u.progress!=null?Math.round(u.progress):null;(0,y.useEffect)(()=>{e&&d!=null?(document.title=`${d}% · ${c.current}`,B9(T0e(d),s.current),l.current=!0):l.current&&=(document.title=c.current,B9(null,s.current),!1)},[e,d,i]),(0,y.useEffect)(()=>{let e=s.current,t=l,n=c.current;return()=>{t.current&&(document.title=n,B9(null,e))}},[])}function D0e({children:e}){let{authEnabled:t,user:n,loading:r}=Nd(),{data:i}=K({queryKey:[`color-catalog-map`],queryFn:async()=>{let e=await Z.getColorNameMap();return{colors:e.colors,byMaterial:e.by_material??{}}},staleTime:1/0,gcTime:1/0,retry:2,enabled:!r&&(!t||n!==null)});return(0,y.useEffect)(()=>{i&&vf(i.colors,i.byMaterial)},[i]),(0,G.jsx)(G.Fragment,{children:e})}function O0e({selectedPrinterId:e,onPrinterChange:t,deviceOnline:n}){let{t:r}=U(),[i,a]=(0,y.useState)(new Date),{data:o=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),s=Co({queries:o.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4}))}),c=(0,y.useMemo)(()=>o.filter((e,t)=>s[t]?.data?.connected),[o,s]);(0,y.useEffect)(()=>{let n=c.some(t=>t.id===e);(!e||!n)&&c.length>0&&t(c[0].id)},[c,e,t]);let{data:l}=K({queryKey:[`settings`],queryFn:Z.getSettings});return(0,y.useEffect)(()=>{let e=setInterval(()=>a(new Date),1e3);return()=>clearInterval(e)},[]),(0,G.jsxs)(`div`,{className:`h-12 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary flex items-center px-3 gap-4 shrink-0`,children:[(0,G.jsx)(`div`,{className:`flex items-center shrink-0`,children:(0,G.jsx)(`img`,{src:`/img/spoolbuddy_logo_dark_small.png`,alt:`SpoolBuddy`,width:113,height:28,className:`h-7 w-auto`})}),(0,G.jsx)(`div`,{className:`flex-1 flex justify-center`,children:(0,G.jsx)(`select`,{value:e??``,onChange:e=>t(Number(e.target.value)),className:`bg-bambu-dark text-white text-base px-4 py-2 rounded border border-bambu-dark-tertiary focus:outline-none focus:border-bambu-green min-w-[180px]`,children:c.length===0?(0,G.jsx)(`option`,{value:``,children:r(`spoolbuddy.status.noPrinters`,`No printers online`)}):c.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[(0,G.jsx)(`div`,{className:`flex items-center`,title:n?r(`spoolbuddy.status.backend`,`Backend`):r(`spoolbuddy.status.offline`,`Offline`),children:n?(0,G.jsx)(`div`,{className:`flex items-end gap-0.5 h-4`,children:[1,2,3,4].map(e=>(0,G.jsx)(`div`,{className:`w-1 rounded-sm ${e<=4?`bg-white`:`bg-bambu-dark-tertiary`}`,style:{height:`${e*4}px`}},e))}):(0,G.jsx)(Zu,{className:`w-5 h-5 text-red-400`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full ${n?`bg-bambu-green shadow-[0_0_6px_rgba(34,197,94,0.5)]`:`bg-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-sm text-white/50`,children:n?r(`spoolbuddy.status.backend`,`Backend`):r(`spoolbuddy.status.offline`,`Offline`)})]}),(0,G.jsx)(`span`,{className:`text-white/50 text-base font-mono min-w-[50px] text-right`,children:sp(i,l?.time_format||`system`)})]})]})}var k0e=[{to:`/spoolbuddy`,labelKey:`spoolbuddy.nav.dashboard`,fallback:`Dashboard`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6`})})},{to:`/spoolbuddy/ams`,labelKey:`spoolbuddy.nav.ams`,fallback:`AMS`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10`})})},{to:`/spoolbuddy/write-tag`,labelKey:`spoolbuddy.nav.writeTag`,fallback:`Write`,icon:(0,G.jsxs)(`svg`,{className:`w-6 h-6`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z`})]})},{to:`/spoolbuddy/inventory`,labelKey:`spoolbuddy.nav.inventory`,fallback:`Inventory`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4`})})},{to:`/spoolbuddy/settings`,labelKey:`spoolbuddy.nav.settings`,fallback:`Settings`,icon:(0,G.jsxs)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 12a3 3 0 11-6 0 3 3 0 016 0z`})]})}];function A0e(){let{t:e}=U();return(0,G.jsx)(`nav`,{className:`h-14 bg-bambu-dark-secondary border-t border-bambu-dark-tertiary flex items-stretch shrink-0`,children:k0e.map(t=>(0,G.jsxs)(ji,{to:t.to,end:t.to===`/spoolbuddy`,className:({isActive:e})=>`flex-1 flex flex-col items-center justify-center gap-1 transition-colors ${e?`text-bambu-green bg-bambu-dark`:`text-white/50 hover:text-white/70 hover:bg-bambu-dark-tertiary`}`,children:[t.icon,(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:e(t.labelKey,t.fallback)})]},t.to))})}function j0e({alert:e}){let{t}=U(),n=e?e.type===`error`?`bg-red-500`:e.type===`warning`?`bg-amber-500`:`bg-bambu-green`:`bg-bambu-green`;return(0,G.jsxs)(`div`,{className:`h-9 bg-bambu-dark-secondary border-t-2 ${e?e.type===`error`?`border-red-500`:e.type===`warning`?`border-amber-500`:`border-bambu-dark-tertiary`:`border-bambu-dark-tertiary`} flex items-center px-3 gap-3 shrink-0`,children:[(0,G.jsx)(`div`,{className:`w-3.5 h-3.5 rounded-full ${n}`}),(0,G.jsx)(`div`,{className:`flex-1 text-sm text-white/50 truncate`,children:e?(0,G.jsx)(`span`,{children:e.message}):(0,G.jsx)(`span`,{className:`text-bambu-green`,children:t(`spoolbuddy.status.systemReady`,`System Ready`)})})]})}function M0e({isOpen:e,onClose:t,deviceId:n,deviceOnline:r}){let{t:i}=U(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(new Map),{data:d=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters(),enabled:e}),{data:f=[]}=K({queryKey:[`smart-plugs`],queryFn:()=>Z.getSmartPlugs(),enabled:e}),p=d.map(e=>{let t=f.find(t=>t.printer_id===e.id&&t.plug_type!==`mqtt`&&t.enabled);if(!t)return null;let n=l.get(t.id);return{plug:t,printer:e,status:n?{state:n.state,reachable:!0,device_name:null,energy:null}:null,loading:n?.loading??!1}}).filter(Boolean);(0,y.useEffect)(()=>{!e||f.length===0||f.filter(e=>e.printer_id!==null&&e.plug_type!==`mqtt`&&e.enabled).forEach(async e=>{try{let t=await Z.getSmartPlugStatus(e.id);u(n=>{let r=new Map(n);return r.set(e.id,{loading:!1,state:t.state}),r})}catch{u(t=>{let n=new Map(t);return n.set(e.id,{loading:!1,state:null}),n})}})},[e,f]),(0,y.useEffect)(()=>{e||(o(null),c(!1))},[e]);let m=(0,y.useCallback)(async e=>{u(t=>{let n=new Map(t),r=n.get(e.id);return n.set(e.id,{loading:!0,state:r?.state??null}),n});try{await Z.controlSmartPlug(e.id,`toggle`);let t=await Z.getSmartPlugStatus(e.id);u(n=>{let r=new Map(n);return r.set(e.id,{loading:!1,state:t.state}),r})}catch{u(t=>{let n=new Map(t),r=n.get(e.id);return n.set(e.id,{loading:!1,state:r?.state??null}),n})}},[]),h=(0,y.useCallback)(async e=>{if(n){c(!0);try{await Od.systemCommand(n,e),setTimeout(()=>t(),500)}catch{c(!1)}}},[n,t]),g=(0,y.useCallback)(()=>{a&&(a.type===`system`?h(a.command):m(a.plug),o(null))},[a,h,m]);if(!e)return null;let _=e=>e===`ON`||e===`on`;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40 bg-black/50`,onPointerDown:t}),(0,G.jsxs)(`div`,{className:`fixed top-0 left-0 right-0 z-50 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary rounded-b-2xl shadow-2xl animate-slide-down`,children:[(0,G.jsx)(`div`,{className:`flex justify-center pt-2 pb-1`,children:(0,G.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-zinc-600`})}),(0,G.jsxs)(`div`,{className:`px-4 pb-4 max-h-[80vh] overflow-y-auto`,children:[p.length>0&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`h3`,{className:`text-xs font-semibold text-zinc-500 uppercase tracking-wide mb-2`,children:i(`spoolbuddy.quickMenu.printerPower`,`Printer Power`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:p.map(({plug:e,printer:t,loading:n})=>{let r=l.get(e.id),i=_(r?.state??null);return(0,G.jsxs)(`button`,{onClick:()=>o({type:`plug`,plug:e,printer:t,currentState:r?.state??null}),disabled:n,className:`w-full flex items-center gap-2 px-3 py-1.5 rounded-lg bg-zinc-800/60 hover:bg-zinc-700/60 transition-colors min-h-[36px]`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${i?`bg-green-500`:`bg-zinc-600`}`}),n&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin text-zinc-400 shrink-0`}),(0,G.jsx)(`span`,{className:`flex-1 text-sm text-zinc-200 text-left truncate`,children:t.name}),(0,G.jsx)(`span`,{className:`text-xs font-medium ${i?`text-green-400`:`text-zinc-500`}`,children:r?.state??`—`})]},e.id)})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-xs font-semibold text-zinc-500 uppercase tracking-wide mb-2`,children:i(`spoolbuddy.quickMenu.systemControls`,`System`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsx)(V9,{icon:(0,G.jsx)(Gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.restartDaemon`,`Restart Daemon`),onClick:()=>o({type:`system`,command:`restart_daemon`}),disabled:!n||!r||s}),(0,G.jsx)(V9,{icon:(0,G.jsx)(gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.restartBrowser`,`Restart Browser`),onClick:()=>o({type:`system`,command:`restart_browser`}),disabled:!n||!r||s}),(0,G.jsx)(V9,{icon:(0,G.jsx)(Gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.reboot`,`Reboot`),onClick:()=>o({type:`system`,command:`reboot`}),disabled:!n||!r||s,variant:`warning`}),(0,G.jsx)(V9,{icon:(0,G.jsx)(Il,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.shutdown`,`Shutdown`),onClick:()=>o({type:`system`,command:`shutdown`}),disabled:!n||!r||s,variant:`danger`})]})]}),(0,G.jsx)(`div`,{className:`flex justify-center mt-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-zinc-600`,children:[(0,G.jsx)(ps,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:i(`spoolbuddy.quickMenu.swipeToClose`,`Swipe down to close`)})]})})]})]}),a&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60`,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-2xl p-5 mx-4 max-w-sm w-full border border-zinc-700`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100 mb-2`,children:i(`spoolbuddy.quickMenu.confirmTitle`,`Confirm`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-400 mb-5`,children:a.type===`plug`?_(a.currentState)?i(`spoolbuddy.quickMenu.confirmPlugOff`,`Turn off {{name}}?`,{name:a.printer.name}):i(`spoolbuddy.quickMenu.confirmPlugOn`,`Turn on {{name}}?`,{name:a.printer.name}):a.command===`shutdown`?i(`spoolbuddy.quickMenu.confirmShutdown`,`Are you sure you want to shut down the SpoolBuddy? You will need physical access to turn it back on.`):a.command===`reboot`?i(`spoolbuddy.quickMenu.confirmReboot`,`Are you sure you want to reboot the SpoolBuddy?`):a.command===`restart_daemon`?i(`spoolbuddy.quickMenu.confirmRestartDaemon`,`Restart the SpoolBuddy daemon? NFC and scale will be temporarily unavailable.`):i(`spoolbuddy.quickMenu.confirmRestartBrowser`,`Restart the kiosk browser? The display will briefly go blank.`)}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>o(null),className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:g,disabled:s,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-white transition-colors min-h-[44px] ${a.type===`plug`?_(a.currentState)?`bg-red-600 hover:bg-red-700`:`bg-green-600 hover:bg-green-700`:a.command===`shutdown`?`bg-red-600 hover:bg-red-700`:a.command===`reboot`?`bg-amber-600 hover:bg-amber-700`:`bg-blue-600 hover:bg-blue-700`} disabled:opacity-50`,children:s?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mx-auto`}):a.type===`plug`?_(a.currentState)?i(`spoolbuddy.quickMenu.turnOff`,`Turn Off`):i(`spoolbuddy.quickMenu.turnOn`,`Turn On`):i(`spoolbuddy.quickMenu.confirm`,`Confirm`)})]})]})})]})}function V9({icon:e,label:t,onClick:n,disabled:r,variant:i=`default`}){return(0,G.jsxs)(`button`,{onClick:n,disabled:r,className:`flex items-center gap-2.5 p-3 rounded-xl transition-colors min-h-[48px] disabled:opacity-40 ${{default:`bg-zinc-800/60 hover:bg-zinc-700/60 text-zinc-300`,warning:`bg-amber-900/30 hover:bg-amber-900/50 text-amber-400`,danger:`bg-red-900/30 hover:bg-red-900/50 text-red-400`}[i]}`,children:[e,(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:t})]})}var N0e={weight:null,weightStable:!1,rawAdc:null,matchedSpool:null,unknownTagUid:null,unknownTrayUuid:null,deviceOnline:!1,deviceId:null};function P0e(e,t){switch(t.type){case`WEIGHT_UPDATE`:return{...e,weight:t.weight,weightStable:t.stable,rawAdc:t.rawAdc,deviceId:t.deviceId,deviceOnline:!0};case`TAG_MATCHED`:return{...e,matchedSpool:t.spool,unknownTagUid:null,unknownTrayUuid:null,deviceId:t.deviceId};case`UNKNOWN_TAG`:return{...e,matchedSpool:null,unknownTagUid:t.tagUid,unknownTrayUuid:t.trayUuid??null,deviceId:t.deviceId};case`TAG_REMOVED`:return{...e,matchedSpool:null,unknownTagUid:null,unknownTrayUuid:null};case`DEVICE_ONLINE`:return{...e,deviceOnline:!0,deviceId:t.deviceId};case`DEVICE_OFFLINE`:return{...e,deviceOnline:!1,weight:null,weightStable:!1,rawAdc:null};default:return e}}function F0e(){let[e,t]=(0,y.useReducer)(P0e,N0e),n=(0,y.useCallback)(e=>{let n=e.detail;t({type:`WEIGHT_UPDATE`,weight:n.weight_grams??n.data?.weight_grams,stable:n.stable??n.data?.stable??!1,rawAdc:n.raw_adc??n.data?.raw_adc??null,deviceId:n.device_id??n.data?.device_id??``})},[]),r=(0,y.useCallback)(e=>{let n=e.detail,r=n.spool??n.data?.spool;r&&t({type:`TAG_MATCHED`,spool:{id:r.id,tag_uid:n.tag_uid??n.data?.tag_uid??``,material:r.material??``,subtype:r.subtype??null,color_name:r.color_name??null,rgba:r.rgba??null,brand:r.brand??null,label_weight:r.label_weight??0,core_weight:r.core_weight??0,weight_used:r.weight_used??0},deviceId:n.device_id??n.data?.device_id??``})},[]),i=(0,y.useCallback)(e=>{let n=e.detail;t({type:`UNKNOWN_TAG`,tagUid:n.tag_uid??n.data?.tag_uid??``,trayUuid:n.tray_uuid??n.data?.tray_uuid??null,deviceId:n.device_id??n.data?.device_id??``})},[]),a=(0,y.useCallback)(e=>{let n=e.detail;t({type:`TAG_REMOVED`,deviceId:n.device_id??n.data?.device_id??``})},[]),o=(0,y.useCallback)(e=>{let n=e.detail;t({type:`DEVICE_ONLINE`,deviceId:n.device_id??n.data?.device_id??``})},[]),s=(0,y.useCallback)(e=>{let n=e.detail;t({type:`DEVICE_OFFLINE`,deviceId:n.device_id??n.data?.device_id??``})},[]);(0,y.useEffect)(()=>(window.addEventListener(`spoolbuddy-weight`,n),window.addEventListener(`spoolbuddy-tag-matched`,r),window.addEventListener(`spoolbuddy-unknown-tag`,i),window.addEventListener(`spoolbuddy-tag-removed`,a),window.addEventListener(`spoolbuddy-online`,o),window.addEventListener(`spoolbuddy-offline`,s),()=>{window.removeEventListener(`spoolbuddy-weight`,n),window.removeEventListener(`spoolbuddy-tag-matched`,r),window.removeEventListener(`spoolbuddy-unknown-tag`,i),window.removeEventListener(`spoolbuddy-tag-removed`,a),window.removeEventListener(`spoolbuddy-online`,o),window.removeEventListener(`spoolbuddy-offline`,s)}),[n,r,i,a,o,s]);let c=e.matchedSpool?Math.max(0,e.matchedSpool.label_weight-e.matchedSpool.weight_used):null,l=e.weight!==null&&e.matchedSpool?Math.max(0,e.weight-e.matchedSpool.core_weight):null;return{...e,remainingWeight:c,netWeight:l}}var I0e=l(o(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r(f()):typeof define==`function`&&define.amd?define([`react`],r):typeof e==`object`?e.ReactSimpleKeyboard=r(f()):n.ReactSimpleKeyboard=r(n.React)})(e,(function(e){return function(){var t={981:function(){typeof Element>`u`||`remove`in Element.prototype||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)}),typeof self<`u`&&`document`in self&&((!(`classList`in document.createElement(`_`))||document.createElementNS&&!(`classList`in document.createElementNS(`http://www.w3.org/2000/svg`,`g`)))&&function(e){if(`Element`in e){var t=`classList`,n=`prototype`,r=e.Element[n],i=Object,a=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,``)},o=Array[n].indexOf||function(e){for(var t=0,n=this.length;t1?arguments[1]:void 0)}},7916:function(e,t,n){var r=n(6080),i=n(9565),a=n(8981),o=n(6319),s=n(4209),c=n(3517),l=n(6198),u=n(4659),d=n(4527),f=n(81),p=n(851),m=Array;e.exports=function(e){var t=a(e),n=c(this),h=arguments.length,g=h>1?arguments[1]:void 0,_=g!==void 0;_&&(g=r(g,h>2?arguments[2]:void 0));var v,y,b,x,S,C,w=p(t),T=0;if(!w||this===m&&s(w))for(v=l(t),y=n?new this(v):m(v);v>T;T++)C=_?g(t[T],T):t[T],u(y,T,C);else for(y=n?new this:[],S=(x=f(t,w)).next;!(b=i(S,x)).done;T++)C=_?o(x,g,[b.value,T],!0):b.value,u(y,T,C);return d(y,T),y}},9617:function(e,t,n){var r=n(5397),i=n(5610),a=n(6198),o=function(e){return function(t,n,o){var s=r(t),c=a(s);if(c===0)return!e&&-1;var l,u=i(o,c);if(e&&n!=n){for(;c>u;)if((l=s[u++])!=l)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},9213:function(e,t,n){var r=n(6080),i=n(7055),a=n(8981),o=n(6198),s=n(1469),c=n(4659),l=function(e){var t=e===1,n=e===2,l=e===3,u=e===4,d=e===6,f=e===7,p=e===5||d;return function(m,h,g){for(var _,v,y=a(m),b=i(y),x=o(b),S=r(h,g),C=0,w=0,T=t?s(m,x):n||f?s(m,0):void 0;x>C;C++)if((p||C in b)&&(v=S(_=b[C],C,y),e))if(t)c(T,C,v);else if(v)switch(e){case 3:return!0;case 5:return _;case 6:return C;case 2:c(T,w++,_)}else switch(e){case 4:return!1;case 7:c(T,w++,_)}return d?-1:l||u?u:T}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},597:function(e,t,n){var r=n(9039),i=n(8227),a=n(9519),o=i(`species`);e.exports=function(e){return a>=51||!r((function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},t[e](Boolean).foo!==1}))}},4598:function(e,t,n){var r=n(9039);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},926:function(e,t,n){var r=n(9306),i=n(8981),a=n(7055),o=n(6198),s=TypeError,c=`Reduce of empty array with no initial value`,l=function(e){return function(t,n,l,u){var d=i(t),f=a(d),p=o(d);if(r(n),p===0&&l<2)throw new s(c);var m=e?p-1:0,h=e?-1:1;if(l<2)for(;;){if(m in f){u=f[m],m+=h;break}if(m+=h,e?m<0:p<=m)throw new s(c)}for(;e?m>=0:p>m;m+=h)m in f&&(u=n(u,f[m],m,d));return u}};e.exports={left:l(!1),right:l(!0)}},4527:function(e,t,n){var r=n(3724),i=n(4376),a=TypeError,o=Object.getOwnPropertyDescriptor;e.exports=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}()?function(e,t){if(i(e)&&!o(e,`length`).writable)throw new a(`Cannot set read only .length`);return e.length=t}:function(e,t){return e.length=t}},7680:function(e,t,n){e.exports=n(9504)([].slice)},4488:function(e,t,n){var r=n(7680),i=Math.floor,a=function(e,t){var n=e.length;if(n<8)for(var o,s,c=1;c0;)e[s]=e[--s];s!==c++&&(e[s]=o)}else for(var l=i(n/2),u=a(r(e,0,l),t),d=a(r(e,l),t),f=u.length,p=d.length,m=0,h=0;m9007199254740991)throw t(`Maximum allowed index exceeded`);return e}},7400:function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9296:function(e,t,n){var r=n(4055)(`span`).classList,i=r&&r.constructor&&r.constructor.prototype;e.exports=i===Object.prototype?void 0:i},8727:function(e){e.exports=[`constructor`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`]},3709:function(e,t,n){var r=n(2839).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},3763:function(e,t,n){var r=n(2839);e.exports=/MSIE|Trident/.test(r)},6193:function(e,t,n){e.exports=n(4215)===`NODE`},2839:function(e,t,n){var r=n(4576).navigator,i=r&&r.userAgent;e.exports=i?String(i):``},9519:function(e,t,n){var r,i,a=n(4576),o=n(2839),s=a.process,c=a.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(i=(r=u.split(`.`))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&o&&(!(r=o.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/))&&(i=+r[1]),e.exports=i},3607:function(e,t,n){var r=n(2839).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},4215:function(e,t,n){var r=n(4576),i=n(2839),a=n(2195),o=function(e){return i.slice(0,e.length)===e};e.exports=o(`Bun/`)?`BUN`:o(`Cloudflare-Workers`)?`CLOUDFLARE`:o(`Deno/`)?`DENO`:o(`Node.js/`)?`NODE`:r.Bun&&typeof Bun.version==`string`?`BUN`:r.Deno&&typeof Deno.version==`object`?`DENO`:a(r.process)===`process`?`NODE`:r.window&&r.document?`BROWSER`:`REST`},6518:function(e,t,n){var r=n(4576),i=n(7347).f,a=n(6699),o=n(6840),s=n(9433),c=n(7740),l=n(2796);e.exports=function(e,t){var n,u,d,f,p,m=e.target,h=e.global,g=e.stat;if(n=h?r:g?r[m]||s(m,{}):r[m]&&r[m].prototype)for(u in t){if(f=t[u],d=e.dontCallGetSet?(p=i(n,u))&&p.value:n[u],!l(h?u:m+(g?`.`:`#`)+u,e.forced)&&d!==void 0){if(typeof f==typeof d)continue;c(f,d)}(e.sham||d&&d.sham)&&a(f,`sham`,!0),o(n,u,f,e)}}},9039:function(e){e.exports=function(e){try{return!!e()}catch{return!0}}},9228:function(e,t,n){n(7495);var r=n(9565),i=n(6840),a=n(7323),o=n(9039),s=n(8227),c=n(6699),l=s(`species`),u=RegExp.prototype;e.exports=function(e,t,n,d){var f=s(e),p=!o((function(){var t={};return t[f]=function(){return 7},``[e](t)!==7})),m=p&&!o((function(){var t=!1,n=/a/;if(e===`split`){var r={};r[l]=function(){return n},(n={constructor:r,flags:``})[f]=/./[f]}return n.exec=function(){return t=!0,null},n[f](``),!t}));if(!p||!m||n){var h=/./[f],g=t(f,``[e],(function(e,t,n,i,o){var s=t.exec;return s===a||s===u.exec?p&&!o?{done:!0,value:r(h,t,n,i)}:{done:!0,value:r(e,n,t,i)}:{done:!1}}));i(String.prototype,e,g[0]),i(u,f,g[1])}d&&c(u[f],`sham`,!0)}},8745:function(e,t,n){var r=n(616),i=Function.prototype,a=i.apply,o=i.call;e.exports=typeof Reflect==`object`&&Reflect.apply||(r?o.bind(a):function(){return o.apply(a,arguments)})},6080:function(e,t,n){var r=n(7476),i=n(9306),a=n(616),o=r(r.bind);e.exports=function(e,t){return i(e),t===void 0?e:a?o(e,t):function(){return e.apply(t,arguments)}}},616:function(e,t,n){e.exports=!n(9039)((function(){var e=function(){}.bind();return typeof e!=`function`||e.hasOwnProperty(`prototype`)}))},566:function(e,t,n){var r=n(9504),i=n(9306),a=n(34),o=n(9297),s=n(7680),c=n(616),l=Function,u=r([].concat),d=r([].join),f={};e.exports=c?l.bind:function(e){var t=i(this),n=t.prototype,r=s(arguments,1),c=function(){var n=u(r,s(arguments));return this instanceof c?function(e,t,n){if(!o(f,t)){for(var r=[],i=0;i]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,d,f){var p=n+e.length,m=r.length,h=u;return d!==void 0&&(d=i(d),h=l),s(f,h,(function(i,s){var l;switch(o(s,0)){case`$`:return`$`;case`&`:return e;case"`":return c(t,0,n);case`'`:return c(t,p);case`<`:l=d[c(s,1,-1)];break;default:var u=+s;if(u===0)return i;if(u>m){var f=a(u/10);return f===0?i:f<=m?r[f-1]===void 0?o(s,1):r[f-1]+o(s,1):i}l=r[u-1]}return l===void 0?``:l}))}},4576:function(e,t,n){var r=function(e){return e&&e.Math===Math&&e};e.exports=r(typeof globalThis==`object`&&globalThis)||r(typeof window==`object`&&window)||r(typeof self==`object`&&self)||r(typeof n.g==`object`&&n.g)||r(typeof this==`object`&&this)||function(){return this}()||Function(`return this`)()},9297:function(e,t,n){var r=n(9504),i=n(8981),a=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(i(e),t)}},421:function(e){e.exports={}},397:function(e,t,n){e.exports=n(7751)(`document`,`documentElement`)},5917:function(e,t,n){var r=n(3724),i=n(9039),a=n(4055);e.exports=!r&&!i((function(){return Object.defineProperty(a(`div`),"a",{get:function(){return 7}}).a!==7}))},7055:function(e,t,n){var r=n(9504),i=n(9039),a=n(2195),o=Object,s=r(``.split);e.exports=i((function(){return!o(`z`).propertyIsEnumerable(0)}))?function(e){return a(e)===`String`?s(e,``):o(e)}:o},3167:function(e,t,n){var r=n(4901),i=n(34),a=n(2967);e.exports=function(e,t,n){var o,s;return a&&r(o=t.constructor)&&o!==n&&i(s=o.prototype)&&s!==n.prototype&&a(e,s),e}},3706:function(e,t,n){var r=n(9504),i=n(4901),a=n(7629),o=r(Function.toString);i(a.inspectSource)||(a.inspectSource=function(e){return o(e)}),e.exports=a.inspectSource},1181:function(e,t,n){var r,i,a,o=n(8622),s=n(4576),c=n(34),l=n(6699),u=n(9297),d=n(7629),f=n(6119),p=n(421),m=`Object already initialized`,h=s.TypeError,g=s.WeakMap;if(o||d.state){var _=d.state||=new g;_.get=_.get,_.has=_.has,_.set=_.set,r=function(e,t){if(_.has(e))throw new h(m);return t.facade=e,_.set(e,t),t},i=function(e){return _.get(e)||{}},a=function(e){return _.has(e)}}else{var v=f(`state`);p[v]=!0,r=function(e,t){if(u(e,v))throw new h(m);return t.facade=e,l(e,v,t),t},i=function(e){return u(e,v)?e[v]:{}},a=function(e){return u(e,v)}}e.exports={set:r,get:i,has:a,enforce:function(e){return a(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=i(t)).type!==e)throw new h(`Incompatible receiver, `+e+` required`);return n}}}},4209:function(e,t,n){var r=n(8227),i=n(6269),a=r(`iterator`),o=Array.prototype;e.exports=function(e){return e!==void 0&&(i.Array===e||o[a]===e)}},4376:function(e,t,n){var r=n(2195);e.exports=Array.isArray||function(e){return r(e)===`Array`}},4901:function(e){var t=typeof document==`object`&&document.all;e.exports=t===void 0&&t!==void 0?function(e){return typeof e==`function`||e===t}:function(e){return typeof e==`function`}},3517:function(e,t,n){var r=n(9504),i=n(9039),a=n(4901),o=n(6955),s=n(7751),c=n(3706),l=function(){},u=s(`Reflect`,`construct`),d=/^\s*(?:class|function)\b/,f=r(d.exec),p=!d.test(l),m=function(e){if(!a(e))return!1;try{return u(l,[],e),!0}catch{return!1}},h=function(e){if(!a(e))return!1;switch(o(e)){case`AsyncFunction`:case`GeneratorFunction`:case`AsyncGeneratorFunction`:return!1}try{return p||!!f(d,c(e))}catch{return!0}};h.sham=!0,e.exports=!u||i((function(){var e;return m(m.call)||!m(Object)||!m((function(){e=!0}))||e}))?h:m},2796:function(e,t,n){var r=n(9039),i=n(4901),a=/#|\.prototype\./,o=function(e,t){var n=c[s(e)];return n===u||n!==l&&(i(t)?r(t):!!t)},s=o.normalize=function(e){return String(e).replace(a,`.`).toLowerCase()},c=o.data={},l=o.NATIVE=`N`,u=o.POLYFILL=`P`;e.exports=o},2087:function(e,t,n){var r=n(34),i=Math.floor;e.exports=Number.isInteger||function(e){return!r(e)&&isFinite(e)&&i(e)===e}},4117:function(e){e.exports=function(e){return e==null}},34:function(e,t,n){var r=n(4901);e.exports=function(e){return typeof e==`object`?e!==null:r(e)}},3925:function(e,t,n){var r=n(34);e.exports=function(e){return r(e)||e===null}},6395:function(e){e.exports=!1},5810:function(e,t,n){var r=n(34),i=n(1181).get;e.exports=function(e){if(!r(e))return!1;var t=i(e);return!!t&&t.type===`RawJSON`}},788:function(e,t,n){var r=n(34),i=n(2195),a=n(8227)(`match`);e.exports=function(e){var t;return r(e)&&((t=e[a])===void 0?i(e)===`RegExp`:!!t)}},757:function(e,t,n){var r=n(7751),i=n(4901),a=n(1625),o=n(7040),s=Object;e.exports=o?function(e){return typeof e==`symbol`}:function(e){var t=r(`Symbol`);return i(t)&&a(t.prototype,s(e))}},9539:function(e,t,n){var r=n(9565),i=n(8551),a=n(5966);e.exports=function(e,t,n){var o,s;i(e);try{if(!(o=a(e,`return`))){if(t===`throw`)throw n;return n}o=r(o,e)}catch(e){s=!0,o=e}if(t===`throw`)throw n;if(s)throw o;return i(o),n}},3994:function(e,t,n){var r=n(7657).IteratorPrototype,i=n(2360),a=n(6980),o=n(687),s=n(6269),c=function(){return this};e.exports=function(e,t,n,l){var u=t+` Iterator`;return e.prototype=i(r,{next:a(+!l,n)}),o(e,u,!1,!0),s[u]=c,e}},1088:function(e,t,n){var r=n(6518),i=n(9565),a=n(6395),o=n(350),s=n(4901),c=n(3994),l=n(2787),u=n(2967),d=n(687),f=n(6699),p=n(6840),m=n(8227),h=n(6269),g=n(7657),_=o.PROPER,v=o.CONFIGURABLE,y=g.IteratorPrototype,b=g.BUGGY_SAFARI_ITERATORS,x=m(`iterator`),S=`keys`,C=`values`,w=`entries`,T=function(){return this};e.exports=function(e,t,n,o,m,g,E){c(n,t,o);var D,O,k,A=function(e){if(e===m&&F)return F;if(!b&&e&&e in N)return N[e];switch(e){case S:case C:case w:return function(){return new n(this,e)}}return function(){return new n(this)}},j=t+` Iterator`,M=!1,N=e.prototype,P=N[x]||N[`@@iterator`]||m&&N[m],F=!b&&P||A(m),I=t===`Array`&&N.entries||P;if(I&&(D=l(I.call(new e)))!==Object.prototype&&D.next&&(a||l(D)===y||(u?u(D,y):s(D[x])||p(D,x,T)),d(D,j,!0,!0),a&&(h[j]=T)),_&&m===C&&P&&P.name!==C&&(!a&&v?f(N,`name`,C):(M=!0,F=function(){return i(P,this)})),m)if(O={values:A(C),keys:g?F:A(S),entries:A(w)},E)for(k in O)(b||M||!(k in N))&&p(N,k,O[k]);else r({target:t,proto:!0,forced:b||M},O);return a&&!E||N[x]===F||p(N,x,F,{name:m}),h[t]=F,O}},7657:function(e,t,n){var r,i,a,o=n(9039),s=n(4901),c=n(34),l=n(2360),u=n(2787),d=n(6840),f=n(8227),p=n(6395),m=f(`iterator`),h=!1;[].keys&&(`next`in(a=[].keys())?(i=u(u(a)))!==Object.prototype&&(r=i):h=!0),!c(r)||o((function(){var e={};return r[m].call(e)!==e}))?r={}:p&&(r=l(r)),s(r[m])||d(r,m,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},6269:function(e){e.exports={}},6198:function(e,t,n){var r=n(8014);e.exports=function(e){return r(e.length)}},283:function(e,t,n){var r=n(9504),i=n(9039),a=n(4901),o=n(9297),s=n(3724),c=n(350).CONFIGURABLE,l=n(3706),u=n(1181),d=u.enforce,f=u.get,p=String,m=Object.defineProperty,h=r(``.slice),g=r(``.replace),_=r([].join),v=s&&!i((function(){return m((function(){}),`length`,{value:8}).length!==8})),y=String(String).split(`String`),b=e.exports=function(e,t,n){h(p(t),0,7)===`Symbol(`&&(t=`[`+g(p(t),/^Symbol\(([^)]*)\).*$/,`$1`)+`]`),n&&n.getter&&(t=`get `+t),n&&n.setter&&(t=`set `+t),(!o(e,`name`)||c&&e.name!==t)&&(s?m(e,`name`,{value:t,configurable:!0}):e.name=t),v&&n&&o(n,`arity`)&&e.length!==n.arity&&m(e,`length`,{value:n.arity});try{n&&o(n,`constructor`)&&n.constructor?s&&m(e,`prototype`,{writable:!1}):e.prototype&&=void 0}catch{}var r=d(e);return o(r,`source`)||(r.source=_(y,typeof t==`string`?t:``)),e};Function.prototype.toString=b((function(){return a(this)&&f(this).source||l(this)}),`toString`)},741:function(e){var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},7819:function(e,t,n){e.exports=!n(9039)((function(){var e=`9007199254740993`,t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))},5749:function(e,t,n){var r=n(788),i=TypeError;e.exports=function(e){if(r(e))throw new i(`The method doesn't accept regular expressions`);return e}},4213:function(e,t,n){var r=n(3724),i=n(9504),a=n(9565),o=n(9039),s=n(1072),c=n(3717),l=n(8773),u=n(8981),d=n(7055),f=Object.assign,p=Object.defineProperty,m=i([].concat);e.exports=!f||o((function(){if(r&&f({b:1},f(p({},`a`,{enumerable:!0,get:function(){p(this,`b`,{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var e={},t={},n=Symbol(`assign detection`),i=`abcdefghijklmnopqrst`;return e[n]=7,i.split(``).forEach((function(e){t[e]=e})),f({},e)[n]!==7||s(f({},t)).join(``)!==i}))?function(e,t){for(var n=u(e),i=arguments.length,o=1,f=c.f,p=l.f;i>o;)for(var h,g=d(arguments[o++]),_=f?m(s(g),f(g)):s(g),v=_.length,y=0;v>y;)h=_[y++],r&&!a(p,g,h)||(n[h]=g[h]);return n}:f},2360:function(e,t,n){var r,i=n(8551),a=n(6801),o=n(8727),s=n(421),c=n(397),l=n(4055),u=n(6119),d=`prototype`,f=`script`,p=u(`IE_PROTO`),m=function(){},h=function(e){return`<`+f+`>`+e+``},g=function(e){e.write(h(``)),e.close();var t=e.parentWindow.Object;return e=null,t},_=function(){try{r=new ActiveXObject(`htmlfile`)}catch{}var e,t,n;_=typeof document<`u`?document.domain&&r?g(r):(t=l(`iframe`),n=`java`+f+`:`,t.style.display=`none`,c.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h(`document.F=Object`)),e.close(),e.F):g(r);for(var i=o.length;i--;)delete _[d][o[i]];return _()};s[p]=!0,e.exports=Object.create||function(e,t){var n;return e===null?n=_():(m[d]=i(e),n=new m,m[d]=null,n[p]=e),t===void 0?n:a.f(n,t)}},6801:function(e,t,n){var r=n(3724),i=n(8686),a=n(4913),o=n(8551),s=n(5397),c=n(1072);t.f=r&&!i?Object.defineProperties:function(e,t){o(e);for(var n,r=s(t),i=c(t),l=i.length,u=0;l>u;)a.f(e,n=i[u++],r[n]);return e}},4913:function(e,t,n){var r=n(3724),i=n(5917),a=n(8686),o=n(8551),s=n(6969),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=`enumerable`,f=`configurable`,p=`writable`;t.f=r?a?function(e,t,n){if(o(e),t=s(t),o(n),typeof e==`function`&&t===`prototype`&&`value`in n&&p in n&&!n[p]){var r=u(e,t);r&&r[p]&&(e[t]=n.value,n={configurable:f in n?n[f]:r[f],enumerable:d in n?n[d]:r[d],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(o(e),t=s(t),o(n),i)try{return l(e,t,n)}catch{}if(`get`in n||`set`in n)throw new c(`Accessors not supported`);return`value`in n&&(e[t]=n.value),e}},7347:function(e,t,n){var r=n(3724),i=n(9565),a=n(8773),o=n(6980),s=n(5397),c=n(6969),l=n(9297),u=n(5917),d=Object.getOwnPropertyDescriptor;t.f=r?d:function(e,t){if(e=s(e),t=c(t),u)try{return d(e,t)}catch{}if(l(e,t))return o(!i(a.f,e,t),e[t])}},298:function(e,t,n){var r=n(2195),i=n(5397),a=n(8480).f,o=n(7680),s=typeof window==`object`&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return s&&r(e)===`Window`?function(e){try{return a(e)}catch{return o(s)}}(e):a(i(e))}},8480:function(e,t,n){var r=n(1828),i=n(8727).concat(`length`,`prototype`);t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},3717:function(e,t){t.f=Object.getOwnPropertySymbols},2787:function(e,t,n){var r=n(9297),i=n(4901),a=n(8981),o=n(6119),s=n(2211),c=o(`IE_PROTO`),l=Object,u=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var t=a(e);if(r(t,c))return t[c];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof l?u:null}},1625:function(e,t,n){e.exports=n(9504)({}.isPrototypeOf)},1828:function(e,t,n){var r=n(9504),i=n(9297),a=n(5397),o=n(9617).indexOf,s=n(421),c=r([].push);e.exports=function(e,t){var n,r=a(e),l=0,u=[];for(n in r)!i(s,n)&&i(r,n)&&c(u,n);for(;t.length>l;)i(r,n=t[l++])&&(~o(u,n)||c(u,n));return u}},1072:function(e,t,n){var r=n(1828),i=n(8727);e.exports=Object.keys||function(e){return r(e,i)}},8773:function(e,t){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor;t.f=r&&!n.call({1:2},1)?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},2551:function(e,t,n){var r=n(6395),i=n(4576),a=n(9039),o=n(3607);e.exports=r||!a((function(){if(!(o&&o<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete i[e]}}))},2967:function(e,t,n){var r=n(6706),i=n(34),a=n(7750),o=n(3506);e.exports=Object.setPrototypeOf||(`__proto__`in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,`__proto__`,`set`))(n,[]),t=n instanceof Array}catch{}return function(n,r){return a(n),o(r),i(n)&&(t?e(n,r):n.__proto__=r),n}}():void 0)},3179:function(e,t,n){var r=n(2140),i=n(6955);e.exports=r?{}.toString:function(){return`[object `+i(this)+`]`}},4270:function(e,t,n){var r=n(9565),i=n(4901),a=n(34),o=TypeError;e.exports=function(e,t){var n,s;if(t===`string`&&i(n=e.toString)&&!a(s=r(n,e))||i(n=e.valueOf)&&!a(s=r(n,e))||t!==`string`&&i(n=e.toString)&&!a(s=r(n,e)))return s;throw new o(`Can't convert object to primitive value`)}},5031:function(e,t,n){var r=n(7751),i=n(9504),a=n(8480),o=n(3717),s=n(8551),c=i([].concat);e.exports=r(`Reflect`,`ownKeys`)||function(e){var t=a.f(s(e)),n=o.f;return n?c(t,n(e)):t}},8235:function(e,t,n){var r=n(9504),i=n(9297),a=SyntaxError,o=parseInt,s=String.fromCharCode,c=r(``.charAt),l=r(``.slice),u=r(/./.exec),d={'\\"':`"`,"\\\\":`\\`,"\\/":`/`,"\\b":`\b`,"\\f":`\f`,"\\n":` +`)[0]}),i&&(0,G.jsx)(`span`,{className:`text-bambu-gray/50 shrink-0`,children:n?(0,G.jsx)(gs,{className:`w-3.5 h-3.5`}):(0,G.jsx)(ps,{className:`w-3.5 h-3.5`})})]})},t)})})}),(0,G.jsx)(`div`,{className:`flex items-center justify-between p-3 border-t border-bambu-dark-tertiary text-sm text-bambu-gray`,children:d?(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`w-2 h-2 bg-green-500 rounded-full animate-pulse`}),`Auto-refreshing every 2 seconds`]}):(0,G.jsx)(`span`,{children:`Click Start to enable live log streaming`})})]})]})}function u0e(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function P9({icon:e,label:t,value:n,subValue:r,color:i=`text-bambu-green`}){return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary ${i}`,children:(0,G.jsx)(e,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:t}),(0,G.jsx)(`p`,{className:`text-lg font-semibold text-white truncate`,children:n}),r&&(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mt-0.5`,children:r})]})]})}function d0e({percent:e,color:t=`bg-bambu-green`}){return(0,G.jsx)(`div`,{className:`w-full h-2 bg-bambu-dark rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full ${t} transition-all duration-300`,style:{width:`${Math.min(100,e)}%`}})})}function F9({title:e,icon:t,children:n}){return(0,G.jsxs)(zd,{className:`p-6`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,G.jsx)(t,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e})]}),n]})}function f0e(){let{t:e}=U(),t=co(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),{data:u,isLoading:d,refetch:f,isFetching:p}=K({queryKey:[`systemInfo`],queryFn:Z.getSystemInfo,refetchInterval:3e4}),{data:m}=K({queryKey:[`debugLogging`],queryFn:Dd.getDebugLoggingState,staleTime:10*1e3,refetchInterval:10*1e3}),{data:h}=K({queryKey:[`settings`],queryFn:Z.getSettings}),{data:g}=K({queryKey:[`library-stats`],queryFn:Z.getLibraryStats}),{data:_}=K({queryKey:[`printers`],queryFn:Z.getPrinters}),{data:v,refetch:b,isFetching:x}=K({queryKey:[`systemHealth`],queryFn:Z.getSystemHealth,staleTime:60*1e3}),S=h?.time_format||`system`,C=async()=>{s(!0);try{let e=await Dd.setDebugLogging(!m?.enabled);t.setQueryData([`debugLogging`],e)}catch(e){console.error(`Failed to toggle debug logging:`,e)}finally{s(!1)}},w=async()=>{r(null),a(!0);try{await Dd.downloadSupportBundle()}catch(e){r(e instanceof Error?e.message:`Failed to download support bundle`)}finally{a(!1)}};if(d)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-64`,children:(0,G.jsx)(Y,{className:`w-8 h-8 text-bambu-green animate-spin`})});if(!u)return(0,G.jsx)(`div`,{className:`p-6 text-center text-bambu-gray`,children:e(`system.failedToLoad`,`Failed to load system information`)});let T=u.storage.disk_percent_used>90?`bg-red-500`:u.storage.disk_percent_used>75?`bg-yellow-500`:`bg-bambu-green`,E=u.memory.percent_used>90?`bg-red-500`:u.memory.percent_used>75?`bg-yellow-500`:`bg-bambu-green`;return(0,G.jsxs)(`div`,{className:`p-6 space-y-6`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`system.title`,`System Information`)}),(0,G.jsx)(`p`,{className:`text-bambu-gray mt-1`,children:e(`system.subtitle`,`Monitor system resources and database statistics`)})]}),(0,G.jsxs)(`button`,{onClick:()=>f(),disabled:p,className:`flex items-center gap-2 px-4 py-2 bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary rounded-lg transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${p?`animate-spin`:``}`}),e(`common.refresh`,`Refresh`)]})]}),(0,G.jsx)(F9,{title:e(`system.application`,`Application`),icon:tu,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[(0,G.jsx)(P9,{icon:tu,label:e(`system.version`,`Version`),value:`v${u.app.version}`}),(0,G.jsx)(P9,{icon:js,label:e(`system.uptime`,`System Uptime`),value:u.system.uptime_formatted}),(0,G.jsx)(P9,{icon:tu,label:e(`system.hostname`,`Hostname`),value:u.system.hostname})]})}),(0,G.jsx)(F9,{title:e(`support.title`,`Support & Troubleshooting`),icon:Ic,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`support.description`,`Enable debug logging to capture detailed information, then download a support bundle to share when reporting issues.`)}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg ${m?.enabled?`bg-amber-500/20 text-amber-500`:`bg-bambu-dark-tertiary text-bambu-gray`}`,children:(0,G.jsx)($o,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:e(`support.debugLogging`,`Debug Logging`)}),(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[m?.enabled?e(`support.debugLoggingEnabled`,`Capturing detailed logs`):e(`support.debugLoggingDisabled`,`Normal logging level`),m?.enabled&&m.duration_seconds!==null&&(0,G.jsxs)(`span`,{className:`text-amber-700 dark:text-amber-400 ml-2`,children:[`(`,Math.floor(m.duration_seconds/60),`m `,m.duration_seconds%60,`s)`]})]})]})]}),(0,G.jsxs)(`button`,{onClick:C,disabled:o,className:`px-4 py-2 rounded-lg font-medium transition-colors flex items-center gap-2 ${m?.enabled?`bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-500/20 dark:text-amber-400 dark:hover:bg-amber-500/30`:`bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30`} disabled:opacity-50`,children:[o&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),m?.enabled?e(`support.disableDebug`,`Disable`):e(`support.enableDebug`,`Enable`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`p-2 rounded-lg bg-bambu-dark-tertiary text-bambu-green`,children:(0,G.jsx)(Xs,{className:`w-5 h-5`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-medium text-white`,children:e(`support.supportBundle`,`Support Bundle`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`support.supportBundleDescription`,`Download system info and logs as a ZIP file`)})]})]}),(0,G.jsxs)(`button`,{onClick:w,disabled:i||!m?.enabled,className:`px-4 py-2 rounded-lg font-medium bg-bambu-green/20 text-bambu-green hover:bg-bambu-green/30 transition-colors flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed`,title:m?.enabled?void 0:e(`support.enableDebugFirst`,`Enable debug logging first`),children:[i&&(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),i?e(`support.bundleGenerating`,`Generating...`):e(`common.download`,`Download`)]})]}),i&&(0,G.jsxs)(`div`,{className:`p-3 bg-bambu-dark-tertiary/40 rounded-lg space-y-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm font-medium text-white flex items-center gap-2`,children:[(0,G.jsx)(Y,{className:`w-3.5 h-3.5 animate-spin text-bambu-green`}),e(`support.bundleGenerating`,`Generating...`)]}),(0,G.jsxs)(`ul`,{className:`text-xs text-bambu-gray list-disc list-inside space-y-0.5 pl-1`,children:[(0,G.jsx)(`li`,{children:e(`support.bundleStepConnection`,`Running printer connectivity checks`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepVirtualPrinters`,`Running virtual-printer setup checks`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepLogScan`,`Scanning recent logs for known issues`)}),(0,G.jsx)(`li`,{children:e(`support.bundleStepBuild`,`Building the support bundle ZIP`)})]})]}),n&&(0,G.jsx)(`div`,{className:`p-3 bg-red-100 border border-red-300 rounded-lg text-red-700 dark:bg-red-500/20 dark:border-red-500/30 dark:text-red-400 text-sm`,children:n}),!m?.enabled&&(0,G.jsx)(`div`,{className:`p-4 bg-bambu-dark-tertiary/50 rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{className:`text-amber-700 dark:text-amber-400 font-medium`,children:e(`support.instructions`,`To report an issue:`)}),(0,G.jsx)(`br`,{}),`1. `,e(`support.step1`,`Enable debug logging`),(0,G.jsx)(`br`,{}),`2. `,e(`support.step2`,`Reproduce the issue`),(0,G.jsx)(`br`,{}),`3. `,e(`support.step3`,`Download the support bundle`),(0,G.jsx)(`br`,{}),`4. `,e(`support.step4`,`Attach the ZIP file to your issue report`)]})}),(0,G.jsxs)(`div`,{className:`p-4 bg-bambu-dark rounded-lg space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium text-white`,children:e(`support.privacyTitle`,`What's in the support bundle?`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 text-sm`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-bambu-green font-medium mb-1`,children:e(`support.collected`,`Collected:`)}),(0,G.jsxs)(`ul`,{className:`text-bambu-gray space-y-0.5`,children:[(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem1`,`App version and debug mode`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem2`,`OS, architecture, Python version`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem3`,`Database statistics (counts only)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem4`,`Printer models and nozzle counts`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem5`,`Non-sensitive settings (themes, formats)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem6`,`Debug logs (sanitized)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem7`,`Printer connectivity and firmware versions`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem8`,`Integration status (Spoolman, MQTT, HA)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem9`,`Network interfaces (subnets only)`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem10`,`Python package versions`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem11`,`Database health checks`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.collectItem12`,`Docker environment details`)]})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-red-700 dark:text-red-400 font-medium mb-1`,children:e(`support.notCollected`,`NOT collected:`)}),(0,G.jsxs)(`ul`,{className:`text-bambu-gray space-y-0.5`,children:[(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem1`,`Printer names and serial numbers`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem2`,`Access codes and passwords`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem3`,`Email addresses`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem4`,`API keys and tokens`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem5`,`Webhook URLs`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem6`,`Your hostname or username`)]}),(0,G.jsxs)(`li`,{children:[`• `,e(`support.notItem7`,`IP addresses`)]})]})]})]}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray/70`,children:e(`support.privacyNote`,`Email addresses in logs are replaced with [EMAIL], printer names with [PRINTER], serial numbers with [SERIAL], and IP addresses with [IP].`)})]}),(0,G.jsx)(l0e,{})]})}),(0,G.jsxs)(F9,{title:e(`diagnostic.sectionTitle`,`Connection Diagnostic`),icon:Su,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mb-4`,children:e(`diagnostic.sectionDescription`,`Check why a printer won't connect or won't print — port reachability, LAN developer mode, Docker network mode, and credentials.`)}),_&&_.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`span`,{className:`font-medium text-white`,children:t.name}),(0,G.jsx)(`span`,{className:`text-sm text-bambu-gray ml-2`,children:t.ip_address})]}),(0,G.jsxs)(`button`,{onClick:()=>l(t),className:`flex items-center gap-2 px-3 py-1.5 text-sm bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary text-white rounded-lg transition-colors flex-shrink-0`,children:[(0,G.jsx)(Su,{className:`w-4 h-4`}),e(`diagnostic.runButton`,`Run diagnostic`)]})]},t.id))}):(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`diagnostic.noPrinters`,`No printers configured.`)})]}),(0,G.jsxs)(F9,{title:e(`systemHealth.sectionTitle`),icon:Lc,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 mb-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`systemHealth.sectionDescription`)}),(0,G.jsxs)(`button`,{onClick:()=>b(),disabled:x,className:`flex items-center gap-2 px-3 py-1.5 text-sm bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary text-white rounded-lg transition-colors flex-shrink-0 disabled:opacity-50`,children:[(0,G.jsx)(Hl,{className:`w-4 h-4 ${x?`animate-spin`:``}`}),e(`systemHealth.rescan`)]})]}),v?(0,G.jsx)(Qp,{result:v}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`common.loading`)})]}),(0,G.jsxs)(F9,{title:e(`system.database`,`Database`),icon:Gs,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mb-4`,children:[(0,G.jsx)(P9,{icon:Gs,label:e(`system.dbEngine`,`Database Engine`),value:u.database.engine||`SQLite`}),(0,G.jsx)(P9,{icon:Gs,label:e(`system.dbVersion`,`Version`),value:u.database.version||`unknown`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4 mb-4`,children:[(0,G.jsx)(P9,{icon:Po,label:e(`system.totalArchives`,`Total Archives`),value:u.database.archives}),(0,G.jsx)(P9,{icon:Ss,label:e(`system.completed`,`Completed`),value:u.database.archives_completed,color:`text-green-500`}),(0,G.jsx)(P9,{icon:Ds,label:e(`system.failed`,`Failed`),value:u.database.archives_failed,color:`text-red-500`}),(0,G.jsx)(P9,{icon:Y,label:e(`system.printing`,`Printing`),value:u.database.archives_printing,color:`text-yellow-500`})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(P9,{icon:Rl,label:e(`system.printers`,`Printers`),value:u.database.printers}),(0,G.jsx)(P9,{icon:wl,label:e(`system.filaments`,`Filaments`),value:u.database.filaments}),(0,G.jsx)(P9,{icon:_c,label:e(`system.projects`,`Projects`),value:u.database.projects}),(0,G.jsx)(P9,{icon:Pl,label:e(`system.smartPlugs`,`Smart Plugs`),value:u.database.smart_plugs})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4 mt-4`,children:[(0,G.jsx)(P9,{icon:js,label:e(`system.totalPrintTime`,`Total Print Time`),value:u.database.total_print_time_formatted}),(0,G.jsx)(P9,{icon:Po,label:e(`system.totalFilament`,`Total Filament Used`),value:`${u.database.total_filament_kg} kg`,subValue:`${u.database.total_filament_grams.toLocaleString()} g`})]})]}),(0,G.jsxs)(F9,{title:e(`system.connectedPrinters`,`Connected Printers`),icon:Rl,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-4 mb-4`,children:[(0,G.jsx)(`div`,{className:`text-3xl font-bold text-bambu-green`,children:u.printers.connected}),(0,G.jsx)(`div`,{className:`text-bambu-gray`,children:e(`system.ofTotal`,`of {{total}} printers connected`,{total:u.printers.total})})]}),u.printers.connected_list.length>0?(0,G.jsx)(`div`,{className:`space-y-2`,children:u.printers.connected_list.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-bambu-green`}),(0,G.jsx)(`span`,{className:`font-medium text-white`,children:e.name})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-4 text-sm text-bambu-gray`,children:[(0,G.jsx)(`span`,{children:e.model}),(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded ${e.state===`RUNNING`?`bg-bambu-green/20 text-bambu-green`:e.state===`IDLE`?`bg-blue-100 text-blue-700 dark:bg-blue-500/20 dark:text-blue-400`:`bg-bambu-dark-tertiary`}`,children:e.state})]})]},e.id))}):(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:e(`system.noPrintersConnected`,`No printers connected`)})]}),(0,G.jsx)(F9,{title:e(`system.storage`,`Storage`),icon:Pc,children:(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`system.diskUsage`,`Disk Usage`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[u.storage.disk_used_formatted,` / `,u.storage.disk_total_formatted]})]}),(0,G.jsx)(d0e,{percent:u.storage.disk_percent_used,color:T}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[u.storage.disk_free_formatted,` `,e(`system.free`,`free`),` (`,(100-u.storage.disk_percent_used).toFixed(1),`%)`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[(0,G.jsx)(P9,{icon:Po,label:e(`system.archiveStorage`,`Archive Storage`),value:u.storage.archive_size_formatted}),(0,G.jsx)(P9,{icon:Gs,label:e(`system.databaseSize`,`Database Size`),value:u.storage.database_size_formatted}),g&&(0,G.jsx)(P9,{icon:vc,label:e(`system.fileManagerStorage`,`File Manager`),value:u0e(g.total_size_bytes),subValue:`${g.total_files} files, ${g.total_folders} folders`})]})]})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,G.jsx)(F9,{title:e(`system.memory`,`Memory`),icon:ul,children:(0,G.jsx)(`div`,{className:`space-y-4`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex justify-between text-sm mb-1`,children:[(0,G.jsx)(`span`,{className:`text-bambu-gray`,children:e(`system.memoryUsage`,`Memory Usage`)}),(0,G.jsxs)(`span`,{className:`text-white`,children:[u.memory.used_formatted,` / `,u.memory.total_formatted]})]}),(0,G.jsx)(d0e,{percent:u.memory.percent_used,color:E}),(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray mt-1`,children:[u.memory.available_formatted,` `,e(`system.available`,`available`)]})]})})}),(0,G.jsx)(F9,{title:e(`system.cpu`,`CPU`),icon:Hs,children:(0,G.jsx)(`div`,{className:`space-y-4`,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,G.jsx)(P9,{icon:Hs,label:e(`system.cores`,`Cores`),value:u.cpu.count,subValue:`${u.cpu.count_logical} logical`}),(0,G.jsx)(P9,{icon:Hs,label:e(`system.usage`,`Usage`),value:`${u.cpu.percent}%`})]})})})]}),(0,G.jsx)(F9,{title:e(`system.systemDetails`,`System Details`),icon:tu,children:(0,G.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4`,children:[(0,G.jsx)(P9,{icon:tu,label:e(`system.os`,`Operating System`),value:u.system.platform,subValue:u.system.platform_release}),(0,G.jsx)(P9,{icon:Hs,label:e(`system.architecture`,`Architecture`),value:u.system.architecture}),(0,G.jsx)(P9,{icon:tu,label:e(`system.python`,`Python`),value:u.system.python_version}),(0,G.jsx)(P9,{icon:js,label:e(`system.bootTime`,`Boot Time`),value:op(u.system.boot_time,S)})]})}),c&&(0,G.jsx)(Xp,{printerId:c.id,printerName:c.name,onClose:()=>l(null)})]})}var I9=`auth_remember_me`,L9=`auth_post_login_redirect`;function R9(e){return e?`persistent`:`session`}function p0e(){try{let e=sessionStorage.getItem(I9)===`1`;return sessionStorage.removeItem(I9),e}catch(e){return console.warn(`consumeSavedRememberMe: sessionStorage unavailable, Remember Me preference lost across OIDC redirect`,e),!1}}function z9(e){return!e||!e.startsWith(`/`)||e.startsWith(`//`)||e.startsWith(`/login`)?null:e}function m0e(e){let t=z9(e);if(t)try{sessionStorage.setItem(L9,t)}catch(e){console.warn(`stashPostLoginRedirect: sessionStorage unavailable, post-login target will be lost across OIDC redirect`,e)}}function h0e(){try{let e=sessionStorage.getItem(L9);return sessionStorage.removeItem(L9),z9(e)}catch(e){return console.warn(`consumePostLoginRedirect: sessionStorage unavailable`,e),null}}function g0e({provider:e,onClick:t,disabled:n}){let{t:r}=U(),[i,a]=(0,y.useState)(!1);return(0,G.jsxs)(`button`,{type:`button`,onClick:t,disabled:n,className:`w-full flex items-center justify-center gap-3 py-3 px-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary hover:border-bambu-green/50 rounded-lg text-white font-medium transition-colors disabled:opacity-50`,children:[e.has_icon&&!i?(0,G.jsx)(`img`,{src:Z.oidcProviderIconUrl(e.id),alt:``,className:`w-5 h-5 object-contain`,onError:()=>a(!0)}):(0,G.jsx)(su,{className:`w-5 h-5 text-bambu-green`}),r(`login.twoFA.signInWith`,{provider:e.name})]})}function _0e(){let e=or(),t=rr(),[n]=Ri(),{t:r}=U(),{login:i,loginWithToken:a,user:o,loading:s}=Nd(),{showToast:c}=qd(),{mode:l}=Id();function u(){let e=t.state?.from;if(e?.pathname){let t=z9(`${e.pathname}${e.search??``}`);if(t)return t}return h0e()??`/`}let[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(``),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(``),[b,x]=(0,y.useState)(`credentials`),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)([]),[E,D]=(0,y.useState)(`totp`),[O,k]=(0,y.useState)(``),[A,j]=(0,y.useState)(!1),M=(0,y.useRef)(null),[N,P]=(0,y.useState)(!1),[F,I]=(0,y.useState)(``),[L,R]=(0,y.useState)(``),[z,B]=(0,y.useState)(``),{data:V}=K({queryKey:[`advancedAuthStatus`],queryFn:()=>Z.getAdvancedAuthStatus()}),{data:ee}=K({queryKey:[`oidcProviders`],queryFn:()=>Z.getOIDCProviders()}),[te,ne]=(0,y.useState)(!1);(0,y.useEffect)(()=>{!s&&o&&b===`credentials`&&e(`/`,{replace:!0})},[s,o,b,e]);let re=(0,y.useRef)(!1);(0,y.useEffect)(()=>{if(re.current||n.get(`fallback`)===`local`||!V||!V.autologin_provider_id||window.location.hash.startsWith(`#oidc_token=`)||n.get(`oidc_error`))return;re.current=!0;let e=V.autologin_provider_id,t=new Promise((e,t)=>setTimeout(()=>t(Error(`autologin timeout`)),5e3));Promise.race([Z.getOIDCAuthorizeUrl(e),t]).then(e=>{window.location.href=e.auth_url}).catch(()=>{ne(!0)})},[V,n]);let ie=V?.local_login_enabled!==!1,ae=te&&V?.autologin_provider_id!=null;(0,y.useEffect)(()=>{let t=window.location.hash,n=t.startsWith(`#reset_token=`)?t.slice(13):null;n&&(I(n),x(`reset-password`),e(`/login`,{replace:!0}))},[]),(0,y.useEffect)(()=>{let t=window.location.hash,i=t.startsWith(`#oidc_token=`)?t.slice(12):null,o=n.get(`oidc_error`);if(!i&&!o)return;let s=p0e();if(o){c({oidc_provider_error:r(`login.oidcErrors.providerError`),missing_parameters:r(`login.oidcErrors.missingParameters`),invalid_state:r(`login.oidcErrors.invalidState`),state_expired:r(`login.oidcErrors.stateExpired`),provider_not_found:r(`login.oidcErrors.providerNotFound`),discovery_failed:r(`login.oidcErrors.discoveryFailed`),invalid_discovery_document:r(`login.oidcErrors.invalidDiscovery`),token_exchange_network_error:r(`login.oidcErrors.networkError`),token_exchange_bad_response:r(`login.oidcErrors.badResponse`),no_id_token:r(`login.oidcErrors.noIdToken`),token_validation_failed:r(`login.oidcErrors.validationFailed`),nonce_mismatch:r(`login.oidcErrors.nonceMismatch`),missing_sub_claim:r(`login.oidcErrors.missingSubClaim`),no_linked_account:r(`login.oidcErrors.noLinkedAccount`),account_inactive:r(`login.oidcErrors.accountInactive`),user_resolution_failed:r(`login.oidcErrors.userResolutionFailed`),internal_error:r(`login.oidcErrors.internalError`)}[o]??(o.startsWith(`token_exchange_`)?r(`login.oidcErrors.tokenExchangeFailed`):r(`login.oidcLoginFailed`)),`error`),e(`/login`,{replace:!0});return}i&&Z.exchangeOIDCToken(i).then(t=>{if(t.requires_2fa&&t.pre_auth_token){P(s),C(t.pre_auth_token);let n=t.two_fa_methods??[];T(n),n.includes(`totp`)?D(`totp`):n.includes(`email`)?D(`email`):D(`backup`),x(`2fa`),e(`/login`,{replace:!0})}else t.access_token&&t.user?(a(t.access_token,t.user,R9(s)),c(r(`login.loginSuccess`)),e(u(),{replace:!0})):(c(r(`login.oidcLoginFailed`),`error`),e(`/login`,{replace:!0}))}).catch(t=>{console.error(`OIDC token exchange failed`,t),c(r(`login.oidcLoginFailed`),`error`),e(`/login`,{replace:!0})})},[n]);let oe=q({mutationFn:()=>i(d,p,R9(N)),onSuccess:t=>{if(t.requires_2fa&&t.pre_auth_token){C(t.pre_auth_token);let e=t.two_fa_methods??[];T(e),e.includes(`totp`)?D(`totp`):e.includes(`email`)?D(`email`):D(`backup`),x(`2fa`)}else t.access_token&&t.user&&(c(r(`login.loginSuccess`)),e(u(),{replace:!0}))},onError:e=>{c(e.message||r(`login.loginFailed`),`error`)}}),se=q({mutationFn:e=>Z.forgotPassword({email:e}),onSuccess:e=>{c(e.message,`success`),g(!1),v(``)},onError:e=>{c(e.message,`error`)}}),H=q({mutationFn:()=>Z.forgotPasswordConfirm(F,L),onSuccess:e=>{c(e.message,`success`),x(`credentials`),I(``),R(``),B(``)},onError:e=>{c(e.message||r(`login.resetPassword.resetFailed`),`error`)}}),ce=q({mutationFn:()=>Z.sendEmailOTP(S),onSuccess:e=>{j(!0),e.pre_auth_token&&C(e.pre_auth_token),c(e.message,`success`)},onError:e=>{c(e.message||r(`login.twoFA.sendCodeFailed`),`error`)}}),le=q({mutationFn:()=>Z.verify2FA({pre_auth_token:S,code:O,method:E}),onSuccess:t=>{t.access_token&&t.user?(a(t.access_token,t.user,R9(N)),c(r(`login.loginSuccess`)),e(u(),{replace:!0})):(console.error(`2FA verify: unexpected response shape`,t),c(r(`login.loginFailed`),`error`))},onError:e=>{c(e.message||r(`login.twoFA.invalidCode`),`error`),k(``)}}),ue=q({mutationFn:e=>Z.getOIDCAuthorizeUrl(e),onSuccess:e=>{if(N)try{sessionStorage.setItem(I9,`1`)}catch(e){console.warn(`setItem auth_remember_me failed, Remember Me will not carry through OIDC redirect`,e)}let n=t.state?.from;n?.pathname&&m0e(`${n.pathname}${n.search??``}`),window.location.href=e.auth_url},onError:e=>{c(e.message||r(`login.oidcLoginFailed`),`error`)}}),de=e=>{if(e.preventDefault(),!d||!p){c(r(`login.enterCredentials`),`error`);return}oe.mutate()},fe=e=>{if(e.preventDefault(),!O.trim()){c(r(`login.twoFA.enterCode`),`error`);return}le.mutate()},pe=e=>{if(e.preventDefault(),!_){c(r(`login.enterEmail`),`error`);return}se.mutate(_)},me=e=>{D(e),k(``),j(!1),setTimeout(()=>M.current?.focus(),0)};return b===`reset-password`?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full bg-bambu-green/20 flex items-center justify-center`,children:(0,G.jsx)(Kc,{className:`w-7 h-7 text-bambu-green`})})}),(0,G.jsx)(`h2`,{className:`text-2xl font-bold text-white`,children:r(`login.resetPassword.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.resetPassword.subtitle`)})]}),(0,G.jsxs)(`form`,{onSubmit:e=>{if(e.preventDefault(),L!==z){c(r(`login.resetPassword.passwordsDoNotMatch`),`error`);return}if(L.length<8){c(r(`login.resetPassword.passwordTooShort`),`error`);return}H.mutate()},className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`new-password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.resetPassword.newPassword`)}),(0,G.jsx)(`input`,{id:`new-password`,type:`password`,required:!0,value:L,onChange:e=>R(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.resetPassword.newPasswordPlaceholder`),autoFocus:!0,autoComplete:`new-password`,minLength:8})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`confirm-password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.resetPassword.confirmPassword`)}),(0,G.jsx)(`input`,{id:`confirm-password`,type:`password`,required:!0,value:z,onChange:e=>B(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.resetPassword.confirmPasswordPlaceholder`),autoComplete:`new-password`})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:H.isPending||!L||!z,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed`,children:H.isPending?r(`login.resetPassword.saving`):r(`login.resetPassword.submit`)})]}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>{x(`credentials`),I(``),R(``),B(``)},className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.resetPassword.backToLogin`)})})]})}):b===`2fa`?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-4`,children:(0,G.jsx)(`div`,{className:`w-14 h-14 rounded-full bg-bambu-green/20 flex items-center justify-center`,children:(0,G.jsx)(su,{className:`w-7 h-7 text-bambu-green`})})}),(0,G.jsx)(`h2`,{className:`text-2xl font-bold text-white`,children:r(`login.twoFA.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.twoFA.subtitle`)})]}),w.length>1&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[w.includes(`totp`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`totp`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`totp`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(mu,{className:`w-4 h-4`}),r(`login.twoFA.methodAuthenticator`)]}),w.includes(`email`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`email`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`email`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(al,{className:`w-4 h-4`}),r(`login.twoFA.methodEmail`)]}),w.includes(`backup`)&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>me(`backup`),className:`flex-1 flex flex-col items-center gap-1 py-2 px-3 rounded-lg border text-xs font-medium transition-colors ${E===`backup`?`border-bambu-green bg-bambu-green/10 text-bambu-green`:`border-bambu-dark-tertiary text-bambu-gray hover:border-bambu-green/50`}`,children:[(0,G.jsx)(Kc,{className:`w-4 h-4`}),r(`login.twoFA.methodBackup`)]})]}),(0,G.jsxs)(`form`,{onSubmit:fe,className:`space-y-4`,children:[E===`totp`&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(`login.twoFA.instructionsTotp`)}),E===`email`&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(A?`login.twoFA.instructionsEmail`:`login.twoFA.instructionsEmailNotSent`)}),!A&&(0,G.jsx)(Q,{type:`button`,variant:`secondary`,className:`w-full`,onClick:()=>ce.mutate(),disabled:ce.isPending,children:ce.isPending?r(`login.twoFA.sendingCode`):r(`login.twoFA.sendCodeButton`)}),A&&(0,G.jsx)(`button`,{type:`button`,onClick:()=>{j(!1),ce.mutate()},className:`text-xs text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.twoFA.resendCode`)})]}),E===`backup`&&(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:r(`login.twoFA.instructionsBackup`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`twofa-code`,className:`block text-sm font-medium text-white mb-2`,children:r(E===`backup`?`login.twoFA.backupCodeLabel`:`login.twoFA.codeLabel`)}),(0,G.jsx)(`input`,{ref:M,id:`twofa-code`,type:`text`,inputMode:E===`backup`?`text`:`numeric`,autoComplete:`one-time-code`,value:O,onChange:e=>k(e.target.value.trim()),disabled:E===`email`&&!A,className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray text-center tracking-widest text-xl font-mono focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors disabled:opacity-40`,placeholder:r(E===`backup`?`login.twoFA.backupCodePlaceholder`:`login.twoFA.codePlaceholder`),maxLength:E===`backup`?8:6,autoFocus:!0})]}),(0,G.jsx)(`button`,{type:`submit`,disabled:le.isPending||!O.trim()||E===`email`&&!A,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed`,children:le.isPending?r(`login.twoFA.verifyingButton`):r(`login.twoFA.verifyButton`)})]}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>{x(`credentials`),C(``),k(``),j(!1)},className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.twoFA.backToLogin`)})})]})}):(0,G.jsxs)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:[(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-6`,children:(0,G.jsx)(`img`,{src:l===`dark`?`/img/bambuddy_logo_dark_transparent.png`:`/img/bambuddy_logo_light.png`,alt:`Bambuddy`,className:`h-16`})}),(0,G.jsx)(`h2`,{className:`text-3xl font-bold text-white`,children:r(`login.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:r(`login.subtitle`)})]}),ae&&(0,G.jsx)(`div`,{className:`mt-6 rounded-lg border border-amber-300 dark:border-amber-500/40 bg-amber-50 dark:bg-amber-500/10 px-4 py-3 text-sm text-amber-800 dark:text-amber-200`,children:r(`login.autologinFailed`)}),!ie&&(0,G.jsx)(`div`,{className:`mt-6 rounded-lg border border-bambu-dark-tertiary bg-bambu-dark/40 px-4 py-3 text-sm text-bambu-gray`,children:r(`login.localDisabledNotice`)}),ie&&(0,G.jsxs)(`form`,{className:`mt-8 space-y-6`,onSubmit:de,children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`username`,className:`block text-sm font-medium text-white mb-2`,children:V?.advanced_auth_enabled?r(`login.usernameOrEmail`):r(`login.username`)}),(0,G.jsx)(`input`,{id:`username`,type:`text`,required:!0,value:d,onChange:e=>f(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:V?.advanced_auth_enabled?r(`login.usernameOrEmailPlaceholder`):r(`login.usernamePlaceholder`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`password`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.password`)||`Password`}),(0,G.jsx)(`input`,{id:`password`,type:`password`,required:!0,value:p,onChange:e=>m(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.passwordPlaceholder`),autoComplete:`current-password`})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{id:`remember-me`,type:`checkbox`,checked:N,onChange:e=>P(e.target.checked),className:`h-4 w-4 rounded border-bambu-dark-tertiary bg-bambu-dark-secondary text-bambu-green focus:ring-bambu-green/50 cursor-pointer`}),(0,G.jsx)(`label`,{htmlFor:`remember-me`,className:`text-sm text-bambu-gray cursor-pointer`,children:r(`login.rememberMe`)})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`button`,{type:`submit`,disabled:oe.isPending,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-bambu-green`,children:oe.isPending?r(`login.signingIn`):r(`login.signIn`)})}),(0,G.jsx)(`div`,{className:`text-center`,children:(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(!0),className:`text-sm text-bambu-gray hover:text-bambu-green transition-colors`,children:r(`login.forgotPassword`)})})]}),ee&&ee.length>0&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center`,children:(0,G.jsx)(`div`,{className:`w-full border-t border-bambu-dark-tertiary`})}),(0,G.jsx)(`div`,{className:`relative flex justify-center text-sm`,children:(0,G.jsx)(`span`,{className:`px-2 bg-bambu-dark-secondary text-bambu-gray`,children:r(`login.twoFA.orContinueWith`)})})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:ee.map(e=>(0,G.jsx)(g0e,{provider:e,onClick:()=>ue.mutate(e.id),disabled:ue.isPending},e.id))})]})]}),h&&(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4`,onClick:()=>g(!1),children:(0,G.jsxs)(zd,{className:`w-full max-w-md`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(Bd,{children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(al,{className:`w-5 h-5 text-bambu-green`}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:r(`login.forgotPasswordTitle`)})]}),(0,G.jsx)(Q,{variant:`ghost`,size:`sm`,onClick:()=>{g(!1),v(``)},children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]})}),(0,G.jsx)(Vd,{children:V?.advanced_auth_enabled?(0,G.jsxs)(`form`,{onSubmit:pe,className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray text-sm`,children:r(`login.forgotPasswordEmailMessage`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`forgot-email`,className:`block text-sm font-medium text-white mb-2`,children:r(`login.emailAddress`)}),(0,G.jsx)(`input`,{id:`forgot-email`,type:`email`,required:!0,value:_,onChange:e=>v(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:r(`login.emailPlaceholder`)})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Q,{type:`button`,variant:`secondary`,className:`flex-1`,onClick:()=>{g(!1),v(``)},children:r(`login.cancel`)}),(0,G.jsx)(Q,{type:`submit`,className:`flex-1`,disabled:se.isPending,children:se.isPending?r(`login.sending`):r(`login.sendResetEmail`)})]})]}):(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:r(`login.forgotPasswordMessage`)}),(0,G.jsxs)(`div`,{className:`bg-bambu-dark rounded-lg p-4 space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-sm text-white font-medium`,children:r(`login.howToReset`)}),(0,G.jsxs)(`ol`,{className:`text-sm text-bambu-gray space-y-1 list-decimal list-inside`,children:[(0,G.jsx)(`li`,{children:r(`login.resetStep1`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep2`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep3`)}),(0,G.jsx)(`li`,{children:r(`login.resetStep4`)})]})]}),(0,G.jsx)(Q,{variant:`secondary`,className:`w-full`,onClick:()=>g(!1),children:r(`login.gotIt`)})]})})]})})]})}function v0e(){let e=or(),{t}=U(),{showToast:n}=qd(),{mode:r}=Id(),{refreshAuth:i}=Nd(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(``),p=q({mutationFn:()=>Z.setupAuth({auth_enabled:a,admin_username:a?s:void 0,admin_password:a?l:void 0}),onSuccess:async r=>{await i(),r.auth_enabled?r.admin_created?(n(t(`setup.toast.authEnabledAdminCreated`)),e(`/login`)):(n(t(`setup.toast.authEnabledExistingAdmins`)),e(`/login`)):(n(t(`setup.toast.setupCompleted`)),e(`/`))},onError:e=>{n(e.message,`error`)}});return(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center bg-bambu-dark p-4`,children:(0,G.jsxs)(`div`,{className:`max-w-md w-full space-y-8 p-8 bg-gradient-to-br from-bambu-card to-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center mb-6`,children:(0,G.jsx)(`img`,{src:r===`dark`?`/img/bambuddy_logo_dark_transparent.png`:`/img/bambuddy_logo_light.png`,alt:`Bambuddy`,className:`h-16`})}),(0,G.jsx)(`h2`,{className:`text-3xl font-bold text-white`,children:t(`setup.title`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-bambu-gray`,children:t(`setup.subtitle`)})]}),(0,G.jsxs)(`form`,{className:`mt-8 space-y-6`,onSubmit:e=>{if(e.preventDefault(),a&&(s||l)){if(!s||!l){n(t(`setup.toast.enterBothCredentials`),`error`);return}if(l!==d){n(t(`setup.toast.passwordsDoNotMatch`),`error`);return}if(l.length<6){n(t(`setup.toast.passwordTooShort`),`error`);return}}p.mutate()},children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center p-4 bg-bambu-dark-secondary/50 rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`input`,{id:`auth-enabled`,type:`checkbox`,checked:a,onChange:e=>o(e.target.checked),className:`h-4 w-4 text-bambu-green focus:ring-bambu-green border-bambu-dark-tertiary rounded bg-bambu-dark-secondary`}),(0,G.jsx)(`label`,{htmlFor:`auth-enabled`,className:`ml-3 block text-sm font-medium text-white`,children:t(`setup.enableAuth`)})]}),a&&(0,G.jsxs)(`div`,{className:`space-y-4 mt-4`,children:[(0,G.jsx)(`div`,{className:`p-3 bg-bambu-dark-secondary/50 border border-bambu-dark-tertiary rounded-lg`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(Wc,{className:`w-4 h-4 text-bambu-green mt-0.5 flex-shrink-0`}),(0,G.jsxs)(`div`,{className:`text-sm text-bambu-gray`,children:[(0,G.jsx)(`p`,{className:`text-white font-medium mb-1`,children:t(`setup.adminAccount`)}),(0,G.jsx)(`p`,{children:t(`setup.adminAccountDesc`)})]})]})}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{htmlFor:`admin-username`,className:`block text-sm font-medium text-white mb-2`,children:[t(`setup.adminUsername`),` `,(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:t(`setup.optionalIfAdminExists`)})]}),(0,G.jsx)(`input`,{id:`admin-username`,type:`text`,value:s,onChange:e=>c(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.adminUsernamePlaceholder`),autoComplete:`username`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`label`,{htmlFor:`admin-password`,className:`block text-sm font-medium text-white mb-2`,children:[t(`setup.adminPassword`),` `,(0,G.jsx)(`span`,{className:`text-bambu-gray text-xs`,children:t(`setup.optionalIfAdminExists`)})]}),(0,G.jsx)(`input`,{id:`admin-password`,type:`password`,value:l,onChange:e=>u(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.adminPasswordPlaceholder`),minLength:6,autoComplete:`new-password`})]}),l&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`confirm-password`,className:`block text-sm font-medium text-white mb-2`,children:t(`setup.confirmPassword`)}),(0,G.jsx)(`input`,{id:`confirm-password`,type:`password`,value:d,onChange:e=>f(e.target.value),className:`block w-full px-4 py-3 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-white placeholder-bambu-gray focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:border-bambu-green transition-colors`,placeholder:t(`setup.confirmPasswordPlaceholder`),minLength:6,autoComplete:`new-password`})]})]})]}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`button`,{type:`submit`,disabled:p.isPending,className:`w-full flex justify-center py-3 px-4 bg-bambu-green hover:bg-bambu-green-light text-white font-medium rounded-lg shadow-lg shadow-bambu-green/20 hover:shadow-bambu-green/30 focus:outline-none focus:ring-2 focus:ring-bambu-green/50 focus:ring-offset-2 focus:ring-offset-bambu-dark-secondary transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:bg-bambu-green`,children:p.isPending?t(`setup.settingUp`):t(`setup.completeSetup`)})})]})]})})}function y0e(){let{t:e}=U(),{user:t}=Nd(),{showToast:n}=qd(),r=co(),i=or(),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(!0),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(!0),[p,m]=(0,y.useState)(!1),{data:h,isLoading:g}=K({queryKey:[`advancedAuthStatus`],queryFn:Z.getAdvancedAuthStatus,staleTime:300*1e3}),{data:_,isLoading:v}=K({queryKey:[`settings`],queryFn:Z.getSettings,staleTime:300*1e3}),{data:b,isLoading:x}=K({queryKey:[`user-email-preferences`],queryFn:()=>Z.getUserEmailPreferences()});(0,y.useEffect)(()=>{(h&&!h.advanced_auth_enabled||_&&!_.user_notifications_enabled)&&i(`/settings`,{replace:!0})},[h,_,i]),(0,y.useEffect)(()=>{b&&(o(b.notify_print_start),c(b.notify_print_complete),u(b.notify_print_failed),f(b.notify_print_stopped),m(!1))},[b]);let S=q({mutationFn:()=>Z.updateUserEmailPreferences({notify_print_start:a,notify_print_complete:s,notify_print_failed:l,notify_print_stopped:d}),onSuccess:()=>{r.invalidateQueries({queryKey:[`user-email-preferences`]}),m(!1),n(e(`notifications.userEmail.saveSuccess`),`success`)},onError:t=>{n(t.message||e(`notifications.userEmail.saveError`),`error`)}}),C=(e,t)=>{e(!t),m(!0)};return x||g||v?(0,G.jsx)(`div`,{className:`flex items-center justify-center h-64`,children:(0,G.jsx)(Y,{className:`w-8 h-8 animate-spin text-bambu-green`})}):(0,G.jsxs)(`div`,{className:`p-4 md:p-6 max-w-2xl mx-auto`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,G.jsx)(qo,{className:`w-7 h-7 text-bambu-green`}),(0,G.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`notifications.userEmail.title`)})]}),(0,G.jsx)(zd,{className:`mb-6 border-blue-300 bg-blue-50 dark:border-blue-500/30 dark:bg-blue-500/5`,children:(0,G.jsx)(Vd,{className:`py-4`,children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center bg-blue-100 dark:bg-blue-500/20 flex-shrink-0`,children:(0,G.jsx)(al,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-white font-medium`,children:e(`notifications.userEmail.emailNotifications`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.emailNotificationsDesc`)}),t?.email?(0,G.jsxs)(`p`,{className:`text-sm text-blue-700 dark:text-blue-400 mt-2`,children:[e(`notifications.userEmail.sendingTo`),`: `,(0,G.jsx)(`strong`,{children:t.email})]}):(0,G.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-400 mt-2`,children:e(`notifications.userEmail.noEmailWarning`)})]})]})})}),(0,G.jsxs)(zd,{className:`mb-6`,children:[(0,G.jsxs)(Bd,{children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`notifications.userEmail.printJobNotifications`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.printJobNotificationsDesc`)})]}),(0,G.jsxs)(Vd,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${a?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${a?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStarts`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStartsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(o,a),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${a?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":a,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${a?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${s?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${s?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobFinishes`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobFinishesDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(c,s),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${s?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":s,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${s?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${l?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${l?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printErrors`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printErrorsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(u,l),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${l?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":l,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${l?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${d?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(Ss,{className:`w-5 h-5 ${d?`text-bambu-green`:`text-bambu-gray`}`})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStops`)}),(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStopsDesc`)})]})]}),(0,G.jsx)(`button`,{onClick:()=>C(f,d),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${d?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":d,children:(0,G.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${d?`translate-x-6`:`translate-x-1`}`})})]})]})]}),(0,G.jsx)(`div`,{className:`flex justify-end`,children:(0,G.jsx)(Q,{onClick:()=>S.mutate(),disabled:!p||S.isPending||!t?.email,children:S.isPending?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin`}),e(`common.saving`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ql,{className:`w-4 h-4`}),e(`common.save`)]})})})]})}function b0e(){let e=or(),[t,n]=Ri(),{t:r}=U(),i=t.get(`archive`),a=t.get(`library_file`),o=t.get(`plate`),s=K({queryKey:[`gcode-viewer-archive-colors`,i],queryFn:()=>Z.getArchiveCapabilities(Number(i)),enabled:!!i,staleTime:5*6e4,retry:!1}),c=K({queryKey:[`gcode-viewer-library-colors`,a],queryFn:()=>Z.getLibraryFilePlates(Number(a)),enabled:!!a,staleTime:5*6e4,retry:!1}),l=K({queryKey:[`gcode-viewer-archive-plates`,i],queryFn:()=>Z.getArchivePlates(Number(i)),enabled:!!i,staleTime:5*6e4,retry:!1}),u=(0,y.useMemo)(()=>(i?l.data?.plates:c.data?.plates)??[],[i,l.data,c.data]),d=(0,y.useMemo)(()=>o?Number(o):u.length===0?null:Math.min(...u.map(e=>e.index)),[o,u]),f=e=>{if(e===d)return;let r=new URLSearchParams(t);r.set(`plate`,String(e)),n(r,{replace:!0})},p=(0,y.useMemo)(()=>{if(i)return s.data?.filament_colors;let e=u.find(e=>e.index===d)||u[0];if(!e?.filaments?.length)return;let t=[];for(let n of e.filaments){let e=Math.max(0,(n.slot_id??1)-1);n.color&&(t[e]=n.color)}return t.length>0?t:void 0},[i,s.data,u,d]),m=(0,y.useMemo)(()=>{let e=e=>o?`${e}?plate=${encodeURIComponent(o)}`:e;return i?e(Z.getArchiveGcode(Number(i))):a?e(Z.getLibraryFileGcodeUrl(Number(a))):null},[i,a,o]),h=()=>{window.history.length>1?e(-1):e(i?`/archives`:`/files`)},g=i?r(`gcodeViewer.backToArchives`,`Back to Archives`):r(`gcodeViewer.backToFiles`,`Back to File Manager`);return(0,G.jsxs)(`div`,{className:`flex flex-col min-h-[calc(100vh-64px)] lg:h-[calc(100vh-64px)]`,children:[(0,G.jsxs)(`div`,{className:`flex-shrink-0 px-4 py-2 border-b border-bambu-dark-tertiary flex flex-wrap items-center gap-x-4 gap-y-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:h,className:`inline-flex items-center gap-1.5 text-sm text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white transition-colors`,children:[(0,G.jsx)(Lo,{className:`w-4 h-4`}),g]}),u.length>1&&(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-bambu-gray`,children:r(`gcodeViewer.plates`,`Plates`)}),u.map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>f(e.index),"aria-pressed":e.index===d,title:e.name??void 0,className:`px-2 py-0.5 rounded text-xs transition-colors ${e.index===d?`bg-bambu-green text-white`:`bg-bambu-dark-tertiary text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white`}`,children:r(`gcodeViewer.plateN`,`Plate {{n}}`,{n:e.index})},e.index))]})]}),m?(0,G.jsx)(gT,{gcodeUrl:m,filamentColors:p,className:`flex-1 min-h-0`}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-sm text-bambu-gray`,children:r(`gcodeViewer.noSource`,`No file was given to preview.`)})]})}var x0e=4401;function S0e(){let e=(0,y.useRef)(null),t=(0,y.useRef)(null),n=(0,y.useRef)(!1),r=co(),[i,a]=(0,y.useState)(!1),o=(0,y.useRef)(new Map),{showToast:s}=qd(),{t:c}=U(),l=(0,y.useRef)(new Set),u=(0,y.useRef)(null),d=(0,y.useRef)(new Map),f=(0,y.useRef)(null),p=(0,y.useRef)([]),m=(0,y.useRef)(!1),h=(0,y.useRef)(()=>{}),g=(0,y.useCallback)(()=>{if(m.current||p.current.length===0)return;m.current=!0;let e=()=>{let t=p.current.shift();t?(h.current(t),p.current.length>0?setTimeout(e,16):m.current=!1):m.current=!1};e()},[]),_=(0,y.useCallback)(async()=>{if(n.current||e.current?.readyState===WebSocket.OPEN)return;let r;try{r=(await Z.getWebSocketToken()).token}catch(e){let t=e instanceof sd?e.status:0;if(t===401||t===403)return}if(n.current)return;let i=window.location.protocol===`https:`?`wss:`:`ws:`,o=r?`?token=${encodeURIComponent(r)}`:``,s=`${i}//${window.location.host}/api/v1/ws${o}`,c=new WebSocket(s),l=null;c.onopen=()=>{console.log(`[WebSocket] Connected`),a(!0),l=window.setInterval(()=>{c.readyState===WebSocket.OPEN&&c.send(JSON.stringify({type:`ping`}))},3e4)},c.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`printer_status`&&t.printer_id!==void 0&&t.data?h.current(t):(p.current.push(t),g())}catch{}},c.onclose=r=>{console.log(`[WebSocket] Closed`,r.code,r.reason),l&&=(clearInterval(l),null),a(!1),e.current=null,!(n.current||r.code===x0e)&&(t.current=window.setTimeout(()=>{_()},3e3))},c.onerror=e=>{console.error(`[WebSocket] Error`,e),c.close()},e.current=c},[g]),v=(0,y.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null);let e=new Map(d.current);d.current.clear(),e.forEach((e,t)=>{r.setQueryData([`printerStatus`,t],t=>{let n={...t,...e};return n.wifi_signal==null&&t?.wifi_signal!=null&&(n.wifi_signal=t.wifi_signal),n})})},[r]),b=(0,y.useCallback)((e,t)=>{let n=d.current.get(e)||{};if(d.current.set(e,{...n,...t}),document.hidden){v();return}f.current||=window.setTimeout(v,100)},[v]),x=(0,y.useCallback)(e=>{l.current.add(e),u.current&&clearTimeout(u.current),u.current=window.setTimeout(()=>{let e=Array.from(l.current);l.current.clear(),u.current=null;let t=0;e.forEach(e=>{setTimeout(()=>{r.invalidateQueries({queryKey:[e]})},t),t+=500})},3e3)},[r]),S=(0,y.useCallback)(()=>{r.invalidateQueries({queryKey:[`spool-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`slotPresets`]})},[r]),C=(0,y.useCallback)(e=>{switch(e.type){case`printer_status`:e.printer_id!==void 0&&e.data&&b(e.printer_id,e.data);break;case`print_start`:e.printer_id!==void 0&&r.invalidateQueries({queryKey:[`printerStatus`,e.printer_id]});break;case`missing_spool_assignment`:{if(e.printer_id===void 0||!Array.isArray(e.missing_slots))break;let t=e.missing_slots.map(e=>e&&typeof e.slot==`string`?e.slot:`Unknown`).filter(e=>e.length>0);if(t.length===0){o.current.delete(e.printer_id);break}let n=t.join(`|`);if(o.current.get(e.printer_id)===n)break;o.current.set(e.printer_id,n),s(c(`printers.toast.missingSpoolAssignment`,{printer:e.printer_name||`Printer ${e.printer_id}`,slots:t.join(`, `)}),`warning`);break}case`print_complete`:x(`archives`),x(`archiveStats`);break;case`kill_switch_triggered`:s(c(`printers.toast.killSwitchTriggered`,{printer:e.printer_name||`Printer ${e.printer_id??`?`}`,filename:e.filename||c(`common.unknown`)}),`error`);break;case`billing_charge_failed`:s(c(`printers.toast.billingChargeFailed`,{printer:e.printer_name||`Printer ${e.printer_id??`?`}`,filename:e.filename||c(`common.unknown`)}),`error`);break;case`archive_created`:x(`archives`),x(`archiveStats`);break;case`archive_updated`:x(`archives`);break;case`pong`:break;case`plate_not_empty`:window.dispatchEvent(new CustomEvent(`plate-not-empty`,{detail:{printer_id:e.printer_id,printer_name:e.printer_name,message:e.message}}));break;case`inventory_changed`:x(`inventory-spools`),x(`spoolman-inventory-spools`),x(v6[0]);break;case`spool_assignment_changed`:S();break;case`spool_assignment_verified`:{let t=e.printer_name||`Printer`,n=e.slot||`?`;e.verified?e.kprofile_applied===!1?s(c(`printers.toast.assignmentVerifiedNoKprofile`,{slot:n,printer:t}),`warning`):s(c(`printers.toast.assignmentVerified`,{slot:n,printer:t}),`success`):s(c(`printers.toast.assignmentNotConfirmed`,{slot:n,printer:t}),`warning`);break}case`spool_auto_assigned`:x(`inventory-spools`),S();break;case`spool_usage_logged`:x(`inventory-spools`);break;case`unknown_tag`:{let t=e;window.dispatchEvent(new CustomEvent(`unknown-tag`,{detail:{printer_id:t.printer_id,ams_id:t.ams_id,tray_id:t.tray_id,tag_uid:t.tag_uid,tray_uuid:t.tray_uuid,tray_type:t.tray_type,tray_color:t.tray_color,tray_sub_brands:t.tray_sub_brands,tray_count:t.tray_count}}));break}case`spoolbuddy_weight`:window.dispatchEvent(new CustomEvent(`spoolbuddy-weight`,{detail:e}));break;case`spoolbuddy_tag_matched`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-matched`,{detail:e})),x(`inventory-spools`);break;case`spoolbuddy_unknown_tag`:window.dispatchEvent(new CustomEvent(`spoolbuddy-unknown-tag`,{detail:e}));break;case`spoolbuddy_tag_removed`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-removed`,{detail:e}));break;case`spoolbuddy_tag_written`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-written`,{detail:e})),x(`inventory-spools`);break;case`spoolbuddy_tag_write_failed`:window.dispatchEvent(new CustomEvent(`spoolbuddy-tag-write-failed`,{detail:e}));break;case`spoolbuddy_online`:window.dispatchEvent(new CustomEvent(`spoolbuddy-online`,{detail:e})),x(`spoolbuddy-devices`),x(`spoolbuddy-update-check`);break;case`spoolbuddy_offline`:window.dispatchEvent(new CustomEvent(`spoolbuddy-offline`,{detail:e})),x(`spoolbuddy-devices`);break;case`spoolbuddy_update`:x(`spoolbuddy-devices`),x(`spoolbuddy-update-check`);break;case`queue_item_uploading`:case`queue_item_upload_progress`:case`queue_item_acked`:case`queue_item_failed`:window.dispatchEvent(new CustomEvent(`bambuddy:dispatch-toast`,{detail:e}));break;case`pipeline_run_updated`:r.invalidateQueries({queryKey:[`pipeline-runs-all`]}),e.run?.pipeline_id&&r.invalidateQueries({queryKey:[`pipeline-runs`,e.run.pipeline_id]});break}},[r,x,S,b,s,c]);return(0,y.useEffect)(()=>{h.current=C},[C]),(0,y.useEffect)(()=>(n.current=!1,_(),()=>{n.current=!0,t.current&&clearTimeout(t.current),u.current&&clearTimeout(u.current),f.current&&clearTimeout(f.current),e.current&&e.current.close()}),[_]),{isConnected:i,sendMessage:(0,y.useCallback)(t=>{e.current?.readyState===WebSocket.OPEN&&e.current.send(JSON.stringify(t))},[])}}var C0e=`#00ae42`,w0e=e=>e!=null&&e>0?e:1/0;function T0e(e){let t=null;for(let n of e){if(!n||n.state!==`RUNNING`||n.progress==null)continue;if(t===null){t=n;continue}let e=w0e(n.remaining_time),r=w0e(t.remaining_time);(e(t.progress??0))&&(t=n)}return t}function E0e(e){let t=document.createElement(`canvas`);t.width=32,t.height=32;let n=t.getContext(`2d`);if(!n)return null;let r=getComputedStyle(document.documentElement).getPropertyValue(`--accent`).trim()||C0e,i=Math.max(0,Math.min(100,e))/100,a=-Math.PI/2;return n.lineWidth=4,n.beginPath(),n.arc(16,16,13,0,Math.PI*2),n.strokeStyle=`rgba(128,128,128,0.3)`,n.stroke(),n.beginPath(),n.arc(16,16,13,a,a+i*Math.PI*2),n.strokeStyle=r,n.lineCap=`round`,n.stroke(),t.toDataURL(`image/png`)}function B9(e,t){document.querySelectorAll(`link[rel~="icon"]`).forEach(n=>{if(e)t.has(n)||t.set(n,n.href),n.href=e;else{let e=t.get(n);e!==void 0&&(n.href=e)}}),e||t.clear()}function D0e(){let{progressInTitle:e,resolvedMode:t,darkAccent:n,lightAccent:r}=Id(),i=t===`dark`?n:r,{data:a}=K({queryKey:[`printers`],queryFn:Z.getPrinters,enabled:e}),o=Co({queries:(e?a??[]:[]).map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id)}))}),s=(0,y.useRef)(new Map),c=(0,y.useRef)(document.title),l=(0,y.useRef)(!1),u=e?T0e(o.map(e=>e.data)):null,d=u&&u.progress!=null?Math.round(u.progress):null;(0,y.useEffect)(()=>{e&&d!=null?(document.title=`${d}% · ${c.current}`,B9(E0e(d),s.current),l.current=!0):l.current&&=(document.title=c.current,B9(null,s.current),!1)},[e,d,i]),(0,y.useEffect)(()=>{let e=s.current,t=l,n=c.current;return()=>{t.current&&(document.title=n,B9(null,e))}},[])}function O0e({children:e}){let{authEnabled:t,user:n,loading:r}=Nd(),{data:i}=K({queryKey:[`color-catalog-map`],queryFn:async()=>{let e=await Z.getColorNameMap();return{colors:e.colors,byMaterial:e.by_material??{}}},staleTime:1/0,gcTime:1/0,retry:2,enabled:!r&&(!t||n!==null)});return(0,y.useEffect)(()=>{i&&vf(i.colors,i.byMaterial)},[i]),(0,G.jsx)(G.Fragment,{children:e})}function k0e({selectedPrinterId:e,onPrinterChange:t,deviceOnline:n}){let{t:r}=U(),[i,a]=(0,y.useState)(new Date),{data:o=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),s=Co({queries:o.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4}))}),c=(0,y.useMemo)(()=>o.filter((e,t)=>s[t]?.data?.connected),[o,s]);(0,y.useEffect)(()=>{let n=c.some(t=>t.id===e);(!e||!n)&&c.length>0&&t(c[0].id)},[c,e,t]);let{data:l}=K({queryKey:[`settings`],queryFn:Z.getSettings});return(0,y.useEffect)(()=>{let e=setInterval(()=>a(new Date),1e3);return()=>clearInterval(e)},[]),(0,G.jsxs)(`div`,{className:`h-12 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary flex items-center px-3 gap-4 shrink-0`,children:[(0,G.jsx)(`div`,{className:`flex items-center shrink-0`,children:(0,G.jsx)(`img`,{src:`/img/spoolbuddy_logo_dark_small.png`,alt:`SpoolBuddy`,width:113,height:28,className:`h-7 w-auto`})}),(0,G.jsx)(`div`,{className:`flex-1 flex justify-center`,children:(0,G.jsx)(`select`,{value:e??``,onChange:e=>t(Number(e.target.value)),className:`bg-bambu-dark text-white text-base px-4 py-2 rounded border border-bambu-dark-tertiary focus:outline-none focus:border-bambu-green min-w-[180px]`,children:c.length===0?(0,G.jsx)(`option`,{value:``,children:r(`spoolbuddy.status.noPrinters`,`No printers online`)}):c.map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.name},e.id))})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[(0,G.jsx)(`div`,{className:`flex items-center`,title:n?r(`spoolbuddy.status.backend`,`Backend`):r(`spoolbuddy.status.offline`,`Offline`),children:n?(0,G.jsx)(`div`,{className:`flex items-end gap-0.5 h-4`,children:[1,2,3,4].map(e=>(0,G.jsx)(`div`,{className:`w-1 rounded-sm ${e<=4?`bg-white`:`bg-bambu-dark-tertiary`}`,style:{height:`${e*4}px`}},e))}):(0,G.jsx)(Zu,{className:`w-5 h-5 text-red-400`})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full ${n?`bg-bambu-green shadow-[0_0_6px_rgba(34,197,94,0.5)]`:`bg-bambu-gray`}`}),(0,G.jsx)(`span`,{className:`text-sm text-white/50`,children:n?r(`spoolbuddy.status.backend`,`Backend`):r(`spoolbuddy.status.offline`,`Offline`)})]}),(0,G.jsx)(`span`,{className:`text-white/50 text-base font-mono min-w-[50px] text-right`,children:sp(i,l?.time_format||`system`)})]})]})}var A0e=[{to:`/spoolbuddy`,labelKey:`spoolbuddy.nav.dashboard`,fallback:`Dashboard`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6`})})},{to:`/spoolbuddy/ams`,labelKey:`spoolbuddy.nav.ams`,fallback:`AMS`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10`})})},{to:`/spoolbuddy/write-tag`,labelKey:`spoolbuddy.nav.writeTag`,fallback:`Write`,icon:(0,G.jsxs)(`svg`,{className:`w-6 h-6`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z`})]})},{to:`/spoolbuddy/inventory`,labelKey:`spoolbuddy.nav.inventory`,fallback:`Inventory`,icon:(0,G.jsx)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4`})})},{to:`/spoolbuddy/settings`,labelKey:`spoolbuddy.nav.settings`,fallback:`Settings`,icon:(0,G.jsxs)(`svg`,{className:`w-6 h-6`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M15 12a3 3 0 11-6 0 3 3 0 016 0z`})]})}];function j0e(){let{t:e}=U();return(0,G.jsx)(`nav`,{className:`h-14 bg-bambu-dark-secondary border-t border-bambu-dark-tertiary flex items-stretch shrink-0`,children:A0e.map(t=>(0,G.jsxs)(ji,{to:t.to,end:t.to===`/spoolbuddy`,className:({isActive:e})=>`flex-1 flex flex-col items-center justify-center gap-1 transition-colors ${e?`text-bambu-green bg-bambu-dark`:`text-white/50 hover:text-white/70 hover:bg-bambu-dark-tertiary`}`,children:[t.icon,(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:e(t.labelKey,t.fallback)})]},t.to))})}function M0e({alert:e}){let{t}=U(),n=e?e.type===`error`?`bg-red-500`:e.type===`warning`?`bg-amber-500`:`bg-bambu-green`:`bg-bambu-green`;return(0,G.jsxs)(`div`,{className:`h-9 bg-bambu-dark-secondary border-t-2 ${e?e.type===`error`?`border-red-500`:e.type===`warning`?`border-amber-500`:`border-bambu-dark-tertiary`:`border-bambu-dark-tertiary`} flex items-center px-3 gap-3 shrink-0`,children:[(0,G.jsx)(`div`,{className:`w-3.5 h-3.5 rounded-full ${n}`}),(0,G.jsx)(`div`,{className:`flex-1 text-sm text-white/50 truncate`,children:e?(0,G.jsx)(`span`,{children:e.message}):(0,G.jsx)(`span`,{className:`text-bambu-green`,children:t(`spoolbuddy.status.systemReady`,`System Ready`)})})]})}function N0e({isOpen:e,onClose:t,deviceId:n,deviceOnline:r}){let{t:i}=U(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(new Map),{data:d=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters(),enabled:e}),{data:f=[]}=K({queryKey:[`smart-plugs`],queryFn:()=>Z.getSmartPlugs(),enabled:e}),p=d.map(e=>{let t=f.find(t=>t.printer_id===e.id&&t.plug_type!==`mqtt`&&t.enabled);if(!t)return null;let n=l.get(t.id);return{plug:t,printer:e,status:n?{state:n.state,reachable:!0,device_name:null,energy:null}:null,loading:n?.loading??!1}}).filter(Boolean);(0,y.useEffect)(()=>{!e||f.length===0||f.filter(e=>e.printer_id!==null&&e.plug_type!==`mqtt`&&e.enabled).forEach(async e=>{try{let t=await Z.getSmartPlugStatus(e.id);u(n=>{let r=new Map(n);return r.set(e.id,{loading:!1,state:t.state}),r})}catch{u(t=>{let n=new Map(t);return n.set(e.id,{loading:!1,state:null}),n})}})},[e,f]),(0,y.useEffect)(()=>{e||(o(null),c(!1))},[e]);let m=(0,y.useCallback)(async e=>{u(t=>{let n=new Map(t),r=n.get(e.id);return n.set(e.id,{loading:!0,state:r?.state??null}),n});try{await Z.controlSmartPlug(e.id,`toggle`);let t=await Z.getSmartPlugStatus(e.id);u(n=>{let r=new Map(n);return r.set(e.id,{loading:!1,state:t.state}),r})}catch{u(t=>{let n=new Map(t),r=n.get(e.id);return n.set(e.id,{loading:!1,state:r?.state??null}),n})}},[]),h=(0,y.useCallback)(async e=>{if(n){c(!0);try{await Od.systemCommand(n,e),setTimeout(()=>t(),500)}catch{c(!1)}}},[n,t]),g=(0,y.useCallback)(()=>{a&&(a.type===`system`?h(a.command):m(a.plug),o(null))},[a,h,m]);if(!e)return null;let _=e=>e===`ON`||e===`on`;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-40 bg-black/50`,onPointerDown:t}),(0,G.jsxs)(`div`,{className:`fixed top-0 left-0 right-0 z-50 bg-bambu-dark-secondary border-b border-bambu-dark-tertiary rounded-b-2xl shadow-2xl animate-slide-down`,children:[(0,G.jsx)(`div`,{className:`flex justify-center pt-2 pb-1`,children:(0,G.jsx)(`div`,{className:`w-10 h-1 rounded-full bg-zinc-600`})}),(0,G.jsxs)(`div`,{className:`px-4 pb-4 max-h-[80vh] overflow-y-auto`,children:[p.length>0&&(0,G.jsxs)(`div`,{className:`mb-4`,children:[(0,G.jsx)(`h3`,{className:`text-xs font-semibold text-zinc-500 uppercase tracking-wide mb-2`,children:i(`spoolbuddy.quickMenu.printerPower`,`Printer Power`)}),(0,G.jsx)(`div`,{className:`space-y-1`,children:p.map(({plug:e,printer:t,loading:n})=>{let r=l.get(e.id),i=_(r?.state??null);return(0,G.jsxs)(`button`,{onClick:()=>o({type:`plug`,plug:e,printer:t,currentState:r?.state??null}),disabled:n,className:`w-full flex items-center gap-2 px-3 py-1.5 rounded-lg bg-zinc-800/60 hover:bg-zinc-700/60 transition-colors min-h-[36px]`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${i?`bg-green-500`:`bg-zinc-600`}`}),n&&(0,G.jsx)(Y,{className:`w-3 h-3 animate-spin text-zinc-400 shrink-0`}),(0,G.jsx)(`span`,{className:`flex-1 text-sm text-zinc-200 text-left truncate`,children:t.name}),(0,G.jsx)(`span`,{className:`text-xs font-medium ${i?`text-green-400`:`text-zinc-500`}`,children:r?.state??`—`})]},e.id)})})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-xs font-semibold text-zinc-500 uppercase tracking-wide mb-2`,children:i(`spoolbuddy.quickMenu.systemControls`,`System`)}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsx)(V9,{icon:(0,G.jsx)(Gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.restartDaemon`,`Restart Daemon`),onClick:()=>o({type:`system`,command:`restart_daemon`}),disabled:!n||!r||s}),(0,G.jsx)(V9,{icon:(0,G.jsx)(gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.restartBrowser`,`Restart Browser`),onClick:()=>o({type:`system`,command:`restart_browser`}),disabled:!n||!r||s}),(0,G.jsx)(V9,{icon:(0,G.jsx)(Gl,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.reboot`,`Reboot`),onClick:()=>o({type:`system`,command:`reboot`}),disabled:!n||!r||s,variant:`warning`}),(0,G.jsx)(V9,{icon:(0,G.jsx)(Il,{className:`w-4 h-4`}),label:i(`spoolbuddy.quickMenu.shutdown`,`Shutdown`),onClick:()=>o({type:`system`,command:`shutdown`}),disabled:!n||!r||s,variant:`danger`})]})]}),(0,G.jsx)(`div`,{className:`flex justify-center mt-3`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-zinc-600`,children:[(0,G.jsx)(ps,{className:`w-3 h-3`}),(0,G.jsx)(`span`,{children:i(`spoolbuddy.quickMenu.swipeToClose`,`Swipe down to close`)})]})})]})]}),a&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center bg-black/60`,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-2xl p-5 mx-4 max-w-sm w-full border border-zinc-700`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100 mb-2`,children:i(`spoolbuddy.quickMenu.confirmTitle`,`Confirm`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-400 mb-5`,children:a.type===`plug`?_(a.currentState)?i(`spoolbuddy.quickMenu.confirmPlugOff`,`Turn off {{name}}?`,{name:a.printer.name}):i(`spoolbuddy.quickMenu.confirmPlugOn`,`Turn on {{name}}?`,{name:a.printer.name}):a.command===`shutdown`?i(`spoolbuddy.quickMenu.confirmShutdown`,`Are you sure you want to shut down the SpoolBuddy? You will need physical access to turn it back on.`):a.command===`reboot`?i(`spoolbuddy.quickMenu.confirmReboot`,`Are you sure you want to reboot the SpoolBuddy?`):a.command===`restart_daemon`?i(`spoolbuddy.quickMenu.confirmRestartDaemon`,`Restart the SpoolBuddy daemon? NFC and scale will be temporarily unavailable.`):i(`spoolbuddy.quickMenu.confirmRestartBrowser`,`Restart the kiosk browser? The display will briefly go blank.`)}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>o(null),className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:g,disabled:s,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-white transition-colors min-h-[44px] ${a.type===`plug`?_(a.currentState)?`bg-red-600 hover:bg-red-700`:`bg-green-600 hover:bg-green-700`:a.command===`shutdown`?`bg-red-600 hover:bg-red-700`:a.command===`reboot`?`bg-amber-600 hover:bg-amber-700`:`bg-blue-600 hover:bg-blue-700`} disabled:opacity-50`,children:s?(0,G.jsx)(Y,{className:`w-4 h-4 animate-spin mx-auto`}):a.type===`plug`?_(a.currentState)?i(`spoolbuddy.quickMenu.turnOff`,`Turn Off`):i(`spoolbuddy.quickMenu.turnOn`,`Turn On`):i(`spoolbuddy.quickMenu.confirm`,`Confirm`)})]})]})})]})}function V9({icon:e,label:t,onClick:n,disabled:r,variant:i=`default`}){return(0,G.jsxs)(`button`,{onClick:n,disabled:r,className:`flex items-center gap-2.5 p-3 rounded-xl transition-colors min-h-[48px] disabled:opacity-40 ${{default:`bg-zinc-800/60 hover:bg-zinc-700/60 text-zinc-300`,warning:`bg-amber-900/30 hover:bg-amber-900/50 text-amber-400`,danger:`bg-red-900/30 hover:bg-red-900/50 text-red-400`}[i]}`,children:[e,(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:t})]})}var P0e={weight:null,weightStable:!1,rawAdc:null,matchedSpool:null,unknownTagUid:null,unknownTrayUuid:null,deviceOnline:!1,deviceId:null};function F0e(e,t){switch(t.type){case`WEIGHT_UPDATE`:return{...e,weight:t.weight,weightStable:t.stable,rawAdc:t.rawAdc,deviceId:t.deviceId,deviceOnline:!0};case`TAG_MATCHED`:return{...e,matchedSpool:t.spool,unknownTagUid:null,unknownTrayUuid:null,deviceId:t.deviceId};case`UNKNOWN_TAG`:return{...e,matchedSpool:null,unknownTagUid:t.tagUid,unknownTrayUuid:t.trayUuid??null,deviceId:t.deviceId};case`TAG_REMOVED`:return{...e,matchedSpool:null,unknownTagUid:null,unknownTrayUuid:null};case`DEVICE_ONLINE`:return{...e,deviceOnline:!0,deviceId:t.deviceId};case`DEVICE_OFFLINE`:return{...e,deviceOnline:!1,weight:null,weightStable:!1,rawAdc:null};default:return e}}function I0e(){let[e,t]=(0,y.useReducer)(F0e,P0e),n=(0,y.useCallback)(e=>{let n=e.detail;t({type:`WEIGHT_UPDATE`,weight:n.weight_grams??n.data?.weight_grams,stable:n.stable??n.data?.stable??!1,rawAdc:n.raw_adc??n.data?.raw_adc??null,deviceId:n.device_id??n.data?.device_id??``})},[]),r=(0,y.useCallback)(e=>{let n=e.detail,r=n.spool??n.data?.spool;r&&t({type:`TAG_MATCHED`,spool:{id:r.id,tag_uid:n.tag_uid??n.data?.tag_uid??``,material:r.material??``,subtype:r.subtype??null,color_name:r.color_name??null,rgba:r.rgba??null,brand:r.brand??null,label_weight:r.label_weight??0,core_weight:r.core_weight??0,weight_used:r.weight_used??0},deviceId:n.device_id??n.data?.device_id??``})},[]),i=(0,y.useCallback)(e=>{let n=e.detail;t({type:`UNKNOWN_TAG`,tagUid:n.tag_uid??n.data?.tag_uid??``,trayUuid:n.tray_uuid??n.data?.tray_uuid??null,deviceId:n.device_id??n.data?.device_id??``})},[]),a=(0,y.useCallback)(e=>{let n=e.detail;t({type:`TAG_REMOVED`,deviceId:n.device_id??n.data?.device_id??``})},[]),o=(0,y.useCallback)(e=>{let n=e.detail;t({type:`DEVICE_ONLINE`,deviceId:n.device_id??n.data?.device_id??``})},[]),s=(0,y.useCallback)(e=>{let n=e.detail;t({type:`DEVICE_OFFLINE`,deviceId:n.device_id??n.data?.device_id??``})},[]);(0,y.useEffect)(()=>(window.addEventListener(`spoolbuddy-weight`,n),window.addEventListener(`spoolbuddy-tag-matched`,r),window.addEventListener(`spoolbuddy-unknown-tag`,i),window.addEventListener(`spoolbuddy-tag-removed`,a),window.addEventListener(`spoolbuddy-online`,o),window.addEventListener(`spoolbuddy-offline`,s),()=>{window.removeEventListener(`spoolbuddy-weight`,n),window.removeEventListener(`spoolbuddy-tag-matched`,r),window.removeEventListener(`spoolbuddy-unknown-tag`,i),window.removeEventListener(`spoolbuddy-tag-removed`,a),window.removeEventListener(`spoolbuddy-online`,o),window.removeEventListener(`spoolbuddy-offline`,s)}),[n,r,i,a,o,s]);let c=e.matchedSpool?Math.max(0,e.matchedSpool.label_weight-e.matchedSpool.weight_used):null,l=e.weight!==null&&e.matchedSpool?Math.max(0,e.weight-e.matchedSpool.core_weight):null;return{...e,remainingWeight:c,netWeight:l}}var L0e=l(o(((e,t)=>{(function(n,r){typeof e==`object`&&typeof t==`object`?t.exports=r(f()):typeof define==`function`&&define.amd?define([`react`],r):typeof e==`object`?e.ReactSimpleKeyboard=r(f()):n.ReactSimpleKeyboard=r(n.React)})(e,(function(e){return function(){var t={981:function(){typeof Element>`u`||`remove`in Element.prototype||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)}),typeof self<`u`&&`document`in self&&((!(`classList`in document.createElement(`_`))||document.createElementNS&&!(`classList`in document.createElementNS(`http://www.w3.org/2000/svg`,`g`)))&&function(e){if(`Element`in e){var t=`classList`,n=`prototype`,r=e.Element[n],i=Object,a=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,``)},o=Array[n].indexOf||function(e){for(var t=0,n=this.length;t1?arguments[1]:void 0)}},7916:function(e,t,n){var r=n(6080),i=n(9565),a=n(8981),o=n(6319),s=n(4209),c=n(3517),l=n(6198),u=n(4659),d=n(4527),f=n(81),p=n(851),m=Array;e.exports=function(e){var t=a(e),n=c(this),h=arguments.length,g=h>1?arguments[1]:void 0,_=g!==void 0;_&&(g=r(g,h>2?arguments[2]:void 0));var v,y,b,x,S,C,w=p(t),T=0;if(!w||this===m&&s(w))for(v=l(t),y=n?new this(v):m(v);v>T;T++)C=_?g(t[T],T):t[T],u(y,T,C);else for(y=n?new this:[],S=(x=f(t,w)).next;!(b=i(S,x)).done;T++)C=_?o(x,g,[b.value,T],!0):b.value,u(y,T,C);return d(y,T),y}},9617:function(e,t,n){var r=n(5397),i=n(5610),a=n(6198),o=function(e){return function(t,n,o){var s=r(t),c=a(s);if(c===0)return!e&&-1;var l,u=i(o,c);if(e&&n!=n){for(;c>u;)if((l=s[u++])!=l)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:o(!0),indexOf:o(!1)}},9213:function(e,t,n){var r=n(6080),i=n(7055),a=n(8981),o=n(6198),s=n(1469),c=n(4659),l=function(e){var t=e===1,n=e===2,l=e===3,u=e===4,d=e===6,f=e===7,p=e===5||d;return function(m,h,g){for(var _,v,y=a(m),b=i(y),x=o(b),S=r(h,g),C=0,w=0,T=t?s(m,x):n||f?s(m,0):void 0;x>C;C++)if((p||C in b)&&(v=S(_=b[C],C,y),e))if(t)c(T,C,v);else if(v)switch(e){case 3:return!0;case 5:return _;case 6:return C;case 2:c(T,w++,_)}else switch(e){case 4:return!1;case 7:c(T,w++,_)}return d?-1:l||u?u:T}};e.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},597:function(e,t,n){var r=n(9039),i=n(8227),a=n(9519),o=i(`species`);e.exports=function(e){return a>=51||!r((function(){var t=[];return(t.constructor={})[o]=function(){return{foo:1}},t[e](Boolean).foo!==1}))}},4598:function(e,t,n){var r=n(9039);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},926:function(e,t,n){var r=n(9306),i=n(8981),a=n(7055),o=n(6198),s=TypeError,c=`Reduce of empty array with no initial value`,l=function(e){return function(t,n,l,u){var d=i(t),f=a(d),p=o(d);if(r(n),p===0&&l<2)throw new s(c);var m=e?p-1:0,h=e?-1:1;if(l<2)for(;;){if(m in f){u=f[m],m+=h;break}if(m+=h,e?m<0:p<=m)throw new s(c)}for(;e?m>=0:p>m;m+=h)m in f&&(u=n(u,f[m],m,d));return u}};e.exports={left:l(!1),right:l(!0)}},4527:function(e,t,n){var r=n(3724),i=n(4376),a=TypeError,o=Object.getOwnPropertyDescriptor;e.exports=r&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}()?function(e,t){if(i(e)&&!o(e,`length`).writable)throw new a(`Cannot set read only .length`);return e.length=t}:function(e,t){return e.length=t}},7680:function(e,t,n){e.exports=n(9504)([].slice)},4488:function(e,t,n){var r=n(7680),i=Math.floor,a=function(e,t){var n=e.length;if(n<8)for(var o,s,c=1;c0;)e[s]=e[--s];s!==c++&&(e[s]=o)}else for(var l=i(n/2),u=a(r(e,0,l),t),d=a(r(e,l),t),f=u.length,p=d.length,m=0,h=0;m9007199254740991)throw t(`Maximum allowed index exceeded`);return e}},7400:function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},9296:function(e,t,n){var r=n(4055)(`span`).classList,i=r&&r.constructor&&r.constructor.prototype;e.exports=i===Object.prototype?void 0:i},8727:function(e){e.exports=[`constructor`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`]},3709:function(e,t,n){var r=n(2839).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},3763:function(e,t,n){var r=n(2839);e.exports=/MSIE|Trident/.test(r)},6193:function(e,t,n){e.exports=n(4215)===`NODE`},2839:function(e,t,n){var r=n(4576).navigator,i=r&&r.userAgent;e.exports=i?String(i):``},9519:function(e,t,n){var r,i,a=n(4576),o=n(2839),s=a.process,c=a.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(i=(r=u.split(`.`))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&o&&(!(r=o.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=o.match(/Chrome\/(\d+)/))&&(i=+r[1]),e.exports=i},3607:function(e,t,n){var r=n(2839).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},4215:function(e,t,n){var r=n(4576),i=n(2839),a=n(2195),o=function(e){return i.slice(0,e.length)===e};e.exports=o(`Bun/`)?`BUN`:o(`Cloudflare-Workers`)?`CLOUDFLARE`:o(`Deno/`)?`DENO`:o(`Node.js/`)?`NODE`:r.Bun&&typeof Bun.version==`string`?`BUN`:r.Deno&&typeof Deno.version==`object`?`DENO`:a(r.process)===`process`?`NODE`:r.window&&r.document?`BROWSER`:`REST`},6518:function(e,t,n){var r=n(4576),i=n(7347).f,a=n(6699),o=n(6840),s=n(9433),c=n(7740),l=n(2796);e.exports=function(e,t){var n,u,d,f,p,m=e.target,h=e.global,g=e.stat;if(n=h?r:g?r[m]||s(m,{}):r[m]&&r[m].prototype)for(u in t){if(f=t[u],d=e.dontCallGetSet?(p=i(n,u))&&p.value:n[u],!l(h?u:m+(g?`.`:`#`)+u,e.forced)&&d!==void 0){if(typeof f==typeof d)continue;c(f,d)}(e.sham||d&&d.sham)&&a(f,`sham`,!0),o(n,u,f,e)}}},9039:function(e){e.exports=function(e){try{return!!e()}catch{return!0}}},9228:function(e,t,n){n(7495);var r=n(9565),i=n(6840),a=n(7323),o=n(9039),s=n(8227),c=n(6699),l=s(`species`),u=RegExp.prototype;e.exports=function(e,t,n,d){var f=s(e),p=!o((function(){var t={};return t[f]=function(){return 7},``[e](t)!==7})),m=p&&!o((function(){var t=!1,n=/a/;if(e===`split`){var r={};r[l]=function(){return n},(n={constructor:r,flags:``})[f]=/./[f]}return n.exec=function(){return t=!0,null},n[f](``),!t}));if(!p||!m||n){var h=/./[f],g=t(f,``[e],(function(e,t,n,i,o){var s=t.exec;return s===a||s===u.exec?p&&!o?{done:!0,value:r(h,t,n,i)}:{done:!0,value:r(e,n,t,i)}:{done:!1}}));i(String.prototype,e,g[0]),i(u,f,g[1])}d&&c(u[f],`sham`,!0)}},8745:function(e,t,n){var r=n(616),i=Function.prototype,a=i.apply,o=i.call;e.exports=typeof Reflect==`object`&&Reflect.apply||(r?o.bind(a):function(){return o.apply(a,arguments)})},6080:function(e,t,n){var r=n(7476),i=n(9306),a=n(616),o=r(r.bind);e.exports=function(e,t){return i(e),t===void 0?e:a?o(e,t):function(){return e.apply(t,arguments)}}},616:function(e,t,n){e.exports=!n(9039)((function(){var e=function(){}.bind();return typeof e!=`function`||e.hasOwnProperty(`prototype`)}))},566:function(e,t,n){var r=n(9504),i=n(9306),a=n(34),o=n(9297),s=n(7680),c=n(616),l=Function,u=r([].concat),d=r([].join),f={};e.exports=c?l.bind:function(e){var t=i(this),n=t.prototype,r=s(arguments,1),c=function(){var n=u(r,s(arguments));return this instanceof c?function(e,t,n){if(!o(f,t)){for(var r=[],i=0;i]*>)/g,u=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,d,f){var p=n+e.length,m=r.length,h=u;return d!==void 0&&(d=i(d),h=l),s(f,h,(function(i,s){var l;switch(o(s,0)){case`$`:return`$`;case`&`:return e;case"`":return c(t,0,n);case`'`:return c(t,p);case`<`:l=d[c(s,1,-1)];break;default:var u=+s;if(u===0)return i;if(u>m){var f=a(u/10);return f===0?i:f<=m?r[f-1]===void 0?o(s,1):r[f-1]+o(s,1):i}l=r[u-1]}return l===void 0?``:l}))}},4576:function(e,t,n){var r=function(e){return e&&e.Math===Math&&e};e.exports=r(typeof globalThis==`object`&&globalThis)||r(typeof window==`object`&&window)||r(typeof self==`object`&&self)||r(typeof n.g==`object`&&n.g)||r(typeof this==`object`&&this)||function(){return this}()||Function(`return this`)()},9297:function(e,t,n){var r=n(9504),i=n(8981),a=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return a(i(e),t)}},421:function(e){e.exports={}},397:function(e,t,n){e.exports=n(7751)(`document`,`documentElement`)},5917:function(e,t,n){var r=n(3724),i=n(9039),a=n(4055);e.exports=!r&&!i((function(){return Object.defineProperty(a(`div`),"a",{get:function(){return 7}}).a!==7}))},7055:function(e,t,n){var r=n(9504),i=n(9039),a=n(2195),o=Object,s=r(``.split);e.exports=i((function(){return!o(`z`).propertyIsEnumerable(0)}))?function(e){return a(e)===`String`?s(e,``):o(e)}:o},3167:function(e,t,n){var r=n(4901),i=n(34),a=n(2967);e.exports=function(e,t,n){var o,s;return a&&r(o=t.constructor)&&o!==n&&i(s=o.prototype)&&s!==n.prototype&&a(e,s),e}},3706:function(e,t,n){var r=n(9504),i=n(4901),a=n(7629),o=r(Function.toString);i(a.inspectSource)||(a.inspectSource=function(e){return o(e)}),e.exports=a.inspectSource},1181:function(e,t,n){var r,i,a,o=n(8622),s=n(4576),c=n(34),l=n(6699),u=n(9297),d=n(7629),f=n(6119),p=n(421),m=`Object already initialized`,h=s.TypeError,g=s.WeakMap;if(o||d.state){var _=d.state||=new g;_.get=_.get,_.has=_.has,_.set=_.set,r=function(e,t){if(_.has(e))throw new h(m);return t.facade=e,_.set(e,t),t},i=function(e){return _.get(e)||{}},a=function(e){return _.has(e)}}else{var v=f(`state`);p[v]=!0,r=function(e,t){if(u(e,v))throw new h(m);return t.facade=e,l(e,v,t),t},i=function(e){return u(e,v)?e[v]:{}},a=function(e){return u(e,v)}}e.exports={set:r,get:i,has:a,enforce:function(e){return a(e)?i(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!c(t)||(n=i(t)).type!==e)throw new h(`Incompatible receiver, `+e+` required`);return n}}}},4209:function(e,t,n){var r=n(8227),i=n(6269),a=r(`iterator`),o=Array.prototype;e.exports=function(e){return e!==void 0&&(i.Array===e||o[a]===e)}},4376:function(e,t,n){var r=n(2195);e.exports=Array.isArray||function(e){return r(e)===`Array`}},4901:function(e){var t=typeof document==`object`&&document.all;e.exports=t===void 0&&t!==void 0?function(e){return typeof e==`function`||e===t}:function(e){return typeof e==`function`}},3517:function(e,t,n){var r=n(9504),i=n(9039),a=n(4901),o=n(6955),s=n(7751),c=n(3706),l=function(){},u=s(`Reflect`,`construct`),d=/^\s*(?:class|function)\b/,f=r(d.exec),p=!d.test(l),m=function(e){if(!a(e))return!1;try{return u(l,[],e),!0}catch{return!1}},h=function(e){if(!a(e))return!1;switch(o(e)){case`AsyncFunction`:case`GeneratorFunction`:case`AsyncGeneratorFunction`:return!1}try{return p||!!f(d,c(e))}catch{return!0}};h.sham=!0,e.exports=!u||i((function(){var e;return m(m.call)||!m(Object)||!m((function(){e=!0}))||e}))?h:m},2796:function(e,t,n){var r=n(9039),i=n(4901),a=/#|\.prototype\./,o=function(e,t){var n=c[s(e)];return n===u||n!==l&&(i(t)?r(t):!!t)},s=o.normalize=function(e){return String(e).replace(a,`.`).toLowerCase()},c=o.data={},l=o.NATIVE=`N`,u=o.POLYFILL=`P`;e.exports=o},2087:function(e,t,n){var r=n(34),i=Math.floor;e.exports=Number.isInteger||function(e){return!r(e)&&isFinite(e)&&i(e)===e}},4117:function(e){e.exports=function(e){return e==null}},34:function(e,t,n){var r=n(4901);e.exports=function(e){return typeof e==`object`?e!==null:r(e)}},3925:function(e,t,n){var r=n(34);e.exports=function(e){return r(e)||e===null}},6395:function(e){e.exports=!1},5810:function(e,t,n){var r=n(34),i=n(1181).get;e.exports=function(e){if(!r(e))return!1;var t=i(e);return!!t&&t.type===`RawJSON`}},788:function(e,t,n){var r=n(34),i=n(2195),a=n(8227)(`match`);e.exports=function(e){var t;return r(e)&&((t=e[a])===void 0?i(e)===`RegExp`:!!t)}},757:function(e,t,n){var r=n(7751),i=n(4901),a=n(1625),o=n(7040),s=Object;e.exports=o?function(e){return typeof e==`symbol`}:function(e){var t=r(`Symbol`);return i(t)&&a(t.prototype,s(e))}},9539:function(e,t,n){var r=n(9565),i=n(8551),a=n(5966);e.exports=function(e,t,n){var o,s;i(e);try{if(!(o=a(e,`return`))){if(t===`throw`)throw n;return n}o=r(o,e)}catch(e){s=!0,o=e}if(t===`throw`)throw n;if(s)throw o;return i(o),n}},3994:function(e,t,n){var r=n(7657).IteratorPrototype,i=n(2360),a=n(6980),o=n(687),s=n(6269),c=function(){return this};e.exports=function(e,t,n,l){var u=t+` Iterator`;return e.prototype=i(r,{next:a(+!l,n)}),o(e,u,!1,!0),s[u]=c,e}},1088:function(e,t,n){var r=n(6518),i=n(9565),a=n(6395),o=n(350),s=n(4901),c=n(3994),l=n(2787),u=n(2967),d=n(687),f=n(6699),p=n(6840),m=n(8227),h=n(6269),g=n(7657),_=o.PROPER,v=o.CONFIGURABLE,y=g.IteratorPrototype,b=g.BUGGY_SAFARI_ITERATORS,x=m(`iterator`),S=`keys`,C=`values`,w=`entries`,T=function(){return this};e.exports=function(e,t,n,o,m,g,E){c(n,t,o);var D,O,k,A=function(e){if(e===m&&F)return F;if(!b&&e&&e in N)return N[e];switch(e){case S:case C:case w:return function(){return new n(this,e)}}return function(){return new n(this)}},j=t+` Iterator`,M=!1,N=e.prototype,P=N[x]||N[`@@iterator`]||m&&N[m],F=!b&&P||A(m),I=t===`Array`&&N.entries||P;if(I&&(D=l(I.call(new e)))!==Object.prototype&&D.next&&(a||l(D)===y||(u?u(D,y):s(D[x])||p(D,x,T)),d(D,j,!0,!0),a&&(h[j]=T)),_&&m===C&&P&&P.name!==C&&(!a&&v?f(N,`name`,C):(M=!0,F=function(){return i(P,this)})),m)if(O={values:A(C),keys:g?F:A(S),entries:A(w)},E)for(k in O)(b||M||!(k in N))&&p(N,k,O[k]);else r({target:t,proto:!0,forced:b||M},O);return a&&!E||N[x]===F||p(N,x,F,{name:m}),h[t]=F,O}},7657:function(e,t,n){var r,i,a,o=n(9039),s=n(4901),c=n(34),l=n(2360),u=n(2787),d=n(6840),f=n(8227),p=n(6395),m=f(`iterator`),h=!1;[].keys&&(`next`in(a=[].keys())?(i=u(u(a)))!==Object.prototype&&(r=i):h=!0),!c(r)||o((function(){var e={};return r[m].call(e)!==e}))?r={}:p&&(r=l(r)),s(r[m])||d(r,m,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},6269:function(e){e.exports={}},6198:function(e,t,n){var r=n(8014);e.exports=function(e){return r(e.length)}},283:function(e,t,n){var r=n(9504),i=n(9039),a=n(4901),o=n(9297),s=n(3724),c=n(350).CONFIGURABLE,l=n(3706),u=n(1181),d=u.enforce,f=u.get,p=String,m=Object.defineProperty,h=r(``.slice),g=r(``.replace),_=r([].join),v=s&&!i((function(){return m((function(){}),`length`,{value:8}).length!==8})),y=String(String).split(`String`),b=e.exports=function(e,t,n){h(p(t),0,7)===`Symbol(`&&(t=`[`+g(p(t),/^Symbol\(([^)]*)\).*$/,`$1`)+`]`),n&&n.getter&&(t=`get `+t),n&&n.setter&&(t=`set `+t),(!o(e,`name`)||c&&e.name!==t)&&(s?m(e,`name`,{value:t,configurable:!0}):e.name=t),v&&n&&o(n,`arity`)&&e.length!==n.arity&&m(e,`length`,{value:n.arity});try{n&&o(n,`constructor`)&&n.constructor?s&&m(e,`prototype`,{writable:!1}):e.prototype&&=void 0}catch{}var r=d(e);return o(r,`source`)||(r.source=_(y,typeof t==`string`?t:``)),e};Function.prototype.toString=b((function(){return a(this)&&f(this).source||l(this)}),`toString`)},741:function(e){var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},7819:function(e,t,n){e.exports=!n(9039)((function(){var e=`9007199254740993`,t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))},5749:function(e,t,n){var r=n(788),i=TypeError;e.exports=function(e){if(r(e))throw new i(`The method doesn't accept regular expressions`);return e}},4213:function(e,t,n){var r=n(3724),i=n(9504),a=n(9565),o=n(9039),s=n(1072),c=n(3717),l=n(8773),u=n(8981),d=n(7055),f=Object.assign,p=Object.defineProperty,m=i([].concat);e.exports=!f||o((function(){if(r&&f({b:1},f(p({},`a`,{enumerable:!0,get:function(){p(this,`b`,{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var e={},t={},n=Symbol(`assign detection`),i=`abcdefghijklmnopqrst`;return e[n]=7,i.split(``).forEach((function(e){t[e]=e})),f({},e)[n]!==7||s(f({},t)).join(``)!==i}))?function(e,t){for(var n=u(e),i=arguments.length,o=1,f=c.f,p=l.f;i>o;)for(var h,g=d(arguments[o++]),_=f?m(s(g),f(g)):s(g),v=_.length,y=0;v>y;)h=_[y++],r&&!a(p,g,h)||(n[h]=g[h]);return n}:f},2360:function(e,t,n){var r,i=n(8551),a=n(6801),o=n(8727),s=n(421),c=n(397),l=n(4055),u=n(6119),d=`prototype`,f=`script`,p=u(`IE_PROTO`),m=function(){},h=function(e){return`<`+f+`>`+e+``},g=function(e){e.write(h(``)),e.close();var t=e.parentWindow.Object;return e=null,t},_=function(){try{r=new ActiveXObject(`htmlfile`)}catch{}var e,t,n;_=typeof document<`u`?document.domain&&r?g(r):(t=l(`iframe`),n=`java`+f+`:`,t.style.display=`none`,c.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h(`document.F=Object`)),e.close(),e.F):g(r);for(var i=o.length;i--;)delete _[d][o[i]];return _()};s[p]=!0,e.exports=Object.create||function(e,t){var n;return e===null?n=_():(m[d]=i(e),n=new m,m[d]=null,n[p]=e),t===void 0?n:a.f(n,t)}},6801:function(e,t,n){var r=n(3724),i=n(8686),a=n(4913),o=n(8551),s=n(5397),c=n(1072);t.f=r&&!i?Object.defineProperties:function(e,t){o(e);for(var n,r=s(t),i=c(t),l=i.length,u=0;l>u;)a.f(e,n=i[u++],r[n]);return e}},4913:function(e,t,n){var r=n(3724),i=n(5917),a=n(8686),o=n(8551),s=n(6969),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d=`enumerable`,f=`configurable`,p=`writable`;t.f=r?a?function(e,t,n){if(o(e),t=s(t),o(n),typeof e==`function`&&t===`prototype`&&`value`in n&&p in n&&!n[p]){var r=u(e,t);r&&r[p]&&(e[t]=n.value,n={configurable:f in n?n[f]:r[f],enumerable:d in n?n[d]:r[d],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(o(e),t=s(t),o(n),i)try{return l(e,t,n)}catch{}if(`get`in n||`set`in n)throw new c(`Accessors not supported`);return`value`in n&&(e[t]=n.value),e}},7347:function(e,t,n){var r=n(3724),i=n(9565),a=n(8773),o=n(6980),s=n(5397),c=n(6969),l=n(9297),u=n(5917),d=Object.getOwnPropertyDescriptor;t.f=r?d:function(e,t){if(e=s(e),t=c(t),u)try{return d(e,t)}catch{}if(l(e,t))return o(!i(a.f,e,t),e[t])}},298:function(e,t,n){var r=n(2195),i=n(5397),a=n(8480).f,o=n(7680),s=typeof window==`object`&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return s&&r(e)===`Window`?function(e){try{return a(e)}catch{return o(s)}}(e):a(i(e))}},8480:function(e,t,n){var r=n(1828),i=n(8727).concat(`length`,`prototype`);t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},3717:function(e,t){t.f=Object.getOwnPropertySymbols},2787:function(e,t,n){var r=n(9297),i=n(4901),a=n(8981),o=n(6119),s=n(2211),c=o(`IE_PROTO`),l=Object,u=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var t=a(e);if(r(t,c))return t[c];var n=t.constructor;return i(n)&&t instanceof n?n.prototype:t instanceof l?u:null}},1625:function(e,t,n){e.exports=n(9504)({}.isPrototypeOf)},1828:function(e,t,n){var r=n(9504),i=n(9297),a=n(5397),o=n(9617).indexOf,s=n(421),c=r([].push);e.exports=function(e,t){var n,r=a(e),l=0,u=[];for(n in r)!i(s,n)&&i(r,n)&&c(u,n);for(;t.length>l;)i(r,n=t[l++])&&(~o(u,n)||c(u,n));return u}},1072:function(e,t,n){var r=n(1828),i=n(8727);e.exports=Object.keys||function(e){return r(e,i)}},8773:function(e,t){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor;t.f=r&&!n.call({1:2},1)?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},2551:function(e,t,n){var r=n(6395),i=n(4576),a=n(9039),o=n(3607);e.exports=r||!a((function(){if(!(o&&o<535)){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete i[e]}}))},2967:function(e,t,n){var r=n(6706),i=n(34),a=n(7750),o=n(3506);e.exports=Object.setPrototypeOf||(`__proto__`in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,`__proto__`,`set`))(n,[]),t=n instanceof Array}catch{}return function(n,r){return a(n),o(r),i(n)&&(t?e(n,r):n.__proto__=r),n}}():void 0)},3179:function(e,t,n){var r=n(2140),i=n(6955);e.exports=r?{}.toString:function(){return`[object `+i(this)+`]`}},4270:function(e,t,n){var r=n(9565),i=n(4901),a=n(34),o=TypeError;e.exports=function(e,t){var n,s;if(t===`string`&&i(n=e.toString)&&!a(s=r(n,e))||i(n=e.valueOf)&&!a(s=r(n,e))||t!==`string`&&i(n=e.toString)&&!a(s=r(n,e)))return s;throw new o(`Can't convert object to primitive value`)}},5031:function(e,t,n){var r=n(7751),i=n(9504),a=n(8480),o=n(3717),s=n(8551),c=i([].concat);e.exports=r(`Reflect`,`ownKeys`)||function(e){var t=a.f(s(e)),n=o.f;return n?c(t,n(e)):t}},8235:function(e,t,n){var r=n(9504),i=n(9297),a=SyntaxError,o=parseInt,s=String.fromCharCode,c=r(``.charAt),l=r(``.slice),u=r(/./.exec),d={'\\"':`"`,"\\\\":`\\`,"\\/":`/`,"\\b":`\b`,"\\f":`\f`,"\\n":` `,"\\r":`\r`,"\\t":` `},f=/^[\da-f]{4}$/i,p=/^[\u0000-\u001F]$/;e.exports=function(e,t){for(var n=!0,r=``;t0&&(!p.multiline||p.multiline&&v(T,p.lastIndex-1)!==` `)&&(A=`(?: `+A+`)`,M=` `+M,j++),n=RegExp(`^(?:`+A+`)`,k)),w&&(n=RegExp(`^`+A+`$(?!\\s)`,k)),S&&(r=p.lastIndex),i=a(g,O?n:p,M),O?i?(i.input=x(i.input,j),i[0]=x(i[0],j),i.index=p.lastIndex,p.lastIndex+=i[0].length):p.lastIndex=0:S&&i&&(p.lastIndex=p.global?i.index+i[0].length:r),w&&i&&i.length>1&&a(h,i[0],n,(function(){for(o=1;ob)`,`g`);return e.exec(`b`).groups.a!==`b`||`b`.replace(e,`$c`)!==`bc`}))},7750:function(e,t,n){var r=n(4117),i=TypeError;e.exports=function(e){if(r(e))throw new i(`Can't call method on `+e);return e}},7633:function(e,t,n){var r=n(7751),i=n(2106),a=n(8227),o=n(3724),s=a(`species`);e.exports=function(e){var t=r(e);o&&t&&!t[s]&&i(t,s,{configurable:!0,get:function(){return this}})}},687:function(e,t,n){var r=n(4913).f,i=n(9297),a=n(8227)(`toStringTag`);e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!i(e,a)&&r(e,a,{configurable:!0,value:t})}},6119:function(e,t,n){var r=n(5745),i=n(3392),a=r(`keys`);e.exports=function(e){return a[e]||(a[e]=i(e))}},7629:function(e,t,n){var r=n(6395),i=n(4576),a=n(9433),o=`__core-js_shared__`,s=e.exports=i[o]||a(o,{});(s.versions||=[]).push({version:`3.48.0`,mode:r?`pure`:`global`,copyright:`© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.`,license:`https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE`,source:`https://github.com/zloirock/core-js`})},5745:function(e,t,n){var r=n(7629);e.exports=function(e,t){return r[e]||(r[e]=t||{})}},2293:function(e,t,n){var r=n(8551),i=n(5548),a=n(4117),o=n(8227)(`species`);e.exports=function(e,t){var n,s=r(e).constructor;return s===void 0||a(n=r(s)[o])?t:i(n)}},8183:function(e,t,n){var r=n(9504),i=n(1291),a=n(655),o=n(7750),s=r(``.charAt),c=r(``.charCodeAt),l=r(``.slice),u=function(e){return function(t,n){var r,u,d=a(o(t)),f=i(n),p=d.length;return f<0||f>=p?e?``:void 0:(r=c(d,f))<55296||r>56319||f+1===p||(u=c(d,f+1))<56320||u>57343?e?s(d,f):r:e?l(d,f,f+2):u-56320+(r-55296<<10)+65536}};e.exports={codeAt:u(!1),charAt:u(!0)}},706:function(e,t,n){var r=n(350).PROPER,i=n(9039),a=n(7452);e.exports=function(e){return i((function(){return!!a[e]()||`​…᠎`[e]()!==`​…᠎`||r&&a[e].name!==e}))}},3802:function(e,t,n){var r=n(9504),i=n(7750),a=n(655),o=n(7452),s=r(``.replace),c=RegExp(`^[`+o+`]+`),l=RegExp(`(^|[^`+o+`])[`+o+`]+$`),u=function(e){return function(t){var n=a(i(t));return 1&e&&(n=s(n,c,``)),2&e&&(n=s(n,l,`$1`)),n}};e.exports={start:u(1),end:u(2),trim:u(3)}},4495:function(e,t,n){var r=n(9519),i=n(9039),a=n(4576).String;e.exports=!!Object.getOwnPropertySymbols&&!i((function(){var e=Symbol(`symbol detection`);return!a(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8242:function(e,t,n){var r=n(9565),i=n(7751),a=n(8227),o=n(6840);e.exports=function(){var e=i(`Symbol`),t=e&&e.prototype,n=t&&t.valueOf,s=a(`toPrimitive`);t&&!t[s]&&o(t,s,(function(e){return r(n,this)}),{arity:1})}},1296:function(e,t,n){e.exports=n(4495)&&!!Symbol.for&&!!Symbol.keyFor},1240:function(e,t,n){e.exports=n(9504)(1.1.valueOf)},5610:function(e,t,n){var r=n(1291),i=Math.max,a=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):a(n,t)}},5397:function(e,t,n){var r=n(7055),i=n(7750);e.exports=function(e){return r(i(e))}},1291:function(e,t,n){var r=n(741);e.exports=function(e){var t=+e;return t!=t||t===0?0:r(t)}},8014:function(e,t,n){var r=n(1291),i=Math.min;e.exports=function(e){var t=r(e);return t>0?i(t,9007199254740991):0}},8981:function(e,t,n){var r=n(7750),i=Object;e.exports=function(e){return i(r(e))}},2777:function(e,t,n){var r=n(9565),i=n(34),a=n(757),o=n(5966),s=n(4270),c=n(8227),l=TypeError,u=c(`toPrimitive`);e.exports=function(e,t){if(!i(e)||a(e))return e;var n,c=o(e,u);if(c){if(t===void 0&&(t=`default`),n=r(c,e,t),!i(n)||a(n))return n;throw new l(`Can't convert object to primitive value`)}return t===void 0&&(t=`number`),s(e,t)}},6969:function(e,t,n){var r=n(2777),i=n(757);e.exports=function(e){var t=r(e,`string`);return i(t)?t:t+``}},2140:function(e,t,n){var r={};r[n(8227)(`toStringTag`)]=`z`,e.exports=String(r)===`[object z]`},655:function(e,t,n){var r=n(6955),i=String;e.exports=function(e){if(r(e)===`Symbol`)throw TypeError(`Cannot convert a Symbol value to a string`);return i(e)}},6823:function(e){var t=String;e.exports=function(e){try{return t(e)}catch{return`Object`}}},3392:function(e,t,n){var r=n(9504),i=0,a=Math.random(),o=r(1.1.toString);e.exports=function(e){return`Symbol(`+(e===void 0?``:e)+`)_`+o(++i+a,36)}},7040:function(e,t,n){e.exports=n(4495)&&!Symbol.sham&&typeof Symbol.iterator==`symbol`},8686:function(e,t,n){var r=n(3724),i=n(9039);e.exports=r&&i((function(){return Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype!==42}))},8622:function(e,t,n){var r=n(4576),i=n(4901),a=r.WeakMap;e.exports=i(a)&&/native code/.test(String(a))},511:function(e,t,n){var r=n(9167),i=n(9297),a=n(1951),o=n(4913).f;e.exports=function(e){var t=r.Symbol||={};i(t,e)||o(t,e,{value:a.f(e)})}},1951:function(e,t,n){t.f=n(8227)},8227:function(e,t,n){var r=n(4576),i=n(5745),a=n(9297),o=n(3392),s=n(4495),c=n(7040),l=r.Symbol,u=i(`wks`),d=c?l.for||l:l&&l.withoutSetter||o;e.exports=function(e){return a(u,e)||(u[e]=s&&a(l,e)?l[e]:d(`Symbol.`+e)),u[e]}},7452:function(e){e.exports=` @@ -4405,5 +4405,5 @@ img.ProseMirror-separator { In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function a(e,t){if(e){if(typeof e==`string`)return o(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`||`remove`in Element.prototype||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)}),typeof self<`u`&&`document`in self&&((!(`classList`in document.createElement(`_`))||document.createElementNS&&!(`classList`in document.createElementNS(`http://www.w3.org/2000/svg`,`g`)))&&function(e){if(`Element`in e){var t=`classList`,n=`prototype`,r=e.Element[n],i=Object,a=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,``)},o=Array[n].indexOf||function(e){for(var t=0,n=this.length;t2&&arguments[2]!==void 0&&arguments[2]?Object.assign({},this.getDefaultDiplay(),t):t||this.getDefaultDiplay())[e]||e}},{key:`getUpdatedInput`,value:function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n,i=arguments.length>4&&arguments[4]!==void 0&&arguments[4],a=this.getOptions(),o=[n,r,i],s=t;return(e===`{bksp}`||e===`{backspace}`)&&s.length>0?s=this.removeAt.apply(this,[s].concat(o)):(e===`{delete}`||e===`{forwarddelete}`)&&s.length>0?s=this.removeForwardsAt.apply(this,[s].concat(o)):e===`{space}`?s=this.addStringAt.apply(this,[s,` `].concat(o)):e!==`{tab}`||typeof a.tabCharOnTab==`boolean`&&!1===a.tabCharOnTab?e!==`{enter}`&&e!==`{numpadenter}`||!a.newLineOnEnter?e.includes(`numpad`)&&Number.isInteger(Number(e[e.length-2]))?s=this.addStringAt.apply(this,[s,e[e.length-2]].concat(o)):e===`{numpaddivide}`?s=this.addStringAt.apply(this,[s,`/`].concat(o)):e===`{numpadmultiply}`?s=this.addStringAt.apply(this,[s,`*`].concat(o)):e===`{numpadsubtract}`?s=this.addStringAt.apply(this,[s,`-`].concat(o)):e===`{numpadadd}`?s=this.addStringAt.apply(this,[s,`+`].concat(o)):e===`{numpaddecimal}`?s=this.addStringAt.apply(this,[s,`.`].concat(o)):e===`{`||e===`}`?s=this.addStringAt.apply(this,[s,e].concat(o)):e.includes(`{`)||e.includes(`}`)||(s=this.addStringAt.apply(this,[s,e].concat(o))):s=this.addStringAt.apply(this,[s,` `].concat(o)):s=this.addStringAt.apply(this,[s,` `].concat(o)),a.debug&&console.log(`Input will be: `+s),s}},{key:`updateCaretPos`,value:function(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=this.updateCaretPosAction(e,t);this.dispatch((function(e){e.setCaretPosition(n)}))}},{key:`updateCaretPosAction`,value:function(e){var t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=this.getOptions(),r=this.getCaretPosition();return r!=null&&(t?r>0&&(r-=e):r+=e),n.debug&&console.log(`Caret at:`,r),r}},{key:`addStringAt`,value:function(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:e.length,a=arguments.length>4&&arguments[4]!==void 0&&arguments[4];return r||r===0?(n=[e.slice(0,r),t,e.slice(i)].join(``),this.isMaxLengthReached()||a&&this.updateCaretPos(t.length)):n=e+t,n}},{key:`removeAt`,value:function(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.length,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(n===0&&r===0)return e;if(n===r){var a=/([\uD800-\uDBFF][\uDC00-\uDFFF])/g;n&&n>=0?e.substring(n-2,n).match(a)?(t=e.substr(0,n-2)+e.substr(n),i&&this.updateCaretPos(2,!0)):(t=e.substr(0,n-1)+e.substr(n),i&&this.updateCaretPos(1,!0)):e.slice(-2).match(a)?(t=e.slice(0,-2),i&&this.updateCaretPos(2,!0)):(t=e.slice(0,-1),i&&this.updateCaretPos(1,!0))}else t=e.slice(0,n)+e.slice(r),i&&this.dispatch((function(e){e.setCaretPosition(n)}));return t}},{key:`removeForwardsAt`,value:function(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.length,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0&&arguments[3];return e!=null&&e.length&&n!==null?(n===r?t=e.substring(n,n+2).match(/([\uD800-\uDBFF][\uDC00-\uDFFF])/g)?e.substr(0,n)+e.substr(n+2):e.substr(0,n)+e.substr(n+1):(t=e.slice(0,n)+e.slice(r),i&&this.dispatch((function(e){e.setCaretPosition(n)}))),t):e}},{key:`handleMaxLength`,value:function(e,t){var n=this.getOptions(),r=n.maxLength,i=e[n.inputName||`default`],a=t.length-1>=r;if(t.length<=i.length)return!1;if(Number.isInteger(r))return n.debug&&console.log(`maxLength (num) reached:`,a),a?(this.maxLengthReached=!0,!0):(this.maxLengthReached=!1,!1);if(s(r)===`object`){var o=t.length-1>=r[n.inputName||`default`];return n.debug&&console.log(`maxLength (obj) reached:`,o),o?(this.maxLengthReached=!0,!0):(this.maxLengthReached=!1,!1)}}},{key:`isMaxLengthReached`,value:function(){return!!this.maxLengthReached}},{key:`isTouchDevice`,value:function(){return`ontouchstart`in window||navigator.maxTouchPoints}},{key:`pointerEventsSupported`,value:function(){return!!window.PointerEvent}},{key:`camelCase`,value:function(e){return e?e.toLowerCase().trim().split(/[.\-_\s]/g).reduce((function(e,t){return t.length?e+t[0].toUpperCase()+t.slice(1):e})):``}},{key:`chunkArray`,value:function(e,t){return i(Array(Math.ceil(e.length/t))).map((function(n,r){return e.slice(t*r,t+t*r)}))}},{key:`escapeRegex`,value:function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,`\\$&`)}},{key:`getRtlOffset`,value:function(e,t){var n=e,r=t.indexOf(`‫`);return r=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o,s=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,o=e},f:function(){try{s||n.return==null||n.return()}finally{if(c)throw o}}}}(Object.getOwnPropertyNames(e.prototype));try{for(r.s();!(n=r.n()).done;){var i=n.value;i===`constructor`||i===`bindMethods`||(t[i]=t[i].bind(t))}}catch(e){r.e(e)}finally{r.f()}}}],t&&c(e.prototype,t),n&&c(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();l(d,`noop`,(function(){}));var f=d;function p(e){return p=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},p(e)}function m(e,t){for(var n=0;n1?t?.toLowerCase():t}},{key:`keyCodeToKey`,value:function(e){return{8:`Backspace`,9:`Tab`,13:`Enter`,16:`Shift`,17:`Ctrl`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Esc`,32:`Space`,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,48:`0`,49:`1`,50:`2`,51:`3`,52:`4`,53:`5`,54:`6`,55:`7`,56:`8`,57:`9`,65:`A`,66:`B`,67:`C`,68:`D`,69:`E`,70:`F`,71:`G`,72:`H`,73:`I`,74:`J`,75:`K`,76:`L`,77:`M`,78:`N`,79:`O`,80:`P`,81:`Q`,82:`R`,83:`S`,84:`T`,85:`U`,86:`V`,87:`W`,88:`X`,89:`Y`,90:`Z`,91:`Meta`,96:`Numpad0`,97:`Numpad1`,98:`Numpad2`,99:`Numpad3`,100:`Numpad4`,101:`Numpad5`,102:`Numpad6`,103:`Numpad7`,104:`Numpad8`,105:`Numpad9`,106:`NumpadMultiply`,107:`NumpadAdd`,109:`NumpadSubtract`,110:`NumpadDecimal`,111:`NumpadDivide`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,186:`;`,187:`=`,188:`,`,189:`-`,190:`.`,191:`/`,192:"`",219:`[`,220:`\\`,221:`]`,222:`'`}[e]||``}}],t&&m(e.prototype,t),n&&m(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}();function v(e){return v=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},v(e)}function y(e,t){for(var n=0;n0&&arguments[0]!==void 0?arguments[0]:r())},c.appendChild(t)}));var l=a>0,u=document.createElement(`div`);u.classList.add(`hg-candidate-box-prev`),l&&u.classList.add(`hg-candidate-box-btn-active`);var d=function(){l&&n.renderPage({candidateListPages:r,targetElement:i,pageIndex:a-1,nbPages:o,onItemSelected:s})};this.options.useTouchEvents?u.ontouchstart=d:u.onclick=d,this.candidateBoxElement.appendChild(u),this.candidateBoxElement.appendChild(c);var f=ae.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&arguments[1]!==void 0?arguments[1]:e;this.caretPosition=e,this.caretPositionEnd=t}},{key:`getInputCandidates`,value:function(e){var t=this,n=this.options,r=n.layoutCandidates,i=n.layoutCandidatesCaseSensitiveMatch;if(!r||T(r)!==`object`)return{};var a=Object.keys(r).filter((function(n){var r=e.substring(0,t.getCaretPositionEnd()||0)||e,a=RegExp(`${t.utilities.escapeRegex(n)}\$`,i?`g`:`gi`);return!!C(r.matchAll(a)).length}));if(a.length>1){var o=a.sort((function(e,t){return t.length-e.length}))[0];return{candidateKey:o,candidateValue:r[o]}}if(a.length){var s=a[0];return{candidateKey:s,candidateValue:r[s]}}return{}}},{key:`showCandidatesBox`,value:function(e,t,n){var r=this;this.candidateBox&&this.candidateBox.show({candidateValue:t,targetElement:n,onSelect:function(t,n){var i=r.options,a=i.layoutCandidatesCaseSensitiveMatch,o=i.disableCandidateNormalization,s=i.enableLayoutCandidatesKeyPress,c=t;o||(c=t.normalize(`NFD`)),typeof r.options.beforeInputUpdate==`function`&&r.options.beforeInputUpdate(r);var l=r.getInput(r.options.inputName,!0),u=r.getCaretPositionEnd()||0,d=l.substring(0,u||0)||l,f=RegExp(`${r.utilities.escapeRegex(e)}\$`,a?`g`:`gi`),p=d.replace(f,c),m=l.replace(d,p),h=p.length-d.length,g=(u||l.length)+h;g<0&&(g=0),r.setInput(m,r.options.inputName,!0),r.setCaretPosition(g),s&&typeof r.options.onKeyPress==`function`&&r.options.onKeyPress(t,n),typeof r.options.onChange==`function`&&r.options.onChange(r.getInput(r.options.inputName,!0),n),typeof r.options.onChangeAll==`function`&&r.options.onChangeAll(r.getAllInputs(),n)}})}},{key:`handleButtonClicked`,value:function(e,t){var n=this.options,r=n.inputName,i=r===void 0?this.defaultName:r,a=n.debug;if(e!==`{//}`){this.input[i]||(this.input[i]=``),typeof this.options.beforeInputUpdate==`function`&&this.options.beforeInputUpdate(this);var o=this.utilities.getUpdatedInput(e,this.input[i],this.caretPosition,this.caretPositionEnd);if(this.utilities.isStandardButton(e)&&this.activeInputElement&&this.input[i]&&this.input[i]===o&&this.caretPosition===0&&this.caretPositionEnd===o.length)return this.setInput(``,this.options.inputName,!0),this.setCaretPosition(0),this.activeInputElement.value=``,this.activeInputElement.setSelectionRange(0,0),void this.handleButtonClicked(e,t);if(typeof this.options.onKeyPress==`function`&&this.options.onKeyPress(e,t),this.input[i]!==o&&(!this.options.inputPattern||this.options.inputPattern&&this.inputPatternIsValid(o))){if(this.options.maxLength&&this.utilities.handleMaxLength(this.input,o))return;var s=this.utilities.getUpdatedInput(e,this.input[i],this.caretPosition,this.caretPositionEnd,!0);if(this.setInput(s,this.options.inputName,!0),a&&console.log(`Input changed:`,this.getAllInputs()),this.options.debug&&console.log(`Caret at: `,this.getCaretPosition(),this.getCaretPositionEnd(),`(${this.keyboardDOMClass})`,t?.type),this.options.syncInstanceInputs&&this.syncInstanceInputs(),typeof this.options.onChange==`function`&&this.options.onChange(this.getInput(this.options.inputName,!0),t),typeof this.options.onChangeAll==`function`&&this.options.onChangeAll(this.getAllInputs(),t),t!=null&&t.target&&this.options.enableLayoutCandidates){var c,l=this.getInputCandidates(o),u=l.candidateKey,d=l.candidateValue;u&&d?this.showCandidatesBox(u,d,this.keyboardDOM):(c=this.candidateBox)==null||c.destroy()}}this.caretPositionEnd&&this.caretPosition!==this.caretPositionEnd&&(this.setCaretPosition(this.caretPositionEnd,this.caretPositionEnd),this.activeInputElement&&this.activeInputElement.setSelectionRange(this.caretPositionEnd,this.caretPositionEnd),this.options.debug&&console.log(`Caret position aligned`,this.caretPosition)),a&&console.log(`Key pressed:`,e)}}},{key:`getMouseHold`,value:function(){return this.isMouseHold}},{key:`setMouseHold`,value:function(e){this.options.syncInstanceInputs?this.dispatch((function(t){t.isMouseHold=e})):this.isMouseHold=e}},{key:`handleButtonMouseDown`,value:function(e,t){var n=this;t&&(this.options.preventMouseDownDefault&&t.preventDefault(),this.options.stopMouseDownPropagation&&t.stopPropagation(),t.target.classList.add(this.activeButtonClass)),this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdTimeout&&clearTimeout(this.holdTimeout),this.setMouseHold(!0),this.options.disableButtonHold||(this.holdTimeout=window.setTimeout((function(){(n.getMouseHold()&&(!e.includes(`{`)&&!e.includes(`}`)||e===`{delete}`||e===`{backspace}`||e===`{bksp}`||e===`{space}`||e===`{tab}`)||e===`{arrowright}`||e===`{arrowleft}`||e===`{arrowup}`||e===`{arrowdown}`)&&(n.options.debug&&console.log(`Button held:`,e),n.handleButtonHold(e)),clearTimeout(n.holdTimeout)}),500))}},{key:`handleButtonMouseUp`,value:function(e,t){var n=this;t&&(this.options.preventMouseUpDefault&&t.preventDefault&&t.preventDefault(),this.options.stopMouseUpPropagation&&t.stopPropagation&&t.stopPropagation(),!(t.target===this.keyboardDOM||t.target&&this.keyboardDOM.contains(t.target)||this.candidateBox&&this.candidateBox.candidateBoxElement&&(t.target===this.candidateBox.candidateBoxElement||t.target&&this.candidateBox.candidateBoxElement.contains(t.target)))&&this.candidateBox&&this.candidateBox.destroy()),this.recurseButtons((function(e){e.classList.remove(n.activeButtonClass)})),this.setMouseHold(!1),this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),e&&typeof this.options.onKeyReleased==`function`&&this.options.onKeyReleased(e,t)}},{key:`handleKeyboardContainerMouseDown`,value:function(e){this.options.preventMouseDownDefault&&e.preventDefault()}},{key:`handleButtonHold`,value:function(e){var t=this;this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdInteractionTimeout=window.setTimeout((function(){t.getMouseHold()?(t.handleButtonClicked(e),t.handleButtonHold(e)):clearTimeout(t.holdInteractionTimeout)}),100)}},{key:`syncInstanceInputs`,value:function(){var e=this;this.dispatch((function(t){t.replaceInput(e.input),t.setCaretPosition(e.caretPosition,e.caretPositionEnd)}))}},{key:`clearInput`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.inputName||this.defaultName;this.input[e]=``,this.setCaretPosition(0),this.options.syncInstanceInputs&&this.syncInstanceInputs()}},{key:`getInput`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.inputName||this.defaultName,t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return this.options.syncInstanceInputs&&!t&&this.syncInstanceInputs(),this.options.rtl?`‫`+this.input[e].replace(`‫`,``).replace(`‬`,``)+`‬`:this.input[e]}},{key:`getAllInputs`,value:function(){var e=this,t={};return Object.keys(this.input).forEach((function(n){t[n]=e.getInput(n,!0)})),t}},{key:`setInput`,value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.inputName||this.defaultName,n=arguments.length>2?arguments[2]:void 0;this.input[t]=e,!n&&this.options.syncInstanceInputs&&this.syncInstanceInputs()}},{key:`replaceInput`,value:function(e){this.input=e}},{key:`setOptions`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=this.changedOptions(e);this.options=Object.assign(this.options,e),t.length&&(this.options.debug&&console.log(`changedOptions`,t),this.onSetOptions(t),this.render())}},{key:`changedOptions`,value:function(e){var t=this;return Object.keys(e).filter((function(n){return JSON.stringify(e[n])!==JSON.stringify(t.options[n])}))}},{key:`onSetOptions`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];e.includes(`layoutName`)&&this.candidateBox&&this.candidateBox.destroy(),(e.includes(`layoutCandidatesPageSize`)||e.includes(`layoutCandidates`))&&this.candidateBox&&(this.candidateBox.destroy(),this.candidateBox=new S({utilities:this.utilities,options:this.options}))}},{key:`resetRows`,value:function(){this.keyboardRowsDOM&&this.keyboardRowsDOM.remove(),this.keyboardDOM.className=this.keyboardDOMClass,this.keyboardDOM.setAttribute(`data-skInstance`,this.currentInstanceName),this.buttonElements={}}},{key:`dispatch`,value:function(e){if(!window.SimpleKeyboardInstances)throw console.warn(`SimpleKeyboardInstances is not defined. Dispatch cannot be called.`),Error(`INSTANCES_VAR_ERROR`);return Object.keys(window.SimpleKeyboardInstances).forEach((function(t){e(window.SimpleKeyboardInstances[t],t)}))}},{key:`addButtonTheme`,value:function(e,t){var n=this;t&&e&&(e.split(` `).forEach((function(r){t.split(` `).forEach((function(t){n.options.buttonTheme||(n.options.buttonTheme=[]);var i=!1;n.options.buttonTheme.map((function(e){if(e!=null&&e.class.split(` `).includes(t)){i=!0;var n=e.buttons.split(` `);n.includes(r)||(i=!0,n.push(r),e.buttons=n.join(` `))}return e})),i||n.options.buttonTheme.push({class:t,buttons:e})}))})),this.render())}},{key:`removeButtonTheme`,value:function(e,t){var n=this;if(!e&&!t)return this.options.buttonTheme=[],void this.render();e&&Array.isArray(this.options.buttonTheme)&&this.options.buttonTheme.length&&(e.split(` `).forEach((function(e){var r;(r=n.options)==null||(r=r.buttonTheme)==null||r.map((function(r,i){if(r&&t&&t.includes(r.class)||!t){var a,o=r?.buttons.split(` `).filter((function(t){return t!==e}));r&&o!=null&&o.length?r.buttons=o.join(` `):((a=n.options.buttonTheme)==null||a.splice(i,1),r=null)}return r}))})),this.render())}},{key:`getButtonElement`,value:function(e){var t,n=this.buttonElements[e];return n&&(t=n.length>1?n:n[0]),t}},{key:`inputPatternIsValid`,value:function(e){var t,n=this.options.inputPattern;if((t=n instanceof RegExp?n:n[this.options.inputName||this.defaultName])&&e){var r=t.test(e);return this.options.debug&&console.log(`inputPattern ("${t}"): ${r?`passed`:`did not pass!`}`),r}return!0}},{key:`setEventListeners`,value:function(){if(this.isFirstKeyboardInstance||!this.allKeyboardInstances){this.options.debug&&console.log(`Caret handling started (${this.keyboardDOMClass})`);var e=this.options.physicalKeyboardHighlightPreventDefault,t=e!==void 0&&e;document.addEventListener(`keyup`,this.handleKeyUp,t),document.addEventListener(`keydown`,this.handleKeyDown,t),document.addEventListener(`mouseup`,this.handleMouseUp),document.addEventListener(`touchend`,this.handleTouchEnd),this.options.updateCaretOnSelectionChange&&document.addEventListener(`selectionchange`,this.handleSelectionChange),document.addEventListener(`select`,this.handleSelect)}}},{key:`handleKeyUp`,value:function(e){this.caretEventHandler(e),this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyUp(e)}},{key:`handleKeyDown`,value:function(e){this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyDown(e)}},{key:`handleMouseUp`,value:function(e){this.caretEventHandler(e)}},{key:`handleTouchEnd`,value:function(e){this.caretEventHandler(e)}},{key:`handleSelect`,value:function(e){this.caretEventHandler(e)}},{key:`handleSelectionChange`,value:function(e){navigator.userAgent.includes(`Firefox`)||this.caretEventHandler(e)}},{key:`caretEventHandler`,value:function(e){var t,n=this;e.target.tagName&&(t=e.target.tagName.toLowerCase()),this.dispatch((function(r){var i=e.target===r.keyboardDOM||e.target&&r.keyboardDOM.contains(e.target);if(n.options.syncInstanceInputs&&Array.isArray(e.path)&&(i=e.path.some((function(e){var t;return e==null||(t=e.hasAttribute)==null?void 0:t.call(e,`data-skInstance`)}))),(t===`textarea`||t===`input`&&[`text`,`search`,`url`,`tel`,`password`].includes(e.target.type))&&!r.options.disableCaretPositioning){var a=e.target.selectionStart,o=e.target.selectionEnd;r.options.rtl&&(a=r.utilities.getRtlOffset(a,r.getInput()),o=r.utilities.getRtlOffset(o,r.getInput())),r.setCaretPosition(a,o),r.activeInputElement=e.target,r.options.debug&&console.log(`Caret at: `,r.getCaretPosition(),r.getCaretPositionEnd(),e&&e.target.tagName.toLowerCase(),`(${r.keyboardDOMClass})`,e?.type)}else !r.options.disableCaretPositioning&&i||e?.type===`selectionchange`||(r.setCaretPosition(null),r.activeInputElement=null,r.options.debug&&console.log(`Caret position reset due to "${e?.type}" event`,e))}))}},{key:`recurseButtons`,value:function(e){var t=this;e&&Object.keys(this.buttonElements).forEach((function(n){return t.buttonElements[n].forEach(e)}))}},{key:`destroy`,value:function(){this.options.debug&&console.log(`Destroying simple-keyboard instance: ${this.currentInstanceName}`);var e=this.options.physicalKeyboardHighlightPreventDefault,t=e!==void 0&&e;document.removeEventListener(`keyup`,this.handleKeyUp,t),document.removeEventListener(`keydown`,this.handleKeyDown,t),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`touchend`,this.handleTouchEnd),document.removeEventListener(`select`,this.handleSelect),this.options.updateCaretOnSelectionChange&&document.removeEventListener(`selectionchange`,this.handleSelectionChange),document.onpointerup=null,document.ontouchend=null,document.ontouchcancel=null,document.onmouseup=null,this.recurseButtons((function(e){e&&=(e.onpointerdown=null,e.onpointerup=null,e.onpointercancel=null,e.ontouchstart=null,e.ontouchend=null,e.ontouchcancel=null,e.onclick=null,e.onmousedown=null,e.onmouseup=null,e.remove(),null)})),this.keyboardDOM.onpointerdown=null,this.keyboardDOM.ontouchstart=null,this.keyboardDOM.onmousedown=null,this.resetRows(),this.candidateBox&&=(this.candidateBox.destroy(),null),this.activeInputElement=null,this.keyboardDOM.removeAttribute(`data-skInstance`),this.keyboardDOM.innerHTML=``,window.SimpleKeyboardInstances[this.currentInstanceName]=null,delete window.SimpleKeyboardInstances[this.currentInstanceName],this.initialized=!1}},{key:`getButtonThemeClasses`,value:function(e){var t=this.options.buttonTheme,n=[];return Array.isArray(t)&&t.forEach((function(t){if(t&&t.class&&typeof t.class==`string`&&t.buttons&&typeof t.buttons==`string`){var r=t.class.split(` `);t.buttons.split(` `).includes(e)&&(n=[].concat(C(n),C(r)))}else console.warn(`Incorrect "buttonTheme". Please check the documentation.`,t)})),n}},{key:`setDOMButtonAttributes`,value:function(e,t){var n=this.options.buttonAttributes;Array.isArray(n)&&n.forEach((function(n){n.attribute&&typeof n.attribute==`string`&&n.value&&typeof n.value==`string`?n.buttons&&typeof n.buttons==`string`?n.buttons.split(` `).includes(e)&&t(n.attribute,n.value):t(n.attribute,n.value):console.warn(`Incorrect "buttonAttributes". Please check the documentation.`,n)}))}},{key:`onTouchDeviceDetected`,value:function(){this.processAutoTouchEvents(),this.disableContextualWindow()}},{key:`disableContextualWindow`,value:function(){window.oncontextmenu=function(e){var t;if((t=e.target.classList)!=null&&t.contains(`hg-button`))return e.preventDefault(),e.stopPropagation(),!1}}},{key:`processAutoTouchEvents`,value:function(){this.options.autoUseTouchEvents&&(this.options.useTouchEvents=!0,this.options.debug&&console.log(`autoUseTouchEvents: Touch device detected, useTouchEvents enabled.`))}},{key:`onInit`,value:function(){this.options.debug&&console.log(`${this.keyboardDOMClass} Initialized`),this.setEventListeners(),typeof this.options.onInit==`function`&&this.options.onInit(this)}},{key:`beforeFirstRender`,value:function(){this.utilities.isTouchDevice()&&this.onTouchDeviceDetected(),typeof this.options.beforeFirstRender==`function`&&this.options.beforeFirstRender(this),this.isFirstKeyboardInstance&&this.utilities.pointerEventsSupported()&&!this.options.useTouchEvents&&!this.options.useMouseEvents&&this.options.debug&&console.log(`Using PointerEvents as it is supported by this browser`),this.options.useTouchEvents&&this.options.debug&&console.log(`useTouchEvents has been enabled. Only touch events will be used.`)}},{key:`beforeRender`,value:function(){typeof this.options.beforeRender==`function`&&this.options.beforeRender(this)}},{key:`onRender`,value:function(){typeof this.options.onRender==`function`&&this.options.onRender(this)}},{key:`onModulesLoaded`,value:function(){typeof this.options.onModulesLoaded==`function`&&this.options.onModulesLoaded(this)}},{key:`loadModules`,value:function(){var e=this;Array.isArray(this.options.modules)&&(this.options.modules.forEach((function(t){var n=e.utilities.isConstructor(t)?new t(e):t(e);n.init&&n.init(e)})),this.keyboardPluginClasses=`modules-loaded`,this.render(),this.onModulesLoaded())}},{key:`getModuleProp`,value:function(e,t){return!!this.modules[e]&&this.modules[e][t]}},{key:`getModulesList`,value:function(){return Object.keys(this.modules)}},{key:`parseRowDOMContainers`,value:function(e,t,n,r){var i=this,a=Array.from(e.children),o=0;return a.length&&n.forEach((function(n,s){var c=r[s];if(!(c&&c>n))return!1;var l=n-o,u=c-o,d=document.createElement(`div`);d.className+=`hg-button-container`;var f=`${i.options.layoutName}-r${t}c${s}`;d.setAttribute(`data-skUID`,f);var p=a.splice(l,u-l+1);o+=u-l,p.forEach((function(e){return d.appendChild(e)})),a.splice(l,0,d),e.innerHTML=``,a.forEach((function(t){return e.appendChild(t)})),i.options.debug&&console.log(`rowDOMContainer`,p,l,u,o+1)})),e}},{key:`render`,value:function(){var e=this;this.resetRows(),this.initialized||this.beforeFirstRender(),this.beforeRender();var t=`hg-layout-${this.options.layoutName}`,n=this.options.layout||{default:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}",`{tab} q w e r t y u i o p [ ] \\`,`{lock} a s d f g h j k l ; ' {enter}`,`{shift} z x c v b n m , . / {shift}`,`.com @ {space}`],shift:[`~ ! @ # $ % ^ & * ( ) _ + {bksp}`,`{tab} Q W E R T Y U I O P { } |`,`{lock} A S D F G H J K L : " {enter}`,`{shift} Z X C V B N M < > ? {shift}`,`.com @ {space}`]},r=this.options.useTouchEvents||!1,i=r?`hg-touch-events`:``,a=this.options.useMouseEvents||!1,o=this.options.disableRowButtonContainers;this.keyboardDOM.className=this.getKeyboardClassString(this.options.theme,t,this.keyboardPluginClasses,i),this.keyboardDOM.setAttribute(`data-skInstance`,this.currentInstanceName),this.keyboardRowsDOM=document.createElement(`div`),this.keyboardRowsDOM.className=`hg-rows`,n[this.options.layoutName||this.defaultName].forEach((function(t,n){var i=t.split(` `);e.options.excludeFromLayout&&e.options.excludeFromLayout[e.options.layoutName||e.defaultName]&&(i=i.filter((function(t){return e.options.excludeFromLayout&&!e.options.excludeFromLayout[e.options.layoutName||e.defaultName].includes(t)})));var s=document.createElement(`div`);s.className+=`hg-row`;var c=[],l=[];i.forEach((function(t,i){var u,d=!o&&typeof t==`string`&&t.length>1&&t.indexOf(`[`)===0,f=!o&&typeof t==`string`&&t.length>1&&t.indexOf(`]`)===t.length-1;d&&(c.push(i),t=t.replace(/\[/g,``)),f&&(l.push(i),t=t.replace(/\]/g,``));var p=e.utilities.getButtonClass(t),m=e.utilities.getButtonDisplayName(t,e.options.display,e.options.mergeDisplay),h=e.options.useButtonTag?`button`:`div`,g=document.createElement(h);g.className+=`hg-button ${p}`,(u=g.classList).add.apply(u,C(e.getButtonThemeClasses(t))),e.setDOMButtonAttributes(t,(function(e,t){g.setAttribute(e,t)})),e.activeButtonClass=`hg-activeButton`,!e.utilities.pointerEventsSupported()||r||a?r?(g.ontouchstart=function(n){e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.ontouchend=function(n){e.handleButtonMouseUp(t,n)},g.ontouchcancel=function(n){e.handleButtonMouseUp(t,n)}):(g.onclick=function(n){e.setMouseHold(!1),typeof e.options.onKeyReleased==`function`||e.options.useMouseEvents&&e.options.clickOnMouseDown||e.handleButtonClicked(t,n)},g.onmousedown=function(n){(typeof e.options.onKeyReleased==`function`||e.options.useMouseEvents&&e.options.clickOnMouseDown)&&!e.isMouseHold&&e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.onmouseup=function(n){e.handleButtonMouseUp(t,n)}):(g.onpointerdown=function(n){e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.onpointerup=function(n){e.handleButtonMouseUp(t,n)},g.onpointercancel=function(n){e.handleButtonMouseUp(t,n)}),g.setAttribute(`data-skBtn`,t);var _=`${e.options.layoutName}-r${n}b${i}`;g.setAttribute(`data-skBtnUID`,_);var v=document.createElement(`span`);v.innerHTML=m,g.appendChild(v),e.buttonElements[t]||(e.buttonElements[t]=[]),e.buttonElements[t].push(g),s.appendChild(g)})),s=e.parseRowDOMContainers(s,n,c,l),e.keyboardRowsDOM.appendChild(s)})),this.keyboardDOM.appendChild(this.keyboardRowsDOM),this.onRender(),this.initialized||(this.initialized=!0,!this.utilities.pointerEventsSupported()||r||a?r?(document.ontouchend=function(t){return e.handleButtonMouseUp(void 0,t)},document.ontouchcancel=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.ontouchstart=function(t){return e.handleKeyboardContainerMouseDown(t)}):r||(document.onmouseup=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.onmousedown=function(t){return e.handleKeyboardContainerMouseDown(t)}):(document.onpointerup=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.onpointerdown=function(t){return e.handleKeyboardContainerMouseDown(t)}),this.onInit())}}],t&&D(e.prototype,t),n&&D(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}(),j=A;return r}()},442:function(t){t.exports=e}},n={};function r(e){var i=n[e];if(i!==void 0)return i.exports;var a=n[e]={exports:{}};return t[e].call(a.exports,a,a.exports,r),a.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return function(){r.r(i),r.d(i,{KeyboardReact:function(){return u},default:function(){return d}}),r(981);var e=r(442),t=r(548),n=r.n(t);function a(e){return a=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},a(e)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{e?.(t)},[t,e]);let d=(0,y.useCallback)(e=>{if(a.current)return;let t=e.target;if(!t.closest(`[data-vkb="false"]`)){if(t instanceof HTMLInputElement){if(!z0e.has(t.type))return}else if(!(t instanceof HTMLTextAreaElement))return;c.current=t,n(!0),s(`default`),l.current?.setInput?.(c.current.value),setTimeout(()=>{(t.closest(`.bg-zinc-800, .rounded-lg, [data-vkb-group]`)??t).scrollIntoView({behavior:`smooth`,block:`nearest`})},100)}},[]),f=(0,y.useCallback)(()=>{setTimeout(()=>{let e=document.activeElement;e&&(u.current?.contains(e)||e===c.current)||(n(!1),c.current=null)},150)},[]);(0,y.useEffect)(()=>(document.addEventListener(`focusin`,d),document.addEventListener(`focusout`,f),()=>{document.removeEventListener(`focusin`,d),document.removeEventListener(`focusout`,f)}),[d,f]);let p=(0,y.useCallback)(()=>{a.current=!0,i(!0),c.current?.blur(),c.current=null,setTimeout(()=>{n(!1),i(!1),a.current=!1},400)},[]),m=(0,y.useCallback)(e=>{let t=c.current;if(t){if(e===`{shift}`){s(e=>e==="default"?`shift`:`default`);return}if(e===`{lock}`){s(e=>e==="default"?`shift`:`default`);return}if(e===`{close}`){p();return}e===`{bksp}`?U9(t,t.value.slice(0,-1)):e===`{space}`?U9(t,t.value+` `):(U9(t,t.value+e),o===`shift`&&s(`default`)),t.focus(),l.current?.setInput?.(t.value)}},[o,p]);return t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[9998] bg-transparent`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),r||p()},onTouchStart:e=>{e.preventDefault(),e.stopPropagation(),r||p()},onClick:e=>{e.preventDefault(),e.stopPropagation()}}),!r&&(0,G.jsx)(`div`,{ref:u,className:`relative z-[9999] shrink-0`,onMouseDown:e=>e.preventDefault(),onTouchStart:e=>{e.target.closest(`.hg-button`)||e.preventDefault()},children:(0,G.jsx)(R0e,{keyboardRef:e=>{l.current=e},layoutName:o,onKeyPress:m,theme:`simple-keyboard vkb-theme`,layout:{default:[`1 2 3 4 5 6 7 8 9 0 {bksp}`,`q w e r t y u i o p`,`{lock} a s d f g h j k l`,`{shift} z x c v b n m . @`,`{space} {close}`],shift:[`! @ # $ % ^ & * ( ) {bksp}`,`Q W E R T Y U I O P`,`{lock} A S D F G H J K L`,`{shift} Z X C V B N M , _`,`{space} {close}`]},display:{"{bksp}":`⌫`,"{close}":`✕ Close`,"{shift}":`⇧`,"{lock}":`⇪`,"{space}":` `}})})]}):null}function V0e(){Ff();let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(100),{i18n:o}=U(),s=or(),c=rr(),l=F0e(),{setViewportSuppressed:u}=qd();(0,y.useEffect)(()=>(u(!0),()=>u(!1)),[u]);let{data:d}=K({queryKey:[`settings`],queryFn:Z.getSettings});(0,y.useEffect)(()=>{d?.language&&d.language!==o.language&&o.changeLanguage(d.language)},[d?.language,o]);let{data:f=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:3e4}),p=f[0],m=l.deviceOnline||!!p?.online,h=(0,y.useMemo)(()=>({...l,deviceOnline:m}),[l,m]),g=(0,y.useRef)(!1);(0,y.useEffect)(()=>{p&&!g.current&&(a(p.display_brightness),g.current=!0)},[p]),(0,y.useEffect)(()=>{let e=document.documentElement,t=e.classList.contains(`dark`);return e.classList.add(`dark`),()=>{t||e.classList.remove(`dark`)}},[]);let{data:_}=K({queryKey:[`spoolbuddy-update-check`,p?.device_id],queryFn:()=>p?Od.checkDaemonUpdate(p.device_id):Promise.resolve(null),enabled:!!p,refetchInterval:300*1e3,staleTime:0}),v=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!m){let e=`SpoolBuddy device disconnected`;r({type:`warning`,message:e}),v.current=e}else if(_?.update_available&&_.latest_version){let e=`Update available: v${_.latest_version}`;r({type:`info`,message:e}),v.current=e}else v.current&&=(r(null),null)},[m,_?.update_available,_?.latest_version]);let b=!!(l.matchedSpool||l.unknownTagUid||l.unknownTrayUuid),x=(0,y.useRef)(!1);(0,y.useEffect)(()=>{b&&!x.current&&c.pathname!==`/spoolbuddy`&&s(`/spoolbuddy`),x.current=b},[b,c.pathname,s]);let{data:S=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),C=Co({queries:S.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4,select:e=>({connected:e?.connected})}))}),w=(0,y.useMemo)(()=>S.filter((e,t)=>C[t]?.data?.connected),[S,C]),T=(0,y.useRef)(null),E=(0,y.useRef)(!1),D=(0,y.useRef)(null),O=(0,y.useCallback)(e=>{T.current={x:e.touches[0].clientX,y:e.touches[0].clientY},E.current=!1},[]),k=(0,y.useCallback)(n=>{if(!T.current)return;let r=n.changedTouches[0].clientX-T.current.x,i=n.changedTouches[0].clientY-T.current.y,a=T.current.y;if(T.current=null,E.current=!1,i>=50&&Math.abs(i)>Math.abs(r)&&a<120){N(!0);return}if(w.length<2||Math.abs(r)<50||Math.abs(i)>Math.abs(r))return;let o=w.findIndex(t=>t.id===e);t(w[r<0?(o+1)%w.length:(o-1+w.length)%w.length].id)},[w,e,t]);(0,y.useEffect)(()=>{let e=D.current;if(!e)return;let t=e=>{if(!T.current)return;let t=Math.abs(e.touches[0].clientX-T.current.x),n=Math.abs(e.touches[0].clientY-T.current.y);if(E.current){e.preventDefault();return}t>10&&t>n&&(E.current=!0,e.preventDefault())};return e.addEventListener(`touchmove`,t,{passive:!1}),()=>e.removeEventListener(`touchmove`,t)},[]);let[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{ref:D,"data-spoolbuddy-kiosk":!0,className:`w-screen h-screen bg-bambu-dark text-white flex flex-col overflow-hidden`,style:{...i<100?{filter:`brightness(${i/100})`}:void 0,overscrollBehaviorX:`none`},onTouchStart:O,onTouchEnd:k,children:[(0,G.jsx)(`button`,{onClick:()=>N(!0),className:`w-full h-1.5 bg-bambu-dark-secondary flex justify-center items-center shrink-0 touch-none`,"aria-label":`Open quick menu`,children:(0,G.jsx)(`div`,{className:`w-8 h-0.5 rounded-full bg-zinc-600`})}),(0,G.jsx)(O0e,{selectedPrinterId:e,onPrinterChange:t,deviceOnline:m}),(0,G.jsx)(`main`,{className:`flex-1 overflow-y-auto`,children:(0,G.jsx)(Ir,{context:{selectedPrinterId:e,setSelectedPrinterId:t,sbState:h,setAlert:r,displayBrightness:i,setDisplayBrightness:a}})}),!A&&(0,G.jsx)(j0e,{alert:n}),!A&&(0,G.jsx)(A0e,{}),(0,G.jsx)(B0e,{onVisibilityChange:j})]}),(0,G.jsx)(M0e,{isOpen:M,onClose:()=>N(!1),deviceId:p?.device_id??null,deviceOnline:m})]})}function W9({color:e,isEmpty:t,size:n=32}){return t?(0,G.jsx)(`div`,{className:`rounded-full border-2 border-dashed border-zinc-500 flex items-center justify-center`,style:{width:n,height:n},children:(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-zinc-600`})}):(0,G.jsxs)(`svg`,{width:n,height:n,viewBox:`0 0 32 32`,children:[(0,G.jsx)(`circle`,{cx:`16`,cy:`16`,r:`14`,fill:e,stroke:`white`,strokeWidth:`1.5`,strokeOpacity:`0.7`}),(0,G.jsx)(`circle`,{cx:`16`,cy:`16`,r:`11`,fill:e,style:{filter:`brightness(0.85)`}})]})}var H0e=`spoolbuddy-default-core-weight`;function U0e(){try{let e=localStorage.getItem(H0e);if(e){let t=parseInt(e,10);if(t>=0&&t<=500)return t}}catch{}return 250}function W0e({spool:e,scaleWeight:t,onClose:n,onSyncWeight:r,onAssignToAms:i,isAssigned:a,onUnassignFromAms:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),f=Af(e.rgba),p=e.core_weight&&e.core_weight>0?e.core_weight:U0e(),m=t===null?null:Math.round(Math.max(0,t)),h=m===null?null:Math.round(Math.max(0,m-p)),g=Math.round(e.label_weight||1e3),_=h===null?null:Math.min(100,Math.round(h/g*100)),v=_===null?`#808080`:_>50?`#22c55e`:_>20?`#eab308`:`#ef4444`,b=Math.max(0,(e.label_weight||0)-(e.weight_used||0))+p,x=m===null?null:m-b,S=x===null?null:Math.abs(x)<=50,C=async()=>{if(t!==null){l(!0);try{await Od.updateSpoolWeight(e.id,Math.round(t)),d(!0),r?.(),setTimeout(()=>d(!1),3e3)}catch(e){console.error(`Failed to sync weight:`,e)}finally{l(!1)}}};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center space-y-4 max-w-md`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-5`,children:[(0,G.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,G.jsx)(W9,{color:f,isEmpty:!1,size:100}),_!==null&&(0,G.jsxs)(`div`,{className:`absolute -bottom-2 -right-2 px-2 py-0.5 rounded-full text-xs font-bold text-white shadow-lg`,style:{backgroundColor:v},children:[_,`%`]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-zinc-400`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]}),h!==null&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-3xl font-bold font-mono text-zinc-100`,children:[h,`g`]}),(0,G.jsxs)(`span`,{className:`text-sm text-zinc-500`,children:[`/ `,g,`g`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mt-0.5`,children:s(`spoolbuddy.spool.remaining`,`Remaining`)}),(0,G.jsx)(`div`,{className:`mt-2 max-w-xs`,children:(0,G.jsx)(`div`,{className:`h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500`,style:{width:`${_}%`,backgroundColor:v}})})})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-2 text-sm bg-zinc-800 rounded-lg p-4 w-full`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.grossWeight`,`Gross weight`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300`,children:m===null?`—`:`${m}g`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.spool.coreWeight`,`Core`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[p,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.spoolSize`,`Spool size`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[g,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.spool.scaleWeight`,`Scale`)}),m===null?(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`—`}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 font-mono ${S?`text-green-500`:`text-yellow-500`}`,children:[m,`g`,S?(0,G.jsx)(fs,{className:`w-3.5 h-3.5`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`button`,{onClick:C,className:`p-1 hover:bg-green-500/20 rounded transition-colors text-green-500`,title:s(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`),children:(0,G.jsx)(Hl,{className:`w-4 h-4`})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.tagId`,`Tag`)}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-zinc-400 truncate max-w-[120px]`,title:e.tag_uid||``,children:e.tag_uid?e.tag_uid.slice(-8):`—`})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[i&&(0,G.jsx)(`button`,{onClick:a?void 0:i,disabled:!!a,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px] disabled:opacity-50 disabled:cursor-not-allowed`,children:s(`spoolbuddy.modal.assignToAms`,`Assign to AMS`)}),o&&(0,G.jsxs)(`button`,{onClick:o,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-red-600/20 text-red-400 hover:bg-red-600/30 transition-colors min-h-[44px]`,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 inline mr-1`}),s(`inventory.unassignSpool`)]}),(0,G.jsx)(`button`,{onClick:C,disabled:t===null||c,className:`px-5 py-2.5 rounded-lg text-sm font-medium transition-colors min-h-[44px] ${u?`bg-green-600/20 text-green-400`:i?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600 disabled:opacity-40 disabled:cursor-not-allowed`:`bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed`}`,children:c?`...`:u?s(`spoolbuddy.dashboard.weightSynced`,`Synced!`):s(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`)}),n&&(0,G.jsx)(`button`,{onClick:n,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:s(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function G0e({tagUid:e,scaleWeight:t,coreWeight:n,onLinkSpool:r,onAddToInventory:i,onClose:a}){let{t:o}=U(),s=n??U0e(),c=t===null?null:Math.round(Math.max(0,t)),l=c===null?null:Math.round(Math.max(0,c-s));return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-5`,children:[(0,G.jsx)(`div`,{className:`w-20 h-20 rounded-2xl bg-green-500/15 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-10 h-10 text-green-500`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z`})})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:o(`spoolbuddy.dashboard.newTag`,`New Tag Detected`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500 font-mono mt-1`,children:e})]}),c!==null&&(0,G.jsxs)(`div`,{className:`text-sm text-zinc-400`,children:[(0,G.jsxs)(`span`,{className:`font-mono font-semibold`,children:[c,`g`]}),` `,o(`spoolbuddy.dashboard.onScale`,`on scale`),l!==null&&l>0&&(0,G.jsxs)(`span`,{className:`text-zinc-500`,children:[` • ~`,l,`g filament`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 justify-center`,children:[i&&(0,G.jsx)(`button`,{onClick:i,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:o(`spoolbuddy.modal.addToInventory`,`Add to Inventory`)}),r&&(0,G.jsxs)(`button`,{onClick:r,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 inline-block mr-1.5 -mt-0.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1`})}),o(`inventory.assignSpool`,`Assign Spool`)]}),a&&(0,G.jsx)(`button`,{onClick:a,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:o(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function K0e(e){return e?`#${e.slice(0,6)}`:`#808080`}function q0e(e){return!e.tray_type||e.tray_type===``}function J0e(e){if(e.tray_type)return null;if(e.exists===!0)return`reset`;if(e.exists===!1)return`physical`;let t=e.state??null;return t===9||t===10?`physical`:`reset`}function Y0e(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function X0e({className:e}){return(0,G.jsx)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,G.jsx)(`path`,{d:`M17.8131 0.00538C18.4463 -0.15091 20.3648 3.14642 20.8264 3.84781C25.4187 10.816 35.3089 26.9368 35.9383 34.8694C37.4182 53.5822 11.882 61.3357 2.53721 45.3789C-1.73471 38.0791 0.016 32.2049 3.178 25.0232C6.99221 16.3662 12.6411 7.90372 17.8131 0.00538ZM18.3738 7.24807L17.5881 7.48441C14.4452 12.9431 10.917 18.2341 8.19369 23.9368C4.6808 31.29 1.18317 38.5479 7.69403 45.5657C17.3058 55.9228 34.9847 46.8808 31.4604 32.8681C29.2558 24.0969 22.4207 15.2913 18.3776 7.24807H18.3738Z`,fill:`#C3C2C1`})})}function Z0e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 35 53`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.3165 0.0038C17.932 -0.14959 19.7971 3.08645 20.2458 3.77481C24.7103 10.6135 34.3251 26.4346 34.937 34.2198C36.3757 52.5848 11.5505 60.1942 2.46584 44.534C-1.68714 37.3735 0.0148 31.6085 3.08879 24.5603C6.79681 16.0605 12.2884 7.75907 17.3165 0.0038ZM17.8615 7.11561L17.0977 7.34755C14.0423 12.7048 10.6124 17.8974 7.96483 23.4941C4.54975 30.7107 1.14949 37.8337 7.47908 44.721C16.8233 54.8856 34.01 46.0117 30.5838 32.2595C28.4405 23.6512 21.7957 15.0093 17.8652 7.11561H17.8615Z`,fill:`#C3C2C1`}),(0,G.jsx)(`path`,{d:`M5.03547 30.112C9.64453 30.4936 11.632 35.7985 16.4154 35.791C19.6339 35.7873 20.2161 33.2283 22.3853 31.6197C31.6776 24.7286 33.5835 37.4894 27.9881 44.4254C18.1878 56.5653 -1.16063 44.6013 5.03917 30.1158L5.03547 30.112Z`,fill:`#1F8FEB`})]})}function Q0e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.9625 4.48059L4.77216 26.3154L2.08228 40.2175L10.0224 50.8414H23.1594L33.3246 42.1693V30.2455L17.9625 4.48059Z`,fill:`#1F8FEB`}),(0,G.jsx)(`path`,{d:`M17.7948 0.00538C18.4273 -0.15091 20.3438 3.14642 20.8048 3.84781C25.3921 10.816 35.2715 26.9368 35.9001 34.8694C37.3784 53.5822 11.8702 61.3357 2.53562 45.3789C-1.73163 38.0829 0.0134 32.2087 3.1757 25.027C6.98574 16.3662 12.6284 7.90372 17.7948 0.00538ZM18.3549 7.24807L17.57 7.48441C14.4306 12.9431 10.9063 18.2341 8.1859 23.9368C4.67686 31.29 1.18305 38.5479 7.68679 45.5657C17.2881 55.9228 34.9476 46.8808 31.4271 32.8681C29.2249 24.0969 22.3974 15.2913 18.3587 7.24807H18.3549Z`,fill:`#C3C2C1`})]})}function $0e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function e2e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`8`,width:`3`,height:`4.5`,fill:`#d4a017`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#d4a017`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function t2e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:`#c62828`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#c62828`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function n2e({humidity:e,goodThreshold:t=40,fairThreshold:n=60}){let r,i;return e<=t?(r=`#22a352`,i=X0e):e<=n?(r=`#d4a017`,i=Z0e):(r=`#c62828`,i=Q0e),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(i,{className:`w-3 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums text-xs`,style:{color:r},children:[e,`%`]})]})}function r2e({temp:e,goodThreshold:t=28,fairThreshold:n=35}){let r,i;return e<=t?(r=`#22a352`,i=$0e):e<=n?(r=`#d4a017`,i=e2e):(r=`#c62828`,i=t2e),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(i,{className:`w-3 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums text-xs`,style:{color:r},children:[e,`°C`]})]})}function G9({side:e}){return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-4 h-4 text-[9px] font-bold rounded`,style:{backgroundColor:`#1a4d2e`,color:`#00ae42`},children:e})}function i2e({tray:e,slotIndex:t,isActive:n,fillOverride:r,spoolmanFill:i,onClick:a}){let o=q0e(e),s=J0e(e),c=K0e(e.tray_color),l=e.remain!==null&&e.remain!==void 0&&e.remain>=0?e.remain:null,u=i??(r===0&&l!==null&&l>0?null:r)??l;return(0,G.jsxs)(`div`,{className:`relative flex flex-col items-center p-2.5 rounded-lg transition-all ${n?`ring-2 ring-bambu-green`:``} ${a?`cursor-pointer hover:bg-white/5`:``}`,onClick:a,title:a?`AMS Slot ${t+1}`:void 0,children:[(0,G.jsxs)(`div`,{className:`relative w-16 h-16 mb-1`,children:[o?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:c}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:c,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]}),n&&(0,G.jsx)(`div`,{className:`absolute -bottom-1 left-1/2 -translate-x-1/2 w-2.5 h-2.5 bg-bambu-green rounded-full`})]}),(0,G.jsx)(`span`,{className:`text-sm text-white/70 truncate max-w-full`,title:s===`reset`?`Spool loaded — slot not configured`:void 0,children:o?s===`reset`?`?`:`Empty`:e.tray_type||`Unknown`}),!o&&u!==null&&u>=0&&(0,G.jsx)(`div`,{className:`w-full h-1 bg-bambu-dark-tertiary rounded-full overflow-hidden mt-1`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${u}%`,backgroundColor:Np(u)}})}),(0,G.jsx)(`span`,{className:`absolute top-1 right-1 text-xs text-white/30`,children:t+1})]})}function a2e({unit:e,activeSlot:t,onConfigureSlot:n,isDualNozzle:r,nozzleSide:i,thresholds:a,fillOverrides:o,spoolmanFillOverrides:s}){let c=e.tray||[],l=e.is_ams_ht,u=l?1:4;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium text-base`,children:Y0e(e.id)}),r&&i&&(0,G.jsx)(G9,{side:i})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.temp!=null&&(0,G.jsx)(r2e,{temp:e.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair}),e.humidity!=null&&(0,G.jsx)(n2e,{humidity:e.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair})]})]}),(0,G.jsx)(`div`,{className:`grid ${l?`grid-cols-1 max-w-[100px] mx-auto`:`grid-cols-4`} gap-2`,children:Array.from({length:u}).map((r,i)=>{let a=c[i]||{id:i,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null};return(0,G.jsx)(i2e,{tray:a,slotIndex:i,isActive:t===i,fillOverride:o?.[`${e.id}-${i}`]??null,spoolmanFill:s?.[`${e.id}-${i}`]??null,onClick:n?()=>n(e.id,i,q0e(a)?null:a):void 0},i)})})]})}function K9(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function q9(e){return!e.tray_type||e.tray_type===``}function o2e(e){return e?`#${e.slice(0,6)}`:`#808080`}var J9=e=>(e??``).trim().toUpperCase();function s2e(e,t){let n=J9(e),r=J9(t);return!n||!r?`none`:n===r?`exact`:r.includes(n)||n.includes(r)?`partial`:`none`}function c2e(e,t){let n=J9(e),r=J9(t);return!n||!r?!1:n===r}function l2e({isOpen:e,onClose:t,spool:n,printerId:r,spoolmanMode:i=!1}){let{t:a}=U(),o=co(),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null);(0,y.useEffect)(()=>{e&&(c(null),u(null),f(!1),m(null),g(null))},[e]);let _=(0,y.useCallback)(e=>{e.key===`Escape`&&t()},[t]);(0,y.useEffect)(()=>(e&&document.addEventListener(`keydown`,_),()=>document.removeEventListener(`keydown`,_)),[e,_]);let{data:v}=K({queryKey:[`printerStatus`,r],queryFn:()=>Z.getPrinterStatus(r),enabled:e&&r!==null,refetchInterval:5e3}),{data:b}=K({queryKey:[`printer`,r],queryFn:()=>Z.getPrinter(r),enabled:e&&r!==null}),{data:x}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),enabled:e,staleTime:300*1e3}),{data:S}=K({queryKey:[`spool-assignments`,r],queryFn:()=>Z.getAssignments(r),enabled:e&&r!==null,staleTime:30*1e3}),{data:C=[]}=K({queryKey:[`spoolman-slot-assignments`,r],queryFn:()=>Z.getSpoolmanSlotAssignments(r??void 0),enabled:e&&!!i&&r!==null,staleTime:30*1e3}),w=i?C.find(e=>e.spoolman_spool_id===n.id):void 0,T=(0,y.useMemo)(()=>{let e={};if(!S)return e;for(let t of S){let n=t.spool;if(n&&n.label_weight>0&&n.weight_used!=null){let r=Math.round(Math.max(0,n.label_weight-n.weight_used)/n.label_weight*100);e[`${t.ams_id}-${t.tray_id}`]=r}}return e},[S]),E=x?{humidityGood:Number(x.ams_humidity_good)||40,humidityFair:Number(x.ams_humidity_fair)||60,tempGood:Number(x.ams_temp_good)||28,tempFair:Number(x.ams_temp_fair)||35}:void 0,D=v?.connected??!1,O=(0,y.useMemo)(()=>v?.ams??[],[v?.ams]),k=(0,y.useMemo)(()=>O.filter(e=>!e.is_ams_ht),[O]),A=(0,y.useMemo)(()=>O.filter(e=>e.is_ams_ht),[O]),j=(0,y.useMemo)(()=>[...v?.vt_tray??[]].sort((e,t)=>(e.id??254)-(t.id??254)),[v?.vt_tray]),M=b?.nozzle_count===2||v?.temperatures?.nozzle_2!==void 0,N=(0,y.useRef)({});(0,y.useEffect)(()=>{v?.ams_extruder_map&&Object.keys(v.ams_extruder_map).length>0&&(N.current=v.ams_extruder_map)},[v?.ams_extruder_map]);let P=v?.ams_extruder_map&&Object.keys(v.ams_extruder_map).length>0?v.ams_extruder_map:N.current,F=v?.fila_switch?.installed===!0,I=(0,y.useCallback)(e=>{if(!M)return null;let t=P[String(e)];return t===void 0?F?null:(e>=128?e-128:e)===1?`L`:`R`:t===1?`L`:`R`},[M,P,F]),L=q({mutationFn:async({amsId:e,trayId:t})=>{if(!r)throw Error(`No printer selected`);return i?await Z.assignSpoolmanSlot({spoolman_spool_id:n.id,printer_id:r,ams_id:e,tray_id:t}):await Z.assignSpool({spool_id:n.id,printer_id:r,ams_id:e,tray_id:t})},onSuccess:e=>{u(`success`);let n=e&&`pending_config`in e&&e.pending_config;c(n?a(`spoolbuddy.modal.assignPendingInsert`,`Assigned. Slot will configure when you insert the spool.`):a(`spoolbuddy.modal.assignSuccess`,`Assigned!`)),o.invalidateQueries({queryKey:[`slotPresets`]}),o.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),o.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),setTimeout(()=>t(),n?2500:1500)},onError:e=>{u(`error`),c(e instanceof Error?e.message:a(`spoolbuddy.modal.assignError`,`Failed to assign spool.`))}}),R=L.isPending,z=(0,y.useCallback)((e,t)=>{if(e===254||e===255){let n=e===254?254:254+t;return j.find(e=>(e.id??254)===n)||null}return O.find(t=>t.id===e)?.tray?.find(e=>e.id===t)||null},[O,j]),B=(0,y.useCallback)((e,t)=>e<=3?`${K9(e)} ${a(`ams.slot`,`Slot`)} ${t+1}`:e>=128&&e<=135?K9(e):e===254?a(`printers.extL`,`Ext-L`):M?a(`printers.extR`,`Ext-R`):a(`printers.ext`,`Ext`),[a,M]),V=(0,y.useCallback)((e,t)=>{u(`info`),c(a(`spoolbuddy.modal.assigning`,`Configuring slot...`)),L.mutate({amsId:e,trayId:t})},[L,a]),ee=(0,y.useCallback)((e,t)=>{if(!R){if(!x?.disable_filament_warnings){let r=z(e,t);if(r&&!q9(r)){let i=r.tray_sub_brands||r.tray_type||``,a=s2e(n.material,i),o=n.slicer_filament_name||n.slicer_filament,s=r.tray_type||``,c=c2e(o,s);if(a!==`exact`){let r;r=a===`none`&&!c?`material_profile`:a===`partial`&&!c?`partial_profile`:a===`none`?`material`:`partial`;let l=B(e,t);g({amsId:e,trayId:t}),m({type:r,spoolMaterial:n.material||``,trayMaterial:i||``,spoolProfile:o||void 0,trayProfile:s||void 0,location:l}),f(!0);return}}}V(e,t)}},[R,x?.disable_filament_warnings,n,z,B,V]),te=(0,y.useCallback)(()=>{h&&(f(!1),m(null),V(h.amsId,h.trayId),g(null))},[h,V]),ne=(0,y.useMemo)(()=>{let e=[];for(let t of A){let n=t.tray?.[0]||{id:0,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null},r=T[`${t.id}-0`]??null,i=n.remain!=null&&n.remain>=0?n.remain:null,a=r===0&&i!==null&&i>0?null:r;e.push({key:`ht-${t.id}`,label:K9(t.id),amsId:t.id,trayId:0,tray:n,isEmpty:q9(n),nozzleSide:I(t.id),effectiveFill:a??i})}for(let t of j){let n=t.id??254,r=n-254,i=T[`255-${r}`]??null,o=t.remain!=null&&t.remain>=0?t.remain:null,s=i===0&&o!==null&&o>0?null:i;e.push({key:`ext-${n}`,label:M?n===254?a(`printers.extL`,`Ext-L`):a(`printers.extR`,`Ext-R`):a(`printers.ext`,`Ext`),amsId:255,trayId:r,tray:t,isEmpty:q9(t),nozzleSide:M?n===254?`L`:`R`:null,effectiveFill:s??o})}return e},[A,j,M,a,I,T]);return e?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] bg-bambu-dark flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b border-zinc-800 shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-7 h-7 rounded-full shrink-0`,style:Mf(n.rgba)}),(0,G.jsx)(`div`,{className:`min-w-0`,children:(0,G.jsxs)(`h2`,{className:`text-sm font-semibold text-zinc-100 truncate`,children:[a(`spoolbuddy.modal.assignToAmsTitle`,`Assign to AMS`),(0,G.jsxs)(`span`,{className:`font-normal text-zinc-500 ml-2`,children:[n.color_name||`Unknown`,` • `,n.brand,` `,n.material,n.subtype&&` ${n.subtype}`]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 ml-2 shrink-0`,children:[`#`,n.id]})]})})]}),(0,G.jsx)(`button`,{onClick:t,disabled:R,className:`p-2 rounded-lg text-zinc-500 hover:text-zinc-300 hover:bg-zinc-800 transition-colors shrink-0 disabled:opacity-50`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),s&&(0,G.jsxs)(`div`,{className:`mx-5 mt-3 p-3 rounded-lg flex items-center gap-3 border shrink-0 ${l===`info`?`bg-blue-500/10 border-blue-500/40`:l===`success`?`bg-green-500/10 border-green-500/40`:`bg-red-500/10 border-red-500/40`}`,children:[l===`info`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-blue-400 animate-spin shrink-0`}),l===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-green-400 shrink-0`}),l===`error`&&(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm ${l===`info`?`text-blue-300`:l===`success`?`text-green-300`:`text-red-300`}`,children:s})]}),(0,G.jsx)(`div`,{className:`flex-1 flex flex-col gap-3 p-4 min-h-0 overflow-y-auto`,children:!D&&r?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`text-center text-white/50`,children:(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:a(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)})})}):O.length===0&&j.length===0?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:a(`spoolbuddy.ams.noData`,`No AMS detected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:a(`spoolbuddy.ams.connectAms`,`Connect an AMS to see filament slots`)})]})}):(0,G.jsxs)(G.Fragment,{children:[k.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3 flex-1 min-h-0`,children:k.map(e=>(0,G.jsx)(a2e,{unit:e,activeSlot:w?.ams_id===e.id?w.tray_id??null:null,onConfigureSlot:(t,n)=>ee(e.id,n),isDualNozzle:M,nozzleSide:I(e.id),thresholds:E,fillOverrides:T},e.id))}),ne.length>0&&(0,G.jsx)(`div`,{className:`flex gap-2 shrink-0`,children:ne.map(({key:e,label:t,amsId:n,trayId:r,tray:i,isEmpty:a,nozzleSide:o,effectiveFill:s})=>{let c=o2e(i.tray_color);return(0,G.jsxs)(`div`,{onClick:()=>ee(n,r),className:`bg-bambu-dark-secondary rounded-lg px-3 py-2 cursor-pointer hover:bg-bambu-dark-secondary/80 transition-all flex items-center gap-2 ${w&&w.ams_id===n&&w.tray_id===r?`ring-2 ring-bambu-green`:``} ${R?`opacity-50 pointer-events-none`:``}`,children:[(0,G.jsx)(`div`,{className:`relative w-10 h-10 shrink-0`,children:a?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:c}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:c,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-white/50 font-medium`,children:t}),o&&(0,G.jsx)(G9,{side:o})]}),(0,G.jsx)(`div`,{className:`text-sm text-white/80 truncate`,children:a?`Empty`:i.tray_type||`?`})]}),!a&&s!=null&&s>=0&&(0,G.jsx)(`div`,{className:`w-1.5 h-8 bg-bambu-dark-tertiary rounded-full overflow-hidden shrink-0 flex flex-col-reverse`,children:(0,G.jsx)(`div`,{className:`w-full rounded-full`,style:{height:`${s}%`,backgroundColor:Np(s)}})})]},e)})})]})}),(0,G.jsx)(`div`,{className:`flex justify-end gap-3 px-5 py-3 border-t border-zinc-800 shrink-0`,children:(0,G.jsx)(`button`,{onClick:t,disabled:R,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-800 text-zinc-300 hover:bg-zinc-700 transition-colors min-h-[44px] disabled:opacity-50`,children:l===`success`?a(`spoolbuddy.dashboard.close`,`Close`):a(`spoolbuddy.modal.cancel`,`Cancel`)})})]}),d&&p&&(()=>{let e=``;return p.type===`material`?e=a(`inventory.assignMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location}):p.type===`partial`?e=a(`inventory.assignPartialMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location}):p.type===`material_profile`?e=`${a(`inventory.assignMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location})}\n\n${a(`inventory.assignProfileMismatchMessage`,{spoolProfile:p.spoolProfile||a(`common.unknown`),trayProfile:p.trayProfile||a(`common.unknown`),location:p.location})}`:p.type===`partial_profile`&&(e=`${a(`inventory.assignPartialMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location})}\n\n${a(`inventory.assignProfileMismatchMessage`,{spoolProfile:p.spoolProfile||a(`common.unknown`),trayProfile:p.trayProfile||a(`common.unknown`),location:p.location})}`),e=`${e}\n\n${a(`inventory.assignReconfigureNote`)}`,(0,G.jsx)(of,{title:a(`inventory.assignMismatchTitle`),message:e,confirmText:a(`inventory.assignMismatchConfirm`),variant:`warning`,isLoading:L.isPending,onConfirm:te,onCancel:()=>{L.isPending||(f(!1),g(null),m(null))}})})()]}):null}function u2e({isOpen:e,onClose:t,tagId:n,untaggedSpools:r,onLink:i}){let{t:a}=U(),[o,s]=(0,y.useState)(null),c=(0,y.useCallback)(()=>{s(null),t()},[t]),l=(0,y.useCallback)(e=>{e.key===`Escape`&&c()},[c]);return(0,y.useEffect)(()=>(e&&(document.addEventListener(`keydown`,l),document.body.style.overflow=`hidden`),()=>{document.removeEventListener(`keydown`,l),document.body.style.overflow=``}),[e,l]),e?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 animate-fade-in`,onClick:c,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-xl shadow-2xl w-full max-w-lg mx-4 animate-slide-up`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-4 border-b border-zinc-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-base font-semibold text-zinc-100`,children:a(`spoolbuddy.dashboard.linkTagTitle`,`Link Tag to Spool`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500 font-mono`,children:n})]}),(0,G.jsx)(`button`,{onClick:c,className:`p-2 rounded-lg text-zinc-500 hover:text-zinc-300 hover:bg-zinc-700 transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`px-5 py-4 space-y-3 max-h-[400px] overflow-y-auto`,children:[(0,G.jsx)(`p`,{className:`text-sm text-zinc-400`,children:a(`spoolbuddy.dashboard.selectSpool`,`Select a spool to link this tag to:`)}),r.length===0?(0,G.jsx)(`div`,{className:`text-center py-8 text-zinc-500`,children:a(`spoolbuddy.dashboard.noUntagged`,`No spools without tags found`)}):(0,G.jsx)(`div`,{className:`space-y-2`,children:r.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(e),className:`w-full flex items-center gap-3 p-3 rounded-lg border-2 transition-all text-left ${o?.id===e.id?`border-green-500 bg-green-500/10`:`border-zinc-700 hover:border-green-500/50 hover:bg-zinc-700/50`}`,children:[(0,G.jsx)(W9,{color:Af(e.rgba),isEmpty:!1,size:40}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`font-medium text-zinc-100 truncate`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`div`,{className:`text-sm text-zinc-400 truncate`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]})]}),(0,G.jsxs)(`div`,{className:`text-sm font-mono text-zinc-500`,children:[Math.max(0,e.label_weight-e.weight_used),`g`]})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 px-5 py-4 border-t border-zinc-700`,children:[(0,G.jsx)(`button`,{onClick:c,className:`px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:a(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:()=>{o&&(i(o),s(null))},disabled:!o,className:`px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors min-h-[44px]`,children:a(`spoolbuddy.dashboard.linkTag`,`Link Tag`)})]})]})}):null}function d2e(e){return e?e.replace(/[^0-9a-f]/gi,``).toUpperCase():``}function f2e(e,t){let n=d2e(e),r=d2e(t);return!n||!r?!1:n===r?!0:n.endsWith(r)||r.endsWith(n)}var Y9=[`#00AE42`,`#FF6B35`,`#3B82F6`,`#EF4444`,`#A855F7`,`#FBBF24`,`#14B8A6`,`#EC4899`,`#F97316`,`#22C55E`];function p2e(){let{t:e}=U(),[t,n]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=setInterval(()=>{n(e=>(e+1)%Y9.length)},5e3);return()=>clearInterval(e)},[]);let r=Y9[t];return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,G.jsxs)(`div`,{className:`relative mb-6 flex items-center justify-center`,style:{width:160,height:160},children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center pointer-events-none`,children:[0,1].map(e=>(0,G.jsx)(`div`,{className:`absolute rounded-full border spoolbuddy-optimized-ping`,style:{width:80,height:80,borderColor:`${r}4D`,transition:`border-color 140ms linear`,animationDelay:`${e*.8}s`}},e))}),(0,G.jsxs)(`div`,{className:`relative overflow-hidden rounded-full`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full opacity-30 spoolbuddy-spool-glow`,style:{background:`radial-gradient(circle, ${r} 0%, transparent 70%)`}}),(0,G.jsx)(`div`,{className:`relative`,style:{transition:`opacity 140ms linear`},children:(0,G.jsx)(W9,{color:r,isEmpty:!1,size:100})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xl font-medium text-zinc-300`,children:e(`spoolbuddy.dashboard.readyToScan`,`Ready to scan`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500`,children:e(`spoolbuddy.dashboard.idleMessage`,`Place a spool on the scale to identify it`)})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-sm text-zinc-600`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})}),(0,G.jsx)(`span`,{children:e(`spoolbuddy.dashboard.nfcHint`,`NFC tag will be read automatically`)})]})]})}function m2e(){let{t:e}=U();return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,G.jsx)(`div`,{className:`relative mb-6 flex items-center justify-center`,style:{width:160,height:160},children:(0,G.jsx)(`div`,{className:`w-24 h-24 rounded-full bg-zinc-800 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-12 h-12 text-zinc-600`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,d:`M18.364 5.636a9 9 0 010 12.728m0 0l-12.728-12.728m12.728 12.728L5.636 5.636m12.728 0a9 9 0 00-12.728 0m0 12.728a9 9 0 010-12.728`})})})}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-lg font-medium text-zinc-500`,children:e(`spoolbuddy.status.deviceOffline`,`Device Offline`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-600`,children:e(`spoolbuddy.status.connectDisplay`,`Connect the SpoolBuddy display to scan spools`)})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-xs text-zinc-600`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.14 0M1.394 9.393c5.857-5.857 15.355-5.857 21.213 0`})}),(0,G.jsx)(`span`,{children:e(`spoolbuddy.status.waitingConnection`,`Waiting for device connection...`)})]})]})}function h2e(){let{sbState:e,selectedPrinterId:t}=lr(),{t:n}=U(),{showToast:r}=qd(),{data:i}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),a=i?.spoolman_enabled===`true`&&!!i?.spoolman_url,{data:o=[],refetch:s}=K({queryKey:a?[`spoolman-inventory-spools`]:[`inventory-spools`],queryFn:()=>a?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),enabled:i!==void 0}),{data:c=[]}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:a,staleTime:3*1e3,refetchInterval:3*1e3,refetchIntervalInBackground:!1}),{data:l=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),u=Co({queries:l.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4,select:e=>({connected:e?.connected,awaiting_plate_clear:e?.awaiting_plate_clear===!0})}))}),d=l.map((e,t)=>({printer:e,pending:u[t]?.data?.awaiting_plate_clear===!0})).filter(e=>e.pending),f=co(),p=q({mutationFn:e=>Z.clearPlate(e),onSuccess:(e,t)=>{f.setQueryData([`printerStatus`,t],e=>e&&{...e,awaiting_plate_clear:!1}),r(n(`spoolbuddy.dashboard.plateClearedToast`,`Plate marked as cleared`),`success`)},onError:()=>{r(n(`spoolbuddy.dashboard.plateClearFailed`,`Could not mark plate as cleared`),`error`)}}),m=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{f.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),f.invalidateQueries({queryKey:[`spoolman-inventory-spools`]})},onError:()=>r(n(`inventory.unassignFailed`,`Failed to unassign spool`),`error`)}),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(null),M=e.matchedSpool?.tag_uid??e.unknownTagUid??null,N=e.weight,P=e.weightStable,F=(0,y.useRef)(null);N===null?F.current=null:(F.current===null||Math.abs(N-F.current)>=3||P)&&(F.current=N);let I=F.current,L=(0,y.useMemo)(()=>{if(e.matchedSpool?.id){let t=o.find(t=>t.id===e.matchedSpool?.id);if(t)return t}return h&&(o.find(e=>f2e(e.tag_uid,h))||A)||null},[h,e.matchedSpool,o,A]),R=(0,y.useMemo)(()=>{if(L&&!A)return L;let t=e.matchedSpool;return t?{id:t.id,tag_uid:t.tag_uid,material:t.material,subtype:t.subtype,color_name:t.color_name,rgba:t.rgba,brand:t.brand,label_weight:t.label_weight,core_weight:t.core_weight,weight_used:t.weight_used}:null},[L,A,e.matchedSpool]),z=a&&R!=null?c.some(e=>e.spoolman_spool_id===R.id):!1,B=(0,y.useMemo)(()=>a?o.filter(e=>!e.tag_uid&&!e.tray_uuid&&!e.archived_at):o.filter(e=>!e.tag_uid&&!e.archived_at),[o,a]);(0,y.useEffect)(()=>{if(M){let e=b===M;(h!==null&&h!==M||!e&&h!==M)&&(g(M),v(null),x(null),j(null)),!e&&N!==null&&P&&v(Math.round(Math.max(0,N)))}else b&&(g(null),x(null),v(null),j(null))},[M,N,P,h,b]);let V=()=>{x(h)},ee=async t=>{if(h)try{if(a){let i=e.unknownTagUid||void 0,a=!e.unknownTagUid&&e.unknownTrayUuid?e.unknownTrayUuid:void 0;if(!i&&!a){r(n(`spoolman.linkFailed`),`error`);return}let o=await Z.linkTagToSpoolmanSpool(t.id,{tray_uuid:a,tag_uid:i});if(!o){r(n(`spoolman.linkFailed`),`error`);return}let{id:s,material:c,subtype:l,color_name:u,rgba:d,brand:f,label_weight:p,core_weight:m,weight_used:h}=o;j({id:s,material:c,subtype:l,color_name:u,rgba:d,brand:f,label_weight:p,core_weight:m,weight_used:h}),r(n(`spoolman.linkSuccess`),`success`)}else await Z.linkTagToSpool(t.id,{tag_uid:h,tag_type:`generic`,data_origin:`nfc_link`});s()}catch(e){console.error(`Failed to link tag:`,e),r(n(`spoolman.linkFailed`),`error`)}finally{C(!1)}},te=async()=>{if(h){k(!0);try{let t=ne??_;if(a){let n=await Z.createSpoolmanInventorySpool({material:`PLA`,subtype:null,color_name:null,rgba:null,extra_colors:null,effect_type:null,brand:null,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,nozzle_temp_min:null,nozzle_temp_max:null,note:null,added_full:null,last_used:null,encode_time:null,tag_uid:null,tray_uuid:null,data_origin:null,tag_type:null,cost_per_kg:null,last_scale_weight:t===null?null:Math.round(t),last_weighed_at:t===null?null:new Date().toISOString(),category:null,low_stock_threshold_pct:null});await Z.linkTagToSpoolmanSpool(n.id,{tag_uid:e.unknownTagUid||void 0,tray_uuid:!e.unknownTagUid&&e.unknownTrayUuid?e.unknownTrayUuid:void 0})}else await Z.createSpool({material:`PLA`,subtype:null,color_name:null,rgba:null,extra_colors:null,effect_type:null,brand:null,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,nozzle_temp_min:null,nozzle_temp_max:null,note:null,added_full:null,last_used:null,encode_time:null,tag_uid:h,tray_uuid:null,data_origin:`spoolbuddy`,tag_type:`generic`,cost_per_kg:null,last_scale_weight:t===null?null:Math.round(t),last_weighed_at:t===null?null:new Date().toISOString(),category:null,low_stock_threshold_pct:null})}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to quick-add spool:`,t),r(t||n(`spoolbuddy.errors.quickAddFailed`,`Failed to add spool`),`error`)}finally{D(!1),k(!1),s()}}},ne=N!==null&&(M===h||M===null&&h!==null)?N:null,re=o.length,ie=new Set(o.map(e=>e.material)).size,ae=new Set(o.filter(e=>e.brand).map(e=>e.brand)).size;return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-6 px-4 py-1.5 bg-zinc-800/50 rounded-xl border border-zinc-700/50 mb-3 shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:re}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.inventory.spools`,`Spools`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-zinc-700`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:ie}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.material`,`Materials`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-zinc-700`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:ae}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.brand`,`Brands`)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex gap-4 min-h-0`,children:[(0,G.jsxs)(`div`,{className:`w-5/12 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`border border-dashed border-zinc-700/50 rounded-xl p-4`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-3`,children:n(`spoolbuddy.dashboard.device`,`Device`)}),(0,G.jsxs)(`div`,{className:`space-y-2.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full ${e.deviceOnline?`bg-green-500`:`bg-red-500`}`}),(0,G.jsx)(`span`,{className:`text-base text-zinc-400`,children:e.deviceOnline?n(`spoolbuddy.status.online`,`Online`):n(`spoolbuddy.status.offline`,`Disconnected`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-zinc-800/50 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 ${e.deviceOnline?`text-green-500`:`text-zinc-500`}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3`})}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.scaleWeight`,`Scale`)})]}),(0,G.jsx)(`span`,{className:`text-lg font-mono font-semibold text-zinc-100`,children:I===null?`—`:`${Math.abs(I)<=20?0:Math.round(Math.max(0,I))}g`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-zinc-800/50 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 ${e.deviceOnline?`text-green-500`:`text-zinc-500`}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z`})}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:`NFC`})]}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${M?`text-green-500`:`text-zinc-500`}`,children:M?n(`spoolbuddy.dashboard.tagDetected`,`Tag detected`):n(`spoolbuddy.dashboard.noTag`,`No tag`)})]})]})]}),l.length>0&&(0,G.jsxs)(`div`,{className:`mt-3 border border-dashed border-zinc-700/50 rounded-xl p-4`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-2.5`,children:n(`spoolbuddy.dashboard.printers`,`Printers`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2 overflow-hidden`,children:l.map((e,t)=>{let n=u[t]?.data?.connected??!1;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2.5 py-1 bg-zinc-800/50 rounded-lg`,title:`${e.name} — ${n?`Online`:`Offline`}`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${n?`bg-green-500`:`bg-zinc-600`}`}),(0,G.jsx)(`span`,{className:`text-xs text-zinc-400 truncate max-w-[100px]`,children:e.name})]},e.id)})}),d.length>0&&(0,G.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,"data-testid":`plate-clear-section`,"aria-label":n(`spoolbuddy.dashboard.plateReadyLabel`,`Plates ready to clear`),children:d.map(({printer:e})=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>p.mutate(e.id),disabled:p.isPending,"data-testid":`plate-clear-button-${e.id}`,title:n(`spoolbuddy.dashboard.plateReady`,`Plate ready: {{name}}`,{name:e.name}),className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg bg-amber-500/10 hover:bg-amber-500/20 active:bg-amber-500/30 border border-amber-500/30 text-amber-200 transition-colors disabled:opacity-60 disabled:cursor-wait`,children:[(0,G.jsxs)(`svg`,{className:`w-3 h-3 shrink-0`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,G.jsx)(`path`,{d:`M12 9v4`}),(0,G.jsx)(`path`,{d:`M12 17h.01`}),(0,G.jsx)(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`})]}),(0,G.jsx)(`span`,{className:`text-xs truncate max-w-[100px]`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs opacity-70`,"aria-hidden":`true`,children:`·`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:n(`spoolbuddy.dashboard.plateClearAction`,`Clear`)})]},e.id))})]})]}),(0,G.jsx)(`div`,{className:`w-7/12 min-h-0`,children:(0,G.jsxs)(`div`,{className:`border border-dashed border-zinc-700/50 rounded-xl p-6 h-full flex flex-col`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-4 shrink-0`,children:n(`spoolbuddy.dashboard.currentSpool`,`Current Spool`)}),(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center min-h-0`,children:e.deviceOnline?(L||e.matchedSpool)&&h&&b!==h?(0,G.jsx)(W0e,{spool:(()=>{let t=L??e.matchedSpool;return{id:t.id,tag_uid:h,material:t.material,subtype:t.subtype,color_name:t.color_name,rgba:t.rgba,brand:t.brand,label_weight:t.label_weight,core_weight:t.core_weight,weight_used:t.weight_used}})(),scaleWeight:ne??_,onSyncWeight:()=>s(),onAssignToAms:()=>T(!0),isAssigned:z,onUnassignFromAms:z&&L?.id!=null?()=>m.mutate(L.id):void 0,onClose:V}):M&&h&&!L&&!e.matchedSpool&&b!==h?(0,G.jsx)(G0e,{tagUid:h,scaleWeight:ne??_,onLinkSpool:B.length>0?()=>C(!0):void 0,onAddToInventory:()=>D(!0),onClose:V}):(0,G.jsx)(p2e,{}):(0,G.jsx)(m2e,{})})]})})]}),R&&!A&&h&&(0,G.jsx)(l2e,{isOpen:w,onClose:()=>T(!1),spool:R,printerId:t,spoolmanMode:a}),h&&(0,G.jsx)(u2e,{isOpen:S,onClose:()=>C(!1),tagId:h,untaggedSpools:B,onLink:ee}),E&&h&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60`,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-2xl p-6 mx-4 max-w-sm w-full border border-zinc-700`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100 mb-3`,children:n(`spoolbuddy.modal.addToInventory`,`Add to Inventory`)}),(0,G.jsxs)(`div`,{className:`flex gap-2.5 p-3 bg-amber-500/10 border border-amber-500/20 rounded-lg mb-4`,children:[(0,G.jsx)(`svg`,{className:`w-5 h-5 text-amber-500 shrink-0 mt-0.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})}),(0,G.jsx)(`p`,{className:`text-sm text-amber-200/80`,children:n(`spoolbuddy.modal.quickAddHint`,`For best results, add the spool in the Bambuddy web interface first (with material, color, brand), then use "Assign Spool" here to assign the NFC tag.`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-400 mb-1`,children:n(`spoolbuddy.modal.quickAddDesc`,`This will create a basic PLA spool entry with this NFC tag. You can edit the details later in Bambuddy.`)}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 font-mono mb-5`,children:h}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>D(!1),className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:n(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:te,disabled:O,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-50 transition-colors min-h-[44px]`,children:O?n(`common.saving`,`Saving...`):n(`spoolbuddy.modal.addAnyway`,`Add Anyway`)})]})]})})]})}function g2e(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function _2e(e){return e?{O1D:`H2D`,O1E:`H2D Pro`,O2D:`H2D Pro`,O1C:`H2C`,O1C2:`H2C`,O1S:`H2S`,"BL-P001":`X1C`,"BL-P002":`X1`,"BL-P003":`X1E`,N6:`X2D`,N9:`A2L`,C11:`P1S`,C12:`P1P`,C13:`P2S`,N2S:`A1`,N1:`A1 Mini`,X1C:`X1C`,X1:`X1`,X1E:`X1E`,X2D:`X2D`,P1S:`P1S`,P1P:`P1P`,P2S:`P2S`,A1:`A1`,"A1 Mini":`A1 Mini`,A2L:`A2L`,H2D:`H2D`,"H2D Pro":`H2D Pro`,H2C:`H2C`,H2S:`H2S`}[e]||e:``}function X9(e){return!e.tray_type||e.tray_type===``}function v2e(e){return e?`#${e.slice(0,6)}`:`#808080`}function y2e(){let{selectedPrinterId:e,setAlert:t}=lr(),{t:n}=U(),r=co(),{showToast:i}=qd(),{data:a}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),enabled:e!==null,staleTime:30*1e3}),{data:o}=K({queryKey:[`printer`,e],queryFn:()=>Z.getPrinter(e),enabled:e!==null,staleTime:60*1e3}),{data:s}=K({queryKey:[`slotPresets`,e],queryFn:()=>Z.getSlotPresets(e),enabled:e!==null,staleTime:120*1e3}),{data:c}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),staleTime:300*1e3}),{data:l}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,staleTime:60*1e3}),u=l?.enabled&&l?.connected,{data:d}=K({queryKey:[`linked-spools`],queryFn:Z.getLinkedSpools,enabled:!!u,staleTime:30*1e3}),f=d?.linked,{data:p=[]}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:!!u,staleTime:30*1e3}),{data:m=[]}=K({queryKey:[`spoolman-inventory-spools`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:!!u,staleTime:30*1e3}),{data:h}=K({queryKey:[`spool-assignments`,e],queryFn:()=>Z.getAssignments(e),enabled:e!==null,staleTime:30*1e3}),g=(0,y.useMemo)(()=>{let e={};if(!h)return e;for(let t of h){let n=t.spool;if(n&&n.label_weight>0&&n.weight_used!=null){let r=Math.round(Math.max(0,n.label_weight-n.weight_used)/n.label_weight*100);e[`${t.ams_id}-${t.tray_id}`]=r}}return e},[h]),_=o?.serial_number??``,v=(0,y.useCallback)((t,n,r)=>{if(e!==null&&p.length&&m.length){let r=p.find(r=>r.printer_id===e&&r.ams_id===t&&r.tray_id===n);if(r){let e=m.find(e=>e.id===r.spoolman_spool_id);if(e&&(e.label_weight??0)>0)return Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100)}}if(f&&_){let e=(r?.tray_uuid||r?.tag_uid||Lp(_,t,n))?.toUpperCase(),i=Pp(e?f[e]:void 0);if(i!==null)return i}return null},[f,_,e,p,m]),b=a?.connected??!1,x=(0,y.useRef)({});(0,y.useEffect)(()=>{e&&a?.ams&&a.ams.length>0&&(x.current[e]=a.ams)},[a?.ams,e]);let S=(0,y.useMemo)(()=>{let t=a?.ams;return t&&t.length>0?t:(e?x.current[e]:null)??[]},[a?.ams,e]),C=(0,y.useMemo)(()=>S.filter(e=>!e.is_ams_ht),[S]),w=(0,y.useMemo)(()=>S.filter(e=>e.is_ams_ht),[S]),T=(0,y.useMemo)(()=>{let e={};if(!f||!_)return e;for(let t of C)for(let n=0;n<(t.tray?.length??0);n++){let r=t.tray[n],i=v(t.id,n,X9(r)?null:r);i!==null&&(e[`${t.id}-${n}`]=i)}return e},[f,_,C,v]),E=(0,y.useRef)(void 0),D=a?.tray_now;D!==void 0&&D!==255?E.current=D:D===255&&(E.current=void 0);let O=D!==void 0&&D!==255?D:E.current,k=o?.nozzle_count===2||a?.temperatures?.nozzle_2!==void 0,A=(0,y.useMemo)(()=>[...a?.vt_tray??[]].sort((e,t)=>(e.id??254)-(t.id??254)),[a?.vt_tray]),j=c?{humidityGood:Number(c.ams_humidity_good)||40,humidityFair:Number(c.ams_humidity_fair)||60,tempGood:Number(c.ams_temp_good)||28,tempFair:Number(c.ams_temp_fair)||35}:void 0,M=(0,y.useRef)({});(0,y.useEffect)(()=>{a?.ams_extruder_map&&Object.keys(a.ams_extruder_map).length>0&&(M.current=a.ams_extruder_map)},[a?.ams_extruder_map]);let N=a?.ams_extruder_map&&Object.keys(a.ams_extruder_map).length>0?a.ams_extruder_map:M.current,P=(0,y.useCallback)(e=>{if(!k)return null;let t=N[String(e)],n=e>=128?e-128:e;return(t===void 0?n:t)===1?`L`:`R`},[k,N]),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(null),te=(0,y.useCallback)((e,t)=>h?.find(n=>n.ams_id===Number(e)&&n.tray_id===Number(t)),[h]),ne=(0,y.useCallback)((e,t,n)=>{if(!f||!_)return;let r=(n?.tray_uuid||n?.tag_uid||Lp(_,e,t))?.toUpperCase();return r?f[r]:void 0},[f,_]),re=q({mutationFn:({printerId:e,amsId:t,trayId:n})=>Z.unassignSpool(e,t,n),onSuccess:()=>{r.invalidateQueries({queryKey:[`spool-assignments`,e]}),r.invalidateQueries({queryKey:[`spool-assignments`]}),i(n(`inventory.unassignSuccess`,`Spool unassigned`),`success`),R(null)}}),ie=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{i(n(`spoolman.unlinkSuccess`)||e?.message,`success`),r.invalidateQueries({queryKey:[`linked-spools`]}),r.invalidateQueries({queryKey:[`unlinked-spools`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),r.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),R(null)},onError:e=>{i(e.message||n(`spoolman.unlinkFailed`),`error`)}}),ae=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{i(n(`inventory.unassignSuccess`,`Spool unassigned`),`success`),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),r.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),r.invalidateQueries({queryKey:[`unlinked-spools`]}),r.invalidateQueries({queryKey:[`linked-spools`]}),R(null)},onError:e=>{i(e.message||n(`inventory.assignFailed`,`Failed to unassign spool`),`error`)}}),oe=(0,y.useCallback)(e=>O===void 0?null:e<=3&&Math.floor(O/4)===e?O%4:e>=128&&e<=135&&O===Mp(e,0,!1)?0:null,[O]),se=(0,y.useCallback)((e,t,n)=>{let r=Mp(e,t,!1),i=s?.[r],a=N[String(e)],o=e>=128?e-128:e,c=a===void 0?o:a;R({amsId:e,trayId:t,trayCount:n&&e>=128?1:4,tray:n,trayType:n?.tray_type||void 0,trayColor:n?.tray_color||void 0,traySubBrands:n?.tray_sub_brands||void 0,trayInfoIdx:n?.tray_info_idx||void 0,extruderId:k?c:void 0,caliIdx:n?.cali_idx,savedPresetId:i?.preset_id,location:`${g2e(e)} Slot ${t+1}`})},[s,N,k]),H=(0,y.useCallback)(e=>{let t=e.id??254,n=t-254,r=s?.[1020+n];R({amsId:255,trayId:n,trayCount:1,tray:X9(e)?null:e,trayType:e.tray_type||void 0,trayColor:e.tray_color||void 0,traySubBrands:e.tray_sub_brands||void 0,trayInfoIdx:e.tray_info_idx||void 0,extruderId:k?+(t===254):void 0,caliIdx:e.cali_idx,savedPresetId:r?.preset_id,location:k?t===254?`Ext-L`:`Ext-R`:`External`})},[s,k]),ce=(0,y.useCallback)(()=>{if(!L)return;let{tray:e,location:t,...n}=L;R(null),I(n)},[L]),le=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n,trayType:r,trayColor:i,location:a}=L;R(null),B({printerId:e,amsId:t,trayId:n,trayInfo:{type:r||``,material:r,color:i?.slice(0,6)||``,location:a}})},[L,e]),ue=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n,tray:r}=L,i=(r?.tray_uuid||r?.tag_uid||Lp(_,t,n))?.toUpperCase()||``;R(null),ee({tagUid:r?.tag_uid||i,trayUuid:r?.tray_uuid||``,printerId:e,amsId:t,trayId:n})},[L,e,_]),de=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n}=L;re.mutate({printerId:e,amsId:t,trayId:n})},[L,e,re]);(0,y.useEffect)(()=>{if(!b&&e){t({type:`warning`,message:n(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)});return}for(let e of S){let n=e.tray||[];for(let r=0;r=0&&i.remain<15&&i.tray_type){let n=e.id===254||e.id===255,a=!n&&e.id>=128,o=jp(e.id,r,a,n);t({type:`warning`,message:`Low Filament: ${i.tray_type} (${o}) - ${i.remain}% remaining`});return}}}t(null)},[S,b,e,t,n]);let fe=(0,y.useMemo)(()=>{let e=[];for(let t of w){let n=t.tray?.[0]||{id:0,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null},r=v(t.id,0,X9(n)?null:n),i=g[`${t.id}-0`]??null,a=n.remain!=null&&n.remain>=0?n.remain:null,o=i===0&&a!==null&&a>0?null:i;e.push({key:`ht-${t.id}`,label:g2e(t.id),tray:n,isEmpty:X9(n),isActive:oe(t.id)===0,temp:t.temp,humidity:t.humidity,nozzleSide:P(t.id),effectiveFill:r??o??a,onClick:()=>se(t.id,0,X9(n)?null:n)})}for(let t of A){let r=t.id??254,i=k&&O===254?r===254&&a?.active_extruder===1||r===255&&a?.active_extruder===0:O===r,o=r-254,s=v(255,o,X9(t)?null:t),c=g[`255-${o}`]??null,l=t.remain!=null&&t.remain>=0?t.remain:null,u=c===0&&l!==null&&l>0?null:c;e.push({key:`ext-${r}`,label:k?r===254?n(`printers.extL`,`Ext-L`):n(`printers.extR`,`Ext-R`):n(`printers.ext`,`Ext`),tray:t,isEmpty:X9(t),isActive:i,nozzleSide:null,effectiveFill:s??u??l,onClick:()=>H(t)})}return e},[w,A,k,O,a?.active_extruder,n,oe,P,se,H,g,v]);return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:e?b?S.length===0&&A.length===0?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.noData`,`No AMS detected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.ams.connectAms`,`Connect an AMS to see filament slots`)})]})}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-3 h-full`,children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:C.map(e=>(0,G.jsx)(a2e,{unit:e,activeSlot:oe(e.id),onConfigureSlot:se,isDualNozzle:k,nozzleSide:P(e.id),thresholds:j,fillOverrides:g,spoolmanFillOverrides:T},e.id))}),fe.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-3`,children:fe.map(({key:e,label:t,tray:n,isEmpty:r,isActive:i,temp:a,humidity:o,nozzleSide:s,effectiveFill:c,onClick:l})=>{let u=v2e(n.tray_color);return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg px-3 py-2 cursor-pointer hover:bg-bambu-dark-secondary/80 transition-all flex items-center gap-3 ${i?`ring-2 ring-bambu-green`:``}`,onClick:l,children:[(0,G.jsxs)(`div`,{className:`relative w-10 h-10 flex-shrink-0`,children:[r?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:u}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:u,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]}),i&&(0,G.jsx)(`div`,{className:`absolute -bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 bg-bambu-green rounded-full`})]}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-white/50 font-medium truncate`,children:t}),s&&(0,G.jsx)(G9,{side:s})]}),(0,G.jsx)(`div`,{className:`text-sm text-white/80 truncate`,children:r?`Empty`:n.tray_type||`?`}),(a!=null||o!=null)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[a!=null&&(0,G.jsx)(r2e,{temp:a,goodThreshold:j?.tempGood,fairThreshold:j?.tempFair}),o!=null&&(0,G.jsx)(n2e,{humidity:o,goodThreshold:j?.humidityGood,fairThreshold:j?.humidityFair})]})]}),!r&&c!=null&&c>=0&&(0,G.jsx)(`div`,{className:`w-1.5 h-8 bg-bambu-dark-tertiary rounded-full overflow-hidden flex-shrink-0 flex flex-col-reverse`,children:(0,G.jsx)(`div`,{className:`w-full rounded-full`,style:{height:`${c}%`,backgroundColor:Np(c)}})})]},e)})})]}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsx)(`div`,{className:`text-center text-white/50`,children:(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)})})}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.noPrinter`,`No printer selected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.ams.selectPrinter`,`Select a printer from the top bar`)})]})})}),F&&e&&(0,G.jsx)(mU,{isOpen:!!F,onClose:()=>I(null),printerId:e,slotInfo:F,printerModel:_2e(o?.model??null)||void 0,nozzleDiameter:Gp(a,F.amsId),fullScreen:!0,onSuccess:()=>{r.invalidateQueries({queryKey:[`slotPresets`,e]}),r.invalidateQueries({queryKey:[`printerStatus`,e]})}}),L&&e&&(()=>{let t=te(L.amsId,L.trayId),r=ne(L.amsId,L.trayId,L.tray),i=u?p.find(t=>t.printer_id===e&&t.ams_id===L.amsId&&t.tray_id===L.trayId):void 0,a=i?m.find(e=>e.id===i.spoolman_spool_id)??null:null;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:()=>R(null)}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-sm mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[L.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:{backgroundColor:`#${L.trayColor.slice(0,6)}`}}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:L.location}),L.traySubBrands&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,L.traySubBrands,`)`]})]}),(0,G.jsx)(`button`,{onClick:()=>R(null),className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-2`,children:[!u&&t?.spool&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`inventory.assignedSpool`,`Assigned spool`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t.spool.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(t.spool.rgba)}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[t.spool.brand?`${t.spool.brand} `:``,t.spool.material,t.spool.subtype?` ${t.spool.subtype}`:``,t.spool.color_name?` - ${t.spool.color_name}`:``]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0 ml-auto`,children:[`#`,t.spool.id]})]})]}),u&&r&&!a&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`spoolman.linkedSpool`,`Linked spool`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[`Spoolman #`,r.id,r.remaining_weight==null?``:` (${Math.round(r.remaining_weight)}g)`]})})]}),u&&a&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`inventory.assignedSpool`,`Assigned spool`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[a.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(a.rgba)}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[a.brand?`${a.brand} `:``,a.material,a.subtype?` ${a.subtype}`:``,a.color_name?` - ${a.color_name}`:``]})]})]}),(0,G.jsxs)(`button`,{onClick:ce,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-blue transition-colors text-left`,children:[(0,G.jsx)(nu,{className:`w-5 h-5 text-bambu-blue flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`configureAmsSlot.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.configureDesc`,`Set filament preset, K-profile, and color`)})]})]}),!u&&(Kp(L?.tray)?null:t?(0,G.jsxs)(`button`,{onClick:de,disabled:re.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`,`Unassign`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unassignDesc`,`Remove inventory spool from this slot`)})]})]}):(0,G.jsxs)(`button`,{onClick:le,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.assignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.assignDesc`,`Track a spool from your inventory`)})]})]})),u&&(r?.id?(0,G.jsxs)(`button`,{onClick:()=>ie.mutate(r.id),disabled:ie.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left active:opacity-50`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unlinkDesc`,`Remove Spoolman link from this slot`)})]})]}):a?(0,G.jsxs)(`button`,{onClick:()=>ae.mutate(a.id),disabled:ae.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left active:opacity-50`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unassignDesc`,`Remove inventory spool from this slot`)})]})]}):(0,G.jsxs)(`button`,{onClick:ue,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.assignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.linkDesc`,`Link a Spoolman spool to this slot`)})]})]}))]})]})]})})(),z&&(0,G.jsx)(EH,{isOpen:!!z,onClose:()=>{B(null),r.invalidateQueries({queryKey:[`spool-assignments`,e]}),r.invalidateQueries({queryKey:[`spool-assignments`]})},printerId:z.printerId,amsId:z.amsId,trayId:z.trayId,trayInfo:z.trayInfo,spoolmanEnabled:!!u}),V&&(0,G.jsx)(wH,{isOpen:!!V,onClose:()=>ee(null),tagUid:V.tagUid,trayUuid:V.trayUuid,printerId:V.printerId,amsId:V.amsId,trayId:V.trayId})]})}function b2e({type:e,deviceId:t,onClose:n}){let{t:r}=U(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!i&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,n]);let f=(0,y.useCallback)(async()=>{a(!0),s(``),l(``),d(!0);try{s(r(`spoolbuddy.diagnostic.queuing`,`Queuing diagnostic on device... -`)),await Od.queueDiagnostics(t,e);let n=null,i=0;for(;i<60&&!n;){await new Promise(e=>setTimeout(e,500));try{n=await Od.getDiagnosticResult(t,e);break}catch{i++,i%4==0&&s(e=>e+`.`)}}if(!n)throw Error(`Diagnostic timed out - device did not report results`);s(n.output),n.success||l(`Exit code: ${n.exit_code}`)}catch(e){l(e instanceof Error?e.message:`Unknown error`),s(``)}finally{a(!1)}},[e,t,r]);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 animate-fade-in`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg shadow-xl w-full max-w-2xl mx-4 max-h-[80vh] flex flex-col animate-slide-up`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center p-4 border-b border-zinc-700`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e===`scale`?r(`spoolbuddy.diagnostic.scaleTitle`,`Scale Diagnostic`):e===`read_tag`?r(`spoolbuddy.diagnostic.readTagTitle`,`Read Tag Diagnostic`):r(`spoolbuddy.diagnostic.nfcTitle`,`NFC Reader Diagnostic`)}),(0,G.jsx)(`button`,{onClick:n,className:`text-zinc-400 hover:text-white transition-colors`,"aria-label":`Close`,children:(0,G.jsx)(nd,{size:20})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-auto p-4 bg-black/50 font-mono text-sm`,children:i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-green-400`,children:[(0,G.jsx)(`div`,{className:`animate-spin w-4 h-4 border-2 border-green-400 border-t-transparent rounded-full`}),(0,G.jsx)(`span`,{children:r(`spoolbuddy.diagnostic.running`,`Running diagnostic on device...`)})]}):o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`text-green-400 whitespace-pre-wrap break-words`,children:o}),c&&(0,G.jsxs)(`div`,{className:`text-red-400 mt-2`,children:[`❌ `,c]})]}):u?(0,G.jsx)(`div`,{children:c?(0,G.jsxs)(`div`,{className:`text-red-400`,children:[`ERROR: `,c]}):(0,G.jsx)(`span`,{className:`text-green-400`,children:r(`spoolbuddy.diagnostic.completed`,`Diagnostic completed successfully.`)})}):(0,G.jsxs)(`div`,{className:`text-zinc-500`,children:[r(`spoolbuddy.diagnostic.clickStart`,`Click "Run Diagnostic" to start the hardware diagnostic on`),` `,t,`.`]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 p-4 border-t border-zinc-700 bg-zinc-800`,children:[(0,G.jsx)(`button`,{onClick:f,disabled:i,className:`flex-1 flex items-center justify-center gap-2 bg-green-600 hover:bg-green-700 disabled:bg-gray-600 disabled:cursor-not-allowed px-4 py-2 rounded font-semibold text-white transition-colors`,children:i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full`}),r(`spoolbuddy.diagnostic.runningBtn`,`Running...`)]}):u?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Gl,{size:16}),r(`spoolbuddy.diagnostic.runAgain`,`Run Again`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Nl,{size:16}),r(`spoolbuddy.diagnostic.runBtn`,`Run Diagnostic`)]})}),(0,G.jsx)(`button`,{onClick:n,className:`px-4 py-2 rounded bg-zinc-700 hover:bg-zinc-600 text-white font-semibold transition-colors`,children:r(`spoolbuddy.diagnostic.close`,`Close`)})]})]})})}function x2e(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:`${Math.floor(e/3600)}h ${Math.floor(e%3600/60)}m`}function S2e(e){if(!e)return`-`;let t=rp(e);return t?t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})+` `+t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):`-`}var C2e=[{label:`Off`,value:0},{label:`1m`,value:60},{label:`2m`,value:120},{label:`5m`,value:300},{label:`10m`,value:600},{label:`30m`,value:1800}];function w2e({device:e}){let{t}=U(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null);return(0,y.useEffect)(()=>{!i&&e.backend_url&&a(e.backend_url)},[e.backend_url,i]),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.nfcReader`,`NFC Reader`)}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.type`,`Type`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:e.nfc_reader_type||`N/A`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.connection`,`Connection`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:e.nfc_connection||`N/A`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.status.status`,`Status`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${e.nfc_ok?`bg-green-500`:e.nfc_reader_type?`bg-red-500`:`bg-zinc-600`}`}),(0,G.jsx)(`span`,{className:e.nfc_ok?`text-green-400`:e.nfc_reader_type?`text-red-400`:`text-zinc-500`,children:e.nfc_ok?t(`spoolbuddy.status.nfcReady`,`Ready`):e.nfc_reader_type?t(`common.error`,`Error`):t(`spoolbuddy.settings.notConnected`,`N/A`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.deviceInfo`,`Device Info`)}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.hostname`,`Host`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 truncate ml-2`,children:e.hostname})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`IP`}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:e.ip_address})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.uptime`,`Uptime`)}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:x2e(e.uptime_s)})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`ID`}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono truncate ml-2`,children:e.device_id})]})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 space-y-2`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300`,children:t(`spoolbuddy.settings.systemConfig`,`Backend & Auth`)}),(0,G.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),placeholder:`http://192.168.1.100:5000`,className:`w-full px-2 py-1.5 rounded bg-zinc-900 border border-zinc-700 text-zinc-100 text-xs`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:t(`spoolbuddy.settings.apiTokenPlaceholder`,`API token`),className:`flex-1 px-2 py-1.5 rounded bg-zinc-900 border border-zinc-700 text-zinc-100 text-xs`}),(0,G.jsx)(`button`,{onClick:async()=>{if(!i.trim()){d({type:`error`,text:t(`spoolbuddy.settings.systemFieldsRequired`,`Backend URL is required.`)});return}l(!0),d(null);try{await Od.updateSystemConfig(e.device_id,i.trim(),o.trim()||void 0),d({type:`ok`,text:t(`spoolbuddy.settings.systemQueued`,`Config queued.`)})}catch(e){d({type:`error`,text:e instanceof Error?e.message:t(`common.error`,`Error`)})}finally{l(!1)}},disabled:c,className:`px-3 py-1.5 rounded bg-green-700 hover:bg-green-600 disabled:bg-zinc-700 text-xs font-medium text-zinc-100`,children:t(`spoolbuddy.settings.saveConfig`,`Save`)})]}),u&&(0,G.jsx)(`div`,{className:`text-xs ${u.type===`ok`?`text-green-400`:`text-red-400`}`,children:u.text})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 flex flex-col gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>r(`nfc`),className:`flex-1 bg-blue-700 hover:bg-blue-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(Yu,{className:`w-4 h-4 text-blue-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-blue-100`,children:t(`spoolbuddy.settings.nfcDiagnostic`,`NFC Diagnostic`)})]}),(0,G.jsxs)(`button`,{onClick:()=>r(`scale`),className:`flex-1 bg-yellow-700 hover:bg-yellow-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-yellow-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-yellow-100`,children:t(`spoolbuddy.settings.scaleDiagnostic`,`Scale Diagnostic`)})]}),(0,G.jsxs)(`button`,{onClick:()=>r(`read_tag`),className:`flex-1 bg-emerald-700 hover:bg-emerald-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-emerald-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-emerald-100`,children:t(`spoolbuddy.settings.readTagDiagnostic`,`Read Tag`)})]})]})]}),n&&e&&(0,G.jsx)(b2e,{type:n,deviceId:e.device_id,onClose:()=>r(null)})]})}function T2e({device:e,onBrightnessChange:t}){let{t:n}=U(),[r,i]=(0,y.useState)(e.display_brightness),[a,o]=(0,y.useState)(e.display_blank_timeout),[s,c]=(0,y.useState)(!1),l=(0,y.useRef)(void 0),u=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{i(e.display_brightness),o(e.display_blank_timeout)},[e.display_brightness,e.display_blank_timeout]);let d=(0,y.useCallback)(()=>{c(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>c(!1),1500)},[]),f=(0,y.useCallback)((t,n)=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{Od.updateDisplay(e.device_id,t,n).then(()=>d()).catch(e=>console.error(`Failed to update display:`,e))},300)},[e.device_id,d]),p=e=>{i(e),t(e),f(e,a)},m=e=>{o(e),f(r,e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300`,children:n(`spoolbuddy.settings.brightness`,`Brightness`)}),s&&(0,G.jsxs)(`span`,{className:`text-xs text-green-400 flex items-center gap-1 animate-pulse`,children:[(0,G.jsx)(`svg`,{className:`w-3 h-3`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:3,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M5 13l4 4L19 7`})}),n(`spoolbuddy.settings.saved`,`Saved`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 text-zinc-500 flex-shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z`})}),(0,G.jsx)(`input`,{type:`range`,min:0,max:100,value:r,onChange:e=>p(parseInt(e.target.value)),className:`flex-1 h-2 bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-sm font-mono text-zinc-400 w-10 text-right`,children:[r,`%`]})]}),!e.has_backlight&&(0,G.jsx)(`p`,{className:`text-xs text-zinc-600 mt-2`,children:n(`spoolbuddy.settings.noBacklight`,`No DSI backlight detected. Brightness control requires a DSI display.`)})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1`,children:n(`spoolbuddy.settings.screenBlank`,`Screen Blank Timeout`)}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-3`,children:n(`spoolbuddy.settings.screenBlankDesc`,`Screen turns off after inactivity. Touch to wake.`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:C2e.map(e=>(0,G.jsx)(`button`,{onClick:()=>m(e.value),className:`px-3 py-2 rounded-lg text-sm font-medium transition-colors min-h-[40px] ${a===e.value?`bg-green-600 text-white`:`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`}`,children:e.label},e.value))})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-600 text-center`,children:n(`spoolbuddy.settings.displayNote`,`Brightness is applied as a software filter.`)})]})}function E2e({step:e,labels:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center w-16 shrink-0 pt-1`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center w-7 h-7 rounded-full text-xs font-bold ${e===`tare`?`bg-green-600 text-white`:`bg-green-600/20 text-green-400`}`,children:e===`weight`?(0,G.jsx)(`svg`,{className:`w-3.5 h-3.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:3,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M5 13l4 4L19 7`})}):`1`}),(0,G.jsx)(`span`,{className:`text-[10px] mt-0.5 ${e===`tare`?`text-green-400 font-medium`:`text-green-400/60`}`,children:t.tare}),(0,G.jsx)(`div`,{className:`w-px h-5 my-1 ${e===`weight`?`bg-green-600/40`:`bg-zinc-700`}`}),(0,G.jsx)(`div`,{className:`flex items-center justify-center w-7 h-7 rounded-full text-xs font-bold ${e===`weight`?`bg-green-600 text-white`:`bg-zinc-700 text-zinc-500`}`,children:`2`}),(0,G.jsx)(`span`,{className:`text-[10px] mt-0.5 ${e===`weight`?`text-green-400 font-medium`:`text-zinc-600`}`,children:t.weight})]})}function D2e({device:e,weight:t,weightStable:n,rawAdc:r}){let{t:i}=U(),a=co(),[o,s]=(0,y.useState)(`idle`),[c,l]=(0,y.useState)(`500`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=(0,y.useRef)(null);(0,y.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);let b=(0,y.useCallback)(e=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>h(null),e)},[]);(0,y.useEffect)(()=>{if(!g)return;let e=()=>Date.now()-g.startedAtMs,t=setInterval(()=>{a.invalidateQueries({queryKey:[`spoolbuddy-devices`]})},1e3),n=setTimeout(()=>{_(null),h({type:`error`,msg:i(`spoolbuddy.settings.tareTimedOut`,`Tare timed out — is the SpoolBuddy daemon running?`)}),b(5e3)},Math.max(0,15e3-e()));return()=>{clearInterval(t),clearTimeout(n)}},[g,a,i,b]),(0,y.useEffect)(()=>{g&&(e?.last_calibrated_at??null)!==g.snapshot&&(_(null),h({type:`ok`,msg:i(`spoolbuddy.settings.tareComplete`,`Tare complete!`)}),b(3e3))},[e?.last_calibrated_at,g,i,b]);let x=e=>{e===`backspace`?l(e=>e.slice(0,-1)||``):e===`.`&&!c.includes(`.`)?l(e=>e+`.`):e>=`0`&&e<=`9`&&l(t=>t===`0`?e:t+e)};return o===`idle`?(0,G.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-lg font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`})]}),(0,G.jsxs)(`div`,{className:`text-xs text-zinc-500 text-right`,children:[(0,G.jsxs)(`span`,{children:[i(`spoolbuddy.settings.tareOffset`,`Tare`),`: `,e.tare_offset]}),(0,G.jsx)(`span`,{className:`mx-1.5`,children:`·`}),(0,G.jsxs)(`span`,{children:[i(`spoolbuddy.settings.calFactor`,`Factor`),`: `,e.calibration_factor.toFixed(2)]})]})]}),e.last_calibrated_at&&(0,G.jsxs)(`div`,{className:`text-xs text-zinc-600 mt-1`,children:[i(`spoolbuddy.settings.lastCalibrated`,`Last calibrated`),`: `,S2e(e.last_calibrated_at)]})]}),m&&(0,G.jsx)(`div`,{className:`rounded-lg px-3 py-2 mb-3 text-sm ${m.type===`ok`?`bg-green-900/30 text-green-300 border border-green-800`:`bg-red-900/30 text-red-300 border border-red-800`}`,children:m.msg}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:async()=>{p(!0),h(null),v.current&&=(clearTimeout(v.current),null);let t=e?.last_calibrated_at??null;try{await Od.tare(e.device_id),h({type:`ok`,msg:i(`spoolbuddy.settings.tareSet`,`Tare command sent. Waiting for device...`)}),_({snapshot:t,startedAtMs:Date.now()})}catch{h({type:`error`,msg:i(`spoolbuddy.settings.tareFailed`,`Failed to send tare command`)}),b(5e3)}finally{p(!1)}},disabled:f,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-200 hover:bg-zinc-600 disabled:opacity-40 transition-colors min-h-[44px] flex items-center justify-center gap-2`,children:[f&&(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),i(`spoolbuddy.weight.tare`,`Tare`)]}),(0,G.jsx)(`button`,{onClick:()=>{s(`tare`),h(null)},className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:i(`spoolbuddy.weight.calibrate`,`Calibrate`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(E2e,{step:o,labels:{tare:i(`spoolbuddy.weight.tare`,`Tare`),weight:i(`spoolbuddy.settings.knownWeight`,`Known weight`)}}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-zinc-800 rounded-lg px-3 py-1.5 mb-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-sm font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`}),(0,G.jsx)(`span`,{className:`text-xs ml-auto ${n?`text-green-400`:`text-amber-400`}`,children:n?i(`spoolbuddy.settings.stable`,`Stable`):i(`spoolbuddy.settings.settling`,`Settling...`)})]}),m&&(0,G.jsx)(`div`,{className:`rounded-lg px-3 py-1.5 mb-1.5 text-xs ${m.type===`ok`?`bg-green-900/30 text-green-300 border border-green-800`:`bg-red-900/30 text-red-300 border border-red-800`}`,children:m.msg}),o===`tare`?(0,G.jsx)(`p`,{className:`text-sm text-zinc-300 mb-3`,children:i(`spoolbuddy.settings.calStep1`,`Remove all items from the scale and press Set Zero.`)}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-zinc-400 shrink-0`,children:i(`spoolbuddy.settings.knownWeight`,`Known weight`)}),(0,G.jsxs)(`div`,{className:`flex-1 bg-zinc-900 border border-zinc-600 rounded px-3 py-1 text-right text-lg font-mono text-zinc-100`,children:[c||`0`,(0,G.jsx)(`span`,{className:`text-zinc-500 ml-1`,children:`g`})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1 mb-1.5`,children:[`7`,`8`,`9`,`backspace`,`4`,`5`,`6`,`.`,`1`,`2`,`3`,`0`].map(e=>(0,G.jsx)(`button`,{onClick:()=>x(e),className:`rounded text-lg font-medium transition-colors h-[48px] active:scale-95 ${e===`backspace`?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`:`bg-zinc-800 text-zinc-100 hover:bg-zinc-700 border border-zinc-700`}`,children:e===`backspace`?`⌫`:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>{s(`idle`),h(null)},className:`flex-1 px-4 py-2 rounded-lg text-sm bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors h-[40px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsxs)(`button`,{onClick:async()=>{if(o===`tare`){p(!0),h(null);try{d(r),await Od.tare(e.device_id),h({type:`ok`,msg:i(`spoolbuddy.settings.zeroSet`,`Zero point set. Place known weight on scale.`)}),s(`weight`)}catch{h({type:`error`,msg:i(`spoolbuddy.settings.tareFailed`,`Failed to send tare command`)})}finally{p(!1)}}else if(o===`weight`){let t=parseFloat(c);if(r===null||!t||t<=0)return;p(!0),h(null);try{await Od.setCalibrationFactor(e.device_id,t,r,u??void 0),h({type:`ok`,msg:i(`spoolbuddy.settings.calibrationDone`,`Calibration complete!`)}),b(3e3),s(`idle`)}catch{h({type:`error`,msg:i(`spoolbuddy.settings.calibrationFailed`,`Calibration failed`)}),b(5e3)}finally{p(!1)}}},disabled:f,className:`flex-1 px-4 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors h-[40px] flex items-center justify-center gap-2`,children:[f&&(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),o===`tare`?i(`spoolbuddy.settings.setZero`,`Set Zero`):i(`spoolbuddy.settings.calibrateNow`,`Calibrate`)]})]})]})]})}function O2e({device:e}){let{t}=U(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=e.update_status===`pending`||e.update_status===`updating`;(0,y.useEffect)(()=>{u&&n===`applying`&&r(null)},[u,n]),(0,y.useEffect)(()=>{let e=()=>{u&&setTimeout(()=>window.location.reload(),1e3)};return window.addEventListener(`spoolbuddy-online`,e),()=>window.removeEventListener(`spoolbuddy-online`,e)},[u]);let{data:d,refetch:f}=K({queryKey:[`spoolbuddy-update-check`,e.device_id],queryFn:()=>Od.checkDaemonUpdate(e.device_id),staleTime:0}),{data:p}=K({queryKey:[`spoolbuddy-ssh-key`],queryFn:()=>Od.getSSHPublicKey(),enabled:o,staleTime:1/0}),m=async()=>{r(`checking`),a(null);try{await f()}finally{r(null)}},h=async()=>{r(`applying`),a(null);try{await Od.triggerUpdate(e.device_id)}catch(e){a(e instanceof Error?e.message:`Failed to trigger update`),r(null)}},g=n!=null||u,_=()=>{p?.public_key&&(navigator.clipboard.writeText(p.public_key),l(!0),setTimeout(()=>l(!1),2e3))},v=e.firmware_version||(d?.current_version&&d.current_version!==`0.0.0`?d.current_version:null);return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.currentVersion`,`Current Version`)}),(0,G.jsx)(`span`,{className:`text-zinc-200 font-mono`,children:v||(0,G.jsx)(`span`,{className:`text-zinc-500 italic text-xs`,children:t(`spoolbuddy.settings.versionPending`,`Waiting for daemon...`)})})]}),g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin text-green-400 flex-shrink-0`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),(0,G.jsx)(`span`,{className:`text-green-300 text-xs`,children:n===`checking`?t(`spoolbuddy.settings.checking`,`Checking for updates...`):e.update_message||t(`spoolbuddy.settings.updateWaiting`,`Updating...`)})]}):e.update_status===`error`?(0,G.jsx)(`p`,{className:`text-xs text-red-300`,children:e.update_message||t(`spoolbuddy.settings.updateFailed`,`Update failed`)}):i?(0,G.jsx)(`p`,{className:`text-xs text-red-300`,children:i}):d?.update_available?(0,G.jsxs)(`p`,{className:`text-xs text-green-300`,children:[t(`spoolbuddy.settings.updateAvailable`,`Update available`),`: `,v,` → `,d.latest_version]}):null,!g&&(d?.update_available?(0,G.jsx)(`button`,{onClick:h,disabled:!e.online,className:`w-full px-3 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors`,children:e.online?t(`spoolbuddy.settings.applyUpdate`,`Apply Update`):t(`spoolbuddy.settings.deviceOffline`,`Device Offline`)}):(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:m,className:`flex-1 px-3 py-2 rounded-lg text-xs font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors`,children:t(`spoolbuddy.settings.checkUpdates`,`Check for Updates`)}),(0,G.jsx)(`button`,{onClick:h,disabled:!e.online,className:`px-3 py-2 rounded-lg text-xs font-medium bg-zinc-700 text-zinc-400 hover:bg-zinc-600 hover:text-zinc-200 disabled:opacity-40 transition-colors`,children:t(`spoolbuddy.settings.forceUpdate`,`Force Update`)})]}))]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`w-full flex justify-between items-center text-xs`,children:[(0,G.jsx)(`span`,{className:`font-medium text-zinc-400`,children:t(`spoolbuddy.settings.sshSetup`,`SSH Setup`)}),(0,G.jsx)(`svg`,{className:`w-3 h-3 text-zinc-500 transition-transform ${o?`rotate-180`:``}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19 9l-7 7-7-7`})})]}),o&&(0,G.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500`,children:t(`spoolbuddy.settings.sshDescription`,`SSH key is deployed automatically. For manual setup, add this key to ~/.ssh/authorized_keys on the device.`)}),p?.public_key?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`pre`,{className:`bg-zinc-900 rounded p-2 text-[10px] text-zinc-400 font-mono break-all whitespace-pre-wrap`,children:p.public_key}),(0,G.jsx)(`button`,{onClick:_,className:`absolute top-1 right-1 px-1.5 py-0.5 rounded text-[10px] bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors`,children:c?t(`common.copied`,`Copied!`):t(`common.copy`,`Copy`)})]}):(0,G.jsx)(`span`,{className:`text-[10px] text-zinc-500 italic`,children:t(`spoolbuddy.settings.sshKeyLoading`,`Loading...`)})]})]})]})}function k2e({percent:e,color:t}){return(0,G.jsx)(`div`,{className:`w-full h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${t}`,style:{width:`${Math.min(100,Math.max(0,e))}%`}})})}function A2e(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`}function j2e({device:e}){let{t}=U(),n=e.system_stats;if(!n)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`p`,{className:`text-sm text-zinc-500`,children:t(`spoolbuddy.settings.systemStatsWaiting`,`Waiting for system stats...`)})});let r=n.memory,i=n.disk,a=(n.cpu_temp_c??0)>=80?`text-red-400`:(n.cpu_temp_c??0)>=65?`text-amber-400`:`text-green-400`,o=(r?.percent??0)>=90?`bg-red-500`:(r?.percent??0)>=70?`bg-amber-500`:`bg-green-500`,s=(i?.percent??0)>=90?`bg-red-500`:(i?.percent??0)>=70?`bg-amber-500`:`bg-green-500`;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:`CPU`}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.cores`,`Cores`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.cpu_count??`-`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.loadAvg`,`Load Avg`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.load_avg?n.load_avg.join(` / `):`-`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.temp`,`Temp`)}),(0,G.jsx)(`span`,{className:`font-mono font-medium ${a}`,children:n.cpu_temp_c==null?`-`:`${n.cpu_temp_c}\u00B0C`})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.memory`,`Memory`)}),r?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(k2e,{percent:r.percent??0,color:o}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.used`,`Used`)}),(0,G.jsxs)(`span`,{className:`text-zinc-300 font-mono`,children:[r.used_mb,` / `,r.total_mb,` MB`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.available`,`Free`)}),(0,G.jsxs)(`span`,{className:`text-zinc-300 font-mono`,children:[r.available_mb,` MB`]})]})]})]}):(0,G.jsx)(`span`,{className:`text-xs text-zinc-500`,children:`-`})]})]}),(0,G.jsx)(`div`,{className:`bg-zinc-800 rounded-lg px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 shrink-0`,children:t(`spoolbuddy.settings.disk`,`Disk`)}),i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`flex-1`,children:(0,G.jsx)(k2e,{percent:i.percent??0,color:s})}),(0,G.jsxs)(`span`,{className:`text-xs text-zinc-300 font-mono shrink-0`,children:[i.used_gb,` / `,i.total_gb,` GB`]})]}):(0,G.jsx)(`span`,{className:`text-xs text-zinc-500`,children:`-`})]})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1.5`,children:t(`spoolbuddy.settings.osInfo`,`OS`)}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[n.os?.os&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.distro`,`Distro`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 truncate ml-2`,children:n.os.os})]}),n.os?.kernel&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.kernel`,`Kernel`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono truncate ml-2`,children:n.os.kernel})]}),n.os?.arch&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.arch`,`Arch`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.os.arch})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1.5`,children:t(`spoolbuddy.settings.runtime`,`Runtime`)}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[n.os?.python&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`Python`}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.os.python})]}),n.system_uptime_s!=null&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.systemUptime`,`Uptime`)}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:A2e(n.system_uptime_s)})]})]})]})]})]})}function M2e(){let{sbState:e,setDisplayBrightness:t}=lr(),{t:n}=U(),[r,i]=(0,y.useState)(`device`),{data:a=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:1e4}),o=e.deviceId?a.find(t=>t.device_id===e.deviceId)??a[0]:a[0],s=[{id:`device`,label:n(`spoolbuddy.settings.tabDevice`,`Device`)},{id:`display`,label:n(`spoolbuddy.settings.tabDisplay`,`Display`)},{id:`scale`,label:n(`spoolbuddy.settings.tabScale`,`Scale`)},{id:`updates`,label:n(`spoolbuddy.settings.tabUpdates`,`Updates`)},{id:`system`,label:n(`spoolbuddy.settings.tabSystem`,`System`)}];return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsx)(`h1`,{className:`text-xl font-semibold text-zinc-100 mb-3`,children:n(`spoolbuddy.nav.settings`,`Settings`)}),(0,G.jsx)(`div`,{className:`flex gap-1 bg-zinc-800/50 rounded-lg p-1 mb-4`,children:s.map(e=>(0,G.jsx)(`button`,{onClick:()=>i(e.id),className:`flex-1 px-2 py-2 rounded-md text-sm font-medium transition-colors min-h-[36px] ${r===e.id?`bg-zinc-700 text-zinc-100`:`text-zinc-500 hover:text-zinc-300`}`,children:e.label},e.id))}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:o?(0,G.jsxs)(G.Fragment,{children:[r===`device`&&(0,G.jsx)(w2e,{device:o}),r===`display`&&(0,G.jsx)(T2e,{device:o,onBrightnessChange:t}),r===`scale`&&(0,G.jsx)(D2e,{device:o,weight:e.weight,weightStable:e.weightStable,rawAdc:e.rawAdc}),r===`updates`&&(0,G.jsx)(O2e,{device:o}),r===`system`&&(0,G.jsx)(j2e,{device:o})]}):(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`div`,{className:`text-center text-zinc-500`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.settings.noDevice`,`No SpoolBuddy device found`)})})})})]})}function N2e({device:e,weight:t,weightStable:n,rawAdc:r}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(`idle`),[l,u]=(0,y.useState)(`500`),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),h=e=>{e===`backspace`?u(e=>e.slice(0,-1)||``):e===`.`&&!l.includes(`.`)?u(e=>e+`.`):e>=`0`&&e<=`9`&&u(t=>t===`0`?e:t+e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-400`,children:i(`spoolbuddy.settings.currentWeight`,`Current weight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-lg font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 mt-3 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:i(`spoolbuddy.settings.tareOffset`,`Tare offset`)}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono`,children:e.tare_offset})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:i(`spoolbuddy.settings.calFactor`,`Cal. factor`)}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono`,children:e.calibration_factor.toFixed(2)})]})]})]}),s===`idle`?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:async()=>{m(!0);try{await Od.tare(e.device_id)}catch(e){console.error(`Failed to tare:`,e)}finally{m(!1)}},disabled:p,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-200 hover:bg-zinc-600 disabled:opacity-40 transition-colors min-h-[44px]`,children:p?`...`:i(`spoolbuddy.weight.tare`,`Tare`)}),(0,G.jsx)(`button`,{onClick:()=>{c(`tare`)},className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:i(`spoolbuddy.weight.calibrate`,`Calibrate`)})]}):(0,G.jsxs)(`div`,{className:`bg-zinc-800 border border-zinc-700 rounded-lg p-3 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-zinc-200`,children:s===`tare`?i(`spoolbuddy.settings.calStep1`,`Step 1: Remove all items from the scale`):i(`spoolbuddy.settings.calStep2`,`Step 2: Place known weight on scale`)}),s===`weight`&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-zinc-400`,children:i(`spoolbuddy.settings.knownWeight`,`Known weight (g)`)}),(0,G.jsxs)(`div`,{className:`flex-1 bg-zinc-900 border border-zinc-600 rounded px-3 py-1.5 text-right text-base font-mono text-zinc-100`,children:[l||`0`,(0,G.jsx)(`span`,{className:`text-zinc-500 ml-1`,children:`g`})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1`,children:[`7`,`8`,`9`,`backspace`,`4`,`5`,`6`,`.`,`1`,`2`,`3`,`0`].map(e=>(0,G.jsx)(`button`,{onClick:()=>h(e),className:`py-2 rounded text-sm font-medium transition-colors min-h-[36px] ${e===`backspace`?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`:`bg-zinc-800 text-zinc-100 hover:bg-zinc-700 border border-zinc-700`}`,children:e===`backspace`?`⌫`:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>c(`idle`),className:`flex-1 px-4 py-2 rounded-lg text-sm bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[40px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:async()=>{if(s===`tare`){o(!0);try{f(r),await Od.tare(e.device_id),c(`weight`)}catch(e){console.error(`Failed to tare:`,e)}finally{o(!1)}}else if(s===`weight`){let t=parseFloat(l);if(r===null||!t||t<=0)return;o(!0);try{await Od.setCalibrationFactor(e.device_id,t,r,d??void 0),c(`idle`)}catch(e){console.error(`Failed to calibrate:`,e)}finally{o(!1)}}},disabled:a,className:`flex-1 px-4 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors min-h-[40px]`,children:a?`...`:s===`tare`?i(`spoolbuddy.settings.setZero`,`Set Zero`):i(`spoolbuddy.settings.calibrateNow`,`Calibrate`)})]})]})]})}function P2e(){let{sbState:e}=lr(),{t}=U(),n=or(),{data:r=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:1e4}),i=e.deviceId?r.find(t=>t.device_id===e.deviceId)??r[0]:r[0];return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`button`,{onClick:()=>n(`/spoolbuddy/settings`),className:`p-1.5 rounded-lg text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 transition-colors`,children:(0,G.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 19l-7-7 7-7`})})}),(0,G.jsx)(`h1`,{className:`text-xl font-semibold text-zinc-100`,children:t(`spoolbuddy.settings.scaleCalibration`,`Scale Calibration`)})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:i?(0,G.jsx)(N2e,{device:i,weight:e.weight,weightStable:e.weightStable,rawAdc:e.rawAdc}):(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`div`,{className:`text-center text-zinc-500`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:t(`spoolbuddy.settings.noDevice`,`No SpoolBuddy device found`)})})})})]})}function F2e({formData:e,printersWithCalibrations:t,selectedProfiles:n,setSelectedProfiles:r,expandedPrinters:i,setExpandedPrinters:a}){let{t:o}=U(),s=e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},c=(e,t,n)=>{let i=`${e}:${t}:${n??`null`}`,a=`${e}:${n??`null`}`;r(e=>{let t=new Set(e);if(t.has(i))t.delete(i);else{for(let e of Array.from(t)){let n=e.split(`:`);`${n[0]}:${n[2]}`===a&&t.delete(e)}t.add(i)}return t})},l=()=>{let n=new Set;for(let{printer:r,calibrations:i}of t){if(!r.connected)continue;let t=i.filter(t=>rU(t,e)),a=new Map;for(let e of t){let t=`${e.extruder_id??`null`}`;a.has(t)||a.set(t,[]),a.get(t).push(e)}for(let[e,t]of a)if(t.length>0){let i=[...t].sort((e,t)=>t.k_value-e.k_value)[0];n.add(`${r.id}:${i.cali_idx}:${e}`)}}r(n)};if(!e.material)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`inventory.selectMaterialFirst`)})});if(t.length===0)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`inventory.noPrintersConfigured`)})});let u=t.reduce((t,{printer:n,calibrations:r})=>n.connected?t+r.filter(t=>rU(t,e)).length:t,0),d=(e,t)=>{let r=`${e.id}:${t.cali_idx}:${t.extruder_id??`null`}`,i=n.has(r);return(0,G.jsxs)(`label`,{className:`flex items-center gap-3 p-3 rounded-lg cursor-pointer transition-all border ${i?`bg-bambu-green/10 border-bambu-green/30`:`bg-bambu-dark border-transparent hover:bg-bambu-dark/80`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i,onChange:()=>c(String(e.id),t.cali_idx,t.extruder_id),className:`w-4 h-4 rounded border-bambu-dark-tertiary text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(`span`,{className:`text-sm font-medium ${i?`text-bambu-green`:`text-white`}`,children:t.name||t.filament_id})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[t.nozzle_diameter&&(0,G.jsxs)(`span`,{className:`text-xs font-mono px-2 py-0.5 rounded bg-bambu-dark text-bambu-gray`,children:[t.nozzle_diameter,`mm`]}),(0,G.jsxs)(`span`,{className:`text-xs font-mono px-2 py-0.5 rounded bg-bambu-dark text-bambu-gray`,children:[`K=`,t.k_value.toFixed(3)]})]})]},`${t.cali_idx}-${t.extruder_id}`)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[o(`inventory.matchingFilter`),`: `,e.brand||o(`inventory.anyBrand`),` / `,e.material,` / `,e.subtype||o(`inventory.anyVariant`)]}),u>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:l,className:`flex items-center gap-1.5 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white hover:border-bambu-green transition-colors`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),o(`inventory.autoSelect`),` (`,u,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-3`,children:t.map(({printer:t,calibrations:n})=>{let r=i.has(String(t.id)),a=n.filter(t=>rU(t,e)),c=a.length,l=a.some(e=>e.extruder_id!==void 0&&e.extruder_id!==null&&e.extruder_id>0),u=a.filter(e=>e.extruder_id===1),f=a.filter(e=>e.extruder_id===0||e.extruder_id===void 0||e.extruder_id===null);return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(String(t.id)),className:`w-full px-4 py-3 flex items-center justify-between bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[r?(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`font-medium text-white`,children:t.name}),c>0?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full bg-bambu-green/20 text-bambu-green`,children:[c,` `,o(c===1?`inventory.match`:`inventory.matches`)]}):(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray`,children:o(`inventory.noMatches`)})]}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-1 rounded-full ${t.connected?`bg-green-500/20 text-green-500`:`bg-bambu-gray/20 text-bambu-gray`}`,children:t.connected?o(`inventory.connected`):o(`inventory.offline`)})]}),r&&(0,G.jsx)(`div`,{className:`px-4 py-3 space-y-3 bg-bambu-dark border-t border-bambu-dark-tertiary`,children:t.connected?c===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:o(`inventory.noKProfilesMatch`)}):l?(0,G.jsxs)(G.Fragment,{children:[u.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.leftNozzle`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>d(t,e))})]}),f.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.rightNozzle`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>d(t,e))})]})]}):(0,G.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>d(t,e))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:o(`inventory.printerOffline`)})})]},t.id)})}),n.size>0&&(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsx)(`span`,{className:`font-semibold`,children:n.size}),` `,o(`inventory.profilesSelected`)]})})]})}var I2e=[`PLA`,`PETG`,`ABS`,`ASA`,`TPU`,`PA`,`PC`,`PVA`,`HIPS`];function L2e(){let{t:e}=U(),{showToast:t}=qd(),{sbState:n}=lr(),[r,i]=(0,y.useState)(`existing`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`idle`),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(null),{data:b}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),x=b!==void 0,S=b?.spoolman_enabled===`true`&&!!b?.spoolman_url,{data:C=[],refetch:w}=K({queryKey:[S?`spoolman-inventory-spools`:`inventory-spools`,`write-tag`],queryFn:()=>S?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),refetchInterval:1e4,enabled:x}),{data:T=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:5e3}),{data:E}=K({queryKey:[`settings`],queryFn:Z.getSettings}),D=T[0],O=n.deviceOnline,k=Lf(E?.currency||`USD`),A=(0,y.useMemo)(()=>{let e;if(r===`existing`)e=C.filter(e=>!e.tag_uid&&!e.archived_at);else if(r===`replace`)e=C.filter(e=>(e.tag_uid||e.tray_uuid)&&!e.archived_at);else return[];if(s){let t=s.toLowerCase();e=e.filter(e=>e.material?.toLowerCase().includes(t)||e.color_name?.toLowerCase().includes(t)||e.brand?.toLowerCase().includes(t)||e.subtype?.toLowerCase().includes(t))}return e},[C,r,s]),j=(0,y.useCallback)(e=>{let t=e.detail;(t.sak??t.data?.sak)===0&&(g(!0),v(t.tag_uid??t.data?.tag_uid??null))},[]),M=(0,y.useCallback)(e=>{let t=e.detail;g(!0),v(t.tag_uid??t.data?.tag_uid??null)},[]),N=(0,y.useCallback)(()=>{g(!1),v(null)},[]),P=(0,y.useCallback)(t=>{let n=t.detail;(n.spool_id===a?.id||n.data?.spool_id===a?.id)&&(u(`success`),f(e(`spoolbuddy.writeTag.writeSuccess`,`Tag written successfully!`)),w(),setTimeout(()=>{u(`idle`),o(null),f(``)},5e3))},[a,e,w]),F=(0,y.useCallback)(t=>{let n=t.detail;(n.spool_id===a?.id||n.data?.spool_id===a?.id)&&(u(`error`),f(n.message??n.data?.message??e(`spoolbuddy.writeTag.writeFailed`,`Write failed`)))},[a,e]);(0,y.useEffect)(()=>(window.addEventListener(`spoolbuddy-unknown-tag`,j),window.addEventListener(`spoolbuddy-tag-matched`,M),window.addEventListener(`spoolbuddy-tag-removed`,N),window.addEventListener(`spoolbuddy-tag-written`,P),window.addEventListener(`spoolbuddy-tag-write-failed`,F),()=>{window.removeEventListener(`spoolbuddy-unknown-tag`,j),window.removeEventListener(`spoolbuddy-tag-matched`,M),window.removeEventListener(`spoolbuddy-tag-removed`,N),window.removeEventListener(`spoolbuddy-tag-written`,P),window.removeEventListener(`spoolbuddy-tag-write-failed`,F)}),[j,M,N,P,F]),(0,y.useEffect)(()=>{o(null),u(`idle`),f(``),c(``)},[r]);let I=async()=>{if(!(!a||!D)){u(`writing`),f(e(`spoolbuddy.writeTag.waiting`,`Waiting for SpoolBuddy...`));try{let e=await Od.writeTag(D.device_id,a.id);if(e?.warnings?.length)for(let n of e.warnings)t(n,`warning`)}catch{u(`error`),f(e(`spoolbuddy.writeTag.queueFailed`,`Failed to queue write command`))}}},L=async()=>{if(D){try{await Od.cancelWrite(D.device_id)}catch{}u(`idle`),f(``)}},R=async()=>{if(!(!a||!R2e(a))){m(!0),u(`idle`),f(``);try{S?await Z.linkTagToSpoolmanSpool(a.id,{tag_uid:``,tray_uuid:``}):await Z.linkTagToSpool(a.id,{tag_uid:``,tray_uuid:``,data_origin:`manual`}),await w(),o(null),u(`success`),f(e(`spoolbuddy.writeTag.untagSuccess`,`Tag removed from spool`)),setTimeout(()=>{u(`idle`),f(``)},2500)}catch{u(`error`),f(e(`spoolbuddy.writeTag.untagFailed`,`Failed to remove tag from spool`))}finally{m(!1)}}},z=(0,y.useCallback)(e=>{o(e),u(`idle`),f(``),w()},[w]),B=a&&O&&l!==`writing`&&l!==`success`;return(0,G.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,G.jsx)(`div`,{className:`flex border-b border-bambu-dark-tertiary shrink-0`,children:[{key:`existing`,label:e(`spoolbuddy.writeTag.tabExisting`,`Existing Spool`)},{key:`new`,label:e(`spoolbuddy.writeTag.tabNew`,`New Spool`)},{key:`replace`,label:e(`spoolbuddy.writeTag.tabReplace`,`Replace Tag`)}].map(e=>(0,G.jsx)(`button`,{onClick:()=>i(e.key),className:`flex-1 py-3 text-sm font-medium transition-colors ${r===e.key?`text-bambu-green border-b-2 border-bambu-green bg-bambu-dark`:`text-zinc-400 hover:text-zinc-200 hover:bg-bambu-dark-tertiary`}`,children:e.label},e.key))}),(0,G.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,G.jsx)(`div`,{className:`flex-1 flex flex-col overflow-hidden border-r border-bambu-dark-tertiary`,children:r===`new`?(0,G.jsx)(B2e,{currencySymbol:k,onCreated:z,selectedSpool:a,spoolmanMode:S,t:e}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`p-3 shrink-0`,children:(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:e(`spoolbuddy.writeTag.searchPlaceholder`,`Search by material, color, brand...`),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-3 pb-3 space-y-2`,children:A.length===0?(0,G.jsx)(`div`,{className:`text-center text-zinc-500 py-8 text-sm`,children:r===`existing`?e(`spoolbuddy.writeTag.noUntaggedSpools`,`No spools without tags`):e(`spoolbuddy.writeTag.noTaggedSpools`,`No spools with tags`)}):A.map(e=>(0,G.jsx)(z2e,{spool:e,selected:a?.id===e.id,showTag:r===`replace`,onClick:()=>{o(e),u(`idle`),f(``)}},e.id))})]})}),(0,G.jsx)(`div`,{className:`w-[340px] flex flex-col items-center justify-center p-6 shrink-0`,children:(0,G.jsx)(V2e,{writeStatus:l,writeMessage:d,selectedSpool:a,tagOnReader:h,tagUid:_,deviceOnline:O,canWrite:!!B,isReplace:r===`replace`,canUntag:r===`replace`&&!!a&&R2e(a),untagging:p,onWrite:I,onUntag:R,onCancel:L,onRetry:()=>{u(`idle`),f(``)},t:e})})]})]})}function R2e(e){return!!(e.tag_uid||e.tray_uuid)}function z2e({spool:e,selected:t,showTag:n,onClick:r}){let i=Math.max(0,e.label_weight-e.weight_used),a=e.label_weight>0?Math.round(i/e.label_weight*100):0;return(0,G.jsxs)(`button`,{onClick:r,className:`w-full flex items-center gap-3 p-3 rounded-lg text-left transition-colors ${t?`bg-bambu-green/15 border border-bambu-green/50`:`bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary border border-transparent`}`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full shrink-0 border border-white/10`,style:e.rgba?Mf(e.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-zinc-400`,children:[e.color_name&&(0,G.jsx)(`span`,{children:e.color_name}),(0,G.jsxs)(`span`,{children:[i,`g / `,e.label_weight,`g (`,a,`%)`]})]}),n&&e.tag_uid&&(0,G.jsx)(`div`,{className:`text-xs text-zinc-500 mt-0.5 font-mono`,children:e.tag_uid})]}),t&&(0,G.jsx)(`svg`,{className:`w-5 h-5 text-bambu-green shrink-0`,fill:`currentColor`,viewBox:`0 0 20 20`,children:(0,G.jsx)(`path`,{fillRule:`evenodd`,d:`M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z`,clipRule:`evenodd`})})]})}function B2e({currencySymbol:e,onCreated:t,selectedSpool:n,spoolmanMode:r,t:i}){let{data:a=[]}=K({queryKey:[r?`spoolman-inventory-spools`:`inventory-spools`,`write-tag-form`],queryFn:()=>r?Z.getSpoolmanInventorySpools(!0):Z.getSpools(!0)}),{data:o}=K({queryKey:[`settings`],queryFn:Z.getSettings}),[s,c]=(0,y.useState)(`simple`),[l,u]=(0,y.useState)(`filament`),[d,f]=(0,y.useState)(f9),[p,m]=(0,y.useState)({}),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)([]),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)([]),[P,F]=(0,y.useState)([]),[I,L]=(0,y.useState)([]),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)([]),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)(new Set),[ie,ae]=(0,y.useState)(new Set);(0,y.useEffect)(()=>{V(ZH())},[]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{if(s===`full`){D(!0);try{let[t,n]=await Promise.allSettled([(async()=>(await Z.getCloudStatus()).is_authenticated?{connected:!0,presets:await Z.getFilamentPresets()}:{connected:!1,presets:[]})(),(async()=>(await Z.orcaCloudStatus()).connected?{connected:!0,presets:(await Z.orcaCloudListProfiles()).filament}:{connected:!1,presets:[]})()]);if(e)return;let r=t.status===`fulfilled`&&t.value.connected,i=n.status===`fulfilled`&&n.value.connected,a=t.status===`fulfilled`?t.value.presets:[],o=n.status===`fulfilled`?n.value.presets:[];T(r||i),k([...a,...o])}catch{e||T(!1)}finally{e||D(!1)}Z.getSpoolCatalog().then(t=>{e||F(t)}).catch(()=>void 0),Z.getColorCatalog().then(t=>{e||L(t)}).catch(()=>void 0),Z.getLocalPresets().then(t=>{e||j(t.filament)}).catch(()=>void 0),Z.getBuiltinFilaments().then(t=>{e||N(t)}).catch(()=>void 0);try{let t=await Z.getPrinters(),n=await Promise.all(t.map(e=>Z.getPrinterStatus(e.id).catch(()=>null))),r=[];for(let e=0;e{e=!0}},[s]),(0,y.useEffect)(()=>{ee.length>0&&ae(new Set(ee.map(e=>String(e.printer.id))))},[ee]);let oe=(0,y.useMemo)(()=>qH(O,new Set,A,M),[O,A,M]),se=(0,y.useMemo)(()=>JH(d.slicer_filament,oe),[d.slicer_filament,oe]),H=(0,y.useMemo)(()=>{let e=KH(O,A),t=I.map(e=>e.manufacturer?.trim()).filter(e=>!!e);return Array.from(new Set([...e,...t])).sort((e,t)=>e.localeCompare(t))},[O,A,I]),ce=(0,y.useMemo)(()=>{let e=I.map(e=>e.material?.trim()).filter(e=>!!e);return Array.from(new Set([...LH,...e])).sort((e,t)=>e.localeCompare(t))},[I]),le=(0,y.useMemo)(()=>{let e=[];for(let t of I){let n=t.manufacturer?.trim(),r=t.material?.trim();n&&r&&e.push({brand:n,material:r})}for(let t of O){let n=GH(t.name);n.brand&&n.material&&e.push({brand:n.brand,material:n.material})}for(let t of A){let n=GH(t.name),r=t.filament_vendor?.trim()||n.brand,i=n.material;r&&i&&e.push({brand:r,material:i})}return e},[O,I,A]),ue=(0,y.useMemo)(()=>{let e=new Map;for(let t of le){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(n)||e.set(n,new Set),e.get(n).add(r)}return e},[le]),de=(0,y.useMemo)(()=>{let e=new Map;for(let t of le){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(r)||e.set(r,new Set),e.get(r).add(n)}return e},[le]),fe=(0,y.useMemo)(()=>YH(H,d.brand),[H,d.brand]),pe=(0,y.useMemo)(()=>YH(ce,d.material),[ce,d.material]),me=(0,y.useMemo)(()=>XH(fe,d.material,de),[fe,d.material,de]),he=(0,y.useMemo)(()=>XH(pe,d.brand,ue),[pe,d.brand,ue]),ge=(e,t)=>{f(n=>({...n,[e]:t})),p[e]&&m(t=>({...t,[e]:void 0}))},_e=e=>{V(t=>QH(e,t))},ve=async e=>{let t=r?Z.saveSpoolmanKProfiles:Z.saveSpoolKProfiles;if(ne.size===0){try{await t(e,[])}catch{}return}let n=[];for(let e of ne){let[t,r,i]=e.split(`:`),a=parseInt(t),o=parseInt(r),s=i===`null`?0:parseInt(i),c=ee.find(e=>e.printer.id===a);if(c){let e=c.calibrations.find(e=>e.cali_idx===o&&(e.extruder_id??0)===s);e&&n.push({printer_id:a,extruder:s,nozzle_diameter:e.nozzle_diameter||`0.4`,k_value:e.k_value,name:e.name||null,cali_idx:e.cali_idx,setting_id:e.setting_id||null})}}n.length>0&&await t(e,n)},ye=async()=>{C(null);let e=o1e(d,s===`simple`?!0:h);if(!e.isValid){m(e.errors),u(`filament`);return}let n=se?.displayName||R||null,a={material:d.material,subtype:d.subtype||null,brand:d.brand||null,color_name:d.color_name||null,rgba:d.rgba||null,extra_colors:d.extra_colors||null,effect_type:d.effect_type||null,label_weight:d.label_weight,core_weight:d.core_weight,core_weight_catalog_id:d.core_weight_catalog_id,weight_used:d.weight_used,slicer_filament:d.slicer_filament||null,slicer_filament_name:n,nozzle_temp_min:null,nozzle_temp_max:null,note:d.note||null,cost_per_kg:d.cost_per_kg,added_full:null,last_used:null,encode_time:null,tag_uid:null,tray_uuid:null,data_origin:null,tag_type:null,last_scale_weight:null,last_weighed_at:null,category:d.category.trim()||null,low_stock_threshold_pct:d.low_stock_threshold_pct};x(!0);try{if(_>1){let e=r?await Z.bulkCreateSpoolmanInventorySpools(a,_):await Z.bulkCreateSpools(a,_),n=r&&e&&typeof e==`object`&&`created`in e?e.created:e;for(let e of n)await ve(e.id);n.length>0&&t(n[0])}else{let e=r?await Z.createSpoolmanInventorySpool(a):await Z.createSpool(a);await ve(e.id),t(e)}}catch{C(i(`spoolbuddy.writeTag.createFailed`,`Failed to create spool`))}finally{x(!1)}},be=`#${(d.rgba||`808080FF`).slice(0,6)}`;return(0,G.jsxs)(`div`,{className:`p-3 space-y-3 overflow-y-auto h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-200`,children:i(`spoolbuddy.writeTag.viewMode`,`View`)}),(0,G.jsxs)(`div`,{className:`flex rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(`simple`),className:`px-3 py-1.5 text-xs font-medium ${s===`simple`?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-zinc-400`}`,children:i(`spoolbuddy.writeTag.simpleView`,`Simple`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(`full`),className:`px-3 py-1.5 text-xs font-medium ${s===`full`?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-zinc-400`}`,children:i(`spoolbuddy.writeTag.fullView`,`Full`)})]})]}),s===`simple`?n?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-6 text-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`div`,{className:`w-12 h-12 rounded-full mb-4 border border-white/10`,style:n.rgba?Mf(n.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`p`,{className:`text-white font-medium`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:n.color_name}),(0,G.jsxs)(`p`,{className:`text-zinc-500 text-xs mt-1`,children:[n.label_weight,`g`]}),(0,G.jsx)(`p`,{className:`text-bambu-green text-sm mt-4`,children:i(`spoolbuddy.writeTag.spoolCreated`,`Spool created! Ready to write.`)})]}):(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.material`,`Material`)}),(0,G.jsx)(`select`,{value:d.material,onChange:e=>ge(`material`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,children:I2e.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.colorName`,`Color Name`)}),(0,G.jsx)(`input`,{type:`text`,value:d.color_name,onChange:e=>ge(`color_name`,e.target.value),placeholder:`Jade White`,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.color`,`Color`)}),(0,G.jsx)(`input`,{type:`color`,value:be,onChange:e=>ge(`rgba`,e.target.value.replace(`#`,``).toUpperCase()+`FF`),className:`w-10 h-9 bg-transparent border border-bambu-dark-tertiary rounded cursor-pointer`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.brand`,`Brand`)}),(0,G.jsx)(`input`,{type:`text`,value:d.brand,onChange:e=>ge(`brand`,e.target.value),placeholder:`Polymaker`,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.weight`,`Weight (g)`)}),(0,G.jsx)(`input`,{type:`number`,value:d.label_weight,onChange:e=>ge(`label_weight`,parseInt(e.target.value)||0),min:0,max:1e4,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`})]}),(0,G.jsx)(`button`,{onClick:ye,disabled:b||!d.material,className:`w-full py-2.5 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-50 disabled:cursor-not-allowed text-white text-sm font-medium rounded transition-colors`,children:b?i(`spoolbuddy.writeTag.creating`,`Creating...`):i(`spoolbuddy.writeTag.createSpool`,`Create Spool`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-200`,children:i(`inventory.quickAdd`,`Quick Add`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(e=>!e),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${h?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4.5 w-4.5 rounded-full bg-white transition-transform ${h?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>u(`filament`),className:`flex-1 py-2.5 text-sm font-medium ${l===`filament`?`bg-bambu-green/15 text-bambu-green`:`bg-bambu-dark-secondary text-zinc-400`}`,children:i(`inventory.filamentInfoTab`,`Filament`)}),!h&&(0,G.jsx)(`button`,{onClick:()=>u(`pa-profile`),className:`flex-1 py-2.5 text-sm font-medium ${l===`pa-profile`?`bg-bambu-green/15 text-bambu-green`:`bg-bambu-dark-secondary text-zinc-400`}`,children:i(`inventory.paProfileTab`,`PA Profile`)})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-3`,children:l===`filament`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(u1e,{formData:d,updateField:ge,cloudAuthenticated:w,loadingCloudPresets:E,presetInputValue:R,setPresetInputValue:z,selectedPresetOption:se,filamentOptions:oe,availableBrands:fe,availableMaterials:pe,suggestedBrands:me,suggestedMaterials:he,quickAdd:h,detailsRequired:!h,quantity:_,onQuantityChange:v,errors:p}),(0,G.jsx)(f1e,{formData:d,updateField:ge,recentColors:B,onColorUsed:_e,catalogColors:I}),(0,G.jsx)(m1e,{formData:d,updateField:ge,spoolCatalog:P,currencySymbol:e,availableCategories:Array.from(new Set(a.map(e=>e.category?.trim()).filter(e=>!!e))).sort((e,t)=>e.localeCompare(t)),globalLowStockThreshold:o?.low_stock_threshold??20})]}):(0,G.jsx)(F2e,{formData:d,updateField:ge,printersWithCalibrations:ee,selectedProfiles:ne,setSelectedProfiles:re,expandedPrinters:ie,setExpandedPrinters:ae})})]}),S&&(0,G.jsx)(`div`,{className:`text-sm text-red-400 bg-red-900/20 border border-red-900/40 rounded-lg px-3 py-2`,children:S}),s===`full`&&(0,G.jsx)(`button`,{onClick:ye,disabled:b,className:`w-full py-3 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-50 disabled:cursor-not-allowed text-white text-sm font-medium rounded transition-colors`,children:b?i(`spoolbuddy.writeTag.creating`,`Creating...`):i(`spoolbuddy.writeTag.createSpool`,`Create Spool`)}),s===`full`&&n&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center p-4 text-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`div`,{className:`w-12 h-12 rounded-full mb-4 border border-white/10`,style:n.rgba?Mf(n.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`p`,{className:`text-white font-medium`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:n.color_name}),(0,G.jsxs)(`p`,{className:`text-zinc-500 text-xs mt-1`,children:[n.label_weight,`g`]}),(0,G.jsx)(`p`,{className:`text-bambu-green text-sm mt-4`,children:i(`spoolbuddy.writeTag.spoolCreated`,`Spool created! Ready to write.`)})]})]})}function V2e({writeStatus:e,writeMessage:t,selectedSpool:n,tagOnReader:r,tagUid:i,deviceOnline:a,canWrite:o,isReplace:s,canUntag:c,untagging:l,onWrite:u,onUntag:d,onCancel:f,onRetry:p,t:m}){if(e===`success`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-green-500/20 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-8 h-8 text-green-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M5 13l4 4L19 7`})})}),(0,G.jsx)(`p`,{className:`text-green-400 font-medium`,children:t}),n&&(0,G.jsxs)(`p`,{className:`text-zinc-400 text-sm`,children:[n.brand?`${n.brand} `:``,n.material,n.subtype?` ${n.subtype}`:``,n.color_name?` - ${n.color_name}`:``]})]});if(e===`error`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-8 h-8 text-red-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})}),(0,G.jsx)(`p`,{className:`text-red-400 font-medium`,children:t}),(0,G.jsx)(`button`,{onClick:p,className:`px-4 py-2 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary text-white text-sm rounded transition-colors`,children:m(`spoolbuddy.writeTag.tryAgain`,`Try Again`)})]});if(e===`writing`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsxs)(`div`,{className:`relative w-16 h-16`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full border-2 border-bambu-green/30 animate-ping`}),(0,G.jsx)(`div`,{className:`absolute inset-2 rounded-full border-2 border-bambu-green/50 animate-pulse`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-bambu-green`})})]}),(0,G.jsx)(`p`,{className:`text-bambu-green font-medium`,children:m(`spoolbuddy.writeTag.writing`,`Writing tag...`)}),(0,G.jsx)(`p`,{className:`text-zinc-500 text-xs`,children:t}),(0,G.jsx)(`button`,{onClick:f,className:`px-4 py-2 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary text-zinc-400 text-sm rounded transition-colors`,children:m(`spoolbuddy.writeTag.cancel`,`Cancel`)})]});if(!a)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-3`,children:[(0,G.jsx)(Z9,{className:`w-12 h-12 text-zinc-600`}),(0,G.jsx)(`p`,{className:`text-zinc-500 text-sm`,children:m(`spoolbuddy.writeTag.deviceOffline`,`SpoolBuddy is offline`)})]});if(!n)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-3`,children:[(0,G.jsx)(Z9,{className:`w-12 h-12 text-zinc-600`}),(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:m(`spoolbuddy.writeTag.selectSpool`,`Select a spool, then place a blank NTAG on the reader`)})]});let h=n.rgba?Mf(n.rgba):{backgroundColor:`#666`};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4 w-full`,children:[(0,G.jsx)(`div`,{className:`relative w-16 h-16`,children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full bg-bambu-green/10`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-bambu-green`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full border-2 border-zinc-600 animate-pulse`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-zinc-500`})})]})}),r?(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`p`,{className:`text-bambu-green text-sm font-medium`,children:m(`spoolbuddy.writeTag.tagReady`,`Tag detected — ready to write`)}),i&&(0,G.jsx)(`p`,{className:`text-zinc-500 text-xs font-mono`,children:i})]}):(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:m(`spoolbuddy.writeTag.placeTag`,`Place an NTAG on the reader`)}),(0,G.jsxs)(`div`,{className:`w-full bg-bambu-dark-secondary rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full border border-white/10 shrink-0`,style:h}),(0,G.jsxs)(`div`,{className:`text-left min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-xs`,children:n.color_name})]})]}),(0,G.jsxs)(`div`,{className:`text-xs text-zinc-500`,children:[n.label_weight,`g`]})]}),s&&n.tag_uid&&(0,G.jsx)(`p`,{className:`text-yellow-500/80 text-xs`,children:m(`spoolbuddy.writeTag.replaceWarning`,`Old tag will be unlinked. New tag will replace it.`)}),(0,G.jsx)(`button`,{onClick:u,disabled:!o,className:`w-full py-3 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-40 disabled:cursor-not-allowed text-white font-medium rounded-lg transition-colors text-sm`,children:s?m(`spoolbuddy.writeTag.replaceTag`,`Replace Tag`):m(`spoolbuddy.writeTag.writeTag`,`Write Tag`)}),s&&c&&(0,G.jsx)(`button`,{onClick:d,disabled:l,className:`w-full py-2.5 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary disabled:opacity-40 disabled:cursor-not-allowed text-zinc-200 rounded-lg transition-colors text-sm`,children:l?m(`spoolbuddy.writeTag.untagging`,`Removing tag...`):m(`spoolbuddy.writeTag.untagSpool`,`Untag Selected Spool`)})]})}function Z9({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z`})]})}var H2e=`spoolbuddy-default-core-weight`;function U2e(){try{let e=localStorage.getItem(H2e);if(e){let t=parseInt(e,10);if(t>=0&&t<=500)return t}}catch{}return 250}function W2e({spool:e,liveScaleWeight:t,persistedGrossWeight:n,onClose:r,onSyncWeight:i,onAssignToAms:a,isAssigned:o,onUnassignFromAms:s,className:c}){let{t:l}=U(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),{data:g}=K({queryKey:[`spool-k-profiles`,e.id],queryFn:()=>Z.getSpoolKProfiles(e.id),enabled:!e.k_profiles||e.k_profiles.length===0,staleTime:300*1e3}),_=e.k_profiles&&e.k_profiles.length>0?e.k_profiles:g,v=Af(e.rgba),b=e.core_weight&&e.core_weight>0?e.core_weight:U2e(),x=t===null?null:Math.round(Math.max(0,t)),S=m??(n===void 0?x:n===null?null:Math.round(Math.max(0,n))),C=Math.round(Math.max(0,(e.label_weight||0)-(e.weight_used||0))),w=x!==null&&x>=10?Math.round(Math.max(0,x-b)):C,T=Math.round(e.label_weight||1e3),E=T>0?Math.min(100,Math.round(w/T*100)):null,D=E===null?`#808080`:E>50?`#22c55e`:E>20?`#eab308`:`#ef4444`,O=Math.max(0,(e.label_weight||0)-(e.weight_used||0))+b,k=x===null?null:x-O,A=k===null?null:Math.abs(k)<=50,j=S??Math.round(O),M=e.nozzle_temp_min!=null&&e.nozzle_temp_max!=null?`${e.nozzle_temp_min}-${e.nozzle_temp_max}\u00B0C`:null,N=e.slicer_filament_name||e.slicer_filament||null,P=e.note?.trim()||null,F=_&&_.length>0?Array.from(new Set(_.map(e=>e.k_value.toFixed(3)))).join(`, `):null,I=async()=>{if(t===null)return;let n=Math.round(Math.max(0,t));d(!0);try{await Od.updateSpoolWeight(e.id,n),h(n),p(!0),i?.(),setTimeout(()=>p(!1),3e3)}catch(e){console.error(`Failed to sync weight:`,e)}finally{d(!1)}};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center space-y-4 max-w-md ${c??``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-5`,children:[(0,G.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,G.jsx)(W9,{color:v,isEmpty:!1,size:100}),E!==null&&(0,G.jsxs)(`div`,{className:`absolute -bottom-2 -right-2 px-2 py-0.5 rounded-full text-xs font-bold text-white shadow-lg`,style:{backgroundColor:D},children:[E,`%`]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-zinc-400`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]}),(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-3xl font-bold font-mono text-zinc-100`,children:[w,`g`]}),(0,G.jsxs)(`span`,{className:`text-sm text-zinc-500`,children:[`/ `,T,`g`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mt-0.5`,children:l(`spoolbuddy.spool.remaining`,`Remaining`)}),(0,G.jsx)(`div`,{className:`mt-2 max-w-xs`,children:(0,G.jsx)(`div`,{className:`h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500`,style:{width:`${E??0}%`,backgroundColor:D}})})})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-2 text-sm bg-zinc-800 rounded-lg p-4 w-full`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.grossWeight`,`Gross weight`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[j,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.spool.coreWeight`,`Core`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[b,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.spoolSize`,`Spool size`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[T,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.spool.scaleWeight`,`Scale`)}),x===null?(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`—`}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 font-mono ${A?`text-green-500`:`text-yellow-500`}`,children:[x,`g`,A?(0,G.jsx)(fs,{className:`w-3.5 h-3.5`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`button`,{onClick:I,className:`p-1 hover:bg-green-500/20 rounded transition-colors text-green-500`,title:l(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`),children:(0,G.jsx)(Hl,{className:`w-4 h-4`})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.tagId`,`Tag`)}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-zinc-400 truncate max-w-[120px]`,title:e.tag_uid||``,children:e.tag_uid?e.tag_uid.slice(-8):`—`})]}),M&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.nozzleTemp`,`Nozzle`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300`,children:M})]}),e.cost_per_kg!=null&&e.cost_per_kg>0&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.costPerKg`,`Cost/kg`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[e.cost_per_kg.toFixed(2),`/kg`]})]}),F&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.kProfiles`,`K-Profile`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300 truncate max-w-[220px] text-right`,title:F,children:F})]}),N&&(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-1`,children:l(`spoolbuddy.inventory.slicerFilament`,`Slicer Filament`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-300 whitespace-pre-wrap break-words`,children:N})]}),P&&(0,G.jsxs)(`div`,{className:`col-span-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-1`,children:l(`spoolbuddy.inventory.note`,`Note`)}),(0,G.jsx)(`p`,{className:`text-sm leading-5 text-zinc-300 whitespace-pre-wrap break-words max-h-[3.75rem] overflow-y-auto pr-1`,children:P})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[a&&(0,G.jsx)(`button`,{onClick:o?void 0:a,disabled:!!o,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px] disabled:opacity-50 disabled:cursor-not-allowed`,children:l(`spoolbuddy.modal.assignToAms`,`Assign to AMS`)}),s&&(0,G.jsxs)(`button`,{onClick:s,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-red-600/20 text-red-400 hover:bg-red-600/30 transition-colors min-h-[44px]`,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 inline mr-1`}),l(`inventory.unassignSpool`)]}),(0,G.jsx)(`button`,{onClick:I,disabled:t===null||u,className:`px-5 py-2.5 rounded-lg text-sm font-medium transition-colors min-h-[44px] ${f?`bg-green-600/20 text-green-400`:a?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600 disabled:opacity-40 disabled:cursor-not-allowed`:`bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed`}`,children:u?`...`:f?l(`spoolbuddy.dashboard.weightSynced`,`Synced!`):l(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`)}),r&&(0,G.jsx)(`button`,{onClick:r,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:l(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function G2e(e){return Af(e.rgba)}function K2e(e){return Math.max(0,e.label_weight-e.weight_used)}function q2e(e){return e.label_weight<=0?0:Math.max(0,Math.min(100,(e.label_weight-e.weight_used)/e.label_weight*100))}function J2e(e){let t=[e.material];return e.subtype&&t.push(e.subtype),t.join(` `)}function Y2e(e){let t=e.ams_id===254||e.ams_id===255,n=!t&&e.ams_id>=128;return jp(e.ams_id,e.tray_id,n,t)}function X2e({color:e,size:t=56}){return(0,G.jsxs)(`svg`,{width:t,height:t,viewBox:`0 0 56 56`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:e}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:e,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]})}function Z2e(){let{sbState:e,selectedPrinterId:t}=lr(),{t:n}=U(),{showToast:r}=qd(),i=co(),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`all`),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),{data:p}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),m=p?.spoolman_enabled===`true`&&!!p?.spoolman_url,{data:h=[],isLoading:g,refetch:_}=K({queryKey:m?[`spoolman-inventory-spools`]:[`inventory-spools`],queryFn:()=>m?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),enabled:p!==void 0,refetchInterval:3e4}),{data:v=[]}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),refetchInterval:3e4,enabled:!m}),{data:b=[]}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),refetchInterval:3e4,enabled:m}),x=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),i.invalidateQueries({queryKey:[`spoolman-inventory-spools`]})},onError:()=>r(n(`inventory.unassignFailed`,`Failed to unassign spool`),`error`)}),S=(0,y.useMemo)(()=>{if(m){let e={};return b.forEach(t=>{e[t.spoolman_spool_id]={ams_id:t.ams_id,tray_id:t.tray_id}}),e}let e={};return v.forEach(t=>{e[t.spool_id]={ams_id:t.ams_id,tray_id:t.tray_id,printer_name:t.printer_name}}),e},[m,v,b]),C=(0,y.useMemo)(()=>h.filter(e=>!e.archived_at),[h]),w=(0,y.useMemo)(()=>new Set(Object.keys(S).map(Number)),[S]),T=(0,y.useMemo)(()=>C.filter(e=>w.has(e.id)).length,[C,w]),E=(0,y.useMemo)(()=>{let e=new Set;return C.forEach(t=>e.add(t.material)),Array.from(e).sort()},[C]),D=(0,y.useMemo)(()=>{let e=C;return s===`in_ams`?e=e.filter(e=>w.has(e.id)):s!==`all`&&(e=e.filter(e=>e.material===s)),e=TH(e,a.trim()),[...e].sort((e,t)=>{let n=+!w.has(e.id),r=+!w.has(t.id);return n===r?new Date(t.updated_at).getTime()-new Date(e.updated_at).getTime():n-r})},[C,s,a,w]);return(0,G.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`px-3 pt-3 pb-2 space-y-2.5`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-white/40`}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`spoolbuddy.inventory.searchPlaceholder`,`Search spools...`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-sm text-white placeholder-white/30 focus:outline-none focus:border-bambu-green`}),a&&(0,G.jsx)(`button`,{onClick:()=>o(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-white/40 hover:text-white/60`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-1.5 overflow-x-auto no-scrollbar`,children:[(0,G.jsx)(Q9,{active:s===`all`,onClick:()=>c(`all`),label:`${n(`spoolbuddy.inventory.all`,`All`)} (${C.length})`,green:!0}),T>0&&(0,G.jsx)(Q9,{active:s===`in_ams`,onClick:()=>c(`in_ams`),label:`${n(`spoolbuddy.inventory.inAms`,`In AMS`)} (${T})`}),E.map(e=>(0,G.jsx)(Q9,{active:s===e,onClick:()=>c(s===e?`all`:e),label:e},e))]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-3 pb-3`,children:g?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(`div`,{className:`w-8 h-8 border-2 border-bambu-green border-t-transparent rounded-full animate-spin`})}):D.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-white/30`,children:[(0,G.jsx)(Cl,{className:`w-12 h-12 mb-3`}),(0,G.jsx)(`p`,{className:`text-sm`,children:a||s!==`all`?n(`spoolbuddy.inventory.noResults`,`No spools match your filters`):n(`spoolbuddy.inventory.empty`,`No spools in inventory`)})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(130px,1fr))] gap-2`,children:D.map(e=>(0,G.jsx)(Q2e,{spool:e,assignment:S[e.id],onClick:()=>u(e.id)},e.id))})}),l!=null&&(()=>{let n=h.find(e=>e.id===l);return n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)($2e,{spool:n,assignment:S[n.id],sbState:e,onSyncWeight:()=>{_()},onAssignToAms:()=>f(!0),onUnassignFromAms:m&&S[n.id]?()=>x.mutate(n.id):void 0,onClose:()=>{u(null),f(!1)}}),(0,G.jsx)(l2e,{isOpen:d,onClose:()=>f(!1),spool:n,printerId:t,spoolmanMode:m})]}):null})()]})}function Q9({active:e,onClick:t,label:n,green:r}){return(0,G.jsx)(`button`,{onClick:t,className:`px-4 py-1.5 rounded-full text-sm font-medium border whitespace-nowrap shrink-0 transition-colors ${e?r?`bg-bambu-green/20 text-bambu-green border-bambu-green/50`:`bg-white/10 text-white border-white/20`:`bg-transparent text-white/40 border-bambu-dark-tertiary hover:text-white/60`}`,children:n})}function Q2e({spool:e,assignment:t,onClick:n}){let r=G2e(e),i=q2e(e),a=K2e(e),o=kf(e.color_name,e.rgba);return(0,G.jsxs)(`button`,{onClick:n,className:`bg-bambu-dark-secondary rounded-xl p-3 flex flex-col items-center text-center gap-1.5 border border-transparent hover:border-bambu-green/50 transition-colors`,children:[(0,G.jsx)(X2e,{color:r,size:56}),(0,G.jsx)(`p`,{className:`text-xs font-semibold text-white leading-tight truncate w-full`,children:J2e(e)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 min-w-0 max-w-full`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full shrink-0 border border-white/10`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-[11px] text-white/50 truncate`,children:o||`-`})]}),(0,G.jsxs)(`div`,{className:`w-full space-y-0.5`,children:[(0,G.jsx)(`div`,{className:`h-1.5 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${i>50?`bg-bambu-green`:i>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(i,100)}%`}})}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white/40`,children:[Math.round(a),`g (`,Math.round(i),`%)`]})]}),t&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded text-[10px] font-bold bg-bambu-green/20 text-bambu-green`,children:Y2e(t)})]})}function $2e({spool:e,assignment:t,sbState:n,onSyncWeight:r,onAssignToAms:i,onUnassignFromAms:a,onClose:o}){let s=n.deviceOnline&&n.weight!==null?Math.round(n.weight):null,c=e.last_scale_weight==null?null:Math.round(e.last_scale_weight);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/70 flex items-center justify-center p-4`,onClick:o,children:(0,G.jsx)(`div`,{className:`w-full max-w-md bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-2xl p-4 overflow-y-auto max-h-[90vh]`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,G.jsx)(`span`,{className:`px-2.5 py-1 rounded-md text-xs font-bold bg-bambu-green/20 text-bambu-green`,children:Y2e(t)}),t.printer_name&&(0,G.jsx)(`span`,{className:`text-xs text-zinc-400`,children:t.printer_name})]}),(0,G.jsx)(`div`,{className:`flex justify-center`,children:(0,G.jsx)(W2e,{spool:e,liveScaleWeight:s,persistedGrossWeight:c,onSyncWeight:r,onAssignToAms:i,isAssigned:!!t,onUnassignFromAms:a,onClose:o,className:`max-w-md`})})]})})})}var e4e=class extends y.Component{state={error:null,errorInfo:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.setState({errorInfo:t}),console.error(`React crash:`,e,t)}render(){return this.state.error?(0,G.jsxs)(`div`,{style:{padding:24,color:`#ef4444`,backgroundColor:`#18181b`,minHeight:`100vh`,fontFamily:`monospace`},children:[(0,G.jsx)(`h1`,{style:{fontSize:20,marginBottom:12},children:`UI Crash`}),(0,G.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:14},children:this.state.error.message}),(0,G.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:12,color:`#a1a1aa`,marginTop:12},children:this.state.error.stack}),(0,G.jsx)(`button`,{onClick:()=>{this.setState({error:null,errorInfo:null})},style:{marginTop:16,padding:`8px 16px`,backgroundColor:`#3b82f6`,color:`#fff`,border:`none`,borderRadius:8,cursor:`pointer`},children:`Retry`})]}):this.props.children}},t4e=new ao({defaultOptions:{queries:{staleTime:1e3*60,retry:1}}});function n4e(){return y$e(),null}function r4e({children:e}){return x0e(),E0e(),(0,G.jsx)(G.Fragment,{children:e})}function i4e({children:e}){let{authEnabled:t,loading:n,user:r}=Nd(),i=rr();return n?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):t&&!r?(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:i}}):(0,G.jsx)(G.Fragment,{children:e})}function $9({permission:e,children:t}){let{authEnabled:n,loading:r,user:i,hasPermission:a}=Nd(),o=rr();return r?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):n?i?a(e)?(0,G.jsx)(G.Fragment,{children:t}):(0,G.jsx)(Fr,{to:`/`,replace:!0}):(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:o}}):(0,G.jsx)(G.Fragment,{children:t})}function a4e({children:e}){let{authEnabled:t,loading:n}=Nd();return n?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):t?(0,G.jsx)(Fr,{to:`/login`,replace:!0}):(0,G.jsx)(G.Fragment,{children:e})}function o4e(){return(0,G.jsx)(e4e,{children:(0,G.jsx)(rf,{children:(0,G.jsx)(lo,{client:t4e,children:(0,G.jsx)(Md,{children:(0,G.jsx)(Fd,{children:(0,G.jsx)(D0e,{children:(0,G.jsxs)(OAe,{children:[(0,G.jsx)(n4e,{}),(0,G.jsx)(Oi,{children:(0,G.jsxs)(zr,{children:[(0,G.jsx)(Lr,{path:`/setup`,element:(0,G.jsx)(a4e,{children:(0,G.jsx)(_0e,{})})}),(0,G.jsx)(Lr,{path:`/login`,element:(0,G.jsx)(g0e,{})}),(0,G.jsx)(Lr,{path:`/camera/:printerId`,element:(0,G.jsx)(C$e,{})}),(0,G.jsx)(Lr,{path:`/overlay/:printerId`,element:(0,G.jsx)(z$e,{})}),(0,G.jsx)(Lr,{path:`/camwall`,element:(0,G.jsx)(N$e,{})}),(0,G.jsxs)(Lr,{element:(0,G.jsx)(i4e,{children:(0,G.jsx)(r4e,{children:(0,G.jsx)(V0e,{})})}),children:[(0,G.jsx)(Lr,{path:`spoolbuddy`,element:(0,G.jsx)(h2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/ams`,element:(0,G.jsx)(y2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/write-tag`,element:(0,G.jsx)(L2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/inventory`,element:(0,G.jsx)(Z2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/settings`,element:(0,G.jsx)(M2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/calibration`,element:(0,G.jsx)(P2e,{})})]}),(0,G.jsxs)(Lr,{element:(0,G.jsx)(i4e,{children:(0,G.jsx)(r4e,{children:(0,G.jsx)(gee,{})})}),children:[(0,G.jsx)(Lr,{index:!0,element:(0,G.jsx)(CAe,{})}),(0,G.jsx)(Lr,{path:`archives`,element:(0,G.jsx)(LVe,{})}),(0,G.jsx)(Lr,{path:`queue`,element:(0,G.jsx)(GUe,{})}),(0,G.jsx)(Lr,{path:`pipelines/runs`,element:(0,G.jsx)(Fr,{to:`/queue?tab=pipelines`,replace:!0})}),(0,G.jsx)(Lr,{path:`stats`,element:(0,G.jsx)(uWe,{})}),(0,G.jsx)(Lr,{path:`profiles`,element:(0,G.jsx)(xKe,{})}),(0,G.jsx)(Lr,{path:`finance`,element:(0,G.jsx)($9,{permission:`cost_centers:read_own`,children:(0,G.jsx)(eKe,{})})}),(0,G.jsx)(Lr,{path:`maintenance`,element:(0,G.jsx)(EKe,{})}),(0,G.jsx)(Lr,{path:`projects`,element:(0,G.jsx)(kKe,{})}),(0,G.jsx)(Lr,{path:`projects/:id`,element:(0,G.jsx)(NKe,{})}),(0,G.jsx)(Lr,{path:`inventory`,element:(0,G.jsx)(W1e,{})}),(0,G.jsx)(Lr,{path:`files`,element:(0,G.jsx)(p$e,{})}),(0,G.jsx)(Lr,{path:`files/trash`,element:(0,G.jsx)(g$e,{})}),(0,G.jsx)(Lr,{path:`makerworld`,element:(0,G.jsx)($9,{permission:`makerworld:view`,children:(0,G.jsx)(a0e,{})})}),(0,G.jsx)(Lr,{path:`settings`,element:(0,G.jsx)($9,{permission:`settings:read`,children:(0,G.jsx)(XGe,{})})}),(0,G.jsx)(Lr,{path:`groups/new`,element:(0,G.jsx)($9,{permission:`groups:create`,children:(0,G.jsx)(V$e,{})})}),(0,G.jsx)(Lr,{path:`groups/:id/edit`,element:(0,G.jsx)($9,{permission:`groups:update`,children:(0,G.jsx)(V$e,{})})}),(0,G.jsx)(Lr,{path:`users`,element:(0,G.jsx)(Fr,{to:`/settings?tab=users`,replace:!0})}),(0,G.jsx)(Lr,{path:`groups`,element:(0,G.jsx)(Fr,{to:`/settings?tab=users`,replace:!0})}),(0,G.jsx)(Lr,{path:`system`,element:(0,G.jsx)(d0e,{})}),(0,G.jsx)(Lr,{path:`notifications`,element:(0,G.jsx)(v0e,{})}),(0,G.jsx)(Lr,{path:`gcode-viewer`,element:(0,G.jsx)(y0e,{})}),(0,G.jsx)(Lr,{path:`external/:id`,element:(0,G.jsx)(B$e,{})}),(0,G.jsx)(Lr,{path:`camera-tokens`,element:(0,G.jsx)(Fr,{to:`/settings?tab=apikeys#card-camera-tokens`,replace:!0})})]})]})})]})})})})})})})}(0,b.createRoot)(document.getElementById(`root`)).render((0,G.jsx)(y.StrictMode,{children:(0,G.jsx)(o4e,{})})); \ No newline at end of file +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function w(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&arguments[1]!==void 0?arguments[1]:e;this.caretPosition=e,this.caretPositionEnd=t}},{key:`getInputCandidates`,value:function(e){var t=this,n=this.options,r=n.layoutCandidates,i=n.layoutCandidatesCaseSensitiveMatch;if(!r||T(r)!==`object`)return{};var a=Object.keys(r).filter((function(n){var r=e.substring(0,t.getCaretPositionEnd()||0)||e,a=RegExp(`${t.utilities.escapeRegex(n)}\$`,i?`g`:`gi`);return!!C(r.matchAll(a)).length}));if(a.length>1){var o=a.sort((function(e,t){return t.length-e.length}))[0];return{candidateKey:o,candidateValue:r[o]}}if(a.length){var s=a[0];return{candidateKey:s,candidateValue:r[s]}}return{}}},{key:`showCandidatesBox`,value:function(e,t,n){var r=this;this.candidateBox&&this.candidateBox.show({candidateValue:t,targetElement:n,onSelect:function(t,n){var i=r.options,a=i.layoutCandidatesCaseSensitiveMatch,o=i.disableCandidateNormalization,s=i.enableLayoutCandidatesKeyPress,c=t;o||(c=t.normalize(`NFD`)),typeof r.options.beforeInputUpdate==`function`&&r.options.beforeInputUpdate(r);var l=r.getInput(r.options.inputName,!0),u=r.getCaretPositionEnd()||0,d=l.substring(0,u||0)||l,f=RegExp(`${r.utilities.escapeRegex(e)}\$`,a?`g`:`gi`),p=d.replace(f,c),m=l.replace(d,p),h=p.length-d.length,g=(u||l.length)+h;g<0&&(g=0),r.setInput(m,r.options.inputName,!0),r.setCaretPosition(g),s&&typeof r.options.onKeyPress==`function`&&r.options.onKeyPress(t,n),typeof r.options.onChange==`function`&&r.options.onChange(r.getInput(r.options.inputName,!0),n),typeof r.options.onChangeAll==`function`&&r.options.onChangeAll(r.getAllInputs(),n)}})}},{key:`handleButtonClicked`,value:function(e,t){var n=this.options,r=n.inputName,i=r===void 0?this.defaultName:r,a=n.debug;if(e!==`{//}`){this.input[i]||(this.input[i]=``),typeof this.options.beforeInputUpdate==`function`&&this.options.beforeInputUpdate(this);var o=this.utilities.getUpdatedInput(e,this.input[i],this.caretPosition,this.caretPositionEnd);if(this.utilities.isStandardButton(e)&&this.activeInputElement&&this.input[i]&&this.input[i]===o&&this.caretPosition===0&&this.caretPositionEnd===o.length)return this.setInput(``,this.options.inputName,!0),this.setCaretPosition(0),this.activeInputElement.value=``,this.activeInputElement.setSelectionRange(0,0),void this.handleButtonClicked(e,t);if(typeof this.options.onKeyPress==`function`&&this.options.onKeyPress(e,t),this.input[i]!==o&&(!this.options.inputPattern||this.options.inputPattern&&this.inputPatternIsValid(o))){if(this.options.maxLength&&this.utilities.handleMaxLength(this.input,o))return;var s=this.utilities.getUpdatedInput(e,this.input[i],this.caretPosition,this.caretPositionEnd,!0);if(this.setInput(s,this.options.inputName,!0),a&&console.log(`Input changed:`,this.getAllInputs()),this.options.debug&&console.log(`Caret at: `,this.getCaretPosition(),this.getCaretPositionEnd(),`(${this.keyboardDOMClass})`,t?.type),this.options.syncInstanceInputs&&this.syncInstanceInputs(),typeof this.options.onChange==`function`&&this.options.onChange(this.getInput(this.options.inputName,!0),t),typeof this.options.onChangeAll==`function`&&this.options.onChangeAll(this.getAllInputs(),t),t!=null&&t.target&&this.options.enableLayoutCandidates){var c,l=this.getInputCandidates(o),u=l.candidateKey,d=l.candidateValue;u&&d?this.showCandidatesBox(u,d,this.keyboardDOM):(c=this.candidateBox)==null||c.destroy()}}this.caretPositionEnd&&this.caretPosition!==this.caretPositionEnd&&(this.setCaretPosition(this.caretPositionEnd,this.caretPositionEnd),this.activeInputElement&&this.activeInputElement.setSelectionRange(this.caretPositionEnd,this.caretPositionEnd),this.options.debug&&console.log(`Caret position aligned`,this.caretPosition)),a&&console.log(`Key pressed:`,e)}}},{key:`getMouseHold`,value:function(){return this.isMouseHold}},{key:`setMouseHold`,value:function(e){this.options.syncInstanceInputs?this.dispatch((function(t){t.isMouseHold=e})):this.isMouseHold=e}},{key:`handleButtonMouseDown`,value:function(e,t){var n=this;t&&(this.options.preventMouseDownDefault&&t.preventDefault(),this.options.stopMouseDownPropagation&&t.stopPropagation(),t.target.classList.add(this.activeButtonClass)),this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdTimeout&&clearTimeout(this.holdTimeout),this.setMouseHold(!0),this.options.disableButtonHold||(this.holdTimeout=window.setTimeout((function(){(n.getMouseHold()&&(!e.includes(`{`)&&!e.includes(`}`)||e===`{delete}`||e===`{backspace}`||e===`{bksp}`||e===`{space}`||e===`{tab}`)||e===`{arrowright}`||e===`{arrowleft}`||e===`{arrowup}`||e===`{arrowdown}`)&&(n.options.debug&&console.log(`Button held:`,e),n.handleButtonHold(e)),clearTimeout(n.holdTimeout)}),500))}},{key:`handleButtonMouseUp`,value:function(e,t){var n=this;t&&(this.options.preventMouseUpDefault&&t.preventDefault&&t.preventDefault(),this.options.stopMouseUpPropagation&&t.stopPropagation&&t.stopPropagation(),!(t.target===this.keyboardDOM||t.target&&this.keyboardDOM.contains(t.target)||this.candidateBox&&this.candidateBox.candidateBoxElement&&(t.target===this.candidateBox.candidateBoxElement||t.target&&this.candidateBox.candidateBoxElement.contains(t.target)))&&this.candidateBox&&this.candidateBox.destroy()),this.recurseButtons((function(e){e.classList.remove(n.activeButtonClass)})),this.setMouseHold(!1),this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),e&&typeof this.options.onKeyReleased==`function`&&this.options.onKeyReleased(e,t)}},{key:`handleKeyboardContainerMouseDown`,value:function(e){this.options.preventMouseDownDefault&&e.preventDefault()}},{key:`handleButtonHold`,value:function(e){var t=this;this.holdInteractionTimeout&&clearTimeout(this.holdInteractionTimeout),this.holdInteractionTimeout=window.setTimeout((function(){t.getMouseHold()?(t.handleButtonClicked(e),t.handleButtonHold(e)):clearTimeout(t.holdInteractionTimeout)}),100)}},{key:`syncInstanceInputs`,value:function(){var e=this;this.dispatch((function(t){t.replaceInput(e.input),t.setCaretPosition(e.caretPosition,e.caretPositionEnd)}))}},{key:`clearInput`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.inputName||this.defaultName;this.input[e]=``,this.setCaretPosition(0),this.options.syncInstanceInputs&&this.syncInstanceInputs()}},{key:`getInput`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.inputName||this.defaultName,t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return this.options.syncInstanceInputs&&!t&&this.syncInstanceInputs(),this.options.rtl?`‫`+this.input[e].replace(`‫`,``).replace(`‬`,``)+`‬`:this.input[e]}},{key:`getAllInputs`,value:function(){var e=this,t={};return Object.keys(this.input).forEach((function(n){t[n]=e.getInput(n,!0)})),t}},{key:`setInput`,value:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.inputName||this.defaultName,n=arguments.length>2?arguments[2]:void 0;this.input[t]=e,!n&&this.options.syncInstanceInputs&&this.syncInstanceInputs()}},{key:`replaceInput`,value:function(e){this.input=e}},{key:`setOptions`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=this.changedOptions(e);this.options=Object.assign(this.options,e),t.length&&(this.options.debug&&console.log(`changedOptions`,t),this.onSetOptions(t),this.render())}},{key:`changedOptions`,value:function(e){var t=this;return Object.keys(e).filter((function(n){return JSON.stringify(e[n])!==JSON.stringify(t.options[n])}))}},{key:`onSetOptions`,value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];e.includes(`layoutName`)&&this.candidateBox&&this.candidateBox.destroy(),(e.includes(`layoutCandidatesPageSize`)||e.includes(`layoutCandidates`))&&this.candidateBox&&(this.candidateBox.destroy(),this.candidateBox=new S({utilities:this.utilities,options:this.options}))}},{key:`resetRows`,value:function(){this.keyboardRowsDOM&&this.keyboardRowsDOM.remove(),this.keyboardDOM.className=this.keyboardDOMClass,this.keyboardDOM.setAttribute(`data-skInstance`,this.currentInstanceName),this.buttonElements={}}},{key:`dispatch`,value:function(e){if(!window.SimpleKeyboardInstances)throw console.warn(`SimpleKeyboardInstances is not defined. Dispatch cannot be called.`),Error(`INSTANCES_VAR_ERROR`);return Object.keys(window.SimpleKeyboardInstances).forEach((function(t){e(window.SimpleKeyboardInstances[t],t)}))}},{key:`addButtonTheme`,value:function(e,t){var n=this;t&&e&&(e.split(` `).forEach((function(r){t.split(` `).forEach((function(t){n.options.buttonTheme||(n.options.buttonTheme=[]);var i=!1;n.options.buttonTheme.map((function(e){if(e!=null&&e.class.split(` `).includes(t)){i=!0;var n=e.buttons.split(` `);n.includes(r)||(i=!0,n.push(r),e.buttons=n.join(` `))}return e})),i||n.options.buttonTheme.push({class:t,buttons:e})}))})),this.render())}},{key:`removeButtonTheme`,value:function(e,t){var n=this;if(!e&&!t)return this.options.buttonTheme=[],void this.render();e&&Array.isArray(this.options.buttonTheme)&&this.options.buttonTheme.length&&(e.split(` `).forEach((function(e){var r;(r=n.options)==null||(r=r.buttonTheme)==null||r.map((function(r,i){if(r&&t&&t.includes(r.class)||!t){var a,o=r?.buttons.split(` `).filter((function(t){return t!==e}));r&&o!=null&&o.length?r.buttons=o.join(` `):((a=n.options.buttonTheme)==null||a.splice(i,1),r=null)}return r}))})),this.render())}},{key:`getButtonElement`,value:function(e){var t,n=this.buttonElements[e];return n&&(t=n.length>1?n:n[0]),t}},{key:`inputPatternIsValid`,value:function(e){var t,n=this.options.inputPattern;if((t=n instanceof RegExp?n:n[this.options.inputName||this.defaultName])&&e){var r=t.test(e);return this.options.debug&&console.log(`inputPattern ("${t}"): ${r?`passed`:`did not pass!`}`),r}return!0}},{key:`setEventListeners`,value:function(){if(this.isFirstKeyboardInstance||!this.allKeyboardInstances){this.options.debug&&console.log(`Caret handling started (${this.keyboardDOMClass})`);var e=this.options.physicalKeyboardHighlightPreventDefault,t=e!==void 0&&e;document.addEventListener(`keyup`,this.handleKeyUp,t),document.addEventListener(`keydown`,this.handleKeyDown,t),document.addEventListener(`mouseup`,this.handleMouseUp),document.addEventListener(`touchend`,this.handleTouchEnd),this.options.updateCaretOnSelectionChange&&document.addEventListener(`selectionchange`,this.handleSelectionChange),document.addEventListener(`select`,this.handleSelect)}}},{key:`handleKeyUp`,value:function(e){this.caretEventHandler(e),this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyUp(e)}},{key:`handleKeyDown`,value:function(e){this.options.physicalKeyboardHighlight&&this.physicalKeyboard.handleHighlightKeyDown(e)}},{key:`handleMouseUp`,value:function(e){this.caretEventHandler(e)}},{key:`handleTouchEnd`,value:function(e){this.caretEventHandler(e)}},{key:`handleSelect`,value:function(e){this.caretEventHandler(e)}},{key:`handleSelectionChange`,value:function(e){navigator.userAgent.includes(`Firefox`)||this.caretEventHandler(e)}},{key:`caretEventHandler`,value:function(e){var t,n=this;e.target.tagName&&(t=e.target.tagName.toLowerCase()),this.dispatch((function(r){var i=e.target===r.keyboardDOM||e.target&&r.keyboardDOM.contains(e.target);if(n.options.syncInstanceInputs&&Array.isArray(e.path)&&(i=e.path.some((function(e){var t;return e==null||(t=e.hasAttribute)==null?void 0:t.call(e,`data-skInstance`)}))),(t===`textarea`||t===`input`&&[`text`,`search`,`url`,`tel`,`password`].includes(e.target.type))&&!r.options.disableCaretPositioning){var a=e.target.selectionStart,o=e.target.selectionEnd;r.options.rtl&&(a=r.utilities.getRtlOffset(a,r.getInput()),o=r.utilities.getRtlOffset(o,r.getInput())),r.setCaretPosition(a,o),r.activeInputElement=e.target,r.options.debug&&console.log(`Caret at: `,r.getCaretPosition(),r.getCaretPositionEnd(),e&&e.target.tagName.toLowerCase(),`(${r.keyboardDOMClass})`,e?.type)}else !r.options.disableCaretPositioning&&i||e?.type===`selectionchange`||(r.setCaretPosition(null),r.activeInputElement=null,r.options.debug&&console.log(`Caret position reset due to "${e?.type}" event`,e))}))}},{key:`recurseButtons`,value:function(e){var t=this;e&&Object.keys(this.buttonElements).forEach((function(n){return t.buttonElements[n].forEach(e)}))}},{key:`destroy`,value:function(){this.options.debug&&console.log(`Destroying simple-keyboard instance: ${this.currentInstanceName}`);var e=this.options.physicalKeyboardHighlightPreventDefault,t=e!==void 0&&e;document.removeEventListener(`keyup`,this.handleKeyUp,t),document.removeEventListener(`keydown`,this.handleKeyDown,t),document.removeEventListener(`mouseup`,this.handleMouseUp),document.removeEventListener(`touchend`,this.handleTouchEnd),document.removeEventListener(`select`,this.handleSelect),this.options.updateCaretOnSelectionChange&&document.removeEventListener(`selectionchange`,this.handleSelectionChange),document.onpointerup=null,document.ontouchend=null,document.ontouchcancel=null,document.onmouseup=null,this.recurseButtons((function(e){e&&=(e.onpointerdown=null,e.onpointerup=null,e.onpointercancel=null,e.ontouchstart=null,e.ontouchend=null,e.ontouchcancel=null,e.onclick=null,e.onmousedown=null,e.onmouseup=null,e.remove(),null)})),this.keyboardDOM.onpointerdown=null,this.keyboardDOM.ontouchstart=null,this.keyboardDOM.onmousedown=null,this.resetRows(),this.candidateBox&&=(this.candidateBox.destroy(),null),this.activeInputElement=null,this.keyboardDOM.removeAttribute(`data-skInstance`),this.keyboardDOM.innerHTML=``,window.SimpleKeyboardInstances[this.currentInstanceName]=null,delete window.SimpleKeyboardInstances[this.currentInstanceName],this.initialized=!1}},{key:`getButtonThemeClasses`,value:function(e){var t=this.options.buttonTheme,n=[];return Array.isArray(t)&&t.forEach((function(t){if(t&&t.class&&typeof t.class==`string`&&t.buttons&&typeof t.buttons==`string`){var r=t.class.split(` `);t.buttons.split(` `).includes(e)&&(n=[].concat(C(n),C(r)))}else console.warn(`Incorrect "buttonTheme". Please check the documentation.`,t)})),n}},{key:`setDOMButtonAttributes`,value:function(e,t){var n=this.options.buttonAttributes;Array.isArray(n)&&n.forEach((function(n){n.attribute&&typeof n.attribute==`string`&&n.value&&typeof n.value==`string`?n.buttons&&typeof n.buttons==`string`?n.buttons.split(` `).includes(e)&&t(n.attribute,n.value):t(n.attribute,n.value):console.warn(`Incorrect "buttonAttributes". Please check the documentation.`,n)}))}},{key:`onTouchDeviceDetected`,value:function(){this.processAutoTouchEvents(),this.disableContextualWindow()}},{key:`disableContextualWindow`,value:function(){window.oncontextmenu=function(e){var t;if((t=e.target.classList)!=null&&t.contains(`hg-button`))return e.preventDefault(),e.stopPropagation(),!1}}},{key:`processAutoTouchEvents`,value:function(){this.options.autoUseTouchEvents&&(this.options.useTouchEvents=!0,this.options.debug&&console.log(`autoUseTouchEvents: Touch device detected, useTouchEvents enabled.`))}},{key:`onInit`,value:function(){this.options.debug&&console.log(`${this.keyboardDOMClass} Initialized`),this.setEventListeners(),typeof this.options.onInit==`function`&&this.options.onInit(this)}},{key:`beforeFirstRender`,value:function(){this.utilities.isTouchDevice()&&this.onTouchDeviceDetected(),typeof this.options.beforeFirstRender==`function`&&this.options.beforeFirstRender(this),this.isFirstKeyboardInstance&&this.utilities.pointerEventsSupported()&&!this.options.useTouchEvents&&!this.options.useMouseEvents&&this.options.debug&&console.log(`Using PointerEvents as it is supported by this browser`),this.options.useTouchEvents&&this.options.debug&&console.log(`useTouchEvents has been enabled. Only touch events will be used.`)}},{key:`beforeRender`,value:function(){typeof this.options.beforeRender==`function`&&this.options.beforeRender(this)}},{key:`onRender`,value:function(){typeof this.options.onRender==`function`&&this.options.onRender(this)}},{key:`onModulesLoaded`,value:function(){typeof this.options.onModulesLoaded==`function`&&this.options.onModulesLoaded(this)}},{key:`loadModules`,value:function(){var e=this;Array.isArray(this.options.modules)&&(this.options.modules.forEach((function(t){var n=e.utilities.isConstructor(t)?new t(e):t(e);n.init&&n.init(e)})),this.keyboardPluginClasses=`modules-loaded`,this.render(),this.onModulesLoaded())}},{key:`getModuleProp`,value:function(e,t){return!!this.modules[e]&&this.modules[e][t]}},{key:`getModulesList`,value:function(){return Object.keys(this.modules)}},{key:`parseRowDOMContainers`,value:function(e,t,n,r){var i=this,a=Array.from(e.children),o=0;return a.length&&n.forEach((function(n,s){var c=r[s];if(!(c&&c>n))return!1;var l=n-o,u=c-o,d=document.createElement(`div`);d.className+=`hg-button-container`;var f=`${i.options.layoutName}-r${t}c${s}`;d.setAttribute(`data-skUID`,f);var p=a.splice(l,u-l+1);o+=u-l,p.forEach((function(e){return d.appendChild(e)})),a.splice(l,0,d),e.innerHTML=``,a.forEach((function(t){return e.appendChild(t)})),i.options.debug&&console.log(`rowDOMContainer`,p,l,u,o+1)})),e}},{key:`render`,value:function(){var e=this;this.resetRows(),this.initialized||this.beforeFirstRender(),this.beforeRender();var t=`hg-layout-${this.options.layoutName}`,n=this.options.layout||{default:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}",`{tab} q w e r t y u i o p [ ] \\`,`{lock} a s d f g h j k l ; ' {enter}`,`{shift} z x c v b n m , . / {shift}`,`.com @ {space}`],shift:[`~ ! @ # $ % ^ & * ( ) _ + {bksp}`,`{tab} Q W E R T Y U I O P { } |`,`{lock} A S D F G H J K L : " {enter}`,`{shift} Z X C V B N M < > ? {shift}`,`.com @ {space}`]},r=this.options.useTouchEvents||!1,i=r?`hg-touch-events`:``,a=this.options.useMouseEvents||!1,o=this.options.disableRowButtonContainers;this.keyboardDOM.className=this.getKeyboardClassString(this.options.theme,t,this.keyboardPluginClasses,i),this.keyboardDOM.setAttribute(`data-skInstance`,this.currentInstanceName),this.keyboardRowsDOM=document.createElement(`div`),this.keyboardRowsDOM.className=`hg-rows`,n[this.options.layoutName||this.defaultName].forEach((function(t,n){var i=t.split(` `);e.options.excludeFromLayout&&e.options.excludeFromLayout[e.options.layoutName||e.defaultName]&&(i=i.filter((function(t){return e.options.excludeFromLayout&&!e.options.excludeFromLayout[e.options.layoutName||e.defaultName].includes(t)})));var s=document.createElement(`div`);s.className+=`hg-row`;var c=[],l=[];i.forEach((function(t,i){var u,d=!o&&typeof t==`string`&&t.length>1&&t.indexOf(`[`)===0,f=!o&&typeof t==`string`&&t.length>1&&t.indexOf(`]`)===t.length-1;d&&(c.push(i),t=t.replace(/\[/g,``)),f&&(l.push(i),t=t.replace(/\]/g,``));var p=e.utilities.getButtonClass(t),m=e.utilities.getButtonDisplayName(t,e.options.display,e.options.mergeDisplay),h=e.options.useButtonTag?`button`:`div`,g=document.createElement(h);g.className+=`hg-button ${p}`,(u=g.classList).add.apply(u,C(e.getButtonThemeClasses(t))),e.setDOMButtonAttributes(t,(function(e,t){g.setAttribute(e,t)})),e.activeButtonClass=`hg-activeButton`,!e.utilities.pointerEventsSupported()||r||a?r?(g.ontouchstart=function(n){e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.ontouchend=function(n){e.handleButtonMouseUp(t,n)},g.ontouchcancel=function(n){e.handleButtonMouseUp(t,n)}):(g.onclick=function(n){e.setMouseHold(!1),typeof e.options.onKeyReleased==`function`||e.options.useMouseEvents&&e.options.clickOnMouseDown||e.handleButtonClicked(t,n)},g.onmousedown=function(n){(typeof e.options.onKeyReleased==`function`||e.options.useMouseEvents&&e.options.clickOnMouseDown)&&!e.isMouseHold&&e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.onmouseup=function(n){e.handleButtonMouseUp(t,n)}):(g.onpointerdown=function(n){e.handleButtonClicked(t,n),e.handleButtonMouseDown(t,n)},g.onpointerup=function(n){e.handleButtonMouseUp(t,n)},g.onpointercancel=function(n){e.handleButtonMouseUp(t,n)}),g.setAttribute(`data-skBtn`,t);var _=`${e.options.layoutName}-r${n}b${i}`;g.setAttribute(`data-skBtnUID`,_);var v=document.createElement(`span`);v.innerHTML=m,g.appendChild(v),e.buttonElements[t]||(e.buttonElements[t]=[]),e.buttonElements[t].push(g),s.appendChild(g)})),s=e.parseRowDOMContainers(s,n,c,l),e.keyboardRowsDOM.appendChild(s)})),this.keyboardDOM.appendChild(this.keyboardRowsDOM),this.onRender(),this.initialized||(this.initialized=!0,!this.utilities.pointerEventsSupported()||r||a?r?(document.ontouchend=function(t){return e.handleButtonMouseUp(void 0,t)},document.ontouchcancel=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.ontouchstart=function(t){return e.handleKeyboardContainerMouseDown(t)}):r||(document.onmouseup=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.onmousedown=function(t){return e.handleKeyboardContainerMouseDown(t)}):(document.onpointerup=function(t){return e.handleButtonMouseUp(void 0,t)},this.keyboardDOM.onpointerdown=function(t){return e.handleKeyboardContainerMouseDown(t)}),this.onInit())}}],t&&D(e.prototype,t),n&&D(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,n}(),j=A;return r}()},442:function(t){t.exports=e}},n={};function r(e){var i=n[e];if(i!==void 0)return i.exports;var a=n[e]={exports:{}};return t[e].call(a.exports,a,a.exports,r),a.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return function(){r.r(i),r.d(i,{KeyboardReact:function(){return u},default:function(){return d}}),r(981);var e=r(442),t=r(548),n=r.n(t);function a(e){return a=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},a(e)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{e?.(t)},[t,e]);let d=(0,y.useCallback)(e=>{if(a.current)return;let t=e.target;if(!t.closest(`[data-vkb="false"]`)){if(t instanceof HTMLInputElement){if(!B0e.has(t.type))return}else if(!(t instanceof HTMLTextAreaElement))return;c.current=t,n(!0),s(`default`),l.current?.setInput?.(c.current.value),setTimeout(()=>{(t.closest(`.bg-zinc-800, .rounded-lg, [data-vkb-group]`)??t).scrollIntoView({behavior:`smooth`,block:`nearest`})},100)}},[]),f=(0,y.useCallback)(()=>{setTimeout(()=>{let e=document.activeElement;e&&(u.current?.contains(e)||e===c.current)||(n(!1),c.current=null)},150)},[]);(0,y.useEffect)(()=>(document.addEventListener(`focusin`,d),document.addEventListener(`focusout`,f),()=>{document.removeEventListener(`focusin`,d),document.removeEventListener(`focusout`,f)}),[d,f]);let p=(0,y.useCallback)(()=>{a.current=!0,i(!0),c.current?.blur(),c.current=null,setTimeout(()=>{n(!1),i(!1),a.current=!1},400)},[]),m=(0,y.useCallback)(e=>{let t=c.current;if(t){if(e===`{shift}`){s(e=>e==="default"?`shift`:`default`);return}if(e===`{lock}`){s(e=>e==="default"?`shift`:`default`);return}if(e===`{close}`){p();return}e===`{bksp}`?U9(t,t.value.slice(0,-1)):e===`{space}`?U9(t,t.value+` `):(U9(t,t.value+e),o===`shift`&&s(`default`)),t.focus(),l.current?.setInput?.(t.value)}},[o,p]);return t?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 z-[9998] bg-transparent`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),r||p()},onTouchStart:e=>{e.preventDefault(),e.stopPropagation(),r||p()},onClick:e=>{e.preventDefault(),e.stopPropagation()}}),!r&&(0,G.jsx)(`div`,{ref:u,className:`relative z-[9999] shrink-0`,onMouseDown:e=>e.preventDefault(),onTouchStart:e=>{e.target.closest(`.hg-button`)||e.preventDefault()},children:(0,G.jsx)(z0e,{keyboardRef:e=>{l.current=e},layoutName:o,onKeyPress:m,theme:`simple-keyboard vkb-theme`,layout:{default:[`1 2 3 4 5 6 7 8 9 0 {bksp}`,`q w e r t y u i o p`,`{lock} a s d f g h j k l`,`{shift} z x c v b n m . @`,`{space} {close}`],shift:[`! @ # $ % ^ & * ( ) {bksp}`,`Q W E R T Y U I O P`,`{lock} A S D F G H J K L`,`{shift} Z X C V B N M , _`,`{space} {close}`]},display:{"{bksp}":`⌫`,"{close}":`✕ Close`,"{shift}":`⇧`,"{lock}":`⇪`,"{space}":` `}})})]}):null}function H0e(){Ff();let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(100),{i18n:o}=U(),s=or(),c=rr(),l=I0e(),{setViewportSuppressed:u}=qd();(0,y.useEffect)(()=>(u(!0),()=>u(!1)),[u]);let{data:d}=K({queryKey:[`settings`],queryFn:Z.getSettings});(0,y.useEffect)(()=>{d?.language&&d.language!==o.language&&o.changeLanguage(d.language)},[d?.language,o]);let{data:f=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:3e4}),p=f[0],m=l.deviceOnline||!!p?.online,h=(0,y.useMemo)(()=>({...l,deviceOnline:m}),[l,m]),g=(0,y.useRef)(!1);(0,y.useEffect)(()=>{p&&!g.current&&(a(p.display_brightness),g.current=!0)},[p]),(0,y.useEffect)(()=>{let e=document.documentElement,t=e.classList.contains(`dark`);return e.classList.add(`dark`),()=>{t||e.classList.remove(`dark`)}},[]);let{data:_}=K({queryKey:[`spoolbuddy-update-check`,p?.device_id],queryFn:()=>p?Od.checkDaemonUpdate(p.device_id):Promise.resolve(null),enabled:!!p,refetchInterval:300*1e3,staleTime:0}),v=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!m){let e=`SpoolBuddy device disconnected`;r({type:`warning`,message:e}),v.current=e}else if(_?.update_available&&_.latest_version){let e=`Update available: v${_.latest_version}`;r({type:`info`,message:e}),v.current=e}else v.current&&=(r(null),null)},[m,_?.update_available,_?.latest_version]);let b=!!(l.matchedSpool||l.unknownTagUid||l.unknownTrayUuid),x=(0,y.useRef)(!1);(0,y.useEffect)(()=>{b&&!x.current&&c.pathname!==`/spoolbuddy`&&s(`/spoolbuddy`),x.current=b},[b,c.pathname,s]);let{data:S=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),C=Co({queries:S.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4,select:e=>({connected:e?.connected})}))}),w=(0,y.useMemo)(()=>S.filter((e,t)=>C[t]?.data?.connected),[S,C]),T=(0,y.useRef)(null),E=(0,y.useRef)(!1),D=(0,y.useRef)(null),O=(0,y.useCallback)(e=>{T.current={x:e.touches[0].clientX,y:e.touches[0].clientY},E.current=!1},[]),k=(0,y.useCallback)(n=>{if(!T.current)return;let r=n.changedTouches[0].clientX-T.current.x,i=n.changedTouches[0].clientY-T.current.y,a=T.current.y;if(T.current=null,E.current=!1,i>=50&&Math.abs(i)>Math.abs(r)&&a<120){N(!0);return}if(w.length<2||Math.abs(r)<50||Math.abs(i)>Math.abs(r))return;let o=w.findIndex(t=>t.id===e);t(w[r<0?(o+1)%w.length:(o-1+w.length)%w.length].id)},[w,e,t]);(0,y.useEffect)(()=>{let e=D.current;if(!e)return;let t=e=>{if(!T.current)return;let t=Math.abs(e.touches[0].clientX-T.current.x),n=Math.abs(e.touches[0].clientY-T.current.y);if(E.current){e.preventDefault();return}t>10&&t>n&&(E.current=!0,e.preventDefault())};return e.addEventListener(`touchmove`,t,{passive:!1}),()=>e.removeEventListener(`touchmove`,t)},[]);let[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{ref:D,"data-spoolbuddy-kiosk":!0,className:`w-screen h-screen bg-bambu-dark text-white flex flex-col overflow-hidden`,style:{...i<100?{filter:`brightness(${i/100})`}:void 0,overscrollBehaviorX:`none`},onTouchStart:O,onTouchEnd:k,children:[(0,G.jsx)(`button`,{onClick:()=>N(!0),className:`w-full h-1.5 bg-bambu-dark-secondary flex justify-center items-center shrink-0 touch-none`,"aria-label":`Open quick menu`,children:(0,G.jsx)(`div`,{className:`w-8 h-0.5 rounded-full bg-zinc-600`})}),(0,G.jsx)(k0e,{selectedPrinterId:e,onPrinterChange:t,deviceOnline:m}),(0,G.jsx)(`main`,{className:`flex-1 overflow-y-auto`,children:(0,G.jsx)(Ir,{context:{selectedPrinterId:e,setSelectedPrinterId:t,sbState:h,setAlert:r,displayBrightness:i,setDisplayBrightness:a}})}),!A&&(0,G.jsx)(M0e,{alert:n}),!A&&(0,G.jsx)(j0e,{}),(0,G.jsx)(V0e,{onVisibilityChange:j})]}),(0,G.jsx)(N0e,{isOpen:M,onClose:()=>N(!1),deviceId:p?.device_id??null,deviceOnline:m})]})}function W9({color:e,isEmpty:t,size:n=32}){return t?(0,G.jsx)(`div`,{className:`rounded-full border-2 border-dashed border-zinc-500 flex items-center justify-center`,style:{width:n,height:n},children:(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-zinc-600`})}):(0,G.jsxs)(`svg`,{width:n,height:n,viewBox:`0 0 32 32`,children:[(0,G.jsx)(`circle`,{cx:`16`,cy:`16`,r:`14`,fill:e,stroke:`white`,strokeWidth:`1.5`,strokeOpacity:`0.7`}),(0,G.jsx)(`circle`,{cx:`16`,cy:`16`,r:`11`,fill:e,style:{filter:`brightness(0.85)`}})]})}var U0e=`spoolbuddy-default-core-weight`;function W0e(){try{let e=localStorage.getItem(U0e);if(e){let t=parseInt(e,10);if(t>=0&&t<=500)return t}}catch{}return 250}function G0e({spool:e,scaleWeight:t,onClose:n,onSyncWeight:r,onAssignToAms:i,isAssigned:a,onUnassignFromAms:o}){let{t:s}=U(),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),f=Af(e.rgba),p=e.core_weight&&e.core_weight>0?e.core_weight:W0e(),m=t===null?null:Math.round(Math.max(0,t)),h=m===null?null:Math.round(Math.max(0,m-p)),g=Math.round(e.label_weight||1e3),_=h===null?null:Math.min(100,Math.round(h/g*100)),v=_===null?`#808080`:_>50?`#22c55e`:_>20?`#eab308`:`#ef4444`,b=Math.max(0,(e.label_weight||0)-(e.weight_used||0))+p,x=m===null?null:m-b,S=x===null?null:Math.abs(x)<=50,C=async()=>{if(t!==null){l(!0);try{await Od.updateSpoolWeight(e.id,Math.round(t)),d(!0),r?.(),setTimeout(()=>d(!1),3e3)}catch(e){console.error(`Failed to sync weight:`,e)}finally{l(!1)}}};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center space-y-4 max-w-md`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-5`,children:[(0,G.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,G.jsx)(W9,{color:f,isEmpty:!1,size:100}),_!==null&&(0,G.jsxs)(`div`,{className:`absolute -bottom-2 -right-2 px-2 py-0.5 rounded-full text-xs font-bold text-white shadow-lg`,style:{backgroundColor:v},children:[_,`%`]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-zinc-400`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]}),h!==null&&(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-3xl font-bold font-mono text-zinc-100`,children:[h,`g`]}),(0,G.jsxs)(`span`,{className:`text-sm text-zinc-500`,children:[`/ `,g,`g`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mt-0.5`,children:s(`spoolbuddy.spool.remaining`,`Remaining`)}),(0,G.jsx)(`div`,{className:`mt-2 max-w-xs`,children:(0,G.jsx)(`div`,{className:`h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500`,style:{width:`${_}%`,backgroundColor:v}})})})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-2 text-sm bg-zinc-800 rounded-lg p-4 w-full`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.grossWeight`,`Gross weight`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300`,children:m===null?`—`:`${m}g`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.spool.coreWeight`,`Core`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[p,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.spoolSize`,`Spool size`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[g,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.spool.scaleWeight`,`Scale`)}),m===null?(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`—`}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 font-mono ${S?`text-green-500`:`text-yellow-500`}`,children:[m,`g`,S?(0,G.jsx)(fs,{className:`w-3.5 h-3.5`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`button`,{onClick:C,className:`p-1 hover:bg-green-500/20 rounded transition-colors text-green-500`,title:s(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`),children:(0,G.jsx)(Hl,{className:`w-4 h-4`})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:s(`spoolbuddy.dashboard.tagId`,`Tag`)}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-zinc-400 truncate max-w-[120px]`,title:e.tag_uid||``,children:e.tag_uid?e.tag_uid.slice(-8):`—`})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[i&&(0,G.jsx)(`button`,{onClick:a?void 0:i,disabled:!!a,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px] disabled:opacity-50 disabled:cursor-not-allowed`,children:s(`spoolbuddy.modal.assignToAms`,`Assign to AMS`)}),o&&(0,G.jsxs)(`button`,{onClick:o,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-red-600/20 text-red-400 hover:bg-red-600/30 transition-colors min-h-[44px]`,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 inline mr-1`}),s(`inventory.unassignSpool`)]}),(0,G.jsx)(`button`,{onClick:C,disabled:t===null||c,className:`px-5 py-2.5 rounded-lg text-sm font-medium transition-colors min-h-[44px] ${u?`bg-green-600/20 text-green-400`:i?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600 disabled:opacity-40 disabled:cursor-not-allowed`:`bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed`}`,children:c?`...`:u?s(`spoolbuddy.dashboard.weightSynced`,`Synced!`):s(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`)}),n&&(0,G.jsx)(`button`,{onClick:n,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:s(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function K0e({tagUid:e,scaleWeight:t,coreWeight:n,onLinkSpool:r,onAddToInventory:i,onClose:a}){let{t:o}=U(),s=n??W0e(),c=t===null?null:Math.round(Math.max(0,t)),l=c===null?null:Math.round(Math.max(0,c-s));return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-5`,children:[(0,G.jsx)(`div`,{className:`w-20 h-20 rounded-2xl bg-green-500/15 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-10 h-10 text-green-500`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z`})})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:o(`spoolbuddy.dashboard.newTag`,`New Tag Detected`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500 font-mono mt-1`,children:e})]}),c!==null&&(0,G.jsxs)(`div`,{className:`text-sm text-zinc-400`,children:[(0,G.jsxs)(`span`,{className:`font-mono font-semibold`,children:[c,`g`]}),` `,o(`spoolbuddy.dashboard.onScale`,`on scale`),l!==null&&l>0&&(0,G.jsxs)(`span`,{className:`text-zinc-500`,children:[` • ~`,l,`g filament`]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-2 justify-center`,children:[i&&(0,G.jsx)(`button`,{onClick:i,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:o(`spoolbuddy.modal.addToInventory`,`Add to Inventory`)}),r&&(0,G.jsxs)(`button`,{onClick:r,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 inline-block mr-1.5 -mt-0.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1`})}),o(`inventory.assignSpool`,`Assign Spool`)]}),a&&(0,G.jsx)(`button`,{onClick:a,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:o(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function q0e(e){return e?`#${e.slice(0,6)}`:`#808080`}function J0e(e){return!e.tray_type||e.tray_type===``}function Y0e(e){if(e.tray_type)return null;if(e.exists===!0)return`reset`;if(e.exists===!1)return`physical`;let t=e.state??null;return t===9||t===10?`physical`:`reset`}function X0e(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function Z0e({className:e}){return(0,G.jsx)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,G.jsx)(`path`,{d:`M17.8131 0.00538C18.4463 -0.15091 20.3648 3.14642 20.8264 3.84781C25.4187 10.816 35.3089 26.9368 35.9383 34.8694C37.4182 53.5822 11.882 61.3357 2.53721 45.3789C-1.73471 38.0791 0.016 32.2049 3.178 25.0232C6.99221 16.3662 12.6411 7.90372 17.8131 0.00538ZM18.3738 7.24807L17.5881 7.48441C14.4452 12.9431 10.917 18.2341 8.19369 23.9368C4.6808 31.29 1.18317 38.5479 7.69403 45.5657C17.3058 55.9228 34.9847 46.8808 31.4604 32.8681C29.2558 24.0969 22.4207 15.2913 18.3776 7.24807H18.3738Z`,fill:`#C3C2C1`})})}function Q0e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 35 53`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.3165 0.0038C17.932 -0.14959 19.7971 3.08645 20.2458 3.77481C24.7103 10.6135 34.3251 26.4346 34.937 34.2198C36.3757 52.5848 11.5505 60.1942 2.46584 44.534C-1.68714 37.3735 0.0148 31.6085 3.08879 24.5603C6.79681 16.0605 12.2884 7.75907 17.3165 0.0038ZM17.8615 7.11561L17.0977 7.34755C14.0423 12.7048 10.6124 17.8974 7.96483 23.4941C4.54975 30.7107 1.14949 37.8337 7.47908 44.721C16.8233 54.8856 34.01 46.0117 30.5838 32.2595C28.4405 23.6512 21.7957 15.0093 17.8652 7.11561H17.8615Z`,fill:`#C3C2C1`}),(0,G.jsx)(`path`,{d:`M5.03547 30.112C9.64453 30.4936 11.632 35.7985 16.4154 35.791C19.6339 35.7873 20.2161 33.2283 22.3853 31.6197C31.6776 24.7286 33.5835 37.4894 27.9881 44.4254C18.1878 56.5653 -1.16063 44.6013 5.03917 30.1158L5.03547 30.112Z`,fill:`#1F8FEB`})]})}function $0e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 36 54`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M17.9625 4.48059L4.77216 26.3154L2.08228 40.2175L10.0224 50.8414H23.1594L33.3246 42.1693V30.2455L17.9625 4.48059Z`,fill:`#1F8FEB`}),(0,G.jsx)(`path`,{d:`M17.7948 0.00538C18.4273 -0.15091 20.3438 3.14642 20.8048 3.84781C25.3921 10.816 35.2715 26.9368 35.9001 34.8694C37.3784 53.5822 11.8702 61.3357 2.53562 45.3789C-1.73163 38.0829 0.0134 32.2087 3.1757 25.027C6.98574 16.3662 12.6284 7.90372 17.7948 0.00538ZM18.3549 7.24807L17.57 7.48441C14.4306 12.9431 10.9063 18.2341 8.1859 23.9368C4.67686 31.29 1.18305 38.5479 7.68679 45.5657C17.2881 55.9228 34.9476 46.8808 31.4271 32.8681C29.2249 24.0969 22.3974 15.2913 18.3587 7.24807H18.3549Z`,fill:`#C3C2C1`})]})}function e2e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2.5`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function t2e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`8`,width:`3`,height:`4.5`,fill:`#d4a017`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#d4a017`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function n2e({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 12 20`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,G.jsx)(`rect`,{x:`4.5`,y:`3`,width:`3`,height:`9.5`,fill:`#c62828`,rx:`0.5`}),(0,G.jsx)(`circle`,{cx:`6`,cy:`15`,r:`2`,fill:`#c62828`}),(0,G.jsx)(`path`,{d:`M6 0.5C4.6 0.5 3.5 1.6 3.5 3V12.1C2.6 12.8 2 13.9 2 15C2 17.2 3.8 19 6 19C8.2 19 10 17.2 10 15C10 13.9 9.4 12.8 8.5 12.1V3C8.5 1.6 7.4 0.5 6 0.5Z`,stroke:`#C3C2C1`,strokeWidth:`1`,fill:`none`})]})}function r2e({humidity:e,goodThreshold:t=40,fairThreshold:n=60}){let r,i;return e<=t?(r=`#22a352`,i=Z0e):e<=n?(r=`#d4a017`,i=Q0e):(r=`#c62828`,i=$0e),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(i,{className:`w-3 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums text-xs`,style:{color:r},children:[e,`%`]})]})}function i2e({temp:e,goodThreshold:t=28,fairThreshold:n=35}){let r,i;return e<=t?(r=`#22a352`,i=e2e):e<=n?(r=`#d4a017`,i=t2e):(r=`#c62828`,i=n2e),(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,G.jsx)(i,{className:`w-3 h-3.5`}),(0,G.jsxs)(`span`,{className:`font-medium tabular-nums text-xs`,style:{color:r},children:[e,`°C`]})]})}function G9({side:e}){return(0,G.jsx)(`span`,{className:`inline-flex items-center justify-center w-4 h-4 text-[9px] font-bold rounded`,style:{backgroundColor:`#1a4d2e`,color:`#00ae42`},children:e})}function a2e({tray:e,slotIndex:t,isActive:n,fillOverride:r,spoolmanFill:i,onClick:a}){let o=J0e(e),s=Y0e(e),c=q0e(e.tray_color),l=e.remain!==null&&e.remain!==void 0&&e.remain>=0?e.remain:null,u=i??(r===0&&l!==null&&l>0?null:r)??l;return(0,G.jsxs)(`div`,{className:`relative flex flex-col items-center p-2.5 rounded-lg transition-all ${n?`ring-2 ring-bambu-green`:``} ${a?`cursor-pointer hover:bg-white/5`:``}`,onClick:a,title:a?`AMS Slot ${t+1}`:void 0,children:[(0,G.jsxs)(`div`,{className:`relative w-16 h-16 mb-1`,children:[o?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-3 h-3 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:c}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:c,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]}),n&&(0,G.jsx)(`div`,{className:`absolute -bottom-1 left-1/2 -translate-x-1/2 w-2.5 h-2.5 bg-bambu-green rounded-full`})]}),(0,G.jsx)(`span`,{className:`text-sm text-white/70 truncate max-w-full`,title:s===`reset`?`Spool loaded — slot not configured`:void 0,children:o?s===`reset`?`?`:`Empty`:e.tray_type||`Unknown`}),!o&&u!==null&&u>=0&&(0,G.jsx)(`div`,{className:`w-full h-1 bg-bambu-dark-tertiary rounded-full overflow-hidden mt-1`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all`,style:{width:`${u}%`,backgroundColor:Np(u)}})}),(0,G.jsx)(`span`,{className:`absolute top-1 right-1 text-xs text-white/30`,children:t+1})]})}function o2e({unit:e,activeSlot:t,onConfigureSlot:n,isDualNozzle:r,nozzleSide:i,thresholds:a,fillOverrides:o,spoolmanFillOverrides:s}){let c=e.tray||[],l=e.is_ams_ht,u=l?1:4;return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-white font-medium text-base`,children:X0e(e.id)}),r&&i&&(0,G.jsx)(G9,{side:i})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.temp!=null&&(0,G.jsx)(i2e,{temp:e.temp,goodThreshold:a?.tempGood,fairThreshold:a?.tempFair}),e.humidity!=null&&(0,G.jsx)(r2e,{humidity:e.humidity,goodThreshold:a?.humidityGood,fairThreshold:a?.humidityFair})]})]}),(0,G.jsx)(`div`,{className:`grid ${l?`grid-cols-1 max-w-[100px] mx-auto`:`grid-cols-4`} gap-2`,children:Array.from({length:u}).map((r,i)=>{let a=c[i]||{id:i,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null};return(0,G.jsx)(a2e,{tray:a,slotIndex:i,isActive:t===i,fillOverride:o?.[`${e.id}-${i}`]??null,spoolmanFill:s?.[`${e.id}-${i}`]??null,onClick:n?()=>n(e.id,i,J0e(a)?null:a):void 0},i)})})]})}function K9(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function q9(e){return!e.tray_type||e.tray_type===``}function s2e(e){return e?`#${e.slice(0,6)}`:`#808080`}var J9=e=>(e??``).trim().toUpperCase();function c2e(e,t){let n=J9(e),r=J9(t);return!n||!r?`none`:n===r?`exact`:r.includes(n)||n.includes(r)?`partial`:`none`}function l2e(e,t){let n=J9(e),r=J9(t);return!n||!r?!1:n===r}function Y9({isOpen:e,onClose:t,spool:n,printerId:r,spoolmanMode:i=!1}){let{t:a}=U(),o=co(),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null);(0,y.useEffect)(()=>{e&&(c(null),u(null),f(!1),m(null),g(null))},[e]);let _=(0,y.useCallback)(e=>{e.key===`Escape`&&t()},[t]);(0,y.useEffect)(()=>(e&&document.addEventListener(`keydown`,_),()=>document.removeEventListener(`keydown`,_)),[e,_]);let{data:v}=K({queryKey:[`printerStatus`,r],queryFn:()=>Z.getPrinterStatus(r),enabled:e&&r!==null,refetchInterval:5e3}),{data:b}=K({queryKey:[`printer`,r],queryFn:()=>Z.getPrinter(r),enabled:e&&r!==null}),{data:x}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),enabled:e,staleTime:300*1e3}),{data:S}=K({queryKey:[`spool-assignments`,r],queryFn:()=>Z.getAssignments(r),enabled:e&&r!==null,staleTime:30*1e3}),{data:C=[]}=K({queryKey:[`spoolman-slot-assignments`,r],queryFn:()=>Z.getSpoolmanSlotAssignments(r??void 0),enabled:e&&!!i&&r!==null,staleTime:30*1e3}),w=i?C.find(e=>e.spoolman_spool_id===n.id):void 0,T=(0,y.useMemo)(()=>{let e={};if(!S)return e;for(let t of S){let n=t.spool;if(n&&n.label_weight>0&&n.weight_used!=null){let r=Math.round(Math.max(0,n.label_weight-n.weight_used)/n.label_weight*100);e[`${t.ams_id}-${t.tray_id}`]=r}}return e},[S]),E=x?{humidityGood:Number(x.ams_humidity_good)||40,humidityFair:Number(x.ams_humidity_fair)||60,tempGood:Number(x.ams_temp_good)||28,tempFair:Number(x.ams_temp_fair)||35}:void 0,D=v?.connected??!1,O=(0,y.useMemo)(()=>v?.ams??[],[v?.ams]),k=(0,y.useMemo)(()=>O.filter(e=>!e.is_ams_ht),[O]),A=(0,y.useMemo)(()=>O.filter(e=>e.is_ams_ht),[O]),j=(0,y.useMemo)(()=>[...v?.vt_tray??[]].sort((e,t)=>(e.id??254)-(t.id??254)),[v?.vt_tray]),M=b?.nozzle_count===2||v?.temperatures?.nozzle_2!==void 0,N=(0,y.useRef)({});(0,y.useEffect)(()=>{v?.ams_extruder_map&&Object.keys(v.ams_extruder_map).length>0&&(N.current=v.ams_extruder_map)},[v?.ams_extruder_map]);let P=v?.ams_extruder_map&&Object.keys(v.ams_extruder_map).length>0?v.ams_extruder_map:N.current,F=v?.fila_switch?.installed===!0,I=(0,y.useCallback)(e=>{if(!M)return null;let t=P[String(e)];return t===void 0?F?null:(e>=128?e-128:e)===1?`L`:`R`:t===1?`L`:`R`},[M,P,F]),L=q({mutationFn:async({amsId:e,trayId:t})=>{if(!r)throw Error(`No printer selected`);return i?await Z.assignSpoolmanSlot({spoolman_spool_id:n.id,printer_id:r,ams_id:e,tray_id:t}):await Z.assignSpool({spool_id:n.id,printer_id:r,ams_id:e,tray_id:t})},onSuccess:e=>{u(`success`);let n=e&&`pending_config`in e&&e.pending_config;c(n?a(`spoolbuddy.modal.assignPendingInsert`,`Assigned. Slot will configure when you insert the spool.`):a(`spoolbuddy.modal.assignSuccess`,`Assigned!`)),o.invalidateQueries({queryKey:[`slotPresets`]}),o.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),o.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),setTimeout(()=>t(),n?2500:1500)},onError:e=>{u(`error`),c(e instanceof Error?e.message:a(`spoolbuddy.modal.assignError`,`Failed to assign spool.`))}}),R=L.isPending,z=(0,y.useCallback)((e,t)=>{if(e===254||e===255){let n=e===254?254:254+t;return j.find(e=>(e.id??254)===n)||null}return O.find(t=>t.id===e)?.tray?.find(e=>e.id===t)||null},[O,j]),B=(0,y.useCallback)((e,t)=>e<=3?`${K9(e)} ${a(`ams.slot`,`Slot`)} ${t+1}`:e>=128&&e<=135?K9(e):e===254?a(`printers.extL`,`Ext-L`):M?a(`printers.extR`,`Ext-R`):a(`printers.ext`,`Ext`),[a,M]),V=(0,y.useCallback)((e,t)=>{u(`info`),c(a(`spoolbuddy.modal.assigning`,`Configuring slot...`)),L.mutate({amsId:e,trayId:t})},[L,a]),ee=(0,y.useCallback)((e,t)=>{if(!R){if(!x?.disable_filament_warnings){let r=z(e,t);if(r&&!q9(r)){let i=r.tray_sub_brands||r.tray_type||``,a=c2e(n.material,i),o=n.slicer_filament_name||n.slicer_filament,s=r.tray_type||``,c=l2e(o,s);if(a!==`exact`){let r;r=a===`none`&&!c?`material_profile`:a===`partial`&&!c?`partial_profile`:a===`none`?`material`:`partial`;let l=B(e,t);g({amsId:e,trayId:t}),m({type:r,spoolMaterial:n.material||``,trayMaterial:i||``,spoolProfile:o||void 0,trayProfile:s||void 0,location:l}),f(!0);return}}}V(e,t)}},[R,x?.disable_filament_warnings,n,z,B,V]),te=(0,y.useCallback)(()=>{h&&(f(!1),m(null),V(h.amsId,h.trayId),g(null))},[h,V]),ne=(0,y.useMemo)(()=>{let e=[];for(let t of A){let n=t.tray?.[0]||{id:0,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null},r=T[`${t.id}-0`]??null,i=n.remain!=null&&n.remain>=0?n.remain:null,a=r===0&&i!==null&&i>0?null:r;e.push({key:`ht-${t.id}`,label:K9(t.id),amsId:t.id,trayId:0,tray:n,isEmpty:q9(n),nozzleSide:I(t.id),effectiveFill:a??i})}for(let t of j){let n=t.id??254,r=n-254,i=T[`255-${r}`]??null,o=t.remain!=null&&t.remain>=0?t.remain:null,s=i===0&&o!==null&&o>0?null:i;e.push({key:`ext-${n}`,label:M?n===254?a(`printers.extL`,`Ext-L`):a(`printers.extR`,`Ext-R`):a(`printers.ext`,`Ext`),amsId:255,trayId:r,tray:t,isEmpty:q9(t),nozzleSide:M?n===254?`L`:`R`:null,effectiveFill:s??o})}return e},[A,j,M,a,I,T]);return e?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`fixed inset-0 z-[60] bg-bambu-dark flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-3 border-b border-zinc-800 shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`w-7 h-7 rounded-full shrink-0`,style:Mf(n.rgba)}),(0,G.jsx)(`div`,{className:`min-w-0`,children:(0,G.jsxs)(`h2`,{className:`text-sm font-semibold text-zinc-100 truncate`,children:[a(`spoolbuddy.modal.assignToAmsTitle`,`Assign to AMS`),(0,G.jsxs)(`span`,{className:`font-normal text-zinc-500 ml-2`,children:[n.color_name||`Unknown`,` • `,n.brand,` `,n.material,n.subtype&&` ${n.subtype}`]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 ml-2 shrink-0`,children:[`#`,n.id]})]})})]}),(0,G.jsx)(`button`,{onClick:t,disabled:R,className:`p-2 rounded-lg text-zinc-500 hover:text-zinc-300 hover:bg-zinc-800 transition-colors shrink-0 disabled:opacity-50`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),s&&(0,G.jsxs)(`div`,{className:`mx-5 mt-3 p-3 rounded-lg flex items-center gap-3 border shrink-0 ${l===`info`?`bg-blue-500/10 border-blue-500/40`:l===`success`?`bg-green-500/10 border-green-500/40`:`bg-red-500/10 border-red-500/40`}`,children:[l===`info`&&(0,G.jsx)(Y,{className:`w-4 h-4 text-blue-400 animate-spin shrink-0`}),l===`success`&&(0,G.jsx)(xs,{className:`w-4 h-4 text-green-400 shrink-0`}),l===`error`&&(0,G.jsx)(Ds,{className:`w-4 h-4 text-red-400 shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm ${l===`info`?`text-blue-300`:l===`success`?`text-green-300`:`text-red-300`}`,children:s})]}),(0,G.jsx)(`div`,{className:`flex-1 flex flex-col gap-3 p-4 min-h-0 overflow-y-auto`,children:!D&&r?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`text-center text-white/50`,children:(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:a(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)})})}):O.length===0&&j.length===0?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:a(`spoolbuddy.ams.noData`,`No AMS detected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:a(`spoolbuddy.ams.connectAms`,`Connect an AMS to see filament slots`)})]})}):(0,G.jsxs)(G.Fragment,{children:[k.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3 flex-1 min-h-0`,children:k.map(e=>(0,G.jsx)(o2e,{unit:e,activeSlot:w?.ams_id===e.id?w.tray_id??null:null,onConfigureSlot:(t,n)=>ee(e.id,n),isDualNozzle:M,nozzleSide:I(e.id),thresholds:E,fillOverrides:T},e.id))}),ne.length>0&&(0,G.jsx)(`div`,{className:`flex gap-2 shrink-0`,children:ne.map(({key:e,label:t,amsId:n,trayId:r,tray:i,isEmpty:a,nozzleSide:o,effectiveFill:s})=>{let c=s2e(i.tray_color);return(0,G.jsxs)(`div`,{onClick:()=>ee(n,r),className:`bg-bambu-dark-secondary rounded-lg px-3 py-2 cursor-pointer hover:bg-bambu-dark-secondary/80 transition-all flex items-center gap-2 ${w&&w.ams_id===n&&w.tray_id===r?`ring-2 ring-bambu-green`:``} ${R?`opacity-50 pointer-events-none`:``}`,children:[(0,G.jsx)(`div`,{className:`relative w-10 h-10 shrink-0`,children:a?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:c}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:c,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-white/50 font-medium`,children:t}),o&&(0,G.jsx)(G9,{side:o})]}),(0,G.jsx)(`div`,{className:`text-sm text-white/80 truncate`,children:a?`Empty`:i.tray_type||`?`})]}),!a&&s!=null&&s>=0&&(0,G.jsx)(`div`,{className:`w-1.5 h-8 bg-bambu-dark-tertiary rounded-full overflow-hidden shrink-0 flex flex-col-reverse`,children:(0,G.jsx)(`div`,{className:`w-full rounded-full`,style:{height:`${s}%`,backgroundColor:Np(s)}})})]},e)})})]})}),(0,G.jsx)(`div`,{className:`flex justify-end gap-3 px-5 py-3 border-t border-zinc-800 shrink-0`,children:(0,G.jsx)(`button`,{onClick:t,disabled:R,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-800 text-zinc-300 hover:bg-zinc-700 transition-colors min-h-[44px] disabled:opacity-50`,children:l===`success`?a(`spoolbuddy.dashboard.close`,`Close`):a(`spoolbuddy.modal.cancel`,`Cancel`)})})]}),d&&p&&(()=>{let e=``;return p.type===`material`?e=a(`inventory.assignMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location}):p.type===`partial`?e=a(`inventory.assignPartialMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location}):p.type===`material_profile`?e=`${a(`inventory.assignMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location})}\n\n${a(`inventory.assignProfileMismatchMessage`,{spoolProfile:p.spoolProfile||a(`common.unknown`),trayProfile:p.trayProfile||a(`common.unknown`),location:p.location})}`:p.type===`partial_profile`&&(e=`${a(`inventory.assignPartialMismatchMessage`,{spoolMaterial:p.spoolMaterial,trayMaterial:p.trayMaterial,location:p.location})}\n\n${a(`inventory.assignProfileMismatchMessage`,{spoolProfile:p.spoolProfile||a(`common.unknown`),trayProfile:p.trayProfile||a(`common.unknown`),location:p.location})}`),e=`${e}\n\n${a(`inventory.assignReconfigureNote`)}`,(0,G.jsx)(of,{title:a(`inventory.assignMismatchTitle`),message:e,confirmText:a(`inventory.assignMismatchConfirm`),variant:`warning`,isLoading:L.isPending,onConfirm:te,onCancel:()=>{L.isPending||(f(!1),g(null),m(null))}})})()]}):null}function u2e({isOpen:e,onClose:t,tagId:n,untaggedSpools:r,onLink:i}){let{t:a}=U(),[o,s]=(0,y.useState)(null),c=(0,y.useCallback)(()=>{s(null),t()},[t]),l=(0,y.useCallback)(e=>{e.key===`Escape`&&c()},[c]);return(0,y.useEffect)(()=>(e&&(document.addEventListener(`keydown`,l),document.body.style.overflow=`hidden`),()=>{document.removeEventListener(`keydown`,l),document.body.style.overflow=``}),[e,l]),e?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 animate-fade-in`,onClick:c,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-xl shadow-2xl w-full max-w-lg mx-4 animate-slide-up`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-4 border-b border-zinc-700`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{className:`text-base font-semibold text-zinc-100`,children:a(`spoolbuddy.dashboard.linkTagTitle`,`Link Tag to Spool`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500 font-mono`,children:n})]}),(0,G.jsx)(`button`,{onClick:c,className:`p-2 rounded-lg text-zinc-500 hover:text-zinc-300 hover:bg-zinc-700 transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`px-5 py-4 space-y-3 max-h-[400px] overflow-y-auto`,children:[(0,G.jsx)(`p`,{className:`text-sm text-zinc-400`,children:a(`spoolbuddy.dashboard.selectSpool`,`Select a spool to link this tag to:`)}),r.length===0?(0,G.jsx)(`div`,{className:`text-center py-8 text-zinc-500`,children:a(`spoolbuddy.dashboard.noUntagged`,`No spools without tags found`)}):(0,G.jsx)(`div`,{className:`space-y-2`,children:r.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(e),className:`w-full flex items-center gap-3 p-3 rounded-lg border-2 transition-all text-left ${o?.id===e.id?`border-green-500 bg-green-500/10`:`border-zinc-700 hover:border-green-500/50 hover:bg-zinc-700/50`}`,children:[(0,G.jsx)(W9,{color:Af(e.rgba),isEmpty:!1,size:40}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`font-medium text-zinc-100 truncate`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`div`,{className:`text-sm text-zinc-400 truncate`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]})]}),(0,G.jsxs)(`div`,{className:`text-sm font-mono text-zinc-500`,children:[Math.max(0,e.label_weight-e.weight_used),`g`]})]},e.id))})]}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2 px-5 py-4 border-t border-zinc-700`,children:[(0,G.jsx)(`button`,{onClick:c,className:`px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:a(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:()=>{o&&(i(o),s(null))},disabled:!o,className:`px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors min-h-[44px]`,children:a(`spoolbuddy.dashboard.linkTag`,`Link Tag`)})]})]})}):null}function d2e(e){return e?e.replace(/[^0-9a-f]/gi,``).toUpperCase():``}function f2e(e,t){let n=d2e(e),r=d2e(t);return!n||!r?!1:n===r?!0:n.endsWith(r)||r.endsWith(n)}var p2e=[`#00AE42`,`#FF6B35`,`#3B82F6`,`#EF4444`,`#A855F7`,`#FBBF24`,`#14B8A6`,`#EC4899`,`#F97316`,`#22C55E`];function m2e(){let{t:e}=U(),[t,n]=(0,y.useState)(0);(0,y.useEffect)(()=>{let e=setInterval(()=>{n(e=>(e+1)%p2e.length)},5e3);return()=>clearInterval(e)},[]);let r=p2e[t];return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,G.jsxs)(`div`,{className:`relative mb-6 flex items-center justify-center`,style:{width:160,height:160},children:[(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center pointer-events-none`,children:[0,1].map(e=>(0,G.jsx)(`div`,{className:`absolute rounded-full border spoolbuddy-optimized-ping`,style:{width:80,height:80,borderColor:`${r}4D`,transition:`border-color 140ms linear`,animationDelay:`${e*.8}s`}},e))}),(0,G.jsxs)(`div`,{className:`relative overflow-hidden rounded-full`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full opacity-30 spoolbuddy-spool-glow`,style:{background:`radial-gradient(circle, ${r} 0%, transparent 70%)`}}),(0,G.jsx)(`div`,{className:`relative`,style:{transition:`opacity 140ms linear`},children:(0,G.jsx)(W9,{color:r,isEmpty:!1,size:100})})]})]}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xl font-medium text-zinc-300`,children:e(`spoolbuddy.dashboard.readyToScan`,`Ready to scan`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-500`,children:e(`spoolbuddy.dashboard.idleMessage`,`Place a spool on the scale to identify it`)})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-sm text-zinc-600`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})}),(0,G.jsx)(`span`,{children:e(`spoolbuddy.dashboard.nfcHint`,`NFC tag will be read automatically`)})]})]})}function h2e(){let{t:e}=U();return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,G.jsx)(`div`,{className:`relative mb-6 flex items-center justify-center`,style:{width:160,height:160},children:(0,G.jsx)(`div`,{className:`w-24 h-24 rounded-full bg-zinc-800 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-12 h-12 text-zinc-600`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`1.5`,d:`M18.364 5.636a9 9 0 010 12.728m0 0l-12.728-12.728m12.728 12.728L5.636 5.636m12.728 0a9 9 0 00-12.728 0m0 12.728a9 9 0 010-12.728`})})})}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-lg font-medium text-zinc-500`,children:e(`spoolbuddy.status.deviceOffline`,`Device Offline`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-600`,children:e(`spoolbuddy.status.connectDisplay`,`Connect the SpoolBuddy display to scan spools`)})]}),(0,G.jsxs)(`div`,{className:`mt-6 flex items-center gap-2 text-xs text-zinc-600`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.14 0M1.394 9.393c5.857-5.857 15.355-5.857 21.213 0`})}),(0,G.jsx)(`span`,{children:e(`spoolbuddy.status.waitingConnection`,`Waiting for device connection...`)})]})]})}function g2e(){let{sbState:e,selectedPrinterId:t}=lr(),{t:n}=U(),{showToast:r}=qd(),{data:i}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),a=i?.spoolman_enabled===`true`&&!!i?.spoolman_url,{data:o=[],refetch:s}=K({queryKey:a?[`spoolman-inventory-spools`]:[`inventory-spools`],queryFn:()=>a?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),enabled:i!==void 0}),{data:c=[]}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:a,staleTime:3*1e3,refetchInterval:3*1e3,refetchIntervalInBackground:!1}),{data:l=[]}=K({queryKey:[`printers`],queryFn:()=>Z.getPrinters()}),u=Co({queries:l.map(e=>({queryKey:[`printerStatus`,e.id],queryFn:()=>Z.getPrinterStatus(e.id),refetchInterval:1e4,select:e=>({connected:e?.connected,awaiting_plate_clear:e?.awaiting_plate_clear===!0})}))}),d=l.map((e,t)=>({printer:e,pending:u[t]?.data?.awaiting_plate_clear===!0})).filter(e=>e.pending),f=co(),p=q({mutationFn:e=>Z.clearPlate(e),onSuccess:(e,t)=>{f.setQueryData([`printerStatus`,t],e=>e&&{...e,awaiting_plate_clear:!1}),r(n(`spoolbuddy.dashboard.plateClearedToast`,`Plate marked as cleared`),`success`)},onError:()=>{r(n(`spoolbuddy.dashboard.plateClearFailed`,`Could not mark plate as cleared`),`error`)}}),m=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{f.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),f.invalidateQueries({queryKey:[`spoolman-inventory-spools`]})},onError:()=>r(n(`inventory.unassignFailed`,`Failed to unassign spool`),`error`)}),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(null),M=e.matchedSpool?.tag_uid??e.unknownTagUid??null,N=e.weight,P=e.weightStable,F=(0,y.useRef)(null);N===null?F.current=null:(F.current===null||Math.abs(N-F.current)>=3||P)&&(F.current=N);let I=F.current,L=(0,y.useMemo)(()=>{if(e.matchedSpool?.id){let t=o.find(t=>t.id===e.matchedSpool?.id);if(t)return t}return h&&(o.find(e=>f2e(e.tag_uid,h))||A)||null},[h,e.matchedSpool,o,A]),R=(0,y.useMemo)(()=>{if(L&&!A)return L;let t=e.matchedSpool;return t?{id:t.id,tag_uid:t.tag_uid,material:t.material,subtype:t.subtype,color_name:t.color_name,rgba:t.rgba,brand:t.brand,label_weight:t.label_weight,core_weight:t.core_weight,weight_used:t.weight_used}:null},[L,A,e.matchedSpool]),z=a&&R!=null?c.some(e=>e.spoolman_spool_id===R.id):!1,B=(0,y.useMemo)(()=>a?o.filter(e=>!e.tag_uid&&!e.tray_uuid&&!e.archived_at):o.filter(e=>!e.tag_uid&&!e.archived_at),[o,a]);(0,y.useEffect)(()=>{if(M){let e=b===M;(h!==null&&h!==M||!e&&h!==M)&&(g(M),v(null),x(null),j(null)),!e&&N!==null&&P&&v(Math.round(Math.max(0,N)))}else b&&(g(null),x(null),v(null),j(null))},[M,N,P,h,b]);let V=()=>{x(h)},ee=async t=>{if(h)try{if(a){let i=e.unknownTagUid||void 0,a=!e.unknownTagUid&&e.unknownTrayUuid?e.unknownTrayUuid:void 0;if(!i&&!a){r(n(`spoolman.linkFailed`),`error`);return}let o=await Z.linkTagToSpoolmanSpool(t.id,{tray_uuid:a,tag_uid:i});if(!o){r(n(`spoolman.linkFailed`),`error`);return}let{id:s,material:c,subtype:l,color_name:u,rgba:d,brand:f,label_weight:p,core_weight:m,weight_used:h}=o;j({id:s,material:c,subtype:l,color_name:u,rgba:d,brand:f,label_weight:p,core_weight:m,weight_used:h}),r(n(`spoolman.linkSuccess`),`success`)}else await Z.linkTagToSpool(t.id,{tag_uid:h,tag_type:`generic`,data_origin:`nfc_link`});s()}catch(e){console.error(`Failed to link tag:`,e),r(n(`spoolman.linkFailed`),`error`)}finally{C(!1)}},te=async()=>{if(h){k(!0);try{let t=ne??_;if(a){let n=await Z.createSpoolmanInventorySpool({material:`PLA`,subtype:null,color_name:null,rgba:null,extra_colors:null,effect_type:null,brand:null,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,nozzle_temp_min:null,nozzle_temp_max:null,note:null,added_full:null,last_used:null,encode_time:null,tag_uid:null,tray_uuid:null,data_origin:null,tag_type:null,cost_per_kg:null,last_scale_weight:t===null?null:Math.round(t),last_weighed_at:t===null?null:new Date().toISOString(),category:null,low_stock_threshold_pct:null});await Z.linkTagToSpoolmanSpool(n.id,{tag_uid:e.unknownTagUid||void 0,tray_uuid:!e.unknownTagUid&&e.unknownTrayUuid?e.unknownTrayUuid:void 0})}else await Z.createSpool({material:`PLA`,subtype:null,color_name:null,rgba:null,extra_colors:null,effect_type:null,brand:null,label_weight:1e3,core_weight:250,core_weight_catalog_id:null,weight_used:0,slicer_filament:null,slicer_filament_name:null,nozzle_temp_min:null,nozzle_temp_max:null,note:null,added_full:null,last_used:null,encode_time:null,tag_uid:h,tray_uuid:null,data_origin:`spoolbuddy`,tag_type:`generic`,cost_per_kg:null,last_scale_weight:t===null?null:Math.round(t),last_weighed_at:t===null?null:new Date().toISOString(),category:null,low_stock_threshold_pct:null})}catch(e){let t=e instanceof Error?e.message:String(e);console.error(`Failed to quick-add spool:`,t),r(t||n(`spoolbuddy.errors.quickAddFailed`,`Failed to add spool`),`error`)}finally{D(!1),k(!1),s()}}},ne=N!==null&&(M===h||M===null&&h!==null)?N:null,re=o.length,ie=new Set(o.map(e=>e.material)).size,ae=new Set(o.filter(e=>e.brand).map(e=>e.brand)).size;return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-6 px-4 py-1.5 bg-zinc-800/50 rounded-xl border border-zinc-700/50 mb-3 shrink-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:re}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.inventory.spools`,`Spools`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-zinc-700`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:ie}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.material`,`Materials`)})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-zinc-700`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xl font-bold text-zinc-100`,children:ae}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.brand`,`Brands`)})]})]}),(0,G.jsxs)(`div`,{className:`flex-1 flex gap-4 min-h-0`,children:[(0,G.jsxs)(`div`,{className:`w-5/12 flex flex-col min-h-0`,children:[(0,G.jsxs)(`div`,{className:`border border-dashed border-zinc-700/50 rounded-xl p-4`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-3`,children:n(`spoolbuddy.dashboard.device`,`Device`)}),(0,G.jsxs)(`div`,{className:`space-y-2.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full ${e.deviceOnline?`bg-green-500`:`bg-red-500`}`}),(0,G.jsx)(`span`,{className:`text-base text-zinc-400`,children:e.deviceOnline?n(`spoolbuddy.status.online`,`Online`):n(`spoolbuddy.status.offline`,`Disconnected`)})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-zinc-800/50 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 ${e.deviceOnline?`text-green-500`:`text-zinc-500`}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3`})}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:n(`spoolbuddy.spool.scaleWeight`,`Scale`)})]}),(0,G.jsx)(`span`,{className:`text-lg font-mono font-semibold text-zinc-100`,children:I===null?`—`:`${Math.abs(I)<=20?0:Math.round(Math.max(0,I))}g`})]}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-zinc-800/50 rounded-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 ${e.deviceOnline?`text-green-500`:`text-zinc-500`}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A2 2 0 013 12V7a4 4 0 014-4z`})}),(0,G.jsx)(`span`,{className:`text-sm text-zinc-500`,children:`NFC`})]}),(0,G.jsx)(`span`,{className:`text-sm font-medium ${M?`text-green-500`:`text-zinc-500`}`,children:M?n(`spoolbuddy.dashboard.tagDetected`,`Tag detected`):n(`spoolbuddy.dashboard.noTag`,`No tag`)})]})]})]}),l.length>0&&(0,G.jsxs)(`div`,{className:`mt-3 border border-dashed border-zinc-700/50 rounded-xl p-4`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-2.5`,children:n(`spoolbuddy.dashboard.printers`,`Printers`)}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2 overflow-hidden`,children:l.map((e,t)=>{let n=u[t]?.data?.connected??!1;return(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2.5 py-1 bg-zinc-800/50 rounded-lg`,title:`${e.name} — ${n?`Online`:`Offline`}`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${n?`bg-green-500`:`bg-zinc-600`}`}),(0,G.jsx)(`span`,{className:`text-xs text-zinc-400 truncate max-w-[100px]`,children:e.name})]},e.id)})}),d.length>0&&(0,G.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,"data-testid":`plate-clear-section`,"aria-label":n(`spoolbuddy.dashboard.plateReadyLabel`,`Plates ready to clear`),children:d.map(({printer:e})=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>p.mutate(e.id),disabled:p.isPending,"data-testid":`plate-clear-button-${e.id}`,title:n(`spoolbuddy.dashboard.plateReady`,`Plate ready: {{name}}`,{name:e.name}),className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg bg-amber-500/10 hover:bg-amber-500/20 active:bg-amber-500/30 border border-amber-500/30 text-amber-200 transition-colors disabled:opacity-60 disabled:cursor-wait`,children:[(0,G.jsxs)(`svg`,{className:`w-3 h-3 shrink-0`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,G.jsx)(`path`,{d:`M12 9v4`}),(0,G.jsx)(`path`,{d:`M12 17h.01`}),(0,G.jsx)(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`})]}),(0,G.jsx)(`span`,{className:`text-xs truncate max-w-[100px]`,children:e.name}),(0,G.jsx)(`span`,{className:`text-xs opacity-70`,"aria-hidden":`true`,children:`·`}),(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:n(`spoolbuddy.dashboard.plateClearAction`,`Clear`)})]},e.id))})]})]}),(0,G.jsx)(`div`,{className:`w-7/12 min-h-0`,children:(0,G.jsxs)(`div`,{className:`border border-dashed border-zinc-700/50 rounded-xl p-6 h-full flex flex-col`,children:[(0,G.jsx)(`h2`,{className:`text-sm font-semibold text-zinc-400 uppercase tracking-wide mb-4 shrink-0`,children:n(`spoolbuddy.dashboard.currentSpool`,`Current Spool`)}),(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center min-h-0`,children:e.deviceOnline?(L||e.matchedSpool)&&h&&b!==h?(0,G.jsx)(G0e,{spool:(()=>{let t=L??e.matchedSpool;return{id:t.id,tag_uid:h,material:t.material,subtype:t.subtype,color_name:t.color_name,rgba:t.rgba,brand:t.brand,label_weight:t.label_weight,core_weight:t.core_weight,weight_used:t.weight_used}})(),scaleWeight:ne??_,onSyncWeight:()=>s(),onAssignToAms:()=>T(!0),isAssigned:z,onUnassignFromAms:z&&L?.id!=null?()=>m.mutate(L.id):void 0,onClose:V}):M&&h&&!L&&!e.matchedSpool&&b!==h?(0,G.jsx)(K0e,{tagUid:h,scaleWeight:ne??_,onLinkSpool:B.length>0?()=>C(!0):void 0,onAddToInventory:()=>D(!0),onClose:V}):(0,G.jsx)(m2e,{}):(0,G.jsx)(h2e,{})})]})})]}),R&&!A&&h&&(0,G.jsx)(Y9,{isOpen:w,onClose:()=>T(!1),spool:R,printerId:t,spoolmanMode:a}),h&&(0,G.jsx)(u2e,{isOpen:S,onClose:()=>C(!1),tagId:h,untaggedSpools:B,onLink:ee}),E&&h&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/60`,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-2xl p-6 mx-4 max-w-sm w-full border border-zinc-700`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100 mb-3`,children:n(`spoolbuddy.modal.addToInventory`,`Add to Inventory`)}),(0,G.jsxs)(`div`,{className:`flex gap-2.5 p-3 bg-amber-500/10 border border-amber-500/20 rounded-lg mb-4`,children:[(0,G.jsx)(`svg`,{className:`w-5 h-5 text-amber-500 shrink-0 mt-0.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,d:`M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z`})}),(0,G.jsx)(`p`,{className:`text-sm text-amber-200/80`,children:n(`spoolbuddy.modal.quickAddHint`,`For best results, add the spool in the Bambuddy web interface first (with material, color, brand), then use "Assign Spool" here to assign the NFC tag.`)})]}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-400 mb-1`,children:n(`spoolbuddy.modal.quickAddDesc`,`This will create a basic PLA spool entry with this NFC tag. You can edit the details later in Bambuddy.`)}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 font-mono mb-5`,children:h}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>D(!1),className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:n(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:te,disabled:O,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-50 transition-colors min-h-[44px]`,children:O?n(`common.saving`,`Saving...`):n(`spoolbuddy.modal.addAnyway`,`Add Anyway`)})]})]})})]})}function _2e(e){return e<=3?`AMS ${String.fromCharCode(65+e)}`:e>=128&&e<=135?`AMS HT ${String.fromCharCode(65+e-128)}`:`AMS ${e}`}function v2e(e){return e?{O1D:`H2D`,O1E:`H2D Pro`,O2D:`H2D Pro`,O1C:`H2C`,O1C2:`H2C`,O1S:`H2S`,"BL-P001":`X1C`,"BL-P002":`X1`,"BL-P003":`X1E`,N6:`X2D`,N9:`A2L`,C11:`P1S`,C12:`P1P`,C13:`P2S`,N2S:`A1`,N1:`A1 Mini`,X1C:`X1C`,X1:`X1`,X1E:`X1E`,X2D:`X2D`,P1S:`P1S`,P1P:`P1P`,P2S:`P2S`,A1:`A1`,"A1 Mini":`A1 Mini`,A2L:`A2L`,H2D:`H2D`,"H2D Pro":`H2D Pro`,H2C:`H2C`,H2S:`H2S`}[e]||e:``}function X9(e){return!e.tray_type||e.tray_type===``}function y2e(e){return e?`#${e.slice(0,6)}`:`#808080`}function b2e(){let{selectedPrinterId:e,setAlert:t}=lr(),{t:n}=U(),r=co(),{showToast:i}=qd(),{data:a}=K({queryKey:[`printerStatus`,e],queryFn:()=>Z.getPrinterStatus(e),enabled:e!==null,staleTime:30*1e3}),{data:o}=K({queryKey:[`printer`,e],queryFn:()=>Z.getPrinter(e),enabled:e!==null,staleTime:60*1e3}),{data:s}=K({queryKey:[`slotPresets`,e],queryFn:()=>Z.getSlotPresets(e),enabled:e!==null,staleTime:120*1e3}),{data:c}=K({queryKey:[`settings`],queryFn:()=>Z.getSettings(),staleTime:300*1e3}),{data:l}=K({queryKey:[`spoolman-status`],queryFn:Z.getSpoolmanStatus,staleTime:60*1e3}),u=l?.enabled&&l?.connected,{data:d}=K({queryKey:[`linked-spools`],queryFn:Z.getLinkedSpools,enabled:!!u,staleTime:30*1e3}),f=d?.linked,{data:p=[]}=K({queryKey:[`spoolman-slot-assignments-all`],queryFn:()=>Z.getSpoolmanSlotAssignments(),enabled:!!u,staleTime:30*1e3}),{data:m=[]}=K({queryKey:[`spoolman-inventory-spools`],queryFn:()=>Z.getSpoolmanInventorySpools(!1),enabled:!!u,staleTime:30*1e3}),{data:h}=K({queryKey:[`spool-assignments`,e],queryFn:()=>Z.getAssignments(e),enabled:e!==null,staleTime:30*1e3}),g=(0,y.useMemo)(()=>{let e={};if(!h)return e;for(let t of h){let n=t.spool;if(n&&n.label_weight>0&&n.weight_used!=null){let r=Math.round(Math.max(0,n.label_weight-n.weight_used)/n.label_weight*100);e[`${t.ams_id}-${t.tray_id}`]=r}}return e},[h]),_=o?.serial_number??``,v=(0,y.useCallback)((t,n,r)=>{if(e!==null&&p.length&&m.length){let r=p.find(r=>r.printer_id===e&&r.ams_id===t&&r.tray_id===n);if(r){let e=m.find(e=>e.id===r.spoolman_spool_id);if(e&&(e.label_weight??0)>0)return Math.round(Math.max(0,e.label_weight-e.weight_used)/e.label_weight*100)}}if(f&&_){let e=(r?.tray_uuid||r?.tag_uid||Lp(_,t,n))?.toUpperCase(),i=Pp(e?f[e]:void 0);if(i!==null)return i}return null},[f,_,e,p,m]),b=a?.connected??!1,x=(0,y.useRef)({});(0,y.useEffect)(()=>{e&&a?.ams&&a.ams.length>0&&(x.current[e]=a.ams)},[a?.ams,e]);let S=(0,y.useMemo)(()=>{let t=a?.ams;return t&&t.length>0?t:(e?x.current[e]:null)??[]},[a?.ams,e]),C=(0,y.useMemo)(()=>S.filter(e=>!e.is_ams_ht),[S]),w=(0,y.useMemo)(()=>S.filter(e=>e.is_ams_ht),[S]),T=(0,y.useMemo)(()=>{let e={};if(!f||!_)return e;for(let t of C)for(let n=0;n<(t.tray?.length??0);n++){let r=t.tray[n],i=v(t.id,n,X9(r)?null:r);i!==null&&(e[`${t.id}-${n}`]=i)}return e},[f,_,C,v]),E=(0,y.useRef)(void 0),D=a?.tray_now;D!==void 0&&D!==255?E.current=D:D===255&&(E.current=void 0);let O=D!==void 0&&D!==255?D:E.current,k=o?.nozzle_count===2||a?.temperatures?.nozzle_2!==void 0,A=(0,y.useMemo)(()=>[...a?.vt_tray??[]].sort((e,t)=>(e.id??254)-(t.id??254)),[a?.vt_tray]),j=c?{humidityGood:Number(c.ams_humidity_good)||40,humidityFair:Number(c.ams_humidity_fair)||60,tempGood:Number(c.ams_temp_good)||28,tempFair:Number(c.ams_temp_fair)||35}:void 0,M=(0,y.useRef)({});(0,y.useEffect)(()=>{a?.ams_extruder_map&&Object.keys(a.ams_extruder_map).length>0&&(M.current=a.ams_extruder_map)},[a?.ams_extruder_map]);let N=a?.ams_extruder_map&&Object.keys(a.ams_extruder_map).length>0?a.ams_extruder_map:M.current,P=(0,y.useCallback)(e=>{if(!k)return null;let t=N[String(e)],n=e>=128?e-128:e;return(t===void 0?n:t)===1?`L`:`R`},[k,N]),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),[V,ee]=(0,y.useState)(null),te=(0,y.useCallback)((e,t)=>h?.find(n=>n.ams_id===Number(e)&&n.tray_id===Number(t)),[h]),ne=(0,y.useCallback)((e,t,n)=>{if(!f||!_)return;let r=(n?.tray_uuid||n?.tag_uid||Lp(_,e,t))?.toUpperCase();return r?f[r]:void 0},[f,_]),re=q({mutationFn:({printerId:e,amsId:t,trayId:n})=>Z.unassignSpool(e,t,n),onSuccess:()=>{r.invalidateQueries({queryKey:[`spool-assignments`,e]}),r.invalidateQueries({queryKey:[`spool-assignments`]}),i(n(`inventory.unassignSuccess`,`Spool unassigned`),`success`),R(null)}}),ie=q({mutationFn:e=>Z.unlinkSpool(e),onSuccess:e=>{i(n(`spoolman.unlinkSuccess`)||e?.message,`success`),r.invalidateQueries({queryKey:[`linked-spools`]}),r.invalidateQueries({queryKey:[`unlinked-spools`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),r.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),R(null)},onError:e=>{i(e.message||n(`spoolman.unlinkFailed`),`error`)}}),ae=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{i(n(`inventory.unassignSuccess`,`Spool unassigned`),`success`),r.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),r.invalidateQueries({queryKey:[`spoolman-slot-assignments-all`]}),r.invalidateQueries({queryKey:[`spoolman-inventory-spools`]}),r.invalidateQueries({queryKey:[`unlinked-spools`]}),r.invalidateQueries({queryKey:[`linked-spools`]}),R(null)},onError:e=>{i(e.message||n(`inventory.assignFailed`,`Failed to unassign spool`),`error`)}}),oe=(0,y.useCallback)(e=>O===void 0?null:e<=3&&Math.floor(O/4)===e?O%4:e>=128&&e<=135&&O===Mp(e,0,!1)?0:null,[O]),se=(0,y.useCallback)((e,t,n)=>{let r=Mp(e,t,!1),i=s?.[r],a=N[String(e)],o=e>=128?e-128:e,c=a===void 0?o:a;R({amsId:e,trayId:t,trayCount:n&&e>=128?1:4,tray:n,trayType:n?.tray_type||void 0,trayColor:n?.tray_color||void 0,traySubBrands:n?.tray_sub_brands||void 0,trayInfoIdx:n?.tray_info_idx||void 0,extruderId:k?c:void 0,caliIdx:n?.cali_idx,savedPresetId:i?.preset_id,location:`${_2e(e)} Slot ${t+1}`})},[s,N,k]),H=(0,y.useCallback)(e=>{let t=e.id??254,n=t-254,r=s?.[1020+n];R({amsId:255,trayId:n,trayCount:1,tray:X9(e)?null:e,trayType:e.tray_type||void 0,trayColor:e.tray_color||void 0,traySubBrands:e.tray_sub_brands||void 0,trayInfoIdx:e.tray_info_idx||void 0,extruderId:k?+(t===254):void 0,caliIdx:e.cali_idx,savedPresetId:r?.preset_id,location:k?t===254?`Ext-L`:`Ext-R`:`External`})},[s,k]),ce=(0,y.useCallback)(()=>{if(!L)return;let{tray:e,location:t,...n}=L;R(null),I(n)},[L]),le=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n,trayType:r,trayColor:i,location:a}=L;R(null),B({printerId:e,amsId:t,trayId:n,trayInfo:{type:r||``,material:r,color:i?.slice(0,6)||``,location:a}})},[L,e]),ue=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n,tray:r}=L,i=(r?.tray_uuid||r?.tag_uid||Lp(_,t,n))?.toUpperCase()||``;R(null),ee({tagUid:r?.tag_uid||i,trayUuid:r?.tray_uuid||``,printerId:e,amsId:t,trayId:n})},[L,e,_]),de=(0,y.useCallback)(()=>{if(!L||!e)return;let{amsId:t,trayId:n}=L;re.mutate({printerId:e,amsId:t,trayId:n})},[L,e,re]);(0,y.useEffect)(()=>{if(!b&&e){t({type:`warning`,message:n(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)});return}for(let e of S){let n=e.tray||[];for(let r=0;r=0&&i.remain<15&&i.tray_type){let n=e.id===254||e.id===255,a=!n&&e.id>=128,o=jp(e.id,r,a,n);t({type:`warning`,message:`Low Filament: ${i.tray_type} (${o}) - ${i.remain}% remaining`});return}}}t(null)},[S,b,e,t,n]);let fe=(0,y.useMemo)(()=>{let e=[];for(let t of w){let n=t.tray?.[0]||{id:0,tray_color:null,tray_type:``,tray_sub_brands:null,tray_id_name:null,tray_info_idx:null,remain:-1,k:null,cali_idx:null,tag_uid:null,tray_uuid:null,nozzle_temp_min:null,nozzle_temp_max:null},r=v(t.id,0,X9(n)?null:n),i=g[`${t.id}-0`]??null,a=n.remain!=null&&n.remain>=0?n.remain:null,o=i===0&&a!==null&&a>0?null:i;e.push({key:`ht-${t.id}`,label:_2e(t.id),tray:n,isEmpty:X9(n),isActive:oe(t.id)===0,temp:t.temp,humidity:t.humidity,nozzleSide:P(t.id),effectiveFill:r??o??a,onClick:()=>se(t.id,0,X9(n)?null:n)})}for(let t of A){let r=t.id??254,i=k&&O===254?r===254&&a?.active_extruder===1||r===255&&a?.active_extruder===0:O===r,o=r-254,s=v(255,o,X9(t)?null:t),c=g[`255-${o}`]??null,l=t.remain!=null&&t.remain>=0?t.remain:null,u=c===0&&l!==null&&l>0?null:c;e.push({key:`ext-${r}`,label:k?r===254?n(`printers.extL`,`Ext-L`):n(`printers.extR`,`Ext-R`):n(`printers.ext`,`Ext`),tray:t,isEmpty:X9(t),isActive:i,nozzleSide:null,effectiveFill:s??u??l,onClick:()=>H(t)})}return e},[w,A,k,O,a?.active_extruder,n,oe,P,se,H,g,v]);return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:e?b?S.length===0&&A.length===0?(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(Jc,{className:`w-12 h-12 mx-auto mb-3 opacity-50`}),(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.noData`,`No AMS detected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.ams.connectAms`,`Connect an AMS to see filament slots`)})]})}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-3 h-full`,children:[(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:C.map(e=>(0,G.jsx)(o2e,{unit:e,activeSlot:oe(e.id),onConfigureSlot:se,isDualNozzle:k,nozzleSide:P(e.id),thresholds:j,fillOverrides:g,spoolmanFillOverrides:T},e.id))}),fe.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-3`,children:fe.map(({key:e,label:t,tray:n,isEmpty:r,isActive:i,temp:a,humidity:o,nozzleSide:s,effectiveFill:c,onClick:l})=>{let u=y2e(n.tray_color);return(0,G.jsxs)(`div`,{className:`bg-bambu-dark-secondary rounded-lg px-3 py-2 cursor-pointer hover:bg-bambu-dark-secondary/80 transition-all flex items-center gap-3 ${i?`ring-2 ring-bambu-green`:``}`,onClick:l,children:[(0,G.jsxs)(`div`,{className:`relative w-10 h-10 flex-shrink-0`,children:[r?(0,G.jsx)(`div`,{className:`w-full h-full rounded-full border-2 border-dashed border-gray-500 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`w-1.5 h-1.5 rounded-full bg-gray-600`})}):(0,G.jsxs)(`svg`,{viewBox:`0 0 56 56`,className:`w-full h-full`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:u}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:u,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]}),i&&(0,G.jsx)(`div`,{className:`absolute -bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 bg-bambu-green rounded-full`})]}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`text-xs text-white/50 font-medium truncate`,children:t}),s&&(0,G.jsx)(G9,{side:s})]}),(0,G.jsx)(`div`,{className:`text-sm text-white/80 truncate`,children:r?`Empty`:n.tray_type||`?`}),(a!=null||o!=null)&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[a!=null&&(0,G.jsx)(i2e,{temp:a,goodThreshold:j?.tempGood,fairThreshold:j?.tempFair}),o!=null&&(0,G.jsx)(r2e,{humidity:o,goodThreshold:j?.humidityGood,fairThreshold:j?.humidityFair})]})]}),!r&&c!=null&&c>=0&&(0,G.jsx)(`div`,{className:`w-1.5 h-8 bg-bambu-dark-tertiary rounded-full overflow-hidden flex-shrink-0 flex flex-col-reverse`,children:(0,G.jsx)(`div`,{className:`w-full rounded-full`,style:{height:`${c}%`,backgroundColor:Np(c)}})})]},e)})})]}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsx)(`div`,{className:`text-center text-white/50`,children:(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.printerDisconnected`,`Printer disconnected`)})})}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center h-full`,children:(0,G.jsxs)(`div`,{className:`text-center text-white/50`,children:[(0,G.jsx)(`p`,{className:`text-lg mb-2`,children:n(`spoolbuddy.ams.noPrinter`,`No printer selected`)}),(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.ams.selectPrinter`,`Select a printer from the top bar`)})]})})}),F&&e&&(0,G.jsx)(mU,{isOpen:!!F,onClose:()=>I(null),printerId:e,slotInfo:F,printerModel:v2e(o?.model??null)||void 0,nozzleDiameter:Gp(a,F.amsId),fullScreen:!0,onSuccess:()=>{r.invalidateQueries({queryKey:[`slotPresets`,e]}),r.invalidateQueries({queryKey:[`printerStatus`,e]})}}),L&&e&&(()=>{let t=te(L.amsId,L.trayId),r=ne(L.amsId,L.trayId,L.tray),i=u?p.find(t=>t.printer_id===e&&t.ams_id===L.amsId&&t.tray_id===L.trayId):void 0,a=i?m.find(e=>e.id===i.spoolman_spool_id)??null:null;return(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/60 backdrop-blur-sm`,onClick:()=>R(null)}),(0,G.jsxs)(`div`,{className:`relative w-full max-w-sm mx-4 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-xl shadow-2xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-bambu-dark-tertiary`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[L.trayColor&&(0,G.jsx)(`span`,{className:`w-4 h-4 rounded-full border border-black/20`,style:{backgroundColor:`#${L.trayColor.slice(0,6)}`}}),(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:L.location}),L.traySubBrands&&(0,G.jsxs)(`span`,{className:`text-sm text-bambu-gray`,children:[`(`,L.traySubBrands,`)`]})]}),(0,G.jsx)(`button`,{onClick:()=>R(null),className:`p-1 text-bambu-gray hover:text-white rounded transition-colors`,children:(0,G.jsx)(nd,{className:`w-5 h-5`})})]}),(0,G.jsxs)(`div`,{className:`p-4 space-y-2`,children:[!u&&t?.spool&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`inventory.assignedSpool`,`Assigned spool`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t.spool.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(t.spool.rgba)}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[t.spool.brand?`${t.spool.brand} `:``,t.spool.material,t.spool.subtype?` ${t.spool.subtype}`:``,t.spool.color_name?` - ${t.spool.color_name}`:``]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0 ml-auto`,children:[`#`,t.spool.id]})]})]}),u&&r&&!a&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`spoolman.linkedSpool`,`Linked spool`)}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[`Spoolman #`,r.id,r.remaining_weight==null?``:` (${Math.round(r.remaining_weight)}g)`]})})]}),u&&a&&(0,G.jsxs)(`div`,{className:`p-2.5 bg-bambu-dark rounded-lg border border-bambu-dark-tertiary mb-3`,children:[(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray mb-1`,children:n(`inventory.assignedSpool`,`Assigned spool`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[a.rgba&&(0,G.jsx)(`span`,{className:`w-3 h-3 rounded-full border border-black/20 flex-shrink-0`,style:Mf(a.rgba)}),(0,G.jsxs)(`span`,{className:`text-sm text-white`,children:[a.brand?`${a.brand} `:``,a.material,a.subtype?` ${a.subtype}`:``,a.color_name?` - ${a.color_name}`:``]})]})]}),(0,G.jsxs)(`button`,{onClick:ce,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-blue transition-colors text-left`,children:[(0,G.jsx)(nu,{className:`w-5 h-5 text-bambu-blue flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`configureAmsSlot.title`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.configureDesc`,`Set filament preset, K-profile, and color`)})]})]}),!u&&(Kp(L?.tray)?null:t?(0,G.jsxs)(`button`,{onClick:de,disabled:re.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`,`Unassign`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unassignDesc`,`Remove inventory spool from this slot`)})]})]}):(0,G.jsxs)(`button`,{onClick:le,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left`,children:[(0,G.jsx)(Cl,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.assignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.assignDesc`,`Track a spool from your inventory`)})]})]})),u&&(r?.id?(0,G.jsxs)(`button`,{onClick:()=>ie.mutate(r.id),disabled:ie.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left active:opacity-50`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unlinkDesc`,`Remove Spoolman link from this slot`)})]})]}):a?(0,G.jsxs)(`button`,{onClick:()=>ae.mutate(a.id),disabled:ae.isPending,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-amber-500 transition-colors text-left active:opacity-50`,children:[(0,G.jsx)(Bu,{className:`w-5 h-5 text-amber-400 flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-amber-400 font-medium`,children:n(`inventory.unassignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.unassignDesc`,`Remove inventory spool from this slot`)})]})]}):(0,G.jsxs)(`button`,{onClick:ue,className:`w-full flex items-center gap-3 p-3 rounded-lg bg-bambu-dark border border-bambu-dark-tertiary hover:border-bambu-green transition-colors text-left`,children:[(0,G.jsx)(Xc,{className:`w-5 h-5 text-bambu-green flex-shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`text-white font-medium`,children:n(`inventory.assignSpool`)}),(0,G.jsx)(`p`,{className:`text-xs text-bambu-gray`,children:n(`spoolbuddy.ams.linkDesc`,`Link a Spoolman spool to this slot`)})]})]}))]})]})]})})(),z&&(0,G.jsx)(TH,{isOpen:!!z,onClose:()=>{B(null),r.invalidateQueries({queryKey:[`spool-assignments`,e]}),r.invalidateQueries({queryKey:[`spool-assignments`]})},printerId:z.printerId,amsId:z.amsId,trayId:z.trayId,trayInfo:z.trayInfo,spoolmanEnabled:!!u}),V&&(0,G.jsx)(CH,{isOpen:!!V,onClose:()=>ee(null),tagUid:V.tagUid,trayUuid:V.trayUuid,printerId:V.printerId,amsId:V.amsId,trayId:V.trayId})]})}function x2e({type:e,deviceId:t,onClose:n}){let{t:r}=U(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!i&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,n]);let f=(0,y.useCallback)(async()=>{a(!0),s(``),l(``),d(!0);try{s(r(`spoolbuddy.diagnostic.queuing`,`Queuing diagnostic on device... +`)),await Od.queueDiagnostics(t,e);let n=null,i=0;for(;i<60&&!n;){await new Promise(e=>setTimeout(e,500));try{n=await Od.getDiagnosticResult(t,e);break}catch{i++,i%4==0&&s(e=>e+`.`)}}if(!n)throw Error(`Diagnostic timed out - device did not report results`);s(n.output),n.success||l(`Exit code: ${n.exit_code}`)}catch(e){l(e instanceof Error?e.message:`Unknown error`),s(``)}finally{a(!1)}},[e,t,r]);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 animate-fade-in`,onClick:n,children:(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg shadow-xl w-full max-w-2xl mx-4 max-h-[80vh] flex flex-col animate-slide-up`,onClick:e=>e.stopPropagation(),children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center p-4 border-b border-zinc-700`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e===`scale`?r(`spoolbuddy.diagnostic.scaleTitle`,`Scale Diagnostic`):e===`read_tag`?r(`spoolbuddy.diagnostic.readTagTitle`,`Read Tag Diagnostic`):r(`spoolbuddy.diagnostic.nfcTitle`,`NFC Reader Diagnostic`)}),(0,G.jsx)(`button`,{onClick:n,className:`text-zinc-400 hover:text-white transition-colors`,"aria-label":`Close`,children:(0,G.jsx)(nd,{size:20})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-auto p-4 bg-black/50 font-mono text-sm`,children:i?(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-green-400`,children:[(0,G.jsx)(`div`,{className:`animate-spin w-4 h-4 border-2 border-green-400 border-t-transparent rounded-full`}),(0,G.jsx)(`span`,{children:r(`spoolbuddy.diagnostic.running`,`Running diagnostic on device...`)})]}):o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`text-green-400 whitespace-pre-wrap break-words`,children:o}),c&&(0,G.jsxs)(`div`,{className:`text-red-400 mt-2`,children:[`❌ `,c]})]}):u?(0,G.jsx)(`div`,{children:c?(0,G.jsxs)(`div`,{className:`text-red-400`,children:[`ERROR: `,c]}):(0,G.jsx)(`span`,{className:`text-green-400`,children:r(`spoolbuddy.diagnostic.completed`,`Diagnostic completed successfully.`)})}):(0,G.jsxs)(`div`,{className:`text-zinc-500`,children:[r(`spoolbuddy.diagnostic.clickStart`,`Click "Run Diagnostic" to start the hardware diagnostic on`),` `,t,`.`]})}),(0,G.jsxs)(`div`,{className:`flex gap-2 p-4 border-t border-zinc-700 bg-zinc-800`,children:[(0,G.jsx)(`button`,{onClick:f,disabled:i,className:`flex-1 flex items-center justify-center gap-2 bg-green-600 hover:bg-green-700 disabled:bg-gray-600 disabled:cursor-not-allowed px-4 py-2 rounded font-semibold text-white transition-colors`,children:i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`animate-spin w-4 h-4 border-2 border-white border-t-transparent rounded-full`}),r(`spoolbuddy.diagnostic.runningBtn`,`Running...`)]}):u?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Gl,{size:16}),r(`spoolbuddy.diagnostic.runAgain`,`Run Again`)]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Nl,{size:16}),r(`spoolbuddy.diagnostic.runBtn`,`Run Diagnostic`)]})}),(0,G.jsx)(`button`,{onClick:n,className:`px-4 py-2 rounded bg-zinc-700 hover:bg-zinc-600 text-white font-semibold transition-colors`,children:r(`spoolbuddy.diagnostic.close`,`Close`)})]})]})})}function S2e(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:`${Math.floor(e/3600)}h ${Math.floor(e%3600/60)}m`}function C2e(e){if(!e)return`-`;let t=rp(e);return t?t.toLocaleDateString(void 0,{month:`short`,day:`numeric`})+` `+t.toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}):`-`}var w2e=[{label:`Off`,value:0},{label:`1m`,value:60},{label:`2m`,value:120},{label:`5m`,value:300},{label:`10m`,value:600},{label:`30m`,value:1800}];function T2e({device:e}){let{t}=U(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(null);return(0,y.useEffect)(()=>{!i&&e.backend_url&&a(e.backend_url)},[e.backend_url,i]),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.nfcReader`,`NFC Reader`)}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.type`,`Type`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:e.nfc_reader_type||`N/A`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.connection`,`Connection`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:e.nfc_connection||`N/A`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.status.status`,`Status`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${e.nfc_ok?`bg-green-500`:e.nfc_reader_type?`bg-red-500`:`bg-zinc-600`}`}),(0,G.jsx)(`span`,{className:e.nfc_ok?`text-green-400`:e.nfc_reader_type?`text-red-400`:`text-zinc-500`,children:e.nfc_ok?t(`spoolbuddy.status.nfcReady`,`Ready`):e.nfc_reader_type?t(`common.error`,`Error`):t(`spoolbuddy.settings.notConnected`,`N/A`)})]})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.deviceInfo`,`Device Info`)}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.hostname`,`Host`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 truncate ml-2`,children:e.hostname})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`IP`}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:e.ip_address})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.uptime`,`Uptime`)}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:S2e(e.uptime_s)})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`ID`}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono truncate ml-2`,children:e.device_id})]})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 space-y-2`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300`,children:t(`spoolbuddy.settings.systemConfig`,`Backend & Auth`)}),(0,G.jsx)(`input`,{value:i,onChange:e=>a(e.target.value),placeholder:`http://192.168.1.100:5000`,className:`w-full px-2 py-1.5 rounded bg-zinc-900 border border-zinc-700 text-zinc-100 text-xs`}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`input`,{type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:t(`spoolbuddy.settings.apiTokenPlaceholder`,`API token`),className:`flex-1 px-2 py-1.5 rounded bg-zinc-900 border border-zinc-700 text-zinc-100 text-xs`}),(0,G.jsx)(`button`,{onClick:async()=>{if(!i.trim()){d({type:`error`,text:t(`spoolbuddy.settings.systemFieldsRequired`,`Backend URL is required.`)});return}l(!0),d(null);try{await Od.updateSystemConfig(e.device_id,i.trim(),o.trim()||void 0),d({type:`ok`,text:t(`spoolbuddy.settings.systemQueued`,`Config queued.`)})}catch(e){d({type:`error`,text:e instanceof Error?e.message:t(`common.error`,`Error`)})}finally{l(!1)}},disabled:c,className:`px-3 py-1.5 rounded bg-green-700 hover:bg-green-600 disabled:bg-zinc-700 text-xs font-medium text-zinc-100`,children:t(`spoolbuddy.settings.saveConfig`,`Save`)})]}),u&&(0,G.jsx)(`div`,{className:`text-xs ${u.type===`ok`?`text-green-400`:`text-red-400`}`,children:u.text})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 flex flex-col gap-2`,children:[(0,G.jsxs)(`button`,{onClick:()=>r(`nfc`),className:`flex-1 bg-blue-700 hover:bg-blue-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(Yu,{className:`w-4 h-4 text-blue-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-blue-100`,children:t(`spoolbuddy.settings.nfcDiagnostic`,`NFC Diagnostic`)})]}),(0,G.jsxs)(`button`,{onClick:()=>r(`scale`),className:`flex-1 bg-yellow-700 hover:bg-yellow-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(id,{className:`w-4 h-4 text-yellow-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-yellow-100`,children:t(`spoolbuddy.settings.scaleDiagnostic`,`Scale Diagnostic`)})]}),(0,G.jsxs)(`button`,{onClick:()=>r(`read_tag`),className:`flex-1 bg-emerald-700 hover:bg-emerald-600 transition-colors rounded-lg p-2 flex items-center gap-2`,children:[(0,G.jsx)(fc,{className:`w-4 h-4 text-emerald-300 shrink-0`}),(0,G.jsx)(`span`,{className:`text-xs font-medium text-emerald-100`,children:t(`spoolbuddy.settings.readTagDiagnostic`,`Read Tag`)})]})]})]}),n&&e&&(0,G.jsx)(x2e,{type:n,deviceId:e.device_id,onClose:()=>r(null)})]})}function E2e({device:e,onBrightnessChange:t}){let{t:n}=U(),[r,i]=(0,y.useState)(e.display_brightness),[a,o]=(0,y.useState)(e.display_blank_timeout),[s,c]=(0,y.useState)(!1),l=(0,y.useRef)(void 0),u=(0,y.useRef)(void 0);(0,y.useEffect)(()=>{i(e.display_brightness),o(e.display_blank_timeout)},[e.display_brightness,e.display_blank_timeout]);let d=(0,y.useCallback)(()=>{c(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>c(!1),1500)},[]),f=(0,y.useCallback)((t,n)=>{l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{Od.updateDisplay(e.device_id,t,n).then(()=>d()).catch(e=>console.error(`Failed to update display:`,e))},300)},[e.device_id,d]),p=e=>{i(e),t(e),f(e,a)},m=e=>{o(e),f(r,e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300`,children:n(`spoolbuddy.settings.brightness`,`Brightness`)}),s&&(0,G.jsxs)(`span`,{className:`text-xs text-green-400 flex items-center gap-1 animate-pulse`,children:[(0,G.jsx)(`svg`,{className:`w-3 h-3`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:3,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M5 13l4 4L19 7`})}),n(`spoolbuddy.settings.saved`,`Saved`)]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`svg`,{className:`w-4 h-4 text-zinc-500 flex-shrink-0`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z`})}),(0,G.jsx)(`input`,{type:`range`,min:0,max:100,value:r,onChange:e=>p(parseInt(e.target.value)),className:`flex-1 h-2 bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-green-500`}),(0,G.jsxs)(`span`,{className:`text-sm font-mono text-zinc-400 w-10 text-right`,children:[r,`%`]})]}),!e.has_backlight&&(0,G.jsx)(`p`,{className:`text-xs text-zinc-600 mt-2`,children:n(`spoolbuddy.settings.noBacklight`,`No DSI backlight detected. Brightness control requires a DSI display.`)})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1`,children:n(`spoolbuddy.settings.screenBlank`,`Screen Blank Timeout`)}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-3`,children:n(`spoolbuddy.settings.screenBlankDesc`,`Screen turns off after inactivity. Touch to wake.`)}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:w2e.map(e=>(0,G.jsx)(`button`,{onClick:()=>m(e.value),className:`px-3 py-2 rounded-lg text-sm font-medium transition-colors min-h-[40px] ${a===e.value?`bg-green-600 text-white`:`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`}`,children:e.label},e.value))})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-600 text-center`,children:n(`spoolbuddy.settings.displayNote`,`Brightness is applied as a software filter.`)})]})}function D2e({step:e,labels:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center w-16 shrink-0 pt-1`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-center w-7 h-7 rounded-full text-xs font-bold ${e===`tare`?`bg-green-600 text-white`:`bg-green-600/20 text-green-400`}`,children:e===`weight`?(0,G.jsx)(`svg`,{className:`w-3.5 h-3.5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:3,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M5 13l4 4L19 7`})}):`1`}),(0,G.jsx)(`span`,{className:`text-[10px] mt-0.5 ${e===`tare`?`text-green-400 font-medium`:`text-green-400/60`}`,children:t.tare}),(0,G.jsx)(`div`,{className:`w-px h-5 my-1 ${e===`weight`?`bg-green-600/40`:`bg-zinc-700`}`}),(0,G.jsx)(`div`,{className:`flex items-center justify-center w-7 h-7 rounded-full text-xs font-bold ${e===`weight`?`bg-green-600 text-white`:`bg-zinc-700 text-zinc-500`}`,children:`2`}),(0,G.jsx)(`span`,{className:`text-[10px] mt-0.5 ${e===`weight`?`text-green-400 font-medium`:`text-zinc-600`}`,children:t.weight})]})}function O2e({device:e,weight:t,weightStable:n,rawAdc:r}){let{t:i}=U(),a=co(),[o,s]=(0,y.useState)(`idle`),[c,l]=(0,y.useState)(`500`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(null),v=(0,y.useRef)(null);(0,y.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]);let b=(0,y.useCallback)(e=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>h(null),e)},[]);(0,y.useEffect)(()=>{if(!g)return;let e=()=>Date.now()-g.startedAtMs,t=setInterval(()=>{a.invalidateQueries({queryKey:[`spoolbuddy-devices`]})},1e3),n=setTimeout(()=>{_(null),h({type:`error`,msg:i(`spoolbuddy.settings.tareTimedOut`,`Tare timed out — is the SpoolBuddy daemon running?`)}),b(5e3)},Math.max(0,15e3-e()));return()=>{clearInterval(t),clearTimeout(n)}},[g,a,i,b]),(0,y.useEffect)(()=>{g&&(e?.last_calibrated_at??null)!==g.snapshot&&(_(null),h({type:`ok`,msg:i(`spoolbuddy.settings.tareComplete`,`Tare complete!`)}),b(3e3))},[e?.last_calibrated_at,g,i,b]);let x=e=>{e===`backspace`?l(e=>e.slice(0,-1)||``):e===`.`&&!c.includes(`.`)?l(e=>e+`.`):e>=`0`&&e<=`9`&&l(t=>t===`0`?e:t+e)};return o===`idle`?(0,G.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 mb-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-lg font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`})]}),(0,G.jsxs)(`div`,{className:`text-xs text-zinc-500 text-right`,children:[(0,G.jsxs)(`span`,{children:[i(`spoolbuddy.settings.tareOffset`,`Tare`),`: `,e.tare_offset]}),(0,G.jsx)(`span`,{className:`mx-1.5`,children:`·`}),(0,G.jsxs)(`span`,{children:[i(`spoolbuddy.settings.calFactor`,`Factor`),`: `,e.calibration_factor.toFixed(2)]})]})]}),e.last_calibrated_at&&(0,G.jsxs)(`div`,{className:`text-xs text-zinc-600 mt-1`,children:[i(`spoolbuddy.settings.lastCalibrated`,`Last calibrated`),`: `,C2e(e.last_calibrated_at)]})]}),m&&(0,G.jsx)(`div`,{className:`rounded-lg px-3 py-2 mb-3 text-sm ${m.type===`ok`?`bg-green-900/30 text-green-300 border border-green-800`:`bg-red-900/30 text-red-300 border border-red-800`}`,children:m.msg}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`button`,{onClick:async()=>{p(!0),h(null),v.current&&=(clearTimeout(v.current),null);let t=e?.last_calibrated_at??null;try{await Od.tare(e.device_id),h({type:`ok`,msg:i(`spoolbuddy.settings.tareSet`,`Tare command sent. Waiting for device...`)}),_({snapshot:t,startedAtMs:Date.now()})}catch{h({type:`error`,msg:i(`spoolbuddy.settings.tareFailed`,`Failed to send tare command`)}),b(5e3)}finally{p(!1)}},disabled:f,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-200 hover:bg-zinc-600 disabled:opacity-40 transition-colors min-h-[44px] flex items-center justify-center gap-2`,children:[f&&(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),i(`spoolbuddy.weight.tare`,`Tare`)]}),(0,G.jsx)(`button`,{onClick:()=>{s(`tare`),h(null)},className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:i(`spoolbuddy.weight.calibrate`,`Calibrate`)})]})]}):(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsx)(D2e,{step:o,labels:{tare:i(`spoolbuddy.weight.tare`,`Tare`),weight:i(`spoolbuddy.settings.knownWeight`,`Known weight`)}}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 bg-zinc-800 rounded-lg px-3 py-1.5 mb-1.5`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full shrink-0 ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-sm font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`}),(0,G.jsx)(`span`,{className:`text-xs ml-auto ${n?`text-green-400`:`text-amber-400`}`,children:n?i(`spoolbuddy.settings.stable`,`Stable`):i(`spoolbuddy.settings.settling`,`Settling...`)})]}),m&&(0,G.jsx)(`div`,{className:`rounded-lg px-3 py-1.5 mb-1.5 text-xs ${m.type===`ok`?`bg-green-900/30 text-green-300 border border-green-800`:`bg-red-900/30 text-red-300 border border-red-800`}`,children:m.msg}),o===`tare`?(0,G.jsx)(`p`,{className:`text-sm text-zinc-300 mb-3`,children:i(`spoolbuddy.settings.calStep1`,`Remove all items from the scale and press Set Zero.`)}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-zinc-400 shrink-0`,children:i(`spoolbuddy.settings.knownWeight`,`Known weight`)}),(0,G.jsxs)(`div`,{className:`flex-1 bg-zinc-900 border border-zinc-600 rounded px-3 py-1 text-right text-lg font-mono text-zinc-100`,children:[c||`0`,(0,G.jsx)(`span`,{className:`text-zinc-500 ml-1`,children:`g`})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1 mb-1.5`,children:[`7`,`8`,`9`,`backspace`,`4`,`5`,`6`,`.`,`1`,`2`,`3`,`0`].map(e=>(0,G.jsx)(`button`,{onClick:()=>x(e),className:`rounded text-lg font-medium transition-colors h-[48px] active:scale-95 ${e===`backspace`?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`:`bg-zinc-800 text-zinc-100 hover:bg-zinc-700 border border-zinc-700`}`,children:e===`backspace`?`⌫`:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>{s(`idle`),h(null)},className:`flex-1 px-4 py-2 rounded-lg text-sm bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors h-[40px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsxs)(`button`,{onClick:async()=>{if(o===`tare`){p(!0),h(null);try{d(r),await Od.tare(e.device_id),h({type:`ok`,msg:i(`spoolbuddy.settings.zeroSet`,`Zero point set. Place known weight on scale.`)}),s(`weight`)}catch{h({type:`error`,msg:i(`spoolbuddy.settings.tareFailed`,`Failed to send tare command`)})}finally{p(!1)}}else if(o===`weight`){let t=parseFloat(c);if(r===null||!t||t<=0)return;p(!0),h(null);try{await Od.setCalibrationFactor(e.device_id,t,r,u??void 0),h({type:`ok`,msg:i(`spoolbuddy.settings.calibrationDone`,`Calibration complete!`)}),b(3e3),s(`idle`)}catch{h({type:`error`,msg:i(`spoolbuddy.settings.calibrationFailed`,`Calibration failed`)}),b(5e3)}finally{p(!1)}}},disabled:f,className:`flex-1 px-4 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors h-[40px] flex items-center justify-center gap-2`,children:[f&&(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),o===`tare`?i(`spoolbuddy.settings.setZero`,`Set Zero`):i(`spoolbuddy.settings.calibrateNow`,`Calibrate`)]})]})]})]})}function k2e({device:e}){let{t}=U(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=e.update_status===`pending`||e.update_status===`updating`;(0,y.useEffect)(()=>{u&&n===`applying`&&r(null)},[u,n]),(0,y.useEffect)(()=>{let e=()=>{u&&setTimeout(()=>window.location.reload(),1e3)};return window.addEventListener(`spoolbuddy-online`,e),()=>window.removeEventListener(`spoolbuddy-online`,e)},[u]);let{data:d,refetch:f}=K({queryKey:[`spoolbuddy-update-check`,e.device_id],queryFn:()=>Od.checkDaemonUpdate(e.device_id),staleTime:0}),{data:p}=K({queryKey:[`spoolbuddy-ssh-key`],queryFn:()=>Od.getSSHPublicKey(),enabled:o,staleTime:1/0}),m=async()=>{r(`checking`),a(null);try{await f()}finally{r(null)}},h=async()=>{r(`applying`),a(null);try{await Od.triggerUpdate(e.device_id)}catch(e){a(e instanceof Error?e.message:`Failed to trigger update`),r(null)}},g=n!=null||u,_=()=>{p?.public_key&&(navigator.clipboard.writeText(p.public_key),l(!0),setTimeout(()=>l(!1),2e3))},v=e.firmware_version||(d?.current_version&&d.current_version!==`0.0.0`?d.current_version:null);return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3 space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between items-center text-sm`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.currentVersion`,`Current Version`)}),(0,G.jsx)(`span`,{className:`text-zinc-200 font-mono`,children:v||(0,G.jsx)(`span`,{className:`text-zinc-500 italic text-xs`,children:t(`spoolbuddy.settings.versionPending`,`Waiting for daemon...`)})})]}),g?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`svg`,{className:`w-4 h-4 animate-spin text-green-400 flex-shrink-0`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,G.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,G.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),(0,G.jsx)(`span`,{className:`text-green-300 text-xs`,children:n===`checking`?t(`spoolbuddy.settings.checking`,`Checking for updates...`):e.update_message||t(`spoolbuddy.settings.updateWaiting`,`Updating...`)})]}):e.update_status===`error`?(0,G.jsx)(`p`,{className:`text-xs text-red-300`,children:e.update_message||t(`spoolbuddy.settings.updateFailed`,`Update failed`)}):i?(0,G.jsx)(`p`,{className:`text-xs text-red-300`,children:i}):d?.update_available?(0,G.jsxs)(`p`,{className:`text-xs text-green-300`,children:[t(`spoolbuddy.settings.updateAvailable`,`Update available`),`: `,v,` → `,d.latest_version]}):null,!g&&(d?.update_available?(0,G.jsx)(`button`,{onClick:h,disabled:!e.online,className:`w-full px-3 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors`,children:e.online?t(`spoolbuddy.settings.applyUpdate`,`Apply Update`):t(`spoolbuddy.settings.deviceOffline`,`Device Offline`)}):(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:m,className:`flex-1 px-3 py-2 rounded-lg text-xs font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors`,children:t(`spoolbuddy.settings.checkUpdates`,`Check for Updates`)}),(0,G.jsx)(`button`,{onClick:h,disabled:!e.online,className:`px-3 py-2 rounded-lg text-xs font-medium bg-zinc-700 text-zinc-400 hover:bg-zinc-600 hover:text-zinc-200 disabled:opacity-40 transition-colors`,children:t(`spoolbuddy.settings.forceUpdate`,`Force Update`)})]}))]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsxs)(`button`,{onClick:()=>s(!o),className:`w-full flex justify-between items-center text-xs`,children:[(0,G.jsx)(`span`,{className:`font-medium text-zinc-400`,children:t(`spoolbuddy.settings.sshSetup`,`SSH Setup`)}),(0,G.jsx)(`svg`,{className:`w-3 h-3 text-zinc-500 transition-transform ${o?`rotate-180`:``}`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M19 9l-7 7-7-7`})})]}),o&&(0,G.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500`,children:t(`spoolbuddy.settings.sshDescription`,`SSH key is deployed automatically. For manual setup, add this key to ~/.ssh/authorized_keys on the device.`)}),p?.public_key?(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`pre`,{className:`bg-zinc-900 rounded p-2 text-[10px] text-zinc-400 font-mono break-all whitespace-pre-wrap`,children:p.public_key}),(0,G.jsx)(`button`,{onClick:_,className:`absolute top-1 right-1 px-1.5 py-0.5 rounded text-[10px] bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors`,children:c?t(`common.copied`,`Copied!`):t(`common.copy`,`Copy`)})]}):(0,G.jsx)(`span`,{className:`text-[10px] text-zinc-500 italic`,children:t(`spoolbuddy.settings.sshKeyLoading`,`Loading...`)})]})]})]})}function A2e({percent:e,color:t}){return(0,G.jsx)(`div`,{className:`w-full h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all ${t}`,style:{width:`${Math.min(100,Math.max(0,e))}%`}})})}function j2e(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`}function M2e({device:e}){let{t}=U(),n=e.system_stats;if(!n)return(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`p`,{className:`text-sm text-zinc-500`,children:t(`spoolbuddy.settings.systemStatsWaiting`,`Waiting for system stats...`)})});let r=n.memory,i=n.disk,a=(n.cpu_temp_c??0)>=80?`text-red-400`:(n.cpu_temp_c??0)>=65?`text-amber-400`:`text-green-400`,o=(r?.percent??0)>=90?`bg-red-500`:(r?.percent??0)>=70?`bg-amber-500`:`bg-green-500`,s=(i?.percent??0)>=90?`bg-red-500`:(i?.percent??0)>=70?`bg-amber-500`:`bg-green-500`;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:`CPU`}),(0,G.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.cores`,`Cores`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.cpu_count??`-`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.loadAvg`,`Load Avg`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.load_avg?n.load_avg.join(` / `):`-`})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.temp`,`Temp`)}),(0,G.jsx)(`span`,{className:`font-mono font-medium ${a}`,children:n.cpu_temp_c==null?`-`:`${n.cpu_temp_c}\u00B0C`})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-2`,children:t(`spoolbuddy.settings.memory`,`Memory`)}),r?(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(A2e,{percent:r.percent??0,color:o}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.used`,`Used`)}),(0,G.jsxs)(`span`,{className:`text-zinc-300 font-mono`,children:[r.used_mb,` / `,r.total_mb,` MB`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.available`,`Free`)}),(0,G.jsxs)(`span`,{className:`text-zinc-300 font-mono`,children:[r.available_mb,` MB`]})]})]})]}):(0,G.jsx)(`span`,{className:`text-xs text-zinc-500`,children:`-`})]})]}),(0,G.jsx)(`div`,{className:`bg-zinc-800 rounded-lg px-3 py-2`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 shrink-0`,children:t(`spoolbuddy.settings.disk`,`Disk`)}),i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`flex-1`,children:(0,G.jsx)(A2e,{percent:i.percent??0,color:s})}),(0,G.jsxs)(`span`,{className:`text-xs text-zinc-300 font-mono shrink-0`,children:[i.used_gb,` / `,i.total_gb,` GB`]})]}):(0,G.jsx)(`span`,{className:`text-xs text-zinc-500`,children:`-`})]})}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1.5`,children:t(`spoolbuddy.settings.osInfo`,`OS`)}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[n.os?.os&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.distro`,`Distro`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 truncate ml-2`,children:n.os.os})]}),n.os?.kernel&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.kernel`,`Kernel`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono truncate ml-2`,children:n.os.kernel})]}),n.os?.arch&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.arch`,`Arch`)}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.os.arch})]})]})]}),(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-3`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold text-zinc-300 mb-1.5`,children:t(`spoolbuddy.settings.runtime`,`Runtime`)}),(0,G.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[n.os?.python&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`Python`}),(0,G.jsx)(`span`,{className:`text-zinc-300 font-mono`,children:n.os.python})]}),n.system_uptime_s!=null&&(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:t(`spoolbuddy.settings.systemUptime`,`Uptime`)}),(0,G.jsx)(`span`,{className:`text-zinc-300`,children:j2e(n.system_uptime_s)})]})]})]})]})]})}function N2e(){let{sbState:e,setDisplayBrightness:t}=lr(),{t:n}=U(),[r,i]=(0,y.useState)(`device`),{data:a=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:1e4}),o=e.deviceId?a.find(t=>t.device_id===e.deviceId)??a[0]:a[0],s=[{id:`device`,label:n(`spoolbuddy.settings.tabDevice`,`Device`)},{id:`display`,label:n(`spoolbuddy.settings.tabDisplay`,`Display`)},{id:`scale`,label:n(`spoolbuddy.settings.tabScale`,`Scale`)},{id:`updates`,label:n(`spoolbuddy.settings.tabUpdates`,`Updates`)},{id:`system`,label:n(`spoolbuddy.settings.tabSystem`,`System`)}];return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsx)(`h1`,{className:`text-xl font-semibold text-zinc-100 mb-3`,children:n(`spoolbuddy.nav.settings`,`Settings`)}),(0,G.jsx)(`div`,{className:`flex gap-1 bg-zinc-800/50 rounded-lg p-1 mb-4`,children:s.map(e=>(0,G.jsx)(`button`,{onClick:()=>i(e.id),className:`flex-1 px-2 py-2 rounded-md text-sm font-medium transition-colors min-h-[36px] ${r===e.id?`bg-zinc-700 text-zinc-100`:`text-zinc-500 hover:text-zinc-300`}`,children:e.label},e.id))}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:o?(0,G.jsxs)(G.Fragment,{children:[r===`device`&&(0,G.jsx)(T2e,{device:o}),r===`display`&&(0,G.jsx)(E2e,{device:o,onBrightnessChange:t}),r===`scale`&&(0,G.jsx)(O2e,{device:o,weight:e.weight,weightStable:e.weightStable,rawAdc:e.rawAdc}),r===`updates`&&(0,G.jsx)(k2e,{device:o}),r===`system`&&(0,G.jsx)(M2e,{device:o})]}):(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`div`,{className:`text-center text-zinc-500`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:n(`spoolbuddy.settings.noDevice`,`No SpoolBuddy device found`)})})})})]})}function P2e({device:e,weight:t,weightStable:n,rawAdc:r}){let{t:i}=U(),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(`idle`),[l,u]=(0,y.useState)(`500`),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),h=e=>{e===`backspace`?u(e=>e.slice(0,-1)||``):e===`.`&&!l.includes(`.`)?u(e=>e+`.`):e>=`0`&&e<=`9`&&u(t=>t===`0`?e:t+e)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`bg-zinc-800 rounded-lg p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-400`,children:i(`spoolbuddy.settings.currentWeight`,`Current weight`)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-2 h-2 rounded-full ${n?`bg-green-500`:`bg-amber-500 animate-pulse`}`}),(0,G.jsx)(`span`,{className:`text-lg font-mono text-zinc-200`,children:t===null?`-- g`:`${t.toFixed(1)} g`})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 mt-3 text-xs`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:i(`spoolbuddy.settings.tareOffset`,`Tare offset`)}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono`,children:e.tare_offset})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:i(`spoolbuddy.settings.calFactor`,`Cal. factor`)}),(0,G.jsx)(`span`,{className:`text-zinc-400 font-mono`,children:e.calibration_factor.toFixed(2)})]})]})]}),s===`idle`?(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:async()=>{m(!0);try{await Od.tare(e.device_id)}catch(e){console.error(`Failed to tare:`,e)}finally{m(!1)}},disabled:p,className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-200 hover:bg-zinc-600 disabled:opacity-40 transition-colors min-h-[44px]`,children:p?`...`:i(`spoolbuddy.weight.tare`,`Tare`)}),(0,G.jsx)(`button`,{onClick:()=>{c(`tare`)},className:`flex-1 px-4 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px]`,children:i(`spoolbuddy.weight.calibrate`,`Calibrate`)})]}):(0,G.jsxs)(`div`,{className:`bg-zinc-800 border border-zinc-700 rounded-lg p-3 space-y-2`,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium text-zinc-200`,children:s===`tare`?i(`spoolbuddy.settings.calStep1`,`Step 1: Remove all items from the scale`):i(`spoolbuddy.settings.calStep2`,`Step 2: Place known weight on scale`)}),s===`weight`&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs text-zinc-400`,children:i(`spoolbuddy.settings.knownWeight`,`Known weight (g)`)}),(0,G.jsxs)(`div`,{className:`flex-1 bg-zinc-900 border border-zinc-600 rounded px-3 py-1.5 text-right text-base font-mono text-zinc-100`,children:[l||`0`,(0,G.jsx)(`span`,{className:`text-zinc-500 ml-1`,children:`g`})]})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-1`,children:[`7`,`8`,`9`,`backspace`,`4`,`5`,`6`,`.`,`1`,`2`,`3`,`0`].map(e=>(0,G.jsx)(`button`,{onClick:()=>h(e),className:`py-2 rounded text-sm font-medium transition-colors min-h-[36px] ${e===`backspace`?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600`:`bg-zinc-800 text-zinc-100 hover:bg-zinc-700 border border-zinc-700`}`,children:e===`backspace`?`⌫`:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>c(`idle`),className:`flex-1 px-4 py-2 rounded-lg text-sm bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[40px]`,children:i(`common.cancel`,`Cancel`)}),(0,G.jsx)(`button`,{onClick:async()=>{if(s===`tare`){o(!0);try{f(r),await Od.tare(e.device_id),c(`weight`)}catch(e){console.error(`Failed to tare:`,e)}finally{o(!1)}}else if(s===`weight`){let t=parseFloat(l);if(r===null||!t||t<=0)return;o(!0);try{await Od.setCalibrationFactor(e.device_id,t,r,d??void 0),c(`idle`)}catch(e){console.error(`Failed to calibrate:`,e)}finally{o(!1)}}},disabled:a,className:`flex-1 px-4 py-2 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 transition-colors min-h-[40px]`,children:a?`...`:s===`tare`?i(`spoolbuddy.settings.setZero`,`Set Zero`):i(`spoolbuddy.settings.calibrateNow`,`Calibrate`)})]})]})]})}function F2e(){let{sbState:e}=lr(),{t}=U(),n=or(),{data:r=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:1e4}),i=e.deviceId?r.find(t=>t.device_id===e.deviceId)??r[0]:r[0];return(0,G.jsxs)(`div`,{className:`h-full flex flex-col p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,G.jsx)(`button`,{onClick:()=>n(`/spoolbuddy/settings`),className:`p-1.5 rounded-lg text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 transition-colors`,children:(0,G.jsx)(`svg`,{className:`w-5 h-5`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,strokeWidth:2,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M15 19l-7-7 7-7`})})}),(0,G.jsx)(`h1`,{className:`text-xl font-semibold text-zinc-100`,children:t(`spoolbuddy.settings.scaleCalibration`,`Scale Calibration`)})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:i?(0,G.jsx)(P2e,{device:i,weight:e.weight,weightStable:e.weightStable,rawAdc:e.rawAdc}):(0,G.jsx)(`div`,{className:`flex items-center justify-center h-32`,children:(0,G.jsx)(`div`,{className:`text-center text-zinc-500`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:t(`spoolbuddy.settings.noDevice`,`No SpoolBuddy device found`)})})})})]})}function I2e({formData:e,printersWithCalibrations:t,selectedProfiles:n,setSelectedProfiles:r,expandedPrinters:i,setExpandedPrinters:a}){let{t:o}=U(),s=e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},c=(e,t,n)=>{let i=`${e}:${t}:${n??`null`}`,a=`${e}:${n??`null`}`;r(e=>{let t=new Set(e);if(t.has(i))t.delete(i);else{for(let e of Array.from(t)){let n=e.split(`:`);`${n[0]}:${n[2]}`===a&&t.delete(e)}t.add(i)}return t})},l=()=>{let n=new Set;for(let{printer:r,calibrations:i}of t){if(!r.connected)continue;let t=i.filter(t=>nU(t,e)),a=new Map;for(let e of t){let t=`${e.extruder_id??`null`}`;a.has(t)||a.set(t,[]),a.get(t).push(e)}for(let[e,t]of a)if(t.length>0){let i=[...t].sort((e,t)=>t.k_value-e.k_value)[0];n.add(`${r.id}:${i.cali_idx}:${e}`)}}r(n)};if(!e.material)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`inventory.selectMaterialFirst`)})});if(t.length===0)return(0,G.jsx)(`div`,{className:`p-6 bg-bambu-dark rounded-lg text-center`,children:(0,G.jsx)(`p`,{className:`text-bambu-gray`,children:o(`inventory.noPrintersConfigured`)})});let u=t.reduce((t,{printer:n,calibrations:r})=>n.connected?t+r.filter(t=>nU(t,e)).length:t,0),d=(e,t)=>{let r=`${e.id}:${t.cali_idx}:${t.extruder_id??`null`}`,i=n.has(r);return(0,G.jsxs)(`label`,{className:`flex items-center gap-3 p-3 rounded-lg cursor-pointer transition-all border ${i?`bg-bambu-green/10 border-bambu-green/30`:`bg-bambu-dark border-transparent hover:bg-bambu-dark/80`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:i,onChange:()=>c(String(e.id),t.cali_idx,t.extruder_id),className:`w-4 h-4 rounded border-bambu-dark-tertiary text-bambu-green focus:ring-bambu-green`}),(0,G.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,G.jsx)(`span`,{className:`text-sm font-medium ${i?`text-bambu-green`:`text-white`}`,children:t.name||t.filament_id})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[t.nozzle_diameter&&(0,G.jsxs)(`span`,{className:`text-xs font-mono px-2 py-0.5 rounded bg-bambu-dark text-bambu-gray`,children:[t.nozzle_diameter,`mm`]}),(0,G.jsxs)(`span`,{className:`text-xs font-mono px-2 py-0.5 rounded bg-bambu-dark text-bambu-gray`,children:[`K=`,t.k_value.toFixed(3)]})]})]},`${t.cali_idx}-${t.extruder_id}`)};return(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`p`,{className:`text-xs text-bambu-gray`,children:[o(`inventory.matchingFilter`),`: `,e.brand||o(`inventory.anyBrand`),` / `,e.material,` / `,e.subtype||o(`inventory.anyVariant`)]}),u>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:l,className:`flex items-center gap-1.5 px-2 py-1 text-xs bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray hover:text-white hover:border-bambu-green transition-colors`,children:[(0,G.jsx)(_u,{className:`w-3.5 h-3.5`}),o(`inventory.autoSelect`),` (`,u,`)`]})]}),(0,G.jsx)(`div`,{className:`space-y-3`,children:t.map(({printer:t,calibrations:n})=>{let r=i.has(String(t.id)),a=n.filter(t=>nU(t,e)),c=a.length,l=a.some(e=>e.extruder_id!==void 0&&e.extruder_id!==null&&e.extruder_id>0),u=a.filter(e=>e.extruder_id===1),f=a.filter(e=>e.extruder_id===0||e.extruder_id===void 0||e.extruder_id===null);return(0,G.jsxs)(`div`,{className:`border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>s(String(t.id)),className:`w-full px-4 py-3 flex items-center justify-between bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary transition-colors`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[r?(0,G.jsx)(ps,{className:`w-4 h-4 text-bambu-gray`}):(0,G.jsx)(ms,{className:`w-4 h-4 text-bambu-gray`}),(0,G.jsx)(`span`,{className:`font-medium text-white`,children:t.name}),c>0?(0,G.jsxs)(`span`,{className:`text-xs px-2 py-0.5 rounded-full bg-bambu-green/20 text-bambu-green`,children:[c,` `,o(c===1?`inventory.match`:`inventory.matches`)]}):(0,G.jsx)(`span`,{className:`text-xs px-2 py-0.5 rounded-full bg-bambu-dark-tertiary text-bambu-gray`,children:o(`inventory.noMatches`)})]}),(0,G.jsx)(`span`,{className:`text-xs px-2 py-1 rounded-full ${t.connected?`bg-green-500/20 text-green-500`:`bg-bambu-gray/20 text-bambu-gray`}`,children:t.connected?o(`inventory.connected`):o(`inventory.offline`)})]}),r&&(0,G.jsx)(`div`,{className:`px-4 py-3 space-y-3 bg-bambu-dark border-t border-bambu-dark-tertiary`,children:t.connected?c===0?(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:o(`inventory.noKProfilesMatch`)}):l?(0,G.jsxs)(G.Fragment,{children:[u.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.leftNozzle`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>d(t,e))})]}),f.length>0&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium text-bambu-gray uppercase tracking-wide`,children:o(`inventory.rightNozzle`)}),(0,G.jsx)(`div`,{className:`space-y-2`,children:f.map(e=>d(t,e))})]})]}):(0,G.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>d(t,e))}):(0,G.jsx)(`p`,{className:`text-sm text-bambu-gray italic py-2`,children:o(`inventory.printerOffline`)})})]},t.id)})}),n.size>0&&(0,G.jsx)(`div`,{className:`p-3 bg-bambu-green/10 border border-bambu-green/30 rounded-lg`,children:(0,G.jsxs)(`p`,{className:`text-sm text-white`,children:[(0,G.jsx)(`span`,{className:`font-semibold`,children:n.size}),` `,o(`inventory.profilesSelected`)]})})]})}var L2e=[`PLA`,`PETG`,`ABS`,`ASA`,`TPU`,`PA`,`PC`,`PVA`,`HIPS`];function R2e(){let{t:e}=U(),{showToast:t}=qd(),{sbState:n}=lr(),[r,i]=(0,y.useState)(`existing`),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(`idle`),[d,f]=(0,y.useState)(``),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(null),{data:b}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),x=b!==void 0,S=b?.spoolman_enabled===`true`&&!!b?.spoolman_url,{data:C=[],refetch:w}=K({queryKey:[S?`spoolman-inventory-spools`:`inventory-spools`,`write-tag`],queryFn:()=>S?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),refetchInterval:1e4,enabled:x}),{data:T=[]}=K({queryKey:[`spoolbuddy-devices`],queryFn:()=>Od.getDevices(),refetchInterval:5e3}),{data:E}=K({queryKey:[`settings`],queryFn:Z.getSettings}),D=T[0],O=n.deviceOnline,k=Lf(E?.currency||`USD`),A=(0,y.useMemo)(()=>{let e;if(r===`existing`)e=C.filter(e=>!e.tag_uid&&!e.archived_at);else if(r===`replace`)e=C.filter(e=>(e.tag_uid||e.tray_uuid)&&!e.archived_at);else return[];if(s){let t=s.toLowerCase();e=e.filter(e=>e.material?.toLowerCase().includes(t)||e.color_name?.toLowerCase().includes(t)||e.brand?.toLowerCase().includes(t)||e.subtype?.toLowerCase().includes(t))}return e},[C,r,s]),j=(0,y.useCallback)(e=>{let t=e.detail;(t.sak??t.data?.sak)===0&&(g(!0),v(t.tag_uid??t.data?.tag_uid??null))},[]),M=(0,y.useCallback)(e=>{let t=e.detail;g(!0),v(t.tag_uid??t.data?.tag_uid??null)},[]),N=(0,y.useCallback)(()=>{g(!1),v(null)},[]),P=(0,y.useCallback)(t=>{let n=t.detail;(n.spool_id===a?.id||n.data?.spool_id===a?.id)&&(u(`success`),f(e(`spoolbuddy.writeTag.writeSuccess`,`Tag written successfully!`)),w(),setTimeout(()=>{u(`idle`),o(null),f(``)},5e3))},[a,e,w]),F=(0,y.useCallback)(t=>{let n=t.detail;(n.spool_id===a?.id||n.data?.spool_id===a?.id)&&(u(`error`),f(n.message??n.data?.message??e(`spoolbuddy.writeTag.writeFailed`,`Write failed`)))},[a,e]);(0,y.useEffect)(()=>(window.addEventListener(`spoolbuddy-unknown-tag`,j),window.addEventListener(`spoolbuddy-tag-matched`,M),window.addEventListener(`spoolbuddy-tag-removed`,N),window.addEventListener(`spoolbuddy-tag-written`,P),window.addEventListener(`spoolbuddy-tag-write-failed`,F),()=>{window.removeEventListener(`spoolbuddy-unknown-tag`,j),window.removeEventListener(`spoolbuddy-tag-matched`,M),window.removeEventListener(`spoolbuddy-tag-removed`,N),window.removeEventListener(`spoolbuddy-tag-written`,P),window.removeEventListener(`spoolbuddy-tag-write-failed`,F)}),[j,M,N,P,F]),(0,y.useEffect)(()=>{o(null),u(`idle`),f(``),c(``)},[r]);let I=async()=>{if(!(!a||!D)){u(`writing`),f(e(`spoolbuddy.writeTag.waiting`,`Waiting for SpoolBuddy...`));try{let e=await Od.writeTag(D.device_id,a.id);if(e?.warnings?.length)for(let n of e.warnings)t(n,`warning`)}catch{u(`error`),f(e(`spoolbuddy.writeTag.queueFailed`,`Failed to queue write command`))}}},L=async()=>{if(D){try{await Od.cancelWrite(D.device_id)}catch{}u(`idle`),f(``)}},R=async()=>{if(!(!a||!z2e(a))){m(!0),u(`idle`),f(``);try{S?await Z.linkTagToSpoolmanSpool(a.id,{tag_uid:``,tray_uuid:``}):await Z.linkTagToSpool(a.id,{tag_uid:``,tray_uuid:``,data_origin:`manual`}),await w(),o(null),u(`success`),f(e(`spoolbuddy.writeTag.untagSuccess`,`Tag removed from spool`)),setTimeout(()=>{u(`idle`),f(``)},2500)}catch{u(`error`),f(e(`spoolbuddy.writeTag.untagFailed`,`Failed to remove tag from spool`))}finally{m(!1)}}},z=(0,y.useCallback)(e=>{o(e),u(`idle`),f(``),w()},[w]),B=a&&O&&l!==`writing`&&l!==`success`;return(0,G.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,G.jsx)(`div`,{className:`flex border-b border-bambu-dark-tertiary shrink-0`,children:[{key:`existing`,label:e(`spoolbuddy.writeTag.tabExisting`,`Existing Spool`)},{key:`new`,label:e(`spoolbuddy.writeTag.tabNew`,`New Spool`)},{key:`replace`,label:e(`spoolbuddy.writeTag.tabReplace`,`Replace Tag`)}].map(e=>(0,G.jsx)(`button`,{onClick:()=>i(e.key),className:`flex-1 py-3 text-sm font-medium transition-colors ${r===e.key?`text-bambu-green border-b-2 border-bambu-green bg-bambu-dark`:`text-zinc-400 hover:text-zinc-200 hover:bg-bambu-dark-tertiary`}`,children:e.label},e.key))}),(0,G.jsxs)(`div`,{className:`flex flex-1 overflow-hidden`,children:[(0,G.jsx)(`div`,{className:`flex-1 flex flex-col overflow-hidden border-r border-bambu-dark-tertiary`,children:r===`new`?(0,G.jsx)(V2e,{currencySymbol:k,onCreated:z,selectedSpool:a,spoolmanMode:S,t:e}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`p-3 shrink-0`,children:(0,G.jsx)(`input`,{type:`text`,value:s,onChange:e=>c(e.target.value),placeholder:e(`spoolbuddy.writeTag.searchPlaceholder`,`Search by material, color, brand...`),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-3 pb-3 space-y-2`,children:A.length===0?(0,G.jsx)(`div`,{className:`text-center text-zinc-500 py-8 text-sm`,children:r===`existing`?e(`spoolbuddy.writeTag.noUntaggedSpools`,`No spools without tags`):e(`spoolbuddy.writeTag.noTaggedSpools`,`No spools with tags`)}):A.map(e=>(0,G.jsx)(B2e,{spool:e,selected:a?.id===e.id,showTag:r===`replace`,onClick:()=>{o(e),u(`idle`),f(``)}},e.id))})]})}),(0,G.jsx)(`div`,{className:`w-[340px] flex flex-col items-center justify-center p-6 shrink-0`,children:(0,G.jsx)(H2e,{writeStatus:l,writeMessage:d,selectedSpool:a,tagOnReader:h,tagUid:_,deviceOnline:O,canWrite:!!B,isReplace:r===`replace`,canUntag:r===`replace`&&!!a&&z2e(a),untagging:p,onWrite:I,onUntag:R,onCancel:L,onRetry:()=>{u(`idle`),f(``)},t:e})})]})]})}function z2e(e){return!!(e.tag_uid||e.tray_uuid)}function B2e({spool:e,selected:t,showTag:n,onClick:r}){let i=Math.max(0,e.label_weight-e.weight_used),a=e.label_weight>0?Math.round(i/e.label_weight*100):0;return(0,G.jsxs)(`button`,{onClick:r,className:`w-full flex items-center gap-3 p-3 rounded-lg text-left transition-colors ${t?`bg-bambu-green/15 border border-bambu-green/50`:`bg-bambu-dark-secondary hover:bg-bambu-dark-tertiary border border-transparent`}`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full shrink-0 border border-white/10`,style:e.rgba?Mf(e.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-sm font-medium text-white truncate`,children:[e.brand?`${e.brand} `:``,e.material,e.subtype?` ${e.subtype}`:``]}),(0,G.jsxs)(`span`,{className:`text-[10px] font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-zinc-400`,children:[e.color_name&&(0,G.jsx)(`span`,{children:e.color_name}),(0,G.jsxs)(`span`,{children:[i,`g / `,e.label_weight,`g (`,a,`%)`]})]}),n&&e.tag_uid&&(0,G.jsx)(`div`,{className:`text-xs text-zinc-500 mt-0.5 font-mono`,children:e.tag_uid})]}),t&&(0,G.jsx)(`svg`,{className:`w-5 h-5 text-bambu-green shrink-0`,fill:`currentColor`,viewBox:`0 0 20 20`,children:(0,G.jsx)(`path`,{fillRule:`evenodd`,d:`M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z`,clipRule:`evenodd`})})]})}function V2e({currencySymbol:e,onCreated:t,selectedSpool:n,spoolmanMode:r,t:i}){let{data:a=[]}=K({queryKey:[r?`spoolman-inventory-spools`:`inventory-spools`,`write-tag-form`],queryFn:()=>r?Z.getSpoolmanInventorySpools(!0):Z.getSpools(!0)}),{data:o}=K({queryKey:[`settings`],queryFn:Z.getSettings}),[s,c]=(0,y.useState)(`simple`),[l,u]=(0,y.useState)(`filament`),[d,f]=(0,y.useState)(f9),[p,m]=(0,y.useState)({}),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1),[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)([]),[A,j]=(0,y.useState)([]),[M,N]=(0,y.useState)([]),[P,F]=(0,y.useState)([]),[I,L]=(0,y.useState)([]),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)([]),[ee,te]=(0,y.useState)([]),[ne,re]=(0,y.useState)(new Set),[ie,ae]=(0,y.useState)(new Set);(0,y.useEffect)(()=>{V(XH())},[]),(0,y.useEffect)(()=>{let e=!1;return(async()=>{if(s===`full`){D(!0);try{let[t,n]=await Promise.allSettled([(async()=>(await Z.getCloudStatus()).is_authenticated?{connected:!0,presets:await Z.getFilamentPresets()}:{connected:!1,presets:[]})(),(async()=>(await Z.orcaCloudStatus()).connected?{connected:!0,presets:(await Z.orcaCloudListProfiles()).filament}:{connected:!1,presets:[]})()]);if(e)return;let r=t.status===`fulfilled`&&t.value.connected,i=n.status===`fulfilled`&&n.value.connected,a=t.status===`fulfilled`?t.value.presets:[],o=n.status===`fulfilled`?n.value.presets:[];T(r||i),k([...a,...o])}catch{e||T(!1)}finally{e||D(!1)}Z.getSpoolCatalog().then(t=>{e||F(t)}).catch(()=>void 0),Z.getColorCatalog().then(t=>{e||L(t)}).catch(()=>void 0),Z.getLocalPresets().then(t=>{e||j(t.filament)}).catch(()=>void 0),Z.getBuiltinFilaments().then(t=>{e||N(t)}).catch(()=>void 0);try{let t=await Z.getPrinters(),n=await Promise.all(t.map(e=>Z.getPrinterStatus(e.id).catch(()=>null))),r=[];for(let e=0;e{e=!0}},[s]),(0,y.useEffect)(()=>{ee.length>0&&ae(new Set(ee.map(e=>String(e.printer.id))))},[ee]);let oe=(0,y.useMemo)(()=>KH(O,new Set,A,M),[O,A,M]),se=(0,y.useMemo)(()=>qH(d.slicer_filament,oe),[d.slicer_filament,oe]),H=(0,y.useMemo)(()=>{let e=GH(O,A),t=I.map(e=>e.manufacturer?.trim()).filter(e=>!!e);return Array.from(new Set([...e,...t])).sort((e,t)=>e.localeCompare(t))},[O,A,I]),ce=(0,y.useMemo)(()=>{let e=I.map(e=>e.material?.trim()).filter(e=>!!e);return Array.from(new Set([...IH,...e])).sort((e,t)=>e.localeCompare(t))},[I]),le=(0,y.useMemo)(()=>{let e=[];for(let t of I){let n=t.manufacturer?.trim(),r=t.material?.trim();n&&r&&e.push({brand:n,material:r})}for(let t of O){let n=WH(t.name);n.brand&&n.material&&e.push({brand:n.brand,material:n.material})}for(let t of A){let n=WH(t.name),r=t.filament_vendor?.trim()||n.brand,i=n.material;r&&i&&e.push({brand:r,material:i})}return e},[O,I,A]),ue=(0,y.useMemo)(()=>{let e=new Map;for(let t of le){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(n)||e.set(n,new Set),e.get(n).add(r)}return e},[le]),de=(0,y.useMemo)(()=>{let e=new Map;for(let t of le){let n=t.brand.toLowerCase(),r=t.material.toLowerCase();e.has(r)||e.set(r,new Set),e.get(r).add(n)}return e},[le]),fe=(0,y.useMemo)(()=>JH(H,d.brand),[H,d.brand]),pe=(0,y.useMemo)(()=>JH(ce,d.material),[ce,d.material]),me=(0,y.useMemo)(()=>YH(fe,d.material,de),[fe,d.material,de]),he=(0,y.useMemo)(()=>YH(pe,d.brand,ue),[pe,d.brand,ue]),ge=(e,t)=>{f(n=>({...n,[e]:t})),p[e]&&m(t=>({...t,[e]:void 0}))},_e=e=>{V(t=>ZH(e,t))},ve=async e=>{let t=r?Z.saveSpoolmanKProfiles:Z.saveSpoolKProfiles;if(ne.size===0){try{await t(e,[])}catch{}return}let n=[];for(let e of ne){let[t,r,i]=e.split(`:`),a=parseInt(t),o=parseInt(r),s=i===`null`?0:parseInt(i),c=ee.find(e=>e.printer.id===a);if(c){let e=c.calibrations.find(e=>e.cali_idx===o&&(e.extruder_id??0)===s);e&&n.push({printer_id:a,extruder:s,nozzle_diameter:e.nozzle_diameter||`0.4`,k_value:e.k_value,name:e.name||null,cali_idx:e.cali_idx,setting_id:e.setting_id||null})}}n.length>0&&await t(e,n)},ye=async()=>{C(null);let e=s1e(d,s===`simple`?!0:h);if(!e.isValid){m(e.errors),u(`filament`);return}let n=se?.displayName||R||null,a={material:d.material,subtype:d.subtype||null,brand:d.brand||null,color_name:d.color_name||null,rgba:d.rgba||null,extra_colors:d.extra_colors||null,effect_type:d.effect_type||null,label_weight:d.label_weight,core_weight:d.core_weight,core_weight_catalog_id:d.core_weight_catalog_id,weight_used:d.weight_used,slicer_filament:d.slicer_filament||null,slicer_filament_name:n,nozzle_temp_min:null,nozzle_temp_max:null,note:d.note||null,cost_per_kg:d.cost_per_kg,added_full:null,last_used:null,encode_time:null,tag_uid:null,tray_uuid:null,data_origin:null,tag_type:null,last_scale_weight:null,last_weighed_at:null,category:d.category.trim()||null,low_stock_threshold_pct:d.low_stock_threshold_pct};x(!0);try{if(_>1){let e=r?await Z.bulkCreateSpoolmanInventorySpools(a,_):await Z.bulkCreateSpools(a,_),n=r&&e&&typeof e==`object`&&`created`in e?e.created:e;for(let e of n)await ve(e.id);n.length>0&&t(n[0])}else{let e=r?await Z.createSpoolmanInventorySpool(a):await Z.createSpool(a);await ve(e.id),t(e)}}catch{C(i(`spoolbuddy.writeTag.createFailed`,`Failed to create spool`))}finally{x(!1)}},be=`#${(d.rgba||`808080FF`).slice(0,6)}`;return(0,G.jsxs)(`div`,{className:`p-3 space-y-3 overflow-y-auto h-full`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-200`,children:i(`spoolbuddy.writeTag.viewMode`,`View`)}),(0,G.jsxs)(`div`,{className:`flex rounded-lg overflow-hidden border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(`simple`),className:`px-3 py-1.5 text-xs font-medium ${s===`simple`?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-zinc-400`}`,children:i(`spoolbuddy.writeTag.simpleView`,`Simple`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>c(`full`),className:`px-3 py-1.5 text-xs font-medium ${s===`full`?`bg-bambu-green/20 text-bambu-green`:`bg-bambu-dark text-zinc-400`}`,children:i(`spoolbuddy.writeTag.fullView`,`Full`)})]})]}),s===`simple`?n?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full p-6 text-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`div`,{className:`w-12 h-12 rounded-full mb-4 border border-white/10`,style:n.rgba?Mf(n.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`p`,{className:`text-white font-medium`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:n.color_name}),(0,G.jsxs)(`p`,{className:`text-zinc-500 text-xs mt-1`,children:[n.label_weight,`g`]}),(0,G.jsx)(`p`,{className:`text-bambu-green text-sm mt-4`,children:i(`spoolbuddy.writeTag.spoolCreated`,`Spool created! Ready to write.`)})]}):(0,G.jsxs)(`div`,{className:`p-4 space-y-4 overflow-y-auto bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.material`,`Material`)}),(0,G.jsx)(`select`,{value:d.material,onChange:e=>ge(`material`,e.target.value),className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`,children:L2e.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}),(0,G.jsxs)(`div`,{className:`flex gap-3`,children:[(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.colorName`,`Color Name`)}),(0,G.jsx)(`input`,{type:`text`,value:d.color_name,onChange:e=>ge(`color_name`,e.target.value),placeholder:`Jade White`,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.color`,`Color`)}),(0,G.jsx)(`input`,{type:`color`,value:be,onChange:e=>ge(`rgba`,e.target.value.replace(`#`,``).toUpperCase()+`FF`),className:`w-10 h-9 bg-transparent border border-bambu-dark-tertiary rounded cursor-pointer`})]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.brand`,`Brand`)}),(0,G.jsx)(`input`,{type:`text`,value:d.brand,onChange:e=>ge(`brand`,e.target.value),placeholder:`Polymaker`,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white placeholder-zinc-500 focus:outline-none focus:border-bambu-green`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{className:`block text-xs text-zinc-400 mb-1`,children:i(`spoolbuddy.writeTag.weight`,`Weight (g)`)}),(0,G.jsx)(`input`,{type:`number`,value:d.label_weight,onChange:e=>ge(`label_weight`,parseInt(e.target.value)||0),min:0,max:1e4,className:`w-full px-3 py-2 bg-bambu-dark-tertiary border border-bambu-dark-tertiary rounded text-sm text-white focus:outline-none focus:border-bambu-green`})]}),(0,G.jsx)(`button`,{onClick:ye,disabled:b||!d.material,className:`w-full py-2.5 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-50 disabled:cursor-not-allowed text-white text-sm font-medium rounded transition-colors`,children:b?i(`spoolbuddy.writeTag.creating`,`Creating...`):i(`spoolbuddy.writeTag.createSpool`,`Create Spool`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-2 bg-bambu-dark-secondary rounded-lg border border-bambu-dark-tertiary`,children:[(0,G.jsx)(`span`,{className:`text-sm text-zinc-200`,children:i(`inventory.quickAdd`,`Quick Add`)}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>g(e=>!e),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${h?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,children:(0,G.jsx)(`span`,{className:`inline-block h-4.5 w-4.5 rounded-full bg-white transition-transform ${h?`translate-x-6`:`translate-x-1`}`})})]}),(0,G.jsxs)(`div`,{className:`flex border border-bambu-dark-tertiary rounded-lg overflow-hidden`,children:[(0,G.jsx)(`button`,{onClick:()=>u(`filament`),className:`flex-1 py-2.5 text-sm font-medium ${l===`filament`?`bg-bambu-green/15 text-bambu-green`:`bg-bambu-dark-secondary text-zinc-400`}`,children:i(`inventory.filamentInfoTab`,`Filament`)}),!h&&(0,G.jsx)(`button`,{onClick:()=>u(`pa-profile`),className:`flex-1 py-2.5 text-sm font-medium ${l===`pa-profile`?`bg-bambu-green/15 text-bambu-green`:`bg-bambu-dark-secondary text-zinc-400`}`,children:i(`inventory.paProfileTab`,`PA Profile`)})]}),(0,G.jsx)(`div`,{className:`bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg p-3`,children:l===`filament`?(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsx)(d1e,{formData:d,updateField:ge,cloudAuthenticated:w,loadingCloudPresets:E,presetInputValue:R,setPresetInputValue:z,selectedPresetOption:se,filamentOptions:oe,availableBrands:fe,availableMaterials:pe,suggestedBrands:me,suggestedMaterials:he,quickAdd:h,detailsRequired:!h,quantity:_,onQuantityChange:v,errors:p}),(0,G.jsx)(p1e,{formData:d,updateField:ge,recentColors:B,onColorUsed:_e,catalogColors:I}),(0,G.jsx)(h1e,{formData:d,updateField:ge,spoolCatalog:P,currencySymbol:e,availableCategories:Array.from(new Set(a.map(e=>e.category?.trim()).filter(e=>!!e))).sort((e,t)=>e.localeCompare(t)),globalLowStockThreshold:o?.low_stock_threshold??20})]}):(0,G.jsx)(I2e,{formData:d,updateField:ge,printersWithCalibrations:ee,selectedProfiles:ne,setSelectedProfiles:re,expandedPrinters:ie,setExpandedPrinters:ae})})]}),S&&(0,G.jsx)(`div`,{className:`text-sm text-red-400 bg-red-900/20 border border-red-900/40 rounded-lg px-3 py-2`,children:S}),s===`full`&&(0,G.jsx)(`button`,{onClick:ye,disabled:b,className:`w-full py-3 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-50 disabled:cursor-not-allowed text-white text-sm font-medium rounded transition-colors`,children:b?i(`spoolbuddy.writeTag.creating`,`Creating...`):i(`spoolbuddy.writeTag.createSpool`,`Create Spool`)}),s===`full`&&n&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center p-4 text-center bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg`,children:[(0,G.jsx)(`div`,{className:`w-12 h-12 rounded-full mb-4 border border-white/10`,style:n.rgba?Mf(n.rgba):{backgroundColor:`#666`}}),(0,G.jsxs)(`p`,{className:`text-white font-medium`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:n.color_name}),(0,G.jsxs)(`p`,{className:`text-zinc-500 text-xs mt-1`,children:[n.label_weight,`g`]}),(0,G.jsx)(`p`,{className:`text-bambu-green text-sm mt-4`,children:i(`spoolbuddy.writeTag.spoolCreated`,`Spool created! Ready to write.`)})]})]})}function H2e({writeStatus:e,writeMessage:t,selectedSpool:n,tagOnReader:r,tagUid:i,deviceOnline:a,canWrite:o,isReplace:s,canUntag:c,untagging:l,onWrite:u,onUntag:d,onCancel:f,onRetry:p,t:m}){if(e===`success`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-green-500/20 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-8 h-8 text-green-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M5 13l4 4L19 7`})})}),(0,G.jsx)(`p`,{className:`text-green-400 font-medium`,children:t}),n&&(0,G.jsxs)(`p`,{className:`text-zinc-400 text-sm`,children:[n.brand?`${n.brand} `:``,n.material,n.subtype?` ${n.subtype}`:``,n.color_name?` - ${n.color_name}`:``]})]});if(e===`error`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-red-500/20 flex items-center justify-center`,children:(0,G.jsx)(`svg`,{className:`w-8 h-8 text-red-400`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M6 18L18 6M6 6l12 12`})})}),(0,G.jsx)(`p`,{className:`text-red-400 font-medium`,children:t}),(0,G.jsx)(`button`,{onClick:p,className:`px-4 py-2 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary text-white text-sm rounded transition-colors`,children:m(`spoolbuddy.writeTag.tryAgain`,`Try Again`)})]});if(e===`writing`)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4`,children:[(0,G.jsxs)(`div`,{className:`relative w-16 h-16`,children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full border-2 border-bambu-green/30 animate-ping`}),(0,G.jsx)(`div`,{className:`absolute inset-2 rounded-full border-2 border-bambu-green/50 animate-pulse`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-bambu-green`})})]}),(0,G.jsx)(`p`,{className:`text-bambu-green font-medium`,children:m(`spoolbuddy.writeTag.writing`,`Writing tag...`)}),(0,G.jsx)(`p`,{className:`text-zinc-500 text-xs`,children:t}),(0,G.jsx)(`button`,{onClick:f,className:`px-4 py-2 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary text-zinc-400 text-sm rounded transition-colors`,children:m(`spoolbuddy.writeTag.cancel`,`Cancel`)})]});if(!a)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-3`,children:[(0,G.jsx)(Z9,{className:`w-12 h-12 text-zinc-600`}),(0,G.jsx)(`p`,{className:`text-zinc-500 text-sm`,children:m(`spoolbuddy.writeTag.deviceOffline`,`SpoolBuddy is offline`)})]});if(!n)return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-3`,children:[(0,G.jsx)(Z9,{className:`w-12 h-12 text-zinc-600`}),(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:m(`spoolbuddy.writeTag.selectSpool`,`Select a spool, then place a blank NTAG on the reader`)})]});let h=n.rgba?Mf(n.rgba):{backgroundColor:`#666`};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center text-center space-y-4 w-full`,children:[(0,G.jsx)(`div`,{className:`relative w-16 h-16`,children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full bg-bambu-green/10`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-bambu-green`})})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`absolute inset-0 rounded-full border-2 border-zinc-600 animate-pulse`}),(0,G.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(Z9,{className:`w-8 h-8 text-zinc-500`})})]})}),r?(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`p`,{className:`text-bambu-green text-sm font-medium`,children:m(`spoolbuddy.writeTag.tagReady`,`Tag detected — ready to write`)}),i&&(0,G.jsx)(`p`,{className:`text-zinc-500 text-xs font-mono`,children:i})]}):(0,G.jsx)(`p`,{className:`text-zinc-400 text-sm`,children:m(`spoolbuddy.writeTag.placeTag`,`Place an NTAG on the reader`)}),(0,G.jsxs)(`div`,{className:`w-full bg-bambu-dark-secondary rounded-lg p-3 space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`div`,{className:`w-8 h-8 rounded-full border border-white/10 shrink-0`,style:h}),(0,G.jsxs)(`div`,{className:`text-left min-w-0`,children:[(0,G.jsxs)(`p`,{className:`text-white text-sm font-medium truncate`,children:[n.brand?`${n.brand} `:``,n.material]}),n.color_name&&(0,G.jsx)(`p`,{className:`text-zinc-400 text-xs`,children:n.color_name})]})]}),(0,G.jsxs)(`div`,{className:`text-xs text-zinc-500`,children:[n.label_weight,`g`]})]}),s&&n.tag_uid&&(0,G.jsx)(`p`,{className:`text-yellow-500/80 text-xs`,children:m(`spoolbuddy.writeTag.replaceWarning`,`Old tag will be unlinked. New tag will replace it.`)}),(0,G.jsx)(`button`,{onClick:u,disabled:!o,className:`w-full py-3 bg-bambu-green hover:bg-bambu-green/80 disabled:opacity-40 disabled:cursor-not-allowed text-white font-medium rounded-lg transition-colors text-sm`,children:s?m(`spoolbuddy.writeTag.replaceTag`,`Replace Tag`):m(`spoolbuddy.writeTag.writeTag`,`Write Tag`)}),s&&c&&(0,G.jsx)(`button`,{onClick:d,disabled:l,className:`w-full py-2.5 bg-bambu-dark-tertiary hover:bg-bambu-dark-secondary disabled:opacity-40 disabled:cursor-not-allowed text-zinc-200 rounded-lg transition-colors text-sm`,children:l?m(`spoolbuddy.writeTag.untagging`,`Removing tag...`):m(`spoolbuddy.writeTag.untagSpool`,`Untag Selected Spool`)})]})}function Z9({className:e}){return(0,G.jsxs)(`svg`,{className:e,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,children:[(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M8.288 15.038a5.25 5.25 0 017.424 0M5.106 11.856c3.807-3.808 9.98-3.808 13.788 0M1.924 8.674c5.565-5.565 14.587-5.565 20.152 0`}),(0,G.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M12.53 18.22l-.53.53-.53-.53a.75.75 0 011.06 0z`})]})}var U2e=`spoolbuddy-default-core-weight`;function W2e(){try{let e=localStorage.getItem(U2e);if(e){let t=parseInt(e,10);if(t>=0&&t<=500)return t}}catch{}return 250}function G2e({spool:e,liveScaleWeight:t,persistedGrossWeight:n,onClose:r,onSyncWeight:i,onAssignToAms:a,isAssigned:o,onUnassignFromAms:s,className:c}){let{t:l}=U(),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),{data:g}=K({queryKey:[`spool-k-profiles`,e.id],queryFn:()=>Z.getSpoolKProfiles(e.id),enabled:!e.k_profiles||e.k_profiles.length===0,staleTime:300*1e3}),_=e.k_profiles&&e.k_profiles.length>0?e.k_profiles:g,v=Af(e.rgba),b=e.core_weight&&e.core_weight>0?e.core_weight:W2e(),x=t===null?null:Math.round(Math.max(0,t)),S=m??(n===void 0?x:n===null?null:Math.round(Math.max(0,n))),C=Math.round(Math.max(0,(e.label_weight||0)-(e.weight_used||0))),w=x!==null&&x>=10?Math.round(Math.max(0,x-b)):C,T=Math.round(e.label_weight||1e3),E=T>0?Math.min(100,Math.round(w/T*100)):null,D=E===null?`#808080`:E>50?`#22c55e`:E>20?`#eab308`:`#ef4444`,O=Math.max(0,(e.label_weight||0)-(e.weight_used||0))+b,k=x===null?null:x-O,A=k===null?null:Math.abs(k)<=50,j=S??Math.round(O),M=e.nozzle_temp_min!=null&&e.nozzle_temp_max!=null?`${e.nozzle_temp_min}-${e.nozzle_temp_max}\u00B0C`:null,N=e.slicer_filament_name||e.slicer_filament||null,P=e.note?.trim()||null,F=_&&_.length>0?Array.from(new Set(_.map(e=>e.k_value.toFixed(3)))).join(`, `):null,I=async()=>{if(t===null)return;let n=Math.round(Math.max(0,t));d(!0);try{await Od.updateSpoolWeight(e.id,n),h(n),p(!0),i?.(),setTimeout(()=>p(!1),3e3)}catch(e){console.error(`Failed to sync weight:`,e)}finally{d(!1)}};return(0,G.jsxs)(`div`,{className:`flex flex-col items-center space-y-4 max-w-md ${c??``}`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-5`,children:[(0,G.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,G.jsx)(W9,{color:v,isEmpty:!1,size:100}),E!==null&&(0,G.jsxs)(`div`,{className:`absolute -bottom-2 -right-2 px-2 py-0.5 rounded-full text-xs font-bold text-white shadow-lg`,style:{backgroundColor:D},children:[E,`%`]})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold text-zinc-100`,children:e.color_name||`Unknown color`}),(0,G.jsxs)(`span`,{className:`text-xs font-mono text-zinc-500 shrink-0`,children:[`#`,e.id]})]}),(0,G.jsxs)(`p`,{className:`text-sm text-zinc-400`,children:[e.brand,` • `,e.material,e.subtype&&` ${e.subtype}`]}),(0,G.jsxs)(`div`,{className:`mt-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-3xl font-bold font-mono text-zinc-100`,children:[w,`g`]}),(0,G.jsxs)(`span`,{className:`text-sm text-zinc-500`,children:[`/ `,T,`g`]})]}),(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mt-0.5`,children:l(`spoolbuddy.spool.remaining`,`Remaining`)}),(0,G.jsx)(`div`,{className:`mt-2 max-w-xs`,children:(0,G.jsx)(`div`,{className:`h-2 bg-zinc-700 rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full transition-all duration-500`,style:{width:`${E??0}%`,backgroundColor:D}})})})]})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-2 text-sm bg-zinc-800 rounded-lg p-4 w-full`,children:[(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.grossWeight`,`Gross weight`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[j,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.spool.coreWeight`,`Core`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[b,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.spoolSize`,`Spool size`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[T,`g`]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.spool.scaleWeight`,`Scale`)}),x===null?(0,G.jsx)(`span`,{className:`text-zinc-500`,children:`—`}):(0,G.jsxs)(`span`,{className:`flex items-center gap-1 font-mono ${A?`text-green-500`:`text-yellow-500`}`,children:[x,`g`,A?(0,G.jsx)(fs,{className:`w-3.5 h-3.5`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Lu,{className:`w-3.5 h-3.5`}),(0,G.jsx)(`button`,{onClick:I,className:`p-1 hover:bg-green-500/20 rounded transition-colors text-green-500`,title:l(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`),children:(0,G.jsx)(Hl,{className:`w-4 h-4`})})]})]})]}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.dashboard.tagId`,`Tag`)}),(0,G.jsx)(`span`,{className:`font-mono text-xs text-zinc-400 truncate max-w-[120px]`,title:e.tag_uid||``,children:e.tag_uid?e.tag_uid.slice(-8):`—`})]}),M&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.nozzleTemp`,`Nozzle`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300`,children:M})]}),e.cost_per_kg!=null&&e.cost_per_kg>0&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.costPerKg`,`Cost/kg`)}),(0,G.jsxs)(`span`,{className:`font-mono text-zinc-300`,children:[e.cost_per_kg.toFixed(2),`/kg`]})]}),F&&(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`span`,{className:`text-zinc-500`,children:l(`spoolbuddy.inventory.kProfiles`,`K-Profile`)}),(0,G.jsx)(`span`,{className:`font-mono text-zinc-300 truncate max-w-[220px] text-right`,title:F,children:F})]}),N&&(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-1`,children:l(`spoolbuddy.inventory.slicerFilament`,`Slicer Filament`)}),(0,G.jsx)(`p`,{className:`text-sm text-zinc-300 whitespace-pre-wrap break-words`,children:N})]}),P&&(0,G.jsxs)(`div`,{className:`col-span-2`,children:[(0,G.jsx)(`p`,{className:`text-xs text-zinc-500 mb-1`,children:l(`spoolbuddy.inventory.note`,`Note`)}),(0,G.jsx)(`p`,{className:`text-sm leading-5 text-zinc-300 whitespace-pre-wrap break-words max-h-[3.75rem] overflow-y-auto pr-1`,children:P})]})]}),(0,G.jsxs)(`div`,{className:`flex gap-2 justify-center`,children:[a&&(0,G.jsx)(`button`,{onClick:o?void 0:a,disabled:!!o,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-green-600 text-white hover:bg-green-700 transition-colors min-h-[44px] disabled:opacity-50 disabled:cursor-not-allowed`,children:l(`spoolbuddy.modal.assignToAms`,`Assign to AMS`)}),s&&(0,G.jsxs)(`button`,{onClick:s,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-red-600/20 text-red-400 hover:bg-red-600/30 transition-colors min-h-[44px]`,children:[(0,G.jsx)(Bu,{className:`w-4 h-4 inline mr-1`}),l(`inventory.unassignSpool`)]}),(0,G.jsx)(`button`,{onClick:I,disabled:t===null||u,className:`px-5 py-2.5 rounded-lg text-sm font-medium transition-colors min-h-[44px] ${f?`bg-green-600/20 text-green-400`:a?`bg-zinc-700 text-zinc-300 hover:bg-zinc-600 disabled:opacity-40 disabled:cursor-not-allowed`:`bg-green-600 text-white hover:bg-green-700 disabled:opacity-40 disabled:cursor-not-allowed`}`,children:u?`...`:f?l(`spoolbuddy.dashboard.weightSynced`,`Synced!`):l(`spoolbuddy.dashboard.syncWeight`,`Sync Weight`)}),r&&(0,G.jsx)(`button`,{onClick:r,className:`px-5 py-2.5 rounded-lg text-sm font-medium bg-zinc-700 text-zinc-300 hover:bg-zinc-600 transition-colors min-h-[44px]`,children:l(`spoolbuddy.dashboard.close`,`Close`)})]})]})}function K2e(e){return Af(e.rgba)}function q2e(e){return Math.max(0,e.label_weight-e.weight_used)}function J2e(e){return e.label_weight<=0?0:Math.max(0,Math.min(100,(e.label_weight-e.weight_used)/e.label_weight*100))}function Y2e(e){let t=[e.material];return e.subtype&&t.push(e.subtype),t.join(` `)}function X2e(e){let t=e.ams_id===254||e.ams_id===255,n=!t&&e.ams_id>=128;return jp(e.ams_id,e.tray_id,n,t)}function Z2e({color:e,size:t=56}){return(0,G.jsxs)(`svg`,{width:t,height:t,viewBox:`0 0 56 56`,children:[(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`26`,fill:e}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`20`,fill:e,style:{filter:`brightness(0.85)`}}),(0,G.jsx)(`ellipse`,{cx:`20`,cy:`20`,rx:`6`,ry:`4`,fill:`white`,opacity:`0.3`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`8`,fill:`#2d2d2d`}),(0,G.jsx)(`circle`,{cx:`28`,cy:`28`,r:`5`,fill:`#1a1a1a`})]})}function Q2e(){let{sbState:e,selectedPrinterId:t}=lr(),{t:n}=U(),{showToast:r}=qd(),i=co(),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`all`),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),{data:p}=K({queryKey:[`spoolman-settings`],queryFn:Z.getSpoolmanSettings,staleTime:300*1e3}),m=p?.spoolman_enabled===`true`&&!!p?.spoolman_url,{data:h=[],isLoading:g,refetch:_}=K({queryKey:m?[`spoolman-inventory-spools`]:[`inventory-spools`],queryFn:()=>m?Z.getSpoolmanInventorySpools(!1):Z.getSpools(!1),enabled:p!==void 0,refetchInterval:3e4}),{data:v=[]}=K({queryKey:[`spool-assignments`],queryFn:()=>Z.getAssignments(),refetchInterval:3e4,enabled:!m}),{data:b=[]}=K({queryKey:[`spoolman-slot-assignments`],queryFn:()=>Z.getSpoolmanSlotAssignments(),refetchInterval:3e4,enabled:m}),x=q({mutationFn:e=>Z.unassignSpoolmanSlot(e),onSuccess:()=>{i.invalidateQueries({queryKey:[`spoolman-slot-assignments`]}),i.invalidateQueries({queryKey:[`spoolman-inventory-spools`]})},onError:()=>r(n(`inventory.unassignFailed`,`Failed to unassign spool`),`error`)}),S=(0,y.useMemo)(()=>{if(m){let e={};return b.forEach(t=>{e[t.spoolman_spool_id]={ams_id:t.ams_id,tray_id:t.tray_id}}),e}let e={};return v.forEach(t=>{e[t.spool_id]={ams_id:t.ams_id,tray_id:t.tray_id,printer_name:t.printer_name}}),e},[m,v,b]),C=(0,y.useMemo)(()=>h.filter(e=>!e.archived_at),[h]),w=(0,y.useMemo)(()=>new Set(Object.keys(S).map(Number)),[S]),T=(0,y.useMemo)(()=>C.filter(e=>w.has(e.id)).length,[C,w]),E=(0,y.useMemo)(()=>{let e=new Set;return C.forEach(t=>e.add(t.material)),Array.from(e).sort()},[C]),D=(0,y.useMemo)(()=>{let e=C;return s===`in_ams`?e=e.filter(e=>w.has(e.id)):s!==`all`&&(e=e.filter(e=>e.material===s)),e=wH(e,a.trim()),[...e].sort((e,t)=>{let n=+!w.has(e.id),r=+!w.has(t.id);return n===r?new Date(t.updated_at).getTime()-new Date(e.updated_at).getTime():n-r})},[C,s,a,w]);return(0,G.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,G.jsxs)(`div`,{className:`px-3 pt-3 pb-2 space-y-2.5`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Ql,{className:`absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-white/40`}),(0,G.jsx)(`input`,{type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:n(`spoolbuddy.inventory.searchPlaceholder`,`Search spools...`),className:`w-full pl-9 pr-8 py-2 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg text-sm text-white placeholder-white/30 focus:outline-none focus:border-bambu-green`}),a&&(0,G.jsx)(`button`,{onClick:()=>o(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-white/40 hover:text-white/60`,children:(0,G.jsx)(nd,{className:`w-4 h-4`})})]}),(0,G.jsxs)(`div`,{className:`flex gap-1.5 overflow-x-auto no-scrollbar`,children:[(0,G.jsx)(Q9,{active:s===`all`,onClick:()=>c(`all`),label:`${n(`spoolbuddy.inventory.all`,`All`)} (${C.length})`,green:!0}),T>0&&(0,G.jsx)(Q9,{active:s===`in_ams`,onClick:()=>c(`in_ams`),label:`${n(`spoolbuddy.inventory.inAms`,`In AMS`)} (${T})`}),E.map(e=>(0,G.jsx)(Q9,{active:s===e,onClick:()=>c(s===e?`all`:e),label:e},e))]})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto px-3 pb-3`,children:g?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(`div`,{className:`w-8 h-8 border-2 border-bambu-green border-t-transparent rounded-full animate-spin`})}):D.length===0?(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 text-white/30`,children:[(0,G.jsx)(Cl,{className:`w-12 h-12 mb-3`}),(0,G.jsx)(`p`,{className:`text-sm`,children:a||s!==`all`?n(`spoolbuddy.inventory.noResults`,`No spools match your filters`):n(`spoolbuddy.inventory.empty`,`No spools in inventory`)})]}):(0,G.jsx)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(130px,1fr))] gap-2`,children:D.map(e=>(0,G.jsx)($2e,{spool:e,assignment:S[e.id],onClick:()=>u(e.id)},e.id))})}),l!=null&&(()=>{let n=h.find(e=>e.id===l);return n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(e4e,{spool:n,assignment:S[n.id],sbState:e,onSyncWeight:()=>{_()},onAssignToAms:()=>f(!0),onUnassignFromAms:m&&S[n.id]?()=>x.mutate(n.id):void 0,onClose:()=>{u(null),f(!1)}}),(0,G.jsx)(Y9,{isOpen:d,onClose:()=>f(!1),spool:n,printerId:t,spoolmanMode:m})]}):null})()]})}function Q9({active:e,onClick:t,label:n,green:r}){return(0,G.jsx)(`button`,{onClick:t,className:`px-4 py-1.5 rounded-full text-sm font-medium border whitespace-nowrap shrink-0 transition-colors ${e?r?`bg-bambu-green/20 text-bambu-green border-bambu-green/50`:`bg-white/10 text-white border-white/20`:`bg-transparent text-white/40 border-bambu-dark-tertiary hover:text-white/60`}`,children:n})}function $2e({spool:e,assignment:t,onClick:n}){let r=K2e(e),i=J2e(e),a=q2e(e),o=kf(e.color_name,e.rgba);return(0,G.jsxs)(`button`,{onClick:n,className:`bg-bambu-dark-secondary rounded-xl p-3 flex flex-col items-center text-center gap-1.5 border border-transparent hover:border-bambu-green/50 transition-colors`,children:[(0,G.jsx)(Z2e,{color:r,size:56}),(0,G.jsx)(`p`,{className:`text-xs font-semibold text-white leading-tight truncate w-full`,children:Y2e(e)}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1 min-w-0 max-w-full`,children:[(0,G.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full shrink-0 border border-white/10`,style:Mf(e.rgba)}),(0,G.jsx)(`span`,{className:`text-[11px] text-white/50 truncate`,children:o||`-`})]}),(0,G.jsxs)(`div`,{className:`w-full space-y-0.5`,children:[(0,G.jsx)(`div`,{className:`h-1.5 bg-bambu-dark-tertiary rounded-full overflow-hidden`,children:(0,G.jsx)(`div`,{className:`h-full rounded-full ${i>50?`bg-bambu-green`:i>20?`bg-yellow-500`:`bg-red-500`}`,style:{width:`${Math.min(i,100)}%`}})}),(0,G.jsxs)(`p`,{className:`text-[11px] text-white/40`,children:[Math.round(a),`g (`,Math.round(i),`%)`]})]}),t&&(0,G.jsx)(`span`,{className:`px-2 py-0.5 rounded text-[10px] font-bold bg-bambu-green/20 text-bambu-green`,children:X2e(t)})]})}function e4e({spool:e,assignment:t,sbState:n,onSyncWeight:r,onAssignToAms:i,onUnassignFromAms:a,onClose:o}){let s=n.deviceOnline&&n.weight!==null?Math.round(n.weight):null,c=e.last_scale_weight==null?null:Math.round(e.last_scale_weight);return(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/70 flex items-center justify-center p-4`,onClick:o,children:(0,G.jsx)(`div`,{className:`w-full max-w-md bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-2xl p-4 overflow-y-auto max-h-[90vh]`,onClick:e=>e.stopPropagation(),children:(0,G.jsxs)(`div`,{className:`space-y-3`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center justify-center gap-2`,children:[(0,G.jsx)(`span`,{className:`px-2.5 py-1 rounded-md text-xs font-bold bg-bambu-green/20 text-bambu-green`,children:X2e(t)}),t.printer_name&&(0,G.jsx)(`span`,{className:`text-xs text-zinc-400`,children:t.printer_name})]}),(0,G.jsx)(`div`,{className:`flex justify-center`,children:(0,G.jsx)(G2e,{spool:e,liveScaleWeight:s,persistedGrossWeight:c,onSyncWeight:r,onAssignToAms:i,isAssigned:!!t,onUnassignFromAms:a,onClose:o,className:`max-w-md`})})]})})})}var t4e=class extends y.Component{state={error:null,errorInfo:null};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.setState({errorInfo:t}),console.error(`React crash:`,e,t)}render(){return this.state.error?(0,G.jsxs)(`div`,{style:{padding:24,color:`#ef4444`,backgroundColor:`#18181b`,minHeight:`100vh`,fontFamily:`monospace`},children:[(0,G.jsx)(`h1`,{style:{fontSize:20,marginBottom:12},children:`UI Crash`}),(0,G.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:14},children:this.state.error.message}),(0,G.jsx)(`pre`,{style:{whiteSpace:`pre-wrap`,fontSize:12,color:`#a1a1aa`,marginTop:12},children:this.state.error.stack}),(0,G.jsx)(`button`,{onClick:()=>{this.setState({error:null,errorInfo:null})},style:{marginTop:16,padding:`8px 16px`,backgroundColor:`#3b82f6`,color:`#fff`,border:`none`,borderRadius:8,cursor:`pointer`},children:`Retry`})]}):this.props.children}},n4e=new ao({defaultOptions:{queries:{staleTime:1e3*60,retry:1}}});function r4e(){return b$e(),null}function i4e({children:e}){return S0e(),D0e(),(0,G.jsx)(G.Fragment,{children:e})}function a4e({children:e}){let{authEnabled:t,loading:n,user:r}=Nd(),i=rr();return n?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):t&&!r?(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:i}}):(0,G.jsx)(G.Fragment,{children:e})}function $9({permission:e,children:t}){let{authEnabled:n,loading:r,user:i,hasPermission:a}=Nd(),o=rr();return r?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):n?i?a(e)?(0,G.jsx)(G.Fragment,{children:t}):(0,G.jsx)(Fr,{to:`/`,replace:!0}):(0,G.jsx)(Fr,{to:`/login`,replace:!0,state:{from:o}}):(0,G.jsx)(G.Fragment,{children:t})}function o4e({children:e}){let{authEnabled:t,loading:n}=Nd();return n?(0,G.jsx)(`div`,{className:`min-h-screen flex items-center justify-center`,children:`Loading...`}):t?(0,G.jsx)(Fr,{to:`/login`,replace:!0}):(0,G.jsx)(G.Fragment,{children:e})}function s4e(){return(0,G.jsx)(t4e,{children:(0,G.jsx)(rf,{children:(0,G.jsx)(lo,{client:n4e,children:(0,G.jsx)(Md,{children:(0,G.jsx)(Fd,{children:(0,G.jsx)(O0e,{children:(0,G.jsxs)(kAe,{children:[(0,G.jsx)(r4e,{}),(0,G.jsx)(Oi,{children:(0,G.jsxs)(zr,{children:[(0,G.jsx)(Lr,{path:`/setup`,element:(0,G.jsx)(o4e,{children:(0,G.jsx)(v0e,{})})}),(0,G.jsx)(Lr,{path:`/login`,element:(0,G.jsx)(_0e,{})}),(0,G.jsx)(Lr,{path:`/camera/:printerId`,element:(0,G.jsx)(w$e,{})}),(0,G.jsx)(Lr,{path:`/overlay/:printerId`,element:(0,G.jsx)(B$e,{})}),(0,G.jsx)(Lr,{path:`/camwall`,element:(0,G.jsx)(P$e,{})}),(0,G.jsxs)(Lr,{element:(0,G.jsx)(a4e,{children:(0,G.jsx)(i4e,{children:(0,G.jsx)(H0e,{})})}),children:[(0,G.jsx)(Lr,{path:`spoolbuddy`,element:(0,G.jsx)(g2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/ams`,element:(0,G.jsx)(b2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/write-tag`,element:(0,G.jsx)(R2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/inventory`,element:(0,G.jsx)(Q2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/settings`,element:(0,G.jsx)(N2e,{})}),(0,G.jsx)(Lr,{path:`spoolbuddy/calibration`,element:(0,G.jsx)(F2e,{})})]}),(0,G.jsxs)(Lr,{element:(0,G.jsx)(a4e,{children:(0,G.jsx)(i4e,{children:(0,G.jsx)(gee,{})})}),children:[(0,G.jsx)(Lr,{index:!0,element:(0,G.jsx)(wAe,{})}),(0,G.jsx)(Lr,{path:`archives`,element:(0,G.jsx)(LVe,{})}),(0,G.jsx)(Lr,{path:`queue`,element:(0,G.jsx)(GUe,{})}),(0,G.jsx)(Lr,{path:`pipelines/runs`,element:(0,G.jsx)(Fr,{to:`/queue?tab=pipelines`,replace:!0})}),(0,G.jsx)(Lr,{path:`stats`,element:(0,G.jsx)(uWe,{})}),(0,G.jsx)(Lr,{path:`profiles`,element:(0,G.jsx)(xKe,{})}),(0,G.jsx)(Lr,{path:`finance`,element:(0,G.jsx)($9,{permission:`cost_centers:read_own`,children:(0,G.jsx)(eKe,{})})}),(0,G.jsx)(Lr,{path:`maintenance`,element:(0,G.jsx)(EKe,{})}),(0,G.jsx)(Lr,{path:`projects`,element:(0,G.jsx)(kKe,{})}),(0,G.jsx)(Lr,{path:`projects/:id`,element:(0,G.jsx)(NKe,{})}),(0,G.jsx)(Lr,{path:`inventory`,element:(0,G.jsx)(G1e,{})}),(0,G.jsx)(Lr,{path:`files`,element:(0,G.jsx)(m$e,{})}),(0,G.jsx)(Lr,{path:`files/trash`,element:(0,G.jsx)(_$e,{})}),(0,G.jsx)(Lr,{path:`makerworld`,element:(0,G.jsx)($9,{permission:`makerworld:view`,children:(0,G.jsx)(o0e,{})})}),(0,G.jsx)(Lr,{path:`settings`,element:(0,G.jsx)($9,{permission:`settings:read`,children:(0,G.jsx)(XGe,{})})}),(0,G.jsx)(Lr,{path:`groups/new`,element:(0,G.jsx)($9,{permission:`groups:create`,children:(0,G.jsx)(H$e,{})})}),(0,G.jsx)(Lr,{path:`groups/:id/edit`,element:(0,G.jsx)($9,{permission:`groups:update`,children:(0,G.jsx)(H$e,{})})}),(0,G.jsx)(Lr,{path:`users`,element:(0,G.jsx)(Fr,{to:`/settings?tab=users`,replace:!0})}),(0,G.jsx)(Lr,{path:`groups`,element:(0,G.jsx)(Fr,{to:`/settings?tab=users`,replace:!0})}),(0,G.jsx)(Lr,{path:`system`,element:(0,G.jsx)(f0e,{})}),(0,G.jsx)(Lr,{path:`notifications`,element:(0,G.jsx)(y0e,{})}),(0,G.jsx)(Lr,{path:`gcode-viewer`,element:(0,G.jsx)(b0e,{})}),(0,G.jsx)(Lr,{path:`external/:id`,element:(0,G.jsx)(V$e,{})}),(0,G.jsx)(Lr,{path:`camera-tokens`,element:(0,G.jsx)(Fr,{to:`/settings?tab=apikeys#card-camera-tokens`,replace:!0})})]})]})})]})})})})})})})}(0,b.createRoot)(document.getElementById(`root`)).render((0,G.jsx)(y.StrictMode,{children:(0,G.jsx)(s4e,{})})); \ No newline at end of file diff --git a/static/index.html b/static/index.html index a253ffbd0..7948f41c6 100644 --- a/static/index.html +++ b/static/index.html @@ -26,7 +26,7 @@ - +