@neuroverseos/nv-sim 0.1.2 → 0.1.5
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/README.md +562 -68
- package/dist/adapters/mirofish.js +461 -0
- package/dist/adapters/scienceclaw.js +750 -0
- package/dist/assets/index-B64NuIXu.css +1 -0
- package/dist/assets/index-DbzSnYxr.js +532 -0
- package/dist/assets/mirotir-logo-DUexumBH.svg +185 -0
- package/dist/assets/reportEngine-DKWTrP6-.js +1 -0
- package/dist/components/ConstraintsPanel.js +11 -0
- package/dist/components/StakeholderBuilder.js +32 -0
- package/dist/components/ui/badge.js +24 -0
- package/dist/components/ui/button.js +70 -0
- package/dist/components/ui/card.js +57 -0
- package/dist/components/ui/input.js +44 -0
- package/dist/components/ui/label.js +45 -0
- package/dist/components/ui/select.js +70 -0
- package/dist/engine/aiProvider.js +681 -0
- package/dist/engine/auditTrace.js +352 -0
- package/dist/engine/behavioralAnalysis.js +605 -0
- package/dist/engine/cli.js +1408 -299
- package/dist/engine/dynamicsGovernance.js +588 -0
- package/dist/engine/fullGovernedLoop.js +367 -0
- package/dist/engine/governance.js +8 -3
- package/dist/engine/governedSimulation.js +114 -17
- package/dist/engine/index.js +56 -1
- package/dist/engine/liveAdapter.js +342 -0
- package/dist/engine/liveVisualizer.js +4284 -0
- package/dist/engine/metrics/science.metrics.js +335 -0
- package/dist/engine/narrativeInjection.js +360 -0
- package/dist/engine/policyEnforcement.js +1611 -0
- package/dist/engine/policyEngine.js +799 -0
- package/dist/engine/primeRadiant.js +540 -0
- package/dist/engine/reasoningEngine.js +57 -3
- package/dist/engine/reportEngine.js +97 -0
- package/dist/engine/scenarioCapsule.js +56 -0
- package/dist/engine/scenarioComparison.js +463 -0
- package/dist/engine/scenarioLibrary.js +248 -0
- package/dist/engine/swarmSimulation.js +54 -1
- package/dist/engine/worldComparison.js +358 -0
- package/dist/engine/worldStorage.js +232 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.html +23 -0
- package/dist/lib/reasoningEngine.js +290 -0
- package/dist/lib/simulationAdapter.js +686 -0
- package/dist/lib/swarmParser.js +291 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/utils.js +8 -0
- package/dist/placeholder.svg +1 -0
- package/dist/robots.txt +14 -0
- package/dist/runtime/govern.js +473 -0
- package/dist/runtime/index.js +75 -0
- package/dist/runtime/types.js +11 -0
- package/package.json +17 -12
- package/variants/.gitkeep +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 320" fill="none">
|
|
2
|
+
<!--
|
|
3
|
+
Mirotir Logo
|
|
4
|
+
|
|
5
|
+
Concept: School of fish (swarm) forming a circular cluster
|
|
6
|
+
with a horizontal line of teal fish cutting through — the
|
|
7
|
+
"reasoning line" that makes sense of the crowd.
|
|
8
|
+
|
|
9
|
+
Dark blue fish = the simulation (MiroFish, the crowd)
|
|
10
|
+
Teal fish line = the reasoning (Echelon, the brain)
|
|
11
|
+
Breakaway fish = the decision emerging from analysis
|
|
12
|
+
|
|
13
|
+
Typeface: Bold geometric sans-serif (Neue Haas Grotesk style)
|
|
14
|
+
Uniform stroke widths, clean, constructed, modern.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
<defs>
|
|
18
|
+
<!-- Fish shape template - dark blue swarm -->
|
|
19
|
+
<g id="fish-dark">
|
|
20
|
+
<ellipse rx="10" ry="6" fill="#1B5E7B"/>
|
|
21
|
+
<polygon points="10,-5 17,0 10,5" fill="#1B5E7B"/>
|
|
22
|
+
</g>
|
|
23
|
+
<!-- Fish shape template - dark blue small -->
|
|
24
|
+
<g id="fish-dark-sm">
|
|
25
|
+
<ellipse rx="7" ry="4" fill="#1B5E7B"/>
|
|
26
|
+
<polygon points="7,-3.5 12,0 7,3.5" fill="#1B5E7B"/>
|
|
27
|
+
</g>
|
|
28
|
+
<!-- Fish shape template - teal reasoning line -->
|
|
29
|
+
<g id="fish-teal">
|
|
30
|
+
<ellipse rx="11" ry="7" fill="#5BC0BE"/>
|
|
31
|
+
<polygon points="11,-5.5 19,0 11,5.5" fill="#5BC0BE"/>
|
|
32
|
+
<circle cx="-3" cy="-1" r="1.5" fill="white"/>
|
|
33
|
+
</g>
|
|
34
|
+
<!-- Fish shape template - teal small -->
|
|
35
|
+
<g id="fish-teal-sm">
|
|
36
|
+
<ellipse rx="8" ry="5" fill="#6FDBD8"/>
|
|
37
|
+
<polygon points="8,-4 14,0 8,4" fill="#6FDBD8"/>
|
|
38
|
+
<circle cx="-2" cy="-1" r="1.2" fill="white"/>
|
|
39
|
+
</g>
|
|
40
|
+
</defs>
|
|
41
|
+
|
|
42
|
+
<!-- ================================ -->
|
|
43
|
+
<!-- SWARM CLUSTER (circular school) -->
|
|
44
|
+
<!-- ================================ -->
|
|
45
|
+
|
|
46
|
+
<!-- Top arc of swarm -->
|
|
47
|
+
<use href="#fish-dark" x="100" y="55" transform="rotate(-5,100,55)"/>
|
|
48
|
+
<use href="#fish-dark-sm" x="122" y="48" transform="rotate(8,122,48)"/>
|
|
49
|
+
<use href="#fish-dark" x="145" y="42" transform="rotate(-3,145,42)"/>
|
|
50
|
+
<use href="#fish-dark-sm" x="170" y="38" transform="rotate(12,170,38)"/>
|
|
51
|
+
<use href="#fish-dark" x="192" y="44" transform="rotate(-8,192,44)"/>
|
|
52
|
+
<use href="#fish-dark-sm" x="215" y="50" transform="rotate(5,215,50)"/>
|
|
53
|
+
|
|
54
|
+
<!-- Upper middle row -->
|
|
55
|
+
<use href="#fish-dark" x="78" y="75" transform="rotate(10,78,75)"/>
|
|
56
|
+
<use href="#fish-dark" x="108" y="72" transform="rotate(-6,108,72)"/>
|
|
57
|
+
<use href="#fish-dark-sm" x="135" y="68" transform="rotate(3,135,68)"/>
|
|
58
|
+
<use href="#fish-dark" x="160" y="65" transform="rotate(-10,160,65)"/>
|
|
59
|
+
<use href="#fish-dark-sm" x="185" y="62" transform="rotate(7,185,62)"/>
|
|
60
|
+
<use href="#fish-dark" x="208" y="68" transform="rotate(-4,208,68)"/>
|
|
61
|
+
<use href="#fish-dark-sm" x="228" y="75" transform="rotate(9,228,75)"/>
|
|
62
|
+
|
|
63
|
+
<!-- Middle-upper row -->
|
|
64
|
+
<use href="#fish-dark-sm" x="68" y="95" transform="rotate(-7,68,95)"/>
|
|
65
|
+
<use href="#fish-dark" x="92" y="90" transform="rotate(4,92,90)"/>
|
|
66
|
+
<use href="#fish-dark" x="118" y="88" transform="rotate(-2,118,88)"/>
|
|
67
|
+
<use href="#fish-dark-sm" x="145" y="85" transform="rotate(11,145,85)"/>
|
|
68
|
+
<use href="#fish-dark" x="172" y="82" transform="rotate(-9,172,82)"/>
|
|
69
|
+
<use href="#fish-dark" x="198" y="86" transform="rotate(6,198,86)"/>
|
|
70
|
+
<use href="#fish-dark-sm" x="222" y="92" transform="rotate(-5,222,92)"/>
|
|
71
|
+
<use href="#fish-dark" x="242" y="98" transform="rotate(3,242,98)"/>
|
|
72
|
+
|
|
73
|
+
<!-- Pre-reasoning row -->
|
|
74
|
+
<use href="#fish-dark" x="58" y="112" transform="rotate(8,58,112)"/>
|
|
75
|
+
<use href="#fish-dark-sm" x="85" y="108" transform="rotate(-3,85,108)"/>
|
|
76
|
+
<use href="#fish-dark" x="112" y="105" transform="rotate(5,112,105)"/>
|
|
77
|
+
<use href="#fish-dark" x="140" y="103" transform="rotate(-7,140,103)"/>
|
|
78
|
+
<use href="#fish-dark-sm" x="168" y="100" transform="rotate(2,168,100)"/>
|
|
79
|
+
<use href="#fish-dark" x="195" y="104" transform="rotate(-11,195,104)"/>
|
|
80
|
+
<use href="#fish-dark-sm" x="218" y="108" transform="rotate(4,218,108)"/>
|
|
81
|
+
<use href="#fish-dark" x="240" y="115" transform="rotate(-6,240,115)"/>
|
|
82
|
+
|
|
83
|
+
<!-- ================================ -->
|
|
84
|
+
<!-- REASONING LINE (teal fish) -->
|
|
85
|
+
<!-- The line that cuts through -->
|
|
86
|
+
<!-- ================================ -->
|
|
87
|
+
|
|
88
|
+
<use href="#fish-teal" x="32" y="132"/>
|
|
89
|
+
<use href="#fish-teal" x="65" y="130" transform="rotate(-2,65,130)"/>
|
|
90
|
+
<use href="#fish-teal" x="100" y="130"/>
|
|
91
|
+
<use href="#fish-teal" x="135" y="129" transform="rotate(2,135,129)"/>
|
|
92
|
+
<use href="#fish-teal" x="170" y="130"/>
|
|
93
|
+
<use href="#fish-teal" x="205" y="130" transform="rotate(-1,205,130)"/>
|
|
94
|
+
<use href="#fish-teal" x="240" y="131" transform="rotate(1,240,131)"/>
|
|
95
|
+
|
|
96
|
+
<!-- Breakaway fish — the decision emerging -->
|
|
97
|
+
<use href="#fish-teal-sm" x="282" y="130" transform="rotate(-3,282,130)"/>
|
|
98
|
+
|
|
99
|
+
<!-- ================================ -->
|
|
100
|
+
<!-- SWARM CLUSTER (below reasoning) -->
|
|
101
|
+
<!-- ================================ -->
|
|
102
|
+
|
|
103
|
+
<!-- Post-reasoning row -->
|
|
104
|
+
<use href="#fish-dark" x="60" y="152" transform="rotate(-4,60,152)"/>
|
|
105
|
+
<use href="#fish-dark-sm" x="88" y="148" transform="rotate(7,88,148)"/>
|
|
106
|
+
<use href="#fish-dark" x="115" y="150" transform="rotate(-9,115,150)"/>
|
|
107
|
+
<use href="#fish-dark" x="142" y="153" transform="rotate(3,142,153)"/>
|
|
108
|
+
<use href="#fish-dark-sm" x="170" y="155" transform="rotate(-6,170,155)"/>
|
|
109
|
+
<use href="#fish-dark" x="198" y="152" transform="rotate(5,198,152)"/>
|
|
110
|
+
<use href="#fish-dark-sm" x="222" y="148" transform="rotate(-2,222,148)"/>
|
|
111
|
+
<use href="#fish-dark" x="245" y="152" transform="rotate(8,245,152)"/>
|
|
112
|
+
|
|
113
|
+
<!-- Lower-middle row -->
|
|
114
|
+
<use href="#fish-dark-sm" x="72" y="170" transform="rotate(6,72,170)"/>
|
|
115
|
+
<use href="#fish-dark" x="98" y="168" transform="rotate(-8,98,168)"/>
|
|
116
|
+
<use href="#fish-dark" x="128" y="172" transform="rotate(4,128,172)"/>
|
|
117
|
+
<use href="#fish-dark-sm" x="155" y="175" transform="rotate(-5,155,175)"/>
|
|
118
|
+
<use href="#fish-dark" x="180" y="172" transform="rotate(10,180,172)"/>
|
|
119
|
+
<use href="#fish-dark-sm" x="205" y="168" transform="rotate(-3,205,168)"/>
|
|
120
|
+
<use href="#fish-dark" x="230" y="170" transform="rotate(7,230,170)"/>
|
|
121
|
+
|
|
122
|
+
<!-- Lower row -->
|
|
123
|
+
<use href="#fish-dark" x="85" y="192" transform="rotate(-6,85,192)"/>
|
|
124
|
+
<use href="#fish-dark-sm" x="112" y="190" transform="rotate(9,112,190)"/>
|
|
125
|
+
<use href="#fish-dark" x="138" y="195" transform="rotate(-4,138,195)"/>
|
|
126
|
+
<use href="#fish-dark" x="165" y="192" transform="rotate(2,165,192)"/>
|
|
127
|
+
<use href="#fish-dark-sm" x="190" y="188" transform="rotate(-7,190,188)"/>
|
|
128
|
+
<use href="#fish-dark" x="215" y="192" transform="rotate(5,215,192)"/>
|
|
129
|
+
|
|
130
|
+
<!-- Bottom arc -->
|
|
131
|
+
<use href="#fish-dark-sm" x="100" y="210" transform="rotate(3,100,210)"/>
|
|
132
|
+
<use href="#fish-dark" x="128" y="212" transform="rotate(-8,128,212)"/>
|
|
133
|
+
<use href="#fish-dark-sm" x="155" y="215" transform="rotate(6,155,215)"/>
|
|
134
|
+
<use href="#fish-dark" x="182" y="212" transform="rotate(-2,182,212)"/>
|
|
135
|
+
<use href="#fish-dark-sm" x="205" y="208" transform="rotate(4,205,208)"/>
|
|
136
|
+
|
|
137
|
+
<!-- ================================ -->
|
|
138
|
+
<!-- WORDMARK: MIROTIR -->
|
|
139
|
+
<!-- Bold geometric sans-serif -->
|
|
140
|
+
<!-- Neue Haas Grotesk style -->
|
|
141
|
+
<!-- Uniform stroke, constructed -->
|
|
142
|
+
<!-- ================================ -->
|
|
143
|
+
|
|
144
|
+
<g transform="translate(340, 100)">
|
|
145
|
+
<!-- M -->
|
|
146
|
+
<path d="M0,130 L0,0 L8,0 L8,130 L0,130 Z" fill="#1B5E7B"/>
|
|
147
|
+
<path d="M8,0 L36,50 L36,42 L14,0 L8,0 Z" fill="#1B5E7B"/>
|
|
148
|
+
<path d="M36,42 L36,50 L64,0 L58,0 L36,42 Z" fill="#1B5E7B"/>
|
|
149
|
+
<path d="M58,0 L66,0 L66,130 L58,130 Z" fill="#1B5E7B"/>
|
|
150
|
+
|
|
151
|
+
<!-- I -->
|
|
152
|
+
<path d="M82,0 L90,0 L90,130 L82,130 Z" fill="#1B5E7B"/>
|
|
153
|
+
|
|
154
|
+
<!-- R -->
|
|
155
|
+
<path d="M106,0 L114,0 L114,130 L106,130 Z" fill="#1B5E7B"/>
|
|
156
|
+
<path d="M114,0 L148,0 Q162,0 162,22 Q162,44 148,44 L114,44 L114,36 L146,36 Q154,36 154,22 Q154,8 146,8 L114,8 Z" fill="#1B5E7B"/>
|
|
157
|
+
<path d="M134,44 L164,130 L155,130 L126,46 Z" fill="#1B5E7B"/>
|
|
158
|
+
|
|
159
|
+
<!-- O -->
|
|
160
|
+
<path d="M178,0 L214,0 Q232,0 232,18 L232,112 Q232,130 214,130 L178,130 Q160,130 160,112 L160,18 Q160,0 178,0 Z M178,8 Q168,8 168,18 L168,112 Q168,122 178,122 L214,122 Q224,122 224,112 L224,18 Q224,8 214,8 Z" fill="#1B5E7B"/>
|
|
161
|
+
|
|
162
|
+
<!-- T -->
|
|
163
|
+
<path d="M244,0 L302,0 L302,8 L277,8 L277,130 L269,130 L269,8 L244,8 Z" fill="#1B5E7B"/>
|
|
164
|
+
|
|
165
|
+
<!-- I -->
|
|
166
|
+
<path d="M314,0 L322,0 L322,130 L314,130 Z" fill="#1B5E7B"/>
|
|
167
|
+
|
|
168
|
+
<!-- R -->
|
|
169
|
+
<path d="M338,0 L346,0 L346,130 L338,130 Z" fill="#1B5E7B"/>
|
|
170
|
+
<path d="M346,0 L380,0 Q394,0 394,22 Q394,44 380,44 L346,44 L346,36 L378,36 Q386,36 386,22 Q386,8 378,8 L346,8 Z" fill="#1B5E7B"/>
|
|
171
|
+
<path d="M366,44 L396,130 L387,130 L358,46 Z" fill="#1B5E7B"/>
|
|
172
|
+
</g>
|
|
173
|
+
|
|
174
|
+
<!-- ================================ -->
|
|
175
|
+
<!-- TAGLINE -->
|
|
176
|
+
<!-- ================================ -->
|
|
177
|
+
|
|
178
|
+
<text x="340" y="268"
|
|
179
|
+
font-family="'Helvetica Neue', 'Arial', sans-serif"
|
|
180
|
+
font-size="14"
|
|
181
|
+
font-weight="400"
|
|
182
|
+
letter-spacing="3.5"
|
|
183
|
+
fill="#5BC0BE">EXPLORE DECISIONS BEFORE REALITY DOES</text>
|
|
184
|
+
|
|
185
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as d,A as m,e as u,a as v}from"./index-DbzSnYxr.js";function p(s){const e=s.governed,i=s.governanceStats,c=e.swarm.rounds.map((a,t)=>{var o;return{round:a.round,reactions:a.reactions.map(n=>({agent:n.stakeholder_id,action:n.reaction,impact:n.impact,verdict:void 0})),interventions:((o=a.emergent_dynamics)==null?void 0:o.filter(n=>n.includes("[BLOCK]")||n.includes("[PAUSE]")||n.includes("CIRCUIT BREAKER")||n.includes("intervention")))??[]}}),r=e.swarm.rounds.flatMap(a=>(a.emergent_dynamics??[]).filter(t=>t.includes("[BLOCK]")||t.includes("[PAUSE]")||t.includes("GATE")||t.includes("Rebalanced")||t.includes("Capped"))),l={avgImpact:e.metrics.avgImpact,collapseProbability:e.metrics.collapseProbability,stabilityScore:e.metrics.stabilityScore,maxVolatility:e.metrics.maxVolatility,peakNegativeSentiment:e.metrics.peakNegativeSentiment};return{scenario:s.scenario,rounds:c,metrics:l,interventions:r,governanceStats:{totalEvaluations:i.totalEvaluations,blocks:i.verdicts.block,pauses:i.verdicts.pause,allows:i.verdicts.allow,rulesFired:i.rulesFired}}}async function y(s,e={}){const i=p(s),c=e.aiEnabled??!1,r=c?e.provider??"deterministic":"deterministic",l=d(r),a=m.find(o=>o.id==="ai_analyst"),t=await u(a,"generate_report",async()=>c&&r!=="deterministic"?l.summarize(i):v(i));return{report:t.result,governance:t,aiUsed:c&&r!=="deterministic",provider:r}}export{p as extractTrace,y as generateGovernedReport};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const card_1 = require("@/components/ui/card");
|
|
5
|
+
const input_1 = require("@/components/ui/input");
|
|
6
|
+
const select_1 = require("@/components/ui/select");
|
|
7
|
+
const label_1 = require("@/components/ui/label");
|
|
8
|
+
const ConstraintsPanel = ({ values, onChange }) => {
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)(card_1.Card, { className: "border-border", children: [(0, jsx_runtime_1.jsx)(card_1.CardHeader, { className: "pb-3", children: (0, jsx_runtime_1.jsx)(card_1.CardTitle, { className: "text-base", children: "Rules & Limits" }) }), (0, jsx_runtime_1.jsxs)(card_1.CardContent, { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(label_1.Label, { className: "text-xs text-muted-foreground", children: "Time Horizon" }), (0, jsx_runtime_1.jsx)(input_1.Input, { placeholder: "e.g. 30 days, 6 months", value: values.timeHorizon, onChange: (e) => onChange({ ...values, timeHorizon: e.target.value }), className: "mt-1" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(label_1.Label, { className: "text-xs text-muted-foreground", children: "Risk Tolerance" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: values.riskTolerance, onValueChange: (v) => onChange({ ...values, riskTolerance: v }), children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { className: "mt-1", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, {}) }), (0, jsx_runtime_1.jsxs)(select_1.SelectContent, { children: [(0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "conservative", children: "Conservative" }), (0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "moderate", children: "Moderate" }), (0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "aggressive", children: "Aggressive" })] })] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(label_1.Label, { className: "text-xs text-muted-foreground", children: "Budget" }), (0, jsx_runtime_1.jsx)(input_1.Input, { placeholder: "e.g. $10M, Unlimited", value: values.budget, onChange: (e) => onChange({ ...values, budget: e.target.value }), className: "mt-1" })] })] })] }));
|
|
10
|
+
};
|
|
11
|
+
exports.default = ConstraintsPanel;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const card_1 = require("@/components/ui/card");
|
|
6
|
+
const button_1 = require("@/components/ui/button");
|
|
7
|
+
const input_1 = require("@/components/ui/input");
|
|
8
|
+
const select_1 = require("@/components/ui/select");
|
|
9
|
+
const badge_1 = require("@/components/ui/badge");
|
|
10
|
+
const lucide_react_1 = require("lucide-react");
|
|
11
|
+
const dispositionColors = {
|
|
12
|
+
hostile: 'bg-destructive/20 text-destructive border-destructive/30',
|
|
13
|
+
neutral: 'bg-muted text-muted-foreground border-muted-foreground/30',
|
|
14
|
+
supportive: 'bg-primary/20 text-primary border-primary/30',
|
|
15
|
+
unknown: 'bg-muted text-muted-foreground border-border',
|
|
16
|
+
};
|
|
17
|
+
const StakeholderBuilder = ({ stakeholders, onChange }) => {
|
|
18
|
+
const [name, setName] = (0, react_1.useState)('');
|
|
19
|
+
const [disposition, setDisposition] = (0, react_1.useState)('neutral');
|
|
20
|
+
const addStakeholder = () => {
|
|
21
|
+
if (!name.trim())
|
|
22
|
+
return;
|
|
23
|
+
onChange([...stakeholders, { id: name.trim(), disposition }]);
|
|
24
|
+
setName('');
|
|
25
|
+
setDisposition('neutral');
|
|
26
|
+
};
|
|
27
|
+
const removeStakeholder = (index) => {
|
|
28
|
+
onChange(stakeholders.filter((_, i) => i !== index));
|
|
29
|
+
};
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)(card_1.Card, { className: "border-border", children: [(0, jsx_runtime_1.jsx)(card_1.CardHeader, { className: "pb-3", children: (0, jsx_runtime_1.jsx)(card_1.CardTitle, { className: "text-base", children: "Participants" }) }), (0, jsx_runtime_1.jsxs)(card_1.CardContent, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)(input_1.Input, { placeholder: "Participant name...", value: name, onChange: (e) => setName(e.target.value), onKeyDown: (e) => e.key === 'Enter' && addStakeholder(), className: "flex-1" }), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: disposition, onValueChange: (v) => setDisposition(v), children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { className: "w-[130px]", children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, {}) }), (0, jsx_runtime_1.jsxs)(select_1.SelectContent, { children: [(0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "supportive", children: "Supportive" }), (0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "neutral", children: "Neutral" }), (0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "hostile", children: "Hostile" }), (0, jsx_runtime_1.jsx)(select_1.SelectItem, { value: "unknown", children: "Unknown" })] })] }), (0, jsx_runtime_1.jsx)(button_1.Button, { size: "icon", variant: "outline", onClick: addStakeholder, disabled: !name.trim(), children: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { className: "h-4 w-4" }) })] }), stakeholders.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "mt-3 flex flex-wrap gap-2", children: stakeholders.map((s, i) => ((0, jsx_runtime_1.jsxs)(badge_1.Badge, { variant: "outline", className: `gap-1.5 pr-1 ${dispositionColors[s.disposition]}`, children: [s.id, (0, jsx_runtime_1.jsxs)("span", { className: "text-[10px] opacity-70", children: ["(", s.disposition, ")"] }), (0, jsx_runtime_1.jsx)("button", { onClick: () => removeStakeholder(i), className: "ml-0.5 rounded-full p-0.5 hover:bg-background/50", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "h-3 w-3" }) })] }, i))) }))] })] }));
|
|
31
|
+
};
|
|
32
|
+
exports.default = StakeholderBuilder;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.badgeVariants = void 0;
|
|
4
|
+
exports.Badge = Badge;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const class_variance_authority_1 = require("class-variance-authority");
|
|
7
|
+
const utils_1 = require("@/lib/utils");
|
|
8
|
+
const badgeVariants = (0, class_variance_authority_1.cva)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
12
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
13
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
14
|
+
outline: "text-foreground",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
variant: "default",
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
exports.badgeVariants = badgeVariants;
|
|
22
|
+
function Badge({ className, variant, ...props }) {
|
|
23
|
+
return (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(badgeVariants({ variant }), className), ...props });
|
|
24
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.buttonVariants = exports.Button = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const react_slot_1 = require("@radix-ui/react-slot");
|
|
40
|
+
const class_variance_authority_1 = require("class-variance-authority");
|
|
41
|
+
const utils_1 = require("@/lib/utils");
|
|
42
|
+
const buttonVariants = (0, class_variance_authority_1.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
|
|
43
|
+
variants: {
|
|
44
|
+
variant: {
|
|
45
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
46
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
47
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
48
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
49
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
50
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
51
|
+
},
|
|
52
|
+
size: {
|
|
53
|
+
default: "h-10 px-4 py-2",
|
|
54
|
+
sm: "h-9 rounded-md px-3",
|
|
55
|
+
lg: "h-11 rounded-md px-8",
|
|
56
|
+
icon: "h-10 w-10",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
defaultVariants: {
|
|
60
|
+
variant: "default",
|
|
61
|
+
size: "default",
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
exports.buttonVariants = buttonVariants;
|
|
65
|
+
const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
66
|
+
const Comp = asChild ? react_slot_1.Slot : "button";
|
|
67
|
+
return (0, jsx_runtime_1.jsx)(Comp, { className: (0, utils_1.cn)(buttonVariants({ variant, size, className })), ref: ref, ...props });
|
|
68
|
+
});
|
|
69
|
+
exports.Button = Button;
|
|
70
|
+
Button.displayName = "Button";
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.CardContent = exports.CardDescription = exports.CardTitle = exports.CardFooter = exports.CardHeader = exports.Card = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const utils_1 = require("@/lib/utils");
|
|
40
|
+
const Card = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, utils_1.cn)("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props })));
|
|
41
|
+
exports.Card = Card;
|
|
42
|
+
Card.displayName = "Card";
|
|
43
|
+
const CardHeader = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, utils_1.cn)("flex flex-col space-y-1.5 p-6", className), ...props })));
|
|
44
|
+
exports.CardHeader = CardHeader;
|
|
45
|
+
CardHeader.displayName = "CardHeader";
|
|
46
|
+
const CardTitle = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("h3", { ref: ref, className: (0, utils_1.cn)("text-2xl font-semibold leading-none tracking-tight", className), ...props })));
|
|
47
|
+
exports.CardTitle = CardTitle;
|
|
48
|
+
CardTitle.displayName = "CardTitle";
|
|
49
|
+
const CardDescription = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("p", { ref: ref, className: (0, utils_1.cn)("text-sm text-muted-foreground", className), ...props })));
|
|
50
|
+
exports.CardDescription = CardDescription;
|
|
51
|
+
CardDescription.displayName = "CardDescription";
|
|
52
|
+
const CardContent = React.forwardRef(({ className, ...props }, ref) => (0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, utils_1.cn)("p-6 pt-0", className), ...props }));
|
|
53
|
+
exports.CardContent = CardContent;
|
|
54
|
+
CardContent.displayName = "CardContent";
|
|
55
|
+
const CardFooter = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: (0, utils_1.cn)("flex items-center p-6 pt-0", className), ...props })));
|
|
56
|
+
exports.CardFooter = CardFooter;
|
|
57
|
+
CardFooter.displayName = "CardFooter";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Input = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const utils_1 = require("@/lib/utils");
|
|
40
|
+
const Input = React.forwardRef(({ className, type, ...props }, ref) => {
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)("input", { type: type, className: (0, utils_1.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ref: ref, ...props }));
|
|
42
|
+
});
|
|
43
|
+
exports.Input = Input;
|
|
44
|
+
Input.displayName = "Input";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Label = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const LabelPrimitive = __importStar(require("@radix-ui/react-label"));
|
|
40
|
+
const class_variance_authority_1 = require("class-variance-authority");
|
|
41
|
+
const utils_1 = require("@/lib/utils");
|
|
42
|
+
const labelVariants = (0, class_variance_authority_1.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
43
|
+
const Label = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(LabelPrimitive.Root, { ref: ref, className: (0, utils_1.cn)(labelVariants(), className), ...props })));
|
|
44
|
+
exports.Label = Label;
|
|
45
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SelectScrollDownButton = exports.SelectScrollUpButton = exports.SelectSeparator = exports.SelectItem = exports.SelectLabel = exports.SelectContent = exports.SelectTrigger = exports.SelectValue = exports.SelectGroup = exports.Select = void 0;
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const SelectPrimitive = __importStar(require("@radix-ui/react-select"));
|
|
40
|
+
const lucide_react_1 = require("lucide-react");
|
|
41
|
+
const utils_1 = require("@/lib/utils");
|
|
42
|
+
const Select = SelectPrimitive.Root;
|
|
43
|
+
exports.Select = Select;
|
|
44
|
+
const SelectGroup = SelectPrimitive.Group;
|
|
45
|
+
exports.SelectGroup = SelectGroup;
|
|
46
|
+
const SelectValue = SelectPrimitive.Value;
|
|
47
|
+
exports.SelectValue = SelectValue;
|
|
48
|
+
const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(SelectPrimitive.Trigger, { ref: ref, className: (0, utils_1.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", className), ...props, children: [children, (0, jsx_runtime_1.jsx)(SelectPrimitive.Icon, { asChild: true, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
|
|
49
|
+
exports.SelectTrigger = SelectTrigger;
|
|
50
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
51
|
+
const SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.ScrollUpButton, { ref: ref, className: (0, utils_1.cn)("flex cursor-default items-center justify-center py-1", className), ...props, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronUp, { className: "h-4 w-4" }) })));
|
|
52
|
+
exports.SelectScrollUpButton = SelectScrollUpButton;
|
|
53
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
54
|
+
const SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.ScrollDownButton, { ref: ref, className: (0, utils_1.cn)("flex cursor-default items-center justify-center py-1", className), ...props, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDown, { className: "h-4 w-4" }) })));
|
|
55
|
+
exports.SelectScrollDownButton = SelectScrollDownButton;
|
|
56
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
57
|
+
const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.Portal, { children: (0, jsx_runtime_1.jsxs)(SelectPrimitive.Content, { ref: ref, className: (0, utils_1.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", position === "popper" &&
|
|
58
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, ...props, children: [(0, jsx_runtime_1.jsx)(SelectScrollUpButton, {}), (0, jsx_runtime_1.jsx)(SelectPrimitive.Viewport, { className: (0, utils_1.cn)("p-1", position === "popper" &&
|
|
59
|
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"), children: children }), (0, jsx_runtime_1.jsx)(SelectScrollDownButton, {})] }) })));
|
|
60
|
+
exports.SelectContent = SelectContent;
|
|
61
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
62
|
+
const SelectLabel = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.Label, { ref: ref, className: (0, utils_1.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props })));
|
|
63
|
+
exports.SelectLabel = SelectLabel;
|
|
64
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
65
|
+
const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(SelectPrimitive.Item, { ref: ref, className: (0, utils_1.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground", className), ...props, children: [(0, jsx_runtime_1.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: (0, jsx_runtime_1.jsx)(SelectPrimitive.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: "h-4 w-4" }) }) }), (0, jsx_runtime_1.jsx)(SelectPrimitive.ItemText, { children: children })] })));
|
|
66
|
+
exports.SelectItem = SelectItem;
|
|
67
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
68
|
+
const SelectSeparator = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.Separator, { ref: ref, className: (0, utils_1.cn)("-mx-1 my-1 h-px bg-muted", className), ...props })));
|
|
69
|
+
exports.SelectSeparator = SelectSeparator;
|
|
70
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|