@vostride/agent-qa-dashboard-ui 0.0.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +105 -0
- package/NOTICE.md +11 -0
- package/dist/assets/abap-tccnpReA.js +1 -0
- package/dist/assets/apex-BKVkKsbj.js +1 -0
- package/dist/assets/arrow-up-down-DyIZvSrC.js +1 -0
- package/dist/assets/azcli-BRcTI6AW.js +1 -0
- package/dist/assets/badge-BbhOGRC0.js +1 -0
- package/dist/assets/bat-CY1d4Jjr.js +1 -0
- package/dist/assets/batch-action-bar-CZxUcNFZ.js +1 -0
- package/dist/assets/bicep--LouBhCq.js +2 -0
- package/dist/assets/cameligo-DSekJmSA.js +1 -0
- package/dist/assets/chunk-CilyBKbf.js +1 -0
- package/dist/assets/circle-alert-pBH5T6su.js +1 -0
- package/dist/assets/circle-x-DLBotPS8.js +1 -0
- package/dist/assets/clojure-GBhsYY7r.js +1 -0
- package/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/assets/coffee-9z_JJIkP.js +1 -0
- package/dist/assets/config-BfxB7vJt.js +10 -0
- package/dist/assets/copy-Gj5_oF-8.js +1 -0
- package/dist/assets/cpp-D7LwQw_o.js +1 -0
- package/dist/assets/csharp-Df6S3RJJ.js +1 -0
- package/dist/assets/csp-AyuN80rc.js +1 -0
- package/dist/assets/css-CYIs0S-t.js +3 -0
- package/dist/assets/css.worker-Wv5dxAWO.js +89 -0
- package/dist/assets/cssMode-BB-fH2D6.js +1 -0
- package/dist/assets/cypher-CWTgbj6F.js +1 -0
- package/dist/assets/dart-BkjNQt7D.js +1 -0
- package/dist/assets/display-step-CV3zilMS.js +1 -0
- package/dist/assets/dist-DFSjTjXY.js +1 -0
- package/dist/assets/dist-DZYW0-Ta.js +1 -0
- package/dist/assets/dist-o2A-YJGQ.js +1 -0
- package/dist/assets/dockerfile-jNxF4_km.js +1 -0
- package/dist/assets/ecl-CybE3oEZ.js +1 -0
- package/dist/assets/editor-Br_kD0ds.css +1 -0
- package/dist/assets/editor.api2-DEGvZ9jW.js +872 -0
- package/dist/assets/editor.worker-Bd9IXS8d.js +26 -0
- package/dist/assets/elixir-CdaOBnQZ.js +1 -0
- package/dist/assets/empty-state-Dluv5C1Q.js +1 -0
- package/dist/assets/external-link-BZ9gsZx_.js +1 -0
- package/dist/assets/eye-CZ7GiZXJ.js +1 -0
- package/dist/assets/file-code-GHpcb0ud.js +1 -0
- package/dist/assets/file-search-CIA16Vb8.js +1 -0
- package/dist/assets/filename-validation-BOmZP9gf.js +1 -0
- package/dist/assets/flow9-0HKoddfT.js +1 -0
- package/dist/assets/format-BpI4TiHn.js +1 -0
- package/dist/assets/freemarker2-BZ9nT_ca.js +3 -0
- package/dist/assets/fsharp-B4rCGS2D.js +1 -0
- package/dist/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
- package/dist/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
- package/dist/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
- package/dist/assets/geist-mono-cyrillic-wght-normal-BZdD_g9V.woff2 +0 -0
- package/dist/assets/geist-mono-latin-ext-wght-normal-b6lpi8_2.woff2 +0 -0
- package/dist/assets/geist-mono-latin-wght-normal-Cjtb1TV-.woff2 +0 -0
- package/dist/assets/go-BMkOAZO-.js +1 -0
- package/dist/assets/graphql-CT1i0Azo.js +1 -0
- package/dist/assets/grip-vertical-aDoBVncr.js +1 -0
- package/dist/assets/handlebars-CcFgORss.js +1 -0
- package/dist/assets/hcl-Dqo24S10.js +1 -0
- package/dist/assets/hook-editor-Dvrur2VR.js +1 -0
- package/dist/assets/hook-runtime-ChJ0-jZo.js +5 -0
- package/dist/assets/hook-viewer-DwQt3CRN.js +1 -0
- package/dist/assets/hooks-DcW2AVgE.js +1 -0
- package/dist/assets/html-C5cEOw4y.js +1 -0
- package/dist/assets/html.worker-CQP8QQsS.js +502 -0
- package/dist/assets/htmlMode-B54wW7aG.js +1 -0
- package/dist/assets/id-badge-Dzm7eQ9l.js +111 -0
- package/dist/assets/index-B3xPCIyH.js +57 -0
- package/dist/assets/index-cLLRFOsN.css +2 -0
- package/dist/assets/ini-B2qo6Bwi.js +1 -0
- package/dist/assets/insights-line-grid-G3ouKANt.js +39 -0
- package/dist/assets/insights-rNBE_Oot.js +1 -0
- package/dist/assets/java-BIPaikgB.js +1 -0
- package/dist/assets/javascript-jZJvS0Ev.js +1 -0
- package/dist/assets/json.worker-DzV-CpCQ.js +58 -0
- package/dist/assets/jsonMode-BJu_sWuN.js +7 -0
- package/dist/assets/julia-DaOMlCPl.js +1 -0
- package/dist/assets/kotlin-Bu1Cf0EE.js +1 -0
- package/dist/assets/less-CkzKMiAu.js +2 -0
- package/dist/assets/lexon-TKzNnbcT.js +1 -0
- package/dist/assets/lib-BPEPp1D-.js +4 -0
- package/dist/assets/liquid-B0Wk3SRC.js +1 -0
- package/dist/assets/live-run-C2WLFzlf.js +1 -0
- package/dist/assets/lspLanguageFeatures-Bn8JS-MZ.js +4 -0
- package/dist/assets/lua-6W3WJOvj.js +1 -0
- package/dist/assets/m3-B_B1XtJr.js +1 -0
- package/dist/assets/markdown-LT3qFBoR.js +1 -0
- package/dist/assets/marked.esm-Ba5AUJng.js +64 -0
- package/dist/assets/mdx-BE6dqG5T.js +1 -0
- package/dist/assets/memory-DcKox3BM.js +1 -0
- package/dist/assets/memory-product-oHTD8fqS.js +2 -0
- package/dist/assets/mips-BuZ0JnPP.js +1 -0
- package/dist/assets/monaco-editor-CDJrOpKK.js +2 -0
- package/dist/assets/monaco-editor-inner-Q9WqqJ52.js +6 -0
- package/dist/assets/monaco.contribution-DTHp-zXN.js +2 -0
- package/dist/assets/msdax-BHMmXeIF.js +1 -0
- package/dist/assets/mysql-B1RGnQ_F.js +1 -0
- package/dist/assets/objective-c-CFGQUdp0.js +1 -0
- package/dist/assets/observation-block-DdB7C1c0.js +1 -0
- package/dist/assets/observation-markdown-CvCuqq7R.js +1 -0
- package/dist/assets/pascal-Bunb0gdj.js +1 -0
- package/dist/assets/pascaligo-Ci9pazxY.js +1 -0
- package/dist/assets/pencil-BmkcPKBm.js +1 -0
- package/dist/assets/perl-Brcsz0QG.js +1 -0
- package/dist/assets/pgsql-BeM5icw2.js +1 -0
- package/dist/assets/php-D_0c0usD.js +1 -0
- package/dist/assets/pla-BXJXsrLp.js +1 -0
- package/dist/assets/plus-C6Zz9JLt.js +1 -0
- package/dist/assets/popover-CvQRjfg5.js +1 -0
- package/dist/assets/postiats-Bh7pQpS0.js +1 -0
- package/dist/assets/powerquery-17x2qNlN.js +1 -0
- package/dist/assets/powershell-BK7CP1HA.js +1 -0
- package/dist/assets/protobuf-BIk_BSvx.js +2 -0
- package/dist/assets/pug-AfVB1dqb.js +1 -0
- package/dist/assets/python-DYEP_Px-.js +1 -0
- package/dist/assets/qsharp-DdD7_Hjo.js +1 -0
- package/dist/assets/r-BGqTutCA.js +1 -0
- package/dist/assets/razor-BARiZmvH.js +1 -0
- package/dist/assets/redis-Dlp6Na1w.js +1 -0
- package/dist/assets/redshift-i2kKyIGQ.js +1 -0
- package/dist/assets/refresh-cw-v_0wwa0P.js +1 -0
- package/dist/assets/resizable-COfX_iMb.js +1 -0
- package/dist/assets/restructuredtext-LmY6AGSd.js +1 -0
- package/dist/assets/ruby-BxBoU2eR.js +1 -0
- package/dist/assets/run-detail-B6QhqCjq.js +1 -0
- package/dist/assets/runs-DO4LkmoV.js +1 -0
- package/dist/assets/rust-D9N2vQ1K.js +1 -0
- package/dist/assets/sb-BLTMTQei.js +1 -0
- package/dist/assets/scala-Ctl2an6m.js +1 -0
- package/dist/assets/scheme-DWYXU9Gm.js +1 -0
- package/dist/assets/scroll-area-DfPMtFw0.js +1 -0
- package/dist/assets/scss-Fo6PaAQp.js +3 -0
- package/dist/assets/select-B5gV6YUf.js +1 -0
- package/dist/assets/shell-gQZQk28C.js +1 -0
- package/dist/assets/shortcut-hints-CfVf0REF.js +1 -0
- package/dist/assets/solidity-np-sz1ji.js +1 -0
- package/dist/assets/sophia-Cpc3f9d7.js +1 -0
- package/dist/assets/sparql-BM_09I__.js +1 -0
- package/dist/assets/split-button-C7J0EKrF.js +1 -0
- package/dist/assets/sql-wg3M4gQ8.js +1 -0
- package/dist/assets/square-CvSqzenY.js +1 -0
- package/dist/assets/st-CRbYFk1r.js +1 -0
- package/dist/assets/step-name-pills-COKv64-4.js +1 -0
- package/dist/assets/suite-editor-CaMQ5mWb.js +5 -0
- package/dist/assets/suite-navbar-CnJmeIp-.js +1 -0
- package/dist/assets/suite-viewer-HsI0Pn4t.js +1 -0
- package/dist/assets/suites-Cbjz7uPI.js +1 -0
- package/dist/assets/swift-B8HA7HL5.js +1 -0
- package/dist/assets/switch-BOdp7A9U.js +1 -0
- package/dist/assets/systemverilog-Dm-upaoS.js +1 -0
- package/dist/assets/tab-console-CLKFTABo.js +1 -0
- package/dist/assets/table-DL0PmHAE.js +1 -0
- package/dist/assets/tabs-CfNQIHt-.js +1 -0
- package/dist/assets/tcl-BroSe0zp.js +1 -0
- package/dist/assets/test-editor-CIRL6zSb.js +9 -0
- package/dist/assets/test-navbar-CZhYoxgB.js +7 -0
- package/dist/assets/test-viewer-C6Rg-HeW.js +1 -0
- package/dist/assets/tests-C0Xhq39F.js +1 -0
- package/dist/assets/tests-suites-table-widths-tlOYaS72.js +1 -0
- package/dist/assets/textarea-ByegDm2e.js +1 -0
- package/dist/assets/trash-2-CawFHfTJ.js +1 -0
- package/dist/assets/ts.worker-METxwbDZ.js +67719 -0
- package/dist/assets/tsMode-DGJI_hpV.js +11 -0
- package/dist/assets/twig-C-LV7gG6.js +1 -0
- package/dist/assets/typescript-BrDOgG8S.js +1 -0
- package/dist/assets/typespec-DxaoVH5m.js +1 -0
- package/dist/assets/use-hook-run-session-Cjqu9VED.js +1 -0
- package/dist/assets/use-keyboard-shortcuts-BRF3cm7O.js +1 -0
- package/dist/assets/use-page-title-CK82kWb2.js +1 -0
- package/dist/assets/use-run-status-favicon-DoJZcfHz.js +1 -0
- package/dist/assets/use-selection-queue-CZ4rXNAT.js +1 -0
- package/dist/assets/vb-qvhMNncD.js +1 -0
- package/dist/assets/viewer-url-state-CZTYs75z.js +1 -0
- package/dist/assets/wgsl-CZM87x1c.js +298 -0
- package/dist/assets/workers-BbHjH3Kx.js +1 -0
- package/dist/assets/xml-6YL6VXLw.js +1 -0
- package/dist/assets/yaml-sHG1-XNr.js +1 -0
- package/dist/assets/zap-C7OZlYXQ.js +1 -0
- package/dist/favicon.svg +3 -0
- package/dist/index.html +37 -0
- package/package.json +81 -3
package/LICENSE.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Functional Source License, Version 1.1, ALv2 Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-ALv2
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2026 Pranshu Chittora
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly display
|
|
28
|
+
and redistribute the Software for any Permitted Purpose identified below.
|
|
29
|
+
|
|
30
|
+
### Permitted Purpose
|
|
31
|
+
|
|
32
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
|
|
33
|
+
means making the Software available to others in a commercial product or
|
|
34
|
+
service that:
|
|
35
|
+
|
|
36
|
+
1. substitutes for the Software;
|
|
37
|
+
|
|
38
|
+
2. substitutes for any other product or service we offer using the Software
|
|
39
|
+
that exists as of the date we make the Software available; or
|
|
40
|
+
|
|
41
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
42
|
+
|
|
43
|
+
Permitted Purposes specifically include using the Software:
|
|
44
|
+
|
|
45
|
+
1. for your internal use and access;
|
|
46
|
+
|
|
47
|
+
2. for non-commercial education;
|
|
48
|
+
|
|
49
|
+
3. for non-commercial research; and
|
|
50
|
+
|
|
51
|
+
4. in connection with professional services that you provide to a licensee
|
|
52
|
+
using the Software in accordance with these Terms and Conditions.
|
|
53
|
+
|
|
54
|
+
### Patents
|
|
55
|
+
|
|
56
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our
|
|
57
|
+
patents, the license grant above includes a license under our patents. If you
|
|
58
|
+
make a claim against any party that the Software infringes or contributes to
|
|
59
|
+
the infringement of any patent, then your patent license to the Software ends
|
|
60
|
+
immediately.
|
|
61
|
+
|
|
62
|
+
### Redistribution
|
|
63
|
+
|
|
64
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of
|
|
65
|
+
the Software.
|
|
66
|
+
|
|
67
|
+
If you redistribute any copies, modifications or derivatives of the Software,
|
|
68
|
+
you must include a copy of or a link to these Terms and Conditions and not
|
|
69
|
+
remove any copyright notices provided in or with the Software.
|
|
70
|
+
|
|
71
|
+
### Disclaimer
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
|
|
74
|
+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
|
|
75
|
+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
76
|
+
|
|
77
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
|
|
78
|
+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
|
|
79
|
+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
80
|
+
|
|
81
|
+
### Trademarks
|
|
82
|
+
|
|
83
|
+
Except for displaying the License Details and identifying us as the origin of
|
|
84
|
+
the Software, you have no right under these Terms and Conditions to use our
|
|
85
|
+
trademarks, trade names, service marks or product names.
|
|
86
|
+
|
|
87
|
+
## Grant of Future License
|
|
88
|
+
|
|
89
|
+
We hereby irrevocably grant you an additional license to use the Software under
|
|
90
|
+
the Apache License, Version 2.0 that is effective on the second anniversary of
|
|
91
|
+
the date we make the Software available. On or after that date, you may use the
|
|
92
|
+
Software under the Apache License, Version 2.0, in which case the following
|
|
93
|
+
will apply:
|
|
94
|
+
|
|
95
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
96
|
+
this file except in compliance with the License.
|
|
97
|
+
|
|
98
|
+
You may obtain a copy of the License at
|
|
99
|
+
|
|
100
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
101
|
+
|
|
102
|
+
Unless required by applicable law or agreed to in writing, software distributed
|
|
103
|
+
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
|
+
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
|
+
specific language governing permissions and limitations under the License.
|
package/NOTICE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# agent-qa Notice
|
|
2
|
+
|
|
3
|
+
agent-qa is provided by Pranshu Chittora.
|
|
4
|
+
|
|
5
|
+
Copyright 2026 Pranshu Chittora
|
|
6
|
+
|
|
7
|
+
agent-qa is licensed under the Functional Source License, Version 1.1, ALv2 Future License (FSL-1.1-ALv2). See `LICENSE.md` for the full license terms.
|
|
8
|
+
|
|
9
|
+
Under the Grant of Future License in `LICENSE.md`, each version of the Software is also granted under the Apache License, Version 2.0 effective on the second anniversary of the date that version was made available.
|
|
10
|
+
|
|
11
|
+
Third-party dependencies are distributed under their own license terms. This notice covers agent-qa itself and does not replace or modify notices required by third-party dependency owners.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`*`},brackets:[[`[`,`]`],[`(`,`)`]]},t={defaultToken:`invalid`,ignoreCase:!0,tokenPostfix:`.abap`,keywords:`abap-source.abbreviated.abstract.accept.accepting.according.activation.actual.add.add-corresponding.adjacent.after.alias.aliases.align.all.allocate.alpha.analysis.analyzer.and.append.appendage.appending.application.archive.area.arithmetic.as.ascending.aspect.assert.assign.assigned.assigning.association.asynchronous.at.attributes.authority.authority-check.avg.back.background.backup.backward.badi.base.before.begin.between.big.binary.bintohex.bit.black.blank.blanks.blob.block.blocks.blue.bound.boundaries.bounds.boxed.break-point.buffer.by.bypassing.byte.byte-order.call.calling.case.cast.casting.catch.center.centered.chain.chain-input.chain-request.change.changing.channels.character.char-to-hex.check.checkbox.ci_.circular.class.class-coding.class-data.class-events.class-methods.class-pool.cleanup.clear.client.clob.clock.close.coalesce.code.coding.col_background.col_group.col_heading.col_key.col_negative.col_normal.col_positive.col_total.collect.color.column.columns.comment.comments.commit.common.communication.comparing.component.components.compression.compute.concat.concat_with_space.concatenate.cond.condense.condition.connect.connection.constants.context.contexts.continue.control.controls.conv.conversion.convert.copies.copy.corresponding.country.cover.cpi.create.creating.critical.currency.currency_conversion.current.cursor.cursor-selection.customer.customer-function.dangerous.data.database.datainfo.dataset.date.dats_add_days.dats_add_months.dats_days_between.dats_is_valid.daylight.dd/mm/yy.dd/mm/yyyy.ddmmyy.deallocate.decimal_shift.decimals.declarations.deep.default.deferred.define.defining.definition.delete.deleting.demand.department.descending.describe.destination.detail.dialog.directory.disconnect.display.display-mode.distinct.divide.divide-corresponding.division.do.dummy.duplicate.duplicates.duration.during.dynamic.dynpro.edit.editor-call.else.elseif.empty.enabled.enabling.encoding.end.endat.endcase.endcatch.endchain.endclass.enddo.endenhancement.end-enhancement-section.endexec.endform.endfunction.endian.endif.ending.endinterface.end-lines.endloop.endmethod.endmodule.end-of-definition.end-of-editing.end-of-file.end-of-page.end-of-selection.endon.endprovide.endselect.end-test-injection.end-test-seam.endtry.endwhile.endwith.engineering.enhancement.enhancement-point.enhancements.enhancement-section.entries.entry.enum.environment.equiv.errormessage.errors.escaping.event.events.exact.except.exception.exceptions.exception-table.exclude.excluding.exec.execute.exists.exit.exit-command.expand.expanding.expiration.explicit.exponent.export.exporting.extend.extended.extension.extract.fail.fetch.field.field-groups.fields.field-symbol.field-symbols.file.filter.filters.filter-table.final.find.first.first-line.fixed-point.fkeq.fkge.flush.font.for.form.format.forward.found.frame.frames.free.friends.from.function.functionality.function-pool.further.gaps.generate.get.giving.gkeq.gkge.global.grant.green.group.groups.handle.handler.harmless.hashed.having.hdb.header.headers.heading.head-lines.help-id.help-request.hextobin.hide.high.hint.hold.hotspot.icon.id.identification.identifier.ids.if.ignore.ignoring.immediately.implementation.implementations.implemented.implicit.import.importing.in.inactive.incl.include.includes.including.increment.index.index-line.infotypes.inheriting.init.initial.initialization.inner.inout.input.insert.instance.instances.instr.intensified.interface.interface-pool.interfaces.internal.intervals.into.inverse.inverted-date.is.iso.job.join.keep.keeping.kernel.key.keys.keywords.kind.language.last.late.layout.leading.leave.left.left-justified.leftplus.leftspace.legacy.length.let.level.levels.like.line.lines.line-count.linefeed.line-selection.line-size.list.listbox.list-processing.little.llang.load.load-of-program.lob.local.locale.locator.logfile.logical.log-point.long.loop.low.lower.lpad.lpi.ltrim.mail.main.major-id.mapping.margin.mark.mask.match.matchcode.max.maximum.medium.members.memory.mesh.message.message-id.messages.messaging.method.methods.min.minimum.minor-id.mm/dd/yy.mm/dd/yyyy.mmddyy.mode.modif.modifier.modify.module.move.move-corresponding.multiply.multiply-corresponding.name.nametab.native.nested.nesting.new.new-line.new-page.new-section.next.no.no-display.no-extension.no-gap.no-gaps.no-grouping.no-heading.no-scrolling.no-sign.no-title.no-topofpage.no-zero.node.nodes.non-unicode.non-unique.not.null.number.object.objects.obligatory.occurrence.occurrences.occurs.of.off.offset.ole.on.only.open.option.optional.options.or.order.other.others.out.outer.output.output-length.overflow.overlay.pack.package.pad.padding.page.pages.parameter.parameters.parameter-table.part.partially.pattern.percentage.perform.performing.person.pf1.pf10.pf11.pf12.pf13.pf14.pf15.pf2.pf3.pf4.pf5.pf6.pf7.pf8.pf9.pf-status.pink.places.pool.pos_high.pos_low.position.pragmas.precompiled.preferred.preserving.primary.print.print-control.priority.private.procedure.process.program.property.protected.provide.public.push.pushbutton.put.queue-only.quickinfo.radiobutton.raise.raising.range.ranges.read.reader.read-only.receive.received.receiver.receiving.red.redefinition.reduce.reduced.ref.reference.refresh.regex.reject.remote.renaming.replace.replacement.replacing.report.request.requested.reserve.reset.resolution.respecting.responsible.result.results.resumable.resume.retry.return.returncode.returning.returns.right.right-justified.rightplus.rightspace.risk.rmc_communication_failure.rmc_invalid_status.rmc_system_failure.role.rollback.rows.rpad.rtrim.run.sap.sap-spool.saving.scale_preserving.scale_preserving_scientific.scan.scientific.scientific_with_leading_zero.scroll.scroll-boundary.scrolling.search.secondary.seconds.section.select.selection.selections.selection-screen.selection-set.selection-sets.selection-table.select-options.send.separate.separated.set.shared.shift.short.shortdump-id.sign_as_postfix.single.size.skip.skipping.smart.some.sort.sortable.sorted.source.specified.split.spool.spots.sql.sqlscript.stable.stamp.standard.starting.start-of-editing.start-of-selection.state.statement.statements.static.statics.statusinfo.step-loop.stop.structure.structures.style.subkey.submatches.submit.subroutine.subscreen.subtract.subtract-corresponding.suffix.sum.summary.summing.supplied.supply.suppress.switch.switchstates.symbol.syncpoints.syntax.syntax-check.syntax-trace.system-call.system-exceptions.system-exit.tab.tabbed.table.tables.tableview.tabstrip.target.task.tasks.test.testing.test-injection.test-seam.text.textpool.then.throw.time.times.timestamp.timezone.tims_is_valid.title.titlebar.title-lines.to.tokenization.tokens.top-lines.top-of-page.trace-file.trace-table.trailing.transaction.transfer.transformation.translate.transporting.trmac.truncate.truncation.try.tstmp_add_seconds.tstmp_current_utctimestamp.tstmp_is_valid.tstmp_seconds_between.type.type-pool.type-pools.types.uline.unassign.under.unicode.union.unique.unit_conversion.unix.unpack.until.unwind.up.update.upper.user.user-command.using.utf-8.valid.value.value-request.values.vary.varying.verification-message.version.via.view.visible.wait.warning.when.whenever.where.while.width.window.windows.with.with-heading.without.with-title.word.work.write.writer.xml.xsd.yellow.yes.yymmdd.zero.zone.abap_system_timezone.abap_user_timezone.access.action.adabas.adjust_numbers.allow_precision_loss.allowed.amdp.applicationuser.as_geo_json.as400.associations.balance.behavior.breakup.bulk.cds.cds_client.check_before_save.child.clients.corr.corr_spearman.cross.cycles.datn_add_days.datn_add_months.datn_days_between.dats_from_datn.dats_tims_to_tstmp.dats_to_datn.db2.db6.ddl.dense_rank.depth.deterministic.discarding.entities.entity.error.failed.finalize.first_value.fltp_to_dec.following.fractional.full.graph.grouping.hierarchy.hierarchy_ancestors.hierarchy_ancestors_aggregate.hierarchy_descendants.hierarchy_descendants_aggregate.hierarchy_siblings.incremental.indicators.lag.last_value.lead.leaves.like_regexpr.link.locale_sap.lock.locks.many.mapped.matched.measures.median.mssqlnt.multiple.nodetype.ntile.nulls.occurrences_regexpr.one.operations.oracle.orphans.over.parent.parents.partition.pcre.period.pfcg_mapping.preceding.privileged.product.projection.rank.redirected.replace_regexpr.reported.response.responses.root.row.row_number.sap_system_date.save.schema.session.sets.shortdump.siblings.spantree.start.stddev.string_agg.subtotal.sybase.tims_from_timn.tims_to_timn.to_blob.to_clob.total.trace-entry.tstmp_to_dats.tstmp_to_dst.tstmp_to_tims.tstmpl_from_utcl.tstmpl_to_utcl.unbounded.utcl_add_seconds.utcl_current.utcl_seconds_between.uuid.var.verbatim`.split(`.`),builtinFunctions:`abs.acos.asin.atan.bit-set.boolc.boolx.ceil.char_off.charlen.cmax.cmin.concat_lines_of.contains.contains_any_not_of.contains_any_of.cos.cosh.count.count_any_not_of.count_any_of.dbmaxlen.distance.escape.exp.find_any_not_of.find_any_of.find_end.floor.frac.from_mixed.ipow.line_exists.line_index.log.log10.matches.nmax.nmin.numofchar.repeat.rescale.reverse.round.segment.shift_left.shift_right.sign.sin.sinh.sqrt.strlen.substring.substring_after.substring_before.substring_from.substring_to.tan.tanh.to_lower.to_mixed.to_upper.trunc.utclong_add.utclong_current.utclong_diff.xsdbool.xstrlen`.split(`.`),typeKeywords:`b.c.d.decfloat16.decfloat34.f.i.int8.n.p.s.string.t.utclong.x.xstring.any.clike.csequence.decfloat.numeric.simple.xsequence.accp.char.clnt.cuky.curr.datn.dats.d16d.d16n.d16r.d34d.d34n.d34r.dec.df16_dec.df16_raw.df34_dec.df34_raw.fltp.geom_ewkb.int1.int2.int4.lang.lchr.lraw.numc.quan.raw.rawstring.sstring.timn.tims.unit.utcl.df16_scl.df34_scl.prec.varc.abap_bool.abap_false.abap_true.abap_undefined.me.screen.space.super.sy.syst.table_line.*sys*`.split(`.`),builtinMethods:[`class_constructor`,`constructor`],derivedTypes:[`%CID`,`%CID_REF`,`%CONTROL`,`%DATA`,`%ELEMENT`,`%FAIL`,`%KEY`,`%MSG`,`%PARAM`,`%PID`,`%PID_ASSOC`,`%PID_PARENT`,`%_HINTS`],cdsLanguage:[`@AbapAnnotation`,`@AbapCatalog`,`@AccessControl`,`@API`,`@ClientDependent`,`@ClientHandling`,`@CompatibilityContract`,`@DataAging`,`@EndUserText`,`@Environment`,`@LanguageDependency`,`@MappingRole`,`@Metadata`,`@MetadataExtension`,`@ObjectModel`,`@Scope`,`@Semantics`,`$EXTENSION`,`$SELF`],selectors:[`->`,`->*`,`=>`,`~`,`~*`],operators:` +. -./.*.**.div.mod.=.#.@.+=.-=.*=./=.**=.&&=.?=.&.&&.bit-and.bit-not.bit-or.bit-xor.m.o.z.<. >.<=.>=.<>.><.=<.=>.bt.byte-ca.byte-cn.byte-co.byte-cs.byte-na.byte-ns.ca.cn.co.cp.cs.eq.ge.gt.le.lt.na.nb.ne.np.ns.*/.*:.--./*.//`.split(`.`),symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,{cases:{"@typeKeywords":`type`,"@keywords":`keyword`,"@cdsLanguage":`annotation`,"@derivedTypes":`type`,"@builtinFunctions":`type`,"@builtinMethods":`type`,"@operators":`key`,"@default":`identifier`}}],[/<[\w]+>/,`identifier`],[/##[\w|_]+/,`comment`],{include:`@whitespace`},[/[:,.]/,`delimiter`],[/[{}()\[\]]/,`@brackets`],[/@symbols/,{cases:{"@selectors":`tag`,"@operators":`key`,"@default":``}}],[/'/,{token:`string`,bracket:`@open`,next:`@stringquote`}],[/`/,{token:`string`,bracket:`@open`,next:`@stringping`}],[/\|/,{token:`string`,bracket:`@open`,next:`@stringtemplate`}],[/\d+/,`number`]],stringtemplate:[[/[^\\\|]+/,`string`],[/\\\|/,`string`],[/\|/,{token:`string`,bracket:`@close`,next:`@pop`}]],stringping:[[/[^\\`]+/,`string`],[/`/,{token:`string`,bracket:`@close`,next:`@pop`}]],stringquote:[[/[^\\']+/,`string`],[/'/,{token:`string`,bracket:`@close`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/^\*.*$/,`comment`],[/\".*$/,`comment`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`<`,close:`>`}],folding:{markers:{start:RegExp(`^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))`),end:RegExp(`^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))`)}}},t=`abstract.activate.and.any.array.as.asc.assert.autonomous.begin.bigdecimal.blob.boolean.break.bulk.by.case.cast.catch.char.class.collect.commit.const.continue.convertcurrency.decimal.default.delete.desc.do.double.else.end.enum.exception.exit.export.extends.false.final.finally.float.for.from.future.get.global.goto.group.having.hint.if.implements.import.in.inner.insert.instanceof.int.interface.into.join.last_90_days.last_month.last_n_days.last_week.like.limit.list.long.loop.map.merge.native.new.next_90_days.next_month.next_n_days.next_week.not.null.nulls.number.object.of.on.or.outer.override.package.parallel.pragma.private.protected.public.retrieve.return.returning.rollback.savepoint.search.select.set.short.sort.stat.static.strictfp.super.switch.synchronized.system.testmethod.then.this.this_month.this_week.throw.throws.today.tolabel.tomorrow.transaction.transient.trigger.true.try.type.undelete.update.upsert.using.virtual.void.volatile.webservice.when.where.while.yesterday`.split(`.`),n=e=>e.charAt(0).toUpperCase()+e.substr(1),r=[];t.forEach(e=>{r.push(e),r.push(e.toUpperCase()),r.push(n(e))});var i={defaultToken:``,tokenPostfix:`.apex`,keywords:r,operators:`=.>.<.!.~.?.:.==.<=.>=.!=.&&.||.++.--.+.-.*./.&.|.^.%.<<.>>.>>>.+=.-=.*=./=.&=.|=.^=.%=.<<=.>>=.>>>=`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\w$]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],[/[A-Z][\w\$]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`type.identifier`}}],{include:`@whitespace`},[/[{}()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/@\s*[a-zA-Z_\$][\w\$]*/,`annotation`],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,`number.float`],[/(@digits)[fFdD]/,`number.float`],[/(@digits)[lL]?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string."`],[/'/,`string`,`@string.'`],[/'[^\\']'/,`string`],[/(')(@escapes)(')/,[`string`,`string.escape`,`string`]],[/'/,`string.invalid`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@apexdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],apexdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],string:[[/[^\\"']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/["']/,{cases:{"$#==$S2":{token:`string`,next:`@pop`},"@default":`string`}}]]}};export{e as conf,i as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{qn as e}from"./index-B3xPCIyH.js";var t=e(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`#`}},t={defaultToken:`keyword`,ignoreCase:!0,tokenPostfix:`.azcli`,str:/[^#\s]/,tokenizer:{root:[{include:`@comment`},[/\s-+@str*\s*/,{cases:{"@eos":{token:`key.identifier`,next:`@popall`},"@default":{token:`key.identifier`,next:`@type`}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:`key.identifier`,next:`@popall`},"@default":{token:`key.identifier`,next:`@type`}}}]],type:[{include:`@comment`},[/-+@str*\s*/,{cases:{"@eos":{token:`key.identifier`,next:`@popall`},"@default":`key.identifier`}}],[/@str+\s*/,{cases:{"@eos":{token:`string`,next:`@popall`},"@default":`string`}}]],comment:[[/#.*$/,{cases:{"@eos":{token:`comment`,next:`@popall`}}}]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-CilyBKbf.js";import{Dn as e,Jn as t,Ut as n,Zn as r,fr as i}from"./index-B3xPCIyH.js";i();var a=r(),o=t(`inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-sm border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3`,{variants:{variant:{default:`bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90`,outline:`border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`,ghost:`[a&]:hover:bg-accent [a&]:hover:text-accent-foreground`,link:`text-primary underline-offset-4 [a&]:hover:underline`}},defaultVariants:{variant:`default`}});function s({className:t,variant:r=`default`,asChild:i=!1,...s}){return(0,a.jsx)(i?e:`span`,{"data-slot":`badge`,"data-variant":r,className:n(o({variant:r}),t),...s})}export{s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`REM`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}],surroundingPairs:[{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`}],folding:{markers:{start:RegExp(`^\\s*(::\\s*|REM\\s+)#region`),end:RegExp(`^\\s*(::\\s*|REM\\s+)#endregion`)}}},t={defaultToken:``,ignoreCase:!0,tokenPostfix:`.bat`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.parenthesis`,open:`(`,close:`)`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,[``,`comment`]],[/(\@?)(@keywords)(?!\w)/,[{token:`keyword`},{token:`keyword.$2`}]],[/[ \t\r\n]+/,``],[/setlocal(?!\w)/,`keyword.tag-setlocal`],[/endlocal(?!\w)/,`keyword.tag-setlocal`],[/[a-zA-Z_]\w*/,``],[/:\w*/,`metatag`],[/%[^%]+%/,`variable`],[/%%[\w]+(?!\w)/,`variable`],[/[{}()\[\]]/,`@brackets`],[/@symbols/,`delimiter`],[/\d*\.\d+([eE][\-+]?\d+)?/,`number.float`],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,`number.hex`],[/\d+/,`number`],[/[;,.]/,`delimiter`],[/"/,`string`,`@string."`],[/'/,`string`,`@string.'`]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:`string`,next:`@popall`},"@default":`string`}}],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/%[\w ]+%/,`variable`],[/%%[\w]+(?!\w)/,`variable`],[/["']/,{cases:{"$#==$S2":{token:`string`,next:`@pop`},"@default":`string`}}],[/$/,`string`,`@popall`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./chunk-CilyBKbf.js";import{c as t,u as n}from"./select-B5gV6YUf.js";import{t as r}from"./split-button-C7J0EKrF.js";import{t as i}from"./trash-2-CawFHfTJ.js";import{Cn as a,Ht as o,Sn as s,Tn as c,Ut as l,Zn as u,bn as d,dr as f,en as p,fr as m,jn as h,yn as g}from"./index-B3xPCIyH.js";var _=e(m(),1),v=u(),y=`Checkbox`,[b,x]=a(y),[S,C]=b(y);function w(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:f}=e,[p,m]=d({prop:n,defaultProp:i??!1,onChange:c,caller:y}),[h,g]=_.useState(null),[b,x]=_.useState(null),C=_.useRef(!1),w=h?!!o||!!h.closest(`form`):!0,T={checked:p,disabled:a,setChecked:m,control:h,setControl:g,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:C,required:l,defaultChecked:N(i)?!1:i,isFormControl:w,bubbleInput:b,setBubbleInput:x};return(0,v.jsx)(S,{scope:t,...T,children:M(f)?f(T):r})}var T=`CheckboxTrigger`,E=_.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i)=>{let{control:a,value:o,disabled:l,checked:u,required:d,setControl:f,setChecked:p,hasConsumerStoppedPropagationRef:m,isFormControl:g,bubbleInput:y}=C(T,e),b=h(i,f),x=_.useRef(u);return _.useEffect(()=>{let e=a?.form;if(e){let t=()=>p(x.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,p]),(0,v.jsx)(c.button,{type:`button`,role:`checkbox`,"aria-checked":N(u)?`mixed`:u,"aria-required":d,"data-state":P(u),"data-disabled":l?``:void 0,disabled:l,value:o,...r,ref:b,onKeyDown:s(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:s(n,e=>{p(e=>N(e)?!0:!e),y&&g&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});E.displayName=T;var D=_.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,v.jsx)(w,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(E,{...d,ref:t,__scopeCheckbox:n}),e&&(0,v.jsx)(j,{__scopeCheckbox:n})]})})});D.displayName=y;var O=`CheckboxIndicator`,k=_.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=C(O,n);return(0,v.jsx)(g,{present:r||N(a.checked)||a.checked===!0,children:(0,v.jsx)(c.span,{"data-state":P(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});k.displayName=O;var A=`CheckboxBubbleInput`,j=_.forwardRef(({__scopeCheckbox:e,...n},r)=>{let{control:i,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:l,disabled:u,name:d,value:f,form:m,bubbleInput:g,setBubbleInput:y}=C(A,e),b=h(r,y),x=t(o),S=p(i);_.useEffect(()=>{let e=g;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(x!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=N(o),n.call(e,N(o)?!1:o),e.dispatchEvent(t)}},[g,x,o,a]);let w=_.useRef(N(o)?!1:o);return(0,v.jsx)(c.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??w.current,required:l,disabled:u,name:d,value:f,form:m,...n,tabIndex:-1,ref:b,style:{...n.style,...S,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});j.displayName=A;function M(e){return typeof e==`function`}function N(e){return e===`indeterminate`}function P(e){return N(e)?`indeterminate`:e?`checked`:`unchecked`}function F({className:e,...t}){return(0,v.jsx)(D,{"data-slot":`checkbox`,className:l(`peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs`,`data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary`,`focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:border-ring`,`disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,v.jsx)(k,{className:`flex items-center justify-center text-current`,children:(0,v.jsx)(n,{className:`size-3.5`})})})}var I=e(f(),1);function L({selectedCount:e,onRun:t,onRunNoCache:n,onPurgeCache:a,onCancel:s,isRunning:c=!1,summaryMeta:l,secondaryLabel:u,secondaryIcon:d,secondaryAriaLabel:f,actionSlot:p,onDelete:m}){if(e===0)return null;let h=!u&&!!d;return(0,I.createPortal)((0,v.jsxs)(`div`,{className:`fixed bottom-6 left-1/2 z-50 flex w-max max-w-[calc(100vw-1rem)] -translate-x-1/2 flex-wrap items-center gap-3 rounded-md border bg-background px-4 py-3 shadow-lg sm:flex-nowrap`,children:[(0,v.jsxs)(`div`,{className:`min-w-[6.5rem] shrink-0`,children:[(0,v.jsxs)(`span`,{className:`text-sm font-medium`,children:[e,` selected`]}),l?(0,v.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l}):null]}),p??(t&&n?(0,v.jsx)(r,{onRun:t,onRunNoCache:n,onPurgeCache:a,disabled:c,size:`sm`}):null),m?(0,v.jsxs)(o,{variant:`destructive`,size:`sm`,onClick:m,disabled:c,children:[(0,v.jsx)(i,{className:`size-4`}),`Delete`]}):null,(0,v.jsx)(o,{variant:h?`ghost`:`outline`,size:h?`icon-sm`:`sm`,"aria-label":f,title:f,onClick:s,disabled:c,children:d??u??`Cancel`})]}),document.body)}export{F as n,L as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=(e=>`\\b${e}\\b`)(`[_a-zA-Z][_a-zA-Z0-9]*`),t=[`targetScope`,`resource`,`module`,`param`,`var`,`output`,`for`,`in`,`if`,`existing`],n=[`true`,`false`,`null`],r=`[ \\t\\r\\n]`,i=`[0-9]+`,a={comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`'`,close:`'`},{open:`'''`,close:`'''`}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:`'''`,close:`'''`,notIn:[`string`,`comment`]}],autoCloseBefore:`:.,=}])'
|
|
2
|
+
`,indentationRules:{increaseIndentPattern:RegExp(`^((?!\\/\\/).)*(\\{[^}"'\`]*|\\([^)"'\`]*|\\[[^\\]"'\`]*)$`),decreaseIndentPattern:RegExp(`^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$`)}},o={defaultToken:``,tokenPostfix:`.bicep`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:t,namedLiterals:n,escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",tokenizer:{root:[{include:`@expression`},{include:`@whitespace`}],stringVerbatim:[{regex:`(|'|'')[^']`,action:{token:`string`}},{regex:`'''`,action:{token:`string.quote`,next:`@pop`}}],stringLiteral:[{regex:"\\${",action:{token:`delimiter.bracket`,next:`@bracketCounting`}},{regex:`[^\\\\'$]+`,action:{token:`string`}},{regex:`@escapes`,action:{token:`string.escape`}},{regex:`\\\\.`,action:{token:`string.escape.invalid`}},{regex:`'`,action:{token:`string`,next:`@pop`}}],bracketCounting:[{regex:`{`,action:{token:`delimiter.bracket`,next:`@bracketCounting`}},{regex:`}`,action:{token:`delimiter.bracket`,next:`@pop`}},{include:`expression`}],comment:[{regex:`[^\\*]+`,action:{token:`comment`}},{regex:`\\*\\/`,action:{token:`comment`,next:`@pop`}},{regex:`[\\/*]`,action:{token:`comment`}}],whitespace:[{regex:r},{regex:`\\/\\*`,action:{token:`comment`,next:`@comment`}},{regex:`\\/\\/.*$`,action:{token:`comment`}}],expression:[{regex:`'''`,action:{token:`string.quote`,next:`@stringVerbatim`}},{regex:`'`,action:{token:`string.quote`,next:`@stringLiteral`}},{regex:i,action:{token:`number`}},{regex:e,action:{cases:{"@keywords":{token:`keyword`},"@namedLiterals":{token:`keyword`},"@default":{token:`identifier`}}}}]}};export{a as conf,o as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`//`,blockComment:[`(*`,`*)`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`],[`<`,`>`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`},{open:`(*`,close:`*)`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`},{open:`(*`,close:`*)`}]},t={defaultToken:``,tokenPostfix:`.cameligo`,ignoreCase:!0,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],keywords:`abs.assert.block.Bytes.case.Crypto.Current.else.failwith.false.for.fun.if.in.let.let%entry.let%init.List.list.Map.map.match.match%nat.mod.not.operation.Operation.of.record.Set.set.sender.skip.source.String.then.to.true.type.with`.split(`.`),typeKeywords:[`int`,`unit`,`string`,`tz`,`nat`,`bool`],operators:[`=`,`>`,`<`,`<=`,`>=`,`<>`,`:`,`:=`,`and`,`mod`,`or`,`+`,`-`,`*`,`/`,`@`,`&`,`^`,`%`,`->`,`<-`,`&&`,`||`],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],{include:`@whitespace`},[/[{}()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/\d*\.\d+([eE][\-+]?\d+)?/,`number.float`],[/\$[0-9a-fA-F]{1,16}/,`number.hex`],[/\d+/,`number`],[/[;,.]/,`delimiter`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'/,`string`,`@string`],[/'[^\\']'/,`string`],[/'/,`string.invalid`],[/\#\d+/,`string`]],comment:[[/[^\(\*]+/,`comment`],[/\*\)/,`comment`,`@pop`],[/\(\*/,`comment`]],string:[[/[^\\']+/,`string`],[/\\./,`string.escape.invalid`],[/'/,{token:`string.quote`,bracket:`@close`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,`white`],[/\(\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));export{s as n,l as r,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{qn as e}from"./index-B3xPCIyH.js";var t=e(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{qn as e}from"./index-B3xPCIyH.js";var t=e(`circle-x`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`;;`},brackets:[[`[`,`]`],[`(`,`)`],[`{`,`}`]],autoClosingPairs:[{open:`[`,close:`]`},{open:`"`,close:`"`},{open:`(`,close:`)`},{open:`{`,close:`}`}],surroundingPairs:[{open:`[`,close:`]`},{open:`"`,close:`"`},{open:`(`,close:`)`},{open:`{`,close:`}`}]},t={defaultToken:``,ignoreCase:!0,tokenPostfix:`.clj`,brackets:[{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`{`,close:`}`,token:`delimiter.curly`}],constants:[`true`,`false`,`nil`],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[`.`,`catch`,`def`,`do`,`if`,`monitor-enter`,`monitor-exit`,`new`,`quote`,`recur`,`set!`,`throw`,`try`,`var`],coreSymbols:`*,*',*1,*2,*3,*agent*,*allow-unresolved-vars*,*assert*,*clojure-version*,*command-line-args*,*compile-files*,*compile-path*,*compiler-options*,*data-readers*,*default-data-reader-fn*,*e,*err*,*file*,*flush-on-newline*,*fn-loader*,*in*,*math-context*,*ns*,*out*,*print-dup*,*print-length*,*print-level*,*print-meta*,*print-namespace-maps*,*print-readably*,*read-eval*,*reader-resolver*,*source-path*,*suppress-read*,*unchecked-math*,*use-context-classloader*,*verbose-defrecords*,*warn-on-reflection*,+,+',-,-',->,->>,->ArrayChunk,->Eduction,->Vec,->VecNode,->VecSeq,-cache-protocol-fn,-reset-methods,..,/,<,<=,=,==,>,>=,EMPTY-NODE,Inst,StackTraceElement->vec,Throwable->map,accessor,aclone,add-classpath,add-watch,agent,agent-error,agent-errors,aget,alength,alias,all-ns,alter,alter-meta!,alter-var-root,amap,ancestors,and,any?,apply,areduce,array-map,as->,aset,aset-boolean,aset-byte,aset-char,aset-double,aset-float,aset-int,aset-long,aset-short,assert,assoc,assoc!,assoc-in,associative?,atom,await,await-for,await1,bases,bean,bigdec,bigint,biginteger,binding,bit-and,bit-and-not,bit-clear,bit-flip,bit-not,bit-or,bit-set,bit-shift-left,bit-shift-right,bit-test,bit-xor,boolean,boolean-array,boolean?,booleans,bound-fn,bound-fn*,bound?,bounded-count,butlast,byte,byte-array,bytes,bytes?,case,cast,cat,char,char-array,char-escape-string,char-name-string,char?,chars,chunk,chunk-append,chunk-buffer,chunk-cons,chunk-first,chunk-next,chunk-rest,chunked-seq?,class,class?,clear-agent-errors,clojure-version,coll?,comment,commute,comp,comparator,compare,compare-and-set!,compile,complement,completing,concat,cond,cond->,cond->>,condp,conj,conj!,cons,constantly,construct-proxy,contains?,count,counted?,create-ns,create-struct,cycle,dec,dec',decimal?,declare,dedupe,default-data-readers,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftype,delay,delay?,deliver,denominator,deref,derive,descendants,destructure,disj,disj!,dissoc,dissoc!,distinct,distinct?,doall,dorun,doseq,dosync,dotimes,doto,double,double-array,double?,doubles,drop,drop-last,drop-while,eduction,empty,empty?,ensure,ensure-reduced,enumeration-seq,error-handler,error-mode,eval,even?,every-pred,every?,ex-data,ex-info,extend,extend-protocol,extend-type,extenders,extends?,false?,ffirst,file-seq,filter,filterv,find,find-keyword,find-ns,find-protocol-impl,find-protocol-method,find-var,first,flatten,float,float-array,float?,floats,flush,fn,fn?,fnext,fnil,for,force,format,frequencies,future,future-call,future-cancel,future-cancelled?,future-done?,future?,gen-class,gen-interface,gensym,get,get-in,get-method,get-proxy-class,get-thread-bindings,get-validator,group-by,halt-when,hash,hash-combine,hash-map,hash-ordered-coll,hash-set,hash-unordered-coll,ident?,identical?,identity,if-let,if-not,if-some,ifn?,import,in-ns,inc,inc',indexed?,init-proxy,inst-ms,inst-ms*,inst?,instance?,int,int-array,int?,integer?,interleave,intern,interpose,into,into-array,ints,io!,isa?,iterate,iterator-seq,juxt,keep,keep-indexed,key,keys,keyword,keyword?,last,lazy-cat,lazy-seq,let,letfn,line-seq,list,list*,list?,load,load-file,load-reader,load-string,loaded-libs,locking,long,long-array,longs,loop,macroexpand,macroexpand-1,make-array,make-hierarchy,map,map-entry?,map-indexed,map?,mapcat,mapv,max,max-key,memfn,memoize,merge,merge-with,meta,method-sig,methods,min,min-key,mix-collection-hash,mod,munge,name,namespace,namespace-munge,nat-int?,neg-int?,neg?,newline,next,nfirst,nil?,nnext,not,not-any?,not-empty,not-every?,not=,ns,ns-aliases,ns-imports,ns-interns,ns-map,ns-name,ns-publics,ns-refers,ns-resolve,ns-unalias,ns-unmap,nth,nthnext,nthrest,num,number?,numerator,object-array,odd?,or,parents,partial,partition,partition-all,partition-by,pcalls,peek,persistent!,pmap,pop,pop!,pop-thread-bindings,pos-int?,pos?,pr,pr-str,prefer-method,prefers,primitives-classnames,print,print-ctor,print-dup,print-method,print-simple,print-str,printf,println,println-str,prn,prn-str,promise,proxy,proxy-call-with-super,proxy-mappings,proxy-name,proxy-super,push-thread-bindings,pvalues,qualified-ident?,qualified-keyword?,qualified-symbol?,quot,rand,rand-int,rand-nth,random-sample,range,ratio?,rational?,rationalize,re-find,re-groups,re-matcher,re-matches,re-pattern,re-seq,read,read-line,read-string,reader-conditional,reader-conditional?,realized?,record?,reduce,reduce-kv,reduced,reduced?,reductions,ref,ref-history-count,ref-max-history,ref-min-history,ref-set,refer,refer-clojure,reify,release-pending-sends,rem,remove,remove-all-methods,remove-method,remove-ns,remove-watch,repeat,repeatedly,replace,replicate,require,reset!,reset-meta!,reset-vals!,resolve,rest,restart-agent,resultset-seq,reverse,reversible?,rseq,rsubseq,run!,satisfies?,second,select-keys,send,send-off,send-via,seq,seq?,seqable?,seque,sequence,sequential?,set,set-agent-send-executor!,set-agent-send-off-executor!,set-error-handler!,set-error-mode!,set-validator!,set?,short,short-array,shorts,shuffle,shutdown-agents,simple-ident?,simple-keyword?,simple-symbol?,slurp,some,some->,some->>,some-fn,some?,sort,sort-by,sorted-map,sorted-map-by,sorted-set,sorted-set-by,sorted?,special-symbol?,spit,split-at,split-with,str,string?,struct,struct-map,subs,subseq,subvec,supers,swap!,swap-vals!,symbol,symbol?,sync,tagged-literal,tagged-literal?,take,take-last,take-nth,take-while,test,the-ns,thread-bound?,time,to-array,to-array-2d,trampoline,transduce,transient,tree-seq,true?,type,unchecked-add,unchecked-add-int,unchecked-byte,unchecked-char,unchecked-dec,unchecked-dec-int,unchecked-divide-int,unchecked-double,unchecked-float,unchecked-inc,unchecked-inc-int,unchecked-int,unchecked-long,unchecked-multiply,unchecked-multiply-int,unchecked-negate,unchecked-negate-int,unchecked-remainder-int,unchecked-short,unchecked-subtract,unchecked-subtract-int,underive,unquote,unquote-splicing,unreduced,unsigned-bit-shift-right,update,update-in,update-proxy,uri?,use,uuid?,val,vals,var-get,var-set,var?,vary-meta,vec,vector,vector-of,vector?,volatile!,volatile?,vreset!,vswap!,when,when-first,when-let,when-not,when-some,while,with-bindings,with-bindings*,with-in-str,with-loading-context,with-local-vars,with-meta,with-open,with-out-str,with-precision,with-redefs,with-redefs-fn,xml-seq,zero?,zipmap`.split(`,`),tokenizer:{root:[{include:`@whitespace`},[/@numbers/,`number`],[/@characters/,`string`],{include:`@string`},[/[()\[\]{}]/,`@brackets`],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,`regexp`],[/[#'@^`~]/,`meta`],[/@qualifiedSymbols/,{cases:{"^:.+$":`constant`,"@specialForms":`keyword`,"@coreSymbols":`keyword`,"@constants":`constant`,"@default":`identifier`}}]],whitespace:[[/[\s,]+/,`white`],[/;.*$/,`comment`],[/\(comment\b/,`comment`,`@comment`]],comment:[[/\(/,`comment`,`@push`],[/\)/,`comment`,`@pop`],[/[^()]/,`comment`]],string:[[/"/,`string`,`@multiLineString`]],multiLineString:[[/"/,`string`,`@popall`],[/@escapes/,`string.escape`],[/./,`string`]]}};export{e as conf,t as language};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:[`###`,`###`],lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},t={defaultToken:``,ignoreCase:!0,tokenPostfix:`.coffee`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:`and.or.is.isnt.not.on.yes.@.no.off.true.false.null.this.new.delete.typeof.in.instanceof.return.throw.break.continue.debugger.if.else.switch.for.while.do.try.catch.finally.class.extends.super.undefined.then.unless.until.loop.of.by.when`.split(`.`),symbols:/[=><!~?&%|+\-*\/\^\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@[a-zA-Z_]\w*/,`variable.predefined`],[/[a-zA-Z_]\w*/,{cases:{this:`variable.predefined`,"@keywords":{token:`keyword.$0`},"@default":``}}],[/[ \t\r\n]+/,``],[/###/,`comment`,`@comment`],[/#.*$/,`comment`],[`///`,{token:`regexp`,next:`@hereregexp`}],[/^(\s*)(@regEx)/,[``,`regexp`]],[/(\()(\s*)(@regEx)/,[`@brackets`,``,`regexp`]],[/(\,)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\=)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\:)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\[)(\s*)(@regEx)/,[`@brackets`,``,`regexp`]],[/(\!)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\&)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\|)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\?)(\s*)(@regEx)/,[`delimiter`,``,`regexp`]],[/(\{)(\s*)(@regEx)/,[`@brackets`,``,`regexp`]],[/(\;)(\s*)(@regEx)/,[``,``,`regexp`]],[/}/,{cases:{"$S2==interpolatedstring":{token:`string`,next:`@pop`},"@default":`@brackets`}}],[/[{}()\[\]]/,`@brackets`],[/@symbols/,`delimiter`],[/\d+[eE]([\-+]?\d+)?/,`number.float`],[/\d+\.\d+([eE][\-+]?\d+)?/,`number.float`],[/0[xX][0-9a-fA-F]+/,`number.hex`],[/0[0-7]+(?!\d)/,`number.octal`],[/\d+/,`number`],[/[,.]/,`delimiter`],[/"""/,`string`,`@herestring."""`],[/'''/,`string`,`@herestring.'''`],[/"/,{cases:{"@eos":`string`,"@default":{token:`string`,next:`@string."`}}}],[/'/,{cases:{"@eos":`string`,"@default":{token:`string`,next:`@string.'`}}}]],string:[[/[^"'\#\\]+/,`string`],[/@escapes/,`string.escape`],[/\./,`string.escape.invalid`],[/\./,`string.escape.invalid`],[/#{/,{cases:{'$S2=="':{token:`string`,next:`root.interpolatedstring`},"@default":`string`}}],[/["']/,{cases:{"$#==$S2":{token:`string`,next:`@pop`},"@default":`string`}}],[/#/,`string`]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:`string`,next:`@pop`},"@default":`string`}}],[/[^#\\'"]+/,`string`],[/['"]+/,`string`],[/@escapes/,`string.escape`],[/\./,`string.escape.invalid`],[/#{/,{token:`string.quote`,next:`root.interpolatedstring`}],[/#/,`string`]],comment:[[/[^#]+/,`comment`],[/###/,`comment`,`@pop`],[/#/,`comment`]],hereregexp:[[/[^\\\/#]+/,`regexp`],[/\\./,`regexp`],[/#.*$/,`comment`],[`///[igm]*`,{token:`regexp`,next:`@pop`}],[/\//,`regexp`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{r as e}from"./chunk-CilyBKbf.js";import{a as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./select-B5gV6YUf.js";import{t as c}from"./circle-x-DLBotPS8.js";import{t as l}from"./external-link-BZ9gsZx_.js";import{t as u}from"./eye-CZ7GiZXJ.js";import{t as d}from"./pencil-BmkcPKBm.js";import{t as f}from"./plus-C6Zz9JLt.js";import{n as p,t as m}from"./textarea-ByegDm2e.js";import{t as h}from"./trash-2-CawFHfTJ.js";import{t as g}from"./use-page-title-CK82kWb2.js";import{a as _,i as v}from"./dist-DFSjTjXY.js";import{t as y}from"./switch-BOdp7A9U.js";import{i as b,n as x,r as S,t as C}from"./tabs-CfNQIHt-.js";import{At as w,B as T,Bn as E,Bt as D,F as ee,Hn as te,Ht as O,K as ne,L as re,Mt as ie,Nt as ae,Pt as oe,Qn as se,R as k,Rn as A,St as j,Ut as M,Vt as N,Zn as ce,_ as le,_t as ue,b as de,bt as fe,f as pe,fr as me,g as he,h as ge,i as _e,jt as ve,k as ye,kt as P,lr as be,m as xe,mt as Se,p as Ce,qn as we,sr as Te,v as Ee,vt as De,w as F,wt as I,x as Oe,y as ke,zn as Ae}from"./index-B3xPCIyH.js";import{t as L}from"./badge-BbhOGRC0.js";import{n as je,r as Me,t as R}from"./lib-BPEPp1D-.js";import{a as Ne,i as z,n as Pe,o as Fe,r as Ie,t as Le}from"./table-DL0PmHAE.js";import{t as Re}from"./marked.esm-Ba5AUJng.js";var ze=we(`book-open-text`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M16 12h2`,key:`7q9ll5`}],[`path`,{d:`M16 8h2`,key:`msurwy`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}],[`path`,{d:`M6 12h2`,key:`32wvfc`}],[`path`,{d:`M6 8h2`,key:`30oboj`}]]),Be=we(`file-plus`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M9 15h6`,key:`cctwl0`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}]]),B=e(me(),1),V=ce();function H({className:e,...t}){return(0,V.jsx)(`section`,{"data-config-section-shell":!0,className:M(`border border-border bg-transparent rounded-none shadow-none`,e),...t})}function U({className:e,...t}){return(0,V.jsx)(`header`,{className:M(`border-b border-border px-5 py-4`,e),...t})}function W({className:e,...t}){return(0,V.jsx)(`div`,{"data-config-section-body":!0,className:M(`space-y-6 px-5 py-5`,e),...t})}function Ve({className:e,...t}){return(0,V.jsx)(`div`,{"data-config-line-notice":!0,className:M(`border border-border bg-transparent rounded-none px-4 py-3 text-sm text-muted-foreground`,e),...t})}function G(e,t){let n=e.trim(),r=t.errorMessage??He(t);if(n===``)return t.allowEmpty?{value:void 0,error:null}:{value:void 0,error:r};if(!(t.integer?/^-?\d+$/:/^-?(?:\d+|\d*\.\d+)$/).test(n))return{value:void 0,error:r};let i=Number(n);return!Number.isFinite(i)||t.integer&&!Number.isSafeInteger(i)||t.min!==void 0&&i<t.min||t.max!==void 0&&i>t.max?{value:void 0,error:r}:{value:i,error:null}}function He(e){let t=e.integer?`an integer`:`a number`;return e.min!==void 0&&e.max!==void 0?`${e.label} must be ${t} between ${e.min} and ${e.max}`:e.min===void 0?e.max===void 0?`${e.label} must be ${t}`:`${e.label} must be ${t} less than or equal to ${e.max}`:`${e.label} must be ${t} greater than or equal to ${e.min}`}var Ue=Object.fromEntries([{value:`openai-compatible`,label:`OpenAI-compatible`},{value:`anthropic-compatible`,label:`Anthropic-compatible`},{value:`gemini`,label:`Gemini`}].map(e=>[e.value,e.label])),We=new Set([`openai-compatible`,`anthropic-compatible`]),Ge=`Enter the exact endpoint base URL. agent-qa will not append paths.`,Ke=`Testing without a saved credential.`,qe=`Save a Gemini API key for this config before testing.`;function Je(){return[{id:`openai-compatible`,label:`OpenAI-compatible`,auth:{kind:`api-key`,credentialTypes:[`api-key`],optional:!0},modelAdapter:`openai-responses`},{id:`anthropic-compatible`,label:`Anthropic-compatible`,auth:{kind:`api-key`,credentialTypes:[`api-key`,`bearer-token`],optional:!0},modelAdapter:`anthropic-messages`},{id:`gemini`,label:`Gemini`,auth:{kind:`api-key`,credentialTypes:[`api-key`]}}]}function K(e=``,t=``){return{id:crypto.randomUUID(),key:e,value:t}}function Ye(e,t=[]){return t.find(t=>t.id===e)?.label??Ue[e]??e}function Xe(e){if(e===null)return null;let t=Date.now();if(e<t)return`Expired`;let n=e-t,r=Math.floor(n/(1e3*60*60)),i=Math.floor(n%(1e3*60*60)/(1e3*60));return r>24?`Expires in ${Math.floor(r/24)}d`:r>0?`Expires in ${r}h ${i}m`:`Expires in ${i}m`}function Ze(e){return e.type===`oauth`?`OAuth connected`:e.type===`bearer`||e.type===`bearer-token`?`Saved bearer token`:`Saved API key`}function Qe(e,t,n){return e.configName===t?e.type===`oauth`?e.provider===n:e.type===`bearer`||e.type===`bearer-token`?n===`anthropic-compatible`&&e.provider===`anthropic-compatible`:e.provider===n:!1}function $e(e,t){return e.find(e=>Qe(e,t.name,t.provider))}function et(e){return We.has(e.provider)?`No credential`:`Missing credential`}function tt(e){let t={};for(let n of e){let e=n.key.trim(),r=n.value.trim();!e&&!r||e&&(t[e]=r)}return Object.keys(t).length>0?t:void 0}function nt(e){let t=new Map;for(let n of e){let e=n.key.trim().toLowerCase();e&&t.set(e,(t.get(e)??0)+1)}return new Set([...t.entries()].filter(([,e])=>e>1).map(([e])=>e))}function rt(e){return e.error===`missing_credential`&&e.message?e.message:e.error===`auth_error`?`Authentication failed. Check the saved credential for this config.`:e.error===`model_not_found`?`Model not found. Check the model name.`:e.error===`network_error`?`Network error. Check the exact base URL and try again.`:e.error===`invalid_request`&&e.message?`Connection failed. ${e.message}`:e.message?e.message.startsWith(`Connection failed.`)?e.message:`Connection failed. ${e.message}`:`Connection failed. Provider returned an error.`}function it({config:e,onConfigChange:t}){let n=e.use?.llm??null,[r,i]=(0,B.useState)([]),[a,o]=(0,B.useState)([]),[s,c]=(0,B.useState)(Je()),[l,u]=(0,B.useState)(!0),[m,g]=(0,B.useState)(!1),[_,v]=(0,B.useState)(null),[y,b]=(0,B.useState)(null);(0,B.useEffect)(()=>{async function t(){try{u(!0),i((e?.registry??{}).llms??[]);let[t,n]=await Promise.all([k(),ne().catch(()=>({providers:Je()}))]);o(t.credentials??[]),c(n.providers.length?n.providers:Je())}catch{P.error(`Failed to load LLM configuration. Refresh and try again.`)}finally{u(!1)}}t()},[e]);async function x(){o((await k()).credentials??[])}async function S(e){if(e===n){P.error(`Cannot delete the active default configuration. Switch the default in Execution Defaults first.`);return}let a=r.filter(t=>t.name!==e),o=r;i(a);try{await I({"registry.llms":a}),P.success(`Configuration ${e} deleted`),t()}catch{i(o),P.error(`Failed to delete configuration`)}}async function C(e){let n=_===null?[...r,e]:r.map(t=>t.name===e.name?e:t);try{await I({"registry.llms":n}),i(n),P.success(`Changes saved`),g(!1),v(null),t(),await x()}catch{P.error(`Failed to save configuration. Check the fields and try again.`)}}function w(e){let t=$e(a,e);if(!t)return(0,V.jsx)(L,{variant:`secondary`,children:et(e)});let n=Xe(t.expires),r=t.expires!==null&&t.expires<Date.now();return(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-1.5`,children:[(0,V.jsx)(L,{variant:`secondary`,children:Ze(t)}),n&&(0,V.jsx)(L,{variant:r?`destructive`:`outline`,className:`text-xs`,children:n})]})}let T=je({data:r,columns:(0,B.useMemo)(()=>[{accessorKey:`name`,header:`Name`,size:140,cell:({row:e})=>(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(`span`,{className:`max-w-[220px] truncate font-mono`,children:e.original.name}),e.original.name===n?(0,V.jsx)(L,{variant:`outline`,className:`text-[11px]`,children:`Default`}):null]})},{accessorKey:`provider`,header:`Provider`,size:160,cell:({row:e})=>(0,V.jsx)(`span`,{className:`block min-w-0 max-w-[220px] truncate`,children:Ye(e.original.provider,s)})},{accessorKey:`model`,header:`Model`,cell:({row:e})=>(0,V.jsx)(`span`,{className:`block min-w-0 max-w-[280px] truncate`,children:e.original.model})},{id:`credential`,header:`Credential`,cell:({row:e})=>w(e.original)},{id:`actions`,header:``,size:80,cell:({row:e})=>(0,V.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,V.jsx)(O,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0 text-muted-foreground hover:text-foreground`,onClick:t=>{t.stopPropagation(),v(e.original),g(!0)},title:`Edit configuration`,"aria-label":`Edit configuration`,children:(0,V.jsx)(d,{className:`size-4`})}),(0,V.jsx)(O,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>{t.stopPropagation(),e.original.name!==n&&b(e.original.name)},title:e.original.name===n?`Switch the default in Execution Defaults before deleting`:`Delete configuration`,"aria-label":`Delete configuration`,disabled:e.original.name===n,children:(0,V.jsx)(h,{className:`size-4`})})]})}],[n,a,s]),getCoreRowModel:Me()});return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`LLM Configurations`}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Named model configurations for test runs. Choose the active default in Use / Execution Defaults.`})]}),(0,V.jsx)(W,{children:l?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsx)(oe,{className:`h-10 w-full rounded-none bg-muted`}),(0,V.jsx)(oe,{className:`h-10 w-full rounded-none bg-muted`}),(0,V.jsx)(oe,{className:`h-10 w-full rounded-none bg-muted`})]}):r.length===0?(0,V.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,V.jsx)(p,{className:`size-10 text-muted-foreground`}),(0,V.jsx)(`h3`,{className:`mt-4 text-lg font-semibold`,children:`No LLM configurations`}),(0,V.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Add an LLM configuration to start running tests.`}),(0,V.jsxs)(O,{className:`mt-4`,onClick:()=>{v(null),g(!0)},children:[(0,V.jsx)(f,{className:`size-4`}),`Add Configuration`]})]}):(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsx)(`div`,{className:`flex justify-end`,children:(0,V.jsxs)(O,{size:`sm`,onClick:()=>{v(null),g(!0)},children:[(0,V.jsx)(f,{className:`size-4`}),`Add Configuration`]})}),(0,V.jsxs)(Le,{children:[(0,V.jsx)(Ne,{children:T.getHeaderGroups().map(e=>(0,V.jsx)(Fe,{children:e.headers.map(e=>(0,V.jsx)(z,{style:e.column.getSize()===150?void 0:{width:e.column.getSize()},className:`min-w-0`,children:e.isPlaceholder?null:R(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,V.jsx)(Pe,{children:T.getRowModel().rows.map(e=>(0,V.jsx)(Fe,{children:e.getVisibleCells().map(e=>(0,V.jsx)(Ie,{className:`min-w-0`,children:R(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})]})})]}),(0,V.jsx)(at,{open:m,onOpenChange:e=>{g(e),e||v(null)},config:_,existingNames:r.map(e=>e.name),onSave:C,onAuthChange:x,authCredentials:a,providerMetadata:s}),(0,V.jsx)(pe,{open:y!==null,onOpenChange:e=>{e||b(null)},children:(0,V.jsxs)(Ce,{children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:`Delete Configuration`}),(0,V.jsxs)(xe,{children:[`Delete `,(0,V.jsx)(`span`,{className:`font-mono font-semibold`,children:y}),`? This action cannot be undone.`]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:()=>b(null),children:`Keep Configuration`}),(0,V.jsx)(O,{variant:`destructive`,onClick:()=>{y&&(S(y),b(null))},children:`Delete Configuration`})]})]})})]})}function at({open:e,onOpenChange:t,config:a,existingNames:u,onSave:d,onAuthChange:p,authCredentials:m,providerMetadata:g}){let v=a!==null,[y,b]=(0,B.useState)(``),[x,S]=(0,B.useState)(`openai-compatible`),[C,T]=(0,B.useState)(``),[E,ne]=(0,B.useState)(``),[re,oe]=(0,B.useState)([]),[se,k]=(0,B.useState)(`api-key`),[j,M]=(0,B.useState)(``),[ce,de]=(0,B.useState)(``),[me,_e]=(0,B.useState)(``),[be,we]=(0,B.useState)(``),[Te,Ee]=(0,B.useState)(!1),[F,I]=(0,B.useState)(!1),[Oe,ke]=(0,B.useState)(null),[je,Me]=(0,B.useState)(!1),[R,Ne]=(0,B.useState)(!1),[z,Pe]=(0,B.useState)(null),[Fe,Ie]=(0,B.useState)(``),[Le,Re]=(0,B.useState)(``),[ze,Be]=(0,B.useState)(!1),[H,U]=(0,B.useState)(null),W=g.length?g:Je(),Ve=(0,B.useMemo)(()=>{let e=W.map(e=>({value:e.id,label:e.label}));return x&&!e.some(e=>e.value===x)&&e.push({value:x,label:Ye(x,W)}),e},[W,x]),He=W.find(e=>e.id===x),Ue=m.some(e=>Qe(e,y,x)),$e=We.has(x),et=x===`anthropic-compatible`,it=$e,at=He?.auth.kind===`api-key`,ot=nt(re),st=ot.size>0;(0,B.useEffect)(()=>{if(e)if(Pe(null),Ie(``),Re(``),M(``),we(``),ke(null),U(null),a){let e=a.provider||`openai-compatible`;b(a.name),S(e),T(a.model),ne(a.baseURL??``),oe(e===`anthropic-compatible`?Object.entries(a.providerHeaders??{}).map(([e,t])=>K(e,t)).concat(Object.keys(a.providerHeaders??{}).length===0?[K()]:[]):[]),k(e===`anthropic-compatible`?`bearer-token`:`api-key`),de(a.screenshotSize??``),_e(a.effectiveResolution==null?``:String(a.effectiveResolution))}else{let e=g.find(e=>e.id===`openai-compatible`)?.id??g[0]?.id??`openai-compatible`;b(``),S(e),T(``),ne(``),oe([]),k(`api-key`),de(``),_e(``)}},[e,a,g]);function ct(e){return e?/^[a-z0-9][a-z0-9-]*$/.test(e)?u.filter(e=>e!==a?.name).includes(e)?`A configuration with this name already exists`:``:`Name must be lowercase letters, numbers, and hyphens, starting with a letter or number`:``}function lt(e){S(e),Pe(null),Re(``),ke(null),M(``),we(``),k(e===`anthropic-compatible`?`bearer-token`:`api-key`),ne(``),oe(e===`anthropic-compatible`?[K()]:[])}function ut(e,t,n){oe(r=>r.map(r=>r.id===e?{...r,[t]:n}:r))}async function dt(){if(st){P.error(`Duplicate provider header names are not allowed`);return}Ne(!0),Pe(null);try{let e=et?tt(re):void 0;Pe(await fe({provider:x,model:C,...E.trim()?{baseURL:E.trim()}:{},...e?{providerHeaders:e}:{},configName:y||void 0}))}catch{Pe({success:!1,error:`network_error`,message:`Network error. Check the exact base URL and try again.`})}finally{Ne(!1)}}async function ft(){let e=ct(y);if(e){Ie(e);return}if(!y||!x||!C)return;if(it&&E.trim()===``){Re(`Base URL is required for compatible providers.`);return}if(st){P.error(`Duplicate provider header names are not allowed`);return}let t=G(me,{label:`Effective resolution`,min:1,integer:!0,allowEmpty:!0,errorMessage:`Effective resolution must be a positive integer`});if(t.error){P.error(t.error);return}Me(!0);try{let e=et?tt(re):void 0;await d({name:y,provider:x,model:C,baseURL:E.trim()||void 0,...e?{providerHeaders:e}:{},screenshotSize:ce||void 0,effectiveResolution:t.value})}catch(e){P.error(e instanceof Error?e.message:`Failed to save configuration`)}finally{Me(!1)}}async function pt(){if(!(!j.trim()||!y||!at)){Be(!0);try{let e=et?se:`api-key`;await ue(y,x,e,j.trim()),P.success(e===`bearer-token`?`Bearer token saved`:`API key saved`),M(``),await p()}catch{P.error(`Failed to save credential`)}finally{Be(!1)}}}async function mt(){if(H)try{await ye(H),await p(),P.success(`Credential deleted`)}catch{P.error(`Failed to delete credential`)}finally{U(null)}}let ht=y.trim()!==``&&C.trim()!==``&&!Fe;function gt(){return at?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[$e&&(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Credentials are optional for this config. Unauthenticated endpoints can still be tested.`}),x===`gemini`&&(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:qe}),et&&(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{children:`Credential Type`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Save an API key or Bearer token for this config.`}),(0,V.jsxs)(s,{value:se,onValueChange:e=>k(e),children:[(0,V.jsx)(i,{className:`w-full`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`api-key`,children:`API key`}),(0,V.jsx)(n,{value:`bearer-token`,children:`Bearer token`})]})]})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(N,{type:`password`,placeholder:`secret-value`,value:j,onChange:e=>M(e.target.value),className:`min-w-[180px] flex-1`}),(0,V.jsxs)(O,{size:`sm`,onClick:pt,disabled:ze||!j.trim()||!y||!!Fe,children:[ze?(0,V.jsx)(A,{className:`size-4 animate-spin`}):null,`Save Credential`]})]})]}):null}function _t(){if(He?.auth.kind!==`oauth-plugin`)return null;let e=Oe?.provider===x?Oe:null,t=He.label,n=He.auth.buttonLabel??`Login with ${t}`;async function r(){I(!0),we(``);try{let e=await De(x,y);if(ke({provider:x,sessionId:e.sessionId,mode:e.mode}),window.open(e.authorizeUrl,`_blank`),e.mode===`browser-poll`){let n=window.setInterval(async()=>{try{let r=await Se(x,e.sessionId);r.status===`completed`?(window.clearInterval(n),P.success(`${t} authenticated`),I(!1),ke(null),await p()):r.status===`error`&&(window.clearInterval(n),P.error(r.error||`${t} authentication failed`),I(!1))}catch{}},2e3);window.setTimeout(()=>{window.clearInterval(n),I(!1)},300*1e3)}else I(!1)}catch{P.error(`Failed to start ${t} authentication`),I(!1)}}return(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Login with `,t,` for this config before testing.`]}),He.auth.mode===`manual-code`?(0,V.jsxs)(`div`,{className:`space-y-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,V.jsx)(_,{className:`text-sm`,children:`Open authorization page`}),(0,V.jsxs)(O,{variant:`outline`,size:`sm`,disabled:F||!y||!!Fe,onClick:r,children:[(0,V.jsx)(l,{className:`size-4`}),n]})]}),(0,V.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,V.jsx)(_,{className:`text-sm`,children:`Paste authorization code`}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(N,{type:`password`,placeholder:`authorization-code`,value:be,onChange:e=>we(e.target.value),disabled:!e,className:`min-w-[180px] flex-1`}),(0,V.jsxs)(O,{size:`sm`,disabled:!be.trim()||!e||Te,onClick:async()=>{if(e){Ee(!0);try{await ee(x,e.sessionId,be.trim()),P.success(`${t} authenticated`),we(``),ke(null),await p()}catch{P.error(`Failed to exchange code`)}finally{Ee(!1)}}},children:[Te?(0,V.jsx)(A,{className:`size-4 animate-spin`}):null,`Connect`]})]})]})]}):(0,V.jsx)(`div`,{className:`space-y-3`,children:(0,V.jsxs)(O,{variant:`outline`,size:`sm`,disabled:F||!y||!!Fe,onClick:r,children:[F?(0,V.jsx)(A,{className:`size-4 animate-spin`}):(0,V.jsx)(l,{className:`size-4`}),F?`Authenticating...`:n]})})]})}function vt(){let e=m.filter(e=>e.configName===y);return e.length===0?null:(0,V.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>{let t=Xe(e.expires),n=e.expires!==null&&e.expires<Date.now();return(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-3 rounded-none border border-border bg-transparent p-3 text-sm`,children:[(0,V.jsx)(L,{variant:`secondary`,className:`text-xs`,children:Ze(e)}),(0,V.jsx)(`span`,{className:`min-w-0 break-words font-medium`,children:Ye(e.provider,W)}),t&&(0,V.jsx)(L,{variant:n?`destructive`:`outline`,className:`text-xs`,children:t}),(0,V.jsx)(O,{variant:`ghost`,size:`sm`,className:`ml-auto h-8 w-8 p-0 text-destructive hover:text-destructive`,onClick:()=>U(e.configName),"aria-label":`Delete credential`,title:`Delete credential`,children:(0,V.jsx)(h,{className:`size-4`})})]},`${e.configName}-${e.type}-${e.provider}`)})})}function q(){return R?(0,V.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,children:[(0,V.jsx)(A,{className:`size-4 animate-spin`}),(0,V.jsx)(`span`,{children:`Testing connection...`})]}):z?z.success?z.unauthenticated?(0,V.jsx)(`div`,{className:`text-sm text-muted-foreground`,role:`status`,children:z.authMessage||z.message||Ke}):(0,V.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-success`,role:`status`,children:[(0,V.jsx)(te,{className:`size-4`}),(0,V.jsx)(`span`,{children:`Connection successful`}),z.responseTime!=null&&(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[z.responseTime,`ms`]})]}):(0,V.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-destructive`,role:`alert`,children:[(0,V.jsx)(c,{className:`size-4`}),(0,V.jsx)(`span`,{children:rt(z)})]}):null}return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(pe,{open:e,onOpenChange:t,children:(0,V.jsxs)(Ce,{className:`sm:max-w-2xl max-h-[85vh] overflow-y-auto`,children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:v?`Edit ${a.name}`:`Add Configuration`}),(0,V.jsx)(xe,{children:v?`Update provider, model, and credentials for this configuration.`:`Create a named LLM configuration with its own provider, model, and credentials.`})]}),(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`config-name`,children:`Name`}),(0,V.jsx)(N,{id:`config-name`,placeholder:`e.g., claude-fast, gpt-cheap`,value:y,onChange:e=>{b(e.target.value),Fe&&Ie(``)},onBlur:()=>{y&&Ie(ct(y))},disabled:v,className:v?`bg-muted`:``,"aria-describedby":Fe?`name-error`:void 0}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Lowercase alphanumeric and hyphens (e.g., claude-fast, gpt-cheap)`}),Fe&&(0,V.jsx)(`p`,{id:`name-error`,className:`text-sm text-destructive`,children:Fe})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{children:`Provider`}),(0,V.jsxs)(s,{value:x,onValueChange:lt,children:[(0,V.jsx)(i,{className:`w-full`,children:(0,V.jsx)(o,{})}),(0,V.jsx)(r,{children:Ve.map(e=>(0,V.jsx)(n,{value:e.value,children:e.label},e.value))})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`config-model`,children:`Model`}),(0,V.jsx)(N,{id:`config-model`,placeholder:`model-name`,value:C,onChange:e=>T(e.target.value)})]}),it&&(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,V.jsx)(_,{htmlFor:`config-base-url`,children:`Base URL`}),(0,V.jsx)(ie,{children:(0,V.jsxs)(w,{children:[(0,V.jsx)(ae,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,"aria-label":`Compatible endpoint help`,className:`inline-flex size-5 items-center justify-center text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-help`,children:(0,V.jsx)(Ae,{className:`size-3.5`})})}),(0,V.jsx)(ve,{className:`max-w-[250px]`,children:Ge})]})})]}),(0,V.jsx)(N,{id:`config-base-url`,placeholder:x===`openai-compatible`?`https://openrouter.ai/api/v1`:`https://anthropic-proxy.example/messages`,value:E,onChange:e=>{ne(e.target.value),Le&&Re(``)},"aria-invalid":Le?!0:void 0,"aria-describedby":Le?`base-url-error`:void 0}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:Ge}),Le&&(0,V.jsx)(`p`,{id:`base-url-error`,className:`text-sm text-destructive`,children:Le})]}),et&&(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(_,{children:`Provider Headers`}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Optional non-secret headers sent with this Anthropic-compatible endpoint.`})]}),(0,V.jsx)(`div`,{className:`space-y-2`,children:re.map(e=>{let t=e.key.trim().toLowerCase(),n=t!==``&&ot.has(t);return(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(N,{placeholder:`header-name`,value:e.key,onChange:t=>ut(e.id,`key`,t.target.value),className:`min-w-[160px] flex-1`}),(0,V.jsx)(N,{placeholder:`header-value`,value:e.value,onChange:t=>ut(e.id,`value`,t.target.value),className:`min-w-[180px] flex-1`}),(0,V.jsx)(O,{type:`button`,variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0 text-muted-foreground hover:text-destructive`,"aria-label":`Remove header`,title:`Remove header`,onClick:()=>oe(t=>t.filter(t=>t.id!==e.id)),disabled:re.length===1&&!e.key&&!e.value,children:(0,V.jsx)(h,{className:`size-4`})})]}),n&&(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:`Duplicate header names are not allowed.`})]},e.id)})}),(0,V.jsxs)(O,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>oe(e=>[...e,K()]),children:[(0,V.jsx)(f,{className:`size-4`}),`Add Header`]})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{children:`Screenshot Size`}),(0,V.jsx)(N,{placeholder:`e.g., "1m", "512k" (empty = no compression)`,value:ce,onChange:e=>de(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Maximum screenshot size for this model (e.g., "1m", "512k"). Empty = no compression.`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`config-effective-resolution`,children:`Effective Resolution`}),(0,V.jsx)(N,{id:`config-effective-resolution`,type:`number`,min:1,step:1,placeholder:`e.g., 1568`,value:me,onChange:e=>_e(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Maximum effective screenshot edge sent to the model. Use this with screenshot compression to control token cost.`})]}),(0,V.jsx)(D,{}),(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`h3`,{className:`text-base font-semibold`,children:`Credentials`}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Saved credentials are keyed by this named configuration.`})]}),gt(),_t(),vt()]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:dt,disabled:R||!x||!C||st,children:`Test Connection`}),(0,V.jsxs)(O,{onClick:ft,disabled:je||!ht||st,children:[je&&(0,V.jsx)(A,{className:`size-4 animate-spin`}),`Save Changes`]})]}),$e&&!Ue&&!R&&!z&&(0,V.jsx)(`div`,{className:`text-sm text-muted-foreground`,role:`status`,children:Ke}),q()]})}),(0,V.jsx)(pe,{open:H!==null,onOpenChange:e=>{e||U(null)},children:(0,V.jsxs)(Ce,{children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:`Delete Credential`}),(0,V.jsxs)(xe,{children:[`Delete saved credential for `,H,`? Tests using this config may fail until a new credential is saved.`]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:()=>U(null),children:`Keep Credential`}),(0,V.jsx)(O,{variant:`destructive`,onClick:mt,children:`Delete Credential`})]})]})})]})}function ot({config:e,onConfigChange:t}){let n=e.use?.timeout??{},[r,i]=(0,B.useState)(n.step??`30s`),[a,o]=(0,B.useState)(n.test??`10m`),[s,c]=(0,B.useState)(n.navigation??`10s`),[l,u]=(0,B.useState)(!1);async function d(){u(!0);try{await I({"use.timeout":{step:r,test:a,navigation:s}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{u(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Timeout`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure timeout limits for test execution`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`timeout-step`,children:`Step Timeout`}),(0,V.jsx)(N,{id:`timeout-step`,type:`text`,placeholder:`e.g., "30s", "5m"`,value:r,onChange:e=>i(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Max time for a single test step (e.g., "30s", "5m")`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`timeout-test`,children:`Test Timeout`}),(0,V.jsx)(N,{id:`timeout-test`,type:`text`,placeholder:`e.g., "10m", "1h"`,value:a,onChange:e=>o(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Max time for an entire test (e.g., "10m", "1h")`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`timeout-navigation`,children:`Navigation Timeout`}),(0,V.jsx)(N,{id:`timeout-navigation`,type:`text`,placeholder:`e.g., "10s", "30s"`,value:s,onChange:e=>c(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Max time for page navigation (e.g., "10s", "30s")`})]}),(0,V.jsx)(O,{size:`sm`,onClick:d,disabled:l,children:l?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function st({config:e,onConfigChange:t}){let n=e.use?.healing??{},[r,i]=(0,B.useState)(String(n.maxAttempts??3)),[a,o]=(0,B.useState)(!1);async function s(){let e=G(r,{label:`Max healing attempts`,min:1,integer:!0});if(e.error){P.error(e.error);return}o(!0);try{await I({"use.healing":{maxAttempts:e.value}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{o(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Healing`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure self-healing behavior for failing test steps`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`healing-max-attempts`,children:`Max Healing Attempts`}),(0,V.jsx)(N,{id:`healing-max-attempts`,type:`number`,min:1,step:1,value:r,onChange:e=>i(e.target.value)})]}),(0,V.jsx)(O,{size:`sm`,onClick:s,disabled:a,children:a?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function ct({config:e,onConfigChange:t}){let n=e.services?.cache??{},[r,i]=(0,B.useState)(n.dir??``),[a,o]=(0,B.useState)(n.ttl??``),[s,c]=(0,B.useState)(!1);async function l(){c(!0);try{await I({"services.cache":{dir:r,ttl:a}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{c(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Cache`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure action cache directory and expiration`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`cache-dir`,children:`Cache Directory`}),(0,V.jsx)(N,{id:`cache-dir`,placeholder:`.agent-qa/cache`,value:r,onChange:e=>i(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`cache-ttl`,children:`TTL`}),(0,V.jsx)(N,{id:`cache-ttl`,placeholder:`7d`,value:a,onChange:e=>o(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Cache time-to-live — human-readable duration (e.g., "7d", "24h", "30m")`})]}),(0,V.jsx)(O,{size:`sm`,onClick:l,disabled:s,children:s?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function lt({config:e,onConfigChange:t}){let[a,c]=(0,B.useState)((e.services?.logging??{}).level??`info`),[l,u]=(0,B.useState)(!1);async function d(){u(!0);try{await I({"services.logging":{level:a}}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{u(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Logging`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure service log verbosity.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`logging-level`,children:`Log Level`}),(0,V.jsxs)(s,{value:a,onValueChange:c,children:[(0,V.jsx)(i,{id:`logging-level`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`silent`,children:`Silent`}),(0,V.jsx)(n,{value:`error`,children:`Error`}),(0,V.jsx)(n,{value:`warn`,children:`Warn`}),(0,V.jsx)(n,{value:`info`,children:`Info`}),(0,V.jsx)(n,{value:`debug`,children:`Debug`})]})]})]}),(0,V.jsx)(O,{size:`sm`,onClick:d,disabled:l,children:l?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function ut({config:e,onConfigChange:t}){let a=e.use?.browser??{},[c,l]=(0,B.useState)(a.name??`chromium`),[u,d]=(0,B.useState)(a.headless??!0),f=a.viewport??{width:1280,height:720},[p,m]=(0,B.useState)(String(f.width)),[h,g]=(0,B.useState)(String(f.height)),[v,b]=(0,B.useState)(!1);async function x(){let e=G(p,{label:`Viewport width`,min:1,integer:!0});if(e.error){P.error(e.error);return}let n=G(h,{label:`Viewport height`,min:1,integer:!0});if(n.error){P.error(n.error);return}b(!0);try{await I({"use.browser":{name:c,headless:u,viewport:{width:e.value,height:n.value}}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{b(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Browser`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure default browser settings for web test execution`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`browser-name`,children:`Browser`}),(0,V.jsxs)(s,{value:c,onValueChange:l,children:[(0,V.jsx)(i,{id:`browser-name`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`chromium`,children:`Chromium`}),(0,V.jsx)(n,{value:`firefox`,children:`Firefox`}),(0,V.jsx)(n,{value:`webkit`,children:`WebKit`})]})]})]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`browser-headless`,children:`Headless`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Run web browsers without a visible window.`})]}),(0,V.jsx)(y,{id:`browser-headless`,checked:u,onCheckedChange:d})]}),(0,V.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`browser-vw`,children:`Viewport Width`}),(0,V.jsx)(N,{id:`browser-vw`,type:`number`,min:1,step:1,value:p,onChange:e=>m(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`browser-vh`,children:`Viewport Height`}),(0,V.jsx)(N,{id:`browser-vh`,type:`number`,min:1,step:1,value:h,onChange:e=>g(e.target.value)})]})]}),(0,V.jsx)(O,{size:`sm`,onClick:x,disabled:v,children:v?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function dt({config:e,onConfigChange:t}){let[n,r]=(0,B.useState)((e.services?.recording??{}).enabled??!1),[i,a]=(0,B.useState)(!1);async function o(){a(!0);try{await I({"services.recording":{enabled:n}}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{a(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Recording`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure whether runtime recording is enabled by default.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`recording-enabled`,children:`Enabled`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Record video of test execution`})]}),(0,V.jsx)(y,{id:`recording-enabled`,checked:n,onCheckedChange:r})]}),(0,V.jsx)(O,{size:`sm`,onClick:o,disabled:i,children:i?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function ft({config:e,onConfigChange:t}){let a=e.services?.accessibility??{},[c,l]=(0,B.useState)(a.enabled??!1),[u,d]=(0,B.useState)(a.standard??`wcag2aa`),[f,p]=(0,B.useState)(a.runAfter??`test-end`),[m,h]=(0,B.useState)(a.failOnViolation??!1),[g,v]=(0,B.useState)(!1);async function b(){v(!0);try{await I({"services.accessibility":{enabled:c,standard:u,runAfter:f,failOnViolation:m}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{v(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Accessibility`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure accessibility audit settings`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`a11y-enabled`,children:`Enabled`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Run accessibility checks during tests`})]}),(0,V.jsx)(y,{id:`a11y-enabled`,checked:c,onCheckedChange:l})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`a11y-standard`,children:`Standard`}),(0,V.jsxs)(s,{value:u,onValueChange:d,children:[(0,V.jsx)(i,{id:`a11y-standard`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`wcag2a`,children:`WCAG 2.0 A`}),(0,V.jsx)(n,{value:`wcag2aa`,children:`WCAG 2.0 AA`}),(0,V.jsx)(n,{value:`wcag2aaa`,children:`WCAG 2.0 AAA`})]})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`a11y-run-after`,children:`Run After`}),(0,V.jsxs)(s,{value:f,onValueChange:p,children:[(0,V.jsx)(i,{id:`a11y-run-after`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`every-step`,children:`Every Step`}),(0,V.jsx)(n,{value:`navigation`,children:`Navigation`}),(0,V.jsx)(n,{value:`test-end`,children:`Test End`})]})]})]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`a11y-fail`,children:`Fail on Violation`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Fail the test if violations are found`})]}),(0,V.jsx)(y,{id:`a11y-fail`,checked:m,onCheckedChange:h})]}),(0,V.jsx)(O,{size:`sm`,onClick:b,disabled:g,children:g?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function pt({config:e,onConfigChange:t}){let n=e.use?.planner??{},[r,i]=(0,B.useState)(String(n.maxSubActions??20)),[a,o]=(0,B.useState)(String(n.previousStepCount??5)),[s,c]=(0,B.useState)(!1);async function l(){let e=G(r,{label:`Max sub-actions`,min:1,integer:!0});if(e.error){P.error(e.error);return}let n=G(a,{label:`Previous step count`,min:0,integer:!0});if(n.error){P.error(n.error);return}c(!0);try{await I({"use.planner":{maxSubActions:e.value,previousStepCount:n.value}}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{c(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Planner`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure the AI planner observation and planning settings`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`planner-max-sub-actions`,children:`Max Sub-Actions`}),(0,V.jsx)(N,{id:`planner-max-sub-actions`,type:`number`,min:1,step:1,value:r,onChange:e=>i(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Maximum sub-actions per step`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`planner-prev-steps`,children:`Previous Step Count`}),(0,V.jsx)(N,{id:`planner-prev-steps`,type:`number`,min:0,step:1,value:a,onChange:e=>o(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Number of previous steps included in planner context`})]}),(0,V.jsx)(O,{size:`sm`,onClick:l,disabled:s,children:s?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}var{entries:mt,setPrototypeOf:ht,isFrozen:gt,getPrototypeOf:_t,getOwnPropertyDescriptor:vt}=Object,{freeze:q,seal:yt,create:bt}=Object,{apply:xt,construct:St}=typeof Reflect<`u`&&Reflect;q||=function(e){return e},yt||=function(e){return e},xt||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},St||=function(e){return new e(...[...arguments].slice(1))};var Ct=Z(Array.prototype.forEach),wt=Z(Array.prototype.lastIndexOf),Tt=Z(Array.prototype.pop),Et=Z(Array.prototype.push),Dt=Z(Array.prototype.splice),J=Array.isArray,Ot=Z(String.prototype.toLowerCase),kt=Z(String.prototype.toString),At=Z(String.prototype.match),jt=Z(String.prototype.replace),Mt=Z(String.prototype.indexOf),Nt=Z(String.prototype.trim),Pt=Z(Number.prototype.toString),Ft=Z(Boolean.prototype.toString),It=typeof BigInt>`u`?null:Z(BigInt.prototype.toString),Lt=typeof Symbol>`u`?null:Z(Symbol.prototype.toString),Y=Z(Object.prototype.hasOwnProperty),Rt=Z(Object.prototype.toString),X=Z(RegExp.prototype.test),zt=Bt(TypeError);function Z(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return xt(e,t,n)}}function Bt(e){return function(){return St(e,[...arguments])}}function Q(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ot;if(ht&&ht(e,null),!J(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(gt(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Vt(e){for(let t=0;t<e.length;t++)Y(e,t)||(e[t]=null);return e}function $(e){let t=bt(null);for(let[n,r]of mt(e))Y(e,n)&&(J(r)?t[n]=Vt(r):r&&typeof r==`object`&&r.constructor===Object?t[n]=$(r):t[n]=r);return t}function Ht(e){switch(typeof e){case`string`:return e;case`number`:return Pt(e);case`boolean`:return Ft(e);case`bigint`:return It?It(e):`0`;case`symbol`:return Lt?Lt(e):`Symbol()`;case`undefined`:return Rt(e);case`function`:case`object`:{if(e===null)return Rt(e);let t=e,n=Ut(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Rt(e)}return Rt(e)}default:return Rt(e)}}function Ut(e,t){for(;e!==null;){let n=vt(e,t);if(n){if(n.get)return Z(n.get);if(typeof n.value==`function`)return Z(n.value)}e=_t(e)}function n(){return null}return n}function Wt(e){try{return X(e,``),!0}catch{return!1}}var Gt=q(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Kt=q(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),qt=q([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Jt=q([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),Yt=q(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Xt=q([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Zt=q([`#text`]),Qt=q(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),$t=q(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),en=q(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),tn=q([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),nn=yt(/\{\{[\w\W]*|[\w\W]*\}\}/gm),rn=yt(/<%[\w\W]*|[\w\W]*%>/gm),an=yt(/\$\{[\w\W]*/gm),on=yt(/^data-[\-\w.\u00B7-\uFFFF]+$/),sn=yt(/^aria-[\-\w]+$/),cn=yt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ln=yt(/^(?:\w+script|data):/i),un=yt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),dn=yt(/^html$/i),fn=yt(/^[a-z][.\w]*(-[.\w]+)+$/i),pn=Object.freeze({__proto__:null,ARIA_ATTR:sn,ATTR_WHITESPACE:un,CUSTOM_ELEMENT:fn,DATA_ATTR:on,DOCTYPE_NAME:dn,ERB_EXPR:rn,IS_ALLOWED_URI:cn,IS_SCRIPT_OR_DATA:ln,MUSTACHE_EXPR:nn,TMPLIT_EXPR:an}),mn={element:1,text:3,progressingInstruction:7,comment:8,document:9},hn=function(){return typeof window>`u`?null:window},gn=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}},_n=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function vn(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:hn(),t=e=>vn(e);if(t.version=`3.4.2`,t.removed=[],!e||!e.document||e.document.nodeType!==mn.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:c,NodeFilter:l,NamedNodeMap:u=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:f,trustedTypes:p}=e,m=c.prototype,h=Ut(m,`cloneNode`),g=Ut(m,`remove`),_=Ut(m,`nextSibling`),v=Ut(m,`childNodes`),y=Ut(m,`parentNode`);if(typeof o==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let b,x=``,{implementation:S,createNodeIterator:C,createDocumentFragment:w,getElementsByTagName:T}=n,{importNode:E}=r,D=_n();t.isSupported=typeof mt==`function`&&typeof y==`function`&&S&&S.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:ee,ERB_EXPR:te,TMPLIT_EXPR:O,DATA_ATTR:ne,ARIA_ATTR:re,IS_SCRIPT_OR_DATA:ie,ATTR_WHITESPACE:ae,CUSTOM_ELEMENT:oe}=pn,{IS_ALLOWED_URI:se}=pn,k=null,A=Q({},[...Gt,...Kt,...qt,...Yt,...Zt]),j=null,M=Q({},[...Qt,...$t,...en,...tn]),N=Object.seal(bt(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}})),ce=null,le=null,ue=Object.seal(bt(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),de=!0,fe=!0,pe=!1,me=!0,he=!1,ge=!0,_e=!1,ve=!1,ye=!1,P=!1,be=!1,xe=!1,Se=!0,Ce=!1,we=`user-content-`,Te=!0,Ee=!1,De={},F=null,I=Q({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),Oe=null,ke=Q({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ae=null,L=Q({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),je=`http://www.w3.org/1998/Math/MathML`,Me=`http://www.w3.org/2000/svg`,R=`http://www.w3.org/1999/xhtml`,Ne=R,z=!1,Pe=null,Fe=Q({},[je,Me,R],kt),Ie=Q({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),Le=Q({},[`annotation-xml`]),Re=Q({},[`title`,`style`,`font`,`a`,`script`]),ze=null,Be=[`application/xhtml+xml`,`text/html`],B=null,V=null,H=n.createElement(`form`),U=function(e){return e instanceof RegExp||e instanceof Function},W=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(V&&V===e)return;(!e||typeof e!=`object`)&&(e={}),e=$(e),ze=Be.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,B=ze===`application/xhtml+xml`?kt:Ot,k=Y(e,`ALLOWED_TAGS`)&&J(e.ALLOWED_TAGS)?Q({},e.ALLOWED_TAGS,B):A,j=Y(e,`ALLOWED_ATTR`)&&J(e.ALLOWED_ATTR)?Q({},e.ALLOWED_ATTR,B):M,Pe=Y(e,`ALLOWED_NAMESPACES`)&&J(e.ALLOWED_NAMESPACES)?Q({},e.ALLOWED_NAMESPACES,kt):Fe,Ae=Y(e,`ADD_URI_SAFE_ATTR`)&&J(e.ADD_URI_SAFE_ATTR)?Q($(L),e.ADD_URI_SAFE_ATTR,B):L,Oe=Y(e,`ADD_DATA_URI_TAGS`)&&J(e.ADD_DATA_URI_TAGS)?Q($(ke),e.ADD_DATA_URI_TAGS,B):ke,F=Y(e,`FORBID_CONTENTS`)&&J(e.FORBID_CONTENTS)?Q({},e.FORBID_CONTENTS,B):I,ce=Y(e,`FORBID_TAGS`)&&J(e.FORBID_TAGS)?Q({},e.FORBID_TAGS,B):$({}),le=Y(e,`FORBID_ATTR`)&&J(e.FORBID_ATTR)?Q({},e.FORBID_ATTR,B):$({}),De=Y(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?$(e.USE_PROFILES):e.USE_PROFILES:!1,de=e.ALLOW_ARIA_ATTR!==!1,fe=e.ALLOW_DATA_ATTR!==!1,pe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,me=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,he=e.SAFE_FOR_TEMPLATES||!1,ge=e.SAFE_FOR_XML!==!1,_e=e.WHOLE_DOCUMENT||!1,P=e.RETURN_DOM||!1,be=e.RETURN_DOM_FRAGMENT||!1,xe=e.RETURN_TRUSTED_TYPE||!1,ye=e.FORCE_BODY||!1,Se=e.SANITIZE_DOM!==!1,Ce=e.SANITIZE_NAMED_PROPS||!1,Te=e.KEEP_CONTENT!==!1,Ee=e.IN_PLACE||!1,se=Wt(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:cn,Ne=typeof e.NAMESPACE==`string`?e.NAMESPACE:R,Ie=Y(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?$(e.MATHML_TEXT_INTEGRATION_POINTS):Q({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),Le=Y(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?$(e.HTML_INTEGRATION_POINTS):Q({},[`annotation-xml`]);let t=Y(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?$(e.CUSTOM_ELEMENT_HANDLING):bt(null);if(N=bt(null),Y(t,`tagNameCheck`)&&U(t.tagNameCheck)&&(N.tagNameCheck=t.tagNameCheck),Y(t,`attributeNameCheck`)&&U(t.attributeNameCheck)&&(N.attributeNameCheck=t.attributeNameCheck),Y(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(N.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),he&&(fe=!1),be&&(P=!0),De&&(k=Q({},Zt),j=bt(null),De.html===!0&&(Q(k,Gt),Q(j,Qt)),De.svg===!0&&(Q(k,Kt),Q(j,$t),Q(j,tn)),De.svgFilters===!0&&(Q(k,qt),Q(j,$t),Q(j,tn)),De.mathMl===!0&&(Q(k,Yt),Q(j,en),Q(j,tn))),ue.tagCheck=null,ue.attributeCheck=null,Y(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?ue.tagCheck=e.ADD_TAGS:J(e.ADD_TAGS)&&(k===A&&(k=$(k)),Q(k,e.ADD_TAGS,B))),Y(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?ue.attributeCheck=e.ADD_ATTR:J(e.ADD_ATTR)&&(j===M&&(j=$(j)),Q(j,e.ADD_ATTR,B))),Y(e,`ADD_URI_SAFE_ATTR`)&&J(e.ADD_URI_SAFE_ATTR)&&Q(Ae,e.ADD_URI_SAFE_ATTR,B),Y(e,`FORBID_CONTENTS`)&&J(e.FORBID_CONTENTS)&&(F===I&&(F=$(F)),Q(F,e.FORBID_CONTENTS,B)),Y(e,`ADD_FORBID_CONTENTS`)&&J(e.ADD_FORBID_CONTENTS)&&(F===I&&(F=$(F)),Q(F,e.ADD_FORBID_CONTENTS,B)),Te&&(k[`#text`]=!0),_e&&Q(k,[`html`,`head`,`body`]),k.table&&(Q(k,[`tbody`]),delete ce.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw zt(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw zt(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);b=e.TRUSTED_TYPES_POLICY,x=b.createHTML(``)}else b===void 0&&(b=gn(p,i)),b!==null&&typeof x==`string`&&(x=b.createHTML(``));q&&q(e),V=e},Ve=Q({},[...Kt,...qt,...Jt]),G=Q({},[...Yt,...Xt]),He=function(e){let t=y(e);(!t||!t.tagName)&&(t={namespaceURI:Ne,tagName:`template`});let n=Ot(e.tagName),r=Ot(t.tagName);return Pe[e.namespaceURI]?e.namespaceURI===Me?t.namespaceURI===R?n===`svg`:t.namespaceURI===je?n===`svg`&&(r===`annotation-xml`||Ie[r]):!!Ve[n]:e.namespaceURI===je?t.namespaceURI===R?n===`math`:t.namespaceURI===Me?n===`math`&&Le[r]:!!G[n]:e.namespaceURI===R?t.namespaceURI===Me&&!Le[r]||t.namespaceURI===je&&!Ie[r]?!1:!G[n]&&(Re[n]||!Ve[n]):!!(ze===`application/xhtml+xml`&&Pe[e.namespaceURI]):!1},Ue=function(e){Et(t.removed,{element:e});try{y(e).removeChild(e)}catch{g(e)}},We=function(e,n){try{Et(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{Et(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(P||be)try{Ue(n)}catch{}else try{n.setAttribute(e,``)}catch{}},Ge=function(e){let t=null,r=null;if(ye)e=`<remove></remove>`+e;else{let t=At(e,/^[\r\n\t ]+/);r=t&&t[0]}ze===`application/xhtml+xml`&&Ne===R&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=b?b.createHTML(e):e;if(Ne===R)try{t=new f().parseFromString(i,ze)}catch{}if(!t||!t.documentElement){t=S.createDocument(Ne,`template`,null);try{t.documentElement.innerHTML=z?x:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ne===R?T.call(t,_e?`html`:`body`)[0]:_e?t.documentElement:a},Ke=function(e){return C.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},qe=function(e){return e instanceof d&&(typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||!(e.attributes instanceof u)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`)},Je=function(e){return typeof s==`function`&&e instanceof s};function K(e,n,r){Ct(e,e=>{e.call(t,n,r,V)})}let Ye=function(e){let n=null;if(K(D.beforeSanitizeElements,e,null),qe(e))return Ue(e),!0;let r=B(e.nodeName);if(K(D.uponSanitizeElement,e,{tagName:r,allowedTags:k}),ge&&e.hasChildNodes()&&!Je(e.firstElementChild)&&X(/<[/\w!]/g,e.innerHTML)&&X(/<[/\w!]/g,e.textContent)||ge&&e.namespaceURI===R&&r===`style`&&Je(e.firstElementChild)||e.nodeType===mn.progressingInstruction||ge&&e.nodeType===mn.comment&&X(/<[/\w]/g,e.data))return Ue(e),!0;if(ce[r]||!(ue.tagCheck instanceof Function&&ue.tagCheck(r))&&!k[r]){if(!ce[r]&&Qe(r)&&(N.tagNameCheck instanceof RegExp&&X(N.tagNameCheck,r)||N.tagNameCheck instanceof Function&&N.tagNameCheck(r)))return!1;if(Te&&!F[r]){let t=y(e)||e.parentNode,n=v(e)||e.childNodes;if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=h(n[i],!0);t.insertBefore(r,_(e))}}}return Ue(e),!0}return e instanceof c&&!He(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&X(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ue(e),!0):(he&&e.nodeType===mn.text&&(n=e.textContent,Ct([ee,te,O],e=>{n=jt(n,e,` `)}),e.textContent!==n&&(Et(t.removed,{element:e.cloneNode()}),e.textContent=n)),K(D.afterSanitizeElements,e,null),!1)},Xe=function(e,t,r){if(le[t]||Se&&(t===`id`||t===`name`)&&(r in n||r in H))return!1;let i=j[t]||ue.attributeCheck instanceof Function&&ue.attributeCheck(t,e);if(!(fe&&!le[t]&&X(ne,t))&&!(de&&X(re,t))){if(!i||le[t]){if(!(Qe(e)&&(N.tagNameCheck instanceof RegExp&&X(N.tagNameCheck,e)||N.tagNameCheck instanceof Function&&N.tagNameCheck(e))&&(N.attributeNameCheck instanceof RegExp&&X(N.attributeNameCheck,t)||N.attributeNameCheck instanceof Function&&N.attributeNameCheck(t,e))||t===`is`&&N.allowCustomizedBuiltInElements&&(N.tagNameCheck instanceof RegExp&&X(N.tagNameCheck,r)||N.tagNameCheck instanceof Function&&N.tagNameCheck(r))))return!1}else if(!Ae[t]&&!X(se,jt(r,ae,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Mt(r,`data:`)===0&&Oe[e])&&!(pe&&!X(ie,jt(r,ae,``)))&&r)return!1}return!0},Ze=Q({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Qe=function(e){return!Ze[Ot(e)]&&X(oe,e)},$e=function(e){K(D.beforeSanitizeAttributes,e,null);let{attributes:n}=e;if(!n||qe(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:j,forceKeepAttr:void 0},i=n.length;for(;i--;){let{name:a,namespaceURI:o,value:s}=n[i],c=B(a),l=s,u=a===`value`?l:Nt(l);if(r.attrName=c,r.attrValue=u,r.keepAttr=!0,r.forceKeepAttr=void 0,K(D.uponSanitizeAttribute,e,r),u=r.attrValue,Ce&&(c===`id`||c===`name`)&&Mt(u,we)!==0&&(We(a,e),u=we+u),ge&&X(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,u)){We(a,e);continue}if(c===`attributename`&&At(u,`href`)){We(a,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){We(a,e);continue}if(!me&&X(/\/>/i,u)){We(a,e);continue}he&&Ct([ee,te,O],e=>{u=jt(u,e,` `)});let d=B(e.nodeName);if(!Xe(d,c,u)){We(a,e);continue}if(b&&typeof p==`object`&&typeof p.getAttributeType==`function`&&!o)switch(p.getAttributeType(d,c)){case`TrustedHTML`:u=b.createHTML(u);break;case`TrustedScriptURL`:u=b.createScriptURL(u);break}if(u!==l)try{o?e.setAttributeNS(o,a,u):e.setAttribute(a,u),qe(e)?Ue(e):Tt(t.removed)}catch{We(a,e)}}K(D.afterSanitizeAttributes,e,null)},et=function(e){let t=null,n=Ke(e);for(K(D.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)K(D.uponSanitizeShadowNode,t,null),Ye(t),$e(t),t.content instanceof a&&et(t.content);K(D.afterSanitizeShadowDOM,e,null)};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,o=null,c=null,l=null;if(z=!e,z&&(e=`<!-->`),typeof e!=`string`&&!Je(e)&&(e=Ht(e),typeof e!=`string`))throw zt(`dirty is not a string, aborting`);if(!t.isSupported)return e;if(ve||W(n),t.removed=[],typeof e==`string`&&(Ee=!1),Ee){let t=e.nodeName;if(typeof t==`string`){let e=B(t);if(!k[e]||ce[e])throw zt(`root node is forbidden and cannot be sanitized in-place`)}}else if(e instanceof s)i=Ge(`<!---->`),o=i.ownerDocument.importNode(e,!0),o.nodeType===mn.element&&o.nodeName===`BODY`||o.nodeName===`HTML`?i=o:i.appendChild(o);else{if(!P&&!he&&!_e&&e.indexOf(`<`)===-1)return b&&xe?b.createHTML(e):e;if(i=Ge(e),!i)return P?null:xe?x:``}i&&ye&&Ue(i.firstChild);let u=Ke(Ee?e:i);for(;c=u.nextNode();)Ye(c),$e(c),c.content instanceof a&&et(c.content);if(Ee)return e;if(P){if(he){i.normalize();let e=i.innerHTML;Ct([ee,te,O],t=>{e=jt(e,t,` `)}),i.innerHTML=e}if(be)for(l=w.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(j.shadowroot||j.shadowrootmode)&&(l=E.call(r,l,!0)),l}let d=_e?i.outerHTML:i.innerHTML;return _e&&k[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&X(dn,i.ownerDocument.doctype.name)&&(d=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
2
|
+
`+d),he&&Ct([ee,te,O],e=>{d=jt(d,e,` `)}),b&&xe?b.createHTML(d):d},t.setConfig=function(){W(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),ve=!0},t.clearConfig=function(){V=null,ve=!1},t.isValidAttribute=function(e,t,n){return V||W({}),Xe(B(e),B(t),n)},t.addHook=function(e,t){typeof t==`function`&&Et(D[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=wt(D[e],t);return n===-1?void 0:Dt(D[e],n,1)[0]}return Tt(D[e])},t.removeHooks=function(e){D[e]=[]},t.removeAllHooks=function(){D=_n()},t}var yn=vn();function bn({config:e,onConfigChange:t}){let[n,r]=(0,B.useState)(!0),[i,a]=(0,B.useState)(``),[o,s]=(0,B.useState)(null),[c,l]=(0,B.useState)(!1),[f,p]=(0,B.useState)(!1),[h,g]=(0,B.useState)(!1),[_,v]=(0,B.useState)(!1),[y,w]=(0,B.useState)(``),T=(0,B.useRef)(``),D=i!==T.current;async function ee(){r(!0);try{let e=await re();if(e.error===`no_config`)l(!1),s(null),a(``),T.current=``;else{l(!0),s(e.filePath);let t=e.content??``;a(t),T.current=t}}catch{P.error(`Failed to load agent rules`)}finally{r(!1)}}(0,B.useEffect)(()=>{ee()},[]);async function te(){p(!0);try{await j(i),T.current=i,t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save agent rules`)}finally{p(!1)}}function ne(){a(T.current)}async function ie(){g(!0);try{let e=await F();l(!0),s(e.filePath),a(``),T.current=``,t(),P.success(`Agent rules file created`)}catch{P.error(`Failed to create rules file`)}finally{g(!1)}}async function ae(e){if(v(!1),e!==o)try{await I({"workspace.agentRules":e}),t(),await ee()}catch{P.error(`Failed to update file path`)}}function oe(e){e.key===`Enter`?ae(y):e.key===`Escape`&&v(!1)}function se(){if(!i.trim())return(0,V.jsx)(`div`,{className:`text-sm text-muted-foreground text-center py-12`,children:`Nothing to preview. Switch to the Edit tab to write your rules.`});let e=Re.parse(i,{async:!1});return(0,V.jsx)(`div`,{className:`markdown-preview`,role:`document`,dangerouslySetInnerHTML:{__html:yn.sanitize(e,{USE_PROFILES:{html:!0}})}})}return n?(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,V.jsx)(ze,{className:`size-5`}),`Agent Rules`]}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Custom instructions appended to the AI agent's system prompt`})]}),(0,V.jsx)(W,{children:(0,V.jsx)(`div`,{className:`flex items-center justify-center py-12 text-muted-foreground`,children:(0,V.jsx)(A,{className:`size-5 animate-spin`})})})]}):c?(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,V.jsx)(ze,{className:`size-5`}),`Agent Rules`]}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Custom instructions appended to the AI agent's system prompt`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(E,{className:`size-4 text-muted-foreground shrink-0`}),_?(0,V.jsx)(N,{className:`font-mono text-sm`,value:y,onChange:e=>w(e.target.value),onKeyDown:oe,onBlur:()=>ae(y),placeholder:`./path-to-rules.md`,"aria-label":`Agent rules file path`,autoFocus:!0}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`font-mono text-sm text-muted-foreground truncate`,children:o}),(0,V.jsx)(O,{variant:`ghost`,size:`sm`,className:`ml-auto shrink-0`,onClick:()=>{w(o??``),v(!0)},children:`Change Path`})]})]}),(0,V.jsxs)(C,{defaultValue:`edit`,children:[(0,V.jsxs)(S,{children:[(0,V.jsxs)(b,{value:`edit`,className:`gap-1.5`,children:[(0,V.jsx)(d,{className:`size-3.5`}),`Edit`]}),(0,V.jsxs)(b,{value:`preview`,className:`gap-1.5`,children:[(0,V.jsx)(u,{className:`size-3.5`}),`Preview`]})]}),(0,V.jsx)(x,{value:`edit`,children:(0,V.jsx)(m,{className:`min-h-[300px] font-mono text-sm leading-relaxed resize-y w-full`,value:i,onChange:e=>a(e.target.value),placeholder:`Write your custom agent rules in markdown...`,"aria-label":`Agent rules markdown editor`})}),(0,V.jsx)(x,{value:`preview`,children:(0,V.jsx)(`div`,{className:`min-h-[300px] p-4 border border-border rounded-none overflow-y-auto`,children:se()})})]}),(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(O,{size:`sm`,onClick:te,disabled:f||!D,children:f?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`}),(0,V.jsx)(O,{variant:`outline`,size:`sm`,onClick:ne,disabled:!D,children:`Reset Changes`})]})]})]}):(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,V.jsx)(ze,{className:`size-5`}),`Agent Rules`]}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Custom instructions appended to the AI agent's system prompt`})]}),(0,V.jsx)(W,{children:(0,V.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center gap-4`,children:[(0,V.jsx)(ze,{className:`size-8 text-muted-foreground`}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`text-sm font-semibold`,children:`No agent rules file configured`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Create a markdown file with custom instructions for the AI agent. Rules are appended to the system prompt after the built-in rules.`})]}),(0,V.jsx)(O,{variant:`outline`,size:`sm`,onClick:ie,disabled:h,children:h?(0,V.jsx)(A,{className:`size-4 animate-spin`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(Be,{className:`size-4 mr-1`}),`Create Rules File`]})})]})})]})}function xn({config:e,onConfigChange:t}){let n=e.services?.dashboard??{},[r,i]=(0,B.useState)(String(n.port??4173)),[a,o]=(0,B.useState)(n.dbPath??``),[s,c]=(0,B.useState)(n.artifactsDir??``),[l,u]=(0,B.useState)(!1);async function d(){let e=G(r,{label:`Port`,min:1,max:65535,integer:!0});if(e.error){P.error(e.error);return}u(!0);try{await I({"services.dashboard":{port:e.value,dbPath:a,artifactsDir:s}}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{u(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Dashboard`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure dashboard server and storage paths`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`dashboard-port`,children:`Port`}),(0,V.jsx)(N,{id:`dashboard-port`,type:`number`,min:1,max:65535,step:1,value:r,onChange:e=>i(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`dashboard-db-path`,children:`Database Path`}),(0,V.jsx)(N,{id:`dashboard-db-path`,placeholder:`.agent-qa/runs.db`,value:a,onChange:e=>o(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`dashboard-artifacts-dir`,children:`Artifacts Directory`}),(0,V.jsx)(N,{id:`dashboard-artifacts-dir`,placeholder:`.agent-qa/artifacts`,value:s,onChange:e=>c(e.target.value)})]}),(0,V.jsx)(O,{size:`sm`,onClick:d,disabled:l,children:l?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function Sn({config:e,onConfigChange:t}){let n=e.workspace??{},r=n.testMatch??[],i=n.testPathIgnore??[],a=n.suiteMatch??[],[o,s]=(0,B.useState)(r.join(`
|
|
3
|
+
`)),[c,l]=(0,B.useState)(i.join(`
|
|
4
|
+
`)),[u,d]=(0,B.useState)(a.join(`
|
|
5
|
+
`)),[f,p]=(0,B.useState)({}),[h,g]=(0,B.useState)(!1);async function v(){let e=o.split(`
|
|
6
|
+
`).map(e=>e.trim()).filter(Boolean),n=c.split(`
|
|
7
|
+
`).map(e=>e.trim()).filter(Boolean),r=u.split(`
|
|
8
|
+
`).map(e=>e.trim()).filter(Boolean),i={};if(e.length===0&&(i.testMatch=`workspace.testMatch must contain at least one pattern.`),r.length===0&&(i.suiteMatch=`workspace.suiteMatch must contain at least one pattern.`),Object.keys(i).length>0){p(i);return}p({}),g(!0);try{await I({"workspace.testMatch":e,"workspace.suiteMatch":r,"workspace.testPathIgnore":n}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{g(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Discovery`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure test and suite discovery patterns`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`test-match`,children:`Test Match Patterns`}),(0,V.jsx)(m,{id:`test-match`,placeholder:`**/*.yaml`,value:o,"aria-invalid":f.testMatch?!0:void 0,onChange:e=>{s(e.target.value),f.testMatch&&e.target.value.split(`
|
|
9
|
+
`).some(e=>e.trim())&&p(e=>({...e,testMatch:``}))},className:`min-h-[120px] font-mono text-sm`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`One glob pattern per line`}),f.testMatch?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:f.testMatch}):null]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`suite-match`,children:`Suite Match Patterns`}),(0,V.jsx)(m,{id:`suite-match`,placeholder:`**/*.suite.yaml`,value:u,"aria-invalid":f.suiteMatch?!0:void 0,onChange:e=>{d(e.target.value),f.suiteMatch&&e.target.value.split(`
|
|
10
|
+
`).some(e=>e.trim())&&p(e=>({...e,suiteMatch:``}))},className:`min-h-[120px] font-mono text-sm`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`One glob pattern per line`}),f.suiteMatch?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:f.suiteMatch}):null]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`test-path-ignore`,children:`Test Path Ignore Patterns`}),(0,V.jsx)(m,{id:`test-path-ignore`,placeholder:`**/node_modules/**`,value:c,onChange:e=>l(e.target.value),className:`min-h-[120px] font-mono text-sm`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`One glob pattern per line`})]}),(0,V.jsx)(O,{size:`sm`,onClick:v,disabled:h,children:h?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function Cn({config:e,onConfigChange:t}){let n=e.workspace??{},[r,i]=(0,B.useState)(n.hooksFile??``),[a,o]=(0,B.useState)(n.agentRules??``),[s,c]=(0,B.useState)(n.envFile??``),[l,u]=(0,B.useState)(n.secretsFile??``),[d,f]=(0,B.useState)({}),[p,m]=(0,B.useState)(!1);async function h(){let e={};if(r.trim().length===0&&(e.hooksFile=`Hooks file is required.`),a.trim().length===0&&(e.agentRules=`Agent rules file is required.`),s.trim().length===0&&(e.envFile=`Environment file is required.`),l.trim().length===0&&(e.secretsFile=`Secrets file is required.`),Object.keys(e).length>0){f(e);return}f({}),m(!0);try{await I({"workspace.hooksFile":r.trim(),"workspace.agentRules":a.trim(),"workspace.envFile":s.trim(),"workspace.secretsFile":l.trim()}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{m(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Files`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set shared workspace file paths for hooks, environment loading, and runtime-only secrets.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`workspace-hooks-file`,children:`Hooks File`}),(0,V.jsx)(N,{id:`workspace-hooks-file`,placeholder:`tests/hooks.ts`,value:r,"aria-invalid":d.hooksFile?!0:void 0,onChange:e=>{i(e.target.value),d.hooksFile&&e.target.value.trim().length>0&&f(e=>({...e,hooksFile:``}))}}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Path to the shared hooks module used across tests and suites.`}),d.hooksFile?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:d.hooksFile}):null]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`workspace-agent-rules`,children:`Agent Rules File`}),(0,V.jsx)(N,{id:`workspace-agent-rules`,placeholder:`agent-rules.md`,value:a,"aria-invalid":d.agentRules?!0:void 0,onChange:e=>{o(e.target.value),d.agentRules&&e.target.value.trim().length>0&&f(e=>({...e,agentRules:``}))}}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required instructions file loaded for agent runs.`}),d.agentRules?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:d.agentRules}):null]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`workspace-env-file`,children:`Environment File`}),(0,V.jsx)(N,{id:`workspace-env-file`,placeholder:`.env.local`,value:s,"aria-invalid":d.envFile?!0:void 0,onChange:e=>{c(e.target.value),d.envFile&&e.target.value.trim().length>0&&f(e=>({...e,envFile:``}))}}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required dotenv file loaded before runs start.`}),d.envFile?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:d.envFile}):null]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`workspace-secrets-file`,children:`Secrets File`}),(0,V.jsx)(N,{id:`workspace-secrets-file`,placeholder:`.secrets.local`,value:l,"aria-invalid":d.secretsFile?!0:void 0,onChange:e=>{u(e.target.value),d.secretsFile&&e.target.value.trim().length>0&&f(e=>({...e,secretsFile:``}))}}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required dotenv-style file for runtime-only secrets.`}),d.secretsFile?(0,V.jsx)(`p`,{className:`text-xs text-destructive`,children:d.secretsFile}):null]}),(0,V.jsx)(O,{size:`sm`,onClick:h,disabled:p,children:p?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function wn({config:e,onConfigChange:t}){let n=(e.use??{}).logCapture??{},[r,i]=(0,B.useState)(n.console??!0),[a,o]=(0,B.useState)(n.network??!0),[s,c]=(0,B.useState)(!1);async function l(){c(!0);try{await I({"use.logCapture":{console:r,network:a}}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{c(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Log Capture`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Control the default runtime capture of console and network events.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`use-log-capture-console`,children:`Capture console logs`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Record browser console output during runs by default.`})]}),(0,V.jsx)(y,{id:`use-log-capture-console`,checked:r,onCheckedChange:i})]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`use-log-capture-network`,children:`Capture network logs`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Record request and response metadata during runs by default.`})]}),(0,V.jsx)(y,{id:`use-log-capture-network`,checked:a,onCheckedChange:o})]}),(0,V.jsx)(O,{size:`sm`,onClick:l,disabled:s,children:s?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function Tn({config:e,onConfigChange:t}){let a=e.registry??{},c=e.use??{},l=(Array.isArray(a.llms)?a.llms:[]).map(e=>e.name).filter(e=>typeof e==`string`),[u,d]=(0,B.useState)(c.llm??``),[f,p]=(0,B.useState)(c.parallel??!1),[m,h]=(0,B.useState)(!1);async function g(){let e={"use.parallel":f};u&&(e[`use.llm`]=u),h(!0);try{await I(e),t(),P.success(`Runtime defaults saved`)}catch{P.error(`Runtime defaults were not saved. Fix the setting and try again.`)}finally{h(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Execution Defaults`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set shared runtime defaults used by tests and suites.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsx)(L,{variant:`secondary`,children:`Registry-backed`}),(0,V.jsx)(L,{variant:`outline`,className:`font-mono text-[11px]`,children:`use.llm`}),(0,V.jsx)(L,{variant:`outline`,className:`font-mono text-[11px]`,children:`use.parallel`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`use-default-llm`,children:`Default LLM`}),l.length>0?(0,V.jsxs)(s,{value:u||void 0,onValueChange:d,children:[(0,V.jsx)(i,{id:`use-default-llm`,children:(0,V.jsx)(o,{placeholder:`Select an LLM from Registry / LLMs`})}),(0,V.jsx)(r,{children:l.map(e=>(0,V.jsx)(n,{value:e,children:e},e))})]}):(0,V.jsxs)(Ve,{className:`border-dashed px-3 py-2`,children:[(0,V.jsx)(`div`,{className:`font-medium text-foreground`,children:`No LLMs configured yet.`}),(0,V.jsx)(`div`,{children:`Add an LLM in Registry / LLMs before selecting a default.`})]}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This value selects from entries defined in Registry.`})]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:`use-parallel`,children:`Parallel Execution`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Allow eligible web runs and suite parent jobs to share available queue slots by default.`})]}),(0,V.jsx)(y,{id:`use-parallel`,checked:f,onCheckedChange:p})]}),(0,V.jsx)(O,{size:`sm`,onClick:g,disabled:m,children:m?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Runtime Defaults`})]})]})}function En(e){let t=e.use?.mobile?.appState;return t===`preserve`||t===`reset`?t:void 0}function Dn({config:e,onConfigChange:t}){let a=En(e),[c,l]=(0,B.useState)(a??`preserve`),[u,d]=(0,B.useState)(!1);async function f(){d(!0);try{await I({"use.mobile.appState":c}),t(),P.success(`Mobile defaults saved`)}catch{P.error(`Mobile defaults were not saved. Fix the setting and try again.`)}finally{d(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Mobile`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set native mobile app-state behavior for mobile runs.`})]}),(0,V.jsxs)(W,{children:[a?null:(0,V.jsxs)(Ve,{className:`border-dashed`,children:[(0,V.jsx)(`div`,{className:`font-medium text-foreground`,children:`Mobile app state is required.`}),(0,V.jsx)(`div`,{children:`Add use.mobile.appState to run mobile tests.`})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`use-mobile-app-state`,children:`App state`}),(0,V.jsxs)(s,{value:c,onValueChange:e=>l(e),children:[(0,V.jsx)(i,{id:`use-mobile-app-state`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`preserve`,children:`Preserve app data`}),(0,V.jsx)(n,{value:`reset`,children:`Reset app data`})]})]})]}),(0,V.jsx)(O,{size:`sm`,onClick:f,disabled:u,children:u?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Mobile Defaults`})]})]})}function On({config:e,onConfigChange:t}){let a=(e.services??{}).memory??{},[c,l]=(0,B.useState)(a.enabled??!0),[u,d]=(0,B.useState)(a.provider??`local`),[f,p]=(0,B.useState)(a.dir??`agent-qa-memory`),[m,h]=(0,B.useState)(String(a.minTrust??.3)),[g,v]=(0,B.useState)(String(a.maxInjections??3)),[y,b]=(0,B.useState)(a.curatorEnabled??!0),[x,S]=(0,B.useState)(String(a.curatorLockTimeout??12e4)),[C,w]=(0,B.useState)(String(a.trustConfirmDelta??.05)),[T,E]=(0,B.useState)(String(a.trustContradictDelta??.1)),[D,ee]=(0,B.useState)(a.ablationEnabled??!0),[te,ne]=(0,B.useState)(a.circuitBreakerEnabled??!0),[re,ie]=(0,B.useState)(String(a.circuitBreakerWindowSize??20)),[ae,oe]=(0,B.useState)(String(a.circuitBreakerBaselineSize??3)),[se,k]=(0,B.useState)(String(a.circuitBreakerThreshold??.15)),[j,M]=(0,B.useState)(!1);async function ce(){let e=f.trim();if(!e){P.error(`Memory directory is required`);return}let n=G(m,{label:`Min trust`,min:0,max:1});if(n.error){P.error(n.error);return}let r=G(g,{label:`Max injections`,min:0,integer:!0});if(r.error){P.error(r.error);return}let i=G(x,{label:`Curator lock timeout`,min:1e3,integer:!0});if(i.error){P.error(i.error);return}let a=G(C,{label:`Trust confirm delta`,min:0,max:1});if(a.error){P.error(a.error);return}let o=G(T,{label:`Trust contradict delta`,min:0,max:1});if(o.error){P.error(o.error);return}let s=G(re,{label:`Circuit breaker window size`,min:5,integer:!0});if(s.error){P.error(s.error);return}let l=G(ae,{label:`Circuit breaker baseline size`,min:2,integer:!0});if(l.error){P.error(l.error);return}let d=G(se,{label:`Circuit breaker threshold`,min:0,max:1});if(d.error){P.error(d.error);return}M(!0);try{await I({"services.memory":{enabled:c,provider:u,dir:e,minTrust:n.value,maxInjections:r.value,curatorEnabled:y,curatorLockTimeout:i.value,trustConfirmDelta:a.value,trustContradictDelta:o.value,ablationEnabled:D,circuitBreakerEnabled:te,circuitBreakerWindowSize:s.value,circuitBreakerBaselineSize:l.value,circuitBreakerThreshold:d.value}}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{M(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Memory`}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Configure runtime memory injection thresholds, curator behavior, and safety guards.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-provider`,children:`Provider`}),(0,V.jsxs)(s,{value:u,onValueChange:d,children:[(0,V.jsx)(i,{id:`memory-provider`,children:(0,V.jsx)(o,{})}),(0,V.jsx)(r,{children:(0,V.jsx)(n,{value:`local`,children:`Local`})})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-dir`,children:`Memory Directory`}),(0,V.jsx)(N,{id:`memory-dir`,placeholder:`agent-qa-memory`,value:f,onChange:e=>p(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-min-trust`,children:`Min Trust`}),(0,V.jsx)(N,{id:`memory-min-trust`,type:`number`,min:`0`,max:`1`,step:`0.01`,value:m,onChange:e=>h(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-max-injections`,children:`Max Injections`}),(0,V.jsx)(N,{id:`memory-max-injections`,type:`number`,min:`0`,value:g,onChange:e=>v(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-curator-lock-timeout`,children:`Curator Lock Timeout (ms)`}),(0,V.jsx)(N,{id:`memory-curator-lock-timeout`,type:`number`,min:`1000`,step:`1000`,value:x,onChange:e=>S(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-confirm-delta`,children:`Trust Confirm Delta`}),(0,V.jsx)(N,{id:`memory-confirm-delta`,type:`number`,min:`0`,max:`1`,step:`0.01`,value:C,onChange:e=>w(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-contradict-delta`,children:`Trust Contradict Delta`}),(0,V.jsx)(N,{id:`memory-contradict-delta`,type:`number`,min:`0`,max:`1`,step:`0.01`,value:T,onChange:e=>E(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-circuit-window`,children:`Circuit Breaker Window Size`}),(0,V.jsx)(N,{id:`memory-circuit-window`,type:`number`,min:`5`,value:re,onChange:e=>ie(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-circuit-baseline`,children:`Circuit Breaker Baseline Size`}),(0,V.jsx)(N,{id:`memory-circuit-baseline`,type:`number`,min:`2`,value:ae,onChange:e=>oe(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`memory-circuit-threshold`,children:`Circuit Breaker Threshold`}),(0,V.jsx)(N,{id:`memory-circuit-threshold`,type:`number`,min:`0`,max:`1`,step:`0.01`,value:se,onChange:e=>k(e.target.value)})]})]}),(0,V.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,V.jsx)(kn,{id:`memory-enabled`,label:`Enabled`,description:`Allow runtime memory retrieval and injection during execution.`,checked:c,onCheckedChange:l}),(0,V.jsx)(kn,{id:`memory-curator-enabled`,label:`Curator Enabled`,description:`Allow the curator to confirm, reject, and refine candidate memories.`,checked:y,onCheckedChange:b}),(0,V.jsx)(kn,{id:`memory-ablation-enabled`,label:`Ablation Enabled`,description:`Permit ablation passes that measure whether injected memories help or hurt.`,checked:D,onCheckedChange:ee}),(0,V.jsx)(kn,{id:`memory-circuit-enabled`,label:`Circuit Breaker Enabled`,description:`Temporarily suppress memory injection when observed quality regresses.`,checked:te,onCheckedChange:ne})]}),(0,V.jsx)(O,{size:`sm`,onClick:ce,disabled:j,children:j?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})}function kn({id:e,label:t,description:n,checked:r,onCheckedChange:i}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-4 border border-border bg-transparent rounded-none px-4 py-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,V.jsx)(_,{htmlFor:e,children:t}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]}),(0,V.jsx)(y,{id:e,checked:r,onCheckedChange:i})]})}var An={platform:`web`,product:``,bundleId:``,appPackage:``,appActivity:``,app:{path:``,browserstack:``},url:``},jn=v(`dashboard.config.targets.product`);function Mn({config:e,onConfigChange:t}){let a=(0,B.useMemo)(()=>(e.registry??{}).targets??{},[e]),[c,l]=(0,B.useState)(a),[u,p]=(0,B.useState)(null),[m,g]=(0,B.useState)(``),[v,y]=(0,B.useState)(An),[b,x]=(0,B.useState)(!1),[S,C]=(0,B.useState)(!1);(0,B.useEffect)(()=>{l(a)},[a]);function w(){p(null),g(``),y(An)}function T(){w(),x(!0)}function E(){return m.trim()?v.platform===`web`&&!v.url?.trim()?(P.error(`Web targets must include a URL`),!1):!0:(P.error(`Target name is required`),!1)}function D(){if(!E())return;let e=m.trim(),t={...c};u&&u!==e&&delete t[u];let n=v.app?.path?.trim(),r=v.app?.browserstack?.trim(),i=v.platform!==`web`&&(n||r)?{...n?{path:n}:{},...r?{browserstack:r}:{}}:void 0;t[e]={platform:v.platform,...v.product?.trim()?{product:v.product.trim()}:{},...v.url?.trim()?{url:v.url.trim()}:{},...v.bundleId?.trim()?{bundleId:v.bundleId.trim()}:{},...v.appPackage?.trim()?{appPackage:v.appPackage.trim()}:{},...v.appActivity?.trim()?{appActivity:v.appActivity.trim()}:{},...i?{app:i}:{}},l(t),x(!1),w()}function ee(e){let t=c[e];t&&(p(e),g(e),y({platform:t.platform,product:t.product??``,url:t.url??``,bundleId:t.bundleId??``,appPackage:t.appPackage??``,appActivity:t.appActivity??``,app:{path:t.app?.path??``,browserstack:t.app?.browserstack??``}}),x(!0))}async function te(){C(!0);try{await I({"registry.targets":c}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{C(!1)}}let ne=Object.keys(c).sort();return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Targets`}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage reusable named web and mobile targets referenced elsewhere in agent-qa.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3 border border-border bg-transparent rounded-none px-4 py-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`p`,{className:`text-sm font-medium`,children:`Reusable target entries`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Use the target editor to define a named URL, bundle ID, or app package once and reference it across tests and suites.`})]}),(0,V.jsxs)(O,{size:`sm`,onClick:T,children:[(0,V.jsx)(f,{className:`size-4`}),`Add Target`]})]}),(0,V.jsx)(`div`,{className:`space-y-3`,children:ne.length===0?(0,V.jsx)(`div`,{className:`border border-dashed border-border bg-transparent rounded-none p-6 text-sm text-muted-foreground`,children:`No targets configured. Add a named target to make it selectable across tests and suites.`}):ne.map(e=>{let t=c[e];return(0,V.jsx)(`div`,{className:`border border-border bg-transparent rounded-none px-4 py-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(`p`,{className:`font-medium`,children:e}),(0,V.jsx)(L,{variant:`secondary`,children:t.platform})]}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:Nn(t)})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>ee(e),children:[(0,V.jsx)(d,{className:`size-4`}),`Edit`]}),(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>l(t=>{let n={...t};return delete n[e],n}),children:[(0,V.jsx)(h,{className:`size-4`}),`Delete`]})]})]})},e)})}),(0,V.jsx)(O,{size:`sm`,onClick:te,disabled:S,children:S?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]}),(0,V.jsx)(pe,{open:b,onOpenChange:e=>{x(e),e||w()},children:(0,V.jsxs)(Ce,{className:`sm:max-w-xl`,children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:u?`Edit ${u}`:`Add Target`}),(0,V.jsx)(xe,{children:`Update the target entry in this section draft. Use Save Changes in the section to persist it to config.`})]}),(0,V.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`target-name`,children:`Target Name`}),(0,V.jsx)(N,{id:`target-name`,placeholder:`staging-web`,value:m,onChange:e=>g(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`target-platform`,children:`Platform`}),(0,V.jsxs)(s,{value:v.platform,onValueChange:e=>y(t=>({...t,platform:e})),children:[(0,V.jsx)(i,{id:`target-platform`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`web`,children:`Web`}),(0,V.jsx)(n,{value:`android`,children:`Android`}),(0,V.jsx)(n,{value:`ios`,children:`iOS`})]})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`target-product`,children:`Product`}),(0,V.jsx)(N,{id:`target-product`,placeholder:jn,value:v.product??``,onChange:e=>y(t=>({...t,product:e.target.value}))})]}),v.platform===`web`?(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`target-url`,children:`URL`}),(0,V.jsx)(N,{id:`target-url`,placeholder:`https://staging.example.com`,value:v.url??``,onChange:e=>y(t=>({...t,url:e.target.value}))})]}):(0,V.jsxs)(V.Fragment,{children:[v.platform===`ios`?(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`target-bundle-id`,children:`Bundle ID`}),(0,V.jsx)(N,{id:`target-bundle-id`,placeholder:`com.example.ios`,value:v.bundleId??``,onChange:e=>y(t=>({...t,bundleId:e.target.value}))})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`target-app-package`,children:`App Package`}),(0,V.jsx)(N,{id:`target-app-package`,placeholder:`com.example.android`,value:v.appPackage??``,onChange:e=>y(t=>({...t,appPackage:e.target.value}))})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`target-app-activity`,children:`App Activity`}),(0,V.jsx)(N,{id:`target-app-activity`,placeholder:`.MainActivity`,value:v.appActivity??``,onChange:e=>y(t=>({...t,appActivity:e.target.value}))})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`target-app-path`,children:`App Path`}),(0,V.jsx)(N,{id:`target-app-path`,placeholder:`apps/wikipedia-alpha.apk`,value:v.app?.path??``,onChange:e=>y(t=>({...t,app:{...t.app??{},path:e.target.value}}))})]}),(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`target-browserstack-app`,children:`BrowserStack App`}),(0,V.jsx)(N,{id:`target-browserstack-app`,placeholder:`bs://... or custom_id`,value:v.app?.browserstack??``,onChange:e=>y(t=>({...t,app:{...t.app??{},browserstack:e.target.value}}))})]})]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:()=>x(!1),children:`Cancel`}),(0,V.jsx)(O,{onClick:D,children:u?`Apply Target Changes`:`Add Target to Section`})]})]})})]})}function Nn(e){let t=Pn(e),n=e=>t?`${e} | App: ${t}`:e;if(e.platform===`web`)return e.url??`Web target without URL`;if(e.platform===`ios`)return n(e.bundleId??`iOS target`);let r=[e.appPackage,e.appActivity].filter(Boolean);return n(r.length>0?r.join(` / `):`Android target`)}function Pn(e){if(e.platform===`web`)return null;let t=[e.app?.path,e.app?.browserstack].filter(Boolean);return t.length>0?t.join(` / `):null}var Fn=[{value:`local`,label:`Local`},{value:`browserstack`,label:`BrowserStack`}],In={android:[`avd`,`serial`,`appPackage`,`appActivity`,`automationName`,`browserName`,`platformVersion`],ios:[`udid`,`bundleId`,`automationName`,`platformVersion`]},Ln={platform:`android`,transport:`local`,match:{}};function Rn({config:e,onConfigChange:t}){let a=(0,B.useMemo)(()=>(e.registry??{}).devices??{},[e]),[c,l]=(0,B.useState)(a),[u,p]=(0,B.useState)(null),[g,v]=(0,B.useState)(``),[y,b]=(0,B.useState)(Ln),[x,S]=(0,B.useState)(`{}`),[C,w]=(0,B.useState)(!1),[T,E]=(0,B.useState)(!1);(0,B.useEffect)(()=>{l(a)},[a]);function D(){p(null),v(``),b(Ln),S(`{}`)}function ee(){D(),w(!0)}function te(){try{let e=JSON.parse(x||`{}`);if(!e||typeof e!=`object`||Array.isArray(e))return P.error(`Device match must be a JSON object`),null;let t=e;if(y.transport===`local`){let e=In[y.platform],n=Object.keys(t).filter(t=>!e.includes(t));if(n.length>0)return P.error(`Invalid local match fields: ${n.join(`, `)}`),null}return t}catch{return P.error(`Device match must be valid JSON`),null}}function ne(){if(!g.trim()){P.error(`Device name is required`);return}let e=te();if(!e)return;let t=g.trim(),n={...c};u&&u!==t&&delete n[u],n[t]={platform:y.platform,transport:y.transport,match:e},l(n),w(!1),D()}function re(e){let t=c[e];t&&(p(e),v(e),b({platform:t.platform,transport:t.transport,match:t.match??{}}),S(JSON.stringify(t.match??{},null,2)),w(!0))}async function ie(){E(!0);try{await I({"registry.devices":c}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{E(!1)}}let ae=Object.keys(c).sort();return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Devices`}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage reusable named device profiles and transport matching rules.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3 border border-border bg-transparent rounded-none px-4 py-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`p`,{className:`text-sm font-medium`,children:`Reusable device profiles`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Store a platform, transport, and match contract once, then reference it from execution defaults or per-test overrides.`})]}),(0,V.jsxs)(O,{size:`sm`,onClick:ee,children:[(0,V.jsx)(f,{className:`size-4`}),`Add Device`]})]}),(0,V.jsx)(`div`,{className:`space-y-3`,children:ae.length===0?(0,V.jsx)(`div`,{className:`border border-dashed border-border bg-transparent rounded-none p-6 text-sm text-muted-foreground`,children:`No devices configured. Add a named device profile to make it selectable in runtime defaults.`}):ae.map(e=>{let t=c[e];return(0,V.jsx)(`div`,{className:`border border-border bg-transparent rounded-none px-4 py-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(`p`,{className:`font-medium`,children:e}),(0,V.jsx)(L,{variant:`secondary`,children:t.platform}),(0,V.jsx)(L,{variant:`outline`,children:t.transport})]}),(0,V.jsx)(`pre`,{className:`overflow-auto rounded-none bg-muted/40 p-3 text-xs text-muted-foreground`,children:JSON.stringify(t.match??{},null,2)})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>re(e),children:[(0,V.jsx)(d,{className:`size-4`}),`Edit`]}),(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>l(t=>{let n={...t};return delete n[e],n}),children:[(0,V.jsx)(h,{className:`size-4`}),`Delete`]})]})]})},e)})}),(0,V.jsx)(O,{size:`sm`,onClick:ie,disabled:T,children:T?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]}),(0,V.jsx)(pe,{open:C,onOpenChange:e=>{w(e),e||D()},children:(0,V.jsxs)(Ce,{className:`sm:max-w-xl`,children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:u?`Edit ${u}`:`Add Device`}),(0,V.jsx)(xe,{children:`Update the device entry in this section draft. Use Save Changes in the section to persist it to config.`})]}),(0,V.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`device-name`,children:`Device Name`}),(0,V.jsx)(N,{id:`device-name`,placeholder:`ios-local`,value:g,onChange:e=>v(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`device-platform`,children:`Platform`}),(0,V.jsxs)(s,{value:y.platform,onValueChange:e=>b(t=>({...t,platform:e})),children:[(0,V.jsx)(i,{id:`device-platform`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`android`,children:`Android`}),(0,V.jsx)(n,{value:`ios`,children:`iOS`})]})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`device-transport`,children:`Transport`}),(0,V.jsxs)(s,{value:y.transport,onValueChange:e=>b(t=>({...t,transport:e})),children:[(0,V.jsx)(i,{id:`device-transport`,children:(0,V.jsx)(o,{})}),(0,V.jsx)(r,{children:Fn.map(e=>(0,V.jsx)(n,{value:e.value,children:e.label},e.value))})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2 md:col-span-2`,children:[(0,V.jsx)(_,{htmlFor:`device-match`,children:`Match JSON`}),(0,V.jsx)(m,{id:`device-match`,className:`min-h-[160px] font-mono text-sm`,value:x,onChange:e=>S(e.target.value)}),(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Local transport fields for `,y.platform,`:`,` `,(0,V.jsx)(`span`,{className:`font-mono`,children:In[y.platform].join(`, `)})]})]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:()=>w(!1),children:`Cancel`}),(0,V.jsx)(O,{onClick:ne,children:u?`Apply Device Changes`:`Add Device to Section`})]})]})})]})}function zn({config:e,onConfigChange:t}){let n=(0,B.useMemo)(()=>(e.registry??{}).providers??{},[e]),[r,i]=(0,B.useState)(n),[a,o]=(0,B.useState)(null),[s,c]=(0,B.useState)(``),[l,u]=(0,B.useState)(`{}`),[p,g]=(0,B.useState)(!1),[v,y]=(0,B.useState)(!1);(0,B.useEffect)(()=>{i(n)},[n]);function b(){o(null),c(``),u(`{}`)}function x(){b(),g(!0)}function S(){try{let e=JSON.parse(l||`{}`);return!e||typeof e!=`object`||Array.isArray(e)?(P.error(`Provider config must be a JSON object`),null):e}catch{return P.error(`Provider config must be valid JSON`),null}}function C(){if(!s.trim()){P.error(`Provider key is required`);return}let e=S();if(!e)return;let t=s.trim(),n={...r};a&&a!==t&&delete n[a],n[t]=e,i(n),g(!1),b()}function w(e){o(e),c(e),u(JSON.stringify(r[e]??{},null,2)),g(!0)}async function T(){y(!0);try{await I({"registry.providers":r}),t(),P.success(`Changes saved`)}catch{P.error(`Failed to save configuration`)}finally{y(!1)}}let E=Object.keys(r).sort();return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Providers`}),(0,V.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Store provider-keyed integration config for BrowserStack and other supported remote services.`})]}),(0,V.jsxs)(W,{children:[(0,V.jsxs)(`div`,{className:`space-y-3 border border-border bg-transparent rounded-none px-4 py-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`p`,{className:`text-sm font-medium`,children:`Provider integration registry`}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Use this when a transport or integration expects provider-specific JSON keyed by provider name.`})]}),(0,V.jsxs)(O,{size:`sm`,onClick:x,children:[(0,V.jsx)(f,{className:`size-4`}),`Add Provider`]})]}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`The schema is intentionally open-ended. The dashboard keeps the editor as raw JSON, parses it locally, and the config backend validates the final object again on save.`})]}),(0,V.jsx)(`div`,{className:`space-y-3`,children:E.length===0?(0,V.jsx)(`div`,{className:`border border-dashed border-border bg-transparent rounded-none p-6 text-sm text-muted-foreground`,children:`No providers configured. Add provider JSON when a remote integration needs named credentials or settings.`}):E.map(e=>(0,V.jsx)(`div`,{className:`border border-border bg-transparent rounded-none px-4 py-3`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(`p`,{className:`font-medium`,children:e}),(0,V.jsx)(L,{variant:`secondary`,children:`Integration JSON`})]}),(0,V.jsx)(`pre`,{className:`overflow-auto rounded-none bg-muted/40 p-3 text-xs text-muted-foreground`,children:JSON.stringify(r[e]??{},null,2)})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>w(e),children:[(0,V.jsx)(d,{className:`size-4`}),`Edit`]}),(0,V.jsxs)(O,{variant:`outline`,size:`sm`,onClick:()=>i(t=>{let n={...t};return delete n[e],n}),children:[(0,V.jsx)(h,{className:`size-4`}),`Delete`]})]})]})},e))}),(0,V.jsx)(O,{size:`sm`,onClick:T,disabled:v,children:v?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]}),(0,V.jsx)(pe,{open:p,onOpenChange:e=>{g(e),e||b()},children:(0,V.jsxs)(Ce,{className:`sm:max-w-xl`,children:[(0,V.jsxs)(he,{children:[(0,V.jsx)(le,{children:a?`Edit ${a}`:`Add Provider`}),(0,V.jsx)(xe,{children:`Update the provider entry in this section draft. Use Save Changes in the section to persist it to config.`})]}),(0,V.jsxs)(`div`,{className:`space-y-4`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`provider-key`,children:`Provider Key`}),(0,V.jsx)(N,{id:`provider-key`,placeholder:`browserstack`,value:s,onChange:e=>c(e.target.value)})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`provider-json`,children:`Provider JSON`}),(0,V.jsx)(m,{id:`provider-json`,className:`min-h-[200px] font-mono text-sm`,value:l,onChange:e=>u(e.target.value)}),(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Keep provider payloads honest to the integration contract. This surface does not invent provider-specific forms.`})]})]}),(0,V.jsxs)(ge,{children:[(0,V.jsx)(O,{variant:`outline`,onClick:()=>g(!1),children:`Cancel`}),(0,V.jsx)(O,{onClick:C,children:a?`Apply Provider Changes`:`Add Provider to Section`})]})]})})]})}function Bn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Vn(e){let t=Bn(e.analytics)?e.analytics:{},n=Bn(t.passRateScope)?t.passRateScope:{},r=Bn(n.attributes)?n.attributes:{},i=[];for(let[e,[t,n]]of Object.entries(r).entries()){if(typeof n==`string`){i.push({id:`existing-${e}`,key:t,mode:`exact`,value:n});continue}Bn(n)&&typeof n.regex==`string`&&i.push({id:`existing-${e}`,key:t,mode:`regex`,value:n.regex})}return i}function Hn(e){let t={},n=new Set;for(let r of e){let e=r.key.trim(),i=r.value.trim();if(e.length>0||i.length>0){if(!e)return{error:`Attribute key is required.`};if(!i)return{error:`Value is required for ${e}.`};if(n.has(e))return{error:`Duplicate attribute key: ${e}`};if(r.mode===`regex`){try{new RegExp(i)}catch{return{error:`Invalid regex for ${e}.`}}t[e]={regex:i}}else t[e]=i;n.add(e)}}return{value:{attributes:t}}}function Un({config:e,onConfigChange:t}){let[a,c]=(0,B.useState)(()=>Vn(e)),[l,u]=(0,B.useState)(!1);function d(e,t){c(n=>n.map(n=>n.id===e?{...n,...t}:n))}function p(){c(e=>[...e,{id:`new-${Date.now()}-${e.length}`,key:``,mode:`exact`,value:``}])}function m(e){c(t=>t.filter(t=>t.id!==e))}async function g(){let e=Hn(a);if(`error`in e){P.error(e.error);return}u(!0);try{await I({"analytics.passRateScope":e.value}),t(),P.success(`Configuration saved`)}catch{P.error(`Failed to save configuration`)}finally{u(!1)}}return(0,V.jsxs)(H,{children:[(0,V.jsxs)(U,{children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold`,children:`Pass Rate Scope`}),(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Choose run attributes for scoped pass rate, flaky score, and test/suite analytics values.`})]}),(0,V.jsxs)(W,{children:[a.length===0?(0,V.jsx)(Ve,{className:`border-dashed`,children:`No scoped attributes configured. Add at least one attribute to enable scoped analytics.`}):(0,V.jsxs)(`div`,{className:`overflow-hidden border border-border`,children:[(0,V.jsxs)(`div`,{className:`hidden grid-cols-[minmax(160px,1fr)_120px_minmax(160px,1fr)_44px] gap-3 border-b border-border px-3 py-2 text-xs text-muted-foreground md:grid`,children:[(0,V.jsx)(`span`,{children:`Key`}),(0,V.jsx)(`span`,{children:`Match`}),(0,V.jsx)(`span`,{children:`Value`}),(0,V.jsx)(`span`,{})]}),(0,V.jsx)(`div`,{className:`divide-y divide-border`,children:a.map(e=>(0,V.jsxs)(`div`,{className:`grid grid-cols-1 items-end gap-3 px-3 py-3 md:grid-cols-[minmax(160px,1fr)_120px_minmax(160px,1fr)_44px]`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`analytics-scope-key-${e.id}`,className:`sr-only`,children:`Attribute key`}),(0,V.jsx)(N,{id:`analytics-scope-key-${e.id}`,"data-testid":`analytics-scope-key`,value:e.key,placeholder:`git.branch`,onChange:t=>d(e.id,{key:t.target.value})})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`analytics-scope-mode-${e.id}`,className:`sr-only`,children:`Attribute match mode`}),(0,V.jsxs)(s,{value:e.mode,onValueChange:t=>d(e.id,{mode:t}),children:[(0,V.jsx)(i,{id:`analytics-scope-mode-${e.id}`,children:(0,V.jsx)(o,{})}),(0,V.jsxs)(r,{children:[(0,V.jsx)(n,{value:`exact`,children:`Exact`}),(0,V.jsx)(n,{value:`regex`,children:`Regex`})]})]})]}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(_,{htmlFor:`analytics-scope-value-${e.id}`,className:`sr-only`,children:`Attribute value`}),(0,V.jsx)(N,{id:`analytics-scope-value-${e.id}`,"data-testid":`analytics-scope-value`,value:e.value,placeholder:e.mode===`regex`?`^(main|master)$`:`master`,onChange:t=>d(e.id,{value:t.target.value})})]}),(0,V.jsx)(O,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>m(e.id),"aria-label":`Remove ${e.key||`attribute`}`,children:(0,V.jsx)(h,{className:`size-4`})})]},e.id))})]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsxs)(O,{type:`button`,variant:`outline`,size:`sm`,onClick:p,children:[(0,V.jsx)(f,{className:`size-4`}),`Add Attribute`]}),(0,V.jsx)(O,{type:`button`,size:`sm`,onClick:g,disabled:l,children:l?(0,V.jsx)(A,{className:`size-4 animate-spin`}):`Save Changes`})]})]})]})}var Wn={"workspace:discovery":Sn,"workspace:files":Cn,"workspace:agent-rules":bn,"services:dashboard":xn,"services:cache":ct,"services:logging":lt,"services:recording":dt,"services:accessibility":ft,"services:memory":On,"registry:llms":it,"registry:targets":Mn,"registry:devices":Rn,"registry:providers":zn,"use:browser":ut,"use:timeouts":ot,"use:healing":st,"use:planner":pt,"use:log-capture":wn,"use:mobile":Dn,"use:execution-defaults":Tn,"analytics:pass-rate-scope":Un};function Gn(){g(`Config`);let e=Te(),[c]=be(),[l,u]=(0,B.useState)({}),[d,f]=(0,B.useState)(!0),[p,m]=(0,B.useState)(!1),h=(0,B.useMemo)(()=>de(c),[c]),_=(0,B.useMemo)(()=>Oe(h,c),[c,h]),v=`?${_.toString()}`,y=c.toString(),b=y===_.toString(),x=ke(h.bucket).find(e=>e.item===h.item),S=Wn[`${h.bucket}:${h.item}`];(0,B.useEffect)(()=>{b||(y.length>0&&m(!0),e(`${se.config}?${_.toString()}`,{replace:!0}))},[_,e,y,b]);async function C(){try{u((await T()).config)}catch{P.error(`Failed to load configuration`)}finally{f(!1)}}(0,B.useEffect)(()=>{C()},[]);function w(t,n){m(!1);let r=Oe({bucket:t,item:n},c);e(`${se.config}?${r.toString()}`)}return d?(0,V.jsx)(_e,{}):(0,V.jsxs)(`div`,{className:`space-y-6`,children:[(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`h2`,{className:`text-2xl font-semibold tracking-tight`,children:`Configuration`}),(0,V.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage workspace, services, registry, and runtime defaults.`})]}),(0,V.jsxs)(`div`,{className:`grid gap-0 lg:grid-cols-[minmax(240px,256px)_minmax(0,1fr)] lg:items-start`,children:[(0,V.jsx)(`aside`,{"data-config-rail":!0,className:`hidden border-r border-border pr-4 lg:block`,children:(0,V.jsx)(`div`,{className:`space-y-5 py-1`,children:Ee.map(e=>(0,V.jsx)(Kn,{bucket:e,selectedItem:h.item,onSelect:w},e))})}),(0,V.jsxs)(`main`,{"data-config-main":!0,className:`min-w-0 lg:pl-6`,children:[(0,V.jsxs)(`div`,{"data-config-page-root":!0,className:`grid gap-0`,children:[(0,V.jsx)(`section`,{"data-config-mobile-selector":!0,className:`border-b border-border pb-4 lg:hidden`,children:(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Select Setting`}),(0,V.jsxs)(s,{value:`${h.bucket}:${h.item}`,onValueChange:e=>{let[t,n]=e.split(`:`);w(t,n)},children:[(0,V.jsx)(i,{"aria-label":`Select config setting`,children:(0,V.jsx)(o,{})}),(0,V.jsx)(r,{children:Ee.map(e=>(0,V.jsxs)(a,{children:[(0,V.jsx)(t,{children:ke(e)[0]?.bucketLabel??e}),ke(e).map(e=>(0,V.jsx)(n,{value:`${e.bucket}:${e.item}`,children:e.itemLabel},`${e.bucket}:${e.item}`))]},e))})]})]})}),(0,V.jsxs)(`section`,{className:`space-y-4 pt-4 lg:pt-0`,children:[p&&(0,V.jsx)(`div`,{"data-config-invalid-notice":!0,className:`border-b border-border py-3 text-sm text-muted-foreground`,children:(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(`span`,{children:`Setting not found.`}),(0,V.jsx)(`span`,{children:`Showing the closest valid config section instead.`}),(0,V.jsx)(L,{variant:`secondary`,className:`font-mono text-[11px]`,children:v})]})}),(0,V.jsxs)(`header`,{className:`space-y-3`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsx)(L,{variant:`secondary`,children:x.bucketLabel}),(0,V.jsx)(L,{variant:`outline`,children:x.itemLabel})]}),(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`h3`,{className:`text-xl font-semibold tracking-tight`,children:x.title}),(0,V.jsx)(`p`,{className:`max-w-3xl text-sm text-muted-foreground`,children:x.description})]}),(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:x.fieldPaths.map(e=>(0,V.jsx)(L,{variant:`outline`,className:`font-mono text-[11px]`,children:e},e))})]})]})]}),(0,V.jsx)(`div`,{className:`mt-4`,children:S?(0,V.jsx)(S,{config:l,onConfigChange:C}):(0,V.jsx)(qn,{item:x})})]})]})]})}function Kn({bucket:e,selectedItem:t,onSelect:n}){let r=ke(e);return(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`p`,{className:`px-3 text-xs text-muted-foreground`,children:r[0]?.bucketLabel??e}),(0,V.jsx)(`div`,{className:`space-y-1`,children:r.map(e=>(0,V.jsx)(`button`,{type:`button`,onClick:()=>n(e.bucket,e.item),className:M(`relative w-full border-l-2 border-transparent px-3 py-2 text-left text-sm transition-colors`,e.item===t?`border-primary text-foreground font-medium`:`text-muted-foreground hover:border-border hover:text-foreground`),children:e.itemLabel},`${e.bucket}:${e.item}`))})]})}function qn({item:e}){return(0,V.jsxs)(Ve,{className:`space-y-2`,children:[(0,V.jsx)(`p`,{className:`text-base font-medium text-foreground`,children:`Missing config surface`}),(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No editor is registered for `,(0,V.jsxs)(`span`,{className:`font-mono`,children:[e.bucket,`/`,e.item]}),`.`]})]})}export{Gn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{qn as e}from"./index-B3xPCIyH.js";var t=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`[`,close:`]`},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:`"`,close:`"`,notIn:[`string`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*#pragma\\s+region\\b`),end:RegExp(`^\\s*#pragma\\s+endregion\\b`)}}},t={defaultToken:``,tokenPostfix:`.cpp`,brackets:[{token:`delimiter.curly`,open:`{`,close:`}`},{token:`delimiter.parenthesis`,open:`(`,close:`)`},{token:`delimiter.square`,open:`[`,close:`]`},{token:`delimiter.angle`,open:`<`,close:`>`}],keywords:`abstract.amp.array.auto.bool.break.case.catch.char.class.const.constexpr.const_cast.continue.cpu.decltype.default.delegate.delete.do.double.dynamic_cast.each.else.enum.event.explicit.export.extern.false.final.finally.float.for.friend.gcnew.generic.goto.if.in.initonly.inline.int.interface.interior_ptr.internal.literal.long.mutable.namespace.new.noexcept.nullptr.__nullptr.operator.override.partial.pascal.pin_ptr.private.property.protected.public.ref.register.reinterpret_cast.restrict.return.safe_cast.sealed.short.signed.sizeof.static.static_assert.static_cast.struct.switch.template.this.thread_local.throw.tile_static.true.try.typedef.typeid.typename.union.unsigned.using.virtual.void.volatile.wchar_t.where.while._asm._based._cdecl._declspec._fastcall._if_exists._if_not_exists._inline._multiple_inheritance._pascal._single_inheritance._stdcall._virtual_inheritance._w64.__abstract.__alignof.__asm.__assume.__based.__box.__builtin_alignof.__cdecl.__clrcall.__declspec.__delegate.__event.__except.__fastcall.__finally.__forceinline.__gc.__hook.__identifier.__if_exists.__if_not_exists.__inline.__int128.__int16.__int32.__int64.__int8.__interface.__leave.__m128.__m128d.__m128i.__m256.__m256d.__m256i.__m512.__m512d.__m512i.__m64.__multiple_inheritance.__newslot.__nogc.__noop.__nounwind.__novtordisp.__pascal.__pin.__pragma.__property.__ptr32.__ptr64.__raise.__restrict.__resume.__sealed.__single_inheritance.__stdcall.__super.__thiscall.__try.__try_cast.__typeof.__unaligned.__unhook.__uuidof.__value.__virtual_inheritance.__w64.__wchar_t`.split(`.`),operators:`=.>.<.!.~.?.:.==.<=.>=.!=.&&.||.++.--.+.-.*./.&.|.^.%.<<.>>.+=.-=.*=./=.&=.|=.^=.%=.<<=.>>=`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[0abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\"(?:([^ ()\\\t]*))\(/,{token:`string.raw.begin`,next:`@raw.$1`}],[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],[/^\s*#\s*include/,{token:`keyword.directive.include`,next:`@include`}],[/^\s*#\s*\w+/,`keyword.directive`],{include:`@whitespace`},[/\[\s*\[/,{token:`annotation`,next:`@annotation`}],[/[{}()<>\[\]]/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,`number.float`],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,`number.float`],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,`number.hex`],[/0[0-7']*[0-7](@integersuffix)/,`number.octal`],[/0[bB][0-1']*[0-1](@integersuffix)/,`number.binary`],[/\d[\d']*\d(@integersuffix)/,`number`],[/\d(@integersuffix)/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string`],[/'[^\\']'/,`string`],[/(')(@escapes)(')/,[`string`,`string.escape`,`string`]],[/'/,`string.invalid`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@doccomment`],[/\/\*/,`comment`,`@comment`],[/\/\/.*\\$/,`comment`,`@linecomment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],linecomment:[[/.*[^\\]$/,`comment`,`@pop`],[/[^]+/,`comment`]],doccomment:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],raw:[[/[^)]+/,`string.raw`],[/\)$S2\"/,{token:`string.raw.end`,next:`@pop`}],[/\)/,`string.raw`]],annotation:[{include:`@whitespace`},[/using|alignas/,`keyword`],[/[a-zA-Z0-9_]+/,`annotation`],[/[,:]/,`delimiter`],[/[()]/,`@brackets`],[/\]\s*\]/,{token:`annotation`,next:`@pop`}]],include:[[/(\s*)(<)([^<>]*)(>)/,[``,`keyword.directive.include.begin`,`string.include.identifier`,{token:`keyword.directive.include.end`,next:`@pop`}]],[/(\s*)(")([^"]*)(")/,[``,`keyword.directive.include.begin`,`string.include.identifier`,{token:`keyword.directive.include.end`,next:`@pop`}]]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:`"`,close:`"`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],folding:{markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},t={defaultToken:``,tokenPostfix:`.cs`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],keywords:`extern.alias.using.bool.decimal.sbyte.byte.short.ushort.int.uint.long.ulong.char.float.double.object.dynamic.string.assembly.is.as.ref.out.this.base.new.typeof.void.checked.unchecked.default.delegate.var.const.if.else.switch.case.while.do.for.foreach.in.break.continue.goto.return.throw.try.catch.finally.lock.yield.from.let.where.join.on.equals.into.orderby.ascending.descending.select.group.by.namespace.partial.class.field.event.method.param.public.protected.internal.private.abstract.sealed.static.struct.readonly.volatile.virtual.override.params.get.set.add.remove.operator.true.false.implicit.explicit.interface.enum.null.async.await.fixed.sizeof.stackalloc.unsafe.nameof.when`.split(`.`),namespaceFollows:[`namespace`,`using`],parenFollows:[`if`,`for`,`while`,`switch`,`foreach`,`using`,`catch`,`when`],operators:`=.??.||.&&.|.^.&.==.!=.<=.>=.<<.+.-.*./.%.!.~.++.--.+=.-=.*=./=.%=.&=.|=.^=.<<=.>>=.>>.=>`.split(`.`),symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:`keyword.$0`,next:`@namespace`},"@keywords":{token:`keyword.$0`,next:`@qualified`},"@default":{token:`identifier`,next:`@qualified`}}}],{include:`@whitespace`},[/}/,{cases:{"$S2==interpolatedstring":{token:`string.quote`,next:`@pop`},"$S2==litinterpstring":{token:`string.quote`,next:`@pop`},"@default":`@brackets`}}],[/[{}()\[\]]/,`@brackets`],[/[<>](?!@symbols)/,`@brackets`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,`number.float`],[/0[xX][0-9a-fA-F_]+/,`number.hex`],[/0[bB][01_]+/,`number.hex`],[/[0-9_]+/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/"/,{token:`string.quote`,next:`@string`}],[/\$\@"/,{token:`string.quote`,next:`@litinterpstring`}],[/\@"/,{token:`string.quote`,next:`@litstring`}],[/\$"/,{token:`string.quote`,next:`@interpolatedstring`}],[/'[^\\']'/,`string`],[/(')(@escapes)(')/,[`string`,`string.escape`,`string`]],[/'/,`string.invalid`]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:`keyword.$0`},"@default":`identifier`}}],[/\./,`delimiter`],[``,``,`@pop`]],namespace:[{include:`@whitespace`},[/[A-Z]\w*/,`namespace`],[/[\.=]/,`delimiter`],[``,``,`@pop`]],comment:[[/[^\/*]+/,`comment`],[`\\*/`,`comment`,`@pop`],[/[\/*]/,`comment`]],string:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,{token:`string.quote`,next:`@pop`}]],litstring:[[/[^"]+/,`string`],[/""/,`string.escape`],[/"/,{token:`string.quote`,next:`@pop`}]],litinterpstring:[[/[^"{]+/,`string`],[/""/,`string.escape`],[/{{/,`string.escape`],[/}}/,`string.escape`],[/{/,{token:`string.quote`,next:`root.litinterpstring`}],[/"/,{token:`string.quote`,next:`@pop`}]],interpolatedstring:[[/[^\\"{]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/{{/,`string.escape`],[/}}/,`string.escape`],[/{/,{token:`string.quote`,next:`root.interpolatedstring`}],[/"/,{token:`string.quote`,next:`@pop`}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,`directive.csx`],[/^[ \t\v\f]*#\w.*$/,`namespace.cpp`],[/[ \t\v\f\r\n]+/,``],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={brackets:[],autoClosingPairs:[],surroundingPairs:[]},t={keywords:[],typeKeywords:[],tokenPostfix:`.csp`,operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,`string.quote`],[/connect-src/,`string.quote`],[/default-src/,`string.quote`],[/font-src/,`string.quote`],[/frame-src/,`string.quote`],[/img-src/,`string.quote`],[/manifest-src/,`string.quote`],[/media-src/,`string.quote`],[/object-src/,`string.quote`],[/script-src/,`string.quote`],[/style-src/,`string.quote`],[/worker-src/,`string.quote`],[/base-uri/,`string.quote`],[/plugin-types/,`string.quote`],[/sandbox/,`string.quote`],[/disown-opener/,`string.quote`],[/form-action/,`string.quote`],[/frame-ancestors/,`string.quote`],[/report-uri/,`string.quote`],[/report-to/,`string.quote`],[/upgrade-insecure-requests/,`string.quote`],[/block-all-mixed-content/,`string.quote`],[/require-sri-for/,`string.quote`],[/reflected-xss/,`string.quote`],[/referrer/,`string.quote`],[/policy-uri/,`string.quote`],[/'self'/,`string.quote`],[/'unsafe-inline'/,`string.quote`],[/'unsafe-eval'/,`string.quote`],[/'strict-dynamic'/,`string.quote`],[/'unsafe-hashed-attributes'/,`string.quote`]]}};export{e as conf,t as language};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var e={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`,notIn:[`string`,`comment`]},{open:`[`,close:`]`,notIn:[`string`,`comment`]},{open:`(`,close:`)`,notIn:[`string`,`comment`]},{open:`"`,close:`"`,notIn:[`string`,`comment`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{markers:{start:RegExp(`^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/`),end:RegExp(`^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/`)}}},t={defaultToken:``,tokenPostfix:`.css`,ws:`[
|
|
2
|
+
\r\f]*`,identifier:`-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*`,brackets:[{open:`{`,close:`}`,token:`delimiter.bracket`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],tokenizer:{root:[{include:`@selector`}],selector:[{include:`@comments`},{include:`@import`},{include:`@strings`},[`[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)`,{token:`keyword`,next:`@keyframedeclaration`}],[`[@](page|content|font-face|-moz-document)`,{token:`keyword`}],[`[@](charset|namespace)`,{token:`keyword`,next:`@declarationbody`}],[`(url-prefix)(\\()`,[`attribute.value`,{token:`delimiter.parenthesis`,next:`@urldeclaration`}]],[`(url)(\\()`,[`attribute.value`,{token:`delimiter.parenthesis`,next:`@urldeclaration`}]],{include:`@selectorname`},[`[\\*]`,`tag`],[`[>\\+,]`,`delimiter`],[`\\[`,{token:`delimiter.bracket`,next:`@selectorattribute`}],[`{`,{token:`delimiter.bracket`,next:`@selectorbody`}]],selectorbody:[{include:`@comments`},[`[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))`,`attribute.name`,`@rulevalue`],[`}`,{token:`delimiter.bracket`,next:`@pop`}]],selectorname:[[`(\\.|#(?=[^{])|%|(@identifier)|:)+`,`tag`]],selectorattribute:[{include:`@term`},[`]`,{token:`delimiter.bracket`,next:`@pop`}]],term:[{include:`@comments`},[`(url-prefix)(\\()`,[`attribute.value`,{token:`delimiter.parenthesis`,next:`@urldeclaration`}]],[`(url)(\\()`,[`attribute.value`,{token:`delimiter.parenthesis`,next:`@urldeclaration`}]],{include:`@functioninvocation`},{include:`@numbers`},{include:`@name`},{include:`@strings`},[`([<>=\\+\\-\\*\\/\\^\\|\\~,])`,`delimiter`],[`,`,`delimiter`]],rulevalue:[{include:`@comments`},{include:`@strings`},{include:`@term`},[`!important`,`keyword`],[`;`,`delimiter`,`@pop`],[`(?=})`,{token:``,next:`@pop`}]],warndebug:[[`[@](warn|debug)`,{token:`keyword`,next:`@declarationbody`}]],import:[[`[@](import)`,{token:`keyword`,next:`@declarationbody`}]],urldeclaration:[{include:`@strings`},[`[^)\r
|
|
3
|
+
]+`,`string`],[`\\)`,{token:`delimiter.parenthesis`,next:`@pop`}]],parenthizedterm:[{include:`@term`},[`\\)`,{token:`delimiter.parenthesis`,next:`@pop`}]],declarationbody:[{include:`@term`},[`;`,`delimiter`,`@pop`],[`(?=})`,{token:``,next:`@pop`}]],comments:[[`\\/\\*`,`comment`,`@comment`],[`\\/\\/+.*`,`comment`]],comment:[[`\\*\\/`,`comment`,`@pop`],[/[^*/]+/,`comment`],[/./,`comment`]],name:[[`@identifier`,`attribute.value`]],numbers:[[`-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?`,{token:`attribute.value.number`,next:`@units`}],[`#[0-9a-fA-F_]+(?!\\w)`,`attribute.value.hex`]],units:[[`(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?`,`attribute.value.unit`,`@pop`]],keyframedeclaration:[[`@identifier`,`attribute.value`],[`{`,{token:`delimiter.bracket`,switchTo:`@keyframebody`}]],keyframebody:[{include:`@term`},[`{`,{token:`delimiter.bracket`,next:`@selectorbody`}],[`}`,{token:`delimiter.bracket`,next:`@pop`}]],functioninvocation:[[`@identifier\\(`,{token:`attribute.value`,next:`@functionarguments`}]],functionarguments:[[`\\$@identifier@ws:`,`attribute.name`],[`[,]`,`delimiter`],{include:`@term`},[`\\)`,{token:`attribute.value`,next:`@pop`}]],strings:[[`~?"`,{token:`string`,next:`@stringenddoublequote`}],[`~?'`,{token:`string`,next:`@stringendquote`}]],stringenddoublequote:[[`\\\\.`,`string`],[`"`,{token:`string`,next:`@pop`}],[/[^\\"]+/,`string`],[`.`,`string`]],stringendquote:[[`\\\\.`,`string`],[`'`,{token:`string`,next:`@pop`}],[/[^\\']+/,`string`],[`.`,`string`]]}};export{e as conf,t as language};
|