create-bluecopa-react-app 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-bluecopa-react-app",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "CLI tool to create bluecopa React applications",
5
5
  "type": "module",
6
6
  "main": "./bin/create-bluecopa-react-app.js",
@@ -2,8 +2,6 @@
2
2
 
3
3
  This guide helps AI assistants and developers understand the project structure, patterns, and best practices for working with this BlueCopa React application template.
4
4
 
5
- ---
6
-
7
5
  ## 🏗️ Project Architecture Overview
8
6
 
9
7
  ### Core Stack
@@ -14,48 +12,11 @@ This guide helps AI assistants and developers understand the project structure,
14
12
  - **Vite 6** for build tooling
15
13
  - **TanStack Query** (via @bluecopa/react)
16
14
 
17
- ---
18
-
19
- ## 💡 UI Components & @bluecopa-ui Registry
20
-
21
- This project uses [shadcn/ui](https://ui.shadcn.com/) to scaffold and manage UI component libraries, configured with an explicit support for the **@bluecopa-ui** component registry.
22
-
23
- ### About the `@bluecopa-ui` Registry
24
-
25
- The registry location is defined in your `components.json` file, mapping the registry name to a hosted registry endpoint:
26
-
27
- ```json
28
- {
29
- ...
30
- "registries": {
31
- "@bluecopa-ui": "https://shadcn-ui-henna.vercel.app/r/{name}.json"
32
- }
33
- }
34
- ```
35
-
36
- - **@bluecopa-ui** registry extends the standard shadcn/ui workflow and provides a curated set of BlueCopa-centric UI components, patterns, and design tokens.
37
- - When running any `npx shadcn@latest` CLI commands and passing `add` or `add registry`, you can use `@bluecopa-ui` as the registry source, e.g.:
38
-
39
- ```bash
40
- npx shadcn@latest add @bluecopa-ui/<component>
41
- ```
42
- - This enables streamlined upgrades, easy addition of company-specific components, and consistency with the BlueCopa Design System.
43
-
44
- #### Benefits
45
-
46
- - **Consistency:** Centralizes custom BlueCopa UI patterns and updates.
47
- - **Discoverability:** Quickly add business-specific primitives, layouts, dashboards, and utilities.
48
- - **Maintenance:** Receive improvements, fixes, and new patterns from BlueCopa UX engineering.
49
-
50
- **Tip:** `@bluecopa-ui` can be used alongside the default shadcn registry. Specify which to use with `--registry` CLI flag.
51
-
52
- ---
53
-
54
15
  ### Key Directories
55
16
  ```
56
17
  app/
57
18
  ├── components/ # Reusable UI components
58
- │ ├── ui/ # shadcn/ui & @bluecopa-ui components
19
+ │ ├── ui/ # shadcn/ui components
59
20
  │ ├── app-sidebar.tsx # Main navigation
60
21
  │ ├── data-table.tsx # TanStack Table wrapper
61
22
  │ └── chart-*.tsx # Recharts components
@@ -65,25 +26,23 @@ app/
65
26
  └── dashboard/ # Sample data and components
66
27
  ```
67
28
 
68
- ---
69
-
70
29
  ## 🎨 Component Patterns
71
30
 
72
- ### shadcn/ui & @bluecopa-ui Components
73
- - All base UI components reside in `app/components/ui/`
74
- - Most are built atop [Radix UI](https://www.radix-ui.com/) primitives
75
- - Styled using Tailwind CSS and support theme variables
76
- - All component imports use the `@bluecopa-ui` registry if you fetch using `npx shadcn@latest add @bluecopa-ui/tooltip`
77
- - Use the `cn()` utility for conditional styling
78
- - Fully support dark mode and global CSS variables for design tokens
31
+ ### shadcn/ui Components
32
+ All UI components follow shadcn/ui patterns:
33
+ - Located in `app/components/ui/`
34
+ - Built on Radix UI primitives
35
+ - Styled with Tailwind CSS
36
+ - Use `cn()` utility for class merging
37
+ - Support dark mode via CSS variables
79
38
 
80
39
  ### Custom Components
81
40
  - Use TypeScript interfaces for props
82
- - Follow React best practices: hooks, `React.memo` as appropriate
83
- - Implement full accessibility (aria attributes, keyboard nav)
84
- - Use semantic HTML
41
+ - Follow React best practices (hooks, memo, etc.)
42
+ - Implement proper accessibility
43
+ - Use semantic HTML elements
85
44
 
86
- #### Example Component Structure
45
+ ### Example Component Structure
87
46
  ```tsx
88
47
  import { cn } from "~/lib/utils"
89
48
 
@@ -101,49 +60,41 @@ export function Component({ className, children }: ComponentProps) {
101
60
  }
102
61
  ```
103
62
 
104
- ---
105
-
106
63
  ## 🔧 Development Patterns
107
64
 
108
65
  ### State Management
109
- - Prefer React hooks (`useState`, `useReducer`, `useContext`)
110
- - Use TanStack Query for server state
111
- - Avoid prop drilling by using React Context
66
+ - Use React hooks (useState, useReducer, useContext)
67
+ - TanStack Query for server state
68
+ - Local state for UI interactions
69
+ - Avoid prop drilling with context
112
70
 
113
71
  ### Data Fetching
114
- - Use `@bluecopa/react` hooks for all API access
115
- - Implement loading and error states at the component level
116
- - Leverage TanStack Query caching and invalidation
117
- - Support optimistic UI for updating server state where possible
118
-
119
- ---
72
+ - Use `@bluecopa/react` hooks for API calls
73
+ - Implement loading and error states
74
+ - Use TanStack Query for caching
75
+ - Handle optimistic updates
120
76
 
121
77
  # @bluecopa/react [![npm version](https://img.shields.io/npm/v/@bluecopa/react)](https://www.npmjs.com/package/@bluecopa/react) [![License](https://img.shields.io/npm/l/@bluecopa/react)](https://github.com/bluecopa/blui/blob/main/packages/react/LICENSE)
122
78
 
123
- ## A Comprehensive React Query Integration for BlueCopa
79
+ ## A Comprehensive React Query Integration for Bluecopa
124
80
 
125
- A React library providing opinionated custom hooks for TanStack React Query integration with BlueCopa core API. This package enables efficient data fetching, caching, and synchronization with the BlueCopa platform while maintaining type safety and developer experience.
126
-
127
- ---
81
+ A React library providing opinionated custom hooks for TanStack React Query integration with Bluecopa core API. This package enables efficient data fetching, caching, and synchronization with the Bluecopa platform while maintaining type safety and developer experience.
128
82
 
129
83
  ## Table of Contents
130
84
 
131
85
  - [AI Agent Guide for BlueCopa React shadcn/ui Template](#ai-agent-guide-for-bluecopa-react-shadcnui-template)
132
86
  - [🏗️ Project Architecture Overview](#️-project-architecture-overview)
133
87
  - [Core Stack](#core-stack)
134
- - [💡 UI Components \& @bluecopa-ui Registry](#-ui-components--bluecopa-ui-registry)
135
- - [About the `@bluecopa-ui` Registry](#about-the-bluecopa-ui-registry)
136
- - [Benefits](#benefits)
137
88
  - [Key Directories](#key-directories)
138
89
  - [🎨 Component Patterns](#-component-patterns)
139
- - [shadcn/ui \& @bluecopa-ui Components](#shadcnui--bluecopa-ui-components)
90
+ - [shadcn/ui Components](#shadcnui-components)
140
91
  - [Custom Components](#custom-components)
141
- - [Example Component Structure](#example-component-structure)
92
+ - [Example Component Structure](#example-component-structure)
142
93
  - [🔧 Development Patterns](#-development-patterns)
143
94
  - [State Management](#state-management)
144
95
  - [Data Fetching](#data-fetching)
145
96
  - [@bluecopa/react ](#bluecopareact--)
146
- - [A Comprehensive React Query Integration for BlueCopa](#a-comprehensive-react-query-integration-for-bluecopa)
97
+ - [A Comprehensive React Query Integration for Bluecopa](#a-comprehensive-react-query-integration-for-bluecopa)
147
98
  - [Table of Contents](#table-of-contents)
148
99
  - [Features](#features)
149
100
  - [Installation](#installation)
@@ -151,11 +102,11 @@ A React library providing opinionated custom hooks for TanStack React Query inte
151
102
  - [Usage](#usage)
152
103
  - [Query Provider Setup](#query-provider-setup)
153
104
  - [Boilerplate Integration](#boilerplate-integration)
154
- - [Adding a BlueCopa UI Component](#adding-a-bluecopa-ui-component)
155
105
  - [Hook Examples](#hook-examples)
156
106
  - [`useUser` - Fetch authenticated user](#useuser---fetch-authenticated-user)
157
107
  - [`useDataset` - Fetch dataset with query controls](#usedataset---fetch-dataset-with-query-controls)
158
- - [... *(rest of guide unchanged)*](#-rest-of-guide-unchanged)
108
+ - [API Documentation](#api-documentation)
109
+ - [`useUser(options?)`](#useuseroptions)
159
110
  - [`useDataset(datasetId, options?)`](#usedatasetdatasetid-options)
160
111
  - [`useDatasetSample(datasetId, options?)`](#usedatasetsampledatasetid-options)
161
112
  - [`useMetric(metricId, options?)`](#usemetricmetricid-options)
@@ -226,9 +177,6 @@ A React library providing opinionated custom hooks for TanStack React Query inte
226
177
  - 📦 Re-exports of core TanStack React Query utilities
227
178
  - 📊 Sample data preview capabilities
228
179
  - 🧩 Customizable query parameters (limit, caching, retries)
229
- - 🪄 Quickly use shadcn/ui and BlueCopa-specific components via `@bluecopa-ui` registry
230
-
231
- ---
232
180
 
233
181
  ## Installation
234
182
 
@@ -238,24 +186,14 @@ npm install @bluecopa/react
238
186
  pnpm add @bluecopa/react
239
187
  ```
240
188
 
241
- **To enable shadcn/ui with BlueCopa custom components (from @bluecopa-ui registry):**
242
-
243
- ```bash
244
- npx shadcn@latest add @bluecopa-ui/<component>
245
- ```
246
-
247
- This will fetch the component from the "@bluecopa-ui" registry endpoint declared in your `components.json`. This means you automatically get the most up-to-date BlueCopa patterns and design system building blocks.
248
-
249
189
  ### Peer Dependencies
250
190
 
251
- Install required peer dependencies:
191
+ This package requires the following in your application:
252
192
 
253
193
  ```bash
254
194
  npm install react@^18.0.0 react-dom@^18.0.0
255
195
  ```
256
196
 
257
- ---
258
-
259
197
  ## Usage
260
198
 
261
199
  ### Query Provider Setup
@@ -286,7 +224,7 @@ function App() {
286
224
 
287
225
  ### Boilerplate Integration
288
226
 
289
- For projects using the BlueCopa React boilerplate, use the pre-configured `QueryProvider` component that handles API configuration automatically and integrates all BlueCopa registry UI imports:
227
+ For projects using the Bluecopa React boilerplate, use the pre-configured `QueryProvider` component that handles API configuration automatically:
290
228
 
291
229
  ```tsx
292
230
  // src/providers/query-provider.tsx
@@ -337,7 +275,7 @@ export default function QueryProvider({ children }: { children: React.ReactNode
337
275
 
338
276
  | Variable | Description | Example |
339
277
  |----------|-------------|---------|
340
- | `VITE_BLUECOPA_API_URL` | Base URL for BlueCopa API | `https://develop.bluecopa.com` |
278
+ | `VITE_BLUECOPA_API_URL` | Base URL for Bluecopa API | `https://develop.bluecopa.com` |
341
279
  | `VITE_BLUECOPA_WORKSPACE_ID` | Your workspace identifier | `my-workspace-123` |
342
280
  | `VITE_BLUECOPA_API_TOKEN` | Base64-encoded JSON string containing `accessToken` | `eyJhY2Nlc3NUb2tlbiI6IjEyMzQ1In0=` |
343
281
 
@@ -362,21 +300,7 @@ function App() {
362
300
  }
363
301
  ```
364
302
 
365
- This setup automatically configures both the BlueCopa API client and enables seamless usage of BlueCopa UI primitives pulled from the custom registry.
366
-
367
- ---
368
-
369
- ### Adding a BlueCopa UI Component
370
-
371
- To add a BlueCopa custom UI primitive (e.g., "copa-card") to your project, use:
372
-
373
- ```bash
374
- npx shadcn@latest add @bluecopa-ui/pagination-block
375
- ```
376
-
377
- The CLI pulls the latest [copa-card](https://shadcn-ui-henna.vercel.app/r/copa-card.json) definition from the registry as specified in `components.json`, and installs it to `app/components/ui/`.
378
-
379
- ---
303
+ This setup automatically configures the API client with your environment-specific settings and applies optimal caching defaults.
380
304
 
381
305
  ### Hook Examples
382
306
 
@@ -414,12 +338,14 @@ function DatasetViewer({ datasetId }) {
414
338
  }
415
339
  ```
416
340
 
417
- ---
341
+ ## API Documentation
418
342
 
419
- ## ... *(rest of guide unchanged)*
343
+ ### `useUser(options?)`
420
344
 
421
- The rest of this guide covers all @bluecopa/react data hooks, configuration, testing, and best practices as before. For adding or updating UI primitives, always prefer `@bluecopa-ui` registry where available to match BlueCopa's latest design system and component standards.
345
+ Fetches authenticated user details with query controls.
422
346
 
347
+ **Parameters:**
348
+ - `options` (optional): Query options extending TanStack React Query's `UseQueryOptions`
423
349
 
424
350
  **Returns:**
425
351
  - `data`: User object or `undefined`
@@ -19,6 +19,7 @@
19
19
  "hooks": "~/hooks"
20
20
  },
21
21
  "registries": {
22
- "@bluecopa-ui": "https://shadcn-ui-henna.vercel.app/r/{name}.json"
22
+ "@shadcn": "https://ui.shadcn.com/r/index.json",
23
+ "@bluecopa-ui": "https://shadcn-ui-henna.vercel.app/r/registry.json"
23
24
  }
24
25
  }
@@ -1,4 +1,4 @@
1
- System.register(['./__federation_fn_import-CzfA7kmP.js', './client-CsvW46cT.js'], (function (exports, module) {
1
+ System.register(['./__federation_fn_import-CzfA7kmP.js', './client-DqBeHjYu.js'], (function (exports, module) {
2
2
  'use strict';
3
3
  var importShared, clientExports, jsxRuntimeExports, MemoryRouter, BrowserRouter, App;
4
4
  return {
@@ -71631,14 +71631,12 @@ ${colorConfig.map(([key, itemConfig]) => {
71631
71631
  const handleConnect = () => {
71632
71632
  try {
71633
71633
  const config = UT();
71634
- console.log("config", config);
71635
71634
  if (!config.accessToken || !config.userId) {
71636
71635
  addEvent("system", "error", {
71637
71636
  error: "Missing configuration. Ensure accessToken and userId are set via copaSetConfig()"
71638
71637
  });
71639
71638
  return;
71640
71639
  }
71641
- console.log("config", config);
71642
71640
  wsProviderRef.current = uC.websocketUtils.WebsocketContextFactory.create(
71643
71641
  "centrifugo",
71644
71642
  {
@@ -71951,7 +71949,7 @@ ${colorConfig.map(([key, itemConfig]) => {
71951
71949
  /* @__PURE__ */ jsxRuntimeExports.jsxs(CardContent, { className: "space-y-4", children: [
71952
71950
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
71953
71951
  /* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: "font-semibold", children: "Before Using:" }),
71954
- /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "text-xs bg-muted p-3 rounded overflow-x-auto", children: `import { copaSetConfig } from "@bluecopa/core";
71952
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "text-xs bg-muted p-3 rounded overflow-x-auto", children: `import { copaSetConfig } from "@bluecopa/react";
71955
71953
 
71956
71954
  // Set configuration before connecting
71957
71955
  copaSetConfig({
@@ -72470,13 +72468,13 @@ copaSetConfig({
72470
72468
  useEffect(() => {
72471
72469
  let copaUser = {};
72472
72470
  try {
72473
- const copaToken = "eyJhY2Nlc3NUb2tlbiI6ImV5SnJhV1FpT2lKemRHY3RZbU10WVhWMGFDMXJaWGtpTENKaGJHY2lPaUpTVXpJMU5pSjkuZXlKemRXSWlPaUl3VlhsWVRWUlBkMVZpYzI5R2JtZENVbEYzY0NJc0luTjFZbXBsWTNSZmRIbHdaU0k2SWxWelpYSWlMQ0pwYzNNaU9pSm9kSFJ3Y3pvdkwySnNkV1ZqYjNCaExtTnZiU0lzSW14aGMzUmZibUZ0WlNJNkltMTViblJ5WVMxaFpHMXBia0JpYkhWbFkyOXdZUzVqYjIwaUxDSjBiMnRsYmw5MGVYQmxJam9pUVdOalpYTnpWRzlyWlc0aUxDSnZjbWRmYVdRaU9pSXdWWGxZUmprMlkwdzBXVkJHUVZkVlNVZGhiaUlzSW1sa2NGOWhZMk5sYzNOZmRHOXJaVzRpT2lKaE5HRm1PR1kwTWpFeU5tUTJNV0V6TnpRek1EazRNR0ZoT0RNNVpXTTRaVFUwWmpRMk16TXhJaXdpWlhod0lqb3hOell3TURJMU5UTTVMQ0pwWVhRaU9qRTNOakF3TVRnek16a3NJbVpwY25OMFgyNWhiV1VpT2lKdGVXNTBjbUV0WVdSdGFXNUFZbXgxWldOdmNHRXVZMjl0SWl3aWFuUnBJam9pTUZWNk9HSmhVVlZHY1V0MU9VODRORmh0UjJVaUxDSmxiV0ZwYkNJNkltMTViblJ5WVMxaFpHMXBia0JpYkhWbFkyOXdZUzVqYjIwaWZRLlZsX0o5dUVwY2NpTTJqaTFuMWt0d0FNSWhBRmVtRGJ6QlAwSlY3ZnpSWmREQUNlWGlMbHdLc0NYX2xLZEFNOHBKWXFtcXVXZEZMbmpKRjdKTXZPdHR6Q0pHRV9Md3dISjFrb2hqMHNOZjZjRFVrdmhxajRNc3lqTWoxOU5HUmJXOVgzQmJ0YW1CYTdReUJGS05kdVBOcHd5b0czaThWRC0yUVlLeHJpSXR6TjFSMndpbzlaNG1fTnY1aGFOMHY0WW4wSzdjZVA2SFNBWE00VFdFcFNUQU1ld2QyS3JPUGVkcDBrN1VCd0M2YzNuUVVNVlZUT2tfYXdVR2p1QURhUm00bEdhbEJxdTAxM1FrZldodkZaeXRFUUdFMWVtRlBVSTZGYl9zVUZSTVZ1cG5TUGNHVGhrT1k1UHRxSUZ6c0RneFppNXVNNl9RaU5DUElHSG5jZ094QSIsInJlZnJlc2hUb2tlbiI6IkNpUUE0SDFpbmdYdlRIV2EyTVovbTZLazhjRGlHRTU4ZTVJVTBTamhuejdSb1I5UllhOFMwZ01BbExKM2gwc3ovcmw4ejlVTEo1Si9URGFIdW9aTW84TC9DNTVGbmlpd2lKTk5xMGR4SG9NUlQrY0ZjRVVXZlFPSUZjT3BOa2RTVXVZd0JsVUFvbXNCZ1dmUTVGL0RBdk0wTTE5RWFDL0M0dUZrQ3RNdVZZYWtoZDJWdFVBaEQ3WnNGbGZJcHZqQkg1MkJPVmZ4OUFIZHBwR0pIK0JYUlpwMGJXdWpKSFpNODB4WktCT0N2MndOMVp0MDNDU0FQTmcwMXU4MTNEWU85bjZZOVEyT0RROVRFdXhBeHVuQWlESEwrR0RvT2NVTDc2M3F2dm5zdFl1V0tBckJldUF3d1AybzFmNFdJcHpUNTJOaDNWVVpwcVBrV1ExU3BBc3hyM0lUYzFZbHVRd253T01KdFZEWlJIUXVxRFpab3dITUVDWlBFa3B5U2Y4NUIzOWZMRzN5RTJRdzh1OEx0c3duMnQ4L2FIMjR4cjBNUi9WVEhxMkFvZE1nQkhSc0hFTmpadkpzUzMrSnhHZUVpWURHSzlLcmNZTlZYYldxTFhRN2IwZWM5dVhyaVZ5eTRtbUhiVnVFSlRmaXpBRlMvU0ZaSFNxT1FMTWxUa1F0TVBHR2RIckwzTWd6ZXliVERIY3JxYk1jRTBHSG1ydXloUlQrWXQ2cjNQOHd3V2Q4K2FrbWo4N29wRWNFSFlhZFVObWRqTll0c0Zqa3I2SjRvemtWbG53Yk45dktXYzR4eTgwaTYzMmtDaHFKRjlTdDE0UjRIWE5WRlQyTFFtOUFuY1NlZ096M3Rqd0t3a3ZGdDF5eHg5dmlvd0RjRGJickVOb2QiLCJvcmdJZCI6IjRmMDBmNGJmNWMxMmM0OWQ2OGY5YTcyOGZjMDk0YTA2MzNmZThlYjgiLCJlbWFpbCI6Im15bnRyYS1hZG1pbkBibHVlY29wYS5jb20iLCJ3b3Jrc3BhY2VJZCI6InByb2QiLCJ1c2VySWQiOiIwVXlYTVRPd1Vic29GbmdCUlF3cCIsInVzZXJOYW1lIjoibXludHJhLWFkbWluQGJsdWVjb3BhLmNvbSBteW50cmEtYWRtaW5AYmx1ZWNvcGEuY29tIiwid2ViVXJsIjoiaHR0cHM6Ly9zdGFnaW5nLmJsdWVjb3BhLmNvbS9zZXR0aW5ncy9kZXZpY2VzIiwiZGF0YVBsYW5lIjoiaHR0cDovL2RhdGEtcGxhbmUtYXBpLXN2Yy9kYXRhLXBsYW5lLWFwaSIsImRmeCI6Imh0dHA6Ly9kZngtYXBpLXN2Yy9kZngiLCJhdXRoeiI6Imh0dHA6Ly9hdXRoei1hcGktc3ZjL2F1dGh6LWFwaSIsImNvbm5lY3RvckF1dGh6IjoiaHR0cHM6Ly9hcGktc3RhZ2luZy5ibHVlY29wYS5jb20vYXV0aHotYXBpIn0=" ? atob("eyJhY2Nlc3NUb2tlbiI6ImV5SnJhV1FpT2lKemRHY3RZbU10WVhWMGFDMXJaWGtpTENKaGJHY2lPaUpTVXpJMU5pSjkuZXlKemRXSWlPaUl3VlhsWVRWUlBkMVZpYzI5R2JtZENVbEYzY0NJc0luTjFZbXBsWTNSZmRIbHdaU0k2SWxWelpYSWlMQ0pwYzNNaU9pSm9kSFJ3Y3pvdkwySnNkV1ZqYjNCaExtTnZiU0lzSW14aGMzUmZibUZ0WlNJNkltMTViblJ5WVMxaFpHMXBia0JpYkhWbFkyOXdZUzVqYjIwaUxDSjBiMnRsYmw5MGVYQmxJam9pUVdOalpYTnpWRzlyWlc0aUxDSnZjbWRmYVdRaU9pSXdWWGxZUmprMlkwdzBXVkJHUVZkVlNVZGhiaUlzSW1sa2NGOWhZMk5sYzNOZmRHOXJaVzRpT2lKaE5HRm1PR1kwTWpFeU5tUTJNV0V6TnpRek1EazRNR0ZoT0RNNVpXTTRaVFUwWmpRMk16TXhJaXdpWlhod0lqb3hOell3TURJMU5UTTVMQ0pwWVhRaU9qRTNOakF3TVRnek16a3NJbVpwY25OMFgyNWhiV1VpT2lKdGVXNTBjbUV0WVdSdGFXNUFZbXgxWldOdmNHRXVZMjl0SWl3aWFuUnBJam9pTUZWNk9HSmhVVlZHY1V0MU9VODRORmh0UjJVaUxDSmxiV0ZwYkNJNkltMTViblJ5WVMxaFpHMXBia0JpYkhWbFkyOXdZUzVqYjIwaWZRLlZsX0o5dUVwY2NpTTJqaTFuMWt0d0FNSWhBRmVtRGJ6QlAwSlY3ZnpSWmREQUNlWGlMbHdLc0NYX2xLZEFNOHBKWXFtcXVXZEZMbmpKRjdKTXZPdHR6Q0pHRV9Md3dISjFrb2hqMHNOZjZjRFVrdmhxajRNc3lqTWoxOU5HUmJXOVgzQmJ0YW1CYTdReUJGS05kdVBOcHd5b0czaThWRC0yUVlLeHJpSXR6TjFSMndpbzlaNG1fTnY1aGFOMHY0WW4wSzdjZVA2SFNBWE00VFdFcFNUQU1ld2QyS3JPUGVkcDBrN1VCd0M2YzNuUVVNVlZUT2tfYXdVR2p1QURhUm00bEdhbEJxdTAxM1FrZldodkZaeXRFUUdFMWVtRlBVSTZGYl9zVUZSTVZ1cG5TUGNHVGhrT1k1UHRxSUZ6c0RneFppNXVNNl9RaU5DUElHSG5jZ094QSIsInJlZnJlc2hUb2tlbiI6IkNpUUE0SDFpbmdYdlRIV2EyTVovbTZLazhjRGlHRTU4ZTVJVTBTamhuejdSb1I5UllhOFMwZ01BbExKM2gwc3ovcmw4ejlVTEo1Si9URGFIdW9aTW84TC9DNTVGbmlpd2lKTk5xMGR4SG9NUlQrY0ZjRVVXZlFPSUZjT3BOa2RTVXVZd0JsVUFvbXNCZ1dmUTVGL0RBdk0wTTE5RWFDL0M0dUZrQ3RNdVZZYWtoZDJWdFVBaEQ3WnNGbGZJcHZqQkg1MkJPVmZ4OUFIZHBwR0pIK0JYUlpwMGJXdWpKSFpNODB4WktCT0N2MndOMVp0MDNDU0FQTmcwMXU4MTNEWU85bjZZOVEyT0RROVRFdXhBeHVuQWlESEwrR0RvT2NVTDc2M3F2dm5zdFl1V0tBckJldUF3d1AybzFmNFdJcHpUNTJOaDNWVVpwcVBrV1ExU3BBc3hyM0lUYzFZbHVRd253T01KdFZEWlJIUXVxRFpab3dITUVDWlBFa3B5U2Y4NUIzOWZMRzN5RTJRdzh1OEx0c3duMnQ4L2FIMjR4cjBNUi9WVEhxMkFvZE1nQkhSc0hFTmpadkpzUzMrSnhHZUVpWURHSzlLcmNZTlZYYldxTFhRN2IwZWM5dVhyaVZ5eTRtbUhiVnVFSlRmaXpBRlMvU0ZaSFNxT1FMTWxUa1F0TVBHR2RIckwzTWd6ZXliVERIY3JxYk1jRTBHSG1ydXloUlQrWXQ2cjNQOHd3V2Q4K2FrbWo4N29wRWNFSFlhZFVObWRqTll0c0Zqa3I2SjRvemtWbG53Yk45dktXYzR4eTgwaTYzMmtDaHFKRjlTdDE0UjRIWE5WRlQyTFFtOUFuY1NlZ096M3Rqd0t3a3ZGdDF5eHg5dmlvd0RjRGJickVOb2QiLCJvcmdJZCI6IjRmMDBmNGJmNWMxMmM0OWQ2OGY5YTcyOGZjMDk0YTA2MzNmZThlYjgiLCJlbWFpbCI6Im15bnRyYS1hZG1pbkBibHVlY29wYS5jb20iLCJ3b3Jrc3BhY2VJZCI6InByb2QiLCJ1c2VySWQiOiIwVXlYTVRPd1Vic29GbmdCUlF3cCIsInVzZXJOYW1lIjoibXludHJhLWFkbWluQGJsdWVjb3BhLmNvbSBteW50cmEtYWRtaW5AYmx1ZWNvcGEuY29tIiwid2ViVXJsIjoiaHR0cHM6Ly9zdGFnaW5nLmJsdWVjb3BhLmNvbS9zZXR0aW5ncy9kZXZpY2VzIiwiZGF0YVBsYW5lIjoiaHR0cDovL2RhdGEtcGxhbmUtYXBpLXN2Yy9kYXRhLXBsYW5lLWFwaSIsImRmeCI6Imh0dHA6Ly9kZngtYXBpLXN2Yy9kZngiLCJhdXRoeiI6Imh0dHA6Ly9hdXRoei1hcGktc3ZjL2F1dGh6LWFwaSIsImNvbm5lY3RvckF1dGh6IjoiaHR0cHM6Ly9hcGktc3RhZ2luZy5ibHVlY29wYS5jb20vYXV0aHotYXBpIn0=") : "{}";
72471
+ const copaToken = "eyJhY2Nlc3NUb2tlbiI6ImV5SnJhV1FpT2lJd1pHSXpNemRoWXkwek9EVm1MVFJpT0RndFltWm1NQzFrTURJek5HUTFNamMxWlRnaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SnpkV0lpT2lJd1ZFOXNiVlZ4ZURCVVMzTmxWRzQ0VnpablZ5SXNJbk4xWW1wbFkzUmZkSGx3WlNJNklsVnpaWElpTENKcGMzTWlPaUpvZEhSd2N6b3ZMMkpzZFdWamIzQmhMbU52YlNJc0lteGhjM1JmYm1GdFpTSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dElpd2lkRzlyWlc1ZmRIbHdaU0k2SWtGalkyVnpjMVJ2YTJWdUlpd2liM0puWDJsa0lqb2lNRlJQYkd4VE9HY3pNa04xYmpoaVdsaDNXR3NpTENKcFpIQmZZV05qWlhOelgzUnZhMlZ1SWpvaU1ERkxPRXBhUmpaTFVVUXdOMDVMTjB0TFVVVXlNREZUTlRJaUxDSmxlSEFpT2pFM05qRTFPVEF6TlRNc0ltbGhkQ0k2TVRjMk1UVTRNekUxTXl3aVptbHljM1JmYm1GdFpTSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dElpd2lhblJwSWpvaU1GWXdjVlpQTWtZME1GWjRXRmMxVFhaeVJuWWlMQ0psYldGcGJDSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dEluMC5XRHNwNXB3dWc5UmpuYnVlc0RvLXVRUVl3dzFoWEQ1WHR1VjZvVHRUQ1dEQ2E0OEkxcVJ5ZUhNZmFQTTlScjN1UEdQbEdnbDAzRGtLUFJkTW54YU10UG1iUlZXRklJWnRHUUpZMnJDVTBpekpPcldNcFNPRDJVUHY1WjFUdlhHSk82SGNoa01lX3g3am5SMmFOd2hXZy1XdlVwd1M3UmdIUW1FVjRwVnh3SmdYWTdRR0ZneTJHR1B6MFpLRFFuTzZPZG5TcEhYYkcwTkx4Znc1dnY2aXB3S2dxU1pPcWRIVkwtNjZ4bmFFeTZpYlpOd0JaRldrY01nZFNBR0lVeGJNbWNfVDZDcm8yZ1dkYnMxcXRERnpXQUdnVHUwRnIzRWF6VFFXOXVmREN3V0JjTzNoSFF1aV9jbjFFQ3RGWW1tXzA1NV9kS0hlVmhldHdPWVhyWVlEaFZrQTdKcTg4cmFqekI3LVJCUEw0ME9rQVdxbDh5NXhhZnRYUEgyTUFJM1J2bXc0Z3F0NzByc1JxZDN6ZHVFZ2pBaWp1UjFKTXRGWHMtMU5EbnFpNTNSdFlzQ055QkY4WnZfdnJMMXk1UXlTRDdnSmZMN0VLRDJPZnQ2OVNlWXZaeGZYUTRJb2hyNnVoaG1vVTlKYmdVeEtKMEctako2c2JyUVV1SkQzMDFYZFNEdEE2YnVkdnlrSFpnNGFjWG5vWkJNVGdNb2VVaDZGTUdhMERpUndIZ09aNjlpYWZFMDRvOFhCZGR4alRiamwyZ0ozR3Yxbk5KS0EyYlUyTHUxS3RIN29XbXhtRjlSbEJlSmx6NjJKMktnUU5KSHpMY1JPb2s5cDV5OXZET3pHeFRQWkhGR1MwUTZtcXAxOVE3R3Jmem9Wb2Q4R0Ixb1pJcnFKY1ZCNXczTSIsInJlZnJlc2hUb2tlbiI6IkFRSUNBSGd5VlBZaGhhUkFnU29PUk5CbjBBR205WmF4WktUakxVNHBXY3NiMGVyU0NRRXBKQnJUK0dxVzNPTzY3SDR1djU5aUFBQUIvRENDQWZnR0NTcUdTSWIzRFFFSEJxQ0NBZWt3Z2dIbEFnRUFNSUlCM2dZSktvWklodmNOQVFjQk1CNEdDV0NHU0FGbEF3UUJMakFSQkF3cGdrZllEMkFjRkt3TGJHb0NBUkNBZ2dHdjhueWF6VVZIYkJNYmFkWWRMMW83U0hGUjkzcTFyOCtKcElQWXgyQlZFV2dpaEN1dUFNdGk1SllRVjZmdGZVd21XN3FiQ2ZDU0VHdGhOUE1vVm40dXBZYzNNYVg0R1ZQeEY0MkJtUFFVZVZWcVpzN05HOWp0YkdYbGdwTlVpaDZzVm9HdlZ6cXdXeDhJeWQyVzNBdnRSTGZwQzRnTG5ScXIrY1NaTzlqVy9xUmdCTjNFeFY3bkNrY0luZ2wvTU9NMlhNaFQ4eVc0VmlJMW04MVZvQk5EQ2lydkZZTzNRUXpHYitYYktjNnFSWCtYR0F5eHZpQ1A3NlI2YldJNDhtZzVyY1FFTFNPcXZvdDdFYjcwNzBOUkQ5T3FXc2hVckp2ekcwcWduTlNUYmhPZTl5T3d2bHA3QjNGQVo0aGR0YjhGYzJHWTdHTWd3SjJRRnVmeC9xRE1UcSszTFBGSmEwdHAwTS81Unh6MVJZVUNXcUpUMllYZUpUdUNOVXdKajFOWG1NSFBLMzVHOFdhZVNhSlBYYlNTak5IU0lEdnU4SVRvTStxTGVlY2FlbzZHQk9qMjBId0M0Y29ERno1RjdwL1ZwQ3hCK0tVbTFjYUU3dUdycVlOYktCeTd5UkhYTUFITGIzQkoxZkJlc0FHQ3lodXZDM0ZGdkJyVHBERVdsSGFwWFJaNnNMbUszNWJwU1J0ZDU5MnFzNmRMMjFVN0hhUjc0eDgxOThubnY2TVVZYzZLRUVEZXJEb05uekF3azNRPSIsIm9yZ0lkIjoib3JnXzAxR0U2Rzk3RUVaNU5LQlhTV0VZRUdaSEVLIiwiZW1haWwiOiJ0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSIsIndvcmtzcGFjZUlkIjoicHJvZCIsInVzZXJJZCI6IjBUT2xtVXF4MFRLc2VUbjhXNmdXIiwidXNlck5hbWUiOiJ0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSB0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSIsIndlYlVybCI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9zZXR0aW5ncy9kZXZpY2VzIiwiZGF0YVBsYW5lIjoiaHR0cHM6Ly9hcGktZGV2ZWxvcC5ibHVlY29wYS5jb20vZGF0YS1wbGFuZS1hcGkiLCJkZngiOiJodHRwczovL2FwaS1kZXZlbG9wLmJsdWVjb3BhLmNvbS9kZngiLCJhdXRoeiI6Imh0dHBzOi8vZGV2YXBpLmJsdWVjb3BhLmNvbS9hdXRoei1hcGkiLCJjb25uZWN0b3JBdXRoeiI6Imh0dHBzOi8vZGV2YXBpLmJsdWVjb3BhLmNvbS9hdXRoei1hcGkifQ==" ? atob("eyJhY2Nlc3NUb2tlbiI6ImV5SnJhV1FpT2lJd1pHSXpNemRoWXkwek9EVm1MVFJpT0RndFltWm1NQzFrTURJek5HUTFNamMxWlRnaUxDSmhiR2NpT2lKU1V6STFOaUo5LmV5SnpkV0lpT2lJd1ZFOXNiVlZ4ZURCVVMzTmxWRzQ0VnpablZ5SXNJbk4xWW1wbFkzUmZkSGx3WlNJNklsVnpaWElpTENKcGMzTWlPaUpvZEhSd2N6b3ZMMkpzZFdWamIzQmhMbU52YlNJc0lteGhjM1JmYm1GdFpTSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dElpd2lkRzlyWlc1ZmRIbHdaU0k2SWtGalkyVnpjMVJ2YTJWdUlpd2liM0puWDJsa0lqb2lNRlJQYkd4VE9HY3pNa04xYmpoaVdsaDNXR3NpTENKcFpIQmZZV05qWlhOelgzUnZhMlZ1SWpvaU1ERkxPRXBhUmpaTFVVUXdOMDVMTjB0TFVVVXlNREZUTlRJaUxDSmxlSEFpT2pFM05qRTFPVEF6TlRNc0ltbGhkQ0k2TVRjMk1UVTRNekUxTXl3aVptbHljM1JmYm1GdFpTSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dElpd2lhblJwSWpvaU1GWXdjVlpQTWtZME1GWjRXRmMxVFhaeVJuWWlMQ0psYldGcGJDSTZJblJsYzNScGJtZGtaWFpBWW14MVpXTnZjR0V1WTI5dEluMC5XRHNwNXB3dWc5UmpuYnVlc0RvLXVRUVl3dzFoWEQ1WHR1VjZvVHRUQ1dEQ2E0OEkxcVJ5ZUhNZmFQTTlScjN1UEdQbEdnbDAzRGtLUFJkTW54YU10UG1iUlZXRklJWnRHUUpZMnJDVTBpekpPcldNcFNPRDJVUHY1WjFUdlhHSk82SGNoa01lX3g3am5SMmFOd2hXZy1XdlVwd1M3UmdIUW1FVjRwVnh3SmdYWTdRR0ZneTJHR1B6MFpLRFFuTzZPZG5TcEhYYkcwTkx4Znc1dnY2aXB3S2dxU1pPcWRIVkwtNjZ4bmFFeTZpYlpOd0JaRldrY01nZFNBR0lVeGJNbWNfVDZDcm8yZ1dkYnMxcXRERnpXQUdnVHUwRnIzRWF6VFFXOXVmREN3V0JjTzNoSFF1aV9jbjFFQ3RGWW1tXzA1NV9kS0hlVmhldHdPWVhyWVlEaFZrQTdKcTg4cmFqekI3LVJCUEw0ME9rQVdxbDh5NXhhZnRYUEgyTUFJM1J2bXc0Z3F0NzByc1JxZDN6ZHVFZ2pBaWp1UjFKTXRGWHMtMU5EbnFpNTNSdFlzQ055QkY4WnZfdnJMMXk1UXlTRDdnSmZMN0VLRDJPZnQ2OVNlWXZaeGZYUTRJb2hyNnVoaG1vVTlKYmdVeEtKMEctako2c2JyUVV1SkQzMDFYZFNEdEE2YnVkdnlrSFpnNGFjWG5vWkJNVGdNb2VVaDZGTUdhMERpUndIZ09aNjlpYWZFMDRvOFhCZGR4alRiamwyZ0ozR3Yxbk5KS0EyYlUyTHUxS3RIN29XbXhtRjlSbEJlSmx6NjJKMktnUU5KSHpMY1JPb2s5cDV5OXZET3pHeFRQWkhGR1MwUTZtcXAxOVE3R3Jmem9Wb2Q4R0Ixb1pJcnFKY1ZCNXczTSIsInJlZnJlc2hUb2tlbiI6IkFRSUNBSGd5VlBZaGhhUkFnU29PUk5CbjBBR205WmF4WktUakxVNHBXY3NiMGVyU0NRRXBKQnJUK0dxVzNPTzY3SDR1djU5aUFBQUIvRENDQWZnR0NTcUdTSWIzRFFFSEJxQ0NBZWt3Z2dIbEFnRUFNSUlCM2dZSktvWklodmNOQVFjQk1CNEdDV0NHU0FGbEF3UUJMakFSQkF3cGdrZllEMkFjRkt3TGJHb0NBUkNBZ2dHdjhueWF6VVZIYkJNYmFkWWRMMW83U0hGUjkzcTFyOCtKcElQWXgyQlZFV2dpaEN1dUFNdGk1SllRVjZmdGZVd21XN3FiQ2ZDU0VHdGhOUE1vVm40dXBZYzNNYVg0R1ZQeEY0MkJtUFFVZVZWcVpzN05HOWp0YkdYbGdwTlVpaDZzVm9HdlZ6cXdXeDhJeWQyVzNBdnRSTGZwQzRnTG5ScXIrY1NaTzlqVy9xUmdCTjNFeFY3bkNrY0luZ2wvTU9NMlhNaFQ4eVc0VmlJMW04MVZvQk5EQ2lydkZZTzNRUXpHYitYYktjNnFSWCtYR0F5eHZpQ1A3NlI2YldJNDhtZzVyY1FFTFNPcXZvdDdFYjcwNzBOUkQ5T3FXc2hVckp2ekcwcWduTlNUYmhPZTl5T3d2bHA3QjNGQVo0aGR0YjhGYzJHWTdHTWd3SjJRRnVmeC9xRE1UcSszTFBGSmEwdHAwTS81Unh6MVJZVUNXcUpUMllYZUpUdUNOVXdKajFOWG1NSFBLMzVHOFdhZVNhSlBYYlNTak5IU0lEdnU4SVRvTStxTGVlY2FlbzZHQk9qMjBId0M0Y29ERno1RjdwL1ZwQ3hCK0tVbTFjYUU3dUdycVlOYktCeTd5UkhYTUFITGIzQkoxZkJlc0FHQ3lodXZDM0ZGdkJyVHBERVdsSGFwWFJaNnNMbUszNWJwU1J0ZDU5MnFzNmRMMjFVN0hhUjc0eDgxOThubnY2TVVZYzZLRUVEZXJEb05uekF3azNRPSIsIm9yZ0lkIjoib3JnXzAxR0U2Rzk3RUVaNU5LQlhTV0VZRUdaSEVLIiwiZW1haWwiOiJ0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSIsIndvcmtzcGFjZUlkIjoicHJvZCIsInVzZXJJZCI6IjBUT2xtVXF4MFRLc2VUbjhXNmdXIiwidXNlck5hbWUiOiJ0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSB0ZXN0aW5nZGV2QGJsdWVjb3BhLmNvbSIsIndlYlVybCI6Imh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9zZXR0aW5ncy9kZXZpY2VzIiwiZGF0YVBsYW5lIjoiaHR0cHM6Ly9hcGktZGV2ZWxvcC5ibHVlY29wYS5jb20vZGF0YS1wbGFuZS1hcGkiLCJkZngiOiJodHRwczovL2FwaS1kZXZlbG9wLmJsdWVjb3BhLmNvbS9kZngiLCJhdXRoeiI6Imh0dHBzOi8vZGV2YXBpLmJsdWVjb3BhLmNvbS9hdXRoei1hcGkiLCJjb25uZWN0b3JBdXRoeiI6Imh0dHBzOi8vZGV2YXBpLmJsdWVjb3BhLmNvbS9hdXRoei1hcGkifQ==") : "{}";
72474
72472
  copaUser = JSON.parse(copaToken);
72475
72473
  } catch (error) {
72476
72474
  console.warn("Failed to parse VITE_BLUECOPA_API_TOKEN:", error);
72477
72475
  }
72478
72476
  NT({
72479
- apiBaseUrl: props.apiBaseUrl || "https://staging.bluecopa.com/api/v1",
72477
+ apiBaseUrl: props.apiBaseUrl || "https://develop.bluecopa.com/api/v1",
72480
72478
  workspaceId: props.workspaceId || "prod",
72481
72479
  accessToken: props.accessToken || copaUser?.accessToken || "",
72482
72480
  userId: props.userId || copaUser.userId || ""
@@ -1,4 +1,4 @@
1
- System.register(['./__federation_fn_import-CzfA7kmP.js', './client-CsvW46cT.js'], (function (exports, module) {
1
+ System.register(['./__federation_fn_import-CzfA7kmP.js', './client-DqBeHjYu.js'], (function (exports, module) {
2
2
  'use strict';
3
3
  var importShared, ReactDOM, jsxRuntimeExports, BrowserRouter, App;
4
4
  return {
@@ -8,7 +8,7 @@ System.register([], (function (exports, module) {
8
8
  let moduleMap = {
9
9
  "./App":()=>{
10
10
  dynamicLoadingCss(["remoteEntry.css"], false, './App');
11
- return __federation_import('./__federation_expose_App-BIH7hwj_.js').then(module =>Object.keys(module).every(item => exportSet.has(item)) ? () => module.default : () => module)},};
11
+ return __federation_import('./__federation_expose_App-DK1ZdBX-.js').then(module =>Object.keys(module).every(item => exportSet.has(item)) ? () => module.default : () => module)},};
12
12
  const seen = {};
13
13
  const dynamicLoadingCss = exports("dynamicLoadingCss", (cssFilePaths, dontAppendStylesToHead, exposeItemName) => {
14
14
  const metaUrl = module.meta.url;
@@ -6,11 +6,11 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Bluecopa - AI-powered Finance Automation</title>
8
8
  <meta name="description" content="AI-powered close automation for modern finance teams. Streamline your order-to-cash, procure-to-pay, and record-to-report processes." />
9
- <script type="module" crossorigin src="/assets/index-CFECuPSy.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-B8EMpf6o.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="/assets/__federation_fn_import-CzfA7kmP.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/index-BzNimew1.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/index-DMFtQdNS.js">
13
- <link rel="modulepreload" crossorigin href="/assets/client-CsvW46cT.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/client-DqBeHjYu.js">
14
14
  <link rel="stylesheet" crossorigin href="/assets/remoteEntry.css">
15
15
  </head>
16
16
  <body>
@@ -51,7 +51,7 @@
51
51
  "tailwindcss": "^4.1.13",
52
52
  "tw-animate-css": "^1.3.8",
53
53
  "typescript": "^5.8.3",
54
- "vite": "^6.3.3",
54
+ "vite": "6.4.1",
55
55
  "vite-tsconfig-paths": "^5.1.4"
56
56
  }
57
57
  },
@@ -617,19 +617,6 @@
617
617
  "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
618
618
  "license": "MIT"
619
619
  },
620
- "node_modules/@isaacs/fs-minipass": {
621
- "version": "4.0.1",
622
- "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
623
- "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
624
- "dev": true,
625
- "license": "ISC",
626
- "dependencies": {
627
- "minipass": "^7.0.4"
628
- },
629
- "engines": {
630
- "node": ">=18.0.0"
631
- }
632
- },
633
620
  "node_modules/@jridgewell/gen-mapping": {
634
621
  "version": "0.3.13",
635
622
  "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -2219,8 +2206,7 @@
2219
2206
  "hasInstallScript": true,
2220
2207
  "license": "MIT",
2221
2208
  "dependencies": {
2222
- "detect-libc": "^2.0.4",
2223
- "tar": "^7.5.1"
2209
+ "detect-libc": "^2.0.4"
2224
2210
  },
2225
2211
  "engines": {
2226
2212
  "node": ">= 10"
@@ -2738,16 +2724,6 @@
2738
2724
  "protobufjs": "^7.2.5"
2739
2725
  }
2740
2726
  },
2741
- "node_modules/chownr": {
2742
- "version": "3.0.0",
2743
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
2744
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
2745
- "dev": true,
2746
- "license": "BlueOak-1.0.0",
2747
- "engines": {
2748
- "node": ">=18"
2749
- }
2750
- },
2751
2727
  "node_modules/class-variance-authority": {
2752
2728
  "version": "0.7.1",
2753
2729
  "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
@@ -3650,29 +3626,6 @@
3650
3626
  "node": ">= 0.6"
3651
3627
  }
3652
3628
  },
3653
- "node_modules/minipass": {
3654
- "version": "7.1.2",
3655
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
3656
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
3657
- "dev": true,
3658
- "license": "ISC",
3659
- "engines": {
3660
- "node": ">=16 || 14 >=14.17"
3661
- }
3662
- },
3663
- "node_modules/minizlib": {
3664
- "version": "3.1.0",
3665
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
3666
- "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
3667
- "dev": true,
3668
- "license": "MIT",
3669
- "dependencies": {
3670
- "minipass": "^7.1.2"
3671
- },
3672
- "engines": {
3673
- "node": ">= 18"
3674
- }
3675
- },
3676
3629
  "node_modules/ms": {
3677
3630
  "version": "2.1.3",
3678
3631
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -4145,23 +4098,6 @@
4145
4098
  "url": "https://opencollective.com/webpack"
4146
4099
  }
4147
4100
  },
4148
- "node_modules/tar": {
4149
- "version": "7.5.1",
4150
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz",
4151
- "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==",
4152
- "dev": true,
4153
- "license": "ISC",
4154
- "dependencies": {
4155
- "@isaacs/fs-minipass": "^4.0.0",
4156
- "chownr": "^3.0.0",
4157
- "minipass": "^7.1.2",
4158
- "minizlib": "^3.1.0",
4159
- "yallist": "^5.0.0"
4160
- },
4161
- "engines": {
4162
- "node": ">=18"
4163
- }
4164
- },
4165
4101
  "node_modules/tiny-invariant": {
4166
4102
  "version": "1.3.3",
4167
4103
  "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
@@ -4329,9 +4265,9 @@
4329
4265
  }
4330
4266
  },
4331
4267
  "node_modules/vite": {
4332
- "version": "6.3.6",
4333
- "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz",
4334
- "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==",
4268
+ "version": "6.4.1",
4269
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
4270
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
4335
4271
  "license": "MIT",
4336
4272
  "dependencies": {
4337
4273
  "esbuild": "^0.25.0",
@@ -4422,16 +4358,6 @@
4422
4358
  }
4423
4359
  }
4424
4360
  },
4425
- "node_modules/yallist": {
4426
- "version": "5.0.0",
4427
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
4428
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
4429
- "dev": true,
4430
- "license": "BlueOak-1.0.0",
4431
- "engines": {
4432
- "node": ">=18"
4433
- }
4434
- },
4435
4361
  "node_modules/zod": {
4436
4362
  "version": "4.1.12",
4437
4363
  "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
@@ -10,7 +10,7 @@
10
10
  "typecheck": "tsc"
11
11
  },
12
12
  "dependencies": {
13
- "@bluecopa/react": "0.1.14",
13
+ "@bluecopa/react": "0.1.15",
14
14
  "@dnd-kit/core": "^6.3.1",
15
15
  "@dnd-kit/modifiers": "^9.0.0",
16
16
  "@dnd-kit/sortable": "^10.0.0",
@@ -55,7 +55,7 @@
55
55
  "tailwindcss": "^4.1.13",
56
56
  "tw-animate-css": "^1.3.8",
57
57
  "typescript": "^5.8.3",
58
- "vite": "^6.3.3",
58
+ "vite": "6.4.1",
59
59
  "vite-tsconfig-paths": "^5.1.4"
60
60
  }
61
61
  }