qtype 0.0.16__py3-none-any.whl → 0.1.0__py3-none-any.whl

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.
Files changed (126) hide show
  1. qtype/application/commons/tools.py +1 -1
  2. qtype/application/converters/tools_from_api.py +5 -5
  3. qtype/application/converters/tools_from_module.py +2 -2
  4. qtype/application/converters/types.py +14 -43
  5. qtype/application/documentation.py +1 -1
  6. qtype/application/facade.py +92 -71
  7. qtype/base/types.py +227 -7
  8. qtype/commands/convert.py +20 -8
  9. qtype/commands/generate.py +19 -27
  10. qtype/commands/run.py +54 -36
  11. qtype/commands/serve.py +74 -54
  12. qtype/commands/validate.py +34 -8
  13. qtype/commands/visualize.py +46 -22
  14. qtype/dsl/__init__.py +6 -5
  15. qtype/dsl/custom_types.py +1 -1
  16. qtype/dsl/domain_types.py +65 -5
  17. qtype/dsl/linker.py +384 -0
  18. qtype/dsl/loader.py +315 -0
  19. qtype/dsl/model.py +612 -363
  20. qtype/dsl/parser.py +200 -0
  21. qtype/dsl/types.py +50 -0
  22. qtype/interpreter/api.py +57 -136
  23. qtype/interpreter/auth/aws.py +19 -9
  24. qtype/interpreter/auth/generic.py +93 -16
  25. qtype/interpreter/base/base_step_executor.py +429 -0
  26. qtype/interpreter/base/batch_step_executor.py +171 -0
  27. qtype/interpreter/base/exceptions.py +50 -0
  28. qtype/interpreter/base/executor_context.py +74 -0
  29. qtype/interpreter/base/factory.py +117 -0
  30. qtype/interpreter/base/progress_tracker.py +75 -0
  31. qtype/interpreter/base/secrets.py +339 -0
  32. qtype/interpreter/base/step_cache.py +73 -0
  33. qtype/interpreter/base/stream_emitter.py +469 -0
  34. qtype/interpreter/conversions.py +455 -21
  35. qtype/interpreter/converters.py +73 -0
  36. qtype/interpreter/endpoints.py +355 -0
  37. qtype/interpreter/executors/agent_executor.py +242 -0
  38. qtype/interpreter/executors/aggregate_executor.py +93 -0
  39. qtype/interpreter/executors/decoder_executor.py +163 -0
  40. qtype/interpreter/executors/doc_to_text_executor.py +112 -0
  41. qtype/interpreter/executors/document_embedder_executor.py +75 -0
  42. qtype/interpreter/executors/document_search_executor.py +122 -0
  43. qtype/interpreter/executors/document_source_executor.py +118 -0
  44. qtype/interpreter/executors/document_splitter_executor.py +105 -0
  45. qtype/interpreter/executors/echo_executor.py +63 -0
  46. qtype/interpreter/executors/field_extractor_executor.py +160 -0
  47. qtype/interpreter/executors/file_source_executor.py +101 -0
  48. qtype/interpreter/executors/file_writer_executor.py +110 -0
  49. qtype/interpreter/executors/index_upsert_executor.py +228 -0
  50. qtype/interpreter/executors/invoke_embedding_executor.py +92 -0
  51. qtype/interpreter/executors/invoke_flow_executor.py +51 -0
  52. qtype/interpreter/executors/invoke_tool_executor.py +353 -0
  53. qtype/interpreter/executors/llm_inference_executor.py +272 -0
  54. qtype/interpreter/executors/prompt_template_executor.py +78 -0
  55. qtype/interpreter/executors/sql_source_executor.py +106 -0
  56. qtype/interpreter/executors/vector_search_executor.py +91 -0
  57. qtype/interpreter/flow.py +147 -22
  58. qtype/interpreter/metadata_api.py +115 -0
  59. qtype/interpreter/resource_cache.py +5 -4
  60. qtype/interpreter/stream/chat/__init__.py +15 -0
  61. qtype/interpreter/stream/chat/converter.py +391 -0
  62. qtype/interpreter/{chat → stream/chat}/file_conversions.py +2 -2
  63. qtype/interpreter/stream/chat/ui_request_to_domain_type.py +140 -0
  64. qtype/interpreter/stream/chat/vercel.py +609 -0
  65. qtype/interpreter/stream/utils/__init__.py +15 -0
  66. qtype/interpreter/stream/utils/build_vercel_ai_formatter.py +74 -0
  67. qtype/interpreter/stream/utils/callback_to_stream.py +66 -0
  68. qtype/interpreter/stream/utils/create_streaming_response.py +18 -0
  69. qtype/interpreter/stream/utils/default_chat_extract_text.py +20 -0
  70. qtype/interpreter/stream/utils/error_streaming_response.py +20 -0
  71. qtype/interpreter/telemetry.py +135 -8
  72. qtype/interpreter/tools/__init__.py +5 -0
  73. qtype/interpreter/tools/function_tool_helper.py +265 -0
  74. qtype/interpreter/types.py +328 -0
  75. qtype/interpreter/typing.py +83 -89
  76. qtype/interpreter/ui/404/index.html +1 -1
  77. qtype/interpreter/ui/404.html +1 -1
  78. qtype/interpreter/ui/_next/static/{nUaw6_IwRwPqkzwe5s725 → 20HoJN6otZ_LyHLHpCPE6}/_buildManifest.js +1 -1
  79. qtype/interpreter/ui/_next/static/chunks/{393-8fd474427f8e19ce.js → 434-b2112d19f25c44ff.js} +3 -3
  80. qtype/interpreter/ui/_next/static/chunks/app/page-8c67d16ac90d23cb.js +1 -0
  81. qtype/interpreter/ui/_next/static/chunks/ba12c10f-546f2714ff8abc66.js +1 -0
  82. qtype/interpreter/ui/_next/static/css/8a8d1269e362fef7.css +3 -0
  83. qtype/interpreter/ui/icon.png +0 -0
  84. qtype/interpreter/ui/index.html +1 -1
  85. qtype/interpreter/ui/index.txt +4 -4
  86. qtype/semantic/checker.py +583 -0
  87. qtype/semantic/generate.py +262 -83
  88. qtype/semantic/loader.py +95 -0
  89. qtype/semantic/model.py +436 -159
  90. qtype/semantic/resolver.py +59 -17
  91. qtype/semantic/visualize.py +28 -31
  92. {qtype-0.0.16.dist-info → qtype-0.1.0.dist-info}/METADATA +16 -3
  93. qtype-0.1.0.dist-info/RECORD +134 -0
  94. qtype/dsl/base_types.py +0 -38
  95. qtype/dsl/validator.py +0 -465
  96. qtype/interpreter/batch/__init__.py +0 -0
  97. qtype/interpreter/batch/file_sink_source.py +0 -162
  98. qtype/interpreter/batch/flow.py +0 -95
  99. qtype/interpreter/batch/sql_source.py +0 -92
  100. qtype/interpreter/batch/step.py +0 -74
  101. qtype/interpreter/batch/types.py +0 -41
  102. qtype/interpreter/batch/utils.py +0 -178
  103. qtype/interpreter/chat/chat_api.py +0 -237
  104. qtype/interpreter/chat/vercel.py +0 -314
  105. qtype/interpreter/exceptions.py +0 -10
  106. qtype/interpreter/step.py +0 -67
  107. qtype/interpreter/steps/__init__.py +0 -0
  108. qtype/interpreter/steps/agent.py +0 -114
  109. qtype/interpreter/steps/condition.py +0 -36
  110. qtype/interpreter/steps/decoder.py +0 -88
  111. qtype/interpreter/steps/llm_inference.py +0 -171
  112. qtype/interpreter/steps/prompt_template.py +0 -54
  113. qtype/interpreter/steps/search.py +0 -24
  114. qtype/interpreter/steps/tool.py +0 -219
  115. qtype/interpreter/streaming_helpers.py +0 -123
  116. qtype/interpreter/ui/_next/static/chunks/app/page-7e26b6156cfb55d3.js +0 -1
  117. qtype/interpreter/ui/_next/static/chunks/ba12c10f-22556063851a6df2.js +0 -1
  118. qtype/interpreter/ui/_next/static/css/b40532b0db09cce3.css +0 -3
  119. qtype/interpreter/ui/favicon.ico +0 -0
  120. qtype/loader.py +0 -390
  121. qtype-0.0.16.dist-info/RECORD +0 -106
  122. /qtype/interpreter/ui/_next/static/{nUaw6_IwRwPqkzwe5s725 → 20HoJN6otZ_LyHLHpCPE6}/_ssgManifest.js +0 -0
  123. {qtype-0.0.16.dist-info → qtype-0.1.0.dist-info}/WHEEL +0 -0
  124. {qtype-0.0.16.dist-info → qtype-0.1.0.dist-info}/entry_points.txt +0 -0
  125. {qtype-0.0.16.dist-info → qtype-0.1.0.dist-info}/licenses/LICENSE +0 -0
  126. {qtype-0.0.16.dist-info → qtype-0.1.0.dist-info}/top_level.txt +0 -0
@@ -1,219 +0,0 @@
1
- import importlib
2
- import logging
3
- import time
4
- from typing import Any, Callable
5
-
6
- import requests
7
- from pydantic import BaseModel
8
-
9
- from qtype.interpreter.exceptions import InterpreterError
10
- from qtype.semantic.model import (
11
- APITool,
12
- BearerTokenAuthProvider,
13
- Invoke,
14
- PythonFunctionTool,
15
- Variable,
16
- )
17
-
18
- logger = logging.getLogger(__name__)
19
-
20
-
21
- def _execute_function_tool(
22
- tool: PythonFunctionTool, inputs: dict[str, Any]
23
- ) -> Any:
24
- """Execute a Python function tool.
25
-
26
- Args:
27
- tool: The Python function tool to execute.
28
- inputs: Dictionary of input parameter names to values.
29
-
30
- Returns:
31
- The result from the function call.
32
-
33
- Raises:
34
- InterpreterError: If the function cannot be found or executed.
35
- """
36
- try:
37
- module = importlib.import_module(tool.module_path)
38
- function = getattr(module, tool.function_name, None)
39
- if function is None:
40
- raise InterpreterError(
41
- f"Function {tool.function_name} not found in {tool.module_path}"
42
- )
43
- return function(**inputs)
44
- except Exception as e:
45
- raise InterpreterError(
46
- f"Failed to execute function {tool.function_name}: {e}"
47
- ) from e
48
-
49
-
50
- def _execute_api_tool(
51
- tool: APITool, inputs: dict[str, Any], stream_fn: Callable | None = None
52
- ) -> Any:
53
- """Execute an API tool by making an HTTP request.
54
-
55
- Args:
56
- tool: The API tool to execute.
57
- inputs: Dictionary of input parameter names to values.
58
-
59
- Returns:
60
- The result from the API call.
61
-
62
- Raises:
63
- InterpreterError: If the auth provider is not supported or the request fails.
64
- """
65
- # Prepare headers
66
- headers = tool.headers.copy() if tool.headers else {}
67
-
68
- # Handle authentication
69
- if tool.auth is not None:
70
- if isinstance(tool.auth, BearerTokenAuthProvider):
71
- headers["Authorization"] = f"Bearer {tool.auth.token}"
72
- else:
73
- raise InterpreterError(
74
- f"Unsupported auth provider type: {type(tool.auth).__name__}. "
75
- "Only BearerTokenAuthProvider is currently supported."
76
- )
77
-
78
- # Prepare request body
79
- def dump_if_necessary(value: Any) -> Any:
80
- # if value is a dictionary, call recursively
81
- if isinstance(value, dict):
82
- return {k: dump_if_necessary(v) for k, v in value.items()}
83
- elif isinstance(value, BaseModel):
84
- return value.model_dump()
85
- return value
86
-
87
- # Use inputs for request body
88
- body = None
89
- if inputs:
90
- body = dump_if_necessary(inputs)
91
-
92
- try:
93
- if stream_fn:
94
- stream_fn(f"Making request to {tool.endpoint}...")
95
-
96
- logging.info(f"Making request to {tool.endpoint}")
97
- # Record start time
98
- start_time = time.time()
99
-
100
- # Make the HTTP request
101
- response = requests.request(
102
- method=tool.method.upper(),
103
- url=tool.endpoint,
104
- headers=headers,
105
- params=None
106
- if tool.method.upper() in ["POST", "PUT", "PATCH"]
107
- else inputs,
108
- json=body
109
- if tool.method.upper() in ["POST", "PUT", "PATCH"]
110
- else None,
111
- )
112
-
113
- # Calculate and log request duration
114
- duration = time.time() - start_time
115
- if stream_fn:
116
- stream_fn(
117
- f"Request to {tool.endpoint} completed in {duration:.2f} seconds"
118
- )
119
- logging.info(
120
- f"Request to {tool.endpoint} completed in {duration:.2f} seconds"
121
- )
122
-
123
- # Raise an exception for HTTP error status codes
124
- response.raise_for_status()
125
-
126
- # Return the decoded JSON response
127
- return response.json()
128
-
129
- except requests.exceptions.RequestException as e:
130
- raise InterpreterError(f"API request failed: {e}") from e
131
- except ValueError as e:
132
- raise InterpreterError(f"Failed to decode JSON response: {e}") from e
133
-
134
-
135
- def execute(
136
- step: Invoke, stream_fn: Callable | None = None, **kwargs: dict[str, Any]
137
- ) -> list[Variable]:
138
- """Execute an Invoke step.
139
-
140
- Args:
141
- step: The Invoke step to execute.
142
- **kwargs: Additional keyword arguments.
143
-
144
- Returns:
145
- List of output variables with their values set.
146
- """
147
- logger.debug(f"Executing invoke step: {step.id}")
148
-
149
- # Create lookup maps for efficient access
150
- step_inputs_map = {var.id: var for var in step.inputs}
151
- step_outputs_map = {var.id: var for var in step.outputs}
152
- tool_inputs_map = step.tool.inputs or {}
153
- tool_outputs_map = step.tool.outputs or {}
154
-
155
- # Build inputs dictionary using input bindings
156
- tool_inputs = {}
157
- for tool_input_name, step_input_id in step.input_bindings.items():
158
- # Validate tool parameter exists
159
- if tool_input_name not in tool_inputs_map:
160
- raise InterpreterError(
161
- f"Tool input parameter '{tool_input_name}' not found in tool definition"
162
- )
163
- tool_param = tool_inputs_map[tool_input_name]
164
-
165
- if step_input_id in step_inputs_map:
166
- step_input = step_inputs_map[step_input_id]
167
- # Check if input is set
168
- if step_input.is_set():
169
- tool_inputs[tool_input_name] = step_input.value
170
- elif not tool_param.optional:
171
- raise InterpreterError(
172
- f"Input '{step_input_id}' is required but not set"
173
- )
174
- else:
175
- logging.warning(
176
- f"Step input '{step_input_id}' not found in step inputs, using it as literal for {tool_input_name}"
177
- )
178
- tool_inputs[tool_input_name] = step_input_id
179
-
180
- # Execute the tool
181
- if isinstance(step.tool, PythonFunctionTool):
182
- result = _execute_function_tool(step.tool, tool_inputs)
183
- elif isinstance(step.tool, APITool):
184
- result = _execute_api_tool(step.tool, tool_inputs)
185
- else:
186
- raise InterpreterError(
187
- f"Unsupported tool type: {type(step.tool).__name__}"
188
- )
189
-
190
- # Map results to output variables using output bindings
191
- for tool_output_name, step_output_id in step.output_bindings.items():
192
- # Validate step output exists
193
- if step_output_id not in step_outputs_map:
194
- raise InterpreterError(
195
- f"Step output '{step_output_id}' not found in step outputs"
196
- )
197
- step_output = step_outputs_map[step_output_id]
198
-
199
- # Validate tool output parameter exists
200
- if tool_output_name not in tool_outputs_map:
201
- raise InterpreterError(
202
- f"Tool output parameter '{tool_output_name}' not found in tool definition"
203
- )
204
- tool_output_param = tool_outputs_map[tool_output_name]
205
-
206
- # Extract the value from the result
207
- if isinstance(result, dict):
208
- if tool_output_name in result:
209
- step_output.value = result[tool_output_name]
210
- elif not tool_output_param.optional:
211
- raise InterpreterError(
212
- f"Tool output '{tool_output_name}' not found in result. "
213
- f"Available keys: {list(result.keys())}"
214
- )
215
- else:
216
- # Single output case - use the entire result
217
- step_output.value = result
218
-
219
- return step.outputs
@@ -1,123 +0,0 @@
1
- """
2
- Streaming helpers for bridging callback-based execution with generator patterns.
3
-
4
- This module provides utilities to convert callback-based streaming functions
5
- into generators that can be used with FastAPI's StreamingResponse.
6
- """
7
-
8
- from __future__ import annotations
9
-
10
- import queue
11
- import threading
12
- from collections.abc import Callable, Generator
13
- from concurrent.futures import Future
14
- from typing import Any, TypeVar
15
-
16
- from qtype.dsl.domain_types import ChatMessage
17
- from qtype.semantic.model import Step
18
-
19
- T = TypeVar("T")
20
-
21
-
22
- def create_streaming_generator(
23
- execution_func: Callable[..., T],
24
- *args: Any,
25
- timeout: float = 30.0,
26
- join_timeout: float = 5.0,
27
- **kwargs: Any,
28
- ) -> tuple[Generator[tuple[Step, ChatMessage | str], None, None], Future[T]]:
29
- """
30
- Convert a callback-based streaming function into a generator with result future.
31
-
32
- This function executes the provided function in a separate thread and
33
- converts its stream_fn callback pattern into a generator that yields
34
- (step, message) tuples. Additionally returns a Future that will contain
35
- the execution function's return value.
36
-
37
- Args:
38
- execution_func: Function to execute that accepts a stream_fn parameter
39
- *args: Positional arguments to pass to execution_func
40
- timeout: Timeout in seconds for queue.get() operations
41
- join_timeout: Timeout in seconds for thread.join()
42
- **kwargs: Keyword arguments to pass to execution_func
43
-
44
- Returns:
45
- Tuple of (generator, future) where:
46
- - generator yields (Step, ChatMessage | str) tuples from streaming callback
47
- - future will contain the return value of execution_func
48
-
49
- Example:
50
- ```python
51
- def my_flow_execution(flow: Flow, stream_fn: Callable | None = None):
52
- # Some execution logic that calls stream_fn(step, message)
53
- return {"status": "completed", "steps_executed": 3}
54
-
55
- # Convert to generator with result
56
- stream_gen, result_future = create_streaming_generator(
57
- my_flow_execution,
58
- flow_copy,
59
- some_other_arg="value"
60
- )
61
-
62
- # Process streaming data
63
- for step, message in stream_gen:
64
- print(f"Step {step.id}: {message}")
65
-
66
- # Get final result (blocks until execution completes)
67
- final_result = result_future.result(timeout=10.0)
68
- print(f"Execution result: {final_result}")
69
- ```
70
- """
71
- # Create thread-safe queue for communication
72
- stream_queue: queue.Queue[tuple[Step, ChatMessage | str] | None] = (
73
- queue.Queue()
74
- )
75
-
76
- # Create future for the return value
77
- result_future: Future[T] = Future()
78
-
79
- def stream_callback(step: Step, msg: ChatMessage | str) -> None:
80
- """Callback function that pushes data to the queue."""
81
- stream_queue.put((step, msg))
82
-
83
- def execution_task() -> None:
84
- """Execute the function in a separate thread."""
85
- try:
86
- # Add the stream_fn callback to kwargs
87
- kwargs_with_callback = kwargs.copy()
88
- kwargs_with_callback["stream_fn"] = stream_callback
89
-
90
- # Execute the function with the callback and capture result
91
- result = execution_func(*args, **kwargs_with_callback)
92
- result_future.set_result(result)
93
- except Exception as e:
94
- # Set exception on future if execution fails
95
- result_future.set_exception(e)
96
- finally:
97
- # Signal end of stream
98
- stream_queue.put(None)
99
-
100
- # Start execution in separate thread
101
- execution_thread = threading.Thread(target=execution_task)
102
- execution_thread.start()
103
-
104
- def generator() -> Generator[tuple[Step, ChatMessage | str], None, None]:
105
- """Generator that yields streaming data from the queue."""
106
- try:
107
- # Yield data as it becomes available
108
- while True:
109
- try:
110
- # Wait for data with timeout to avoid hanging
111
- data = stream_queue.get(timeout=timeout)
112
- if data is None:
113
- # End of stream signal
114
- break
115
- yield data
116
- except queue.Empty:
117
- # Handle timeout - break and let thread cleanup
118
- break
119
- finally:
120
- # Ensure thread cleanup
121
- execution_thread.join(timeout=join_timeout)
122
-
123
- return generator(), result_future
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{2941:(e,t,r)=>{Promise.resolve().then(r.bind(r,8785))},8785:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>eO});var a=r(5155),s=r(2115),n=r(838),l=r(2596),i=r(9688);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,i.QP)((0,l.$)(t))}function d(e,t){if(!e)return null;if("$ref"in e){let r=e.$ref.replace("#/","").split("/"),a=t;for(let e of r)a=null==a?void 0:a[e];return d(a,t)}if("object"===e.type&&e.properties){let r={};for(let[a,s]of Object.entries(e.properties)){let e=d(s,t);e&&(r[a]=e)}return{...e,properties:r}}if("array"===e.type&&e.items){let r=d(e.items,t);return{...e,items:r}}return e}var c=r(9509);class u extends Error{constructor(e,t,r){super(e),this.name="ApiClientError",this.status=t,this.detail=r}}class m{async fetchWithTimeout(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new AbortController,a=setTimeout(()=>r.abort(),this.config.timeout);try{let s=await fetch(e,{...t,signal:r.signal,headers:{"Content-Type":"application/json",...t.headers}});if(clearTimeout(a),!s.ok){let e;try{e=await s.json()}catch(t){e={message:s.statusText}}let t="API request failed: ".concat(s.status," ").concat(s.statusText);if(null==e?void 0:e.detail){let r="string"==typeof e.detail?e.detail:JSON.stringify(e.detail,null,2);t+="\n".concat(r)}throw new u(t,s.status,e)}return s}catch(e){if(clearTimeout(a),e instanceof u)throw e;if(e instanceof Error&&"AbortError"===e.name)throw new u("Request timeout",408);throw new u("Network error: ".concat(e instanceof Error?e.message:"Unknown error"),0)}}getUrl(e){let t=this.config.baseUrl.endsWith("/")?this.config.baseUrl.slice(0,-1):this.config.baseUrl,r=e.startsWith("/")?e:"/".concat(e);return"".concat(t).concat(r)}async get(e){return(await this.fetchWithTimeout(this.getUrl(e),{method:"GET"})).json()}async post(e,t){return(await this.fetchWithTimeout(this.getUrl(e),{method:"POST",body:t?JSON.stringify(t):void 0})).json()}async executeFlow(e,t){return this.post(e,t)}async getOpenApiSpec(){return this.get("/openapi.json")}async healthCheck(){try{return await this.getOpenApiSpec(),{status:"healthy",timestamp:new Date().toISOString()}}catch(e){throw new u("Health check failed: ".concat(e instanceof Error?e.message:"Unknown error"),500,e)}}getBaseUrl(){return this.config.baseUrl}setBaseUrl(e){this.config.baseUrl=e}constructor(e){this.config={baseUrl:c.env.NEXT_PUBLIC_QTYPE_HOST||"../",timeout:5e5,...e}}}let x=new m,p=()=>x.getOpenApiSpec();function f(){let{data:e,error:t,isLoading:r,mutate:a}=(0,n.Ay)("/openapi.json",p,{refreshInterval:3e5,revalidateOnFocus:!1,errorRetryCount:3,errorRetryInterval:5e3});return{spec:e,isLoading:r,error:t,refresh:a}}var g=r(4056);function h(e){let{className:t,...r}=e;return(0,a.jsx)(g.bL,{"data-slot":"tabs",className:o("flex flex-col gap-2",t),...r})}function b(e){let{className:t,...r}=e;return(0,a.jsx)(g.B8,{"data-slot":"tabs-list",className:o("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...r})}function v(e){let{className:t,...r}=e;return(0,a.jsx)(g.l9,{"data-slot":"tabs-trigger",className:o("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function y(e){let{className:t,...r}=e;return(0,a.jsx)(g.UC,{"data-slot":"tabs-content",className:o("flex-1 outline-none",t),...r})}var j=r(2085);let N=(0,j.F)("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function w(e){let{className:t,variant:r,...s}=e;return(0,a.jsx)("div",{"data-slot":"alert",role:"alert",className:o(N({variant:r}),t),...s})}function k(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"alert-title",className:o("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",t),...r})}function _(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"alert-description",className:o("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...r})}var C=r(5339);function S(e){let{className:t,type:r,...s}=e;return(0,a.jsx)("input",{type:r,"data-slot":"input",className:o("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...s})}function z(e){let{name:t,property:r,required:s,value:n="",onChange:l}=e;return(0,a.jsx)(S,{type:"text",placeholder:r.description||"Enter ".concat(r.title||t),value:String(n||""),onChange:e=>{null==l||l(t,e.target.value)},required:s,className:"w-full"})}var A=r(239);function E(e){let{className:t,...r}=e;return(0,a.jsx)(A.bL,{"data-slot":"switch",className:o("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...r,children:(0,a.jsx)(A.zi,{"data-slot":"switch-thumb",className:o("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}function T(e){let{name:t,property:r,required:s,value:n=!1,onChange:l}=e;return(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)(E,{checked:!!n,onCheckedChange:e=>{null==l||l(t,e)},required:s}),(0,a.jsx)("div",{className:"flex-1",children:(0,a.jsx)("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:n?"Enabled":"Disabled"})})]})}function q(e){let{name:t,property:r,required:s,value:n,onChange:l}=e,i="integer"===r.type||"int32"===r.format||"int64"===r.format?1:"any";return(0,a.jsx)(S,{type:"number",placeholder:r.description||"Enter ".concat(r.title||t),value:String(n||""),onChange:e=>{let a,s=e.target.value;if(""===s){null==l||l(t,0);return}isNaN(a="integer"===r.type||"int32"===r.format||"int64"===r.format?parseInt(s,10):parseFloat(s))||null==l||l(t,a)},required:s,step:i,min:r.minimum,max:r.maximum,className:"w-full"})}var U=r(9074),O=r(3008),F=r(9708);let P=(0,j.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function M(e){let{className:t,variant:r,size:s,asChild:n=!1,...l}=e,i=n?F.DX:"button";return(0,a.jsx)(i,{"data-slot":"button",className:o(P({variant:r,size:s,className:t})),...l})}var D=r(5933),L=r(2355),I=r(3052),R=r(6474),B=r(713),W=r(8934);function H(){let e=(0,D._)(["rtl:**:[.rdp-button_next>svg]:rotate-180"],["rtl:**:[.rdp-button\\_next>svg]:rotate-180"]);return H=function(){return e},e}function G(){let e=(0,D._)(["rtl:**:[.rdp-button_previous>svg]:rotate-180"],["rtl:**:[.rdp-button\\_previous>svg]:rotate-180"]);return G=function(){return e},e}function V(e){let{className:t,classNames:r,showOutsideDays:s=!0,captionLayout:n="label",buttonVariant:l="ghost",formatters:i,components:d,...c}=e,u=(0,B.a)();return(0,a.jsx)(W.h,{showOutsideDays:s,className:o("bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw(H()),String.raw(G()),t),captionLayout:n,formatters:{formatMonthDropdown:e=>e.toLocaleString("default",{month:"short"}),...i},classNames:{root:o("w-fit",u.root),months:o("flex gap-4 flex-col md:flex-row relative",u.months),month:o("flex flex-col w-full gap-4",u.month),nav:o("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",u.nav),button_previous:o(P({variant:l}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",u.button_previous),button_next:o(P({variant:l}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",u.button_next),month_caption:o("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",u.month_caption),dropdowns:o("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",u.dropdowns),dropdown_root:o("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",u.dropdown_root),dropdown:o("absolute bg-popover inset-0 opacity-0",u.dropdown),caption_label:o("select-none font-medium","label"===n?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",u.caption_label),table:"w-full border-collapse",weekdays:o("flex",u.weekdays),weekday:o("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",u.weekday),week:o("flex w-full mt-2",u.week),week_number_header:o("select-none w-(--cell-size)",u.week_number_header),week_number:o("text-[0.8rem] select-none text-muted-foreground",u.week_number),day:o("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",u.day),range_start:o("rounded-l-md bg-accent",u.range_start),range_middle:o("rounded-none",u.range_middle),range_end:o("rounded-r-md bg-accent",u.range_end),today:o("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",u.today),outside:o("text-muted-foreground aria-selected:text-muted-foreground",u.outside),disabled:o("text-muted-foreground opacity-50",u.disabled),hidden:o("invisible",u.hidden),...r},components:{Root:e=>{let{className:t,rootRef:r,...s}=e;return(0,a.jsx)("div",{"data-slot":"calendar",ref:r,className:o(t),...s})},Chevron:e=>{let{className:t,orientation:r,...s}=e;return"left"===r?(0,a.jsx)(L.A,{className:o("size-4",t),...s}):"right"===r?(0,a.jsx)(I.A,{className:o("size-4",t),...s}):(0,a.jsx)(R.A,{className:o("size-4",t),...s})},DayButton:$,WeekNumber:e=>{let{children:t,...r}=e;return(0,a.jsx)("td",{...r,children:(0,a.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:t})})},...d},...c})}function $(e){let{className:t,day:r,modifiers:n,...l}=e,i=(0,B.a)(),d=s.useRef(null);return s.useEffect(()=>{var e;n.focused&&(null==(e=d.current)||e.focus())},[n.focused]),(0,a.jsx)(M,{ref:d,variant:"ghost",size:"icon","data-day":r.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:o("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",i.day,t),...l})}var J=r(6059);function K(e){let{...t}=e;return(0,a.jsx)(J.bL,{"data-slot":"popover",...t})}function Q(e){let{...t}=e;return(0,a.jsx)(J.l9,{"data-slot":"popover-trigger",...t})}function X(e){let{className:t,align:r="center",sideOffset:s=4,...n}=e;return(0,a.jsx)(J.ZL,{children:(0,a.jsx)(J.UC,{"data-slot":"popover-content",align:r,sideOffset:s,className:o("bg-popover text-popover-foreground 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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...n})})}function Y(e){let{name:t,property:r,value:n,onChange:l,required:i}=e,[d,c]=s.useState(n&&"string"==typeof n?new Date(n):void 0);return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"text-sm font-medium",children:[r.title||"Date"," ",i&&(0,a.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,a.jsxs)(K,{children:[(0,a.jsx)(Q,{asChild:!0,children:(0,a.jsxs)(M,{variant:"outline",className:o("w-full justify-start text-left font-normal",!d&&"text-muted-foreground"),children:[(0,a.jsx)(U.A,{className:"mr-2 h-4 w-4"}),d?(0,O.GP)(d,"PPP"):"Select a date"]})}),(0,a.jsx)(X,{className:"w-auto p-0",children:(0,a.jsx)(V,{mode:"single",selected:d,onSelect:e=>{if(c(e),e){let r=(0,O.GP)(e,"yyyy-MM-dd");null==l||l(t,r)}},initialFocus:!0})})]}),r.description&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:r.description})]})}function Z(e){let{name:t,property:r,value:n,onChange:l,required:i}=e,[o,d]=s.useState(String(n||""));return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"text-sm font-medium",children:[r.title||"Time"," ",i&&(0,a.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,a.jsx)(S,{type:"time",value:o,onChange:e=>{var r;d(r=e.target.value),null==l||l(t,r)},step:"1",className:"w-full",placeholder:"HH:MM:SS"}),r.description&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:r.description})]})}function ee(e){let{name:t,property:r,value:n,onChange:l,required:i}=e,{date:d,time:c}=(e=>{var t;if(!e)return{date:void 0,time:""};let r=new Date(e);return isNaN(r.getTime())?{date:void 0,time:""}:{date:r,time:e.includes("T")&&(null==(t=e.split("T")[1])?void 0:t.split(".")[0])||""}})("string"==typeof n?n:void 0),[u,m]=s.useState(d),[x,p]=s.useState(c),f=(e,r)=>{if(!e)return;let a=(0,O.GP)(e,"yyyy-MM-dd"),s="".concat(a,"T").concat(r||"00:00:00");null==l||l(t,s)};return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"text-sm font-medium",children:[r.title||"Date & Time"," ",i&&(0,a.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,a.jsxs)("div",{className:"flex flex-col space-y-2",children:[(0,a.jsxs)(K,{children:[(0,a.jsx)(Q,{asChild:!0,children:(0,a.jsxs)(M,{variant:"outline",className:o("w-full justify-start text-left font-normal",!u&&"text-muted-foreground"),children:[(0,a.jsx)(U.A,{className:"mr-2 h-4 w-4"}),u?(0,a.jsxs)("span",{children:[(0,O.GP)(u,"PPP"),x&&(0,a.jsxs)("span",{className:"text-muted-foreground ml-2",children:["at ",x]})]}):"Select date and time"]})}),(0,a.jsx)(X,{className:"w-auto p-0",children:(0,a.jsx)(V,{mode:"single",selected:u,onSelect:e=>{m(e),f(e,x)},initialFocus:!0})})]}),(0,a.jsx)(S,{type:"time",value:x,onChange:e=>{var t;p(t=e.target.value),f(u,t)},step:"1",placeholder:"HH:MM:SS",className:"w-full"})]}),r.description&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:r.description})]})}function et(e){let{name:t,property:r,required:s,value:n,onChange:l}=e;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:[r.title||t,s&&(0,a.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),r.description&&(0,a.jsx)("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:r.description}),(()=>{switch(r.qtype_type){case"text":return(0,a.jsx)(z,{name:t,property:r,required:s,value:n,onChange:l});case"date":return(0,a.jsx)(Y,{name:t,property:r,required:s,value:n,onChange:l});case"time":return(0,a.jsx)(Z,{name:t,property:r,required:s,value:n,onChange:l});case"datetime":return(0,a.jsx)(ee,{name:t,property:r,required:s,value:n,onChange:l});case"boolean":return(0,a.jsx)(T,{name:t,property:r,required:s,value:n,onChange:l});case"number":case"int":case"float":return(0,a.jsx)(q,{name:t,property:r,required:s,value:n,onChange:l});case"bytes":case"file":case"image":case"audio":case"video":return(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-gray-900 p-3 rounded border",children:(0,a.jsx)("p",{className:"text-xs text-gray-600 dark:text-gray-400",children:"File upload input coming soon..."})});default:return(0,a.jsx)(w,{variant:"destructive",children:(0,a.jsxs)(_,{children:["Unknown input type: ",(0,a.jsx)("code",{className:"font-mono text-sm",children:r.type})]})})}})()]})}function er(e){let{requestSchema:t,onInputChange:r}=e,[n,l]=(0,s.useState)({});if(!t)return(0,a.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm",children:"No input parameters required for this flow."});let i=t.properties||{},o=t.required||[],d=(e,t)=>{let a={...n,[e]:t};l(a),null==r||r(a)};return 0===Object.keys(i).length?(0,a.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm",children:"No input parameters defined for this flow."}):(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h5",{className:"font-medium text-gray-900 dark:text-white",children:"Inputs"}),(0,a.jsx)("div",{className:"space-y-4",children:Object.entries(i).map(e=>{let[t,r]=e;return(0,a.jsx)(et,{name:t,property:r,required:o.includes(t),value:n[t],onChange:d},t)})})]})}var ea=r(8240),es=r(4823);function en(e){let{name:t,property:r,value:s}=e;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:r.title||t}),r.description&&(0,a.jsx)("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:r.description}),(()=>{switch(r.qtype_type){case"text":return(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-gray-900 p-3 rounded",children:(0,a.jsx)(ea.oz,{remarkPlugins:[es.A],components:{code:e=>{let{children:t,...r}=e;return r.className?(0,a.jsx)("pre",{className:"bg-gray-100 dark:bg-gray-800 p-2 rounded text-xs overflow-x-auto",children:(0,a.jsx)("code",{...r,children:t})}):(0,a.jsx)("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 py-0.5 rounded text-xs",...r,children:t})},table:e=>{let{children:t}=e;return(0,a.jsx)("div",{className:"overflow-x-auto mb-4",children:(0,a.jsx)("table",{className:"min-w-full border-collapse border border-gray-300 dark:border-gray-600",children:t})})},thead:e=>{let{children:t}=e;return(0,a.jsx)("thead",{className:"bg-gray-100 dark:bg-gray-800",children:t})},tbody:e=>{let{children:t}=e;return(0,a.jsx)("tbody",{children:t})},tr:e=>{let{children:t}=e;return(0,a.jsx)("tr",{className:"border-b border-gray-200 dark:border-gray-700",children:t})},th:e=>{let{children:t}=e;return(0,a.jsx)("th",{className:"px-3 py-2 text-left text-xs font-medium text-gray-700 dark:text-gray-300 border-r border-gray-300 dark:border-gray-600 last:border-r-0",children:t})},td:e=>{let{children:t}=e;return(0,a.jsx)("td",{className:"px-3 py-2 text-xs text-gray-600 dark:text-gray-400 border-r border-gray-300 dark:border-gray-600 last:border-r-0",children:t})},h1:e=>{let{children:t}=e;return(0,a.jsx)("h1",{className:"text-xl font-bold mb-4 mt-6 text-gray-900 dark:text-gray-100 border-b border-gray-200 dark:border-gray-700 pb-2",children:t})},h2:e=>{let{children:t}=e;return(0,a.jsx)("h2",{className:"text-lg font-semibold mb-3 mt-5 text-gray-900 dark:text-gray-100",children:t})},h3:e=>{let{children:t}=e;return(0,a.jsx)("h3",{className:"text-base font-semibold mb-2 mt-4 text-gray-800 dark:text-gray-200",children:t})},h4:e=>{let{children:t}=e;return(0,a.jsx)("h4",{className:"text-sm font-medium mb-2 mt-3 text-gray-700 dark:text-gray-300",children:t})},ul:e=>{let{children:t}=e;return(0,a.jsx)("ul",{className:"mb-3 pl-0 space-y-1 text-gray-800 dark:text-gray-200",children:t})},ol:e=>{let{children:t}=e;return(0,a.jsx)("ol",{className:"mb-3 pl-0 space-y-1 text-gray-800 dark:text-gray-200",children:t})},li:e=>{let{children:t}=e;return(0,a.jsxs)("li",{className:"flex items-start ml-4",children:[(0,a.jsx)("span",{className:"mr-2 text-gray-500 dark:text-gray-400 select-none",children:"•"}),(0,a.jsx)("span",{className:"flex-1",children:t})]})},p:e=>{let{children:t}=e;return(0,a.jsx)("p",{className:"mb-3 text-gray-800 dark:text-gray-200 leading-relaxed",children:t})},strong:e=>{let{children:t}=e;return(0,a.jsx)("strong",{className:"font-semibold text-gray-900 dark:text-gray-100",children:t})},blockquote:e=>{let{children:t}=e;return(0,a.jsx)("blockquote",{className:"border-l-4 border-gray-300 dark:border-gray-600 pl-4 italic mb-3 text-gray-700 dark:text-gray-300",children:t})}},children:String(s||"")})});case"boolean":return(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-gray-900 p-3 rounded",children:(0,a.jsx)("p",{className:"text-gray-800 dark:text-gray-200",children:String(s)})});case"number":case"int":case"float":return(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-gray-900 p-3 rounded",children:(0,a.jsx)("p",{className:"text-gray-800 dark:text-gray-200 font-mono",children:String(s)})});default:return(0,a.jsx)(w,{variant:"destructive",children:(0,a.jsxs)(_,{children:["Unsupported response type: ",(0,a.jsx)("code",{className:"font-mono text-sm",children:r.qtype_type||r.type})]})})}})()]})}function el(e){let{responseSchema:t,responseData:r}=e;if(!r)return(0,a.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm",children:"No response data to display"});if(!(null==t?void 0:t.properties))return(0,a.jsx)("div",{className:"bg-gray-50 dark:bg-gray-900 p-4 rounded",children:(0,a.jsx)("pre",{className:"text-xs text-gray-800 dark:text-gray-200 overflow-x-auto whitespace-pre-wrap",children:JSON.stringify(r,null,2)})});let s=r&&"object"==typeof r?r.outputs||r:r||{};return(0,a.jsx)("div",{className:"space-y-4",children:t.properties&&Object.entries(t.properties).map(e=>{let[t,r]=e,n=s[t];return null==n?null:(0,a.jsx)(en,{name:t,property:r,value:n},t)})})}function ei(e){var t,r;let{flow:n}=e,[l,i]=(0,s.useState)({}),[o,d]=(0,s.useState)(!1),[c,m]=(0,s.useState)(null),[p,f]=(0,s.useState)(null),g=async()=>{d(!0),f(null),m(null);try{let e=await x.executeFlow(n.path,l);m(e)}catch(e){e instanceof u?f(e.message):f(e instanceof Error?e.message:"An unknown error occurred")}finally{d(!1)}};return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"border-b pb-4",children:[(0,a.jsx)("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:n.name}),(0,a.jsxs)("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:[n.path," • ",n.method.toUpperCase()]}),n.description&&(0,a.jsx)("p",{className:"text-gray-600 dark:text-gray-300 mt-2",children:n.description})]}),(0,a.jsx)(er,{requestSchema:n.requestSchema||null,onInputChange:e=>{i(e)}}),(0,a.jsxs)("div",{children:[p&&(0,a.jsx)(w,{variant:"destructive",className:"mb-4",children:(0,a.jsx)(_,{children:(0,a.jsxs)("div",{className:"whitespace-pre-line",children:[(0,a.jsx)("span",{className:"font-medium",children:"Error:"}),(0,a.jsx)("br",{}),p]})})}),c&&(0,a.jsx)(el,{responseSchema:null==(r=n.responseSchema)||null==(t=r.properties)?void 0:t.outputs,responseData:c})]}),(0,a.jsx)("div",{className:"mt-6 pt-4 border-t",children:(0,a.jsx)(M,{disabled:o,onClick:g,children:o?"Executing...":"Execute Flow"})})]})}var eo=r(8827),ed=r(3736);function ec(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"card",className:o("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...r})}function eu(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"card-header",className:o("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...r})}function em(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"card-title",className:o("leading-none font-semibold",t),...r})}function ex(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"card-description",className:o("text-muted-foreground text-sm",t),...r})}function ep(e){let{className:t,...r}=e;return(0,a.jsx)("div",{"data-slot":"card-content",className:o("px-6",t),...r})}var ef=r(9051);function eg(e){let{className:t,children:r,...s}=e;return(0,a.jsxs)(ef.bL,{"data-slot":"scroll-area",className:o("relative",t),...s,children:[(0,a.jsx)(ef.LM,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:r}),(0,a.jsx)(eh,{}),(0,a.jsx)(ef.OK,{})]})}function eh(e){let{className:t,orientation:r="vertical",...s}=e;return(0,a.jsx)(ef.VM,{"data-slot":"scroll-area-scrollbar",orientation:r,className:o("flex touch-none p-px transition-colors select-none","vertical"===r&&"h-full w-2.5 border-l border-l-transparent","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent",t),...s,children:(0,a.jsx)(ef.lr,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eb=r(5657),ev=r(5736),ey=r(492),ej=r(1154),eN=r(2486),ew=r(4011);function ek(e){let{className:t,...r}=e;return(0,a.jsx)(ew.bL,{"data-slot":"avatar",className:o("relative flex size-8 shrink-0 overflow-hidden rounded-full",t),...r})}function e_(e){let{className:t,...r}=e;return(0,a.jsx)(ew.H4,{"data-slot":"avatar-fallback",className:o("bg-muted flex size-full items-center justify-center rounded-full",t),...r})}var eC=r(1007);function eS(e){let{mediaType:t,filename:r,url:s,size:n}=e;if(!s)return null;let l=null==t?void 0:t.startsWith("image/");return(0,a.jsx)("div",{className:"border rounded p-2 bg-background",children:l?(0,a.jsx)("img",{src:s,alt:r||"Attached image",className:"max-w-full h-auto rounded",style:{maxHeight:"200px"}}):(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(ey.A,{className:"h-4 w-4"}),(0,a.jsx)("span",{children:r||"Attachment"}),t&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",t,")"]}),n&&(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["- ","".concat((n/1048576).toFixed(1)," MB")]})]})})}function ez(e){let{message:t}=e,r="user"===t.role,n=(0,s.useMemo)(()=>{var e;return t.content||(null==(e=t.parts)?void 0:e.filter(e=>"text"===e.type).map(e=>"text"in e?e.text:"").join(""))||""},[t]),l=(0,s.useMemo)(()=>{var e;return t.files||t.experimental_attachments||(null==(e=t.parts)?void 0:e.filter(e=>"file"===e.type))||[]},[t]);return(0,a.jsxs)("div",{className:"flex gap-3 w-full ".concat(r?"justify-end":"justify-start"),children:[!r&&(0,a.jsx)(ek,{className:"h-8 w-8 flex-shrink-0",children:(0,a.jsx)(e_,{children:(0,a.jsx)(eb.A,{className:"h-4 w-4"})})}),(0,a.jsxs)("div",{className:"flex-1 max-w-[75%] space-y-2",children:[n&&(0,a.jsx)("div",{className:"rounded-lg px-3 py-2 text-sm whitespace-pre-wrap break-words ".concat(r?"bg-primary text-primary-foreground":"bg-muted"),children:n}),l.map((e,t)=>(0,a.jsx)(eS,{mediaType:e.mediaType,filename:e.filename,url:e.url,size:e.size},"".concat(e.filename,"-").concat(t)))]}),r&&(0,a.jsx)(ek,{className:"h-8 w-8 flex-shrink-0",children:(0,a.jsx)(e_,{children:(0,a.jsx)(eC.A,{className:"h-4 w-4"})})})]})}var eA=r(4416);function eE(e){let{files:t,onRemoveFile:r,onClearAll:s}=e;return(0,a.jsxs)("div",{className:"mb-3 p-2 bg-muted rounded",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,a.jsxs)("span",{className:"text-sm font-medium",children:["Attachments (",t.length,")"]}),(0,a.jsx)(M,{type:"button",variant:"ghost",size:"sm",onClick:s,className:"h-6 px-2",children:"Clear all"})]}),(0,a.jsx)("div",{className:"space-y-1",children:t.map((e,t)=>{let s;return(0,a.jsxs)("div",{className:"flex items-center justify-between bg-background rounded p-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,a.jsx)(ey.A,{className:"h-4 w-4 flex-shrink-0"}),(0,a.jsx)("span",{className:"text-sm truncate",children:e.filename}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",(s=e.size||0,"".concat((s/1048576).toFixed(1)," MB")),")"]})]}),(0,a.jsx)(M,{type:"button",variant:"ghost",size:"sm",onClick:()=>r(t),className:"h-6 w-6 p-0 flex-shrink-0","aria-label":"Remove ".concat(e.filename),children:(0,a.jsx)(eA.A,{className:"h-3 w-3"})})]},"".concat(e.filename,"-").concat(t))})})]})}let eT=()=>"".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,12));function eq(e){let{flow:t}=e,[r,n]=(0,s.useState)(()=>eT()),[l,i]=(0,s.useState)(""),[o,d]=(0,s.useState)([]),[c,u]=(0,s.useState)(null),[m,p]=(0,s.useState)(null),f=(0,s.useRef)(null),g=(0,s.useRef)(null),h=(0,s.useRef)(null),b=(0,s.useMemo)(()=>new ed.rL({api:"".concat(x.getBaseUrl().replace(/\/$/,"")).concat(t.path)}),[t.path]),{messages:v,sendMessage:y,status:j,error:N,setMessages:w}=(0,eo.Y_)({id:r,transport:b,onFinish:()=>{p(null)}}),k="streaming"===j||"submitted"===j,_=("ready"===j||"error"===j)&&(l.trim()||o.length>0),C=(0,s.useCallback)(()=>{var e;null==(e=h.current)||e.scrollIntoView({behavior:"smooth"})},[]);(0,s.useEffect)(()=>{C()},[v,C]),(0,s.useEffect)(()=>{N&&m&&(i(m.input),d(m.files),p(null),w(e=>((e=e.filter(e=>e.parts.length>0)).length>0&&e.pop(),e)))},[N,m]),(0,s.useEffect)(()=>{var e;"ready"===j&&(null==(e=f.current)||e.focus())},[j]);let z=(0,s.useCallback)(()=>{i(""),d([]),u(null),g.current&&(g.current.value="")},[]),A=(0,s.useCallback)(()=>{n(eT()),w([]),p(null),z()},[w,z]),E=(0,s.useCallback)(e=>new Promise((t,r)=>{let a=new FileReader;a.onload=()=>t(a.result),a.onerror=r,a.readAsDataURL(e)}),[]),T=(0,s.useCallback)(async e=>{let t=e.target.files;if(t){u(null);try{let e=await Promise.all(Array.from(t).map(async e=>{let t=await E(e);return{type:"file",mediaType:e.type||"application/octet-stream",filename:e.name,url:t,size:e.size}}));d(t=>[...t,...e])}catch(t){let e=t instanceof Error?t.message:"Unknown error occurred";u("Failed to process files: ".concat(e))}}},[E]),q=(0,s.useCallback)(e=>{d(t=>t.filter((t,r)=>r!==e))},[]),U=(0,s.useCallback)(()=>{d([]),g.current&&(g.current.value="")},[]),O=(0,s.useCallback)(async e=>{if(e.preventDefault(),!_)return;let t=l.trim(),r=[...o];p({input:t,files:r}),z(),r.length>0?await y({role:"user",parts:[{type:"text",text:t||"[Files attached]"},...r.map(e=>({type:"file",mediaType:e.mediaType,filename:e.filename,url:e.url,size:e.size}))]}):await y({text:t})},[_,l,o,y,z]);return(0,a.jsxs)(ec,{className:"w-full max-w-4xl mx-auto h-[calc(100vh-12rem)] flex flex-col",children:[(0,a.jsx)(eu,{className:"flex-shrink-0",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)(em,{className:"flex items-center gap-2",children:[(0,a.jsx)(eb.A,{className:"h-5 w-5"}),t.name]}),t.description&&(0,a.jsx)(ex,{children:t.description})]}),(0,a.jsxs)(M,{variant:"outline",size:"sm",onClick:A,disabled:k,className:"flex items-center gap-2",children:[(0,a.jsx)(ev.A,{className:"h-4 w-4"}),"New Conversation"]})]})}),(0,a.jsxs)(ep,{className:"flex-1 flex flex-col p-0 min-h-0",children:[(0,a.jsx)(eg,{className:"flex-1 min-h-0",children:(0,a.jsxs)("div",{className:"space-y-4 p-4",children:[0===v.length?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center min-h-[400px] text-center text-muted-foreground",children:[(0,a.jsx)(eb.A,{className:"h-12 w-12 mb-4 opacity-50"}),(0,a.jsx)("p",{children:"Start a conversation!"})]}):v.map(e=>(0,a.jsx)(ez,{message:e},e.id)),(0,a.jsx)("div",{ref:h})]})}),(0,a.jsxs)("div",{className:"border-t p-4",children:[N&&(0,a.jsxs)("div",{className:"mb-3 p-2 bg-destructive/10 text-destructive text-sm rounded",children:["Error: ",N.message]}),c&&(0,a.jsx)("div",{className:"mb-3 p-2 bg-destructive/10 text-destructive text-sm rounded",children:c}),o.length>0&&(0,a.jsx)(eE,{files:o,onRemoveFile:q,onClearAll:U}),(0,a.jsxs)("form",{onSubmit:O,className:"flex gap-2",children:[(0,a.jsx)("input",{ref:g,type:"file",multiple:!0,onChange:T,className:"hidden",accept:"*"}),(0,a.jsx)(M,{type:"button",variant:"outline",size:"icon",onClick:()=>{var e;return null==(e=g.current)?void 0:e.click()},disabled:k,"aria-label":"Attach file",children:(0,a.jsx)(ey.A,{className:"h-4 w-4"})}),(0,a.jsx)(S,{ref:f,value:l,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"===e.key&&!e.shiftKey&&_&&(e.preventDefault(),O(e))},disabled:k,placeholder:"Type your message... (Enter to send, Shift+Enter for new line)",className:"flex-1",autoFocus:!0}),(0,a.jsx)(M,{type:"submit",disabled:!_,size:"icon","aria-label":"Send message",children:k?(0,a.jsx)(ej.A,{className:"h-4 w-4 animate-spin"}):(0,a.jsx)(eN.A,{className:"h-4 w-4"})})]})]})]})]})}function eU(){var e;let{spec:t,isLoading:r,error:s}=f(),n=function(e){if(!(null==e?void 0:e.paths))return[];let t=[];return Object.entries(e.paths).forEach(r=>{let[a,s]=r;s&&["get","post","put","delete","patch","head","options","trace"].forEach(r=>{var n;let l=s[r];if(l&&(a.startsWith("/flows/")||(null==(n=l.tags)?void 0:n.includes("flow")))){let s,n=a.endsWith("/chat"),i=a.split("/");s=n?i[i.length-2]:i[i.length-1];let o="".concat(r,"-").concat(a.replace(/[^a-zA-Z0-9]/g,"_")),c=function(e,t){var r;if(!e.requestBody)return null;let a=e.requestBody.content;if(!a)return null;let s=Object.keys(a);if(0===s.length)return null;let n=null==(r=a[s[0]])?void 0:r.schema;return n?d(n,t):null}(l,e),u=function(e,t){var r;if(!e.responses)return null;let a=e.responses["200"];if(!a)return null;let s=a.content;if(!s)return null;let n=Object.keys(s);if(0===n.length)return null;let l=null==(r=s[n[0]])?void 0:r.schema;return l?d(l,t):null}(l,e);t.push({id:o,name:s.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),path:a,method:r,mode:n?"Chat":"Complete",description:l.description||l.summary,operationId:l.operationId,tags:l.tags||[],requestSchema:c,responseSchema:u})}})}),t}(t||{});if(r)return(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Loading flows..."});if(s)return(0,a.jsxs)(w,{variant:"destructive",children:[(0,a.jsx)(C.A,{className:"h-4 w-4"}),(0,a.jsx)(k,{children:"Failed to load flows"}),(0,a.jsx)(_,{children:s.message})]});if(!n.length)return(0,a.jsxs)(w,{children:[(0,a.jsx)(C.A,{className:"h-4 w-4"}),(0,a.jsx)(k,{children:"No flows found"}),(0,a.jsx)(_,{children:'No flows were found in the API specification. Make sure your FastAPI server has endpoints tagged with "flow" or paths starting with "/flows/".'})]});if(1===n.length){let e=n[0];return(0,a.jsx)("div",{className:"w-full",children:"Chat"===e.mode?(0,a.jsx)(eq,{flow:e}):(0,a.jsx)(ei,{flow:e})})}return(0,a.jsx)("div",{className:"w-full",children:(0,a.jsxs)(h,{defaultValue:null==(e=n[0])?void 0:e.id,className:"w-full",children:[(0,a.jsx)(b,{className:"grid w-full",style:{gridTemplateColumns:"repeat(".concat(n.length,", minmax(0, 1fr))")},children:n.map(e=>(0,a.jsx)(v,{value:e.id,className:"text-sm",children:e.name},e.id))}),n.map(e=>(0,a.jsx)(y,{value:e.id,className:"mt-6",children:"Chat"===e.mode?(0,a.jsx)(eq,{flow:e}):(0,a.jsx)(ei,{flow:e})},e.id))]})})}function eO(){var e,t;let{spec:r,isLoading:n}=f(),l=(null==r||null==(e=r.info)?void 0:e.title)||"QType Frontend";return(0,s.useEffect)(()=>{n||(document.title=l)},[l,n]),(0,a.jsx)("div",{className:"font-sans min-h-screen p-6 sm:p-8",children:(0,a.jsxs)("main",{className:"max-w-6xl mx-auto space-y-6",children:[(0,a.jsxs)("div",{className:"text-center border-b pb-4",children:[(0,a.jsx)("h1",{className:"text-4xl font-bold text-gray-900 dark:text-white mb-2",children:l}),(null==r||null==(t=r.info)?void 0:t.description)&&(0,a.jsx)("p",{className:"text-gray-600 dark:text-gray-400 text-lg",children:r.info.description})]}),(0,a.jsx)(eU,{})]})})}}},e=>{e.O(0,[803,393,441,964,358],()=>e(e.s=2941)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[803],{3736:(e,t,a)=>{a.d(t,{rL:()=>ee,vl:()=>et});var s,r=a(7013),o=a(9143),i=a(3201),l=Object.defineProperty,n=Symbol.for("vercel.ai.error.AI_NoOutputSpecifiedError");o.bD;Symbol.for("vercel.ai.error.AI_InvalidArgumentError");o.bD;Symbol.for("vercel.ai.error.AI_InvalidStreamPartError");o.bD;Symbol.for("vercel.ai.error.AI_InvalidToolInputError");o.bD;Symbol.for("vercel.ai.error.AI_MCPClientError");o.bD;Symbol.for("vercel.ai.error.AI_NoImageGeneratedError");o.bD;var u="AI_NoObjectGeneratedError",d=`vercel.ai.error.${u}`,p=Symbol.for(d),c=class extends o.bD{constructor({message:e="No object generated.",cause:t,text:a,response:r,usage:o,finishReason:i}){super({name:u,message:e,cause:t}),this[s]=!0,this.text=a,this.response=r,this.usage=o,this.finishReason=i}static isInstance(e){return o.bD.hasMarker(e,d)}};s=p;Symbol.for("vercel.ai.error.AI_NoSuchToolError");o.bD;Symbol.for("vercel.ai.error.AI_ToolCallRepairError");o.bD,o.bD;Symbol.for("vercel.ai.error.AI_InvalidDataContentError");o.bD;Symbol.for("vercel.ai.error.AI_InvalidMessageRoleError");o.bD;Symbol.for("vercel.ai.error.AI_MessageConversionError");o.bD;Symbol.for("vercel.ai.error.AI_DownloadError");o.bD;Symbol.for("vercel.ai.error.AI_RetryError");o.bD;var h=i.KC([i.Yj(),i.Nl(Uint8Array),i.Nl(ArrayBuffer),i.Ie(e=>{var t,a;return null!=(a=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&a},{message:"Must be a Buffer"})]),m=i.RZ(()=>i.KC([i.ch(),i.Yj(),i.ai(),i.zM(),i.g1(i.Yj(),m),i.YO(m)])),I=i.g1(i.Yj(),i.g1(i.Yj(),m)),g=i.Ik({type:i.eu("text"),text:i.Yj(),providerOptions:I.optional()}),v=i.Ik({type:i.eu("image"),image:i.KC([h,i.Nl(URL)]),mediaType:i.Yj().optional(),providerOptions:I.optional()}),E=i.Ik({type:i.eu("file"),data:i.KC([h,i.Nl(URL)]),filename:i.Yj().optional(),mediaType:i.Yj(),providerOptions:I.optional()}),y=i.Ik({type:i.eu("reasoning"),text:i.Yj(),providerOptions:I.optional()}),b=i.Ik({type:i.eu("tool-call"),toolCallId:i.Yj(),toolName:i.Yj(),input:i.L5(),providerOptions:I.optional(),providerExecuted:i.zM().optional()}),f=i.gM("type",[i.Ik({type:i.eu("text"),value:i.Yj()}),i.Ik({type:i.eu("json"),value:m}),i.Ik({type:i.eu("error-text"),value:i.Yj()}),i.Ik({type:i.eu("error-json"),value:m}),i.Ik({type:i.eu("content"),value:i.YO(i.KC([i.Ik({type:i.eu("text"),text:i.Yj()}),i.Ik({type:i.eu("media"),data:i.Yj(),mediaType:i.Yj()})]))})]),_=i.Ik({type:i.eu("tool-result"),toolCallId:i.Yj(),toolName:i.Yj(),output:f,providerOptions:I.optional()}),T=i.Ik({role:i.eu("system"),content:i.Yj(),providerOptions:I.optional()}),C=i.Ik({role:i.eu("user"),content:i.KC([i.Yj(),i.YO(i.KC([g,v,E]))]),providerOptions:I.optional()}),M=i.Ik({role:i.eu("assistant"),content:i.KC([i.Yj(),i.YO(i.KC([g,E,y,b,_]))]),providerOptions:I.optional()}),x=i.Ik({role:i.eu("tool"),content:i.YO(_),providerOptions:I.optional()});i.KC([T,C,M,x]),(0,r.hK)({prefix:"aitxt",size:24}),TransformStream;var R=i.KC([i.re({type:i.eu("text-start"),id:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("text-delta"),id:i.Yj(),delta:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("text-end"),id:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("error"),errorText:i.Yj()}),i.re({type:i.eu("tool-input-start"),toolCallId:i.Yj(),toolName:i.Yj(),providerExecuted:i.zM().optional(),dynamic:i.zM().optional()}),i.re({type:i.eu("tool-input-delta"),toolCallId:i.Yj(),inputTextDelta:i.Yj()}),i.re({type:i.eu("tool-input-available"),toolCallId:i.Yj(),toolName:i.Yj(),input:i.L5(),providerExecuted:i.zM().optional(),providerMetadata:I.optional(),dynamic:i.zM().optional()}),i.re({type:i.eu("tool-input-error"),toolCallId:i.Yj(),toolName:i.Yj(),input:i.L5(),providerExecuted:i.zM().optional(),providerMetadata:I.optional(),dynamic:i.zM().optional(),errorText:i.Yj()}),i.re({type:i.eu("tool-output-available"),toolCallId:i.Yj(),output:i.L5(),providerExecuted:i.zM().optional(),dynamic:i.zM().optional()}),i.re({type:i.eu("tool-output-error"),toolCallId:i.Yj(),errorText:i.Yj(),providerExecuted:i.zM().optional(),dynamic:i.zM().optional()}),i.re({type:i.eu("reasoning"),text:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("reasoning-start"),id:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("reasoning-delta"),id:i.Yj(),delta:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("reasoning-end"),id:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.eu("reasoning-part-finish")}),i.re({type:i.eu("source-url"),sourceId:i.Yj(),url:i.Yj(),title:i.Yj().optional(),providerMetadata:I.optional()}),i.re({type:i.eu("source-document"),sourceId:i.Yj(),mediaType:i.Yj(),title:i.Yj(),filename:i.Yj().optional(),providerMetadata:I.optional()}),i.re({type:i.eu("file"),url:i.Yj(),mediaType:i.Yj(),providerMetadata:I.optional()}),i.re({type:i.Yj().startsWith("data-"),id:i.Yj().optional(),data:i.L5(),transient:i.zM().optional()}),i.re({type:i.eu("start-step")}),i.re({type:i.eu("finish-step")}),i.re({type:i.eu("start"),messageId:i.Yj().optional(),messageMetadata:i.L5().optional()}),i.re({type:i.eu("finish"),messageMetadata:i.L5().optional()}),i.re({type:i.eu("abort")}),i.re({type:i.eu("message-metadata"),messageMetadata:i.L5()})]);async function A(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await (0,r.N8)({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await (0,r.N8)({text:function(e){let t=["ROOT"],a=-1,s=null;function r(e,r,o){switch(e){case'"':a=r,t.pop(),t.push(o),t.push("INSIDE_STRING");break;case"f":case"t":case"n":a=r,s=r,t.pop(),t.push(o),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=r,t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"{":a=r,t.pop(),t.push(o),t.push("INSIDE_OBJECT_START");break;case"[":a=r,t.pop(),t.push(o),t.push("INSIDE_ARRAY_START")}}function o(e,s){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":a=s,t.pop()}}function i(e,s){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=s,t.pop()}}for(let l=0;l<e.length;l++){let n=e[l];switch(t[t.length-1]){case"ROOT":r(n,l,"FINISH");break;case"INSIDE_OBJECT_START":switch(n){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":a=l,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===n&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break;case"INSIDE_OBJECT_KEY":'"'===n&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break;case"INSIDE_OBJECT_AFTER_KEY":":"===n&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":r(n,l,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":o(n,l);break;case"INSIDE_STRING":switch(n){case'"':t.pop(),a=l;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:a=l}break;case"INSIDE_ARRAY_START":"]"===n?(a=l,t.pop()):(a=l,r(n,l,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(n){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":a=l,t.pop();break;default:a=l}break;case"INSIDE_ARRAY_AFTER_COMMA":r(n,l,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),a=l;break;case"INSIDE_NUMBER":switch(n){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":a=l;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(n,l),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(n,l);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(n,l);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(n,l);break;default:t.pop()}break;case"INSIDE_LITERAL":{let r=e.substring(s,l+1);"false".startsWith(r)||"true".startsWith(r)||"null".startsWith(r)?a=l:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?o(n,l):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&i(n,l))}}}let l=e.slice(0,a+1);for(let a=t.length-1;a>=0;a--)switch(t[a]){case"INSIDE_STRING":l+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":l+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":l+="]";break;case"INSIDE_LITERAL":{let t=e.substring(s,e.length);"true".startsWith(t)?l+="true".slice(t.length):"false".startsWith(t)?l+="false".slice(t.length):"null".startsWith(t)&&(l+="null".slice(t.length))}}return l}(e)})).success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"}}function S(e){return e.type.startsWith("tool-")}function N(e){return e.type.split("-").slice(1).join("-")}async function k({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:e}=await a.read();if(e)break}}catch(e){null==t||t(e)}finally{a.releaseLock()}}(0,r.hK)({prefix:"aitxt",size:24}),(0,r.hK)({prefix:"aiobj",size:24});var Y=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(e){a(e)}}),this.processQueue()})}};(0,r.hK)({prefix:"aiobj",size:24}),o.bD,((e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})})({},{object:()=>w,text:()=>j});var j=()=>({type:"text",responseFormat:{type:"text"},parsePartial:async({text:e})=>({partial:e}),parseOutput:async({text:e})=>e}),w=({schema:e})=>{let t=(0,r.mD)(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:e}){let t=await A(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{let e=t.state;throw Error(`Unsupported parse state: ${e}`)}}},async parseOutput({text:e},a){let s=await (0,r.N8)({text:e});if(!s.success)throw new c({message:"No object generated: could not parse the response.",cause:s.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});let o=await (0,r.ZZ)({value:s.value,schema:t});if(!o.success)throw new c({message:"No object generated: response did not match schema.",cause:o.error,text:e,response:a.response,usage:a.usage,finishReason:a.finishReason});return o.value}}},D=Symbol.for("vercel.ai.error.AI_NoSuchProviderError");o.eM;var O=i._H({name:i.Yj(),version:i.Yj()}),L=i._H({_meta:i.lq(i.Ik({}).loose())}),q=i.Ik({method:i.Yj(),params:i.lq(L)}),F=i._H({experimental:i.lq(i.Ik({}).loose()),logging:i.lq(i.Ik({}).loose()),prompts:i.lq(i._H({listChanged:i.lq(i.zM())})),resources:i.lq(i._H({subscribe:i.lq(i.zM()),listChanged:i.lq(i.zM())})),tools:i.lq(i._H({listChanged:i.lq(i.zM())}))});L.extend({protocolVersion:i.Yj(),capabilities:F,serverInfo:O,instructions:i.lq(i.Yj())});var P=L.extend({nextCursor:i.lq(i.Yj())}),B=i.Ik({name:i.Yj(),description:i.lq(i.Yj()),inputSchema:i.Ik({type:i.eu("object"),properties:i.lq(i.Ik({}).loose())}).loose()}).loose();P.extend({tools:i.YO(B)});var K=i.Ik({type:i.eu("text"),text:i.Yj()}).loose(),U=i.Ik({type:i.eu("image"),data:i.K3(),mimeType:i.Yj()}).loose(),J=i.Ik({uri:i.Yj(),mimeType:i.lq(i.Yj())}).loose(),z=J.extend({text:i.Yj()}),V=J.extend({blob:i.K3()}),W=i.Ik({type:i.eu("resource"),resource:i.KC([z,V])}).loose();L.extend({content:i.YO(i.KC([K,U,W])),isError:i.zM().default(!1).optional()}).or(L.extend({toolResult:i.L5()}));var $=i.Ik({jsonrpc:i.eu("2.0"),id:i.KC([i.Yj(),i.ai().int()])}).merge(q).strict(),G=i.Ik({jsonrpc:i.eu("2.0"),id:i.KC([i.Yj(),i.ai().int()]),result:L}).strict(),H=i.Ik({jsonrpc:i.eu("2.0"),id:i.KC([i.Yj(),i.ai().int()]),error:i.Ik({code:i.ai().int(),message:i.Yj(),data:i.lq(i.L5())})}).strict(),Z=i.Ik({jsonrpc:i.eu("2.0")}).merge(i.Ik({method:i.Yj(),params:i.lq(L)})).strict();async function Q(e){if(null==e)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async e=>{let{name:t,type:a}=e;return{type:"file",mediaType:a,filename:t,url:await new Promise((t,a)=>{let s=new FileReader;s.onload=e=>{var a;t(null==(a=e.target)?void 0:a.result)},s.onerror=e=>a(e),s.readAsDataURL(e)})}}))}i.KC([$,Z,G,H]),o.bD;var X=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:s,fetch:r,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=a,this.body=s,this.fetch=r,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var a,s,o,i,l;let n=await (0,r.hd)(this.body),u=await (0,r.hd)(this.headers),d=await (0,r.hd)(this.credentials),p=await (null==(a=this.prepareSendMessagesRequest)?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...n,...t.body},headers:{...u,...t.headers},credentials:d,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),c=null!=(s=null==p?void 0:p.api)?s:this.api,h=(null==p?void 0:p.headers)!==void 0?p.headers:{...u,...t.headers},m=(null==p?void 0:p.body)!==void 0?p.body:{...n,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},I=null!=(o=null==p?void 0:p.credentials)?o:d,g=null!=(i=this.fetch)?i:globalThis.fetch,v=await g(c,{method:"POST",headers:{"Content-Type":"application/json",...h},body:JSON.stringify(m),credentials:I,signal:e});if(!v.ok)throw Error(null!=(l=await v.text())?l:"Failed to fetch the chat response.");if(!v.body)throw Error("The response body is empty.");return this.processResponseStream(v.body)}async reconnectToStream(e){var t,a,s,o,i;let l=await (0,r.hd)(this.body),n=await (0,r.hd)(this.headers),u=await (0,r.hd)(this.credentials),d=await (null==(t=this.prepareReconnectToStreamRequest)?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...l,...e.body},headers:{...n,...e.headers},credentials:u,requestMetadata:e.metadata})),p=null!=(a=null==d?void 0:d.api)?a:`${this.api}/${e.chatId}/stream`,c=(null==d?void 0:d.headers)!==void 0?d.headers:{...n,...e.headers},h=null!=(s=null==d?void 0:d.credentials)?s:u,m=null!=(o=this.fetch)?o:globalThis.fetch,I=await m(p,{method:"GET",headers:c,credentials:h});if(204===I.status)return null;if(!I.ok)throw Error(null!=(i=await I.text())?i:"Failed to fetch the chat response.");if(!I.body)throw Error("The response body is empty.");return this.processResponseStream(I.body)}},ee=class extends X{constructor(e={}){super(e)}processResponseStream(e){return(0,r._Z)({stream:e,schema:R}).pipeThrough(new TransformStream({async transform(e,t){if(!e.success)throw e.error;t.enqueue(e.value)}}))}},et=class{constructor({generateId:e=r.$C,id:t=e(),transport:a=new ee,messageMetadataSchema:s,dataPartSchemas:o,state:i,onError:l,onToolCall:n,onFinish:u,onData:d,sendAutomaticallyWhen:p}){this.activeResponse=void 0,this.jobExecutor=new Y,this.sendMessage=async(e,t)=>{var a,s,r,o;let i;if(null==e)return void await this.makeRequest({trigger:"submit-message",messageId:null==(a=this.lastMessage)?void 0:a.id,...t});if(i="text"in e||"files"in e?{parts:[...Array.isArray(e.files)?e.files:await Q(e.files),..."text"in e&&null!=e.text?[{type:"text",text:e.text}]:[]]}:e,null!=e.messageId){let t=this.state.messages.findIndex(t=>t.id===e.messageId);if(-1===t)throw Error(`message with id ${e.messageId} not found`);if("user"!==this.state.messages[t].role)throw Error(`message with id ${e.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,t+1),this.state.replaceMessage(t,{...i,id:e.messageId,role:null!=(s=i.role)?s:"user",metadata:e.metadata})}else this.state.pushMessage({...i,id:null!=(r=i.id)?r:this.generateId(),role:null!=(o=i.role)?o:"user",metadata:e.metadata});await this.makeRequest({trigger:"submit-message",messageId:e.messageId,...t})},this.regenerate=async({messageId:e,...t}={})=>{let a=null==e?this.state.messages.length-1:this.state.messages.findIndex(t=>t.id===e);if(-1===a)throw Error(`message ${e} not found`);this.state.messages=this.state.messages.slice(0,"assistant"===this.messages[a].role?a:a+1),await this.makeRequest({trigger:"regenerate-message",messageId:e,...t})},this.resumeStream=async(e={})=>{await this.makeRequest({trigger:"resume-stream",...e})},this.clearError=()=>{"error"===this.status&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolResult=async({tool:e,toolCallId:t,output:a})=>this.jobExecutor.run(async()=>{var e,s;let r=this.state.messages,o=r[r.length-1];this.state.replaceMessage(r.length-1,{...o,parts:o.parts.map(e=>S(e)&&e.toolCallId===t?{...e,state:"output-available",output:a}:e)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(e=>S(e)&&e.toolCallId===t?{...e,state:"output-available",output:a,errorText:void 0}:e)),"streaming"!==this.status&&"submitted"!==this.status&&(null==(e=this.sendAutomaticallyWhen)?void 0:e.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:null==(s=this.lastMessage)?void 0:s.id})}),this.stop=async()=>{var e;("streaming"===this.status||"submitted"===this.status)&&(null==(e=this.activeResponse)?void 0:e.abortController)&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=s,this.dataPartSchemas=o,this.state=i,this.onError=l,this.onToolCall=n,this.onFinish=u,this.onData=d,this.sendAutomaticallyWhen=p}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:a,body:s,messageId:o}){var i,l,n;this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage;try{let l,n={state:function({lastMessage:e,messageId:t}){return{message:(null==e?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};if(this.activeResponse=n,"resume-stream"===e){let e=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:a,body:s});if(null==e)return void this.setStatus({status:"ready"});l=e}else l=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:n.abortController.signal,metadata:t,headers:a,body:s,trigger:e,messageId:o});let d=e=>this.jobExecutor.run(()=>e({state:n.state,write:()=>{var e;this.setStatus({status:"streaming"}),n.state.message.id===(null==(e=this.lastMessage)?void 0:e.id)?this.state.replaceMessage(this.state.messages.length-1,n.state.message):this.state.pushMessage(n.state.message)}}));await k({stream:function({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:s,onError:o,onToolCall:i,onData:l}){return e.pipeThrough(new TransformStream({async transform(e,n){await s(async({state:s,write:u})=>{var d,p,c,h;function m(e){let t=s.message.parts.filter(S).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function I(e){let t=s.message.parts.filter(e=>"dynamic-tool"===e.type).find(t=>t.toolCallId===e);if(null==t)throw Error("tool-output-error must be preceded by a tool-input-available");return t}function g(e){var t;let a=s.message.parts.find(t=>S(t)&&t.toolCallId===e.toolCallId);null!=a?(a.state=e.state,a.input=e.input,a.output=e.output,a.errorText=e.errorText,a.rawInput=e.rawInput,a.providerExecuted=null!=(t=e.providerExecuted)?t:a.providerExecuted,null!=e.providerMetadata&&"input-available"===a.state&&(a.callProviderMetadata=e.providerMetadata)):s.message.parts.push({type:`tool-${e.toolName}`,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,rawInput:e.rawInput,errorText:e.errorText,providerExecuted:e.providerExecuted,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}function v(e){var t;let a=s.message.parts.find(t=>"dynamic-tool"===t.type&&t.toolCallId===e.toolCallId);null!=a?(a.state=e.state,a.toolName=e.toolName,a.input=e.input,a.output=e.output,a.errorText=e.errorText,a.rawInput=null!=(t=e.rawInput)?t:a.rawInput,null!=e.providerMetadata&&"input-available"===a.state&&(a.callProviderMetadata=e.providerMetadata)):s.message.parts.push({type:"dynamic-tool",toolName:e.toolName,toolCallId:e.toolCallId,state:e.state,input:e.input,output:e.output,errorText:e.errorText,...null!=e.providerMetadata?{callProviderMetadata:e.providerMetadata}:{}})}async function E(e){if(null!=e){let a=null!=s.message.metadata?function e(t,a){if(void 0===t&&void 0===a)return;if(void 0===t)return a;if(void 0===a)return t;let s={...t};for(let r in a)if(Object.prototype.hasOwnProperty.call(a,r)){let o=a[r];if(void 0===o)continue;let i=r in t?t[r]:void 0,l=null!==o&&"object"==typeof o&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp),n=null!=i&&"object"==typeof i&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);l&&n?s[r]=e(i,o):s[r]=o}return s}(s.message.metadata,e):e;null!=t&&await (0,r.k5)({value:a,schema:t}),s.message.metadata=a}}switch(e.type){case"text-start":{let t={type:"text",text:"",providerMetadata:e.providerMetadata,state:"streaming"};s.activeTextParts[e.id]=t,s.message.parts.push(t),u();break}case"text-delta":{let t=s.activeTextParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(d=e.providerMetadata)?d:t.providerMetadata,u();break}case"text-end":{let t=s.activeTextParts[e.id];t.state="done",t.providerMetadata=null!=(p=e.providerMetadata)?p:t.providerMetadata,delete s.activeTextParts[e.id],u();break}case"reasoning-start":{let t={type:"reasoning",text:"",providerMetadata:e.providerMetadata,state:"streaming"};s.activeReasoningParts[e.id]=t,s.message.parts.push(t),u();break}case"reasoning-delta":{let t=s.activeReasoningParts[e.id];t.text+=e.delta,t.providerMetadata=null!=(c=e.providerMetadata)?c:t.providerMetadata,u();break}case"reasoning-end":{let t=s.activeReasoningParts[e.id];t.providerMetadata=null!=(h=e.providerMetadata)?h:t.providerMetadata,t.state="done",delete s.activeReasoningParts[e.id],u();break}case"file":s.message.parts.push({type:"file",mediaType:e.mediaType,url:e.url}),u();break;case"source-url":s.message.parts.push({type:"source-url",sourceId:e.sourceId,url:e.url,title:e.title,providerMetadata:e.providerMetadata}),u();break;case"source-document":s.message.parts.push({type:"source-document",sourceId:e.sourceId,mediaType:e.mediaType,title:e.title,filename:e.filename,providerMetadata:e.providerMetadata}),u();break;case"tool-input-start":{let t=s.message.parts.filter(S);s.partialToolCalls[e.toolCallId]={text:"",toolName:e.toolName,index:t.length,dynamic:e.dynamic},e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-streaming",input:void 0,providerExecuted:e.providerExecuted}),u();break}case"tool-input-delta":{let t=s.partialToolCalls[e.toolCallId];t.text+=e.inputTextDelta;let{value:a}=await A(t.text);t.dynamic?v({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a}):g({toolCallId:e.toolCallId,toolName:t.toolName,state:"input-streaming",input:a}),u();break}case"tool-input-available":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"input-available",input:e.input,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),u(),i&&!e.providerExecuted&&await i({toolCall:e});break;case"tool-input-error":e.dynamic?v({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:e.input,errorText:e.errorText,providerMetadata:e.providerMetadata}):g({toolCallId:e.toolCallId,toolName:e.toolName,state:"output-error",input:void 0,rawInput:e.input,errorText:e.errorText,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}),u();break;case"tool-output-available":if(e.dynamic){let t=I(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-available",input:t.input,output:e.output})}else{let t=m(e.toolCallId);g({toolCallId:e.toolCallId,toolName:N(t),state:"output-available",input:t.input,output:e.output,providerExecuted:e.providerExecuted})}u();break;case"tool-output-error":if(e.dynamic){let t=I(e.toolCallId);v({toolCallId:e.toolCallId,toolName:t.toolName,state:"output-error",input:t.input,errorText:e.errorText})}else{let t=m(e.toolCallId);g({toolCallId:e.toolCallId,toolName:N(t),state:"output-error",input:t.input,rawInput:t.rawInput,errorText:e.errorText})}u();break;case"start-step":s.message.parts.push({type:"step-start"});break;case"finish-step":s.activeTextParts={},s.activeReasoningParts={};break;case"start":null!=e.messageId&&(s.message.id=e.messageId),await E(e.messageMetadata),(null!=e.messageId||null!=e.messageMetadata)&&u();break;case"finish":case"message-metadata":await E(e.messageMetadata),null!=e.messageMetadata&&u();break;case"error":null==o||o(Error(e.errorText));break;default:if(e.type.startsWith("data-")){if((null==a?void 0:a[e.type])!=null&&await (0,r.k5)({value:e.data,schema:a[e.type]}),e.transient){null==l||l(e);break}let t=null!=e.id?s.message.parts.find(t=>e.type===t.type&&e.id===t.id):void 0;null!=t?t.data=e.data:s.message.parts.push(e),null==l||l(e),u()}}n.enqueue(e)})}}))}({stream:l,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:d,onError:e=>{throw e}}),onError:e=>{throw e}}),null==(i=this.onFinish)||i.call(this,{message:n.state.message}),this.setStatus({status:"ready"})}catch(e){if("AbortError"===e.name)return this.setStatus({status:"ready"}),null;this.onError&&e instanceof Error&&this.onError(e),this.setStatus({status:"error",error:e})}finally{this.activeResponse=void 0}(null==(l=this.sendAutomaticallyWhen)?void 0:l.call(this,{messages:this.state.messages}))&&await this.makeRequest({trigger:"submit-message",messageId:null==(n=this.lastMessage)?void 0:n.id,metadata:t,headers:a,body:s})}}}}]);
@@ -1,3 +0,0 @@
1
- @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_c57559{font-family:Geist,Geist Fallback;font-style:normal}.__variable_c57559{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_152ec0{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_152ec0{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
2
-
3
- /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--color-red-500:oklch(63.7% .237 25.331);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--leading-relaxed:1.625;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-\(--cell-size\){height:var(--cell-size)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\[1\.15rem\]{height:1.15rem}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100vh-12rem\)\]{height:calc(100vh - 12rem)}.h-auto{height:auto}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-\(--cell-size\){width:var(--cell-size)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-72{width:calc(var(--spacing)*72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[75\%\]{max-width:75%}.max-w-full{max-width:100%}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.animate-spin{animation:var(--animate-spin)}.touch-none{touch-action:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap}.overflow-hidden,.truncate{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing)*0)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-\(--cell-size\){padding-inline:var(--cell-size)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-6{padding-block:calc(var(--spacing)*6)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-1{padding-right:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-0{padding-left:calc(var(--spacing)*0)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-geist-mono)}.font-sans{font-family:var(--font-geist-sans)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{color:var(--color-red-500)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d)}.ring-0,.shadow-xs{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--cell-size\:--spacing\(8\)\]{--cell-size:calc(var(--spacing)*8)}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--ring)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-focus\:border-ring:has(:focus){border-color:var(--ring)}.has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}@media (min-width:40rem){.sm\:p-8{padding:calc(var(--spacing)*8)}}@media (min-width:48rem){.md\:flex-row{flex-direction:row}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-gray-700:is(.dark *){border-color:var(--color-gray-700)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-gray-800:is(.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-gray-100:is(.dark *){color:var(--color-gray-100)}.dark\:text-gray-200:is(.dark *){color:var(--color-gray-200)}.dark\:text-gray-300:is(.dark *){color:var(--color-gray-300)}.dark\:text-gray-400:is(.dark *){color:var(--color-gray-400)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-white:is(.dark *){color:var(--color-white)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:text-accent-foreground:is(.dark *):hover{color:var(--accent-foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(12.9% .042 264.695);--card:oklch(100% 0 0);--card-foreground:oklch(12.9% .042 264.695);--popover:oklch(100% 0 0);--popover-foreground:oklch(12.9% .042 264.695);--primary:oklch(20.8% .042 265.755);--primary-foreground:oklch(98.4% .003 247.858);--secondary:oklch(96.8% .007 247.896);--secondary-foreground:oklch(20.8% .042 265.755);--muted:oklch(96.8% .007 247.896);--muted-foreground:oklch(55.4% .046 257.417);--accent:oklch(96.8% .007 247.896);--accent-foreground:oklch(20.8% .042 265.755);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.9% .013 255.508);--input:oklch(92.9% .013 255.508);--ring:oklch(70.4% .04 256.788);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.4% .003 247.858);--sidebar-foreground:oklch(12.9% .042 264.695);--sidebar-primary:oklch(20.8% .042 265.755);--sidebar-primary-foreground:oklch(98.4% .003 247.858);--sidebar-accent:oklch(96.8% .007 247.896);--sidebar-accent-foreground:oklch(20.8% .042 265.755);--sidebar-border:oklch(92.9% .013 255.508);--sidebar-ring:oklch(70.4% .04 256.788)}.dark{--background:oklch(12.9% .042 264.695);--foreground:oklch(98.4% .003 247.858);--card:oklch(20.8% .042 265.755);--card-foreground:oklch(98.4% .003 247.858);--popover:oklch(20.8% .042 265.755);--popover-foreground:oklch(98.4% .003 247.858);--primary:oklch(92.9% .013 255.508);--primary-foreground:oklch(20.8% .042 265.755);--secondary:oklch(27.9% .041 260.031);--secondary-foreground:oklch(98.4% .003 247.858);--muted:oklch(27.9% .041 260.031);--muted-foreground:oklch(70.4% .04 256.788);--accent:oklch(27.9% .041 260.031);--accent-foreground:oklch(98.4% .003 247.858);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.1% .027 264.364);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.8% .042 265.755);--sidebar-foreground:oklch(98.4% .003 247.858);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.4% .003 247.858);--sidebar-accent:oklch(27.9% .041 260.031);--sidebar-accent-foreground:oklch(98.4% .003 247.858);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.1% .027 264.364)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(1turn)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}
Binary file