diff --git a/.cursor/rules/frontend.mdc b/.cursor/rules/frontend.mdc new file mode 100644 index 0000000000..81b63d90af --- /dev/null +++ b/.cursor/rules/frontend.mdc @@ -0,0 +1,104 @@ +--- +description: building frontend code in react and typescript +globs: *.tsx,*.ts,*.css +--- +You are an expert in TypeScript, Node.js, react-dom router, React, Shadcn UI, Radix UI and Tailwind. + +# Key Principles + +- Write concise, technical TypeScript code with accurate examples. +- Use functional and declarative programming patterns; avoid classes. +- Prefer iteration and modularization over code duplication. +- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). +- Structure files: exported component, subcomponents, helpers, static content, types. + +# Component Composition + +Break down complex UIs into smaller, more manageable parts, which can be easily reused across different parts of the application. + +- Reusability: Components can be easily reused across different parts of the application, making it easier to maintain and update the UI. +- Modularity: Breaking the UI down into smaller, more manageable components makes it easier to understand and work with, particularly for larger and more complex applications. +- Separation of Concerns: By separating the UI into smaller components, each component can focus on its own specific functionality, making it easier to test and debug. +- Code Maintainability: Using smaller components that are easy to understand and maintain makes it easier to make changes and update the application over time. + +Avoid large components with nested rendering functions + + +# State + +- useState - for simpler states that are independent +- useReducer - for more complex states where on a single action you want to update several pieces of state +- context + hooks = good state management don't use other library +- prefix -context and -provider for context and respective provider. + +# Naming Conventions + +- Use lowercase with dashes for directories (e.g., components/auth-wizard). +- Favor named exports for components. + +# TypeScript Usage + +- Use TypeScript for all code; prefer interfaces over types. +- Avoid enums; use maps instead. +- Use functional components with TypeScript interfaces. + +# Syntax and Formatting + +- Use the "function" keyword for pure functions. +- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements. +- Use declarative JSX. +- Use arrow functions for improving code readability and reducing verbosity, especially for smaller functions like event handlers or callback functions. +- Avoid using inline styles + +## Project Structure + +Colocate things as close as possible to where it's being used + +``` +src/ +├── components/ # React components +│ ├── ui/ # Shadcn UI components +│ │ ├── errors/ # Error handling components +│ │ └── breadcrumbs/ # Navigation breadcrumbs +│ ├── shared/ # Shared components used across pages +│ │ └── {pagename}/ # Page-specific components +│ ├── common/ # Truly reusable components +│ └── features/ # Complex feature modules +│ └── theme/ # Theme-related components and logic +├── pages/ # Page components and routes +├── layout/ # Layout components +├── hooks/ # Custom React hooks +├── contexts/ # React context providers +├── lib/ # Utility functions and constants +└── types/ # TypeScript type definitions +``` + +DON'T modify shadcn component directly they are stored in src/components/ui/* + + +# UI and Styling + +- Use Shadcn UI, Radix, and Tailwind for components and styling. +- Implement responsive design with Tailwind CSS. + +# Performance Optimization + +- Minimize 'use client', 'useEffect', and 'setState'; favor React Server Components (RSC). +- Wrap client components in Suspense with fallback. +- Use dynamic loading for non-critical components. +- Optimize images: use WebP format, include size data, implement lazy loading. + +# Key Conventions + +- Use 'nuqs' for URL search parameter state management. +- Optimize Web Vitals (LCP, CLS, FID). +- Limit 'use client': + +# Unit Tests + +Unit testing is done to test individual components of the React application involving testing the functionality of each component in isolation to ensure that it works as intended. + +- Use Jest for unit testing. +- Write unit tests for each component. +- Use React Testing Library for testing components. +- Use React Testing Library for testing components. diff --git a/.gitignore b/.gitignore index 47a961cca4..955575c74c 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ dlv rootfs/ dist !pkg/dataobj/explorer/dist +!pkg/ui/frontend/dist *coverage.txt *test_results.txt .DS_Store @@ -37,8 +38,8 @@ dist pkg/loki/wal tools/lambda-promtail/main tools/dev/kafka/data/ -pkg/dataobj/explorer/ui/node_modules/* -pkg/dataobj/explorer/ui/.vite/* +pkg/ui/frontend/node_modules/* +pkg/ui/frontend/.vite/* # Submodule added by `act` CLI _shared-workflows-dockerhub-login diff --git a/Makefile b/Makefile index ce1fd1fa61..5c1e037220 100644 --- a/Makefile +++ b/Makefile @@ -199,7 +199,7 @@ cmd/loki/loki-debug: CGO_ENABLED=0 go build $(DEBUG_GO_FLAGS) -o $@ ./$(@D) ui-assets: - make -C pkg/dataobj/explorer/ui build + make -C pkg/ui/frontend build ############### # Loki-Canary # ############### diff --git a/cmd/loki/Dockerfile b/cmd/loki/Dockerfile index 700fa1710d..4fcb773f34 100644 --- a/cmd/loki/Dockerfile +++ b/cmd/loki/Dockerfile @@ -5,13 +5,13 @@ FROM node:22-alpine AS ui-builder RUN apk add --no-cache make COPY . /src/loki WORKDIR /src/loki -RUN make -C pkg/dataobj/explorer/ui build +RUN make -C pkg/ui/frontend build # Go build stage FROM golang:${GO_VERSION} AS build ARG IMAGE_TAG COPY . /src/loki -COPY --from=ui-builder /src/loki/pkg/dataobj/explorer/dist /src/loki/pkg/dataobj/explorer/dist +COPY --from=ui-builder /src/loki/pkg/ui/frontend/dist /src/loki/pkg/ui/frontend/dist WORKDIR /src/loki RUN make clean && make BUILD_IN_CONTAINER=false IMAGE_TAG=${IMAGE_TAG} loki diff --git a/docs/sources/shared/configuration.md b/docs/sources/shared/configuration.md index a55cfff40e..e065282ea7 100644 --- a/docs/sources/shared/configuration.md +++ b/docs/sources/shared/configuration.md @@ -109,6 +109,42 @@ Pass the `-config.expand-env` flag at the command line to enable this way of set # Configures the server of the launched module(s). [server: ] +ui: + # Name to use for this node in the cluster. + # CLI flag: -ui.node-name + [node_name: | default = ""] + + # IP address to advertise in the cluster. + # CLI flag: -ui.advertise-addr + [advertise_addr: | default = ""] + + # Name of network interface to read address from. + # CLI flag: -ui.interface + [interface_names: | default = []] + + # How frequently to rejoin the cluster to address split brain issues. + # CLI flag: -ui.rejoin-interval + [rejoin_interval: | default = 15s] + + # Number of initial peers to join from the discovered set. + # CLI flag: -ui.cluster-max-join-peers + [cluster_max_join_peers: | default = 3] + + # Name to prevent nodes without this identifier from joining the cluster. + # CLI flag: -ui.cluster-name + [cluster_name: | default = ""] + + # Enable using a IPv6 instance address. + # CLI flag: -ui.enable-ipv6 + [enable_ipv6: | default = false] + + discovery: + # List of peers to join the cluster. Supports multiple values separated by + # commas. Each value can be a hostname, an IP address, or a DNS name (A/AAAA + # and SRV records). + # CLI flag: -ui.discovery.join-peers + [join_peers: | default = []] + # Configures the distributor. [distributor: ] diff --git a/go.mod b/go.mod index 258f6c4920..5699b391dc 100644 --- a/go.mod +++ b/go.mod @@ -50,6 +50,7 @@ require ( github.com/google/uuid v1.6.0 github.com/gorilla/mux v1.8.1 github.com/gorilla/websocket v1.5.3 + github.com/grafana/ckit v0.0.0-20250109002736-4ca45886e452 github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 github.com/grafana/dskit v0.0.0-20241007172036-53283a0f6b41 github.com/grafana/go-gelf/v2 v2.0.1 @@ -299,13 +300,13 @@ require ( github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-msgpack v1.1.5 // indirect + github.com/hashicorp/go-msgpack v0.5.5 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-sockaddr v1.0.7 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/memberlist v0.5.1 // indirect + github.com/hashicorp/memberlist v0.5.2 // indirect github.com/hashicorp/serf v0.10.1 // indirect github.com/huandu/xstrings v1.5.0 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect diff --git a/go.sum b/go.sum index 9c7b1f72fd..315e82422d 100644 --- a/go.sum +++ b/go.sum @@ -614,6 +614,8 @@ github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/z github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grafana/ckit v0.0.0-20250109002736-4ca45886e452 h1:d/pdVKdLSNUfHUlWsN39OqUI94XgWKOGJdi568yOXmc= +github.com/grafana/ckit v0.0.0-20250109002736-4ca45886e452/go.mod h1:x6HpYv0+NXPJRBbDYA40IcxWHvrrKwgrMe1Mue172wE= github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2 h1:qhugDMdQ4Vp68H0tp/0iN17DM2ehRo1rLEdOFe/gB8I= github.com/grafana/cloudflare-go v0.0.0-20230110200409-c627cf6792f2/go.mod h1:w/aiO1POVIeXUQyl0VQSZjl5OAGDTL5aX+4v0RA1tcw= github.com/grafana/dskit v0.0.0-20241007172036-53283a0f6b41 h1:a4O59OU3FJZ+EJUVnlvvNTvdAc4uRN1P6EaGwqL9CnA= @@ -670,8 +672,8 @@ github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjh github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-msgpack v1.1.5 h1:9byZdVjKTe5mce63pRVNP1L7UAmdHOTEMGehn6KvJWs= -github.com/hashicorp/go-msgpack v1.1.5/go.mod h1:gWVc3sv/wbDmR3rQsj1CAktEZzoz1YNK9NfGLXJ69/4= +github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= @@ -1497,7 +1499,6 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190424220101-1e8e1cfdf96b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= diff --git a/pkg/analytics/handler.go b/pkg/analytics/handler.go new file mode 100644 index 0000000000..8d7e482106 --- /dev/null +++ b/pkg/analytics/handler.go @@ -0,0 +1,32 @@ +package analytics + +import ( + "encoding/json" + "net/http" + "sync" + "time" +) + +var ( + seed = &ClusterSeed{} + rw sync.RWMutex +) + +func setSeed(s *ClusterSeed) { + rw.Lock() + defer rw.Unlock() + seed = s +} + +func Handler() http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + rw.RLock() + defer rw.RUnlock() + report := buildReport(seed, time.Now()) + w.Header().Set("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(report); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + }) +} diff --git a/pkg/analytics/reporter.go b/pkg/analytics/reporter.go index e6a279e402..af0b8ae371 100644 --- a/pkg/analytics/reporter.go +++ b/pkg/analytics/reporter.go @@ -295,6 +295,7 @@ func (rep *Reporter) running(ctx context.Context) error { } return nil } + setSeed(rep.cluster) rep.startCPUPercentCollection(ctx, time.Minute) // check every minute if we should report. ticker := time.NewTicker(reportCheckInterval) @@ -352,9 +353,7 @@ func (rep *Reporter) reportUsage(ctx context.Context, interval time.Time) error const cpuUsageKey = "cpu_usage" -var ( - cpuUsage = NewFloat(cpuUsageKey) -) +var cpuUsage = NewFloat(cpuUsageKey) func (rep *Reporter) startCPUPercentCollection(ctx context.Context, cpuCollectionInterval time.Duration) { proc, err := process.NewProcess(int32(os.Getpid())) diff --git a/pkg/compactor/compactor.go b/pkg/compactor/compactor.go index e19bfec245..8230cd4e3e 100644 --- a/pkg/compactor/compactor.go +++ b/pkg/compactor/compactor.go @@ -4,7 +4,6 @@ import ( "context" "flag" "fmt" - "net/http" "os" "path/filepath" "sort" @@ -178,6 +177,7 @@ type Compactor struct { indexCompactors map[string]IndexCompactor schemaConfig config.SchemaConfig tableLocker *tableLocker + limits Limits // Ring used for running a single compactor ringLifecycler *ring.BasicLifecycler @@ -219,6 +219,7 @@ func NewCompactor(cfg Config, objectStoreClients map[config.DayTime]client.Objec indexCompactors: map[string]IndexCompactor{}, schemaConfig: schemaConfig, tableLocker: newTableLocker(), + limits: limits, } ringStore, err := kv.NewClient( @@ -882,10 +883,6 @@ func (c *Compactor) OnRingInstanceStopping(_ *ring.BasicLifecycler) func (c *Compactor) OnRingInstanceHeartbeat(_ *ring.BasicLifecycler, _ *ring.Desc, _ *ring.InstanceDesc) { } -func (c *Compactor) ServeHTTP(w http.ResponseWriter, req *http.Request) { - c.ring.ServeHTTP(w, req) -} - func SortTablesByRange(tables []string) { tableRanges := make(map[string]model.Interval) for _, table := range tables { diff --git a/pkg/compactor/deletion/delete_request.go b/pkg/compactor/deletion/delete_request.go index 592ae810b2..5dea77bb32 100644 --- a/pkg/compactor/deletion/delete_request.go +++ b/pkg/compactor/deletion/delete_request.go @@ -1,6 +1,7 @@ package deletion import ( + "strings" "time" "github.com/go-kit/log/level" @@ -195,3 +196,15 @@ func intervalsOverlap(interval1, interval2 model.Interval) bool { return true } + +// GetMatchers returns the string representation of the matchers +func (d *DeleteRequest) GetMatchers() string { + if len(d.matchers) == 0 { + return "" + } + var result []string + for _, m := range d.matchers { + result = append(result, m.String()) + } + return strings.Join(result, ",") +} diff --git a/pkg/compactor/deletion/request_handler.go b/pkg/compactor/deletion/request_handler.go index 5d5d166f04..a606b773e6 100644 --- a/pkg/compactor/deletion/request_handler.go +++ b/pkg/compactor/deletion/request_handler.go @@ -45,6 +45,10 @@ func NewDeleteRequestHandler(deleteStore DeleteRequestsStore, maxInterval, delet // AddDeleteRequestHandler handles addition of a new delete request func (dm *DeleteRequestHandler) AddDeleteRequestHandler(w http.ResponseWriter, r *http.Request) { + if dm == nil { + http.Error(w, "Retention is not enabled", http.StatusBadRequest) + return + } ctx := r.Context() userID, err := tenant.TenantID(ctx) if err != nil { @@ -125,6 +129,10 @@ func (dm *DeleteRequestHandler) interval(params url.Values, startTime, endTime m // GetAllDeleteRequestsHandler handles get all delete requests func (dm *DeleteRequestHandler) GetAllDeleteRequestsHandler(w http.ResponseWriter, r *http.Request) { + if dm == nil { + http.Error(w, "Retention is not enabled", http.StatusBadRequest) + return + } ctx := r.Context() userID, err := tenant.TenantID(ctx) if err != nil { @@ -219,6 +227,10 @@ func deleteRequestStatus(processed, total int) DeleteRequestStatus { // CancelDeleteRequestHandler handles delete request cancellation func (dm *DeleteRequestHandler) CancelDeleteRequestHandler(w http.ResponseWriter, r *http.Request) { + if dm == nil { + http.Error(w, "Retention is not enabled", http.StatusBadRequest) + return + } ctx := r.Context() userID, err := tenant.TenantID(ctx) if err != nil { @@ -271,6 +283,10 @@ func filterProcessed(reqs []DeleteRequest) []DeleteRequest { // GetCacheGenerationNumberHandler handles requests for a user's cache generation number func (dm *DeleteRequestHandler) GetCacheGenerationNumberHandler(w http.ResponseWriter, r *http.Request) { + if dm == nil { + http.Error(w, "Retention is not enabled", http.StatusBadRequest) + return + } ctx := r.Context() userID, err := tenant.TenantID(ctx) if err != nil { diff --git a/pkg/compactor/deletion/tenant_request_handler.go b/pkg/compactor/deletion/tenant_request_handler.go index 0af62baa13..fc2ee5bba4 100644 --- a/pkg/compactor/deletion/tenant_request_handler.go +++ b/pkg/compactor/deletion/tenant_request_handler.go @@ -3,29 +3,32 @@ package deletion import ( "net/http" + "github.com/grafana/dskit/middleware" "github.com/grafana/dskit/tenant" ) -func TenantMiddleware(limits Limits, next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ctx := r.Context() - userID, err := tenant.TenantID(ctx) - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return - } +func TenantMiddleware(limits Limits) middleware.Interface { + return middleware.Func(func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ctx := r.Context() + userID, err := tenant.TenantID(ctx) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } - hasDelete, err := validDeletionLimit(limits, userID) - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return - } + hasDelete, err := validDeletionLimit(limits, userID) + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } - if !hasDelete { - http.Error(w, deletionNotAvailableMsg, http.StatusForbidden) - return - } + if !hasDelete { + http.Error(w, deletionNotAvailableMsg, http.StatusForbidden) + return + } - next.ServeHTTP(w, r) + next.ServeHTTP(w, r) + }) }) } diff --git a/pkg/compactor/deletion/tenant_request_handler_test.go b/pkg/compactor/deletion/tenant_request_handler_test.go index 7178a31bcc..dcd7d2017f 100644 --- a/pkg/compactor/deletion/tenant_request_handler_test.go +++ b/pkg/compactor/deletion/tenant_request_handler_test.go @@ -23,8 +23,7 @@ func TestDeleteRequestHandlerDeletionMiddleware(t *testing.T) { } // Setup handler - middle := TenantMiddleware(fl, http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) {})) - + middle := TenantMiddleware(fl).Wrap(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) {})) // User that has deletion enabled req := httptest.NewRequest(http.MethodGet, "http://www.your-domain.com", nil) req = req.WithContext(user.InjectOrgID(req.Context(), "1")) diff --git a/pkg/compactor/ui.go b/pkg/compactor/ui.go new file mode 100644 index 0000000000..acb51d06c3 --- /dev/null +++ b/pkg/compactor/ui.go @@ -0,0 +1,114 @@ +package compactor + +import ( + "encoding/json" + "net/http" + "sort" + + "github.com/grafana/dskit/middleware" + + "github.com/grafana/loki/v3/pkg/compactor/deletion" +) + +func (c *Compactor) Handler() (string, http.Handler) { + mux := http.NewServeMux() + + mw := middleware.Merge( + middleware.AuthenticateUser, + deletion.TenantMiddleware(c.limits), + // Automatically parse form data + middleware.Func(func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if err := r.ParseForm(); err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + next.ServeHTTP(w, r) + }) + }), + ) + + // API endpoints + mux.Handle("/compactor/ring", c.ring) + // Custom UI endpoints for the compactor + mux.HandleFunc("/compactor/ui/api/v1/deletes", func(w http.ResponseWriter, r *http.Request) { + switch r.Method { + case http.MethodGet: + c.handleListDeleteRequests(w, r) + case http.MethodPost: + mw.Wrap(http.HandlerFunc(c.DeleteRequestsHandler.AddDeleteRequestHandler)).ServeHTTP(w, r) + default: + http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) + } + }) + + return "/compactor", mux +} + +type DeleteRequestResponse struct { + RequestID string `json:"request_id"` + StartTime int64 `json:"start_time"` + EndTime int64 `json:"end_time"` + Query string `json:"query"` + Status string `json:"status"` + CreatedAt int64 `json:"created_at"` + UserID string `json:"user_id"` + DeletedLines int32 `json:"deleted_lines"` +} + +func (c *Compactor) handleListDeleteRequests(w http.ResponseWriter, r *http.Request) { + status := r.URL.Query().Get("status") + if status == "" { + status = string(deletion.StatusReceived) + } + + ctx := r.Context() + if c.deleteRequestsStore == nil { + http.Error(w, "Retention is not enabled", http.StatusBadRequest) + return + } + requests, err := c.deleteRequestsStore.GetAllRequests(ctx) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + // Filter requests by status + filtered := requests[:0] + for _, req := range requests { + if req.Status == deletion.DeleteRequestStatus(status) { + filtered = append(filtered, req) + } + } + requests = filtered + + // Sort by creation time descending + sort.Slice(requests, func(i, j int) bool { + return requests[i].CreatedAt > requests[j].CreatedAt + }) + + // Take only last 100 + if len(requests) > 100 { + requests = requests[:100] + } + + response := make([]DeleteRequestResponse, 0, len(requests)) + for _, req := range requests { + response = append(response, DeleteRequestResponse{ + RequestID: req.RequestID, + StartTime: int64(req.StartTime), + EndTime: int64(req.EndTime), + Query: req.Query, + Status: string(req.Status), + CreatedAt: int64(req.CreatedAt), + UserID: req.UserID, + DeletedLines: req.DeletedLines, + }) + } + + w.Header().Set("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(response); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } +} diff --git a/pkg/dataobj/explorer/dist/assets/index-CWzBrpZu.js b/pkg/dataobj/explorer/dist/assets/index-CWzBrpZu.js deleted file mode 100644 index 656b7207be..0000000000 --- a/pkg/dataobj/explorer/dist/assets/index-CWzBrpZu.js +++ /dev/null @@ -1,68 +0,0 @@ -function bc(e,t){for(var n=0;nr[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const a of l)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(l){const a={};return l.integrity&&(a.integrity=l.integrity),l.referrerPolicy&&(a.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?a.credentials="include":l.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(l){if(l.ep)return;l.ep=!0;const a=n(l);fetch(l.href,a)}})();function Xc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Kc={exports:{}},ba={},Gc={exports:{}},Q={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Cl=Symbol.for("react.element"),tp=Symbol.for("react.portal"),np=Symbol.for("react.fragment"),rp=Symbol.for("react.strict_mode"),lp=Symbol.for("react.profiler"),ap=Symbol.for("react.provider"),ip=Symbol.for("react.context"),op=Symbol.for("react.forward_ref"),up=Symbol.for("react.suspense"),sp=Symbol.for("react.memo"),cp=Symbol.for("react.lazy"),os=Symbol.iterator;function dp(e){return e===null||typeof e!="object"?null:(e=os&&e[os]||e["@@iterator"],typeof e=="function"?e:null)}var Jc={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Zc=Object.assign,qc={};function Sr(e,t,n){this.props=e,this.context=t,this.refs=qc,this.updater=n||Jc}Sr.prototype.isReactComponent={};Sr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Sr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ed(){}ed.prototype=Sr.prototype;function Go(e,t,n){this.props=e,this.context=t,this.refs=qc,this.updater=n||Jc}var Jo=Go.prototype=new ed;Jo.constructor=Go;Zc(Jo,Sr.prototype);Jo.isPureReactComponent=!0;var us=Array.isArray,td=Object.prototype.hasOwnProperty,Zo={current:null},nd={key:!0,ref:!0,__self:!0,__source:!0};function rd(e,t,n){var r,l={},a=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(a=""+t.key),t)td.call(t,r)&&!nd.hasOwnProperty(r)&&(l[r]=t[r]);var o=arguments.length-2;if(o===1)l.children=n;else if(1>>1,ae=D[J];if(0>>1;Jl(ct,H))Bel(Nt,ct)?(D[J]=Nt,D[Be]=H,J=Be):(D[J]=ct,D[Ce]=H,J=Ce);else if(Bel(Nt,H))D[J]=Nt,D[Be]=H,J=Be;else break e}}return A}function l(D,A){var H=D.sortIndex-A.sortIndex;return H!==0?H:D.id-A.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var u=[],s=[],c=1,f=null,h=3,k=!1,S=!1,v=!1,P=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,d=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(D){for(var A=n(s);A!==null;){if(A.callback===null)r(s);else if(A.startTime<=D)r(s),A.sortIndex=A.expirationTime,t(u,A);else break;A=n(s)}}function C(D){if(v=!1,y(D),!S)if(n(u)!==null)S=!0,Vt(R);else{var A=n(s);A!==null&&pe(C,A.startTime-D)}}function R(D,A){S=!1,v&&(v=!1,p(j),j=-1),k=!0;var H=h;try{for(y(A),f=n(u);f!==null&&(!(f.expirationTime>A)||D&&!te());){var J=f.callback;if(typeof J=="function"){f.callback=null,h=f.priorityLevel;var ae=J(f.expirationTime<=A);A=e.unstable_now(),typeof ae=="function"?f.callback=ae:f===n(u)&&r(u),y(A)}else r(u);f=n(u)}if(f!==null)var wt=!0;else{var Ce=n(s);Ce!==null&&pe(C,Ce.startTime-A),wt=!1}return wt}finally{f=null,h=H,k=!1}}var w=!1,T=null,j=-1,B=5,U=-1;function te(){return!(e.unstable_now()-UD||125J?(D.sortIndex=H,t(s,D),n(u)===null&&D===n(s)&&(v?(p(j),j=-1):v=!0,pe(C,H-J))):(D.sortIndex=ae,t(u,D),S||k||(S=!0,Vt(R))),D},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(D){var A=h;return function(){var H=h;h=A;try{return D.apply(this,arguments)}finally{h=H}}}})(ud);od.exports=ud;var Ep=od.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Cp=N,tt=Ep;function _(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ji=Object.prototype.hasOwnProperty,Pp=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,cs={},ds={};function Np(e){return Ji.call(ds,e)?!0:Ji.call(cs,e)?!1:Pp.test(e)?ds[e]=!0:(cs[e]=!0,!1)}function Mp(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _p(e,t,n,r){if(t===null||typeof t>"u"||Mp(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ve(e,t,n,r,l,a,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var Oe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Oe[e]=new Ve(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Oe[t]=new Ve(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Oe[e]=new Ve(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Oe[e]=new Ve(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Oe[e]=new Ve(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Oe[e]=new Ve(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Oe[e]=new Ve(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Oe[e]=new Ve(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Oe[e]=new Ve(e,5,!1,e.toLowerCase(),null,!1,!1)});var eu=/[\-:]([a-z])/g;function tu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(eu,tu);Oe[t]=new Ve(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(eu,tu);Oe[t]=new Ve(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(eu,tu);Oe[t]=new Ve(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Oe[e]=new Ve(e,1,!1,e.toLowerCase(),null,!1,!1)});Oe.xlinkHref=new Ve("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Oe[e]=new Ve(e,1,!1,e.toLowerCase(),null,!0,!0)});function nu(e,t,n,r){var l=Oe.hasOwnProperty(t)?Oe[t]:null;(l!==null?l.type!==0:r||!(2o||l[i]!==a[o]){var u=` -`+l[i].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=i&&0<=o);break}}}finally{ki=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Hr(e):""}function jp(e){switch(e.tag){case 5:return Hr(e.type);case 16:return Hr("Lazy");case 13:return Hr("Suspense");case 19:return Hr("SuspenseList");case 0:case 2:case 15:return e=Si(e.type,!1),e;case 11:return e=Si(e.type.render,!1),e;case 1:return e=Si(e.type,!0),e;default:return""}}function to(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Jn:return"Fragment";case Gn:return"Portal";case Zi:return"Profiler";case ru:return"StrictMode";case qi:return"Suspense";case eo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case dd:return(e.displayName||"Context")+".Consumer";case cd:return(e._context.displayName||"Context")+".Provider";case lu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case au:return t=e.displayName||null,t!==null?t:to(e.type)||"Memo";case Gt:t=e._payload,e=e._init;try{return to(e(t))}catch{}}return null}function Rp(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return to(t);case 8:return t===ru?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function hn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function hd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Tp(e){var t=hd(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,a.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Wl(e){e._valueTracker||(e._valueTracker=Tp(e))}function pd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=hd(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function va(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function no(e,t){var n=t.checked;return he({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function hs(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=hn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function md(e,t){t=t.checked,t!=null&&nu(e,"checked",t,!1)}function ro(e,t){md(e,t);var n=hn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?lo(e,t.type,n):t.hasOwnProperty("defaultValue")&&lo(e,t.type,hn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ps(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function lo(e,t,n){(t!=="number"||va(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Vr=Array.isArray;function ur(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=$l.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ll(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Xr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Lp=["Webkit","ms","Moz","O"];Object.keys(Xr).forEach(function(e){Lp.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Xr[t]=Xr[e]})});function wd(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Xr.hasOwnProperty(e)&&Xr[e]?(""+t).trim():t+"px"}function xd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=wd(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Dp=he({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function oo(e,t){if(t){if(Dp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(_(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(_(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(_(61))}if(t.style!=null&&typeof t.style!="object")throw Error(_(62))}}function uo(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var so=null;function iu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var co=null,sr=null,cr=null;function ys(e){if(e=Ml(e)){if(typeof co!="function")throw Error(_(280));var t=e.stateNode;t&&(t=Za(t),co(e.stateNode,e.type,t))}}function kd(e){sr?cr?cr.push(e):cr=[e]:sr=e}function Sd(){if(sr){var e=sr,t=cr;if(cr=sr=null,ys(e),t)for(e=0;e>>=0,e===0?32:31-(Vp(e)/Yp|0)|0}var Al=64,Hl=4194304;function Yr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Sa(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,i=n&268435455;if(i!==0){var o=i&~l;o!==0?r=Yr(o):(a&=i,a!==0&&(r=Yr(a)))}else i=n&~l,i!==0?r=Yr(i):a!==0&&(r=Yr(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,a=t&-t,l>=a||l===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Pl(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-gt(t),e[t]=n}function Kp(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Gr),Ns=" ",Ms=!1;function Ad(e,t){switch(e){case"keyup":return Em.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Zn=!1;function Pm(e,t){switch(e){case"compositionend":return Hd(t);case"keypress":return t.which!==32?null:(Ms=!0,Ns);case"textInput":return e=t.data,e===Ns&&Ms?null:e;default:return null}}function Nm(e,t){if(Zn)return e==="compositionend"||!pu&&Ad(e,t)?(e=Wd(),oa=du=en=null,Zn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ts(n)}}function bd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Xd(){for(var e=window,t=va();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=va(e.document)}return t}function mu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function zm(e){var t=Xd(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&bd(n.ownerDocument.documentElement,n)){if(r!==null&&mu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,a=Math.min(r.start,l);r=r.end===void 0?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=Ls(n,a);var i=Ls(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,qn=null,yo=null,Zr=null,vo=!1;function Ds(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;vo||qn==null||qn!==va(r)||(r=qn,"selectionStart"in r&&mu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Zr&&cl(Zr,r)||(Zr=r,r=Pa(yo,"onSelect"),0nr||(e.current=Co[nr],Co[nr]=null,nr--)}function le(e,t){nr++,Co[nr]=e.current,e.current=t}var pn={},Ue=gn(pn),Xe=gn(!1),Dn=pn;function mr(e,t){var n=e.type.contextTypes;if(!n)return pn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},a;for(a in n)l[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ke(e){return e=e.childContextTypes,e!=null}function Ma(){oe(Xe),oe(Ue)}function Ws(e,t,n){if(Ue.current!==pn)throw Error(_(168));le(Ue,t),le(Xe,n)}function rf(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(_(108,Rp(e)||"Unknown",l));return he({},n,r)}function _a(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||pn,Dn=Ue.current,le(Ue,e),le(Xe,Xe.current),!0}function $s(e,t,n){var r=e.stateNode;if(!r)throw Error(_(169));n?(e=rf(e,t,Dn),r.__reactInternalMemoizedMergedChildContext=e,oe(Xe),oe(Ue),le(Ue,e)):oe(Xe),le(Xe,n)}var Tt=null,qa=!1,Fi=!1;function lf(e){Tt===null?Tt=[e]:Tt.push(e)}function bm(e){qa=!0,lf(e)}function yn(){if(!Fi&&Tt!==null){Fi=!0;var e=0,t=ee;try{var n=Tt;for(ee=1;e>=i,l-=i,Lt=1<<32-gt(t)+l|n<j?(B=T,T=null):B=T.sibling;var U=h(p,T,y[j],C);if(U===null){T===null&&(T=B);break}e&&T&&U.alternate===null&&t(p,T),d=a(U,d,j),w===null?R=U:w.sibling=U,w=U,T=B}if(j===y.length)return n(p,T),se&&Sn(p,j),R;if(T===null){for(;jj?(B=T,T=null):B=T.sibling;var te=h(p,T,U.value,C);if(te===null){T===null&&(T=B);break}e&&T&&te.alternate===null&&t(p,T),d=a(te,d,j),w===null?R=te:w.sibling=te,w=te,T=B}if(U.done)return n(p,T),se&&Sn(p,j),R;if(T===null){for(;!U.done;j++,U=y.next())U=f(p,U.value,C),U!==null&&(d=a(U,d,j),w===null?R=U:w.sibling=U,w=U);return se&&Sn(p,j),R}for(T=r(p,T);!U.done;j++,U=y.next())U=k(T,p,j,U.value,C),U!==null&&(e&&U.alternate!==null&&T.delete(U.key===null?j:U.key),d=a(U,d,j),w===null?R=U:w.sibling=U,w=U);return e&&T.forEach(function(ce){return t(p,ce)}),se&&Sn(p,j),R}function P(p,d,y,C){if(typeof y=="object"&&y!==null&&y.type===Jn&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Bl:e:{for(var R=y.key,w=d;w!==null;){if(w.key===R){if(R=y.type,R===Jn){if(w.tag===7){n(p,w.sibling),d=l(w,y.props.children),d.return=p,p=d;break e}}else if(w.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===Gt&&Vs(R)===w.type){n(p,w.sibling),d=l(w,y.props),d.ref=zr(p,w,y),d.return=p,p=d;break e}n(p,w);break}else t(p,w);w=w.sibling}y.type===Jn?(d=Ln(y.props.children,p.mode,C,y.key),d.return=p,p=d):(C=ma(y.type,y.key,y.props,null,p.mode,C),C.ref=zr(p,d,y),C.return=p,p=C)}return i(p);case Gn:e:{for(w=y.key;d!==null;){if(d.key===w)if(d.tag===4&&d.stateNode.containerInfo===y.containerInfo&&d.stateNode.implementation===y.implementation){n(p,d.sibling),d=l(d,y.children||[]),d.return=p,p=d;break e}else{n(p,d);break}else t(p,d);d=d.sibling}d=Vi(y,p.mode,C),d.return=p,p=d}return i(p);case Gt:return w=y._init,P(p,d,w(y._payload),C)}if(Vr(y))return S(p,d,y,C);if(Rr(y))return v(p,d,y,C);Gl(p,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,d!==null&&d.tag===6?(n(p,d.sibling),d=l(d,y),d.return=p,p=d):(n(p,d),d=Hi(y,p.mode,C),d.return=p,p=d),i(p)):n(p,d)}return P}var yr=sf(!0),cf=sf(!1),Ta=gn(null),La=null,ar=null,wu=null;function xu(){wu=ar=La=null}function ku(e){var t=Ta.current;oe(Ta),e._currentValue=t}function Mo(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function fr(e,t){La=e,wu=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(be=!0),e.firstContext=null)}function ut(e){var t=e._currentValue;if(wu!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(La===null)throw Error(_(308));ar=e,La.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var _n=null;function Su(e){_n===null?_n=[e]:_n.push(e)}function df(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Su(t)):(n.next=l.next,l.next=n),t.interleaved=n,Ut(e,r)}function Ut(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Jt=!1;function Eu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ff(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ot(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function sn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,K&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Ut(e,n)}return l=r.interleaved,l===null?(t.next=t,Su(r)):(t.next=l.next,l.next=t),r.interleaved=t,Ut(e,n)}function sa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,uu(e,n)}}function Ys(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?l=a=i:a=a.next=i,n=n.next}while(n!==null);a===null?l=a=t:a=a.next=t}else l=a=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Da(e,t,n,r){var l=e.updateQueue;Jt=!1;var a=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,s=u.next;u.next=null,i===null?a=s:i.next=s,i=u;var c=e.alternate;c!==null&&(c=c.updateQueue,o=c.lastBaseUpdate,o!==i&&(o===null?c.firstBaseUpdate=s:o.next=s,c.lastBaseUpdate=u))}if(a!==null){var f=l.baseState;i=0,c=s=u=null,o=a;do{var h=o.lane,k=o.eventTime;if((r&h)===h){c!==null&&(c=c.next={eventTime:k,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var S=e,v=o;switch(h=t,k=n,v.tag){case 1:if(S=v.payload,typeof S=="function"){f=S.call(k,f,h);break e}f=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=v.payload,h=typeof S=="function"?S.call(k,f,h):S,h==null)break e;f=he({},f,h);break e;case 2:Jt=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,h=l.effects,h===null?l.effects=[o]:h.push(o))}else k={eventTime:k,lane:h,tag:o.tag,payload:o.payload,callback:o.callback,next:null},c===null?(s=c=k,u=f):c=c.next=k,i|=h;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;h=o,o=h.next,h.next=null,l.lastBaseUpdate=h,l.shared.pending=null}}while(!0);if(c===null&&(u=f),l.baseState=u,l.firstBaseUpdate=s,l.lastBaseUpdate=c,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else a===null&&(l.shared.lanes=0);Fn|=i,e.lanes=i,e.memoizedState=f}}function Qs(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Ui.transition;Ui.transition={};try{e(!1),t()}finally{ee=n,Ui.transition=r}}function jf(){return st().memoizedState}function Jm(e,t,n){var r=dn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Rf(e))Tf(t,n);else if(n=df(e,t,n,r),n!==null){var l=Ae();yt(n,e,r,l),Lf(n,t,r)}}function Zm(e,t,n){var r=dn(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Rf(e))Tf(t,l);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var i=t.lastRenderedState,o=a(i,n);if(l.hasEagerState=!0,l.eagerState=o,vt(o,i)){var u=t.interleaved;u===null?(l.next=l,Su(t)):(l.next=u.next,u.next=l),t.interleaved=l;return}}catch{}finally{}n=df(e,t,l,r),n!==null&&(l=Ae(),yt(n,e,r,l),Lf(n,t,r))}}function Rf(e){var t=e.alternate;return e===fe||t!==null&&t===fe}function Tf(e,t){qr=za=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Lf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,uu(e,n)}}var Fa={readContext:ut,useCallback:ze,useContext:ze,useEffect:ze,useImperativeHandle:ze,useInsertionEffect:ze,useLayoutEffect:ze,useMemo:ze,useReducer:ze,useRef:ze,useState:ze,useDebugValue:ze,useDeferredValue:ze,useTransition:ze,useMutableSource:ze,useSyncExternalStore:ze,useId:ze,unstable_isNewReconciler:!1},qm={readContext:ut,useCallback:function(e,t){return St().memoizedState=[e,t===void 0?null:t],e},useContext:ut,useEffect:Xs,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,da(4194308,4,Cf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return da(4194308,4,e,t)},useInsertionEffect:function(e,t){return da(4,2,e,t)},useMemo:function(e,t){var n=St();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=St();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Jm.bind(null,fe,e),[r.memoizedState,e]},useRef:function(e){var t=St();return e={current:e},t.memoizedState=e},useState:bs,useDebugValue:Tu,useDeferredValue:function(e){return St().memoizedState=e},useTransition:function(){var e=bs(!1),t=e[0];return e=Gm.bind(null,e[1]),St().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=fe,l=St();if(se){if(n===void 0)throw Error(_(407));n=n()}else{if(n=t(),je===null)throw Error(_(349));zn&30||gf(r,t,n)}l.memoizedState=n;var a={value:n,getSnapshot:t};return l.queue=a,Xs(vf.bind(null,r,a,e),[e]),r.flags|=2048,vl(9,yf.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=St(),t=je.identifierPrefix;if(se){var n=Dt,r=Lt;n=(r&~(1<<32-gt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Et]=t,e[hl]=r,Af(e,t,!1,!1),t.stateNode=e;e:{switch(i=uo(n,r),n){case"dialog":ie("cancel",e),ie("close",e),l=r;break;case"iframe":case"object":case"embed":ie("load",e),l=r;break;case"video":case"audio":for(l=0;lxr&&(t.flags|=128,r=!0,Fr(a,!1),t.lanes=4194304)}else{if(!r)if(e=Oa(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Fr(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!se)return Fe(t),null}else 2*we()-a.renderingStartTime>xr&&n!==1073741824&&(t.flags|=128,r=!0,Fr(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(n=a.last,n!==null?n.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=we(),t.sibling=null,n=de.current,le(de,r?n&1|2:n&1),t):(Fe(t),null);case 22:case 23:return Iu(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Je&1073741824&&(Fe(t),t.subtreeFlags&6&&(t.flags|=8192)):Fe(t),null;case 24:return null;case 25:return null}throw Error(_(156,t.tag))}function og(e,t){switch(yu(t),t.tag){case 1:return Ke(t.type)&&Ma(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return vr(),oe(Xe),oe(Ue),Nu(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Pu(t),null;case 13:if(oe(de),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(_(340));gr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return oe(de),null;case 4:return vr(),null;case 10:return ku(t.type._context),null;case 22:case 23:return Iu(),null;case 24:return null;default:return null}}var Zl=!1,Ie=!1,ug=typeof WeakSet=="function"?WeakSet:Set,O=null;function ir(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ye(e,t,r)}else n.current=null}function Fo(e,t,n){try{n()}catch(r){ye(e,t,r)}}var ac=!1;function sg(e,t){if(wo=Ea,e=Xd(),mu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var i=0,o=-1,u=-1,s=0,c=0,f=e,h=null;t:for(;;){for(var k;f!==n||l!==0&&f.nodeType!==3||(o=i+l),f!==a||r!==0&&f.nodeType!==3||(u=i+r),f.nodeType===3&&(i+=f.nodeValue.length),(k=f.firstChild)!==null;)h=f,f=k;for(;;){if(f===e)break t;if(h===n&&++s===l&&(o=i),h===a&&++c===r&&(u=i),(k=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=k}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(xo={focusedElem:e,selectionRange:n},Ea=!1,O=t;O!==null;)if(t=O,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,O=e;else for(;O!==null;){t=O;try{var S=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var v=S.memoizedProps,P=S.memoizedState,p=t.stateNode,d=p.getSnapshotBeforeUpdate(t.elementType===t.type?v:ft(t.type,v),P);p.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_(163))}}catch(C){ye(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,O=e;break}O=t.return}return S=ac,ac=!1,S}function el(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,a!==void 0&&Fo(t,n,a)}l=l.next}while(l!==r)}}function ni(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Io(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Yf(e){var t=e.alternate;t!==null&&(e.alternate=null,Yf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Et],delete t[hl],delete t[Eo],delete t[Ym],delete t[Qm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Qf(e){return e.tag===5||e.tag===3||e.tag===4}function ic(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Uo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Na));else if(r!==4&&(e=e.child,e!==null))for(Uo(e,t,n),e=e.sibling;e!==null;)Uo(e,t,n),e=e.sibling}function Bo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Bo(e,t,n),e=e.sibling;e!==null;)Bo(e,t,n),e=e.sibling}var Le=null,ht=!1;function bt(e,t,n){for(n=n.child;n!==null;)bf(e,t,n),n=n.sibling}function bf(e,t,n){if(Ct&&typeof Ct.onCommitFiberUnmount=="function")try{Ct.onCommitFiberUnmount(Xa,n)}catch{}switch(n.tag){case 5:Ie||ir(n,t);case 6:var r=Le,l=ht;Le=null,bt(e,t,n),Le=r,ht=l,Le!==null&&(ht?(e=Le,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Le.removeChild(n.stateNode));break;case 18:Le!==null&&(ht?(e=Le,n=n.stateNode,e.nodeType===8?zi(e.parentNode,n):e.nodeType===1&&zi(e,n),ul(e)):zi(Le,n.stateNode));break;case 4:r=Le,l=ht,Le=n.stateNode.containerInfo,ht=!0,bt(e,t,n),Le=r,ht=l;break;case 0:case 11:case 14:case 15:if(!Ie&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var a=l,i=a.destroy;a=a.tag,i!==void 0&&(a&2||a&4)&&Fo(n,t,i),l=l.next}while(l!==r)}bt(e,t,n);break;case 1:if(!Ie&&(ir(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){ye(n,t,o)}bt(e,t,n);break;case 21:bt(e,t,n);break;case 22:n.mode&1?(Ie=(r=Ie)||n.memoizedState!==null,bt(e,t,n),Ie=r):bt(e,t,n);break;default:bt(e,t,n)}}function oc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ug),t.forEach(function(r){var l=vg.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function dt(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~a}if(r=l,r=we()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*dg(r/1960))-r,10e?16:e,tn===null)var r=!1;else{if(e=tn,tn=null,Ba=0,K&6)throw Error(_(331));var l=K;for(K|=4,O=e.current;O!==null;){var a=O,i=a.child;if(O.flags&16){var o=a.deletions;if(o!==null){for(var u=0;uwe()-zu?Tn(e,0):Ou|=n),Ge(e,t)}function th(e,t){t===0&&(e.mode&1?(t=Hl,Hl<<=1,!(Hl&130023424)&&(Hl=4194304)):t=1);var n=Ae();e=Ut(e,t),e!==null&&(Pl(e,t,n),Ge(e,n))}function yg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),th(e,n)}function vg(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(_(314))}r!==null&&r.delete(t),th(e,n)}var nh;nh=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Xe.current)be=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return be=!1,ag(e,t,n);be=!!(e.flags&131072)}else be=!1,se&&t.flags&1048576&&af(t,Ra,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;fa(e,t),e=t.pendingProps;var l=mr(t,Ue.current);fr(t,n),l=_u(null,t,r,e,l,n);var a=ju();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ke(r)?(a=!0,_a(t)):a=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Eu(t),l.updater=ti,t.stateNode=l,l._reactInternals=t,jo(t,r,e,n),t=Lo(null,t,r,!0,a,n)):(t.tag=0,se&&a&&gu(t),$e(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(fa(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=xg(r),e=ft(r,e),l){case 0:t=To(null,t,r,e,n);break e;case 1:t=nc(null,t,r,e,n);break e;case 11:t=ec(null,t,r,e,n);break e;case 14:t=tc(null,t,r,ft(r.type,e),n);break e}throw Error(_(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),To(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),nc(e,t,r,l,n);case 3:e:{if(Bf(t),e===null)throw Error(_(387));r=t.pendingProps,a=t.memoizedState,l=a.element,ff(e,t),Da(t,r,null,n);var i=t.memoizedState;if(r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){l=wr(Error(_(423)),t),t=rc(e,t,r,n,l);break e}else if(r!==l){l=wr(Error(_(424)),t),t=rc(e,t,r,n,l);break e}else for(qe=un(t.stateNode.containerInfo.firstChild),et=t,se=!0,mt=null,n=cf(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(gr(),r===l){t=Bt(e,t,n);break e}$e(e,t,r,n)}t=t.child}return t;case 5:return hf(t),e===null&&No(t),r=t.type,l=t.pendingProps,a=e!==null?e.memoizedProps:null,i=l.children,ko(r,l)?i=null:a!==null&&ko(r,a)&&(t.flags|=32),Uf(e,t),$e(e,t,i,n),t.child;case 6:return e===null&&No(t),null;case 13:return Wf(e,t,n);case 4:return Cu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=yr(t,null,r,n):$e(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ec(e,t,r,l,n);case 7:return $e(e,t,t.pendingProps,n),t.child;case 8:return $e(e,t,t.pendingProps.children,n),t.child;case 12:return $e(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,a=t.memoizedProps,i=l.value,le(Ta,r._currentValue),r._currentValue=i,a!==null)if(vt(a.value,i)){if(a.children===l.children&&!Xe.current){t=Bt(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var o=a.dependencies;if(o!==null){i=a.child;for(var u=o.firstContext;u!==null;){if(u.context===r){if(a.tag===1){u=Ot(-1,n&-n),u.tag=2;var s=a.updateQueue;if(s!==null){s=s.shared;var c=s.pending;c===null?u.next=u:(u.next=c.next,c.next=u),s.pending=u}}a.lanes|=n,u=a.alternate,u!==null&&(u.lanes|=n),Mo(a.return,n,t),o.lanes|=n;break}u=u.next}}else if(a.tag===10)i=a.type===t.type?null:a.child;else if(a.tag===18){if(i=a.return,i===null)throw Error(_(341));i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Mo(i,n,t),i=a.sibling}else i=a.child;if(i!==null)i.return=a;else for(i=a;i!==null;){if(i===t){i=null;break}if(a=i.sibling,a!==null){a.return=i.return,i=a;break}i=i.return}a=i}$e(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,fr(t,n),l=ut(l),r=r(l),t.flags|=1,$e(e,t,r,n),t.child;case 14:return r=t.type,l=ft(r,t.pendingProps),l=ft(r.type,l),tc(e,t,r,l,n);case 15:return Ff(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),fa(e,t),t.tag=1,Ke(r)?(e=!0,_a(t)):e=!1,fr(t,n),Df(t,r,l),jo(t,r,l,n),Lo(null,t,r,!0,e,n);case 19:return $f(e,t,n);case 22:return If(e,t,n)}throw Error(_(156,t.tag))};function rh(e,t){return jd(e,t)}function wg(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function it(e,t,n,r){return new wg(e,t,n,r)}function Bu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function xg(e){if(typeof e=="function")return Bu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===lu)return 11;if(e===au)return 14}return 2}function fn(e,t){var n=e.alternate;return n===null?(n=it(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ma(e,t,n,r,l,a){var i=2;if(r=e,typeof e=="function")Bu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Jn:return Ln(n.children,l,a,t);case ru:i=8,l|=8;break;case Zi:return e=it(12,n,t,l|2),e.elementType=Zi,e.lanes=a,e;case qi:return e=it(13,n,t,l),e.elementType=qi,e.lanes=a,e;case eo:return e=it(19,n,t,l),e.elementType=eo,e.lanes=a,e;case fd:return li(n,l,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case cd:i=10;break e;case dd:i=9;break e;case lu:i=11;break e;case au:i=14;break e;case Gt:i=16,r=null;break e}throw Error(_(130,e==null?e:typeof e,""))}return t=it(i,n,t,l),t.elementType=e,t.type=r,t.lanes=a,t}function Ln(e,t,n,r){return e=it(7,e,r,t),e.lanes=n,e}function li(e,t,n,r){return e=it(22,e,r,t),e.elementType=fd,e.lanes=n,e.stateNode={isHidden:!1},e}function Hi(e,t,n){return e=it(6,e,null,t),e.lanes=n,e}function Vi(e,t,n){return t=it(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function kg(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ci(0),this.expirationTimes=Ci(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ci(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Wu(e,t,n,r,l,a,i,o,u){return e=new kg(e,t,n,o,u),t===1?(t=1,a===!0&&(t|=8)):t=0,a=it(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Eu(a),e}function Sg(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(oh)}catch(e){console.error(e)}}oh(),id.exports=nt;var si=id.exports;const Ng=Xc(si),Mg=bc({__proto__:null,default:Ng},[si]);var mc=si;Gi.createRoot=mc.createRoot,Gi.hydrateRoot=mc.hydrateRoot;/** - * @remix-run/router v1.21.1 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function kr(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function jg(){return Math.random().toString(36).substr(2,8)}function yc(e,t){return{usr:e.state,key:e.key,idx:t}}function xl(e,t,n,r){return n===void 0&&(n=null),ue({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?At(t):t,{state:n,key:t&&t.key||r||jg()})}function Un(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function At(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Rg(e,t,n,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:a=!1}=r,i=l.history,o=ve.Pop,u=null,s=c();s==null&&(s=0,i.replaceState(ue({},i.state,{idx:s}),""));function c(){return(i.state||{idx:null}).idx}function f(){o=ve.Pop;let P=c(),p=P==null?null:P-s;s=P,u&&u({action:o,location:v.location,delta:p})}function h(P,p){o=ve.Push;let d=xl(v.location,P,p);s=c()+1;let y=yc(d,s),C=v.createHref(d);try{i.pushState(y,"",C)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;l.location.assign(C)}a&&u&&u({action:o,location:v.location,delta:1})}function k(P,p){o=ve.Replace;let d=xl(v.location,P,p);s=c();let y=yc(d,s),C=v.createHref(d);i.replaceState(y,"",C),a&&u&&u({action:o,location:v.location,delta:0})}function S(P){let p=l.location.origin!=="null"?l.location.origin:l.location.href,d=typeof P=="string"?P:Un(P);return d=d.replace(/ $/,"%20"),Y(p,"No window.location.(origin|href) available to create URL for href: "+d),new URL(d,p)}let v={get action(){return o},get location(){return e(l,i)},listen(P){if(u)throw new Error("A history only accepts one active listener");return l.addEventListener(gc,f),u=P,()=>{l.removeEventListener(gc,f),u=null}},createHref(P){return t(l,P)},createURL:S,encodeLocation(P){let p=S(P);return{pathname:p.pathname,search:p.search,hash:p.hash}},push:h,replace:k,go(P){return i.go(P)}};return v}var ne;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ne||(ne={}));const Tg=new Set(["lazy","caseSensitive","path","id","index","children"]);function Lg(e){return e.index===!0}function Aa(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((l,a)=>{let i=[...n,String(a)],o=typeof l.id=="string"?l.id:i.join("-");if(Y(l.index!==!0||!l.children,"Cannot specify children on an index route"),Y(!r[o],'Found a route id collision on id "'+o+`". Route id's must be globally unique within Data Router usages`),Lg(l)){let u=ue({},l,t(l),{id:o});return r[o]=u,u}else{let u=ue({},l,t(l),{id:o,children:void 0});return r[o]=u,l.children&&(u.children=Aa(l.children,t,i,r)),u}})}function Pn(e,t,n){return n===void 0&&(n="/"),ga(e,t,n,!1)}function ga(e,t,n,r){let l=typeof t=="string"?At(t):t,a=Pr(l.pathname||"/",n);if(a==null)return null;let i=uh(e);Og(i);let o=null;for(let u=0;o==null&&u{let u={relativePath:o===void 0?a.path||"":o,caseSensitive:a.caseSensitive===!0,childrenIndex:i,route:a};u.relativePath.startsWith("/")&&(Y(u.relativePath.startsWith(r),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(r.length));let s=zt([r,u.relativePath]),c=n.concat(u);a.children&&a.children.length>0&&(Y(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+s+'".')),uh(a.children,t,c,s)),!(a.path==null&&!a.index)&&t.push({path:s,score:$g(s,a.index),routesMeta:c})};return e.forEach((a,i)=>{var o;if(a.path===""||!((o=a.path)!=null&&o.includes("?")))l(a,i);else for(let u of sh(a.path))l(a,i,u)}),t}function sh(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return l?[a,""]:[a];let i=sh(r.join("/")),o=[];return o.push(...i.map(u=>u===""?a:[a,u].join("/"))),l&&o.push(...i),o.map(u=>e.startsWith("/")&&u===""?"/":u)}function Og(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Ag(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const zg=/^:[\w-]+$/,Fg=3,Ig=2,Ug=1,Bg=10,Wg=-2,vc=e=>e==="*";function $g(e,t){let n=e.split("/"),r=n.length;return n.some(vc)&&(r+=Wg),t&&(r+=Ig),n.filter(l=>!vc(l)).reduce((l,a)=>l+(zg.test(a)?Fg:a===""?Ug:Bg),r)}function Ag(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function Hg(e,t,n){n===void 0&&(n=!1);let{routesMeta:r}=e,l={},a="/",i=[];for(let o=0;o{let{paramName:h,isOptional:k}=c;if(h==="*"){let v=o[f]||"";i=a.slice(0,a.length-v.length).replace(/(.)\/+$/,"$1")}const S=o[f];return k&&!S?s[h]=void 0:s[h]=(S||"").replace(/%2F/g,"/"),s},{}),pathname:a,pathnameBase:i,pattern:e}}function Vg(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),kr(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,o,u)=>(r.push({paramName:o,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function Yg(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return kr(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Pr(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function Qg(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?At(e):e;return{pathname:n?n.startsWith("/")?n:bg(n,t):t,search:Kg(r),hash:Gg(l)}}function bg(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function Yi(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function ch(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Vu(e,t){let n=ch(e);return t?n.map((r,l)=>l===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Yu(e,t,n,r){r===void 0&&(r=!1);let l;typeof e=="string"?l=At(e):(l=ue({},e),Y(!l.pathname||!l.pathname.includes("?"),Yi("?","pathname","search",l)),Y(!l.pathname||!l.pathname.includes("#"),Yi("#","pathname","hash",l)),Y(!l.search||!l.search.includes("#"),Yi("#","search","hash",l)));let a=e===""||l.pathname==="",i=a?"/":l.pathname,o;if(i==null)o=n;else{let f=t.length-1;if(!r&&i.startsWith("..")){let h=i.split("/");for(;h[0]==="..";)h.shift(),f-=1;l.pathname=h.join("/")}o=f>=0?t[f]:"/"}let u=Qg(l,o),s=i&&i!=="/"&&i.endsWith("/"),c=(a||i===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(s||c)&&(u.pathname+="/"),u}const zt=e=>e.join("/").replace(/\/\/+/g,"/"),Xg=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Kg=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Gg=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class Ha{constructor(t,n,r,l){l===void 0&&(l=!1),this.status=t,this.statusText=n||"",this.internal=l,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function ci(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const dh=["post","put","patch","delete"],Jg=new Set(dh),Zg=["get",...dh],qg=new Set(Zg),ey=new Set([301,302,303,307,308]),ty=new Set([307,308]),Qi={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ny={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ur={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Qu=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ry=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),fh="remix-router-transitions";function ly(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;Y(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let l;if(e.mapRouteProperties)l=e.mapRouteProperties;else if(e.detectErrorBoundary){let m=e.detectErrorBoundary;l=x=>({hasErrorBoundary:m(x)})}else l=ry;let a={},i=Aa(e.routes,l,void 0,a),o,u=e.basename||"/",s=e.dataStrategy||uy,c=e.patchRoutesOnNavigation,f=ue({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),h=null,k=new Set,S=null,v=null,P=null,p=e.hydrationData!=null,d=Pn(i,e.history.location,u),y=null;if(d==null&&!c){let m=Ye(404,{pathname:e.history.location.pathname}),{matches:x,route:E}=Rc(i);d=x,y={[E.id]:m}}d&&!e.hydrationData&&Ol(d,i,e.history.location.pathname).active&&(d=null);let C;if(d)if(d.some(m=>m.route.lazy))C=!1;else if(!d.some(m=>m.route.loader))C=!0;else if(f.v7_partialHydration){let m=e.hydrationData?e.hydrationData.loaderData:null,x=e.hydrationData?e.hydrationData.errors:null;if(x){let E=d.findIndex(M=>x[M.route.id]!==void 0);C=d.slice(0,E+1).every(M=>!Yo(M.route,m,x))}else C=d.every(E=>!Yo(E.route,m,x))}else C=e.hydrationData!=null;else if(C=!1,d=[],f.v7_partialHydration){let m=Ol(null,i,e.history.location.pathname);m.active&&m.matches&&(d=m.matches)}let R,w={historyAction:e.history.action,location:e.history.location,matches:d,initialized:C,navigation:Qi,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||y,fetchers:new Map,blockers:new Map},T=ve.Pop,j=!1,B,U=!1,te=new Map,ce=null,xe=!1,ke=!1,Ht=[],Vt=new Set,pe=new Map,D=0,A=-1,H=new Map,J=new Set,ae=new Map,wt=new Map,Ce=new Set,ct=new Map,Be=new Map,Nt;function Uh(){if(h=e.history.listen(m=>{let{action:x,location:E,delta:M}=m;if(Nt){Nt(),Nt=void 0;return}kr(Be.size===0||M!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let L=rs({currentLocation:w.location,nextLocation:E,historyAction:x});if(L&&M!=null){let W=new Promise(V=>{Nt=V});e.history.go(M*-1),Dl(L,{state:"blocked",location:E,proceed(){Dl(L,{state:"proceeding",proceed:void 0,reset:void 0,location:E}),W.then(()=>e.history.go(M))},reset(){let V=new Map(w.blockers);V.set(L,Ur),We({blockers:V})}});return}return wn(x,E)}),n){Sy(t,te);let m=()=>Ey(t,te);t.addEventListener("pagehide",m),ce=()=>t.removeEventListener("pagehide",m)}return w.initialized||wn(ve.Pop,w.location,{initialHydration:!0}),R}function Bh(){h&&h(),ce&&ce(),k.clear(),B&&B.abort(),w.fetchers.forEach((m,x)=>Ll(x)),w.blockers.forEach((m,x)=>ns(x))}function Wh(m){return k.add(m),()=>k.delete(m)}function We(m,x){x===void 0&&(x={}),w=ue({},w,m);let E=[],M=[];f.v7_fetcherPersist&&w.fetchers.forEach((L,W)=>{L.state==="idle"&&(Ce.has(W)?M.push(W):E.push(W))}),Ce.forEach(L=>{!w.fetchers.has(L)&&!pe.has(L)&&M.push(L)}),[...k].forEach(L=>L(w,{deletedFetchers:M,viewTransitionOpts:x.viewTransitionOpts,flushSync:x.flushSync===!0})),f.v7_fetcherPersist?(E.forEach(L=>w.fetchers.delete(L)),M.forEach(L=>Ll(L))):M.forEach(L=>Ce.delete(L))}function An(m,x,E){var M,L;let{flushSync:W}=E===void 0?{}:E,V=w.actionData!=null&&w.navigation.formMethod!=null&&pt(w.navigation.formMethod)&&w.navigation.state==="loading"&&((M=m.state)==null?void 0:M._isRedirect)!==!0,F;x.actionData?Object.keys(x.actionData).length>0?F=x.actionData:F=null:V?F=w.actionData:F=null;let I=x.loaderData?_c(w.loaderData,x.loaderData,x.matches||[],x.errors):w.loaderData,z=w.blockers;z.size>0&&(z=new Map(z),z.forEach((X,Te)=>z.set(Te,Ur)));let $=j===!0||w.navigation.formMethod!=null&&pt(w.navigation.formMethod)&&((L=m.state)==null?void 0:L._isRedirect)!==!0;o&&(i=o,o=void 0),xe||T===ve.Pop||(T===ve.Push?e.history.push(m,m.state):T===ve.Replace&&e.history.replace(m,m.state));let b;if(T===ve.Pop){let X=te.get(w.location.pathname);X&&X.has(m.pathname)?b={currentLocation:w.location,nextLocation:m}:te.has(m.pathname)&&(b={currentLocation:m,nextLocation:w.location})}else if(U){let X=te.get(w.location.pathname);X?X.add(m.pathname):(X=new Set([m.pathname]),te.set(w.location.pathname,X)),b={currentLocation:w.location,nextLocation:m}}We(ue({},x,{actionData:F,loaderData:I,historyAction:T,location:m,initialized:!0,navigation:Qi,revalidation:"idle",restoreScrollPosition:as(m,x.matches||w.matches),preventScrollReset:$,blockers:z}),{viewTransitionOpts:b,flushSync:W===!0}),T=ve.Pop,j=!1,U=!1,xe=!1,ke=!1,Ht=[]}async function Ku(m,x){if(typeof m=="number"){e.history.go(m);return}let E=Vo(w.location,w.matches,u,f.v7_prependBasename,m,f.v7_relativeSplatPath,x==null?void 0:x.fromRouteId,x==null?void 0:x.relative),{path:M,submission:L,error:W}=xc(f.v7_normalizeFormMethod,!1,E,x),V=w.location,F=xl(w.location,M,x&&x.state);F=ue({},F,e.history.encodeLocation(F));let I=x&&x.replace!=null?x.replace:void 0,z=ve.Push;I===!0?z=ve.Replace:I===!1||L!=null&&pt(L.formMethod)&&L.formAction===w.location.pathname+w.location.search&&(z=ve.Replace);let $=x&&"preventScrollReset"in x?x.preventScrollReset===!0:void 0,b=(x&&x.flushSync)===!0,X=rs({currentLocation:V,nextLocation:F,historyAction:z});if(X){Dl(X,{state:"blocked",location:F,proceed(){Dl(X,{state:"proceeding",proceed:void 0,reset:void 0,location:F}),Ku(m,x)},reset(){let Te=new Map(w.blockers);Te.set(X,Ur),We({blockers:Te})}});return}return await wn(z,F,{submission:L,pendingError:W,preventScrollReset:$,replace:x&&x.replace,enableViewTransition:x&&x.viewTransition,flushSync:b})}function $h(){if(mi(),We({revalidation:"loading"}),w.navigation.state!=="submitting"){if(w.navigation.state==="idle"){wn(w.historyAction,w.location,{startUninterruptedRevalidation:!0});return}wn(T||w.historyAction,w.navigation.location,{overrideNavigation:w.navigation,enableViewTransition:U===!0})}}async function wn(m,x,E){B&&B.abort(),B=null,T=m,xe=(E&&E.startUninterruptedRevalidation)===!0,Jh(w.location,w.matches),j=(E&&E.preventScrollReset)===!0,U=(E&&E.enableViewTransition)===!0;let M=o||i,L=E&&E.overrideNavigation,W=Pn(M,x,u),V=(E&&E.flushSync)===!0,F=Ol(W,M,x.pathname);if(F.active&&F.matches&&(W=F.matches),!W){let{error:re,notFoundMatches:Z,route:me}=gi(x.pathname);An(x,{matches:Z,loaderData:{},errors:{[me.id]:re}},{flushSync:V});return}if(w.initialized&&!ke&&py(w.location,x)&&!(E&&E.submission&&pt(E.submission.formMethod))){An(x,{matches:W},{flushSync:V});return}B=new AbortController;let I=bn(e.history,x,B.signal,E&&E.submission),z;if(E&&E.pendingError)z=[Nn(W).route.id,{type:ne.error,error:E.pendingError}];else if(E&&E.submission&&pt(E.submission.formMethod)){let re=await Ah(I,x,E.submission,W,F.active,{replace:E.replace,flushSync:V});if(re.shortCircuited)return;if(re.pendingActionResult){let[Z,me]=re.pendingActionResult;if(Ze(me)&&ci(me.error)&&me.error.status===404){B=null,An(x,{matches:re.matches,loaderData:{},errors:{[Z]:me.error}});return}}W=re.matches||W,z=re.pendingActionResult,L=bi(x,E.submission),V=!1,F.active=!1,I=bn(e.history,I.url,I.signal)}let{shortCircuited:$,matches:b,loaderData:X,errors:Te}=await Hh(I,x,W,F.active,L,E&&E.submission,E&&E.fetcherSubmission,E&&E.replace,E&&E.initialHydration===!0,V,z);$||(B=null,An(x,ue({matches:b||W},jc(z),{loaderData:X,errors:Te})))}async function Ah(m,x,E,M,L,W){W===void 0&&(W={}),mi();let V=xy(x,E);if(We({navigation:V},{flushSync:W.flushSync===!0}),L){let z=await zl(M,x.pathname,m.signal);if(z.type==="aborted")return{shortCircuited:!0};if(z.type==="error"){let $=Nn(z.partialMatches).route.id;return{matches:z.partialMatches,pendingActionResult:[$,{type:ne.error,error:z.error}]}}else if(z.matches)M=z.matches;else{let{notFoundMatches:$,error:b,route:X}=gi(x.pathname);return{matches:$,pendingActionResult:[X.id,{type:ne.error,error:b}]}}}let F,I=br(M,x);if(!I.route.action&&!I.route.lazy)F={type:ne.error,error:Ye(405,{method:m.method,pathname:x.pathname,routeId:I.route.id})};else if(F=(await Nr("action",w,m,[I],M,null))[I.route.id],m.signal.aborted)return{shortCircuited:!0};if(Rn(F)){let z;return W&&W.replace!=null?z=W.replace:z=Pc(F.response.headers.get("Location"),new URL(m.url),u)===w.location.pathname+w.location.search,await xn(m,F,!0,{submission:E,replace:z}),{shortCircuited:!0}}if(nn(F))throw Ye(400,{type:"defer-action"});if(Ze(F)){let z=Nn(M,I.route.id);return(W&&W.replace)!==!0&&(T=ve.Push),{matches:M,pendingActionResult:[z.route.id,F]}}return{matches:M,pendingActionResult:[I.route.id,F]}}async function Hh(m,x,E,M,L,W,V,F,I,z,$){let b=L||bi(x,W),X=W||V||Lc(b),Te=!xe&&(!f.v7_partialHydration||!I);if(M){if(Te){let ge=Gu($);We(ue({navigation:b},ge!==void 0?{actionData:ge}:{}),{flushSync:z})}let G=await zl(E,x.pathname,m.signal);if(G.type==="aborted")return{shortCircuited:!0};if(G.type==="error"){let ge=Nn(G.partialMatches).route.id;return{matches:G.partialMatches,loaderData:{},errors:{[ge]:G.error}}}else if(G.matches)E=G.matches;else{let{error:ge,notFoundMatches:Vn,route:jr}=gi(x.pathname);return{matches:Vn,loaderData:{},errors:{[jr.id]:ge}}}}let re=o||i,[Z,me]=Sc(e.history,w,E,X,x,f.v7_partialHydration&&I===!0,f.v7_skipActionErrorRevalidation,ke,Ht,Vt,Ce,ae,J,re,u,$);if(yi(G=>!(E&&E.some(ge=>ge.route.id===G))||Z&&Z.some(ge=>ge.route.id===G)),A=++D,Z.length===0&&me.length===0){let G=es();return An(x,ue({matches:E,loaderData:{},errors:$&&Ze($[1])?{[$[0]]:$[1].error}:null},jc($),G?{fetchers:new Map(w.fetchers)}:{}),{flushSync:z}),{shortCircuited:!0}}if(Te){let G={};if(!M){G.navigation=b;let ge=Gu($);ge!==void 0&&(G.actionData=ge)}me.length>0&&(G.fetchers=Vh(me)),We(G,{flushSync:z})}me.forEach(G=>{Qt(G.key),G.controller&&pe.set(G.key,G.controller)});let Hn=()=>me.forEach(G=>Qt(G.key));B&&B.signal.addEventListener("abort",Hn);let{loaderResults:Mr,fetcherResults:_t}=await Ju(w,E,Z,me,m);if(m.signal.aborted)return{shortCircuited:!0};B&&B.signal.removeEventListener("abort",Hn),me.forEach(G=>pe.delete(G.key));let xt=ta(Mr);if(xt)return await xn(m,xt.result,!0,{replace:F}),{shortCircuited:!0};if(xt=ta(_t),xt)return J.add(xt.key),await xn(m,xt.result,!0,{replace:F}),{shortCircuited:!0};let{loaderData:vi,errors:_r}=Mc(w,E,Mr,$,me,_t,ct);ct.forEach((G,ge)=>{G.subscribe(Vn=>{(Vn||G.done)&&ct.delete(ge)})}),f.v7_partialHydration&&I&&w.errors&&(_r=ue({},w.errors,_r));let kn=es(),Fl=ts(A),Il=kn||Fl||me.length>0;return ue({matches:E,loaderData:vi,errors:_r},Il?{fetchers:new Map(w.fetchers)}:{})}function Gu(m){if(m&&!Ze(m[1]))return{[m[0]]:m[1].data};if(w.actionData)return Object.keys(w.actionData).length===0?null:w.actionData}function Vh(m){return m.forEach(x=>{let E=w.fetchers.get(x.key),M=Br(void 0,E?E.data:void 0);w.fetchers.set(x.key,M)}),new Map(w.fetchers)}function Yh(m,x,E,M){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Qt(m);let L=(M&&M.flushSync)===!0,W=o||i,V=Vo(w.location,w.matches,u,f.v7_prependBasename,E,f.v7_relativeSplatPath,x,M==null?void 0:M.relative),F=Pn(W,V,u),I=Ol(F,W,V);if(I.active&&I.matches&&(F=I.matches),!F){Mt(m,x,Ye(404,{pathname:V}),{flushSync:L});return}let{path:z,submission:$,error:b}=xc(f.v7_normalizeFormMethod,!0,V,M);if(b){Mt(m,x,b,{flushSync:L});return}let X=br(F,z),Te=(M&&M.preventScrollReset)===!0;if($&&pt($.formMethod)){Qh(m,x,z,X,F,I.active,L,Te,$);return}ae.set(m,{routeId:x,path:z}),bh(m,x,z,X,F,I.active,L,Te,$)}async function Qh(m,x,E,M,L,W,V,F,I){mi(),ae.delete(m);function z(Se){if(!Se.route.action&&!Se.route.lazy){let Yn=Ye(405,{method:I.formMethod,pathname:E,routeId:x});return Mt(m,x,Yn,{flushSync:V}),!0}return!1}if(!W&&z(M))return;let $=w.fetchers.get(m);Yt(m,ky(I,$),{flushSync:V});let b=new AbortController,X=bn(e.history,E,b.signal,I);if(W){let Se=await zl(L,E,X.signal);if(Se.type==="aborted")return;if(Se.type==="error"){Mt(m,x,Se.error,{flushSync:V});return}else if(Se.matches){if(L=Se.matches,M=br(L,E),z(M))return}else{Mt(m,x,Ye(404,{pathname:E}),{flushSync:V});return}}pe.set(m,b);let Te=D,Z=(await Nr("action",w,X,[M],L,m))[M.route.id];if(X.signal.aborted){pe.get(m)===b&&pe.delete(m);return}if(f.v7_fetcherPersist&&Ce.has(m)){if(Rn(Z)||Ze(Z)){Yt(m,Kt(void 0));return}}else{if(Rn(Z))if(pe.delete(m),A>Te){Yt(m,Kt(void 0));return}else return J.add(m),Yt(m,Br(I)),xn(X,Z,!1,{fetcherSubmission:I,preventScrollReset:F});if(Ze(Z)){Mt(m,x,Z.error);return}}if(nn(Z))throw Ye(400,{type:"defer-action"});let me=w.navigation.location||w.location,Hn=bn(e.history,me,b.signal),Mr=o||i,_t=w.navigation.state!=="idle"?Pn(Mr,w.navigation.location,u):w.matches;Y(_t,"Didn't find any matches after fetcher action");let xt=++D;H.set(m,xt);let vi=Br(I,Z.data);w.fetchers.set(m,vi);let[_r,kn]=Sc(e.history,w,_t,I,me,!1,f.v7_skipActionErrorRevalidation,ke,Ht,Vt,Ce,ae,J,Mr,u,[M.route.id,Z]);kn.filter(Se=>Se.key!==m).forEach(Se=>{let Yn=Se.key,is=w.fetchers.get(Yn),ep=Br(void 0,is?is.data:void 0);w.fetchers.set(Yn,ep),Qt(Yn),Se.controller&&pe.set(Yn,Se.controller)}),We({fetchers:new Map(w.fetchers)});let Fl=()=>kn.forEach(Se=>Qt(Se.key));b.signal.addEventListener("abort",Fl);let{loaderResults:Il,fetcherResults:G}=await Ju(w,_t,_r,kn,Hn);if(b.signal.aborted)return;b.signal.removeEventListener("abort",Fl),H.delete(m),pe.delete(m),kn.forEach(Se=>pe.delete(Se.key));let ge=ta(Il);if(ge)return xn(Hn,ge.result,!1,{preventScrollReset:F});if(ge=ta(G),ge)return J.add(ge.key),xn(Hn,ge.result,!1,{preventScrollReset:F});let{loaderData:Vn,errors:jr}=Mc(w,_t,Il,void 0,kn,G,ct);if(w.fetchers.has(m)){let Se=Kt(Z.data);w.fetchers.set(m,Se)}ts(xt),w.navigation.state==="loading"&&xt>A?(Y(T,"Expected pending action"),B&&B.abort(),An(w.navigation.location,{matches:_t,loaderData:Vn,errors:jr,fetchers:new Map(w.fetchers)})):(We({errors:jr,loaderData:_c(w.loaderData,Vn,_t,jr),fetchers:new Map(w.fetchers)}),ke=!1)}async function bh(m,x,E,M,L,W,V,F,I){let z=w.fetchers.get(m);Yt(m,Br(I,z?z.data:void 0),{flushSync:V});let $=new AbortController,b=bn(e.history,E,$.signal);if(W){let Z=await zl(L,E,b.signal);if(Z.type==="aborted")return;if(Z.type==="error"){Mt(m,x,Z.error,{flushSync:V});return}else if(Z.matches)L=Z.matches,M=br(L,E);else{Mt(m,x,Ye(404,{pathname:E}),{flushSync:V});return}}pe.set(m,$);let X=D,re=(await Nr("loader",w,b,[M],L,m))[M.route.id];if(nn(re)&&(re=await bu(re,b.signal,!0)||re),pe.get(m)===$&&pe.delete(m),!b.signal.aborted){if(Ce.has(m)){Yt(m,Kt(void 0));return}if(Rn(re))if(A>X){Yt(m,Kt(void 0));return}else{J.add(m),await xn(b,re,!1,{preventScrollReset:F});return}if(Ze(re)){Mt(m,x,re.error);return}Y(!nn(re),"Unhandled fetcher deferred data"),Yt(m,Kt(re.data))}}async function xn(m,x,E,M){let{submission:L,fetcherSubmission:W,preventScrollReset:V,replace:F}=M===void 0?{}:M;x.response.headers.has("X-Remix-Revalidate")&&(ke=!0);let I=x.response.headers.get("Location");Y(I,"Expected a Location header on the redirect Response"),I=Pc(I,new URL(m.url),u);let z=xl(w.location,I,{_isRedirect:!0});if(n){let Z=!1;if(x.response.headers.has("X-Remix-Reload-Document"))Z=!0;else if(Qu.test(I)){const me=e.history.createURL(I);Z=me.origin!==t.location.origin||Pr(me.pathname,u)==null}if(Z){F?t.location.replace(I):t.location.assign(I);return}}B=null;let $=F===!0||x.response.headers.has("X-Remix-Replace")?ve.Replace:ve.Push,{formMethod:b,formAction:X,formEncType:Te}=w.navigation;!L&&!W&&b&&X&&Te&&(L=Lc(w.navigation));let re=L||W;if(ty.has(x.response.status)&&re&&pt(re.formMethod))await wn($,z,{submission:ue({},re,{formAction:I}),preventScrollReset:V||j,enableViewTransition:E?U:void 0});else{let Z=bi(z,L);await wn($,z,{overrideNavigation:Z,fetcherSubmission:W,preventScrollReset:V||j,enableViewTransition:E?U:void 0})}}async function Nr(m,x,E,M,L,W){let V,F={};try{V=await sy(s,m,x,E,M,L,W,a,l)}catch(I){return M.forEach(z=>{F[z.route.id]={type:ne.error,error:I}}),F}for(let[I,z]of Object.entries(V))if(my(z)){let $=z.result;F[I]={type:ne.redirect,response:fy($,E,I,L,u,f.v7_relativeSplatPath)}}else F[I]=await dy(z);return F}async function Ju(m,x,E,M,L){let W=m.matches,V=Nr("loader",m,L,E,x,null),F=Promise.all(M.map(async $=>{if($.matches&&$.match&&$.controller){let X=(await Nr("loader",m,bn(e.history,$.path,$.controller.signal),[$.match],$.matches,$.key))[$.match.route.id];return{[$.key]:X}}else return Promise.resolve({[$.key]:{type:ne.error,error:Ye(404,{pathname:$.path})}})})),I=await V,z=(await F).reduce(($,b)=>Object.assign($,b),{});return await Promise.all([vy(x,I,L.signal,W,m.loaderData),wy(x,z,M)]),{loaderResults:I,fetcherResults:z}}function mi(){ke=!0,Ht.push(...yi()),ae.forEach((m,x)=>{pe.has(x)&&Vt.add(x),Qt(x)})}function Yt(m,x,E){E===void 0&&(E={}),w.fetchers.set(m,x),We({fetchers:new Map(w.fetchers)},{flushSync:(E&&E.flushSync)===!0})}function Mt(m,x,E,M){M===void 0&&(M={});let L=Nn(w.matches,x);Ll(m),We({errors:{[L.route.id]:E},fetchers:new Map(w.fetchers)},{flushSync:(M&&M.flushSync)===!0})}function Zu(m){return wt.set(m,(wt.get(m)||0)+1),Ce.has(m)&&Ce.delete(m),w.fetchers.get(m)||ny}function Ll(m){let x=w.fetchers.get(m);pe.has(m)&&!(x&&x.state==="loading"&&H.has(m))&&Qt(m),ae.delete(m),H.delete(m),J.delete(m),f.v7_fetcherPersist&&Ce.delete(m),Vt.delete(m),w.fetchers.delete(m)}function Xh(m){let x=(wt.get(m)||0)-1;x<=0?(wt.delete(m),Ce.add(m),f.v7_fetcherPersist||Ll(m)):wt.set(m,x),We({fetchers:new Map(w.fetchers)})}function Qt(m){let x=pe.get(m);x&&(x.abort(),pe.delete(m))}function qu(m){for(let x of m){let E=Zu(x),M=Kt(E.data);w.fetchers.set(x,M)}}function es(){let m=[],x=!1;for(let E of J){let M=w.fetchers.get(E);Y(M,"Expected fetcher: "+E),M.state==="loading"&&(J.delete(E),m.push(E),x=!0)}return qu(m),x}function ts(m){let x=[];for(let[E,M]of H)if(M0}function Kh(m,x){let E=w.blockers.get(m)||Ur;return Be.get(m)!==x&&Be.set(m,x),E}function ns(m){w.blockers.delete(m),Be.delete(m)}function Dl(m,x){let E=w.blockers.get(m)||Ur;Y(E.state==="unblocked"&&x.state==="blocked"||E.state==="blocked"&&x.state==="blocked"||E.state==="blocked"&&x.state==="proceeding"||E.state==="blocked"&&x.state==="unblocked"||E.state==="proceeding"&&x.state==="unblocked","Invalid blocker state transition: "+E.state+" -> "+x.state);let M=new Map(w.blockers);M.set(m,x),We({blockers:M})}function rs(m){let{currentLocation:x,nextLocation:E,historyAction:M}=m;if(Be.size===0)return;Be.size>1&&kr(!1,"A router only supports one blocker at a time");let L=Array.from(Be.entries()),[W,V]=L[L.length-1],F=w.blockers.get(W);if(!(F&&F.state==="proceeding")&&V({currentLocation:x,nextLocation:E,historyAction:M}))return W}function gi(m){let x=Ye(404,{pathname:m}),E=o||i,{matches:M,route:L}=Rc(E);return yi(),{notFoundMatches:M,route:L,error:x}}function yi(m){let x=[];return ct.forEach((E,M)=>{(!m||m(M))&&(E.cancel(),x.push(M),ct.delete(M))}),x}function Gh(m,x,E){if(S=m,P=x,v=E||null,!p&&w.navigation===Qi){p=!0;let M=as(w.location,w.matches);M!=null&&We({restoreScrollPosition:M})}return()=>{S=null,P=null,v=null}}function ls(m,x){return v&&v(m,x.map(M=>Dg(M,w.loaderData)))||m.key}function Jh(m,x){if(S&&P){let E=ls(m,x);S[E]=P()}}function as(m,x){if(S){let E=ls(m,x),M=S[E];if(typeof M=="number")return M}return null}function Ol(m,x,E){if(c)if(m){if(Object.keys(m[0].params).length>0)return{active:!0,matches:ga(x,E,u,!0)}}else return{active:!0,matches:ga(x,E,u,!0)||[]};return{active:!1,matches:null}}async function zl(m,x,E){if(!c)return{type:"success",matches:m};let M=m;for(;;){let L=o==null,W=o||i,V=a;try{await c({path:x,matches:M,patch:(z,$)=>{E.aborted||Cc(z,$,W,V,l)}})}catch(z){return{type:"error",error:z,partialMatches:M}}finally{L&&!E.aborted&&(i=[...i])}if(E.aborted)return{type:"aborted"};let F=Pn(W,x,u);if(F)return{type:"success",matches:F};let I=ga(W,x,u,!0);if(!I||M.length===I.length&&M.every((z,$)=>z.route.id===I[$].route.id))return{type:"success",matches:null};M=I}}function Zh(m){a={},o=Aa(m,l,void 0,a)}function qh(m,x){let E=o==null;Cc(m,x,o||i,a,l),E&&(i=[...i],We({}))}return R={get basename(){return u},get future(){return f},get state(){return w},get routes(){return i},get window(){return t},initialize:Uh,subscribe:Wh,enableScrollRestoration:Gh,navigate:Ku,fetch:Yh,revalidate:$h,createHref:m=>e.history.createHref(m),encodeLocation:m=>e.history.encodeLocation(m),getFetcher:Zu,deleteFetcher:Xh,dispose:Bh,getBlocker:Kh,deleteBlocker:ns,patchRoutes:qh,_internalFetchControllers:pe,_internalActiveDeferreds:ct,_internalSetRoutes:Zh},R}function ay(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Vo(e,t,n,r,l,a,i,o){let u,s;if(i){u=[];for(let f of t)if(u.push(f),f.route.id===i){s=f;break}}else u=t,s=t[t.length-1];let c=Yu(l||".",Vu(u,a),Pr(e.pathname,n)||e.pathname,o==="path");if(l==null&&(c.search=e.search,c.hash=e.hash),(l==null||l===""||l===".")&&s){let f=Xu(c.search);if(s.route.index&&!f)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&f){let h=new URLSearchParams(c.search),k=h.getAll("index");h.delete("index"),k.filter(v=>v).forEach(v=>h.append("index",v));let S=h.toString();c.search=S?"?"+S:""}}return r&&n!=="/"&&(c.pathname=c.pathname==="/"?n:zt([n,c.pathname])),Un(c)}function xc(e,t,n,r){if(!r||!ay(r))return{path:n};if(r.formMethod&&!yy(r.formMethod))return{path:n,error:Ye(405,{method:r.formMethod})};let l=()=>({path:n,error:Ye(400,{type:"invalid-body"})}),a=r.formMethod||"get",i=e?a.toUpperCase():a.toLowerCase(),o=mh(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!pt(i))return l();let h=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((k,S)=>{let[v,P]=S;return""+k+v+"="+P+` -`},""):String(r.body);return{path:n,submission:{formMethod:i,formAction:o,formEncType:r.formEncType,formData:void 0,json:void 0,text:h}}}else if(r.formEncType==="application/json"){if(!pt(i))return l();try{let h=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:i,formAction:o,formEncType:r.formEncType,formData:void 0,json:h,text:void 0}}}catch{return l()}}}Y(typeof FormData=="function","FormData is not available in this environment");let u,s;if(r.formData)u=Qo(r.formData),s=r.formData;else if(r.body instanceof FormData)u=Qo(r.body),s=r.body;else if(r.body instanceof URLSearchParams)u=r.body,s=Nc(u);else if(r.body==null)u=new URLSearchParams,s=new FormData;else try{u=new URLSearchParams(r.body),s=Nc(u)}catch{return l()}let c={formMethod:i,formAction:o,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(pt(c.formMethod))return{path:n,submission:c};let f=At(n);return t&&f.search&&Xu(f.search)&&u.append("index",""),f.search="?"+u,{path:Un(f),submission:c}}function kc(e,t,n){n===void 0&&(n=!1);let r=e.findIndex(l=>l.route.id===t);return r>=0?e.slice(0,n?r+1:r):e}function Sc(e,t,n,r,l,a,i,o,u,s,c,f,h,k,S,v){let P=v?Ze(v[1])?v[1].error:v[1].data:void 0,p=e.createURL(t.location),d=e.createURL(l),y=n;a&&t.errors?y=kc(n,Object.keys(t.errors)[0],!0):v&&Ze(v[1])&&(y=kc(n,v[0]));let C=v?v[1].statusCode:void 0,R=i&&C&&C>=400,w=y.filter((j,B)=>{let{route:U}=j;if(U.lazy)return!0;if(U.loader==null)return!1;if(a)return Yo(U,t.loaderData,t.errors);if(iy(t.loaderData,t.matches[B],j)||u.some(xe=>xe===j.route.id))return!0;let te=t.matches[B],ce=j;return Ec(j,ue({currentUrl:p,currentParams:te.params,nextUrl:d,nextParams:ce.params},r,{actionResult:P,actionStatus:C,defaultShouldRevalidate:R?!1:o||p.pathname+p.search===d.pathname+d.search||p.search!==d.search||hh(te,ce)}))}),T=[];return f.forEach((j,B)=>{if(a||!n.some(ke=>ke.route.id===j.routeId)||c.has(B))return;let U=Pn(k,j.path,S);if(!U){T.push({key:B,routeId:j.routeId,path:j.path,matches:null,match:null,controller:null});return}let te=t.fetchers.get(B),ce=br(U,j.path),xe=!1;h.has(B)?xe=!1:s.has(B)?(s.delete(B),xe=!0):te&&te.state!=="idle"&&te.data===void 0?xe=o:xe=Ec(ce,ue({currentUrl:p,currentParams:t.matches[t.matches.length-1].params,nextUrl:d,nextParams:n[n.length-1].params},r,{actionResult:P,actionStatus:C,defaultShouldRevalidate:R?!1:o})),xe&&T.push({key:B,routeId:j.routeId,path:j.path,matches:U,match:ce,controller:new AbortController})}),[w,T]}function Yo(e,t,n){if(e.lazy)return!0;if(!e.loader)return!1;let r=t!=null&&t[e.id]!==void 0,l=n!=null&&n[e.id]!==void 0;return!r&&l?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!r&&!l}function iy(e,t,n){let r=!t||n.route.id!==t.route.id,l=e[n.route.id]===void 0;return r||l}function hh(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function Ec(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}function Cc(e,t,n,r,l){var a;let i;if(e){let s=r[e];Y(s,"No route found to patch children into: routeId = "+e),s.children||(s.children=[]),i=s.children}else i=n;let o=t.filter(s=>!i.some(c=>ph(s,c))),u=Aa(o,l,[e||"_","patch",String(((a=i)==null?void 0:a.length)||"0")],r);i.push(...u)}function ph(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((n,r)=>{var l;return(l=t.children)==null?void 0:l.some(a=>ph(n,a))}):!1}async function oy(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let l=n[e.id];Y(l,"No route found in manifest");let a={};for(let i in r){let u=l[i]!==void 0&&i!=="hasErrorBoundary";kr(!u,'Route "'+l.id+'" has a static property "'+i+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+i+'" will be ignored.')),!u&&!Tg.has(i)&&(a[i]=r[i])}Object.assign(l,a),Object.assign(l,ue({},t(l),{lazy:void 0}))}async function uy(e){let{matches:t}=e,n=t.filter(l=>l.shouldLoad);return(await Promise.all(n.map(l=>l.resolve()))).reduce((l,a,i)=>Object.assign(l,{[n[i].route.id]:a}),{})}async function sy(e,t,n,r,l,a,i,o,u,s){let c=a.map(k=>k.route.lazy?oy(k.route,u,o):void 0),f=a.map((k,S)=>{let v=c[S],P=l.some(d=>d.route.id===k.route.id);return ue({},k,{shouldLoad:P,resolve:async d=>(d&&r.method==="GET"&&(k.route.lazy||k.route.loader)&&(P=!0),P?cy(t,r,k,v,d,s):Promise.resolve({type:ne.data,result:void 0}))})}),h=await e({matches:f,request:r,params:a[0].params,fetcherKey:i,context:s});try{await Promise.all(c)}catch{}return h}async function cy(e,t,n,r,l,a){let i,o,u=s=>{let c,f=new Promise((S,v)=>c=v);o=()=>c(),t.signal.addEventListener("abort",o);let h=S=>typeof s!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+n.route.id+"]"))):s({request:t,params:n.params,context:a},...S!==void 0?[S]:[]),k=(async()=>{try{return{type:"data",result:await(l?l(v=>h(v)):h())}}catch(S){return{type:"error",result:S}}})();return Promise.race([k,f])};try{let s=n.route[e];if(r)if(s){let c,[f]=await Promise.all([u(s).catch(h=>{c=h}),r]);if(c!==void 0)throw c;i=f}else if(await r,s=n.route[e],s)i=await u(s);else if(e==="action"){let c=new URL(t.url),f=c.pathname+c.search;throw Ye(405,{method:t.method,pathname:f,routeId:n.route.id})}else return{type:ne.data,result:void 0};else if(s)i=await u(s);else{let c=new URL(t.url),f=c.pathname+c.search;throw Ye(404,{pathname:f})}Y(i.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(s){return{type:ne.error,result:s}}finally{o&&t.signal.removeEventListener("abort",o)}return i}async function dy(e){let{result:t,type:n}=e;if(gh(t)){let s;try{let c=t.headers.get("Content-Type");c&&/\bapplication\/json\b/.test(c)?t.body==null?s=null:s=await t.json():s=await t.text()}catch(c){return{type:ne.error,error:c}}return n===ne.error?{type:ne.error,error:new Ha(t.status,t.statusText,s),statusCode:t.status,headers:t.headers}:{type:ne.data,data:s,statusCode:t.status,headers:t.headers}}if(n===ne.error){if(Tc(t)){var r;if(t.data instanceof Error){var l;return{type:ne.error,error:t.data,statusCode:(l=t.init)==null?void 0:l.status}}t=new Ha(((r=t.init)==null?void 0:r.status)||500,void 0,t.data)}return{type:ne.error,error:t,statusCode:ci(t)?t.status:void 0}}if(gy(t)){var a,i;return{type:ne.deferred,deferredData:t,statusCode:(a=t.init)==null?void 0:a.status,headers:((i=t.init)==null?void 0:i.headers)&&new Headers(t.init.headers)}}if(Tc(t)){var o,u;return{type:ne.data,data:t.data,statusCode:(o=t.init)==null?void 0:o.status,headers:(u=t.init)!=null&&u.headers?new Headers(t.init.headers):void 0}}return{type:ne.data,data:t}}function fy(e,t,n,r,l,a){let i=e.headers.get("Location");if(Y(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!Qu.test(i)){let o=r.slice(0,r.findIndex(u=>u.route.id===n)+1);i=Vo(new URL(t.url),o,l,!0,i,a),e.headers.set("Location",i)}return e}function Pc(e,t,n){if(Qu.test(e)){let r=e,l=r.startsWith("//")?new URL(t.protocol+r):new URL(r),a=Pr(l.pathname,n)!=null;if(l.origin===t.origin&&a)return l.pathname+l.search+l.hash}return e}function bn(e,t,n,r){let l=e.createURL(mh(t)).toString(),a={signal:n};if(r&&pt(r.formMethod)){let{formMethod:i,formEncType:o}=r;a.method=i.toUpperCase(),o==="application/json"?(a.headers=new Headers({"Content-Type":o}),a.body=JSON.stringify(r.json)):o==="text/plain"?a.body=r.text:o==="application/x-www-form-urlencoded"&&r.formData?a.body=Qo(r.formData):a.body=r.formData}return new Request(l,a)}function Qo(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function Nc(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function hy(e,t,n,r,l){let a={},i=null,o,u=!1,s={},c=n&&Ze(n[1])?n[1].error:void 0;return e.forEach(f=>{if(!(f.route.id in t))return;let h=f.route.id,k=t[h];if(Y(!Rn(k),"Cannot handle redirect results in processLoaderData"),Ze(k)){let S=k.error;c!==void 0&&(S=c,c=void 0),i=i||{};{let v=Nn(e,h);i[v.route.id]==null&&(i[v.route.id]=S)}a[h]=void 0,u||(u=!0,o=ci(k.error)?k.error.status:500),k.headers&&(s[h]=k.headers)}else nn(k)?(r.set(h,k.deferredData),a[h]=k.deferredData.data,k.statusCode!=null&&k.statusCode!==200&&!u&&(o=k.statusCode),k.headers&&(s[h]=k.headers)):(a[h]=k.data,k.statusCode&&k.statusCode!==200&&!u&&(o=k.statusCode),k.headers&&(s[h]=k.headers))}),c!==void 0&&n&&(i={[n[0]]:c},a[n[0]]=void 0),{loaderData:a,errors:i,statusCode:o||200,loaderHeaders:s}}function Mc(e,t,n,r,l,a,i){let{loaderData:o,errors:u}=hy(t,n,r,i);return l.forEach(s=>{let{key:c,match:f,controller:h}=s,k=a[c];if(Y(k,"Did not find corresponding fetcher result"),!(h&&h.signal.aborted))if(Ze(k)){let S=Nn(e.matches,f==null?void 0:f.route.id);u&&u[S.route.id]||(u=ue({},u,{[S.route.id]:k.error})),e.fetchers.delete(c)}else if(Rn(k))Y(!1,"Unhandled fetcher revalidation redirect");else if(nn(k))Y(!1,"Unhandled fetcher deferred data");else{let S=Kt(k.data);e.fetchers.set(c,S)}}),{loaderData:o,errors:u}}function _c(e,t,n,r){let l=ue({},t);for(let a of n){let i=a.route.id;if(t.hasOwnProperty(i)?t[i]!==void 0&&(l[i]=t[i]):e[i]!==void 0&&a.route.loader&&(l[i]=e[i]),r&&r.hasOwnProperty(i))break}return l}function jc(e){return e?Ze(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Nn(e,t){return(t?e.slice(0,e.findIndex(r=>r.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function Rc(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Ye(e,t){let{pathname:n,routeId:r,method:l,type:a,message:i}=t===void 0?{}:t,o="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(o="Bad Request",l&&n&&r?u="You made a "+l+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":a==="defer-action"?u="defer() is not supported in actions":a==="invalid-body"&&(u="Unable to encode submission body")):e===403?(o="Forbidden",u='Route "'+r+'" does not match URL "'+n+'"'):e===404?(o="Not Found",u='No route matches URL "'+n+'"'):e===405&&(o="Method Not Allowed",l&&n&&r?u="You made a "+l.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":l&&(u='Invalid request method "'+l.toUpperCase()+'"')),new Ha(e||500,o,new Error(u),!0)}function ta(e){let t=Object.entries(e);for(let n=t.length-1;n>=0;n--){let[r,l]=t[n];if(Rn(l))return{key:r,result:l}}}function mh(e){let t=typeof e=="string"?At(e):e;return Un(ue({},t,{hash:""}))}function py(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function my(e){return gh(e.result)&&ey.has(e.result.status)}function nn(e){return e.type===ne.deferred}function Ze(e){return e.type===ne.error}function Rn(e){return(e&&e.type)===ne.redirect}function Tc(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function gy(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function gh(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function yy(e){return qg.has(e.toLowerCase())}function pt(e){return Jg.has(e.toLowerCase())}async function vy(e,t,n,r,l){let a=Object.entries(t);for(let i=0;i(h==null?void 0:h.route.id)===o);if(!s)continue;let c=r.find(h=>h.route.id===s.route.id),f=c!=null&&!hh(c,s)&&(l&&l[s.route.id])!==void 0;nn(u)&&f&&await bu(u,n,!1).then(h=>{h&&(t[o]=h)})}}async function wy(e,t,n){for(let r=0;r(s==null?void 0:s.route.id)===a)&&nn(o)&&(Y(i,"Expected an AbortController for revalidating fetcher deferred result"),await bu(o,i.signal,!0).then(s=>{s&&(t[l]=s)}))}}async function bu(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:ne.data,data:e.deferredData.unwrappedData}}catch(l){return{type:ne.error,error:l}}return{type:ne.data,data:e.deferredData.data}}}function Xu(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function br(e,t){let n=typeof t=="string"?At(t).search:t.search;if(e[e.length-1].route.index&&Xu(n||""))return e[e.length-1];let r=ch(e);return r[r.length-1]}function Lc(e){let{formMethod:t,formAction:n,formEncType:r,text:l,formData:a,json:i}=e;if(!(!t||!n||!r)){if(l!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:l};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:i,text:void 0}}}function bi(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function xy(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Br(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ky(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Kt(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Sy(e,t){try{let n=e.sessionStorage.getItem(fh);if(n){let r=JSON.parse(n);for(let[l,a]of Object.entries(r||{}))a&&Array.isArray(a)&&t.set(l,new Set(a||[]))}}catch{}}function Ey(e,t){if(t.size>0){let n={};for(let[r,l]of t)n[r]=[...l];try{e.sessionStorage.setItem(fh,JSON.stringify(n))}catch(r){kr(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** - * React Router v6.28.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function kl(){return kl=Object.assign?Object.assign.bind():function(e){for(var t=1;t{o.current=!0}),N.useCallback(function(s,c){if(c===void 0&&(c={}),!o.current)return;if(typeof s=="number"){r.go(s);return}let f=Yu(s,JSON.parse(i),a,c.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:zt([t,f.pathname])),(c.replace?r.replace:r.push)(f,c.state,c)},[t,r,i,a,e])}function Ny(){let{matches:e}=N.useContext(vn),t=e[e.length-1];return t?t.params:{}}function kh(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=N.useContext($n),{matches:l}=N.useContext(vn),{pathname:a}=Rl(),i=JSON.stringify(Vu(l,r.v7_relativeSplatPath));return N.useMemo(()=>Yu(e,JSON.parse(i),a,n==="path"),[e,i,a,n])}function My(e,t){return Sh(e,t)}function Sh(e,t,n,r){jl()||Y(!1);let{navigator:l}=N.useContext($n),{matches:a}=N.useContext(vn),i=a[a.length-1],o=i?i.params:{};i&&i.pathname;let u=i?i.pathnameBase:"/";i&&i.route;let s=Rl(),c;if(t){var f;let P=typeof t=="string"?At(t):t;u==="/"||(f=P.pathname)!=null&&f.startsWith(u)||Y(!1),c=P}else c=s;let h=c.pathname||"/",k=h;if(u!=="/"){let P=u.replace(/^\//,"").split("/");k="/"+h.replace(/^\//,"").split("/").slice(P.length).join("/")}let S=Pn(e,{pathname:k}),v=Ly(S&&S.map(P=>Object.assign({},P,{params:Object.assign({},o,P.params),pathname:zt([u,l.encodeLocation?l.encodeLocation(P.pathname).pathname:P.pathname]),pathnameBase:P.pathnameBase==="/"?u:zt([u,l.encodeLocation?l.encodeLocation(P.pathnameBase).pathname:P.pathnameBase])})),a,n,r);return t&&v?N.createElement(fi.Provider,{value:{location:kl({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:ve.Pop}},v):v}function _y(){let e=Fy(),t=ci(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return N.createElement(N.Fragment,null,N.createElement("h2",null,"Unexpected Application Error!"),N.createElement("h3",{style:{fontStyle:"italic"}},t),n?N.createElement("pre",{style:l},n):null,null)}const jy=N.createElement(_y,null);class Ry extends N.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?N.createElement(vn.Provider,{value:this.props.routeContext},N.createElement(vh.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Ty(e){let{routeContext:t,match:n,children:r}=e,l=N.useContext(di);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),N.createElement(vn.Provider,{value:t},r)}function Ly(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var a;if(!n)return null;if(n.errors)e=n.matches;else if((a=r)!=null&&a.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,o=(l=n)==null?void 0:l.errors;if(o!=null){let c=i.findIndex(f=>f.route.id&&(o==null?void 0:o[f.route.id])!==void 0);c>=0||Y(!1),i=i.slice(0,Math.min(i.length,c+1))}let u=!1,s=-1;if(n&&r&&r.v7_partialHydration)for(let c=0;c=0?i=i.slice(0,s+1):i=[i[0]];break}}}return i.reduceRight((c,f,h)=>{let k,S=!1,v=null,P=null;n&&(k=o&&f.route.id?o[f.route.id]:void 0,v=f.route.errorElement||jy,u&&(s<0&&h===0?(Uy("route-fallback"),S=!0,P=null):s===h&&(S=!0,P=f.route.hydrateFallbackElement||null)));let p=t.concat(i.slice(0,h+1)),d=()=>{let y;return k?y=v:S?y=P:f.route.Component?y=N.createElement(f.route.Component,null):f.route.element?y=f.route.element:y=c,N.createElement(Ty,{match:f,routeContext:{outlet:c,matches:p,isDataRoute:n!=null},children:y})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?N.createElement(Ry,{location:n.location,revalidation:n.revalidation,component:v,error:k,children:d(),routeContext:{outlet:null,matches:p,isDataRoute:!0}}):d()},null)}var Eh=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Eh||{}),Va=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Va||{});function Dy(e){let t=N.useContext(di);return t||Y(!1),t}function Oy(e){let t=N.useContext(yh);return t||Y(!1),t}function zy(e){let t=N.useContext(vn);return t||Y(!1),t}function Ch(e){let t=zy(),n=t.matches[t.matches.length-1];return n.route.id||Y(!1),n.route.id}function Fy(){var e;let t=N.useContext(vh),n=Oy(Va.UseRouteError),r=Ch(Va.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function Iy(){let{router:e}=Dy(Eh.UseNavigateStable),t=Ch(Va.UseNavigateStable),n=N.useRef(!1);return wh(()=>{n.current=!0}),N.useCallback(function(l,a){a===void 0&&(a={}),n.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,kl({fromRouteId:t},a)))},[e,t])}const Dc={};function Uy(e,t,n){Dc[e]||(Dc[e]=!0)}const Oc={};function By(e,t){Oc[t]||(Oc[t]=!0,console.warn(t))}const Xn=(e,t,n)=>By(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+n+"."));function Wy(e,t){(e==null?void 0:e.v7_startTransition)===void 0&&Xn("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||!t.v7_relativeSplatPath)&&Xn("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(t.v7_fetcherPersist===void 0&&Xn("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),t.v7_normalizeFormMethod===void 0&&Xn("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),t.v7_partialHydration===void 0&&Xn("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),t.v7_skipActionErrorRevalidation===void 0&&Xn("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}function bo(e){Y(!1)}function $y(e){let{basename:t="/",children:n=null,location:r,navigationType:l=ve.Pop,navigator:a,static:i=!1,future:o}=e;jl()&&Y(!1);let u=t.replace(/^\/*/,"/"),s=N.useMemo(()=>({basename:u,navigator:a,static:i,future:kl({v7_relativeSplatPath:!1},o)}),[u,o,a,i]);typeof r=="string"&&(r=At(r));let{pathname:c="/",search:f="",hash:h="",state:k=null,key:S="default"}=r,v=N.useMemo(()=>{let P=Pr(c,u);return P==null?null:{location:{pathname:P,search:f,hash:h,state:k,key:S},navigationType:l}},[u,c,f,h,k,S,l]);return v==null?null:N.createElement($n.Provider,{value:s},N.createElement(fi.Provider,{children:n,value:v}))}function Ay(e){let{children:t,location:n}=e;return My(Xo(t),n)}new Promise(()=>{});function Xo(e,t){t===void 0&&(t=[]);let n=[];return N.Children.forEach(e,(r,l)=>{if(!N.isValidElement(r))return;let a=[...t,l];if(r.type===N.Fragment){n.push.apply(n,Xo(r.props.children,a));return}r.type!==bo&&Y(!1),!r.props.index||!r.props.children||Y(!1);let i={id:r.props.id||a.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(i.children=Xo(r.props.children,a)),n.push(i)}),n}function Hy(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:N.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:N.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:N.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** - * React Router DOM v6.28.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Sl(){return Sl=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[l]=e[l]);return n}function Yy(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Qy(e,t){return e.button===0&&(!t||t==="_self")&&!Yy(e)}function Ko(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(l=>[n,l]):[[n,r]])},[]))}function by(e,t){let n=Ko(e);return t&&t.forEach((r,l)=>{n.has(l)||t.getAll(l).forEach(a=>{n.append(l,a)})}),n}const Xy=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Ky="6";try{window.__reactRouterVersion=Ky}catch{}function Gy(e,t){return ly({basename:t==null?void 0:t.basename,future:Sl({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:_g({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||Jy(),routes:e,mapRouteProperties:Hy,dataStrategy:t==null?void 0:t.dataStrategy,patchRoutesOnNavigation:t==null?void 0:t.patchRoutesOnNavigation,window:t==null?void 0:t.window}).initialize()}function Jy(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Sl({},t,{errors:Zy(t.errors)})),t}function Zy(e){if(!e)return null;let t=Object.entries(e),n={};for(let[r,l]of t)if(l&&l.__type==="RouteErrorResponse")n[r]=new Ha(l.status,l.statusText,l.data,l.internal===!0);else if(l&&l.__type==="Error"){if(l.__subType){let a=window[l.__subType];if(typeof a=="function")try{let i=new a(l.message);i.stack="",n[r]=i}catch{}}if(n[r]==null){let a=new Error(l.message);a.stack="",n[r]=a}}else n[r]=l;return n}const qy=N.createContext({isTransitioning:!1}),ev=N.createContext(new Map),tv="startTransition",zc=gp[tv],nv="flushSync",Fc=Mg[nv];function rv(e){zc?zc(e):e()}function Wr(e){Fc?Fc(e):e()}class lv{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function av(e){let{fallbackElement:t,router:n,future:r}=e,[l,a]=N.useState(n.state),[i,o]=N.useState(),[u,s]=N.useState({isTransitioning:!1}),[c,f]=N.useState(),[h,k]=N.useState(),[S,v]=N.useState(),P=N.useRef(new Map),{v7_startTransition:p}=r||{},d=N.useCallback(j=>{p?rv(j):j()},[p]),y=N.useCallback((j,B)=>{let{deletedFetchers:U,flushSync:te,viewTransitionOpts:ce}=B;j.fetchers.forEach((ke,Ht)=>{ke.data!==void 0&&P.current.set(Ht,ke.data)}),U.forEach(ke=>P.current.delete(ke));let xe=n.window==null||n.window.document==null||typeof n.window.document.startViewTransition!="function";if(!ce||xe){te?Wr(()=>a(j)):d(()=>a(j));return}if(te){Wr(()=>{h&&(c&&c.resolve(),h.skipTransition()),s({isTransitioning:!0,flushSync:!0,currentLocation:ce.currentLocation,nextLocation:ce.nextLocation})});let ke=n.window.document.startViewTransition(()=>{Wr(()=>a(j))});ke.finished.finally(()=>{Wr(()=>{f(void 0),k(void 0),o(void 0),s({isTransitioning:!1})})}),Wr(()=>k(ke));return}h?(c&&c.resolve(),h.skipTransition(),v({state:j,currentLocation:ce.currentLocation,nextLocation:ce.nextLocation})):(o(j),s({isTransitioning:!0,flushSync:!1,currentLocation:ce.currentLocation,nextLocation:ce.nextLocation}))},[n.window,h,c,P,d]);N.useLayoutEffect(()=>n.subscribe(y),[n,y]),N.useEffect(()=>{u.isTransitioning&&!u.flushSync&&f(new lv)},[u]),N.useEffect(()=>{if(c&&i&&n.window){let j=i,B=c.promise,U=n.window.document.startViewTransition(async()=>{d(()=>a(j)),await B});U.finished.finally(()=>{f(void 0),k(void 0),o(void 0),s({isTransitioning:!1})}),k(U)}},[d,i,c,n.window]),N.useEffect(()=>{c&&i&&l.location.key===i.location.key&&c.resolve()},[c,h,l.location,i]),N.useEffect(()=>{!u.isTransitioning&&S&&(o(S.state),s({isTransitioning:!0,flushSync:!1,currentLocation:S.currentLocation,nextLocation:S.nextLocation}),v(void 0))},[u.isTransitioning,S]),N.useEffect(()=>{},[]);let C=N.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:j=>n.navigate(j),push:(j,B,U)=>n.navigate(j,{state:B,preventScrollReset:U==null?void 0:U.preventScrollReset}),replace:(j,B,U)=>n.navigate(j,{replace:!0,state:B,preventScrollReset:U==null?void 0:U.preventScrollReset})}),[n]),R=n.basename||"/",w=N.useMemo(()=>({router:n,navigator:C,static:!1,basename:R}),[n,C,R]),T=N.useMemo(()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath}),[n.future.v7_relativeSplatPath]);return N.useEffect(()=>Wy(r,n.future),[r,n.future]),N.createElement(N.Fragment,null,N.createElement(di.Provider,{value:w},N.createElement(yh.Provider,{value:l},N.createElement(ev.Provider,{value:P.current},N.createElement(qy.Provider,{value:u},N.createElement($y,{basename:R,location:l.location,navigationType:l.historyAction,navigator:C,future:T},l.initialized||n.future.v7_partialHydration?N.createElement(iv,{routes:n.routes,future:n.future,state:l}):t))))),null)}const iv=N.memo(ov);function ov(e){let{routes:t,future:n,state:r}=e;return Sh(t,void 0,r,n)}const uv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",sv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,rn=N.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:a,replace:i,state:o,target:u,to:s,preventScrollReset:c,viewTransition:f}=t,h=Vy(t,Xy),{basename:k}=N.useContext($n),S,v=!1;if(typeof s=="string"&&sv.test(s)&&(S=s,uv))try{let y=new URL(window.location.href),C=s.startsWith("//")?new URL(y.protocol+s):new URL(s),R=Pr(C.pathname,k);C.origin===y.origin&&R!=null?s=R+C.search+C.hash:v=!0}catch{}let P=Cy(s,{relative:l}),p=cv(s,{replace:i,state:o,target:u,preventScrollReset:c,relative:l,viewTransition:f});function d(y){r&&r(y),y.defaultPrevented||p(y)}return N.createElement("a",Sl({},h,{href:S||P,onClick:v||a?r:d,ref:n,target:u}))});var Ic;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ic||(Ic={}));var Uc;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Uc||(Uc={}));function cv(e,t){let{target:n,replace:r,state:l,preventScrollReset:a,relative:i,viewTransition:o}=t===void 0?{}:t,u=xh(),s=Rl(),c=kh(e,{relative:i});return N.useCallback(f=>{if(Qy(f,n)){f.preventDefault();let h=r!==void 0?r:Un(s)===Un(c);u(e,{replace:h,state:l,preventScrollReset:a,relative:i,viewTransition:o})}},[s,u,c,r,l,n,e,a,i,o])}function dv(e){let t=N.useRef(Ko(e)),n=N.useRef(!1),r=Rl(),l=N.useMemo(()=>by(r.search,n.current?null:t.current),[r.search]),a=xh(),i=N.useCallback((o,u)=>{const s=Ko(typeof o=="function"?o(l):o);n.current=!0,a("?"+s,u)},[a,l]);return[l,i]}function jt(e){if(e===0)return"0 B";const t=1024,n=["B","KiB","MiB","GiB","TiB"],r=Math.floor(Math.log(e)/Math.log(t));return`${(e/Math.pow(t,r)).toFixed(2)} ${n[r]}`}const Ph=6048e5,fv=864e5,na=43200,Bc=1440,Wc=Symbol.for("constructDateFrom");function Wt(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Wc in e?e[Wc](t):e instanceof Date?new e.constructor(t):new Date(t)}function Re(e,t){return Wt(t||e,e)}let hv={};function Tl(){return hv}function El(e,t){var o,u,s,c;const n=Tl(),r=(t==null?void 0:t.weekStartsOn)??((u=(o=t==null?void 0:t.locale)==null?void 0:o.options)==null?void 0:u.weekStartsOn)??n.weekStartsOn??((c=(s=n.locale)==null?void 0:s.options)==null?void 0:c.weekStartsOn)??0,l=Re(e,t==null?void 0:t.in),a=l.getDay(),i=(a=a.getTime()?r+1:n.getTime()>=o.getTime()?r:r-1}function Qa(e){const t=Re(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function hi(e,...t){const n=Wt.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function $c(e,t){const n=Re(e,t==null?void 0:t.in);return n.setHours(0,0,0,0),n}function pv(e,t,n){const[r,l]=hi(n==null?void 0:n.in,e,t),a=$c(r),i=$c(l),o=+a-Qa(a),u=+i-Qa(i);return Math.round((o-u)/fv)}function mv(e,t){const n=Nh(e,t),r=Wt(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Ya(r)}function ya(e,t){const n=+Re(e)-+Re(t);return n<0?-1:n>0?1:n}function gv(e){return Wt(e,Date.now())}function yv(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function vv(e){return!(!yv(e)&&typeof e!="number"||isNaN(+Re(e)))}function wv(e,t,n){const[r,l]=hi(n==null?void 0:n.in,e,t),a=r.getFullYear()-l.getFullYear(),i=r.getMonth()-l.getMonth();return a*12+i}function xv(e){return t=>{const r=(e?Math[e]:Math.trunc)(t);return r===0?0:r}}function kv(e,t){return+Re(e)-+Re(t)}function Sv(e,t){const n=Re(e,t==null?void 0:t.in);return n.setHours(23,59,59,999),n}function Ev(e,t){const n=Re(e,t==null?void 0:t.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function Cv(e,t){const n=Re(e,t==null?void 0:t.in);return+Sv(n,t)==+Ev(n,t)}function Pv(e,t,n){const[r,l,a]=hi(n==null?void 0:n.in,e,e,t),i=ya(l,a),o=Math.abs(wv(l,a));if(o<1)return 0;l.getMonth()===1&&l.getDate()>27&&l.setDate(30),l.setMonth(l.getMonth()-i*o);let u=ya(l,a)===-i;Cv(r)&&o===1&&ya(r,a)===1&&(u=!1);const s=i*(o-+u);return s===0?0:s}function Nv(e,t,n){const r=kv(e,t)/1e3;return xv(n==null?void 0:n.roundingMethod)(r)}function Mv(e,t){const n=Re(e,t==null?void 0:t.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}const _v={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},jv=(e,t,n)=>{let r;const l=_v[e];return typeof l=="string"?r=l:t===1?r=l.one:r=l.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Xi(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const Rv={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Tv={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Lv={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Dv={date:Xi({formats:Rv,defaultWidth:"full"}),time:Xi({formats:Tv,defaultWidth:"full"}),dateTime:Xi({formats:Lv,defaultWidth:"full"})},Ov={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},zv=(e,t,n,r)=>Ov[e];function $r(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let l;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,o=n!=null&&n.width?String(n.width):i;l=e.formattingValues[o]||e.formattingValues[i]}else{const i=e.defaultWidth,o=n!=null&&n.width?String(n.width):e.defaultWidth;l=e.values[o]||e.values[i]}const a=e.argumentCallback?e.argumentCallback(t):t;return l[a]}}const Fv={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Iv={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Uv={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Bv={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Wv={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},$v={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Av=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},Hv={ordinalNumber:Av,era:$r({values:Fv,defaultWidth:"wide"}),quarter:$r({values:Iv,defaultWidth:"wide",argumentCallback:e=>e-1}),month:$r({values:Uv,defaultWidth:"wide"}),day:$r({values:Bv,defaultWidth:"wide"}),dayPeriod:$r({values:Wv,defaultWidth:"wide",formattingValues:$v,defaultFormattingWidth:"wide"})};function Ar(e){return(t,n={})=>{const r=n.width,l=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(l);if(!a)return null;const i=a[0],o=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(o)?Yv(o,f=>f.test(i)):Vv(o,f=>f.test(i));let s;s=e.valueCallback?e.valueCallback(u):u,s=n.valueCallback?n.valueCallback(s):s;const c=t.slice(i.length);return{value:s,rest:c}}}function Vv(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Yv(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const l=r[0],a=t.match(e.parsePattern);if(!a)return null;let i=e.valueCallback?e.valueCallback(a[0]):a[0];i=n.valueCallback?n.valueCallback(i):i;const o=t.slice(l.length);return{value:i,rest:o}}}const bv=/^(\d+)(th|st|nd|rd)?/i,Xv=/\d+/i,Kv={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Gv={any:[/^b/i,/^(a|c)/i]},Jv={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Zv={any:[/1/i,/2/i,/3/i,/4/i]},qv={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},e0={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},t0={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},n0={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},r0={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},l0={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},a0={ordinalNumber:Qv({matchPattern:bv,parsePattern:Xv,valueCallback:e=>parseInt(e,10)}),era:Ar({matchPatterns:Kv,defaultMatchWidth:"wide",parsePatterns:Gv,defaultParseWidth:"any"}),quarter:Ar({matchPatterns:Jv,defaultMatchWidth:"wide",parsePatterns:Zv,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ar({matchPatterns:qv,defaultMatchWidth:"wide",parsePatterns:e0,defaultParseWidth:"any"}),day:Ar({matchPatterns:t0,defaultMatchWidth:"wide",parsePatterns:n0,defaultParseWidth:"any"}),dayPeriod:Ar({matchPatterns:r0,defaultMatchWidth:"any",parsePatterns:l0,defaultParseWidth:"any"})},Mh={code:"en-US",formatDistance:jv,formatLong:Dv,formatRelative:zv,localize:Hv,match:a0,options:{weekStartsOn:0,firstWeekContainsDate:1}};function i0(e,t){const n=Re(e,t==null?void 0:t.in);return pv(n,Mv(n))+1}function o0(e,t){const n=Re(e,t==null?void 0:t.in),r=+Ya(n)-+mv(n);return Math.round(r/Ph)+1}function _h(e,t){var c,f,h,k;const n=Re(e,t==null?void 0:t.in),r=n.getFullYear(),l=Tl(),a=(t==null?void 0:t.firstWeekContainsDate)??((f=(c=t==null?void 0:t.locale)==null?void 0:c.options)==null?void 0:f.firstWeekContainsDate)??l.firstWeekContainsDate??((k=(h=l.locale)==null?void 0:h.options)==null?void 0:k.firstWeekContainsDate)??1,i=Wt((t==null?void 0:t.in)||e,0);i.setFullYear(r+1,0,a),i.setHours(0,0,0,0);const o=El(i,t),u=Wt((t==null?void 0:t.in)||e,0);u.setFullYear(r,0,a),u.setHours(0,0,0,0);const s=El(u,t);return+n>=+o?r+1:+n>=+s?r:r-1}function u0(e,t){var o,u,s,c;const n=Tl(),r=(t==null?void 0:t.firstWeekContainsDate)??((u=(o=t==null?void 0:t.locale)==null?void 0:o.options)==null?void 0:u.firstWeekContainsDate)??n.firstWeekContainsDate??((c=(s=n.locale)==null?void 0:s.options)==null?void 0:c.firstWeekContainsDate)??1,l=_h(e,t),a=Wt((t==null?void 0:t.in)||e,0);return a.setFullYear(l,0,r),a.setHours(0,0,0,0),El(a,t)}function s0(e,t){const n=Re(e,t==null?void 0:t.in),r=+El(n,t)-+u0(n,t);return Math.round(r/Ph)+1}function q(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Xt={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return q(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):q(n+1,2)},d(e,t){return q(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return q(e.getHours()%12||12,t.length)},H(e,t){return q(e.getHours(),t.length)},m(e,t){return q(e.getMinutes(),t.length)},s(e,t){return q(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),l=Math.trunc(r*Math.pow(10,n-3));return q(l,t.length)}},Kn={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ac={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),l=r>0?r:1-r;return n.ordinalNumber(l,{unit:"year"})}return Xt.y(e,t)},Y:function(e,t,n,r){const l=_h(e,r),a=l>0?l:1-l;if(t==="YY"){const i=a%100;return q(i,2)}return t==="Yo"?n.ordinalNumber(a,{unit:"year"}):q(a,t.length)},R:function(e,t){const n=Nh(e);return q(n,t.length)},u:function(e,t){const n=e.getFullYear();return q(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return q(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return q(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Xt.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return q(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const l=s0(e,r);return t==="wo"?n.ordinalNumber(l,{unit:"week"}):q(l,t.length)},I:function(e,t,n){const r=o0(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):q(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Xt.d(e,t)},D:function(e,t,n){const r=i0(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):q(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const l=e.getDay(),a=(l-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return q(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(l,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(l,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(l,{width:"short",context:"formatting"});case"eeee":default:return n.day(l,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const l=e.getDay(),a=(l-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return q(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(l,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(l,{width:"narrow",context:"standalone"});case"cccccc":return n.day(l,{width:"short",context:"standalone"});case"cccc":default:return n.day(l,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),l=r===0?7:r;switch(t){case"i":return String(l);case"ii":return q(l,t.length);case"io":return n.ordinalNumber(l,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const l=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let l;switch(r===12?l=Kn.noon:r===0?l=Kn.midnight:l=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let l;switch(r>=17?l=Kn.evening:r>=12?l=Kn.afternoon:r>=4?l=Kn.morning:l=Kn.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Xt.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Xt.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):q(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):q(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Xt.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Xt.s(e,t)},S:function(e,t){return Xt.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return Vc(r);case"XXXX":case"XX":return Cn(r);case"XXXXX":case"XXX":default:return Cn(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return Vc(r);case"xxxx":case"xx":return Cn(r);case"xxxxx":case"xxx":default:return Cn(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Hc(r,":");case"OOOO":default:return"GMT"+Cn(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Hc(r,":");case"zzzz":default:return"GMT"+Cn(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return q(r,t.length)},T:function(e,t,n){return q(+e,t.length)}};function Hc(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),l=Math.trunc(r/60),a=r%60;return a===0?n+String(l):n+String(l)+t+q(a,2)}function Vc(e,t){return e%60===0?(e>0?"-":"+")+q(Math.abs(e)/60,2):Cn(e,t)}function Cn(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),l=q(Math.trunc(r/60),2),a=q(r%60,2);return n+l+t+a}const Yc=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},jh=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},c0=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],l=n[2];if(!l)return Yc(e,t);let a;switch(r){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;case"PPPP":default:a=t.dateTime({width:"full"});break}return a.replace("{{date}}",Yc(r,t)).replace("{{time}}",jh(l,t))},d0={p:jh,P:c0},f0=/^D+$/,h0=/^Y+$/,p0=["D","DD","YY","YYYY"];function m0(e){return f0.test(e)}function g0(e){return h0.test(e)}function y0(e,t,n){const r=v0(e,t,n);if(console.warn(r),p0.includes(e))throw new RangeError(r)}function v0(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const w0=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,x0=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,k0=/^'([^]*?)'?$/,S0=/''/g,E0=/[a-zA-Z]/;function Qc(e,t,n){var c,f,h,k;const r=Tl(),l=r.locale??Mh,a=r.firstWeekContainsDate??((f=(c=r.locale)==null?void 0:c.options)==null?void 0:f.firstWeekContainsDate)??1,i=r.weekStartsOn??((k=(h=r.locale)==null?void 0:h.options)==null?void 0:k.weekStartsOn)??0,o=Re(e,n==null?void 0:n.in);if(!vv(o))throw new RangeError("Invalid time value");let u=t.match(x0).map(S=>{const v=S[0];if(v==="p"||v==="P"){const P=d0[v];return P(S,l.formatLong)}return S}).join("").match(w0).map(S=>{if(S==="''")return{isToken:!1,value:"'"};const v=S[0];if(v==="'")return{isToken:!1,value:C0(S)};if(Ac[v])return{isToken:!0,value:S};if(v.match(E0))throw new RangeError("Format string contains an unescaped latin alphabet character `"+v+"`");return{isToken:!1,value:S}});l.localize.preprocessor&&(u=l.localize.preprocessor(o,u));const s={firstWeekContainsDate:a,weekStartsOn:i,locale:l};return u.map(S=>{if(!S.isToken)return S.value;const v=S.value;(g0(v)||m0(v))&&y0(v,t,String(e));const P=Ac[v[0]];return P(o,v,l.localize,s)}).join("")}function C0(e){const t=e.match(k0);return t?t[1].replace(S0,"'"):e}function P0(e,t,n){const r=Tl(),l=(n==null?void 0:n.locale)??r.locale??Mh,a=2520,i=ya(e,t);if(isNaN(i))throw new RangeError("Invalid time value");const o=Object.assign({},n,{addSuffix:n==null?void 0:n.addSuffix,comparison:i}),[u,s]=hi(n==null?void 0:n.in,...i>0?[t,e]:[e,t]),c=Nv(s,u),f=(Qa(s)-Qa(u))/1e3,h=Math.round((c-f)/60);let k;if(h<2)return n!=null&&n.includeSeconds?c<5?l.formatDistance("lessThanXSeconds",5,o):c<10?l.formatDistance("lessThanXSeconds",10,o):c<20?l.formatDistance("lessThanXSeconds",20,o):c<40?l.formatDistance("halfAMinute",0,o):c<60?l.formatDistance("lessThanXMinutes",1,o):l.formatDistance("xMinutes",1,o):h===0?l.formatDistance("lessThanXMinutes",1,o):l.formatDistance("xMinutes",h,o);if(h<45)return l.formatDistance("xMinutes",h,o);if(h<90)return l.formatDistance("aboutXHours",1,o);if(h{const[n,r]=Ne.useState(!1),l=N0(e,{addSuffix:!0}),a=Qc(e,"yyyy-MM-dd HH:mm:ss"),i=Qc(new Date(e.getTime()+e.getTimezoneOffset()*6e4),"yyyy-MM-dd HH:mm:ss"),[o,u]=Ne.useState({top:0,left:0}),s=Ne.useRef(null),c=Ne.useCallback(()=>{if(s.current){const f=s.current.getBoundingClientRect();u({top:f.top+window.scrollY-70,left:f.left+window.scrollX})}},[]);return Ne.useEffect(()=>(n&&(c(),window.addEventListener("scroll",c),window.addEventListener("resize",c)),()=>{window.removeEventListener("scroll",c),window.removeEventListener("resize",c)}),[n,c]),g.jsxs(g.Fragment,{children:[g.jsx("div",{ref:s,className:`inline-block ${t}`,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:l}),n&&si.createPortal(g.jsx("div",{style:{position:"absolute",top:`${o.top}px`,left:`${o.left}px`},className:"z-[9999] min-w-[280px] text-sm text-gray-500 bg-white border border-gray-200 rounded-lg shadow-sm dark:text-gray-400 dark:border-gray-600 dark:bg-gray-800",children:g.jsxs("div",{className:"px-3 py-2 space-y-2",children:[g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"UTC"}),g.jsx("span",{className:"font-mono",children:i})]}),g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"Local"}),g.jsx("span",{className:"font-mono",children:a})]})]})}),document.body)]})},Th=N.createContext(void 0);function pi(){const e=N.useContext(Th);if(e===void 0)throw new Error("useBasename must be used within a BasenameProvider");return e.basename}function M0({basename:e,children:t}){return g.jsx(Th.Provider,{value:{basename:e},children:t})}const ra=({compressed:e,uncompressed:t,showVisualization:n=!1})=>{if(e===0||t===0)return g.jsx("span",{className:"dark:text-gray-200",children:"-"});const r=t/e,l=r>1;return g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsxs("div",{className:"font-medium whitespace-nowrap dark:text-gray-200",children:[r.toFixed(1),"x"]}),n&&l&&g.jsx("div",{className:"flex-1 h-2.5 bg-gray-100 dark:bg-gray-600 border border-gray-200 dark:border-gray-500 rounded relative",children:g.jsx("div",{className:"absolute inset-y-0 left-0 bg-blue-600 dark:bg-blue-500 rounded",style:{width:`${e/t*100}%`}})})]})},_0=({metadata:e,filename:t,className:n=""})=>{const[r,l]=N.useState(null),[a,i]=N.useState({});if(e.error)return g.jsxs("div",{className:"p-4 bg-red-100 border border-red-400 text-red-700 rounded",children:["Error: ",e.error]});const o=v=>{l(r===v?null:v)},u=(v,P)=>{const p=`${v}-${P}`;i(d=>({...d,[p]:!d[p]}))},s=e.sections.reduce((v,P)=>v+P.totalCompressedSize,0),c=e.sections.reduce((v,P)=>v+P.totalUncompressedSize,0),f=e.sections.filter(v=>v.type==="SECTION_TYPE_STREAMS"),h=e.sections.filter(v=>v.type==="SECTION_TYPE_LOGS"),k=f==null?void 0:f.reduce((v,P)=>v+(P.columns[0].rows_count||0),0),S=h==null?void 0:h.reduce((v,P)=>v+(P.columns[0].rows_count||0),0);return pi(),g.jsx("div",{className:`space-y-6 p-4 ${n}`,children:g.jsxs("div",{className:"bg-white dark:bg-gray-700 shadow rounded-lg",children:[g.jsxs("div",{className:"p-4 border-b dark:border-gray-700",children:[g.jsxs("div",{className:"flex justify-between items-start mb-4",children:[g.jsxs("div",{children:[g.jsx("h2",{className:"text-lg font-semibold mb-2 dark:text-gray-200",children:"Thor Dataobj File"}),g.jsxs("div",{className:"flex flex-col gap-1",children:[g.jsx("p",{className:"text-sm font-mono dark:text-gray-300",children:t}),e.lastModified&&g.jsxs("div",{className:"text-sm text-gray-500 dark:text-gray-400 flex items-center gap-2",children:[g.jsx("span",{children:"Last modified:"}),g.jsx(Rh,{date:new Date(e.lastModified)})]})]})]}),g.jsx(rn,{to:`/api/download?file=${encodeURIComponent(t)}`,target:"_blank",rel:"noopener noreferrer",className:"px-3 py-1 bg-blue-500 text-white rounded hover:bg-blue-600 text-sm",children:"Download"})]}),g.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-800 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Compression"}),g.jsx(ra,{compressed:s,uncompressed:c,showVisualization:!0}),g.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:[jt(s)," →"," ",jt(c)]})]}),g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-800 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Sections"}),g.jsx("div",{className:"font-medium",children:e.sections.length}),g.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:e.sections.map(v=>v.type).join(", ")})]}),k&&g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-800 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Stream Count"}),g.jsx("div",{className:"font-medium",children:k.toLocaleString()})]}),S&&g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-800 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Log Count"}),g.jsx("div",{className:"font-medium",children:S.toLocaleString()})]})]})]}),g.jsx("div",{className:"divide-y dark:divide-gray-900",children:e.sections.map((v,P)=>g.jsxs("div",{className:"dark:bg-gray-700",children:[g.jsxs("div",{className:"p-4 cursor-pointer flex justify-between items-center hover:bg-gray-50 dark:hover:bg-gray-700",onClick:()=>o(P),children:[g.jsxs("h3",{className:"text-lg font-semibold dark:text-gray-200",children:["Section #",P+1,": ",v.type]}),g.jsx("svg",{className:`w-5 h-5 transform transition-transform duration-700 ${r===P?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 9l-7 7-7-7"})})]}),g.jsx("div",{className:`transition-all duration-700 ease-in-out ${r===P?"opacity-100":"opacity-0 hidden"}`,children:g.jsxs("div",{className:"p-4 bg-gray-50 dark:bg-gray-800",children:[g.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4 mb-6",children:[g.jsxs("div",{className:"bg-white dark:bg-gray-700 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Compression"}),g.jsx(ra,{compressed:v.totalCompressedSize,uncompressed:v.totalUncompressedSize,showVisualization:!0}),g.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:[jt(v.totalCompressedSize)," →"," ",jt(v.totalUncompressedSize)]})]}),g.jsxs("div",{className:"bg-white dark:bg-gray-700 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Column Count"}),g.jsx("div",{className:"font-medium",children:v.columnCount})]}),g.jsxs("div",{className:"bg-white dark:bg-gray-700 p-3 rounded",children:[g.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Type"}),g.jsx("div",{className:"font-medium",children:v.type})]})]}),g.jsxs("div",{className:"space-y-4",children:[g.jsxs("h4",{className:"font-medium text-lg mb-4 dark:text-gray-200",children:["Columns (",v.columnCount,")"]}),v.columns.map((p,d)=>g.jsxs("div",{className:"bg-white dark:bg-gray-700 shadow rounded-lg overflow-hidden",children:[g.jsxs("div",{className:"flex justify-between items-center cursor-pointer p-4 border-b dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600",onClick:()=>u(P,d),children:[g.jsxs("div",{children:[g.jsx("h5",{className:"font-medium text-gray-900 dark:text-gray-200",children:p.name?`${p.name} (${p.type})`:p.type}),g.jsxs("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:["Type: ",p.value_type]})]}),g.jsxs("div",{className:"flex items-center",children:[g.jsxs("div",{className:"text-sm font-medium text-gray-600 dark:text-gray-300 mr-4",children:["Compression: ",p.compression]}),g.jsx("svg",{className:`w-4 h-4 transform transition-transform text-gray-400 ${a[`${P}-${d}`]?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 9l-7 7-7-7"})})]})]}),a[`${P}-${d}`]&&g.jsxs("div",{className:"p-4 bg-white dark:bg-gray-700",children:[g.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-6",children:[g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-600 p-3 rounded-lg",children:[g.jsxs("div",{className:"text-gray-500 dark:text-gray-400 mb-1",children:["Compression (",p.compression,")"]}),g.jsx("div",{className:"font-medium whitespace-nowrap",children:g.jsx(ra,{compressed:p.compressed_size,uncompressed:p.uncompressed_size})}),g.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:[jt(p.compressed_size)," →"," ",jt(p.uncompressed_size)]})]}),g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-600 p-3 rounded-lg",children:[g.jsx("div",{className:"text-gray-500 dark:text-gray-400 mb-1",children:"Rows"}),g.jsx("div",{className:"font-medium",children:p.rows_count.toLocaleString()})]}),g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-600 p-3 rounded-lg",children:[g.jsx("div",{className:"text-gray-500 dark:text-gray-400 mb-1",children:"Values Count"}),g.jsx("div",{className:"font-medium",children:p.values_count.toLocaleString()})]}),g.jsxs("div",{className:"bg-gray-50 dark:bg-gray-600 p-3 rounded-lg",children:[g.jsx("div",{className:"text-gray-500 dark:text-gray-400 mb-1",children:"Offset"}),g.jsx("div",{className:"font-medium",children:jt(p.metadata_offset)})]})]}),p.pages.length>0&&g.jsxs("div",{className:"mt-6",children:[g.jsxs("h6",{className:"font-medium text-sm mb-3 dark:text-gray-200",children:["Pages (",p.pages.length,")"]}),g.jsx("div",{className:"overflow-x-auto rounded-lg border border-gray-200 dark:border-gray-600",children:g.jsxs("table",{className:"min-w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"bg-gray-50 dark:bg-gray-600 border-b border-gray-200 dark:border-gray-500",children:[g.jsx("th",{className:"text-left p-3 font-medium text-gray-600 dark:text-gray-200",children:"#"}),g.jsx("th",{className:"text-left p-3 font-medium text-gray-600 dark:text-gray-200",children:"Rows"}),g.jsx("th",{className:"text-left p-3 font-medium text-gray-600 dark:text-gray-200",children:"Values"}),g.jsx("th",{className:"text-left p-3 font-medium text-gray-600 dark:text-gray-200",children:"Encoding"}),g.jsx("th",{className:"text-left p-3 font-medium text-gray-600 dark:text-gray-200",children:"Compression"})]})}),g.jsx("tbody",{className:"bg-white dark:bg-gray-700",children:p.pages.map((y,C)=>g.jsxs("tr",{className:"border-t border-gray-100 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-600",children:[g.jsx("td",{className:"p-3 dark:text-gray-200",children:C+1}),g.jsx("td",{className:"p-3 dark:text-gray-200",children:y.rows_count.toLocaleString()}),g.jsx("td",{className:"p-3 dark:text-gray-200",children:y.values_count.toLocaleString()}),g.jsx("td",{className:"p-3 dark:text-gray-200",children:y.encoding}),g.jsx("td",{className:"p-3",children:g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(ra,{compressed:y.compressed_size,uncompressed:y.uncompressed_size}),g.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:["(",jt(y.compressed_size)," ","→"," ",jt(y.uncompressed_size),")"]})]})})]},C))})]})})]})]})]},d))]})]})})]},P))})]})})},j0=({isDarkMode:e,onToggle:t})=>g.jsx("button",{onClick:t,className:"p-2 rounded-lg bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 transition-colors","aria-label":e?"Switch to light mode":"Switch to dark mode",children:e?g.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):g.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})}),R0=e=>{switch(e){case"S3":return{bg:"bg-orange-100",text:"text-orange-800",darkBg:"dark:bg-orange-900",darkText:"dark:text-orange-300"};case"GCS":return{bg:"bg-blue-100",text:"text-blue-800",darkBg:"dark:bg-blue-900",darkText:"dark:text-blue-300"};case"AZURE":return{bg:"bg-sky-100",text:"text-sky-800",darkBg:"dark:bg-sky-900",darkText:"dark:text-sky-300"};case"SWIFT":return{bg:"bg-red-100",text:"text-red-800",darkBg:"dark:bg-red-900",darkText:"dark:text-red-300"};case"COS":return{bg:"bg-purple-100",text:"text-purple-800",darkBg:"dark:bg-purple-900",darkText:"dark:text-purple-300"};case"ALIYUNOSS":return{bg:"bg-rose-100",text:"text-rose-800",darkBg:"dark:bg-rose-900",darkText:"dark:text-rose-300"};case"OCI":return{bg:"bg-red-100",text:"text-red-800",darkBg:"dark:bg-red-900",darkText:"dark:text-red-300"};case"OBS":return{bg:"bg-cyan-100",text:"text-cyan-800",darkBg:"dark:bg-cyan-900",darkText:"dark:text-cyan-300"};case"FILESYSTEM":return{bg:"bg-green-100",text:"text-green-800",darkBg:"dark:bg-green-900",darkText:"dark:text-green-300"};case"MEMORY":return{bg:"bg-yellow-100",text:"text-yellow-800",darkBg:"dark:bg-yellow-900",darkText:"dark:text-yellow-300"};default:return{bg:"bg-gray-100",text:"text-gray-800",darkBg:"dark:bg-gray-700",darkText:"dark:text-gray-300"}}},T0=({parts:e,isLastPartClickable:t=!1})=>{const[n,r]=Ne.useState(""),l=pi();Ne.useEffect(()=>{fetch(`${l}api/provider`).then(i=>i.json()).then(i=>r(i.provider)).catch(console.error)},[l]);const a=R0(n);return g.jsx("nav",{className:"flex mb-4","aria-label":"Breadcrumb",children:g.jsxs("ol",{className:"inline-flex items-center space-x-1 md:space-x-3",children:[g.jsx("li",{className:"inline-flex items-center",children:n&&g.jsxs(rn,{to:"/",className:`inline-flex items-center h-7 gap-2 px-3 py-1 text-xs font-medium ${a.bg} ${a.text} ${a.darkBg} ${a.darkText} rounded-full hover:ring-2 hover:ring-gray-300 dark:hover:ring-gray-600 transition-all duration-200`,children:[g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",className:"w-4 h-4",fill:"currentColor",children:g.jsx("path",{d:"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"})}),n]})}),e.map((i,o,u)=>g.jsx("li",{children:g.jsxs("div",{className:"flex items-center",children:[g.jsx("svg",{className:"w-3 h-3 text-gray-400 mx-1","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 6 10",children:g.jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 9 4-4-4-4"})}),!t&&o===u.length-1?g.jsx("span",{className:"ml-1 text-sm font-medium text-gray-500 md:ml-2",children:i}):g.jsx(rn,{to:`/?path=${encodeURIComponent(u.slice(0,o+1).join("/"))}`,className:"ml-1 text-sm font-medium text-gray-500 hover:text-blue-600 dark:text-gray-400 dark:hover:text-blue-400 md:ml-2",children:i})]})},o))]})})},L0=()=>{const[e,t]=N.useState(!1);N.useEffect(()=>{const r=()=>{t(window.scrollY>300)};return window.addEventListener("scroll",r),()=>window.removeEventListener("scroll",r)},[]);const n=()=>{window.scrollTo({top:0,behavior:"smooth"})};return e?g.jsx("button",{onClick:n,className:"fixed bottom-8 right-8 bg-blue-500 dark:bg-blue-600 hover:bg-blue-600 dark:hover:bg-blue-700 text-white rounded-full p-3 shadow-lg transition-all duration-300","aria-label":"Back to top",children:g.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M5 10l7-7m0 0l7 7m-7-7v18"})})}):null},Lh=({children:e,breadcrumbParts:t=[],isLastBreadcrumbClickable:n=!0})=>{const[r,l]=N.useState(()=>{const a=localStorage.getItem("theme"),i=window.matchMedia("(prefers-color-scheme: dark)").matches;return a?a==="dark":i});return N.useEffect(()=>{document.documentElement.classList.toggle("dark",r),localStorage.setItem("theme",r?"dark":"light")},[r]),g.jsx("div",{className:`min-h-screen ${r?"dark:bg-gray-900 dark:text-gray-200":"bg-white text-black"}`,children:g.jsxs("div",{className:"container mx-auto px-4 py-8",children:[g.jsxs("div",{className:"flex justify-between items-center mb-6",children:[g.jsx(T0,{parts:t,isLastPartClickable:n}),g.jsx(j0,{isDarkMode:r,onToggle:()=>l(!r)})]}),e,g.jsx(L0,{})]})})},D0=({filePath:e})=>g.jsxs(rn,{to:`/?path=${encodeURIComponent(e?e.split("/").slice(0,-1).join("/"):"")}`,className:"mb-4 p-4 inline-flex items-center text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300",children:[g.jsx("svg",{className:"w-4 h-4 mr-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M15 19l-7-7 7-7"})}),"Back to file list"]}),Dh=({fullScreen:e=!1})=>g.jsx("div",{className:`flex items-center justify-center ${e?"min-h-screen":"min-h-[200px]"} dark:bg-gray-900`,children:g.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-t-2 border-b-2 border-blue-500 dark:border-blue-400"})}),Oh=({message:e,fullScreen:t=!1})=>g.jsx("div",{className:`flex items-center justify-center ${t?"min-h-screen":""}`,children:g.jsxs("div",{className:"text-red-500 p-4",children:["Error: ",e]})}),O0=e=>{const[t,n]=Ne.useState(null),[r,l]=Ne.useState(!0),[a,i]=Ne.useState(null),o=pi();return Ne.useEffect(()=>{(async()=>{if(e)try{l(!0);const s=await fetch(`${o}api/inspect?file=${encodeURIComponent(e)}`);if(!s.ok)throw new Error(`Failed to fetch metadata: ${s.statusText}`);const c=await s.json();n(c),i(null)}catch(s){i(s instanceof Error?s.message:"An error occurred")}finally{l(!1)}})()},[e,o]),{metadata:t,loading:r,error:a}},zh=()=>{const{filePath:e}=Ny(),{metadata:t,loading:n,error:r}=O0(e),l=Ne.useMemo(()=>(e||"").split("/").filter(Boolean),[e]);return g.jsx(Lh,{breadcrumbParts:l,isLastBreadcrumbClickable:!1,children:g.jsx("div",{className:"bg-gray-50 dark:bg-gray-800 shadow-md rounded-lg overflow-hidden dark:text-gray-200",children:n?g.jsx(Dh,{}):r?g.jsx(Oh,{message:r}):g.jsxs(g.Fragment,{children:[g.jsx(D0,{filePath:e||""}),t&&e&&g.jsx(_0,{metadata:t,filename:e,className:"dark:bg-gray-800 dark:text-gray-200"})]})})})};function z0(e){if(e===0)return"0 Bytes";const t=1024,n=["Bytes","KB","MB","GB","TB"],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/Math.pow(t,r)).toFixed(2))+" "+n[r]}const F0=({current:e,parent:t,files:n,folders:r})=>g.jsxs("div",{className:"bg-white dark:bg-gray-800 shadow-md rounded-lg overflow-hidden",children:[g.jsxs("div",{className:"grid grid-cols-12 bg-gray-50 dark:bg-gray-700 border-b dark:border-gray-600",children:[g.jsx("div",{className:"col-span-5 p-4 font-semibold text-gray-600 dark:text-gray-200",children:"Name"}),g.jsx("div",{className:"col-span-3 p-4 font-semibold text-gray-600 dark:text-gray-200",children:"Last Modified"}),g.jsx("div",{className:"col-span-3 p-4 font-semibold text-gray-600 dark:text-gray-200",children:"Size"}),g.jsx("div",{className:"col-span-1 p-4"})]}),t!==e&&g.jsxs(rn,{to:`/?path=${encodeURIComponent(t)}`,className:"grid grid-cols-12 border-b dark:border-gray-600 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 dark:text-gray-200",children:[g.jsxs("div",{className:"col-span-5 p-4 flex items-center",children:[g.jsx("svg",{className:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M15 19l-7-7 7-7"})}),".."]}),g.jsx("div",{className:"col-span-3 p-4",children:"-"}),g.jsx("div",{className:"col-span-3 p-4",children:"-"}),g.jsx("div",{className:"col-span-1 p-4"})]}),r.map(l=>g.jsxs(rn,{to:`/?path=${encodeURIComponent(e?`${e}/${l}`:l)}`,className:"grid grid-cols-12 border-b dark:border-gray-600 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 dark:text-gray-200",children:[g.jsxs("div",{className:"col-span-5 p-4 flex items-center",children:[g.jsx("svg",{className:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),l]}),g.jsx("div",{className:"col-span-3 p-4",children:"-"}),g.jsx("div",{className:"col-span-3 p-4",children:"-"}),g.jsx("div",{className:"col-span-1 p-4"})]},l)),g.jsx("div",{className:"space-y-2",children:n.map(l=>{const a=e?`${e}/${l.name}`:l.name;return g.jsxs("div",{className:"grid grid-cols-12 border-b dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 dark:text-gray-200",children:[g.jsxs(rn,{to:`file/${encodeURIComponent(a)}`,className:"col-span-5 p-4 flex items-center",children:[g.jsx("svg",{className:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"})}),l.name]}),g.jsx("div",{className:"col-span-3 p-4",children:g.jsx(Rh,{date:new Date(l.lastModified)})}),g.jsx("div",{className:"col-span-3 p-4",children:z0(l.size)}),g.jsx("div",{className:"col-span-1 p-4 flex justify-center",children:g.jsx(rn,{to:`/api/download?file=${encodeURIComponent(a)}`,target:"_blank",rel:"noopener noreferrer",className:"text-gray-600 hover:text-blue-600 dark:text-gray-400 dark:hover:text-blue-400",title:"Download file",children:g.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:g.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})})})})]},l.name)})})]}),I0=e=>[...e].sort((t,n)=>new Date(n.lastModified).getTime()-new Date(t.lastModified).getTime()),U0=e=>{const[t,n]=Ne.useState(null),[r,l]=Ne.useState(!0),[a,i]=Ne.useState(null),o=pi(),u=N.useMemo(()=>t?{...t,files:I0(t.files)}:null,[t]);return Ne.useEffect(()=>{(async()=>{try{l(!0);const c=await fetch(`${o}api/list?path=${encodeURIComponent(e)}`);if(!c.ok)throw new Error("Failed to fetch data");const f=await c.json();n(f),i(null)}catch(c){i(c instanceof Error?c.message:"An error occurred")}finally{l(!1)}})()},[e,o]),{data:u,loading:r,error:a}},Fh=()=>{const[e]=dv(),t=e.get("path")||"",{data:n,loading:r,error:l}=U0(t),a=Ne.useMemo(()=>((n==null?void 0:n.current)||"").split("/").filter(Boolean),[n==null?void 0:n.current]);return g.jsx(Lh,{breadcrumbParts:a,isLastBreadcrumbClickable:!0,children:g.jsx("div",{className:"relative",style:{overflow:"visible"},children:r?g.jsx(Dh,{fullScreen:!0}):l?g.jsx(Oh,{message:l,fullScreen:!0}):n?g.jsx("div",{className:"relative",style:{overflow:"visible"},children:g.jsx(F0,{current:n.current,parent:n.parent,files:n.files,folders:n.folders})}):null})})};function B0(){return g.jsxs(Ay,{children:[g.jsx(bo,{path:"file/:filePath",element:g.jsx(zh,{})}),g.jsx(bo,{path:"*",element:g.jsx(Fh,{})})]})}const W0=window.location.pathname,Ki=W0.match(/(.*\/dataobj\/explorer\/)/),Ih=(Ki==null?void 0:Ki[1])||"/dataobj/explorer/",$0=Gy([{path:"*",element:g.jsx(B0,{}),children:[{index:!0,element:g.jsx(Fh,{})},{path:"file/:filePath",element:g.jsx(zh,{})}]}],{basename:Ih,future:{v7_relativeSplatPath:!0}});Gi.createRoot(document.getElementById("root")).render(g.jsx(Ne.StrictMode,{children:g.jsx(M0,{basename:Ih,children:g.jsx(av,{router:$0,future:{v7_startTransition:!0}})})})); diff --git a/pkg/dataobj/explorer/dist/assets/style-Dz5w-Rts.css b/pkg/dataobj/explorer/dist/assets/style-Dz5w-Rts.css deleted file mode 100644 index 0488ba2476..0000000000 --- a/pkg/dataobj/explorer/dist/assets/style-Dz5w-Rts.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.bottom-8{bottom:2rem}.left-0{left:0}.right-8{right:2rem}.z-\[9999\]{z-index:9999}.col-span-1{grid-column:span 1 / span 1}.col-span-3{grid-column:span 3 / span 3}.col-span-5{grid-column:span 5 / span 5}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-6{margin-top:1.5rem}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.min-h-\[200px\]{min-height:200px}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.min-w-\[280px\]{min-width:280px}.min-w-full{min-width:100%}.flex-1{flex:1 1 0%}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-sky-800{--tw-text-opacity: 1;color:rgb(7 89 133 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-gray-300:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.dark\:divide-gray-900:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(17 24 39 / var(--tw-divide-opacity, 1))}.dark\:border-blue-400:is(.dark *){--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-cyan-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(124 45 18 / var(--tw-bg-opacity, 1))}.dark\:bg-purple-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(88 28 135 / var(--tw-bg-opacity, 1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.dark\:bg-rose-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(136 19 55 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 74 110 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-300:is(.dark *){--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-blue-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:hover\:ring-gray-600:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1))}@media (min-width: 768px){.md\:ml-2{margin-left:.5rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}}@media (min-width: 1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}} diff --git a/pkg/dataobj/explorer/dist/index.html b/pkg/dataobj/explorer/dist/index.html deleted file mode 100644 index 79e2f449e2..0000000000 --- a/pkg/dataobj/explorer/dist/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - DataObj Explorer - - - - - -
- - - diff --git a/pkg/dataobj/explorer/service.go b/pkg/dataobj/explorer/service.go index a80bb5e4f6..fd8e41ecbe 100644 --- a/pkg/dataobj/explorer/service.go +++ b/pkg/dataobj/explorer/service.go @@ -2,11 +2,8 @@ package explorer import ( "context" - "embed" "encoding/json" - "io/fs" "net/http" - "strings" "github.com/go-kit/log" "github.com/go-kit/log/level" @@ -14,30 +11,17 @@ import ( "github.com/thanos-io/objstore" ) -//go:embed dist -var uiFS embed.FS - type Service struct { *services.BasicService bucket objstore.Bucket logger log.Logger - uiFS fs.FS } func New(bucket objstore.Bucket, logger log.Logger) (*Service, error) { - var ui fs.FS - - var err error - ui, err = fs.Sub(uiFS, "dist") - if err != nil { - return nil, err - } - s := &Service{ bucket: bucket, logger: logger, - uiFS: ui, } s.BasicService = services.NewBasicService(nil, s.running, nil) @@ -50,24 +34,16 @@ func (s *Service) running(ctx context.Context) error { return nil } -func (s *Service) Handler() http.Handler { +func (s *Service) Handler() (string, http.Handler) { mux := http.NewServeMux() // API endpoints - mux.HandleFunc("/dataobj/explorer/api/list", s.handleList) - mux.HandleFunc("/dataobj/explorer/api/inspect", s.handleInspect) - mux.HandleFunc("/dataobj/explorer/api/download", s.handleDownload) - mux.HandleFunc("/dataobj/explorer/api/provider", s.handleProvider) - - fsHandler := http.FileServer(http.FS(s.uiFS)) - mux.Handle("/dataobj/explorer/", http.StripPrefix("/dataobj/explorer/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if _, err := s.uiFS.Open(strings.TrimPrefix(r.URL.Path, "/")); err != nil { - r.URL.Path = "/" - } - fsHandler.ServeHTTP(w, r) - }))) + mux.HandleFunc("/dataobj/api/v1/list", s.handleList) + mux.HandleFunc("/dataobj/api/v1/inspect", s.handleInspect) + mux.HandleFunc("/dataobj/api/v1/download", s.handleDownload) + mux.HandleFunc("/dataobj/api/v1/provider", s.handleProvider) - return mux + return "/dataobj", mux } func (s *Service) handleProvider(w http.ResponseWriter, r *http.Request) { diff --git a/pkg/dataobj/explorer/ui/Makefile b/pkg/dataobj/explorer/ui/Makefile deleted file mode 100644 index d8c0f295a5..0000000000 --- a/pkg/dataobj/explorer/ui/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -.PHONY: build -build: - npm install - npm run build - -.PHONY: dev -dev: - npm install - npm run dev diff --git a/pkg/dataobj/explorer/ui/package-lock.json b/pkg/dataobj/explorer/ui/package-lock.json deleted file mode 100644 index bce9eac06d..0000000000 --- a/pkg/dataobj/explorer/ui/package-lock.json +++ /dev/null @@ -1,3166 +0,0 @@ -{ - "name": "dataobj-explorer", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "dataobj-explorer", - "version": "0.1.0", - "dependencies": { - "date-fns": "^4.1.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router-dom": "^7.0.0" - }, - "devDependencies": { - "@types/node": "^22.10.7", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.32", - "tailwindcss": "^3.4.0", - "typescript": "^5.2.2", - "vite": "^6.0.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", - "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", - "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.5", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.5", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", - "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", - "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", - "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", - "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", - "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", - "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", - "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", - "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", - "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", - "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", - "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", - "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", - "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", - "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", - "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", - "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", - "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", - "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", - "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", - "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.13.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.3.tgz", - "integrity": "sha512-nR7dEScXY87nBVt9gPL0sP93GCxG7nMzFicbYjOcGdKcLytrXBgrnMIYcghBW0+YfLj3t7G5FgUccrhdZuTB9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/react": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", - "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", - "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001695", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", - "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.83", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz", - "integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz", - "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.5.tgz", - "integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==", - "license": "MIT", - "dependencies": { - "react-router": "7.1.5" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.31.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", - "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.31.0", - "@rollup/rollup-android-arm64": "4.31.0", - "@rollup/rollup-darwin-arm64": "4.31.0", - "@rollup/rollup-darwin-x64": "4.31.0", - "@rollup/rollup-freebsd-arm64": "4.31.0", - "@rollup/rollup-freebsd-x64": "4.31.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", - "@rollup/rollup-linux-arm-musleabihf": "4.31.0", - "@rollup/rollup-linux-arm64-gnu": "4.31.0", - "@rollup/rollup-linux-arm64-musl": "4.31.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", - "@rollup/rollup-linux-riscv64-gnu": "4.31.0", - "@rollup/rollup-linux-s390x-gnu": "4.31.0", - "@rollup/rollup-linux-x64-gnu": "4.31.0", - "@rollup/rollup-linux-x64-musl": "4.31.0", - "@rollup/rollup-win32-arm64-msvc": "4.31.0", - "@rollup/rollup-win32-ia32-msvc": "4.31.0", - "@rollup/rollup-win32-x64-msvc": "4.31.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.0.tgz", - "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.1", - "rollup": "^4.30.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - } - } -} diff --git a/pkg/dataobj/explorer/ui/package.json b/pkg/dataobj/explorer/ui/package.json deleted file mode 100644 index 6d39583876..0000000000 --- a/pkg/dataobj/explorer/ui/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "dataobj-explorer", - "version": "0.1.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "date-fns": "^4.1.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router-dom": "^7.0.0" - }, - "devDependencies": { - "@types/node": "^22.10.7", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.16", - "postcss": "^8.4.32", - "tailwindcss": "^3.4.0", - "typescript": "^5.2.2", - "vite": "^6.0.0" - } -} diff --git a/pkg/dataobj/explorer/ui/src/App.tsx b/pkg/dataobj/explorer/ui/src/App.tsx deleted file mode 100644 index d4159052ca..0000000000 --- a/pkg/dataobj/explorer/ui/src/App.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react"; -import { Routes, Route } from "react-router-dom"; -import { FileMetadataPage } from "./pages/FileMetadataPage"; -import { ExplorerPage } from "./pages/ExplorerPage"; - -export default function App() { - return ( - - } /> - } /> - - ); -} diff --git a/pkg/dataobj/explorer/ui/src/components/common/DateWithHover.tsx b/pkg/dataobj/explorer/ui/src/components/common/DateWithHover.tsx deleted file mode 100644 index 65c5fcb41c..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/common/DateWithHover.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import React from "react"; -import { formatDistanceToNow, format } from "date-fns"; -import { createPortal } from "react-dom"; - -interface DateWithHoverProps { - date: Date; - className?: string; -} - -export const DateWithHover: React.FC = ({ - date, - className = "", -}) => { - const [isHovered, setIsHovered] = React.useState(false); - const relativeTime = formatDistanceToNow(date, { addSuffix: true }); - const localTime = format(date, "yyyy-MM-dd HH:mm:ss"); - const utcTime = format( - new Date(date.getTime() + date.getTimezoneOffset() * 60000), - "yyyy-MM-dd HH:mm:ss" - ); - - const [position, setPosition] = React.useState({ top: 0, left: 0 }); - const triggerRef = React.useRef(null); - - const updatePosition = React.useCallback(() => { - if (triggerRef.current) { - const rect = triggerRef.current.getBoundingClientRect(); - setPosition({ - top: rect.top + window.scrollY - 70, // Position above the element - left: rect.left + window.scrollX, - }); - } - }, []); - - React.useEffect(() => { - if (isHovered) { - updatePosition(); - window.addEventListener("scroll", updatePosition); - window.addEventListener("resize", updatePosition); - } - return () => { - window.removeEventListener("scroll", updatePosition); - window.removeEventListener("resize", updatePosition); - }; - }, [isHovered, updatePosition]); - - return ( - <> -
setIsHovered(true)} - onMouseLeave={() => setIsHovered(false)} - > - {relativeTime} -
- {isHovered && - createPortal( -
-
-
- - UTC - - {utcTime} -
-
- - Local - - {localTime} -
-
-
, - document.body - )} - - ); -}; diff --git a/pkg/dataobj/explorer/ui/src/components/common/ErrorContainer.tsx b/pkg/dataobj/explorer/ui/src/components/common/ErrorContainer.tsx deleted file mode 100644 index f2e1ef4897..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/common/ErrorContainer.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; - -interface ErrorContainerProps { - message: string; - fullScreen?: boolean; -} - -export const ErrorContainer: React.FC = ({ - message, - fullScreen = false, -}) => ( -
-
Error: {message}
-
-); diff --git a/pkg/dataobj/explorer/ui/src/components/common/LoadingContainer.tsx b/pkg/dataobj/explorer/ui/src/components/common/LoadingContainer.tsx deleted file mode 100644 index 4372ad917b..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/common/LoadingContainer.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; - -interface LoadingContainerProps { - fullScreen?: boolean; -} - -export const LoadingContainer: React.FC = ({ - fullScreen = false, -}) => ( -
-
-
-); diff --git a/pkg/dataobj/explorer/ui/src/components/explorer/FileList.tsx b/pkg/dataobj/explorer/ui/src/components/explorer/FileList.tsx deleted file mode 100644 index 559e75d4f4..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/explorer/FileList.tsx +++ /dev/null @@ -1,165 +0,0 @@ -import React from "react"; -import { Link } from "react-router-dom"; -import { DateWithHover } from "../common/DateWithHover"; - -interface FileInfo { - name: string; - size: number; - lastModified: string; -} - -interface FileListProps { - current: string; - parent: string; - files: FileInfo[]; - folders: string[]; -} - -function formatBytes(bytes: number): string { - if (bytes === 0) return "0 Bytes"; - const k = 1024; - const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i]; -} - -export const FileList: React.FC = ({ - current, - parent, - files, - folders, -}) => { - return ( -
-
-
- Name -
-
- Last Modified -
-
- Size -
-
-
- - {parent !== current && ( - -
- - - - .. -
-
-
-
-
-
- - )} - - {folders.map((folder) => ( - -
- - - - {folder} -
-
-
-
-
-
- - ))} - -
- {files.map((file) => { - const filePath = current ? `${current}/${file.name}` : file.name; - - return ( -
- - - - - {file.name} - -
- -
-
{formatBytes(file.size)}
-
- - - - - -
-
- ); - })} -
-
- ); -}; diff --git a/pkg/dataobj/explorer/ui/src/components/file-metadata/BackToList.tsx b/pkg/dataobj/explorer/ui/src/components/file-metadata/BackToList.tsx deleted file mode 100644 index d5ac9c8ccd..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/file-metadata/BackToList.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from "react"; -import { Link } from "react-router-dom"; - -export const BackToListButton: React.FC<{ filePath: string }> = ({ - filePath, -}) => ( - - - - - Back to file list - -); diff --git a/pkg/dataobj/explorer/ui/src/components/file-metadata/FileMetadata.tsx b/pkg/dataobj/explorer/ui/src/components/file-metadata/FileMetadata.tsx deleted file mode 100644 index 5f0e91bd9b..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/file-metadata/FileMetadata.tsx +++ /dev/null @@ -1,410 +0,0 @@ -import React, { useState } from "react"; -import { formatBytes } from "../../utils/format"; -import { DateWithHover } from "../common/DateWithHover"; -import { Link } from "react-router-dom"; -import { useBasename } from "../../contexts/BasenameContext"; -import { CompressionRatio } from "./CompressionRatio"; -import { FileMetadataResponse } from "../../types/metadata"; - -interface FileMetadataProps { - metadata: FileMetadataResponse; - filename: string; - className?: string; -} - -export const FileMetadata: React.FC = ({ - metadata, - filename, - className = "", -}) => { - const [expandedSectionIndex, setExpandedSectionIndex] = useState< - number | null - >(null); - const [expandedColumns, setExpandedColumns] = useState< - Record - >({}); - - if (metadata.error) { - return ( -
- Error: {metadata.error} -
- ); - } - - const toggleSection = (sectionIndex: number) => { - setExpandedSectionIndex( - expandedSectionIndex === sectionIndex ? null : sectionIndex - ); - }; - - const toggleColumn = (sectionIndex: number, columnIndex: number) => { - const key = `${sectionIndex}-${columnIndex}`; - setExpandedColumns((prev) => ({ - ...prev, - [key]: !prev[key], - })); - }; - - // Calculate file-level stats - const totalCompressed = metadata.sections.reduce( - (sum, section) => sum + section.totalCompressedSize, - 0 - ); - const totalUncompressed = metadata.sections.reduce( - (sum, section) => sum + section.totalUncompressedSize, - 0 - ); - - // Get stream and log counts from first column of each section - const streamSection = metadata.sections.filter( - (s) => s.type === "SECTION_TYPE_STREAMS" - ); - const logSection = metadata.sections.filter( - (s) => s.type === "SECTION_TYPE_LOGS" - ); - const streamCount = streamSection?.reduce( - (sum, sec) => sum + (sec.columns[0].rows_count || 0), - 0 - ); - const logCount = logSection?.reduce( - (sum, sec) => sum + (sec.columns[0].rows_count || 0), - 0 - ); - - const basename = useBasename(); - - return ( -
- {/* Thor Dataobj File */} -
- {/* Overview */} -
-
-
-

- Thor Dataobj File -

-
-

- {filename} -

- {metadata.lastModified && ( -
- Last modified: - -
- )} -
-
- - Download - -
- -
-
-
- Compression -
- -
- {formatBytes(totalCompressed)} →{" "} - {formatBytes(totalUncompressed)} -
-
-
-
- Sections -
-
{metadata.sections.length}
-
- {metadata.sections.map((s) => s.type).join(", ")} -
-
- {streamCount && ( -
-
- Stream Count -
-
- {streamCount.toLocaleString()} -
-
- )} - {logCount && ( -
-
- Log Count -
-
{logCount.toLocaleString()}
-
- )} -
-
- - {/* Sections */} -
- {metadata.sections.map((section, sectionIndex) => ( -
- {/* Section Header */} -
toggleSection(sectionIndex)} - > -

- Section #{sectionIndex + 1}: {section.type} -

- - - -
- - {/* Section Content */} -
-
- {/* Section Stats */} -
-
-
- Compression -
- -
- {formatBytes(section.totalCompressedSize)} →{" "} - {formatBytes(section.totalUncompressedSize)} -
-
-
-
- Column Count -
-
{section.columnCount}
-
-
-
- Type -
-
{section.type}
-
-
- - {/* Columns */} -
-

- Columns ({section.columnCount}) -

- {section.columns.map((column, columnIndex) => ( -
- {/* Column Header */} -
- toggleColumn(sectionIndex, columnIndex) - } - > -
-
- {column.name - ? `${column.name} (${column.type})` - : column.type} -
-
- Type: {column.value_type} -
-
-
-
- Compression: {column.compression} -
- - - -
-
- - {/* Column Content */} - {expandedColumns[`${sectionIndex}-${columnIndex}`] && ( -
- {/* Column Stats */} -
-
-
- Compression ({column.compression}) -
-
- -
-
- {formatBytes(column.compressed_size)} →{" "} - {formatBytes(column.uncompressed_size)} -
-
-
-
- Rows -
-
- {column.rows_count.toLocaleString()} -
-
-
-
- Values Count -
-
- {column.values_count.toLocaleString()} -
-
-
-
- Offset -
-
- {formatBytes(column.metadata_offset)} -
-
-
- - {/* Pages */} - {column.pages.length > 0 && ( -
-
- Pages ({column.pages.length}) -
-
- - - - - - - - - - - - {column.pages.map((page, pageIndex) => ( - - - - - - - - ))} - -
- # - - Rows - - Values - - Encoding - - Compression -
- {pageIndex + 1} - - {page.rows_count.toLocaleString()} - - {page.values_count.toLocaleString()} - - {page.encoding} - -
- - - ( - {formatBytes( - page.compressed_size - )}{" "} - →{" "} - {formatBytes( - page.uncompressed_size - )} - ) - -
-
-
-
- )} -
- )} -
- ))} -
-
-
-
- ))} -
-
-
- ); -}; diff --git a/pkg/dataobj/explorer/ui/src/components/layout/DarkModeToggle.tsx b/pkg/dataobj/explorer/ui/src/components/layout/DarkModeToggle.tsx deleted file mode 100644 index 398c11547f..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/layout/DarkModeToggle.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import React from "react"; - -interface DarkModeToggleProps { - isDarkMode: boolean; - onToggle: () => void; -} - -export const DarkModeToggle: React.FC = ({ - isDarkMode, - onToggle, -}) => { - return ( - - ); -}; diff --git a/pkg/dataobj/explorer/ui/src/components/layout/Layout.tsx b/pkg/dataobj/explorer/ui/src/components/layout/Layout.tsx deleted file mode 100644 index 83b41f9f99..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/layout/Layout.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { DarkModeToggle } from "./DarkModeToggle"; -import { Breadcrumb } from "./Breadcrumb"; -import { ScrollToTopButton } from "./ScrollToTopButton"; - -interface LayoutProps { - children: React.ReactNode; - breadcrumbParts?: string[]; - isLastBreadcrumbClickable?: boolean; -} - -export const Layout: React.FC = ({ - children, - breadcrumbParts = [], - isLastBreadcrumbClickable = true, -}) => { - const [isDarkMode, setIsDarkMode] = useState(() => { - const savedTheme = localStorage.getItem("theme"); - const systemPreference = window.matchMedia( - "(prefers-color-scheme: dark)" - ).matches; - return savedTheme ? savedTheme === "dark" : systemPreference; - }); - - useEffect(() => { - document.documentElement.classList.toggle("dark", isDarkMode); - localStorage.setItem("theme", isDarkMode ? "dark" : "light"); - }, [isDarkMode]); - - return ( -
-
-
- - setIsDarkMode(!isDarkMode)} - /> -
- {children} - -
-
- ); -}; diff --git a/pkg/dataobj/explorer/ui/src/components/layout/ScrollToTopButton.tsx b/pkg/dataobj/explorer/ui/src/components/layout/ScrollToTopButton.tsx deleted file mode 100644 index c145bb6c90..0000000000 --- a/pkg/dataobj/explorer/ui/src/components/layout/ScrollToTopButton.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { useState, useEffect } from "react"; - -export const ScrollToTopButton: React.FC = () => { - const [show, setShow] = useState(false); - - useEffect(() => { - const handleScroll = () => { - setShow(window.scrollY > 300); - }; - - window.addEventListener("scroll", handleScroll); - return () => window.removeEventListener("scroll", handleScroll); - }, []); - - const scrollToTop = () => { - window.scrollTo({ - top: 0, - behavior: "smooth", - }); - }; - - if (!show) return null; - - return ( - - ); -}; diff --git a/pkg/dataobj/explorer/ui/src/contexts/BasenameContext.tsx b/pkg/dataobj/explorer/ui/src/contexts/BasenameContext.tsx deleted file mode 100644 index f435f8bf20..0000000000 --- a/pkg/dataobj/explorer/ui/src/contexts/BasenameContext.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React, { createContext, useContext } from "react"; - -interface BasenameContextType { - basename: string; -} - -const BasenameContext = createContext( - undefined -); - -export function useBasename() { - const context = useContext(BasenameContext); - if (context === undefined) { - throw new Error("useBasename must be used within a BasenameProvider"); - } - return context.basename; -} - -export function BasenameProvider({ - basename, - children, -}: { - basename: string; - children: React.ReactNode; -}) { - return ( - - {children} - - ); -} diff --git a/pkg/dataobj/explorer/ui/src/hooks/useExplorerData.ts b/pkg/dataobj/explorer/ui/src/hooks/useExplorerData.ts deleted file mode 100644 index 5ce22e24a3..0000000000 --- a/pkg/dataobj/explorer/ui/src/hooks/useExplorerData.ts +++ /dev/null @@ -1,57 +0,0 @@ -import React, { useMemo } from "react"; -import { useBasename } from "../contexts/BasenameContext"; -import { ListResponse, FileInfo } from "../types/explorer"; - -const sortFilesByDate = (files: FileInfo[]): FileInfo[] => { - return [...files].sort( - (a, b) => - new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime() - ); -}; - -interface UseExplorerDataResult { - data: ListResponse | null; - loading: boolean; - error: string | null; -} - -export const useExplorerData = (path: string): UseExplorerDataResult => { - const [rawData, setRawData] = React.useState(null); - const [loading, setLoading] = React.useState(true); - const [error, setError] = React.useState(null); - const basename = useBasename(); - - // Memoize the sorted data - const data = useMemo(() => { - if (!rawData) return null; - return { - ...rawData, - files: sortFilesByDate(rawData.files), - }; - }, [rawData]); - - React.useEffect(() => { - const fetchData = async () => { - try { - setLoading(true); - const response = await fetch( - `${basename}api/list?path=${encodeURIComponent(path)}` - ); - if (!response.ok) { - throw new Error("Failed to fetch data"); - } - const json = (await response.json()) as ListResponse; - setRawData(json); - setError(null); - } catch (err) { - setError(err instanceof Error ? err.message : "An error occurred"); - } finally { - setLoading(false); - } - }; - - fetchData(); - }, [path, basename]); - - return { data, loading, error }; -}; diff --git a/pkg/dataobj/explorer/ui/src/hooks/useFileMetadata.ts b/pkg/dataobj/explorer/ui/src/hooks/useFileMetadata.ts deleted file mode 100644 index f3783b38a4..0000000000 --- a/pkg/dataobj/explorer/ui/src/hooks/useFileMetadata.ts +++ /dev/null @@ -1,46 +0,0 @@ -import React from "react"; -import { useBasename } from "../contexts/BasenameContext"; -import { FileMetadataResponse } from "../types/metadata"; - -interface UseFileMetadataResult { - metadata: FileMetadataResponse | null; - loading: boolean; - error: string | null; -} - -export const useFileMetadata = ( - filePath: string | undefined -): UseFileMetadataResult => { - const [metadata, setMetadata] = React.useState( - null - ); - const [loading, setLoading] = React.useState(true); - const [error, setError] = React.useState(null); - const basename = useBasename(); - - React.useEffect(() => { - const fetchMetadata = async () => { - if (!filePath) return; - try { - setLoading(true); - const response = await fetch( - `${basename}api/inspect?file=${encodeURIComponent(filePath)}` - ); - if (!response.ok) { - throw new Error(`Failed to fetch metadata: ${response.statusText}`); - } - const data = await response.json(); - setMetadata(data); - setError(null); - } catch (err) { - setError(err instanceof Error ? err.message : "An error occurred"); - } finally { - setLoading(false); - } - }; - - fetchMetadata(); - }, [filePath, basename]); - - return { metadata, loading, error }; -}; diff --git a/pkg/dataobj/explorer/ui/src/index.css b/pkg/dataobj/explorer/ui/src/index.css deleted file mode 100644 index b5c61c9567..0000000000 --- a/pkg/dataobj/explorer/ui/src/index.css +++ /dev/null @@ -1,3 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/pkg/dataobj/explorer/ui/src/main.tsx b/pkg/dataobj/explorer/ui/src/main.tsx deleted file mode 100644 index fcdc60105e..0000000000 --- a/pkg/dataobj/explorer/ui/src/main.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import { - createBrowserRouter, - RouterProvider, - type RouterProviderProps, -} from "react-router-dom"; -import App from "./App"; -import { ExplorerPage } from "./pages/ExplorerPage"; -import { FileMetadataPage } from "./pages/FileMetadataPage"; -import { BasenameProvider } from "./contexts/BasenameContext"; -import "./index.css"; - -// Extract basename from current URL by matching everything up to and including /dataobj/explorer -const pathname = window.location.pathname; -const match = pathname.match(/(.*\/dataobj\/explorer\/)/); -const basename = match?.[1] || "/dataobj/explorer/"; - -const router = createBrowserRouter( - [ - { - path: "*", - element: , - children: [ - { - index: true, - element: , - }, - { - path: "file/:filePath", - element: , - }, - ], - }, - ], - { - basename, - future: { - v7_relativeSplatPath: true, - }, - } -); - -ReactDOM.createRoot(document.getElementById("root")!).render( - - - - - -); diff --git a/pkg/dataobj/explorer/ui/src/pages/ExplorerPage.tsx b/pkg/dataobj/explorer/ui/src/pages/ExplorerPage.tsx deleted file mode 100644 index 08daacf736..0000000000 --- a/pkg/dataobj/explorer/ui/src/pages/ExplorerPage.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import { useSearchParams } from "react-router-dom"; -import { FileList } from "../components/explorer/FileList"; -import { Layout } from "../components/layout/Layout"; -import { LoadingContainer } from "../components/common/LoadingContainer"; -import { ErrorContainer } from "../components/common/ErrorContainer"; -import { useExplorerData } from "../hooks/useExplorerData"; - -export const ExplorerPage: React.FC = () => { - const [searchParams] = useSearchParams(); - const path = searchParams.get("path") || ""; - const { data, loading, error } = useExplorerData(path); - - // Get path parts for breadcrumb - const pathParts = React.useMemo( - () => (data?.current || "").split("/").filter(Boolean), - [data?.current] - ); - - return ( - -
- {loading ? ( - - ) : error ? ( - - ) : data ? ( -
- -
- ) : null} -
-
- ); -}; diff --git a/pkg/dataobj/explorer/ui/src/pages/FileMetadataPage.tsx b/pkg/dataobj/explorer/ui/src/pages/FileMetadataPage.tsx deleted file mode 100644 index 19fa181e75..0000000000 --- a/pkg/dataobj/explorer/ui/src/pages/FileMetadataPage.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import { useParams } from "react-router-dom"; -import { FileMetadata } from "../components/file-metadata/FileMetadata"; -import { Layout } from "../components/layout/Layout"; -import { BackToListButton } from "../components/file-metadata/BackToList"; -import { LoadingContainer } from "../components/common/LoadingContainer"; -import { ErrorContainer } from "../components/common/ErrorContainer"; -import { useFileMetadata } from "../hooks/useFileMetadata"; - -export const FileMetadataPage: React.FC = () => { - const { filePath } = useParams<{ filePath: string }>(); - const { metadata, loading, error } = useFileMetadata(filePath); - const pathParts = React.useMemo( - () => (filePath || "").split("/").filter(Boolean), - [filePath] - ); - - return ( - -
- {loading ? ( - - ) : error ? ( - - ) : ( - <> - - {metadata && filePath && ( - - )} - - )} -
-
- ); -}; diff --git a/pkg/dataobj/explorer/ui/src/types/explorer.ts b/pkg/dataobj/explorer/ui/src/types/explorer.ts deleted file mode 100644 index 84d90c608b..0000000000 --- a/pkg/dataobj/explorer/ui/src/types/explorer.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface FileInfo { - name: string; - size: number; - lastModified: string; -} - -export interface ListResponse { - files: FileInfo[]; - folders: string[]; - parent: string; - current: string; -} diff --git a/pkg/dataobj/explorer/ui/src/utils/format.ts b/pkg/dataobj/explorer/ui/src/utils/format.ts deleted file mode 100644 index 348dde3359..0000000000 --- a/pkg/dataobj/explorer/ui/src/utils/format.ts +++ /dev/null @@ -1,9 +0,0 @@ -export function formatBytes(bytes: number): string { - if (bytes === 0) return "0 B"; - - const k = 1024; - const sizes = ["B", "KiB", "MiB", "GiB", "TiB"]; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - - return `${(bytes / Math.pow(k, i)).toFixed(2)} ${sizes[i]}`; -} diff --git a/pkg/dataobj/explorer/ui/tailwind.config.js b/pkg/dataobj/explorer/ui/tailwind.config.js deleted file mode 100644 index f19dbe9d97..0000000000 --- a/pkg/dataobj/explorer/ui/tailwind.config.js +++ /dev/null @@ -1,12 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - darkMode: 'class', - content: [ - "./index.html", - "./src/**/*.{js,ts,jsx,tsx}", - ], - theme: { - extend: {}, - }, - plugins: [], -} diff --git a/pkg/dataobj/explorer/ui/vite.config.ts b/pkg/dataobj/explorer/ui/vite.config.ts deleted file mode 100644 index 456e8a1457..0000000000 --- a/pkg/dataobj/explorer/ui/vite.config.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { defineConfig } from "vite"; -import react from "@vitejs/plugin-react"; - -export default defineConfig({ - plugins: [react()], - base: "/dataobj/explorer/", - css: { - postcss: "./postcss.config.js", - }, - build: { - outDir: "../dist", - emptyOutDir: true, - cssCodeSplit: false, - }, - server: { - proxy: { - "/dataobj/explorer/api": "http://localhost:3100", - }, - }, -}); diff --git a/pkg/kafka/partitionring/partition_ring.go b/pkg/kafka/partitionring/partition_ring.go index 542a4aee80..c32b89a0f0 100644 --- a/pkg/kafka/partitionring/partition_ring.go +++ b/pkg/kafka/partitionring/partition_ring.go @@ -54,7 +54,7 @@ func (cfg *Config) ToLifecyclerConfig(partitionID int32, instanceID string) ring // ExtractIngesterPartitionID returns the partition ID owner the the given ingester. func ExtractIngesterPartitionID(ingesterID string) (int32, error) { - if strings.Contains(ingesterID, "local") { + if strings.Contains(ingesterID, "local") || strings.HasSuffix(ingesterID, ".lan") { return 0, nil } diff --git a/pkg/loki/loki.go b/pkg/loki/loki.go index 7e4f5e318f..3fe0b0a682 100644 --- a/pkg/loki/loki.go +++ b/pkg/loki/loki.go @@ -65,6 +65,7 @@ import ( "github.com/grafana/loki/v3/pkg/storage/stores/series/index" "github.com/grafana/loki/v3/pkg/storage/stores/shipper/bloomshipper" "github.com/grafana/loki/v3/pkg/tracing" + "github.com/grafana/loki/v3/pkg/ui" "github.com/grafana/loki/v3/pkg/util" "github.com/grafana/loki/v3/pkg/util/constants" "github.com/grafana/loki/v3/pkg/util/fakeauth" @@ -84,6 +85,7 @@ type Config struct { Server server.Config `yaml:"server,omitempty"` InternalServer internalserver.Config `yaml:"internal_server,omitempty" doc:"hidden"` + UI ui.Config `yaml:"ui,omitempty"` Distributor distributor.Config `yaml:"distributor,omitempty"` Querier querier.Config `yaml:"querier,omitempty"` QueryScheduler scheduler.Config `yaml:"query_scheduler"` @@ -192,6 +194,7 @@ func (c *Config) RegisterFlags(f *flag.FlagSet) { c.KafkaConfig.RegisterFlags(f) c.BlockBuilder.RegisterFlags(f) c.BlockScheduler.RegisterFlags(f) + c.UI.RegisterFlags(f) c.DataObj.RegisterFlags(f) } @@ -316,6 +319,10 @@ func (c *Config) Validate() error { errs = append(errs, errors.Wrap(err, "CONFIG ERROR: invalid distributor config")) } + if err := c.UI.Validate(); err != nil { + errs = append(errs, errors.Wrap(err, "CONFIG ERROR: invalid ui config")) + } + errs = append(errs, validateSchemaValues(c)...) errs = append(errs, ValidateConfigCompatibility(*c)...) errs = append(errs, validateBackendAndLegacyReadMode(c)...) @@ -360,6 +367,7 @@ type Loki struct { Server *server.Server InternalServer *server.Server + UI *ui.Service ring *ring.Ring Overrides limiter.CombinedLimits tenantConfigs *runtime.TenantConfigs @@ -712,6 +720,7 @@ func (t *Loki) setupModuleManager() error { mm.RegisterModule(BlockBuilder, t.initBlockBuilder) mm.RegisterModule(BlockScheduler, t.initBlockScheduler) mm.RegisterModule(DataObjExplorer, t.initDataObjExplorer) + mm.RegisterModule(UI, t.initUI) mm.RegisterModule(DataObjConsumer, t.initDataObjConsumer) mm.RegisterModule(All, nil) @@ -724,42 +733,43 @@ func (t *Loki) setupModuleManager() error { Ring: {RuntimeConfig, Server, MemberlistKV}, Analytics: {}, Overrides: {RuntimeConfig}, - OverridesExporter: {Overrides, Server}, + OverridesExporter: {Overrides, Server, UI}, TenantConfigs: {RuntimeConfig}, - Distributor: {Ring, Server, Overrides, TenantConfigs, PatternRingClient, PatternIngesterTee, Analytics, PartitionRing}, + UI: {Server}, + Distributor: {Ring, Server, Overrides, TenantConfigs, PatternRingClient, PatternIngesterTee, Analytics, PartitionRing, UI}, Store: {Overrides, IndexGatewayRing}, - Ingester: {Store, Server, MemberlistKV, TenantConfigs, Analytics, PartitionRing}, - Querier: {Store, Ring, Server, IngesterQuerier, PatternRingClient, Overrides, Analytics, CacheGenerationLoader, QuerySchedulerRing}, + Ingester: {Store, Server, MemberlistKV, TenantConfigs, Analytics, PartitionRing, UI}, + Querier: {Store, Ring, Server, IngesterQuerier, PatternRingClient, Overrides, Analytics, CacheGenerationLoader, QuerySchedulerRing, UI}, QueryFrontendTripperware: {Server, Overrides, TenantConfigs}, - QueryFrontend: {QueryFrontendTripperware, Analytics, CacheGenerationLoader, QuerySchedulerRing}, - QueryScheduler: {Server, Overrides, MemberlistKV, Analytics, QuerySchedulerRing}, - Ruler: {Ring, Server, RulerStorage, RuleEvaluator, Overrides, TenantConfigs, Analytics}, + QueryFrontend: {QueryFrontendTripperware, Analytics, CacheGenerationLoader, QuerySchedulerRing, UI}, + QueryScheduler: {Server, Overrides, MemberlistKV, Analytics, QuerySchedulerRing, UI}, + Ruler: {Ring, Server, RulerStorage, RuleEvaluator, Overrides, TenantConfigs, Analytics, UI}, RuleEvaluator: {Ring, Server, Store, IngesterQuerier, Overrides, TenantConfigs, Analytics}, - TableManager: {Server, Analytics}, - Compactor: {Server, Overrides, MemberlistKV, Analytics}, - IndexGateway: {Server, Store, BloomStore, IndexGatewayRing, IndexGatewayInterceptors, Analytics}, - BloomGateway: {Server, BloomStore, Analytics}, - BloomPlanner: {Server, BloomStore, Analytics, Store}, - BloomBuilder: {Server, BloomStore, Analytics, Store}, + TableManager: {Server, Analytics, UI}, + Compactor: {Server, Overrides, MemberlistKV, Analytics, UI}, + IndexGateway: {Server, Store, BloomStore, IndexGatewayRing, IndexGatewayInterceptors, Analytics, UI}, + BloomGateway: {Server, BloomStore, Analytics, UI}, + BloomPlanner: {Server, BloomStore, Analytics, Store, UI}, + BloomBuilder: {Server, BloomStore, Analytics, Store, UI}, BloomStore: {IndexGatewayRing, BloomGatewayClient}, PatternRingClient: {Server, MemberlistKV, Analytics}, PatternIngesterTee: {Server, Overrides, MemberlistKV, Analytics, PatternRingClient}, - PatternIngester: {Server, MemberlistKV, Analytics, PatternRingClient, PatternIngesterTee, Overrides}, + PatternIngester: {Server, MemberlistKV, Analytics, PatternRingClient, PatternIngesterTee, Overrides, UI}, IngesterQuerier: {Ring, PartitionRing, Overrides}, QuerySchedulerRing: {Overrides, MemberlistKV}, IndexGatewayRing: {Overrides, MemberlistKV}, PartitionRing: {MemberlistKV, Server, Ring}, MemberlistKV: {Server}, - BlockBuilder: {PartitionRing, Store, Server}, - BlockScheduler: {Server}, - DataObjExplorer: {Server}, - DataObjConsumer: {PartitionRing, Server}, + BlockBuilder: {PartitionRing, Store, Server, UI}, + BlockScheduler: {Server, UI}, + DataObjExplorer: {Server, UI}, + DataObjConsumer: {PartitionRing, Server, UI}, Read: {QueryFrontend, Querier}, Write: {Ingester, Distributor, PatternIngester}, Backend: {QueryScheduler, Ruler, Compactor, IndexGateway, BloomPlanner, BloomBuilder, BloomGateway}, - All: {QueryScheduler, QueryFrontend, Querier, Ingester, PatternIngester, Distributor, Ruler, Compactor}, + All: {QueryScheduler, QueryFrontend, Querier, Ingester, PatternIngester, Distributor, Ruler, Compactor, UI}, } if t.Cfg.Querier.PerRequestLimitsEnabled { diff --git a/pkg/loki/modules.go b/pkg/loki/modules.go index 3927a526e9..e7ec9d5997 100644 --- a/pkg/loki/modules.go +++ b/pkg/loki/modules.go @@ -35,6 +35,8 @@ import ( "github.com/prometheus/client_golang/prometheus/collectors" "github.com/prometheus/client_golang/prometheus/collectors/version" "github.com/prometheus/common/model" + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" "github.com/thanos-io/objstore" @@ -89,6 +91,7 @@ import ( boltdbcompactor "github.com/grafana/loki/v3/pkg/storage/stores/shipper/indexshipper/boltdb/compactor" "github.com/grafana/loki/v3/pkg/storage/stores/shipper/indexshipper/tsdb" "github.com/grafana/loki/v3/pkg/storage/types" + "github.com/grafana/loki/v3/pkg/ui" "github.com/grafana/loki/v3/pkg/util/constants" "github.com/grafana/loki/v3/pkg/util/httpreq" "github.com/grafana/loki/v3/pkg/util/limiter" @@ -148,6 +151,7 @@ const ( BlockScheduler = "block-scheduler" DataObjExplorer = "dataobj-explorer" DataObjConsumer = "dataobj-consumer" + UI = "ui" All = "all" Read = "read" Write = "write" @@ -207,6 +211,7 @@ func (t *Loki) initServer() (services.Service, error) { }(t.Server.HTTPServer.Handler) t.Server.HTTPServer.Handler = middleware.Merge(serverutil.RecoveryHTTPMiddleware).Wrap(h) + t.Server.HTTPServer.Handler = h2c.NewHandler(t.Server.HTTPServer.Handler, &http2.Server{}) if t.Cfg.Server.HTTPListenPort == 0 { t.Cfg.Server.HTTPListenPort = portFromAddr(t.Server.HTTPListenAddr().String()) @@ -1533,10 +1538,11 @@ func (t *Loki) initCompactor() (services.Service, error) { t.compactor.RegisterIndexCompactor(types.BoltDBShipperType, boltdbcompactor.NewIndexCompactor()) t.compactor.RegisterIndexCompactor(types.TSDBType, tsdb.NewIndexCompactor()) - t.Server.HTTP.Path("/compactor/ring").Methods("GET", "POST").Handler(t.compactor) + prefix, compactorHandler := t.compactor.Handler() + t.Server.HTTP.PathPrefix(prefix).Handler(compactorHandler) if t.Cfg.InternalServer.Enable { - t.InternalServer.HTTP.Path("/compactor/ring").Methods("GET", "POST").Handler(t.compactor) + t.InternalServer.HTTP.PathPrefix(prefix).Handler(compactorHandler) } if t.Cfg.CompactorConfig.RetentionEnabled { @@ -1551,7 +1557,7 @@ func (t *Loki) initCompactor() (services.Service, error) { } func (t *Loki) addCompactorMiddleware(h http.HandlerFunc) http.Handler { - return t.HTTPAuthMiddleware.Wrap(deletion.TenantMiddleware(t.Overrides, h)) + return middleware.Merge(t.HTTPAuthMiddleware, deletion.TenantMiddleware(t.Overrides)).Wrap(h) } func (t *Loki) initBloomGateway() (services.Service, error) { @@ -1938,11 +1944,21 @@ func (t *Loki) initDataObjExplorer() (services.Service, error) { if err != nil { return nil, err } - - t.Server.HTTP.PathPrefix("/dataobj/explorer/").Handler(explorer.Handler()) + path, handler := explorer.Handler() + t.Server.HTTP.PathPrefix(path).Handler(handler) return explorer, nil } +func (t *Loki) initUI() (services.Service, error) { + t.Cfg.UI = t.Cfg.UI.WithAdvertisePort(t.Cfg.Server.HTTPListenPort) + svc, err := ui.NewService(t.Cfg.UI, t.Server.HTTP, log.With(util_log.Logger, "component", "ui")) + if err != nil { + return nil, err + } + t.UI = svc + return svc, nil +} + func (t *Loki) initDataObjConsumer() (services.Service, error) { if !t.Cfg.Ingester.KafkaIngestion.Enabled { return nil, nil diff --git a/pkg/ui/README.md b/pkg/ui/README.md new file mode 100644 index 0000000000..5e08cbd948 --- /dev/null +++ b/pkg/ui/README.md @@ -0,0 +1,243 @@ +# Loki UI Architecture in Distributed Mode + +## Overview + +Loki's UI system is designed to work seamlessly in a distributed environment where multiple Loki nodes can serve the UI and proxy requests to other nodes in the cluster. The system uses [ckit](https://github.com/grafana/ckit) for cluster membership and discovery, allowing any node to serve as an entry point for the UI while maintaining the ability to interact with all nodes in the cluster. + +## Key Components + +### 1. Node Discovery and Clustering + +- Uses `ckit` for cluster membership and discovery +- Each node advertises itself and maintains a list of peers +- Nodes can join and leave the cluster dynamically +- Periodic rejoin mechanism to handle split-brain scenarios + +### 2. UI Service Components + +- **Static UI Files**: Embedded React frontend served from each node +- **API Layer**: REST endpoints for cluster state and proxying +- **Proxy System**: Allows forwarding requests to specific nodes +- **Service Discovery**: Tracks available nodes and their services + +## Architecture Diagram + +```mermaid +graph TB + LB[Reverse Proxy /ui/] + + subgraph Cluster[Loki Cluster] + subgraph Node1[Node 1] + UI1[UI Frontend] + API1[API Server] + PROXY1[Proxy Handler] + CKIT1[ckit Node] + end + + subgraph Node2[Node 2] + UI2[UI Frontend] + API2[API Server] + PROXY2[Proxy Handler] + CKIT2[ckit Node] + end + + subgraph Node3[Node 3] + UI3[UI Frontend] + API3[API Server] + PROXY3[Proxy Handler] + CKIT3[ckit Node] + end + end + + LB --> Node1 + LB --> Node2 + LB --> Node3 + + CKIT1 --- CKIT2 + CKIT2 --- CKIT3 + CKIT3 --- CKIT1 +``` + +## API Endpoints + +All endpoints are prefixed with `/ui/` + +### Cluster Management + +- `GET /ui/api/v1/cluster/nodes` + - Returns the state of all nodes in the cluster + - Response includes node status, services, and build information + +- `GET /ui/api/v1/cluster/nodes/self/details` + - Returns detailed information about the current node + - Includes configuration, analytics, and system information + +### Proxy System + +- `GET /ui/api/v1/proxy/{nodename}/*` + - Proxies requests to specific nodes in the cluster + - Maintains original request path after the node name + +### Analytics + +- `GET /ui/api/v1/analytics` + - Returns analytics data for the node + +### Static UI + +- `GET /ui/*` + - Serves the React frontend application + - Falls back to index.html for client-side routing + +## Request Flow Examples + +### Example 1: Viewing Cluster Status + +1. User accesses `http://loki-cluster/ui/` +2. Frontend loads and makes request to `/ui/api/v1/cluster/nodes` +3. Node handling the request: + - Queries all peers using ckit + - Collects status from each node + - Returns consolidated cluster state + +```sequence +Browser->Node 1: GET /ui/api/v1/cluster/nodes +Node 1->Node 2: Fetch status +Node 1->Node 3: Fetch status +Node 2-->Node 1: Status response +Node 3-->Node 1: Status response +Node 1-->Browser: Combined cluster state +``` + +### Example 2: Accessing Node-Specific Service + +1. User requests service data from specific node +2. Frontend makes request to `/ui/api/v1/proxy/{nodename}/services` +3. Request is proxied to target node +4. Response returns directly to client + +```sequence +Browser->Node 1: GET /ui/api/v1/proxy/node2/services +Node 1->Node 2: Proxy request +Node 2-->Node 1: Service data +Node 1-->Browser: Proxied response +``` + +## Configuration + +The UI service can be configured with the following key parameters: + +```yaml +ui: + node_name: # Name for this node in the cluster + advertise_addr: # IP address to advertise + interface_names: <[]string> # Network interfaces to use + rejoin_interval: # How often to rejoin cluster + cluster_name: # Cluster identifier + discovery: + join_peers: <[]string> # Initial peers to join +``` + +## Security Considerations + +1. The UI endpoints should be protected behind authentication +2. The `/ui/` prefix allows easy reverse proxy configuration +3. Node-to-node communication should be restricted to internal network + +## High Availability + +- Any node can serve the UI +- Nodes automatically discover each other +- Periodic rejoin handles split-brain scenarios +- Load balancer can distribute traffic across nodes + +## Best Practices + +1. Configure a reverse proxy in front of the Loki cluster +2. Use consistent node names across the cluster +3. Configure appropriate rejoin intervals based on cluster size +4. Monitor cluster state for node health +5. Use internal network for node-to-node communication + +## Concrete Example: Ring UI via Querier + +### Ring UI Overview + +The Ring UI is a critical component for understanding the state of Loki's distributed hash ring. Here's how it works when accessed through a querier node. Since each ingester maintains the complete ring state, querying a single ingester is sufficient to view the entire ring: + +### Component Interaction + +```mermaid +sequenceDiagram + participant Browser + participant Querier Node + participant Ingester + + Browser->>Querier Node: GET /ui/ + Browser->>Querier Node: GET /ui/api/v1/cluster/nodes + Querier Node-->>Browser: List of available nodes + + Note over Browser,Querier Node: User clicks on Ring view + + Browser->>Querier Node: GET /ui/api/v1/proxy/querier-1/ring + + Note over Querier Node: Querier fetches ring state + + Querier Node->>Ingester: Get ring status + Ingester-->>Querier Node: Complete ring state + + Querier Node-->>Browser: Ring state +``` + +### Request Flow Details + +1. **Initial UI Load** + + ```http + GET /ui/ + GET /ui/api/v1/cluster/nodes + ``` + + - Frontend loads and discovers available nodes + - UI shows querier node in the node list + +2. **Ring State Request** + + ```http + GET /ui/api/v1/proxy/querier-1/ring + ``` + + - Frontend requests ring state through the proxy endpoint + - Request is forwarded to the querier's ring endpoint + - Querier gets complete ring state from a single ingester + +3. **Ring Data Structure** + + ```json + { + "tokens": [ + { + "token": "123456", + "ingester": "ingester-1", + "state": "ACTIVE", + "timestamp": "2024-02-04T12:00:00Z" + }, + // ... more tokens + ], + "ingesters": { + "ingester-1": { + "state": "ACTIVE", + "tokens": ["123456", "789012"], + "address": "ingester-1:3100", + "last_heartbeat": "2024-02-04T12:00:00Z" + } + // ... more ingesters + } + } + ``` + +### Security Notes + +1. Ring access should be restricted to authorized users +2. Internal ring communication uses HTTP/2 +3. Ring state contains sensitive cluster information diff --git a/pkg/ui/cluster.go b/pkg/ui/cluster.go new file mode 100644 index 0000000000..94501f6182 --- /dev/null +++ b/pkg/ui/cluster.go @@ -0,0 +1,351 @@ +package ui + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "strings" + "sync" + + "github.com/grafana/ckit/peer" + "golang.org/x/sync/errgroup" + "gopkg.in/yaml.v3" + + "github.com/grafana/loki/v3/pkg/analytics" +) + +// Cluster represents a collection of cluster members. +type Cluster struct { + Members map[string]Member `json:"members"` +} + +// Member represents a node in the cluster with its current state and capabilities. +type Member struct { + Addr string `json:"addr"` + State string `json:"state"` + IsSelf bool `json:"isSelf"` + Target string `json:"target"` + Services []ServiceState `json:"services"` + Build BuildInfo `json:"build"` + Error error `json:"error,omitempty"` + Ready ReadyResponse `json:"ready,omitempty"` + + configBody string +} + +// ServiceState represents the current state of a service running on a member. +type ServiceState struct { + Service string `json:"service"` + Status string `json:"status"` +} + +// BuildInfo contains version and build information about a member. +type BuildInfo struct { + Version string `json:"version"` + Revision string `json:"revision"` + Branch string `json:"branch"` + BuildUser string `json:"buildUser"` + BuildDate string `json:"buildDate"` + GoVersion string `json:"goVersion"` +} + +// fetchClusterMembers retrieves the state of all members in the cluster. +// It uses an errgroup to fetch member states concurrently with a limit of 16 concurrent operations. +func (s *Service) fetchClusterMembers(ctx context.Context) (Cluster, error) { + var cluster Cluster + cluster.Members = make(map[string]Member) + + g, ctx := errgroup.WithContext(ctx) + g.SetLimit(16) + + // Use a mutex to protect concurrent map access + var mu sync.Mutex + + for _, p := range s.node.Peers() { + peer := p // Create new variable to avoid closure issues + g.Go(func() error { + member, err := s.fetchMemberState(ctx, peer) + if err != nil { + member.Error = err + } + mu.Lock() + cluster.Members[peer.Name] = member + mu.Unlock() + return nil + }) + } + + if err := g.Wait(); err != nil { + return Cluster{}, fmt.Errorf("fetching cluster members: %w", err) + } + return cluster, nil +} + +// fetchMemberState retrieves the complete state of a single cluster member. +func (s *Service) fetchMemberState(ctx context.Context, peer peer.Peer) (Member, error) { + member := Member{ + Addr: peer.Addr, + IsSelf: peer.Self, + State: peer.State.String(), + } + + config, err := s.fetchConfig(ctx, peer) + if err != nil { + return member, fmt.Errorf("fetching config: %w", err) + } + member.configBody = config + member.Target = parseTargetFromConfig(config) + + services, err := s.fetchServices(ctx, peer) + if err != nil { + return member, fmt.Errorf("fetching services: %w", err) + } + member.Services = services + + build, err := s.fetchBuild(ctx, peer) + if err != nil { + return member, fmt.Errorf("fetching build info: %w", err) + } + member.Build = build + + readyResp, err := s.checkNodeReadiness(ctx, peer.Name) + if err != nil { + return member, fmt.Errorf("checking node readiness: %w", err) + } + member.Ready = readyResp + + return member, nil +} + +// buildProxyPath constructs the proxy URL path for a given peer and endpoint. +func (s *Service) buildProxyPath(peer peer.Peer, endpoint string) string { + // todo support configured server prefix. + return fmt.Sprintf("http://%s/ui/api/v1/proxy/%s%s", s.localAddr, peer.Name, endpoint) +} + +// readResponseError checks the HTTP response for errors and returns an appropriate error message. +// If the response status is not OK, it reads and includes the response body in the error message. +func readResponseError(resp *http.Response, operation string) error { + if resp == nil { + return fmt.Errorf("%s: no response received", operation) + } + if resp.StatusCode != http.StatusOK { + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + if err != nil { + return fmt.Errorf("%s failed: %s, error reading body: %v", operation, resp.Status, err) + } + return fmt.Errorf("%s failed: %s, response: %s", operation, resp.Status, string(body)) + } + return nil +} + +// NodeDetails contains the details of a node in the cluster. +// It adds on top of Member the config, build, clusterID, clusterSeededAt, os, arch, edition and registered analytics metrics. +type NodeDetails struct { + Member + Config string `json:"config"` + ClusterID string `json:"clusterID"` + ClusterSeededAt int64 `json:"clusterSeededAt"` + OS string `json:"os"` + Arch string `json:"arch"` + Edition string `json:"edition"` + Metrics map[string]interface{} `json:"metrics"` +} + +func (s *Service) fetchSelfDetails(ctx context.Context) (NodeDetails, error) { + peer, ok := s.getSelfPeer() + if !ok { + return NodeDetails{}, fmt.Errorf("self peer not found") + } + + report, err := s.fetchAnalytics(ctx, peer) + if err != nil { + return NodeDetails{}, fmt.Errorf("fetching analytics: %w", err) + } + + member, err := s.fetchMemberState(ctx, peer) + if err != nil { + return NodeDetails{}, fmt.Errorf("fetching member state: %w", err) + } + + return NodeDetails{ + Member: member, + Config: member.configBody, + Metrics: report.Metrics, + ClusterID: report.ClusterID, + ClusterSeededAt: report.CreatedAt.UnixMilli(), + OS: report.Os, + Arch: report.Arch, + Edition: report.Edition, + }, nil +} + +func (s *Service) getSelfPeer() (peer.Peer, bool) { + for _, peer := range s.node.Peers() { + if peer.Self { + return peer, true + } + } + return peer.Peer{}, false +} + +func (s *Service) fetchAnalytics(ctx context.Context, peer peer.Peer) (analytics.Report, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, s.buildProxyPath(peer, "/ui/api/v1/analytics"), nil) + if err != nil { + return analytics.Report{}, fmt.Errorf("creating request: %w", err) + } + + resp, err := s.client.Do(req) + if err != nil { + return analytics.Report{}, fmt.Errorf("sending request: %w", err) + } + + if err := readResponseError(resp, "fetch build info"); err != nil { + return analytics.Report{}, err + } + defer resp.Body.Close() + + var report analytics.Report + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { + return analytics.Report{}, fmt.Errorf("decoding response: %w", err) + } + return report, nil +} + +// fetchConfig retrieves the configuration of a cluster member. +func (s *Service) fetchConfig(ctx context.Context, peer peer.Peer) (string, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, s.buildProxyPath(peer, "/config"), nil) + if err != nil { + return "", fmt.Errorf("creating request: %w", err) + } + + resp, err := s.client.Do(req) + if err != nil { + return "", fmt.Errorf("sending request: %w", err) + } + + if err := readResponseError(resp, "fetch config"); err != nil { + return "", err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return "", fmt.Errorf("reading response: %w", err) + } + return string(body), nil +} + +// fetchServices retrieves the service states of a cluster member. +func (s *Service) fetchServices(ctx context.Context, peer peer.Peer) ([]ServiceState, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, s.buildProxyPath(peer, "/services"), nil) + if err != nil { + return nil, fmt.Errorf("creating request: %w", err) + } + + resp, err := s.client.Do(req) + if err != nil { + return nil, fmt.Errorf("sending request: %w", err) + } + + if err := readResponseError(resp, "fetch services"); err != nil { + return nil, err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("reading response: %w", err) + } + return parseServices(string(body)) +} + +// fetchBuild retrieves the build information of a cluster member. +func (s *Service) fetchBuild(ctx context.Context, peer peer.Peer) (BuildInfo, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, s.buildProxyPath(peer, "/loki/api/v1/status/buildinfo"), nil) + if err != nil { + return BuildInfo{}, fmt.Errorf("creating request: %w", err) + } + + resp, err := s.client.Do(req) + if err != nil { + return BuildInfo{}, fmt.Errorf("sending request: %w", err) + } + + if err := readResponseError(resp, "fetch build info"); err != nil { + return BuildInfo{}, err + } + defer resp.Body.Close() + + var build BuildInfo + if err := json.NewDecoder(resp.Body).Decode(&build); err != nil { + return BuildInfo{}, fmt.Errorf("decoding response: %w", err) + } + return build, nil +} + +type ReadyResponse struct { + IsReady bool `json:"isReady"` + Message string `json:"message"` +} + +func (s *Service) checkNodeReadiness(ctx context.Context, nodeName string) (ReadyResponse, error) { + peer, err := s.findPeerByName(nodeName) + if err != nil { + return ReadyResponse{}, err + } + + req, err := http.NewRequestWithContext(ctx, "GET", s.buildProxyPath(peer, "/ready"), nil) + if err != nil { + return ReadyResponse{}, err + } + + resp, err := s.client.Do(req) + if err != nil { + return ReadyResponse{}, err + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return ReadyResponse{}, err + } + + return ReadyResponse{ + IsReady: resp.StatusCode == http.StatusOK && strings.TrimSpace(string(body)) == "ready", + Message: string(body), + }, nil +} + +// parseTargetFromConfig extracts the target value from a YAML configuration string. +// Returns "unknown" if the config cannot be parsed or the target is not found. +func parseTargetFromConfig(config string) string { + var cfg map[string]interface{} + if err := yaml.Unmarshal([]byte(config), &cfg); err != nil { + return "unknown" + } + target, _ := cfg["target"].(string) + return target +} + +// parseServices parses a string containing service states in the format: +// service => status +// Returns a slice of ServiceState structs. +func parseServices(body string) ([]ServiceState, error) { + var services []ServiceState + lines := strings.Split(body, "\n") + for _, line := range lines { + parts := strings.SplitN(line, " => ", 2) + if len(parts) != 2 { + continue + } + services = append(services, ServiceState{ + Service: parts[0], + Status: parts[1], + }) + } + return services, nil +} diff --git a/pkg/ui/config.go b/pkg/ui/config.go new file mode 100644 index 0000000000..1703eae62a --- /dev/null +++ b/pkg/ui/config.go @@ -0,0 +1,58 @@ +package ui + +import ( + "errors" + "flag" + "fmt" + "os" + "time" + + "github.com/grafana/dskit/flagext" + "github.com/grafana/dskit/netutil" + + util_log "github.com/grafana/loki/v3/pkg/util/log" +) + +type Config struct { + NodeName string `yaml:"node_name" doc:"default="` // Name to use for this node in the cluster. + AdvertiseAddr string `yaml:"advertise_addr"` + InfNames []string `yaml:"interface_names" doc:"default=[]"` + RejoinInterval time.Duration `yaml:"rejoin_interval"` // How frequently to rejoin the cluster to address split brain issues. + ClusterMaxJoinPeers int `yaml:"cluster_max_join_peers"` // Number of initial peers to join from the discovered set. + ClusterName string `yaml:"cluster_name"` // Name to prevent nodes without this identifier from joining the cluster. + EnableIPv6 bool `yaml:"enable_ipv6"` + Discovery struct { + JoinPeers []string `yaml:"join_peers"` + } `yaml:"discovery"` + + AdvertisePort int `yaml:"-"` +} + +func (cfg Config) WithAdvertisePort(port int) Config { + cfg.AdvertisePort = port + return cfg +} + +func (cfg *Config) RegisterFlags(f *flag.FlagSet) { + hostname, err := os.Hostname() + if err != nil { + panic(fmt.Errorf("failed to get hostname %s", err)) + } + cfg.InfNames = netutil.PrivateNetworkInterfacesWithFallback([]string{"eth0", "en0"}, util_log.Logger) + f.Var((*flagext.StringSlice)(&cfg.InfNames), "ui.interface", "Name of network interface to read address from.") + f.StringVar(&cfg.NodeName, "ui.node-name", hostname, "Name to use for this node in the cluster.") + f.StringVar(&cfg.AdvertiseAddr, "ui.advertise-addr", "", "IP address to advertise in the cluster.") + f.DurationVar(&cfg.RejoinInterval, "ui.rejoin-interval", 15*time.Second, "How frequently to rejoin the cluster to address split brain issues.") + f.IntVar(&cfg.ClusterMaxJoinPeers, "ui.cluster-max-join-peers", 3, "Number of initial peers to join from the discovered set.") + f.StringVar(&cfg.ClusterName, "ui.cluster-name", "", "Name to prevent nodes without this identifier from joining the cluster.") + f.BoolVar(&cfg.EnableIPv6, "ui.enable-ipv6", false, "Enable using a IPv6 instance address.") + f.Var((*flagext.StringSlice)(&cfg.Discovery.JoinPeers), "ui.discovery.join-peers", "List of peers to join the cluster. Supports multiple values separated by commas. Each value can be a hostname, an IP address, or a DNS name (A/AAAA and SRV records).") +} + +func (cfg Config) Validate() error { + if cfg.NodeName == "" { + return errors.New("node name is required") + } + + return nil +} diff --git a/pkg/ui/discovery.go b/pkg/ui/discovery.go new file mode 100644 index 0000000000..68adb17e81 --- /dev/null +++ b/pkg/ui/discovery.go @@ -0,0 +1,146 @@ +package ui + +import ( + "errors" + "fmt" + "math/rand/v2" + "net" + "strconv" + + "github.com/go-kit/log" + "github.com/go-kit/log/level" +) + +func (s *Service) getBootstrapPeers() ([]string, error) { + if len(s.cfg.Discovery.JoinPeers) == 0 { + return nil, nil + } + // Use these resolvers in order to resolve the provided addresses into a form that can be used by clustering. + resolvers := []addressResolver{ + ipResolver(), + dnsAResolver(nil), + dnsSRVResolver(nil), + } + + // Get the addresses. + addresses, err := buildJoinAddresses(s.cfg, resolvers, s.logger) + if err != nil { + return nil, fmt.Errorf("static peer discovery: %w", err) + } + + // Return unique addresses. + peers := uniq(addresses) + // Here we return the entire list because we can't take a subset. + if s.cfg.ClusterMaxJoinPeers == 0 || len(peers) < s.cfg.ClusterMaxJoinPeers { + return peers, nil + } + + // We shuffle the list and return only a subset of the peers. + rand.Shuffle(len(peers), func(i, j int) { + peers[i], peers[j] = peers[j], peers[i] + }) + return peers[:s.cfg.ClusterMaxJoinPeers], nil +} + +func uniq(addresses []string) []string { + seen := make(map[string]bool) + var result []string + for _, addr := range addresses { + if !seen[addr] { + seen[addr] = true + result = append(result, addr) + } + } + return result +} + +func buildJoinAddresses(opts Config, resolvers []addressResolver, logger log.Logger) ([]string, error) { + var ( + result []string + deferredErr error + ) + + for _, addr := range opts.Discovery.JoinPeers { + // See if we have a port override, if not use the default port. + host, port, err := net.SplitHostPort(addr) + if err != nil { + host = addr + port = strconv.Itoa(opts.AdvertisePort) + } + + atLeastOneSuccess := false + for _, resolver := range resolvers { + resolved, err := resolver(host) + deferredErr = errors.Join(deferredErr, err) + for _, foundAddr := range resolved { + result = append(result, net.JoinHostPort(foundAddr, port)) + } + // we stop once we find a resolver that succeeded for given address + if len(resolved) > 0 { + atLeastOneSuccess = true + break + } + } + + if !atLeastOneSuccess { + // It is still useful to know if user provided an address that we could not resolve, even + // if another addresses resolve successfully, and we don't return an error. To keep things simple, we're + // not including more detail as it's available through debug level. + level.Warn(logger).Log("msg", "failed to resolve provided join address", "addr", addr) + } + } + + if len(result) == 0 { + return nil, fmt.Errorf("failed to find any valid join addresses: %w", deferredErr) + } + return result, nil +} + +type addressResolver func(addr string) ([]string, error) + +func ipResolver() addressResolver { + return func(addr string) ([]string, error) { + // Check if it's IP and use it if so. + ip := net.ParseIP(addr) + if ip == nil { + return nil, fmt.Errorf("could not parse as an IP or IP:port address: %q", addr) + } + return []string{ip.String()}, nil + } +} + +func dnsAResolver(ipLookup func(string) ([]net.IP, error)) addressResolver { + // Default to net.LookupIP if not provided. By default, this will look up A/AAAA records. + if ipLookup == nil { + ipLookup = net.LookupIP + } + return func(addr string) ([]string, error) { + ips, err := ipLookup(addr) + result := make([]string, 0, len(ips)) + for _, ip := range ips { + result = append(result, ip.String()) + } + if err != nil { + err = fmt.Errorf("failed to resolve %q records: %w", "A/AAAA", err) + } + return result, err + } +} + +func dnsSRVResolver(srvLookup func(service, proto, name string) (string, []*net.SRV, error)) addressResolver { + // Default to net.LookupSRV if not provided. + if srvLookup == nil { + srvLookup = net.LookupSRV + } + return func(addr string) ([]string, error) { + _, addresses, err := srvLookup("", "", addr) + result := make([]string, 0, len(addresses)) + for _, a := range addresses { + result = append(result, a.Target) + } + if err != nil { + err = fmt.Errorf("failed to resolve %q records: %w", "SRV", err) + } + return result, err + } +} diff --git a/pkg/ui/frontend/.depcheckrc.json b/pkg/ui/frontend/.depcheckrc.json new file mode 100644 index 0000000000..3d0ff1a1ba --- /dev/null +++ b/pkg/ui/frontend/.depcheckrc.json @@ -0,0 +1,14 @@ +{ + "ignores": [ + "@types/node", + "autoprefixer", + "postcss", + "tailwindcss", + "tailwindcss-animate", + "@typescript-eslint/*", + "@vitejs/*", + "eslint*", + "depcheck" + ], + "ignore-patterns": ["dist", "build", ".next", "coverage"] +} diff --git a/pkg/ui/frontend/.eslintrc.json b/pkg/ui/frontend/.eslintrc.json new file mode 100644 index 0000000000..725d88183f --- /dev/null +++ b/pkg/ui/frontend/.eslintrc.json @@ -0,0 +1,34 @@ +{ + "root": true, + "env": { + "browser": true, + "es2020": true, + "node": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react-hooks/recommended" + ], + "ignorePatterns": [ + "dist", + ".eslintrc.json" + ], + "parser": "@typescript-eslint/parser", + "plugins": [ + "react-refresh" + ], + "rules": { + "react-refresh/only-export-components": "warn" + }, + "overrides": [ + { + "files": [ + "src/components/ui/**/*" + ], + "rules": { + "react-refresh/only-export-components": "off" + } + } + ] +} diff --git a/pkg/ui/frontend/Makefile b/pkg/ui/frontend/Makefile new file mode 100644 index 0000000000..8e817471e5 --- /dev/null +++ b/pkg/ui/frontend/Makefile @@ -0,0 +1,18 @@ +.PHONY: build +build: + npm install + npm run build + +.PHONY: dev +dev: + npm run dev + +.PHONY: clean +clean: + rm -rf node_modules + rm -rf dist + +.PHONY: check-deps +check-deps: + npx depcheck + npm audit diff --git a/pkg/ui/frontend/README.md b/pkg/ui/frontend/README.md new file mode 100644 index 0000000000..b9980ab227 --- /dev/null +++ b/pkg/ui/frontend/README.md @@ -0,0 +1,120 @@ +# Loki UI + +The Loki UI is an operational dashboard for managing and operating Grafana Loki clusters. It provides a comprehensive set of tools for cluster administration, operational tasks, and troubleshooting. This includes node management, configuration control, performance monitoring, and diagnostic tools for investigating cluster health and log ingestion issues. + +## Tech Stack + +- **Framework**: React 18 with TypeScript +- **Routing**: React Router v6 +- **Styling**: + - Tailwind CSS for utility-first styling + - Shadcn UI (built on Radix UI) for accessible components + - Tailwind Merge for dynamic class merging + - Tailwind Animate for animations +- **State Management**: React Context + Custom Hooks +- **Data Visualization**: Recharts +- **Development**: + - Vite for build tooling and development server + - TypeScript for type safety + - ESLint for code quality + - PostCSS for CSS processing + +## Project Structure + +``` +src/ +├── components/ # React components +│ ├── ui/ # Shadcn UI components +│ │ ├── errors/ # Error handling components +│ │ └── breadcrumbs/ # Navigation breadcrumbs +│ ├── shared/ # Shared components used across pages +│ │ └── {pagename}/ # Page-specific components +│ ├── common/ # Truly reusable components +│ └── features/ # Complex feature modules +│ └── theme/ # Theme-related components and logic +├── pages/ # Page components and routes +├── layout/ # Layout components +├── hooks/ # Custom React hooks +├── contexts/ # React context providers +├── lib/ # Utility functions and constants +└── types/ # TypeScript type definitions +``` + +## Component Organization Guidelines + +1. **Page-Specific Components** + - Place in `components/{pagename}/` + - Only used by a single page + - Colocated with the page they belong to + +2. **Shared Components** + - Place in `components/shared/` + - Used across multiple pages + - Well-documented and maintainable + +3. **Common Components** + - Place in `components/common/` + - Highly reusable, pure components + - No business logic + +4. **UI Components** + - Place in `components/ui/` + - Shadcn components + - Do not modify directly + +## Development Guidelines + +1. **TypeScript** + - Use TypeScript for all new code + - Prefer interfaces over types + - Avoid enums, use const maps instead + +2. **Component Best Practices** + - Use functional components + - Keep components small and focused + - Use composition over inheritance + - Colocate related code + +3. **State Management** + - Use React Context for global state + - Custom hooks for reusable logic + - Local state for component-specific data + +4. **Styling** + - Use Tailwind CSS for styling + - Avoid inline styles + - Use CSS variables for theming + - Follow responsive design principles + +## Getting Started + +1. Install dependencies: + + ```bash + npm install + ``` + +2. Start development server: + + ```bash + npm run dev + ``` + +3. Build for production: + + ```bash + npm run build + ``` + +4. Lint code: + + ```bash + npm run lint + ``` + +## Contributing + +1. Follow the folder structure +2. Write clean, maintainable code +3. Add proper TypeScript types +4. Document complex logic diff --git a/pkg/ui/frontend/components.json b/pkg/ui/frontend/components.json new file mode 100644 index 0000000000..1d282e6408 --- /dev/null +++ b/pkg/ui/frontend/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/pkg/ui/frontend/dist/assets/data-viz-BuFFX-vG.js b/pkg/ui/frontend/dist/assets/data-viz-BuFFX-vG.js new file mode 100644 index 0000000000..7b7076251d --- /dev/null +++ b/pkg/ui/frontend/dist/assets/data-viz-BuFFX-vG.js @@ -0,0 +1,72 @@ +import{c as J}from"./ui-utils-BNSC_Jv-.js";import{e as yi,g as ie,r as L,b as P}from"./react-core-D_V7s-9r.js";var mg=Array.isArray,Be=mg,bg=typeof yi=="object"&&yi&&yi.Object===Object&&yi,Ip=bg,xg=Ip,wg=typeof self=="object"&&self&&self.Object===Object&&self,Og=xg||wg||Function("return this")(),st=Og,Ag=st,Pg=Ag.Symbol,ai=Pg,Rs=ai,kp=Object.prototype,Sg=kp.hasOwnProperty,_g=kp.toString,un=Rs?Rs.toStringTag:void 0;function $g(e){var t=Sg.call(e,un),r=e[un];try{e[un]=void 0;var n=!0}catch{}var i=_g.call(e);return n&&(t?e[un]=r:delete e[un]),i}var Tg=$g,Eg=Object.prototype,jg=Eg.toString;function Mg(e){return jg.call(e)}var Cg=Mg,Ls=ai,Ig=Tg,kg=Cg,Ng="[object Null]",Dg="[object Undefined]",Bs=Ls?Ls.toStringTag:void 0;function Rg(e){return e==null?e===void 0?Dg:Ng:Bs&&Bs in Object(e)?Ig(e):kg(e)}var Pt=Rg;function Lg(e){return e!=null&&typeof e=="object"}var St=Lg,Bg=Pt,Fg=St,Wg="[object Symbol]";function zg(e){return typeof e=="symbol"||Fg(e)&&Bg(e)==Wg}var Kr=zg,Ug=Be,qg=Kr,Hg=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Gg=/^\w*$/;function Kg(e,t){if(Ug(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||qg(e)?!0:Gg.test(e)||!Hg.test(e)||t!=null&&e in Object(t)}var Sc=Kg;function Xg(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var kt=Xg;const Xr=ie(kt);var Vg=Pt,Yg=kt,Zg="[object AsyncFunction]",Jg="[object Function]",Qg="[object GeneratorFunction]",em="[object Proxy]";function tm(e){if(!Yg(e))return!1;var t=Vg(e);return t==Jg||t==Qg||t==Zg||t==em}var _c=tm;const V=ie(_c);var rm=st,nm=rm["__core-js_shared__"],im=nm,Po=im,Fs=function(){var e=/[^.]+$/.exec(Po&&Po.keys&&Po.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function am(e){return!!Fs&&Fs in e}var om=am,um=Function.prototype,cm=um.toString;function sm(e){if(e!=null){try{return cm.call(e)}catch{}try{return e+""}catch{}}return""}var Np=sm,lm=_c,fm=om,dm=kt,pm=Np,hm=/[\\^$.*+?()[\]{}|]/g,ym=/^\[object .+?Constructor\]$/,vm=Function.prototype,gm=Object.prototype,mm=vm.toString,bm=gm.hasOwnProperty,xm=RegExp("^"+mm.call(bm).replace(hm,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function wm(e){if(!dm(e)||fm(e))return!1;var t=lm(e)?xm:ym;return t.test(pm(e))}var Om=wm;function Am(e,t){return e==null?void 0:e[t]}var Pm=Am,Sm=Om,_m=Pm;function $m(e,t){var r=_m(e,t);return Sm(r)?r:void 0}var or=$m,Tm=or,Em=Tm(Object,"create"),Ea=Em,Ws=Ea;function jm(){this.__data__=Ws?Ws(null):{},this.size=0}var Mm=jm;function Cm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Im=Cm,km=Ea,Nm="__lodash_hash_undefined__",Dm=Object.prototype,Rm=Dm.hasOwnProperty;function Lm(e){var t=this.__data__;if(km){var r=t[e];return r===Nm?void 0:r}return Rm.call(t,e)?t[e]:void 0}var Bm=Lm,Fm=Ea,Wm=Object.prototype,zm=Wm.hasOwnProperty;function Um(e){var t=this.__data__;return Fm?t[e]!==void 0:zm.call(t,e)}var qm=Um,Hm=Ea,Gm="__lodash_hash_undefined__";function Km(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Hm&&t===void 0?Gm:t,this}var Xm=Km,Vm=Mm,Ym=Im,Zm=Bm,Jm=qm,Qm=Xm;function Vr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1}var vb=yb,gb=ja;function mb(e,t){var r=this.__data__,n=gb(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var bb=mb,xb=rb,wb=lb,Ob=pb,Ab=vb,Pb=bb;function Yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t0?1:-1},Vt=function(t){return oi(t)&&t.indexOf("%")===t.length-1},R=function(t){return q0(t)&&!ui(t)},Ae=function(t){return R(t)||oi(t)},X0=0,ci=function(t){var r=++X0;return"".concat(t||"").concat(r)},ke=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!R(t)&&!oi(t))return n;var a;if(Vt(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return ui(a)&&(a=n),i&&a>r&&(a=r),a},jt=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},V0=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function tx(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var Xs={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},gt=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},Vs=null,_o=null,Dc=function e(t){if(t===Vs&&Array.isArray(_o))return _o;var r=[];return L.Children.forEach(t,function(n){Q(n)||(B0.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),_o=r,Vs=t,r};function Ve(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return gt(i)}):n=[gt(t)],Dc(e).forEach(function(i){var a=qe(i,"type.displayName")||qe(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function ze(e,t){var r=Ve(e,t);return r[0]}var Ys=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!R(n)||n<=0||!R(i)||i<=0)},rx=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],nx=function(t){return t&&t.type&&oi(t.type)&&rx.indexOf(t.type)>=0},ix=function(t,r,n,i){var a,o=(a=So==null?void 0:So[i])!==null&&a!==void 0?a:[];return!V(t)&&(i&&o.includes(r)||Z0.includes(r))||n&&Nc.includes(r)},X=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(L.isValidElement(t)&&(i=t.props),!Xr(i))return null;var a={};return Object.keys(i).forEach(function(o){var u;ix((u=i)===null||u===void 0?void 0:u[o],o,r,n)&&(a[o]=i[o])}),a},eu=function e(t,r){if(t===r)return!0;var n=L.Children.count(t);if(n!==L.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Zs(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sx(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ru(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,u=e.title,c=e.desc,s=cx(e,ux),f=i||{width:r,height:n,x:0,y:0},l=J("recharts-surface",a);return P.createElement("svg",tu({},X(s,!0,"svg"),{className:l,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),P.createElement("title",null,u),P.createElement("desc",null,c),t)}var lx=["children","className"];function nu(){return nu=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function dx(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var ne=P.forwardRef(function(e,t){var r=e.children,n=e.className,i=fx(e,lx),a=J("recharts-layer",n);return P.createElement("g",nu({className:a},X(i,!0),{ref:t}),r)}),nt=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;ai?0:i+t),r=r>i?i:r,r<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var a=Array(i);++n=n?e:yx(e,t,r)}var gx=vx,mx="\\ud800-\\udfff",bx="\\u0300-\\u036f",xx="\\ufe20-\\ufe2f",wx="\\u20d0-\\u20ff",Ox=bx+xx+wx,Ax="\\ufe0e\\ufe0f",Px="\\u200d",Sx=RegExp("["+Px+mx+Ox+Ax+"]");function _x(e){return Sx.test(e)}var Hp=_x;function $x(e){return e.split("")}var Tx=$x,Gp="\\ud800-\\udfff",Ex="\\u0300-\\u036f",jx="\\ufe20-\\ufe2f",Mx="\\u20d0-\\u20ff",Cx=Ex+jx+Mx,Ix="\\ufe0e\\ufe0f",kx="["+Gp+"]",iu="["+Cx+"]",au="\\ud83c[\\udffb-\\udfff]",Nx="(?:"+iu+"|"+au+")",Kp="[^"+Gp+"]",Xp="(?:\\ud83c[\\udde6-\\uddff]){2}",Vp="[\\ud800-\\udbff][\\udc00-\\udfff]",Dx="\\u200d",Yp=Nx+"?",Zp="["+Ix+"]?",Rx="(?:"+Dx+"(?:"+[Kp,Xp,Vp].join("|")+")"+Zp+Yp+")*",Lx=Zp+Yp+Rx,Bx="(?:"+[Kp+iu+"?",iu,Xp,Vp,kx].join("|")+")",Fx=RegExp(au+"(?="+au+")|"+Bx+Lx,"g");function Wx(e){return e.match(Fx)||[]}var zx=Wx,Ux=Tx,qx=Hp,Hx=zx;function Gx(e){return qx(e)?Hx(e):Ux(e)}var Kx=Gx,Xx=gx,Vx=Hp,Yx=Kx,Zx=Bp;function Jx(e){return function(t){t=Zx(t);var r=Vx(t)?Yx(t):void 0,n=r?r[0]:t.charAt(0),i=r?Xx(r,1).join(""):t.slice(1);return n[e]()+i}}var Qx=Jx,ew=Qx,tw=ew("toUpperCase"),rw=tw;const qa=ie(rw);function se(e){return function(){return e}}const Jp=Math.cos,Ci=Math.sin,it=Math.sqrt,Ii=Math.PI,Ha=2*Ii,ou=Math.PI,uu=2*ou,Ht=1e-6,nw=uu-Ht;function Qp(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Qp;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;iHt)if(!(Math.abs(l*c-s*f)>Ht)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,y=i-u,h=c*c+s*s,v=p*p+y*y,b=Math.sqrt(h),w=Math.sqrt(d),x=a*Math.tan((ou-Math.acos((h+d-v)/(2*b*w)))/2),A=x/w,g=x/b;Math.abs(A-1)>Ht&&this._append`L${t+A*f},${r+A*l}`,this._append`A${a},${a},0,0,${+(l*p>f*y)},${this._x1=t+g*c},${this._y1=r+g*s}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),c=n*Math.sin(i),s=t+u,f=r+c,l=1^o,d=o?i-a:a-i;this._x1===null?this._append`M${s},${f}`:(Math.abs(this._x1-s)>Ht||Math.abs(this._y1-f)>Ht)&&this._append`L${s},${f}`,n&&(d<0&&(d=d%uu+uu),d>nw?this._append`A${n},${n},0,1,${l},${t-u},${r-c}A${n},${n},0,1,${l},${this._x1=s},${this._y1=f}`:d>Ht&&this._append`A${n},${n},0,${+(d>=ou)},${l},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Rc(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new aw(t)}function Lc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function eh(e){this._context=e}eh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Ga(e){return new eh(e)}function th(e){return e[0]}function rh(e){return e[1]}function nh(e,t){var r=se(!0),n=null,i=Ga,a=null,o=Rc(u);e=typeof e=="function"?e:e===void 0?th:se(e),t=typeof t=="function"?t:t===void 0?rh:se(t);function u(c){var s,f=(c=Lc(c)).length,l,d=!1,p;for(n==null&&(a=i(p=o())),s=0;s<=f;++s)!(s=p;--y)u.point(x[y],A[y]);u.lineEnd(),u.areaEnd()}b&&(x[d]=+e(v,d,l),A[d]=+t(v,d,l),u.point(n?+n(v,d,l):x[d],r?+r(v,d,l):A[d]))}if(w)return u=null,w+""||null}function f(){return nh().defined(i).curve(o).context(a)}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:se(+l),n=null,s):e},s.x0=function(l){return arguments.length?(e=typeof l=="function"?l:se(+l),s):e},s.x1=function(l){return arguments.length?(n=l==null?null:typeof l=="function"?l:se(+l),s):n},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:se(+l),r=null,s):t},s.y0=function(l){return arguments.length?(t=typeof l=="function"?l:se(+l),s):t},s.y1=function(l){return arguments.length?(r=l==null?null:typeof l=="function"?l:se(+l),s):r},s.lineX0=s.lineY0=function(){return f().x(e).y(t)},s.lineY1=function(){return f().x(e).y(r)},s.lineX1=function(){return f().x(n).y(t)},s.defined=function(l){return arguments.length?(i=typeof l=="function"?l:se(!!l),s):i},s.curve=function(l){return arguments.length?(o=l,a!=null&&(u=o(a)),s):o},s.context=function(l){return arguments.length?(l==null?a=u=null:u=o(a=l),s):a},s}class ih{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function ow(e){return new ih(e,!0)}function uw(e){return new ih(e,!1)}const Bc={draw(e,t){const r=it(t/Ii);e.moveTo(r,0),e.arc(0,0,r,0,Ha)}},cw={draw(e,t){const r=it(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},ah=it(1/3),sw=ah*2,lw={draw(e,t){const r=it(t/sw),n=r*ah;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},fw={draw(e,t){const r=it(t),n=-r/2;e.rect(n,n,r,r)}},dw=.8908130915292852,oh=Ci(Ii/10)/Ci(7*Ii/10),pw=Ci(Ha/10)*oh,hw=-Jp(Ha/10)*oh,yw={draw(e,t){const r=it(t*dw),n=pw*r,i=hw*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=Ha*a/5,u=Jp(o),c=Ci(o);e.lineTo(c*r,-u*r),e.lineTo(u*n-c*i,c*n+u*i)}e.closePath()}},$o=it(3),vw={draw(e,t){const r=-it(t/($o*3));e.moveTo(0,r*2),e.lineTo(-$o*r,-r),e.lineTo($o*r,-r),e.closePath()}},He=-.5,Ge=it(3)/2,cu=1/it(12),gw=(cu/2+1)*3,mw={draw(e,t){const r=it(t/gw),n=r/2,i=r*cu,a=n,o=r*cu+r,u=-a,c=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(u,c),e.lineTo(He*n-Ge*i,Ge*n+He*i),e.lineTo(He*a-Ge*o,Ge*a+He*o),e.lineTo(He*u-Ge*c,Ge*u+He*c),e.lineTo(He*n+Ge*i,He*i-Ge*n),e.lineTo(He*a+Ge*o,He*o-Ge*a),e.lineTo(He*u+Ge*c,He*c-Ge*u),e.closePath()}};function bw(e,t){let r=null,n=Rc(i);e=typeof e=="function"?e:se(e||Bc),t=typeof t=="function"?t:se(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:se(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:se(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function ki(){}function Ni(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function uh(e){this._context=e}uh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ni(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ni(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function xw(e){return new uh(e)}function ch(e){this._context=e}ch.prototype={areaStart:ki,areaEnd:ki,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Ni(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ww(e){return new ch(e)}function sh(e){this._context=e}sh.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Ni(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Ow(e){return new sh(e)}function lh(e){this._context=e}lh.prototype={areaStart:ki,areaEnd:ki,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Aw(e){return new lh(e)}function Qs(e){return e<0?-1:1}function el(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),u=(a*i+o*n)/(n+i);return(Qs(a)+Qs(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function tl(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function To(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,u=(a-n)/3;e._context.bezierCurveTo(n+u,i+u*t,a-u,o-u*r,a,o)}function Di(e){this._context=e}Di.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:To(this,this._t0,tl(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,To(this,tl(this,r=el(this,e,t)),r);break;default:To(this,this._t0,r=el(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function fh(e){this._context=new dh(e)}(fh.prototype=Object.create(Di.prototype)).point=function(e,t){Di.prototype.point.call(this,t,e)};function dh(e){this._context=e}dh.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function Pw(e){return new Di(e)}function Sw(e){return new fh(e)}function ph(e){this._context=e}ph.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=rl(e),i=rl(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function $w(e){return new Ka(e,.5)}function Tw(e){return new Ka(e,0)}function Ew(e){return new Ka(e,1)}function Ar(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,u=a.length;r=0;)r[t]=t;return r}function jw(e,t){return e[t]}function Mw(e){const t=[];return t.key=e,t}function Cw(){var e=se([]),t=su,r=Ar,n=jw;function i(a){var o=Array.from(e.apply(this,arguments),Mw),u,c=o.length,s=-1,f;for(const l of a)for(u=0,++s;u0){for(var r,n,i=0,a=e[0].length,o;i0){for(var r=0,n=e[t[0]],i,a=n.length;r0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ww(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var hh={symbolCircle:Bc,symbolCross:cw,symbolDiamond:lw,symbolSquare:fw,symbolStar:yw,symbolTriangle:vw,symbolWye:mw},zw=Math.PI/180,Uw=function(t){var r="symbol".concat(qa(t));return hh[r]||Bc},qw=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*zw;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},Hw=function(t,r){hh["symbol".concat(qa(t))]=r},Fc=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,u=o===void 0?"area":o,c=Fw(t,Dw),s=il(il({},c),{},{type:n,size:a,sizeType:u}),f=function(){var v=Uw(n),b=bw().type(v).size(qw(a,u,n));return b()},l=s.className,d=s.cx,p=s.cy,y=X(s,!0);return d===+d&&p===+p&&a===+a?P.createElement("path",lu({},y,{className:J("recharts-symbols",l),transform:"translate(".concat(d,", ").concat(p,")"),d:f()})):null};Fc.registerSymbol=Hw;function Pr(e){"@babel/helpers - typeof";return Pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pr(e)}function fu(){return fu=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var w=p.inactive?s:p.color;return P.createElement("li",fu({className:v,style:l,key:"legend-item-".concat(y)},tr(n.props,p,y)),P.createElement(ru,{width:o,height:o,viewBox:f,style:d},n.renderIcon(p)),P.createElement("span",{className:"recharts-legend-item-text",style:{color:w}},h?h(b,p,y):b))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var u={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return P.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])}(L.PureComponent);Sn(Wc,"displayName","Legend");Sn(Wc,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var tO=Ma;function rO(){this.__data__=new tO,this.size=0}var nO=rO;function iO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var aO=iO;function oO(e){return this.__data__.get(e)}var uO=oO;function cO(e){return this.__data__.has(e)}var sO=cO,lO=Ma,fO=Tc,dO=Ec,pO=200;function hO(e,t){var r=this.__data__;if(r instanceof lO){var n=r.__data__;if(!fO||n.lengthu))return!1;var s=a.get(e),f=a.get(t);if(s&&f)return s==t&&f==e;var l=-1,d=!0,p=r&DO?new CO:void 0;for(a.set(e,t),a.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=F1}var Hc=W1,z1=Pt,U1=Hc,q1=St,H1="[object Arguments]",G1="[object Array]",K1="[object Boolean]",X1="[object Date]",V1="[object Error]",Y1="[object Function]",Z1="[object Map]",J1="[object Number]",Q1="[object Object]",eA="[object RegExp]",tA="[object Set]",rA="[object String]",nA="[object WeakMap]",iA="[object ArrayBuffer]",aA="[object DataView]",oA="[object Float32Array]",uA="[object Float64Array]",cA="[object Int8Array]",sA="[object Int16Array]",lA="[object Int32Array]",fA="[object Uint8Array]",dA="[object Uint8ClampedArray]",pA="[object Uint16Array]",hA="[object Uint32Array]",de={};de[oA]=de[uA]=de[cA]=de[sA]=de[lA]=de[fA]=de[dA]=de[pA]=de[hA]=!0;de[H1]=de[G1]=de[iA]=de[K1]=de[aA]=de[X1]=de[V1]=de[Y1]=de[Z1]=de[J1]=de[Q1]=de[eA]=de[tA]=de[rA]=de[nA]=!1;function yA(e){return q1(e)&&U1(e.length)&&!!de[z1(e)]}var vA=yA;function gA(e){return function(t){return e(t)}}var Sh=gA,Fi={exports:{}};Fi.exports;(function(e,t){var r=Ip,n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,u=function(){try{var c=i&&i.require&&i.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}}();e.exports=u})(Fi,Fi.exports);var mA=Fi.exports,bA=vA,xA=Sh,fl=mA,dl=fl&&fl.isTypedArray,wA=dl?xA(dl):bA,_h=wA,OA=S1,AA=Uc,PA=Be,SA=Ph,_A=qc,$A=_h,TA=Object.prototype,EA=TA.hasOwnProperty;function jA(e,t){var r=PA(e),n=!r&&AA(e),i=!r&&!n&&SA(e),a=!r&&!n&&!i&&$A(e),o=r||n||i||a,u=o?OA(e.length,String):[],c=u.length;for(var s in e)(t||EA.call(e,s))&&!(o&&(s=="length"||i&&(s=="offset"||s=="parent")||a&&(s=="buffer"||s=="byteLength"||s=="byteOffset")||_A(s,c)))&&u.push(s);return u}var MA=jA,CA=Object.prototype;function IA(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||CA;return e===r}var kA=IA;function NA(e,t){return function(r){return e(t(r))}}var $h=NA,DA=$h,RA=DA(Object.keys,Object),LA=RA,BA=kA,FA=LA,WA=Object.prototype,zA=WA.hasOwnProperty;function UA(e){if(!BA(e))return FA(e);var t=[];for(var r in Object(e))zA.call(e,r)&&r!="constructor"&&t.push(r);return t}var qA=UA,HA=_c,GA=Hc;function KA(e){return e!=null&&GA(e.length)&&!HA(e)}var si=KA,XA=MA,VA=qA,YA=si;function ZA(e){return YA(e)?XA(e):VA(e)}var Xa=ZA,JA=p1,QA=A1,eP=Xa;function tP(e){return JA(e,eP,QA)}var rP=tP,pl=rP,nP=1,iP=Object.prototype,aP=iP.hasOwnProperty;function oP(e,t,r,n,i,a){var o=r&nP,u=pl(e),c=u.length,s=pl(t),f=s.length;if(c!=f&&!o)return!1;for(var l=c;l--;){var d=u[l];if(!(o?d in t:aP.call(t,d)))return!1}var p=a.get(e),y=a.get(t);if(p&&y)return p==t&&y==e;var h=!0;a.set(e,t),a.set(t,e);for(var v=o;++l-1}var i_=n_;function a_(e,t,r){for(var n=-1,i=e==null?0:e.length;++n=x_){var s=t?null:m_(e);if(s)return b_(s);o=!1,i=g_,c=new h_}else c=t?[]:u;e:for(;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function D_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function R_(e){return e.value}function L_(e,t){if(P.isValidElement(e))return P.cloneElement(e,t);if(typeof e=="function")return P.createElement(e,t);t.ref;var r=N_(t,$_);return P.createElement(Wc,r)}var El=1,xr=function(e){function t(){var r;T_(this,t);for(var n=arguments.length,i=new Array(n),a=0;aEl||Math.abs(i.height-this.lastBoundingBox.height)>El)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?ft({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,u=i.verticalAlign,c=i.margin,s=i.chartWidth,f=i.chartHeight,l,d;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var p=this.getBBoxSnapshot();l={left:((s||0)-p.width)/2}}else l=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(u==="middle"){var y=this.getBBoxSnapshot();d={top:((f||0)-y.height)/2}}else d=u==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return ft(ft({},l),d)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,u=i.height,c=i.wrapperStyle,s=i.payloadUniqBy,f=i.payload,l=ft(ft({position:"absolute",width:o||"auto",height:u||"auto"},this.getDefaultPosition(c)),c);return P.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(p){n.wrapperNode=p}},L_(a,ft(ft({},this.props),{},{payload:kh(f,s,R_)})))}}],[{key:"getWithHeight",value:function(n,i){var a=ft(ft({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&R(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])}(L.PureComponent);Va(xr,"displayName","Legend");Va(xr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var jl=ai,B_=Uc,F_=Be,Ml=jl?jl.isConcatSpreadable:void 0;function W_(e){return F_(e)||B_(e)||!!(Ml&&e&&e[Ml])}var z_=W_,U_=Oh,q_=z_;function Rh(e,t,r,n,i){var a=-1,o=e.length;for(r||(r=q_),i||(i=[]);++a0&&r(u)?t>1?Rh(u,t-1,r,n,i):U_(i,u):n||(i[i.length]=u)}return i}var Lh=Rh;function H_(e){return function(t,r,n){for(var i=-1,a=Object(t),o=n(t),u=o.length;u--;){var c=o[e?u:++i];if(r(a[c],c,a)===!1)break}return t}}var G_=H_,K_=G_,X_=K_(),V_=X_,Y_=V_,Z_=Xa;function J_(e,t){return e&&Y_(e,t,Z_)}var Bh=J_,Q_=si;function e$(e,t){return function(r,n){if(r==null)return r;if(!Q_(r))return e(r,n);for(var i=r.length,a=t?i:-1,o=Object(r);(t?a--:++at||a&&o&&c&&!u&&!s||n&&o&&c||!r&&c||!i)return 1;if(!n&&!a&&!s&&e=u)return c;var s=r[n];return c*(s=="desc"?-1:1)}}return e.index-t.index}var h$=p$,Co=Mc,y$=Cc,v$=lt,g$=Fh,m$=s$,b$=Sh,x$=h$,w$=en,O$=Be;function A$(e,t,r){t.length?t=Co(t,function(a){return O$(a)?function(o){return y$(o,a.length===1?a[0]:a)}:a}):t=[w$];var n=-1;t=Co(t,b$(v$));var i=g$(e,function(a,o,u){var c=Co(t,function(s){return s(a)});return{criteria:c,index:++n,value:a}});return m$(i,function(a,o){return x$(a,o,r)})}var P$=A$;function S$(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var _$=S$,$$=_$,Il=Math.max;function T$(e,t,r){return t=Il(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,a=Il(n.length-t,0),o=Array(a);++i0){if(++t>=L$)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var z$=W$,U$=R$,q$=z$,H$=q$(U$),G$=H$,K$=en,X$=E$,V$=G$;function Y$(e,t){return V$(X$(e,t,K$),e+"")}var Z$=Y$,J$=$c,Q$=si,eT=qc,tT=kt;function rT(e,t,r){if(!tT(r))return!1;var n=typeof t;return(n=="number"?Q$(r)&&eT(t,r.length):n=="string"&&t in r)?J$(r[t],e):!1}var Ya=rT,nT=Lh,iT=P$,aT=Z$,Nl=Ya,oT=aT(function(e,t){if(e==null)return[];var r=t.length;return r>1&&Nl(e,t[0],t[1])?t=[]:r>2&&Nl(t[0],t[1],t[2])&&(t=[t[0]]),iT(e,nT(t,1),[])}),uT=oT;const Xc=ie(uT);function _n(e){"@babel/helpers - typeof";return _n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_n(e)}function bu(){return bu=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t.x),"".concat(cn,"-left"),R(r)&&t&&R(t.x)&&r=t.y),"".concat(cn,"-top"),R(n)&&t&&R(t.y)&&nh?Math.max(f,c[n]):Math.max(l,c[n])}function OT(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function AT(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,u=e.useTranslate3d,c=e.viewBox,s,f,l;return o.height>0&&o.width>0&&r?(f=Ll({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),l=Ll({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),s=OT({translateX:f,translateY:l,useTranslate3d:u})):s=xT,{cssProperties:s,cssClasses:wT({translateX:f,translateY:l,coordinate:r})}}function _r(e){"@babel/helpers - typeof";return _r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_r(e)}function Bl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Fl(e){for(var t=1;tWl||Math.abs(n.height-this.state.lastBoundingBox.height)>Wl)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,u=i.animationDuration,c=i.animationEasing,s=i.children,f=i.coordinate,l=i.hasPayload,d=i.isAnimationActive,p=i.offset,y=i.position,h=i.reverseDirection,v=i.useTranslate3d,b=i.viewBox,w=i.wrapperStyle,x=AT({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:p,position:y,reverseDirection:h,tooltipBox:this.state.lastBoundingBox,useTranslate3d:v,viewBox:b}),A=x.cssClasses,g=x.cssProperties,m=Fl(Fl({transition:d&&a?"transform ".concat(u,"ms ").concat(c):void 0},g),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&l?"visible":"hidden",position:"absolute",top:0,left:0},w);return P.createElement("div",{tabIndex:-1,className:A,style:m,ref:function(S){n.wrapperNode=S}},s)}}])}(L.PureComponent),IT=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},mt={isSsr:IT(),get:function(t){return mt[t]},set:function(t,r){if(typeof t=="string")mt[t]=r;else{var n=Object.keys(t);n&&n.length&&n.forEach(function(i){mt[i]=t[i]})}}};function $r(e){"@babel/helpers - typeof";return $r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$r(e)}function zl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ul(e){for(var t=1;t0;return P.createElement(CT,{allowEscapeViewBox:o,animationDuration:u,animationEasing:c,isAnimationActive:d,active:a,coordinate:f,hasPayload:m,offset:p,position:v,reverseDirection:b,useTranslate3d:w,viewBox:x,wrapperStyle:A},UT(s,Ul(Ul({},this.props),{},{payload:g})))}}])}(L.PureComponent);Vc(dt,"displayName","Tooltip");Vc(dt,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!mt.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var qT=st,HT=function(){return qT.Date.now()},GT=HT,KT=/\s/;function XT(e){for(var t=e.length;t--&&KT.test(e.charAt(t)););return t}var VT=XT,YT=VT,ZT=/^\s+/;function JT(e){return e&&e.slice(0,YT(e)+1).replace(ZT,"")}var QT=JT,eE=QT,ql=kt,tE=Kr,Hl=NaN,rE=/^[-+]0x[0-9a-f]+$/i,nE=/^0b[01]+$/i,iE=/^0o[0-7]+$/i,aE=parseInt;function oE(e){if(typeof e=="number")return e;if(tE(e))return Hl;if(ql(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ql(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=eE(e);var r=nE.test(e);return r||iE.test(e)?aE(e.slice(2),r?2:8):rE.test(e)?Hl:+e}var Gh=oE,uE=kt,ko=GT,Gl=Gh,cE="Expected a function",sE=Math.max,lE=Math.min;function fE(e,t,r){var n,i,a,o,u,c,s=0,f=!1,l=!1,d=!0;if(typeof e!="function")throw new TypeError(cE);t=Gl(t)||0,uE(r)&&(f=!!r.leading,l="maxWait"in r,a=l?sE(Gl(r.maxWait)||0,t):a,d="trailing"in r?!!r.trailing:d);function p(m){var O=n,S=i;return n=i=void 0,s=m,o=e.apply(S,O),o}function y(m){return s=m,u=setTimeout(b,t),f?p(m):o}function h(m){var O=m-c,S=m-s,_=t-O;return l?lE(_,a-S):_}function v(m){var O=m-c,S=m-s;return c===void 0||O>=t||O<0||l&&S>=a}function b(){var m=ko();if(v(m))return w(m);u=setTimeout(b,h(m))}function w(m){return u=void 0,d&&n?p(m):(n=i=void 0,o)}function x(){u!==void 0&&clearTimeout(u),s=0,n=c=i=u=void 0}function A(){return u===void 0?o:w(ko())}function g(){var m=ko(),O=v(m);if(n=arguments,i=this,c=m,O){if(u===void 0)return y(c);if(l)return clearTimeout(u),u=setTimeout(b,t),p(c)}return u===void 0&&(u=setTimeout(b,t)),o}return g.cancel=x,g.flush=A,g}var Kh=fE;const DW=ie(Kh);var dE=Kh,pE=kt,hE="Expected a function";function yE(e,t,r){var n=!0,i=!0;if(typeof e!="function")throw new TypeError(hE);return pE(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),dE(e,t,{leading:n,maxWait:t,trailing:i})}var vE=yE;const Xh=ie(vE);function Tn(e){"@babel/helpers - typeof";return Tn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tn(e)}function Kl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function bi(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(C=Xh(C,h,{trailing:!0,leading:!1}));var I=new ResizeObserver(C),M=g.current.getBoundingClientRect(),k=M.width,D=M.height;return $(k,D),I.observe(g.current),function(){I.disconnect()}},[$,h]);var T=L.useMemo(function(){var C=_.containerWidth,I=_.containerHeight;if(C<0||I<0)return null;nt(Vt(o)||Vt(c),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,c),nt(!r||r>0,"The aspect(%s) must be greater than zero.",r);var M=Vt(o)?C:o,k=Vt(c)?I:c;r&&r>0&&(M?k=M/r:k&&(M=k*r),d&&k>d&&(k=d)),nt(M>0||k>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,M,k,o,c,f,l,r);var D=!Array.isArray(p)&>(p.type).endsWith("Chart");return P.Children.map(p,function(B){return P.isValidElement(B)?L.cloneElement(B,bi({width:M,height:k},D?{style:bi({height:"100%",width:"100%",maxHeight:k,maxWidth:M},B.props.style)}:{})):B})},[r,p,c,d,l,f,_,o]);return P.createElement("div",{id:v?"".concat(v):void 0,className:J("recharts-responsive-container",b),style:bi(bi({},A),{},{width:o,height:c,minWidth:f,minHeight:l,maxHeight:d}),ref:g},T)}),Yc=function(t){return null};Yc.displayName="Cell";function En(e){"@babel/helpers - typeof";return En=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},En(e)}function Vl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Au(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||mt.isSsr)return{width:0,height:0};var n=jE(r),i=JSON.stringify({text:t,copyStyle:n});if(fr.widthCache[i])return fr.widthCache[i];try{var a=document.getElementById(Yl);a||(a=document.createElement("span"),a.setAttribute("id",Yl),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=Au(Au({},EE),n);Object.assign(a.style,o),a.textContent="".concat(t);var u=a.getBoundingClientRect(),c={width:u.width,height:u.height};return fr.widthCache[i]=c,++fr.cacheCount>TE&&(fr.cacheCount=0,fr.widthCache={}),c}catch{return{width:0,height:0}}},ME=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function jn(e){"@babel/helpers - typeof";return jn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jn(e)}function qi(e,t){return NE(e)||kE(e,t)||IE(e,t)||CE()}function CE(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IE(e,t){if(e){if(typeof e=="string")return Zl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Zl(e,t)}}function Zl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function VE(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function nf(e,t){return QE(e)||JE(e,t)||ZE(e,t)||YE()}function YE(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ZE(e,t){if(e){if(typeof e=="string")return af(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return af(e,t)}}function af(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[];return M.reduce(function(k,D){var B=D.word,F=D.width,q=k[k.length-1];if(q&&(i==null||a||q.width+F+nD.width?k:D})};if(!f)return p;for(var h="…",v=function(M){var k=l.slice(0,M),D=Jh({breakAll:s,style:c,children:k+h}).wordsWithComputedWidth,B=d(D),F=B.length>o||y(B).width>Number(i);return[F,B]},b=0,w=l.length-1,x=0,A;b<=w&&x<=l.length-1;){var g=Math.floor((b+w)/2),m=g-1,O=v(m),S=nf(O,2),_=S[0],E=S[1],$=v(g),T=nf($,1),C=T[0];if(!_&&!C&&(b=g+1),_&&C&&(w=g-1),!_&&C){A=E;break}x++}return A||p},of=function(t){var r=Q(t)?[]:t.toString().split(Zh);return[{words:r}]},tj=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,u=t.maxLines;if((r||n)&&!mt.isSsr){var c,s,f=Jh({breakAll:o,children:i,style:a});if(f){var l=f.wordsWithComputedWidth,d=f.spaceWidth;c=l,s=d}else return of(i);return ej({breakAll:o,children:i,maxLines:u,style:a},c,s,r,n)}return of(i)},uf="#808080",rr=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,u=o===void 0?"1em":o,c=t.capHeight,s=c===void 0?"0.71em":c,f=t.scaleToFit,l=f===void 0?!1:f,d=t.textAnchor,p=d===void 0?"start":d,y=t.verticalAnchor,h=y===void 0?"end":y,v=t.fill,b=v===void 0?uf:v,w=rf(t,KE),x=L.useMemo(function(){return tj({breakAll:w.breakAll,children:w.children,maxLines:w.maxLines,scaleToFit:l,style:w.style,width:w.width})},[w.breakAll,w.children,w.maxLines,l,w.style,w.width]),A=w.dx,g=w.dy,m=w.angle,O=w.className,S=w.breakAll,_=rf(w,XE);if(!Ae(n)||!Ae(a))return null;var E=n+(R(A)?A:0),$=a+(R(g)?g:0),T;switch(h){case"start":T=No("calc(".concat(s,")"));break;case"middle":T=No("calc(".concat((x.length-1)/2," * -").concat(u," + (").concat(s," / 2))"));break;default:T=No("calc(".concat(x.length-1," * -").concat(u,")"));break}var C=[];if(l){var I=x[0].width,M=w.width;C.push("scale(".concat((R(M)?M/I:1)/I,")"))}return m&&C.push("rotate(".concat(m,", ").concat(E,", ").concat($,")")),C.length&&(_.transform=C.join(" ")),P.createElement("text",Pu({},X(_,!0),{x:E,y:$,className:J("recharts-text",O),textAnchor:p,fill:b.includes("url")?uf:b}),x.map(function(k,D){var B=k.words.join(S?"":" ");return P.createElement("tspan",{x:E,dy:D===0?T:u,key:"".concat(B,"-").concat(D)},B)}))};function Ct(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function rj(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Zc(e){let t,r,n;e.length!==2?(t=Ct,r=(u,c)=>Ct(e(u),c),n=(u,c)=>e(u)-c):(t=e===Ct||e===rj?e:nj,r=e,n=e);function i(u,c,s=0,f=u.length){if(s>>1;r(u[l],c)<0?s=l+1:f=l}while(s>>1;r(u[l],c)<=0?s=l+1:f=l}while(ss&&n(u[l-1],c)>-n(u[l],c)?l-1:l}return{left:i,center:o,right:a}}function nj(){return 0}function Qh(e){return e===null?NaN:+e}function*ij(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const aj=Zc(Ct),li=aj.right;Zc(Qh).center;class cf extends Map{constructor(t,r=cj){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(sf(this,t))}has(t){return super.has(sf(this,t))}set(t,r){return super.set(oj(this,t),r)}delete(t){return super.delete(uj(this,t))}}function sf({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function oj({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function uj({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function cj(e){return e!==null&&typeof e=="object"?e.valueOf():e}function sj(e=Ct){if(e===Ct)return ey;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function ey(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const lj=Math.sqrt(50),fj=Math.sqrt(10),dj=Math.sqrt(2);function Hi(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=lj?10:a>=fj?5:a>=dj?2:1;let u,c,s;return i<0?(s=Math.pow(10,-i)/o,u=Math.round(e*s),c=Math.round(t*s),u/st&&--c,s=-s):(s=Math.pow(10,i)*o,u=Math.round(e/s),c=Math.round(t/s),u*st&&--c),c0))return[];if(e===t)return[e];const n=t=i))return[];const u=a-i+1,c=new Array(u);if(n)if(o<0)for(let s=0;s=n)&&(r=n);return r}function ff(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function ty(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?ey:sj(i);n>r;){if(n-r>600){const c=n-r+1,s=t-r+1,f=Math.log(c),l=.5*Math.exp(2*f/3),d=.5*Math.sqrt(f*l*(c-l)/c)*(s-c/2<0?-1:1),p=Math.max(r,Math.floor(t-s*l/c+d)),y=Math.min(n,Math.floor(t+(c-s)*l/c+d));ty(e,t,p,y,i)}const a=e[t];let o=r,u=n;for(sn(e,r,t),i(e[n],a)>0&&sn(e,r,n);o0;)--u}i(e[r],a)===0?sn(e,r,u):(++u,sn(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function sn(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function pj(e,t,r){if(e=Float64Array.from(ij(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return ff(e);if(t>=1)return lf(e);var n,i=(n-1)*t,a=Math.floor(i),o=lf(ty(e,a).subarray(0,a+1)),u=ff(e.subarray(a+1));return o+(u-o)*(i-a)}}function hj(e,t,r=Qh){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),u=+r(e[a+1],a+1,e);return o+(u-o)*(i-a)}}function yj(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?wi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?wi(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=gj.exec(e))?new Le(t[1],t[2],t[3],1):(t=mj.exec(e))?new Le(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=bj.exec(e))?wi(t[1],t[2],t[3],t[4]):(t=xj.exec(e))?wi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=wj.exec(e))?mf(t[1],t[2]/100,t[3]/100,1):(t=Oj.exec(e))?mf(t[1],t[2]/100,t[3]/100,t[4]):df.hasOwnProperty(e)?yf(df[e]):e==="transparent"?new Le(NaN,NaN,NaN,0):null}function yf(e){return new Le(e>>16&255,e>>8&255,e&255,1)}function wi(e,t,r,n){return n<=0&&(e=t=r=NaN),new Le(e,t,r,n)}function Sj(e){return e instanceof fi||(e=kn(e)),e?(e=e.rgb(),new Le(e.r,e.g,e.b,e.opacity)):new Le}function Eu(e,t,r,n){return arguments.length===1?Sj(e):new Le(e,t,r,n??1)}function Le(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}Qc(Le,Eu,ny(fi,{brighter(e){return e=e==null?Gi:Math.pow(Gi,e),new Le(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Cn:Math.pow(Cn,e),new Le(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Le(Qt(this.r),Qt(this.g),Qt(this.b),Ki(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vf,formatHex:vf,formatHex8:_j,formatRgb:gf,toString:gf}));function vf(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}`}function _j(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}${Yt((isNaN(this.opacity)?1:this.opacity)*255)}`}function gf(){const e=Ki(this.opacity);return`${e===1?"rgb(":"rgba("}${Qt(this.r)}, ${Qt(this.g)}, ${Qt(this.b)}${e===1?")":`, ${e})`}`}function Ki(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Qt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yt(e){return e=Qt(e),(e<16?"0":"")+e.toString(16)}function mf(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new rt(e,t,r,n)}function iy(e){if(e instanceof rt)return new rt(e.h,e.s,e.l,e.opacity);if(e instanceof fi||(e=kn(e)),!e)return new rt;if(e instanceof rt)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,u=a-i,c=(a+i)/2;return u?(t===a?o=(r-n)/u+(r0&&c<1?0:o,new rt(o,u,c,e.opacity)}function $j(e,t,r,n){return arguments.length===1?iy(e):new rt(e,t,r,n??1)}function rt(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}Qc(rt,$j,ny(fi,{brighter(e){return e=e==null?Gi:Math.pow(Gi,e),new rt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Cn:Math.pow(Cn,e),new rt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new Le(Do(e>=240?e-240:e+120,i,n),Do(e,i,n),Do(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new rt(bf(this.h),Oi(this.s),Oi(this.l),Ki(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ki(this.opacity);return`${e===1?"hsl(":"hsla("}${bf(this.h)}, ${Oi(this.s)*100}%, ${Oi(this.l)*100}%${e===1?")":`, ${e})`}`}}));function bf(e){return e=(e||0)%360,e<0?e+360:e}function Oi(e){return Math.max(0,Math.min(1,e||0))}function Do(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const es=e=>()=>e;function Tj(e,t){return function(r){return e+r*t}}function Ej(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function jj(e){return(e=+e)==1?ay:function(t,r){return r-t?Ej(t,r,e):es(isNaN(t)?r:t)}}function ay(e,t){var r=t-e;return r?Tj(e,r):es(isNaN(e)?t:e)}const xf=function e(t){var r=jj(t);function n(i,a){var o=r((i=Eu(i)).r,(a=Eu(a)).r),u=r(i.g,a.g),c=r(i.b,a.b),s=ay(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=u(f),i.b=c(f),i.opacity=s(f),i+""}}return n.gamma=e,n}(1);function Mj(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;ir&&(a=t.slice(r,a),u[o]?u[o]+=a:u[++o]=a),(n=n[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,c.push({i:o,x:Xi(n,i)})),r=Ro.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function zj(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i2?Uj:zj,c=s=null,l}function l(d){return d==null||isNaN(d=+d)?a:(c||(c=u(e.map(n),t,r)))(n(o(d)))}return l.invert=function(d){return o(i((s||(s=u(t,e.map(n),Xi)))(d)))},l.domain=function(d){return arguments.length?(e=Array.from(d,Vi),f()):e.slice()},l.range=function(d){return arguments.length?(t=Array.from(d),f()):t.slice()},l.rangeRound=function(d){return t=Array.from(d),r=ts,f()},l.clamp=function(d){return arguments.length?(o=d?!0:Ne,f()):o!==Ne},l.interpolate=function(d){return arguments.length?(r=d,f()):r},l.unknown=function(d){return arguments.length?(a=d,l):a},function(d,p){return n=d,i=p,f()}}function rs(){return Za()(Ne,Ne)}function qj(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Yi(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function Tr(e){return e=Yi(Math.abs(e)),e?e[1]:NaN}function Hj(e,t){return function(r,n){for(var i=r.length,a=[],o=0,u=e[0],c=0;i>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),a.push(r.substring(i-=u,i+u)),!((c+=u+1)>n));)u=e[o=(o+1)%e.length];return a.reverse().join(t)}}function Gj(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var Kj=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Nn(e){if(!(t=Kj.exec(e)))throw new Error("invalid format: "+e);var t;return new ns({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Nn.prototype=ns.prototype;function ns(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}ns.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Xj(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var oy;function Vj(e,t){var r=Yi(e,t);if(!r)return e+"";var n=r[0],i=r[1],a=i-(oy=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Yi(e,Math.max(0,t+a-1))[0]}function Of(e,t){var r=Yi(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Af={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:qj,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Of(e*100,t),r:Of,s:Vj,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Pf(e){return e}var Sf=Array.prototype.map,_f=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Yj(e){var t=e.grouping===void 0||e.thousands===void 0?Pf:Hj(Sf.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Pf:Gj(Sf.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function s(l){l=Nn(l);var d=l.fill,p=l.align,y=l.sign,h=l.symbol,v=l.zero,b=l.width,w=l.comma,x=l.precision,A=l.trim,g=l.type;g==="n"?(w=!0,g="g"):Af[g]||(x===void 0&&(x=12),A=!0,g="g"),(v||d==="0"&&p==="=")&&(v=!0,d="0",p="=");var m=h==="$"?r:h==="#"&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",O=h==="$"?n:/[%p]/.test(g)?o:"",S=Af[g],_=/[defgprs%]/.test(g);x=x===void 0?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x));function E($){var T=m,C=O,I,M,k;if(g==="c")C=S($)+C,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?c:S(Math.abs($),x),A&&($=Xj($)),D&&+$==0&&y!=="+"&&(D=!1),T=(D?y==="("?y:u:y==="-"||y==="("?"":y)+T,C=(g==="s"?_f[8+oy/3]:"")+C+(D&&y==="("?")":""),_){for(I=-1,M=$.length;++Ik||k>57){C=(k===46?i+$.slice(I+1):$.slice(I))+C,$=$.slice(0,I);break}}}w&&!v&&($=t($,1/0));var B=T.length+$.length+C.length,F=B>1)+T+$+C+F.slice(B);break;default:$=F+T+$+C;break}return a($)}return E.toString=function(){return l+""},E}function f(l,d){var p=s((l=Nn(l),l.type="f",l)),y=Math.max(-8,Math.min(8,Math.floor(Tr(d)/3)))*3,h=Math.pow(10,-y),v=_f[8+y/3];return function(b){return p(h*b)+v}}return{format:s,formatPrefix:f}}var Ai,is,uy;Zj({thousands:",",grouping:[3],currency:["$",""]});function Zj(e){return Ai=Yj(e),is=Ai.format,uy=Ai.formatPrefix,Ai}function Jj(e){return Math.max(0,-Tr(Math.abs(e)))}function Qj(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Tr(t)/3)))*3-Tr(Math.abs(e)))}function eM(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Tr(t)-Tr(e))+1}function cy(e,t,r,n){var i=$u(e,t,r),a;switch(n=Nn(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=Qj(i,o))&&(n.precision=a),uy(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=eM(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=Jj(i))&&(n.precision=a-(n.type==="%")*2);break}}return is(n)}function Nt(e){var t=e.domain;return e.ticks=function(r){var n=t();return Su(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return cy(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],u=n[a],c,s,f=10;for(u0;){if(s=_u(o,u,r),s===c)return n[i]=o,n[a]=u,t(n);if(s>0)o=Math.floor(o/s)*s,u=Math.ceil(u/s)*s;else if(s<0)o=Math.ceil(o*s)/s,u=Math.floor(u*s)/s;else break;c=s}return e},e}function Zi(){var e=rs();return e.copy=function(){return di(e,Zi())},Je.apply(e,arguments),Nt(e)}function sy(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Vi),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return sy(e).unknown(t)},e=arguments.length?Array.from(e,Vi):[0,1],Nt(r)}function ly(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return aMath.pow(e,t)}function aM(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Ef(e){return(t,r)=>-e(-t,r)}function as(e){const t=e($f,Tf),r=t.domain;let n=10,i,a;function o(){return i=aM(n),a=iM(n),r()[0]<0?(i=Ef(i),a=Ef(a),e(tM,rM)):e($f,Tf),t}return t.base=function(u){return arguments.length?(n=+u,o()):n},t.domain=function(u){return arguments.length?(r(u),o()):r()},t.ticks=u=>{const c=r();let s=c[0],f=c[c.length-1];const l=f0){for(;d<=p;++d)for(y=1;yf)break;b.push(h)}}else for(;d<=p;++d)for(y=n-1;y>=1;--y)if(h=d>0?y/a(-d):y*a(d),!(hf)break;b.push(h)}b.length*2{if(u==null&&(u=10),c==null&&(c=n===10?"s":","),typeof c!="function"&&(!(n%1)&&(c=Nn(c)).precision==null&&(c.trim=!0),c=is(c)),u===1/0)return c;const s=Math.max(1,n*u/t.ticks().length);return f=>{let l=f/a(Math.round(i(f)));return l*nr(ly(r(),{floor:u=>a(Math.floor(i(u))),ceil:u=>a(Math.ceil(i(u)))})),t}function fy(){const e=as(Za()).domain([1,10]);return e.copy=()=>di(e,fy()).base(e.base()),Je.apply(e,arguments),e}function jf(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Mf(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function os(e){var t=1,r=e(jf(t),Mf(t));return r.constant=function(n){return arguments.length?e(jf(t=+n),Mf(t)):t},Nt(r)}function dy(){var e=os(Za());return e.copy=function(){return di(e,dy()).constant(e.constant())},Je.apply(e,arguments)}function Cf(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function oM(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function uM(e){return e<0?-e*e:e*e}function us(e){var t=e(Ne,Ne),r=1;function n(){return r===1?e(Ne,Ne):r===.5?e(oM,uM):e(Cf(r),Cf(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},Nt(t)}function cs(){var e=us(Za());return e.copy=function(){return di(e,cs()).exponent(e.exponent())},Je.apply(e,arguments),e}function cM(){return cs.apply(null,arguments).exponent(.5)}function If(e){return Math.sign(e)*e*e}function sM(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function py(){var e=rs(),t=[0,1],r=!1,n;function i(a){var o=sM(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(If(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,Vi)).map(If)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return py(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Je.apply(i,arguments),Nt(i)}function hy(){var e=[],t=[],r=[],n;function i(){var o=0,u=Math.max(1,t.length);for(r=new Array(u-1);++o0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[s-1],n[s]]},o.unknown=function(c){return arguments.length&&(a=c),o},o.thresholds=function(){return n.slice()},o.copy=function(){return yy().domain([e,t]).range(i).unknown(a)},Je.apply(Nt(o),arguments)}function vy(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[li(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return vy().domain(e).range(t).unknown(r)},Je.apply(i,arguments)}const Lo=new Date,Bo=new Date;function Pe(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),u=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,u)=>{const c=[];if(a=i.ceil(a),u=u==null?1:Math.floor(u),!(a0))return c;let s;do c.push(s=new Date(+a)),t(a,u),e(a);while(sPe(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;t(o,-1),!a(o););else for(;--u>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(Lo.setTime(+a),Bo.setTime(+o),e(Lo),e(Bo),Math.floor(r(Lo,Bo))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Ji=Pe(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Ji.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Pe(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Ji);Ji.range;const ht=1e3,Xe=ht*60,yt=Xe*60,xt=yt*24,ss=xt*7,kf=xt*30,Fo=xt*365,Zt=Pe(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*ht)},(e,t)=>(t-e)/ht,e=>e.getUTCSeconds());Zt.range;const ls=Pe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ht)},(e,t)=>{e.setTime(+e+t*Xe)},(e,t)=>(t-e)/Xe,e=>e.getMinutes());ls.range;const fs=Pe(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Xe)},(e,t)=>(t-e)/Xe,e=>e.getUTCMinutes());fs.range;const ds=Pe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ht-e.getMinutes()*Xe)},(e,t)=>{e.setTime(+e+t*yt)},(e,t)=>(t-e)/yt,e=>e.getHours());ds.range;const ps=Pe(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*yt)},(e,t)=>(t-e)/yt,e=>e.getUTCHours());ps.range;const pi=Pe(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Xe)/xt,e=>e.getDate()-1);pi.range;const Ja=Pe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/xt,e=>e.getUTCDate()-1);Ja.range;const gy=Pe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/xt,e=>Math.floor(e/xt));gy.range;function ur(e){return Pe(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Xe)/ss)}const Qa=ur(0),Qi=ur(1),lM=ur(2),fM=ur(3),Er=ur(4),dM=ur(5),pM=ur(6);Qa.range;Qi.range;lM.range;fM.range;Er.range;dM.range;pM.range;function cr(e){return Pe(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/ss)}const eo=cr(0),ea=cr(1),hM=cr(2),yM=cr(3),jr=cr(4),vM=cr(5),gM=cr(6);eo.range;ea.range;hM.range;yM.range;jr.range;vM.range;gM.range;const hs=Pe(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());hs.range;const ys=Pe(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());ys.range;const wt=Pe(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());wt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pe(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});wt.range;const Ot=Pe(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());Ot.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Pe(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});Ot.range;function my(e,t,r,n,i,a){const o=[[Zt,1,ht],[Zt,5,5*ht],[Zt,15,15*ht],[Zt,30,30*ht],[a,1,Xe],[a,5,5*Xe],[a,15,15*Xe],[a,30,30*Xe],[i,1,yt],[i,3,3*yt],[i,6,6*yt],[i,12,12*yt],[n,1,xt],[n,2,2*xt],[r,1,ss],[t,1,kf],[t,3,3*kf],[e,1,Fo]];function u(s,f,l){const d=fv).right(o,d);if(p===o.length)return e.every($u(s/Fo,f/Fo,l));if(p===0)return Ji.every(Math.max($u(s,f,l),1));const[y,h]=o[d/o[p-1][2]53)return null;"w"in N||(N.w=1),"Z"in N?(ee=zo(ln(N.y,0,1)),xe=ee.getUTCDay(),ee=xe>4||xe===0?ea.ceil(ee):ea(ee),ee=Ja.offset(ee,(N.V-1)*7),N.y=ee.getUTCFullYear(),N.m=ee.getUTCMonth(),N.d=ee.getUTCDate()+(N.w+6)%7):(ee=Wo(ln(N.y,0,1)),xe=ee.getDay(),ee=xe>4||xe===0?Qi.ceil(ee):Qi(ee),ee=pi.offset(ee,(N.V-1)*7),N.y=ee.getFullYear(),N.m=ee.getMonth(),N.d=ee.getDate()+(N.w+6)%7)}else("W"in N||"U"in N)&&("w"in N||(N.w="u"in N?N.u%7:"W"in N?1:0),xe="Z"in N?zo(ln(N.y,0,1)).getUTCDay():Wo(ln(N.y,0,1)).getDay(),N.m=0,N.d="W"in N?(N.w+6)%7+N.W*7-(xe+5)%7:N.w+N.U*7-(xe+6)%7);return"Z"in N?(N.H+=N.Z/100|0,N.M+=N.Z%100,zo(N)):Wo(N)}}function S(W,Y,Z,N){for(var ye=0,ee=Y.length,xe=Z.length,we,Re;ye=xe)return-1;if(we=Y.charCodeAt(ye++),we===37){if(we=Y.charAt(ye++),Re=g[we in Nf?Y.charAt(ye++):we],!Re||(N=Re(W,Z,N))<0)return-1}else if(we!=Z.charCodeAt(N++))return-1}return N}function _(W,Y,Z){var N=s.exec(Y.slice(Z));return N?(W.p=f.get(N[0].toLowerCase()),Z+N[0].length):-1}function E(W,Y,Z){var N=p.exec(Y.slice(Z));return N?(W.w=y.get(N[0].toLowerCase()),Z+N[0].length):-1}function $(W,Y,Z){var N=l.exec(Y.slice(Z));return N?(W.w=d.get(N[0].toLowerCase()),Z+N[0].length):-1}function T(W,Y,Z){var N=b.exec(Y.slice(Z));return N?(W.m=w.get(N[0].toLowerCase()),Z+N[0].length):-1}function C(W,Y,Z){var N=h.exec(Y.slice(Z));return N?(W.m=v.get(N[0].toLowerCase()),Z+N[0].length):-1}function I(W,Y,Z){return S(W,t,Y,Z)}function M(W,Y,Z){return S(W,r,Y,Z)}function k(W,Y,Z){return S(W,n,Y,Z)}function D(W){return o[W.getDay()]}function B(W){return a[W.getDay()]}function F(W){return c[W.getMonth()]}function q(W){return u[W.getMonth()]}function G(W){return i[+(W.getHours()>=12)]}function z(W){return 1+~~(W.getMonth()/3)}function K(W){return o[W.getUTCDay()]}function fe(W){return a[W.getUTCDay()]}function ge(W){return c[W.getUTCMonth()]}function Fe(W){return u[W.getUTCMonth()]}function Bt(W){return i[+(W.getUTCHours()>=12)]}function De(W){return 1+~~(W.getUTCMonth()/3)}return{format:function(W){var Y=m(W+="",x);return Y.toString=function(){return W},Y},parse:function(W){var Y=O(W+="",!1);return Y.toString=function(){return W},Y},utcFormat:function(W){var Y=m(W+="",A);return Y.toString=function(){return W},Y},utcParse:function(W){var Y=O(W+="",!0);return Y.toString=function(){return W},Y}}}var Nf={"-":"",_:" ",0:"0"},$e=/^\s*\d+/,AM=/^%/,PM=/[\\^$*+?|[\]().{}]/g;function te(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function _M(e,t,r){var n=$e.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function $M(e,t,r){var n=$e.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function TM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function EM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function jM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function Df(e,t,r){var n=$e.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function Rf(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function MM(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function CM(e,t,r){var n=$e.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function IM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function Lf(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function kM(e,t,r){var n=$e.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function Bf(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function NM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function DM(e,t,r){var n=$e.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function RM(e,t,r){var n=$e.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function LM(e,t,r){var n=$e.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function BM(e,t,r){var n=AM.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function FM(e,t,r){var n=$e.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function WM(e,t,r){var n=$e.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function Ff(e,t){return te(e.getDate(),t,2)}function zM(e,t){return te(e.getHours(),t,2)}function UM(e,t){return te(e.getHours()%12||12,t,2)}function qM(e,t){return te(1+pi.count(wt(e),e),t,3)}function by(e,t){return te(e.getMilliseconds(),t,3)}function HM(e,t){return by(e,t)+"000"}function GM(e,t){return te(e.getMonth()+1,t,2)}function KM(e,t){return te(e.getMinutes(),t,2)}function XM(e,t){return te(e.getSeconds(),t,2)}function VM(e){var t=e.getDay();return t===0?7:t}function YM(e,t){return te(Qa.count(wt(e)-1,e),t,2)}function xy(e){var t=e.getDay();return t>=4||t===0?Er(e):Er.ceil(e)}function ZM(e,t){return e=xy(e),te(Er.count(wt(e),e)+(wt(e).getDay()===4),t,2)}function JM(e){return e.getDay()}function QM(e,t){return te(Qi.count(wt(e)-1,e),t,2)}function eC(e,t){return te(e.getFullYear()%100,t,2)}function tC(e,t){return e=xy(e),te(e.getFullYear()%100,t,2)}function rC(e,t){return te(e.getFullYear()%1e4,t,4)}function nC(e,t){var r=e.getDay();return e=r>=4||r===0?Er(e):Er.ceil(e),te(e.getFullYear()%1e4,t,4)}function iC(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+te(t/60|0,"0",2)+te(t%60,"0",2)}function Wf(e,t){return te(e.getUTCDate(),t,2)}function aC(e,t){return te(e.getUTCHours(),t,2)}function oC(e,t){return te(e.getUTCHours()%12||12,t,2)}function uC(e,t){return te(1+Ja.count(Ot(e),e),t,3)}function wy(e,t){return te(e.getUTCMilliseconds(),t,3)}function cC(e,t){return wy(e,t)+"000"}function sC(e,t){return te(e.getUTCMonth()+1,t,2)}function lC(e,t){return te(e.getUTCMinutes(),t,2)}function fC(e,t){return te(e.getUTCSeconds(),t,2)}function dC(e){var t=e.getUTCDay();return t===0?7:t}function pC(e,t){return te(eo.count(Ot(e)-1,e),t,2)}function Oy(e){var t=e.getUTCDay();return t>=4||t===0?jr(e):jr.ceil(e)}function hC(e,t){return e=Oy(e),te(jr.count(Ot(e),e)+(Ot(e).getUTCDay()===4),t,2)}function yC(e){return e.getUTCDay()}function vC(e,t){return te(ea.count(Ot(e)-1,e),t,2)}function gC(e,t){return te(e.getUTCFullYear()%100,t,2)}function mC(e,t){return e=Oy(e),te(e.getUTCFullYear()%100,t,2)}function bC(e,t){return te(e.getUTCFullYear()%1e4,t,4)}function xC(e,t){var r=e.getUTCDay();return e=r>=4||r===0?jr(e):jr.ceil(e),te(e.getUTCFullYear()%1e4,t,4)}function wC(){return"+0000"}function zf(){return"%"}function Uf(e){return+e}function qf(e){return Math.floor(+e/1e3)}var dr,Ay,Py;OC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function OC(e){return dr=OM(e),Ay=dr.format,dr.parse,Py=dr.utcFormat,dr.utcParse,dr}function AC(e){return new Date(e)}function PC(e){return e instanceof Date?+e:+new Date(+e)}function vs(e,t,r,n,i,a,o,u,c,s){var f=rs(),l=f.invert,d=f.domain,p=s(".%L"),y=s(":%S"),h=s("%I:%M"),v=s("%I %p"),b=s("%a %d"),w=s("%b %d"),x=s("%B"),A=s("%Y");function g(m){return(c(m)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>pj(e,a/n))},r.copy=function(){return Ty(t).domain(e)},_t.apply(r,arguments)}function ro(){var e=0,t=.5,r=1,n=1,i,a,o,u,c,s=Ne,f,l=!1,d;function p(h){return isNaN(h=+h)?d:(h=.5+((h=+f(h))-a)*(n*ht}var Cy=MC,CC=no,IC=Cy,kC=en;function NC(e){return e&&e.length?CC(e,kC,IC):void 0}var DC=NC;const io=ie(DC);function RC(e,t){return ee.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=ne.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};U.decimalPlaces=U.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*pe;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};U.dividedBy=U.div=function(e){return bt(this,new this.constructor(e))};U.dividedToIntegerBy=U.idiv=function(e){var t=this,r=t.constructor;return ue(bt(t,new r(e),0,1),r.precision)};U.equals=U.eq=function(e){return!this.cmp(e)};U.exponent=function(){return be(this)};U.greaterThan=U.gt=function(e){return this.cmp(e)>0};U.greaterThanOrEqualTo=U.gte=function(e){return this.cmp(e)>=0};U.isInteger=U.isint=function(){return this.e>this.d.length-2};U.isNegative=U.isneg=function(){return this.s<0};U.isPositive=U.ispos=function(){return this.s>0};U.isZero=function(){return this.s===0};U.lessThan=U.lt=function(e){return this.cmp(e)<0};U.lessThanOrEqualTo=U.lte=function(e){return this.cmp(e)<1};U.logarithm=U.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(Ue))throw Error(Ye+"NaN");if(r.s<1)throw Error(Ye+(r.s?"NaN":"-Infinity"));return r.eq(Ue)?new n(0):(he=!1,t=bt(Dn(r,a),Dn(e,a),a),he=!0,ue(t,i))};U.minus=U.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Ry(t,e):Ny(t,(e.s=-e.s,e))};U.modulo=U.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Ye+"NaN");return r.s?(he=!1,t=bt(r,e,0,1).times(e),he=!0,r.minus(t)):ue(new n(r),i)};U.naturalExponential=U.exp=function(){return Dy(this)};U.naturalLogarithm=U.ln=function(){return Dn(this)};U.negated=U.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};U.plus=U.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Ny(t,e):Ry(t,(e.s=-e.s,e))};U.precision=U.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(er+e);if(t=be(i)+1,n=i.d.length-1,r=n*pe+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};U.squareRoot=U.sqrt=function(){var e,t,r,n,i,a,o,u=this,c=u.constructor;if(u.s<1){if(!u.s)return new c(0);throw Error(Ye+"NaN")}for(e=be(u),he=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=at(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=nn((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new c(t)):n=new c(i.toString()),r=c.precision,i=o=r+3;;)if(a=n,n=a.plus(bt(u,a,o+2)).times(.5),at(a.d).slice(0,o)===(t=at(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(ue(a,r+1,0),a.times(a).eq(u)){n=a;break}}else if(t!="9999")break;o+=4}return he=!0,ue(n,r)};U.times=U.mul=function(e){var t,r,n,i,a,o,u,c,s,f=this,l=f.constructor,d=f.d,p=(e=new l(e)).d;if(!f.s||!e.s)return new l(0);for(e.s*=f.s,r=f.e+e.e,c=d.length,s=p.length,c=0;){for(t=0,i=c+n;i>n;)u=a[i]+p[n]*d[i-n-1]+t,a[i--]=u%Se|0,t=u/Se|0;a[i]=(a[i]+t)%Se|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,he?ue(e,l.precision):e};U.toDecimalPlaces=U.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ct(e,0,rn),t===void 0?t=n.rounding:ct(t,0,8),ue(r,e+be(r)+1,t))};U.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=nr(n,!0):(ct(e,0,rn),t===void 0?t=i.rounding:ct(t,0,8),n=ue(new i(n),e+1,t),r=nr(n,!0,e+1)),r};U.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?nr(i):(ct(e,0,rn),t===void 0?t=a.rounding:ct(t,0,8),n=ue(new a(i),e+be(i)+1,t),r=nr(n.abs(),!1,e+be(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};U.toInteger=U.toint=function(){var e=this,t=e.constructor;return ue(new t(e),be(e)+1,t.rounding)};U.toNumber=function(){return+this};U.toPower=U.pow=function(e){var t,r,n,i,a,o,u=this,c=u.constructor,s=12,f=+(e=new c(e));if(!e.s)return new c(Ue);if(u=new c(u),!u.s){if(e.s<1)throw Error(Ye+"Infinity");return u}if(u.eq(Ue))return u;if(n=c.precision,e.eq(Ue))return ue(u,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=u.s,o){if((r=f<0?-f:f)<=ky){for(i=new c(Ue),t=Math.ceil(n/pe+4),he=!1;r%2&&(i=i.times(u),Kf(i.d,t)),r=nn(r/2),r!==0;)u=u.times(u),Kf(u.d,t);return he=!0,e.s<0?new c(Ue).div(i):ue(i,n)}}else if(a<0)throw Error(Ye+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,he=!1,i=e.times(Dn(u,n+s)),he=!0,i=Dy(i),i.s=a,i};U.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=be(i),n=nr(i,r<=a.toExpNeg||r>=a.toExpPos)):(ct(e,1,rn),t===void 0?t=a.rounding:ct(t,0,8),i=ue(new a(i),e,t),r=be(i),n=nr(i,e<=r||r<=a.toExpNeg,e)),n};U.toSignificantDigits=U.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ct(e,1,rn),t===void 0?t=n.rounding:ct(t,0,8)),ue(new n(r),e,t)};U.toString=U.valueOf=U.val=U.toJSON=U[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=be(e),r=e.constructor;return nr(e,t<=r.toExpNeg||t>=r.toExpPos)};function Ny(e,t){var r,n,i,a,o,u,c,s,f=e.constructor,l=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),he?ue(t,l):t;if(c=e.d,s=t.d,o=e.e,i=t.e,c=c.slice(),a=o-i,a){for(a<0?(n=c,a=-a,u=s.length):(n=s,i=o,u=c.length),o=Math.ceil(l/pe),u=o>u?o+1:u+1,a>u&&(a=u,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(u=c.length,a=s.length,u-a<0&&(a=u,n=s,s=c,c=n),r=0;a;)r=(c[--a]=c[a]+s[a]+r)/Se|0,c[a]%=Se;for(r&&(c.unshift(r),++i),u=c.length;c[--u]==0;)c.pop();return t.d=c,t.e=i,he?ue(t,l):t}function ct(e,t,r){if(e!==~~e||er)throw Error(er+e)}function at(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(u=c=0;ui[u]?1:-1;break}return c}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]1;)n.shift()}return function(n,i,a,o){var u,c,s,f,l,d,p,y,h,v,b,w,x,A,g,m,O,S,_=n.constructor,E=n.s==i.s?1:-1,$=n.d,T=i.d;if(!n.s)return new _(n);if(!i.s)throw Error(Ye+"Division by zero");for(c=n.e-i.e,O=T.length,g=$.length,p=new _(E),y=p.d=[],s=0;T[s]==($[s]||0);)++s;if(T[s]>($[s]||0)&&--c,a==null?w=a=_.precision:o?w=a+(be(n)-be(i))+1:w=a,w<0)return new _(0);if(w=w/pe+2|0,s=0,O==1)for(f=0,T=T[0],w++;(s1&&(T=e(T,f),$=e($,f),O=T.length,g=$.length),A=O,h=$.slice(0,O),v=h.length;v=Se/2&&++m;do f=0,u=t(T,h,O,v),u<0?(b=h[0],O!=v&&(b=b*Se+(h[1]||0)),f=b/m|0,f>1?(f>=Se&&(f=Se-1),l=e(T,f),d=l.length,v=h.length,u=t(l,h,d,v),u==1&&(f--,r(l,O16)throw Error(bs+be(e));if(!e.s)return new f(Ue);for(t==null?(he=!1,u=l):u=t,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),s+=5;for(n=Math.log(Kt(2,s))/Math.LN10*2+5|0,u+=n,r=i=a=new f(Ue),f.precision=u;;){if(i=ue(i.times(e),u),r=r.times(++c),o=a.plus(bt(i,r,u)),at(o.d).slice(0,u)===at(a.d).slice(0,u)){for(;s--;)a=ue(a.times(a),u);return f.precision=l,t==null?(he=!0,ue(a,l)):a}a=o}}function be(e){for(var t=e.e*pe,r=e.d[0];r>=10;r/=10)t++;return t}function Uo(e,t,r){if(t>e.LN10.sd())throw he=!0,r&&(e.precision=r),Error(Ye+"LN10 precision limit exceeded");return ue(new e(e.LN10),t)}function Et(e){for(var t="";e--;)t+="0";return t}function Dn(e,t){var r,n,i,a,o,u,c,s,f,l=1,d=10,p=e,y=p.d,h=p.constructor,v=h.precision;if(p.s<1)throw Error(Ye+(p.s?"NaN":"-Infinity"));if(p.eq(Ue))return new h(0);if(t==null?(he=!1,s=v):s=t,p.eq(10))return t==null&&(he=!0),Uo(h,s);if(s+=d,h.precision=s,r=at(y),n=r.charAt(0),a=be(p),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)p=p.times(e),r=at(p.d),n=r.charAt(0),l++;a=be(p),n>1?(p=new h("0."+r),a++):p=new h(n+"."+r.slice(1))}else return c=Uo(h,s+2,v).times(a+""),p=Dn(new h(n+"."+r.slice(1)),s-d).plus(c),h.precision=v,t==null?(he=!0,ue(p,v)):p;for(u=o=p=bt(p.minus(Ue),p.plus(Ue),s),f=ue(p.times(p),s),i=3;;){if(o=ue(o.times(f),s),c=u.plus(bt(o,new h(i),s)),at(c.d).slice(0,s)===at(u.d).slice(0,s))return u=u.times(2),a!==0&&(u=u.plus(Uo(h,s+2,v).times(a+""))),u=bt(u,new h(l),s),h.precision=v,t==null?(he=!0,ue(u,v)):u;u=c,i+=2}}function Gf(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=nn(r/pe),e.d=[],n=(r+1)%pe,r<0&&(n+=pe),nta||e.e<-ta))throw Error(bs+r)}else e.s=0,e.e=0,e.d=[0];return e}function ue(e,t,r){var n,i,a,o,u,c,s,f,l=e.d;for(o=1,a=l[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=pe,i=t,s=l[f=0];else{if(f=Math.ceil((n+1)/pe),a=l.length,f>=a)return e;for(s=a=l[f],o=1;a>=10;a/=10)o++;n%=pe,i=n-pe+o}if(r!==void 0&&(a=Kt(10,o-i-1),u=s/a%10|0,c=t<0||l[f+1]!==void 0||s%a,c=r<4?(u||c)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||c||r==6&&(n>0?i>0?s/Kt(10,o-i):0:l[f-1])%10&1||r==(e.s<0?8:7))),t<1||!l[0])return c?(a=be(e),l.length=1,t=t-a-1,l[0]=Kt(10,(pe-t%pe)%pe),e.e=nn(-t/pe)||0):(l.length=1,l[0]=e.e=e.s=0),e;if(n==0?(l.length=f,a=1,f--):(l.length=f+1,a=Kt(10,pe-n),l[f]=i>0?(s/Kt(10,o-i)%Kt(10,i)|0)*a:0),c)for(;;)if(f==0){(l[0]+=a)==Se&&(l[0]=1,++e.e);break}else{if(l[f]+=a,l[f]!=Se)break;l[f--]=0,a=1}for(n=l.length;l[--n]===0;)l.pop();if(he&&(e.e>ta||e.e<-ta))throw Error(bs+be(e));return e}function Ry(e,t){var r,n,i,a,o,u,c,s,f,l,d=e.constructor,p=d.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new d(e),he?ue(t,p):t;if(c=e.d,l=t.d,n=t.e,s=e.e,c=c.slice(),o=s-n,o){for(f=o<0,f?(r=c,o=-o,u=l.length):(r=l,n=s,u=c.length),i=Math.max(Math.ceil(p/pe),u)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=c.length,u=l.length,f=i0;--i)c[u++]=0;for(i=l.length;i>o;){if(c[--i]0?a=a.charAt(0)+"."+a.slice(1)+Et(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Et(-i-1)+a,r&&(n=r-o)>0&&(a+=Et(n))):i>=o?(a+=Et(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+Et(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=Et(n))),e.s<0?"-"+a:a}function Kf(e,t){if(e.length>t)return e.length=t,!0}function Ly(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(er+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return Gf(o,a.toString())}else if(typeof a!="string")throw Error(er+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,iI.test(a))Gf(o,a);else throw Error(er+a)}if(i.prototype=U,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=Ly,i.config=i.set=aI,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(er+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(er+r+": "+n);return this}var xs=Ly(nI);Ue=new xs(1);const oe=xs;function oI(e){return lI(e)||sI(e)||cI(e)||uI()}function uI(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cI(e,t){if(e){if(typeof e=="string")return Cu(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Cu(e,t)}}function sI(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function lI(e){if(Array.isArray(e))return Cu(e)}function Cu(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t?r.apply(void 0,i):e(t-o,Xf(function(){for(var u=arguments.length,c=new Array(u),s=0;se.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),u;!(n=(u=o.next()).done)&&(r.push(u.value),!(t&&r.length===t));n=!0);}catch(c){i=!0,a=c}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function SI(e){if(Array.isArray(e))return e}function Uy(e){var t=Rn(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function qy(e,t,r){if(e.lte(0))return new oe(0);var n=co.getDigitCount(e.toNumber()),i=new oe(10).pow(n),a=e.div(i),o=n!==1?.05:.1,u=new oe(Math.ceil(a.div(o).toNumber())).add(r).mul(o),c=u.mul(i);return t?c:new oe(Math.ceil(c))}function _I(e,t,r){var n=1,i=new oe(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new oe(10).pow(co.getDigitCount(e)-1),i=new oe(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new oe(Math.floor(e)))}else e===0?i=new oe(Math.floor((t-1)/2)):r||(i=new oe(Math.floor(e)));var o=Math.floor((t-1)/2),u=hI(pI(function(c){return i.add(new oe(c-o).mul(n)).toNumber()}),Iu);return u(0,t)}function Hy(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new oe(0),tickMin:new oe(0),tickMax:new oe(0)};var a=qy(new oe(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new oe(0):(o=new oe(e).add(t).div(2),o=o.sub(new oe(o).mod(a)));var u=Math.ceil(o.sub(e).div(a).toNumber()),c=Math.ceil(new oe(t).sub(o).div(a).toNumber()),s=u+c+1;return s>r?Hy(e,t,r,n,i+1):(s0?c+(r-s):c,u=t>0?u:u+(r-s)),{step:a,tickMin:o.sub(new oe(u).mul(a)),tickMax:o.add(new oe(c).mul(a))})}function $I(e){var t=Rn(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),u=Uy([r,n]),c=Rn(u,2),s=c[0],f=c[1];if(s===-1/0||f===1/0){var l=f===1/0?[s].concat(Nu(Iu(0,i-1).map(function(){return 1/0}))):[].concat(Nu(Iu(0,i-1).map(function(){return-1/0})),[f]);return r>n?ku(l):l}if(s===f)return _I(s,i,a);var d=Hy(s,f,o,a),p=d.step,y=d.tickMin,h=d.tickMax,v=co.rangeStep(y,h.add(new oe(.1).mul(p)),p);return r>n?ku(v):v}function TI(e,t){var r=Rn(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Uy([n,i]),u=Rn(o,2),c=u[0],s=u[1];if(c===-1/0||s===1/0)return[n,i];if(c===s)return[c];var f=Math.max(t,2),l=qy(new oe(s).sub(c).div(f-1),a,0),d=[].concat(Nu(co.rangeStep(new oe(c),new oe(s).sub(new oe(.99).mul(l)),l)),[s]);return n>i?ku(d):d}var EI=Wy($I),jI=Wy(TI),MI="Invariant failed";function ir(e,t){throw new Error(MI)}var CI=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Mr(e){"@babel/helpers - typeof";return Mr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mr(e)}function ra(){return ra=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function BI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function FI(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function WI(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,u=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(u<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var c=a.range,s=0;s0?i[s-1].coordinate:i[u-1].coordinate,l=i[s].coordinate,d=s>=u-1?i[0].coordinate:i[s+1].coordinate,p=void 0;if(Ie(l-f)!==Ie(d-l)){var y=[];if(Ie(d-l)===Ie(c[1]-c[0])){p=d;var h=l+c[1]-c[0];y[0]=Math.min(h,(h+f)/2),y[1]=Math.max(h,(h+f)/2)}else{p=f;var v=d+c[1]-c[0];y[0]=Math.min(l,(v+l)/2),y[1]=Math.max(l,(v+l)/2)}var b=[Math.min(l,(p+l)/2),Math.max(l,(p+l)/2)];if(t>b[0]&&t<=b[1]||t>=y[0]&&t<=y[1]){o=i[s].index;break}}else{var w=Math.min(f,d),x=Math.max(f,d);if(t>(w+l)/2&&t<=(x+l)/2){o=i[s].index;break}}}else for(var A=0;A0&&A(n[A].coordinate+n[A-1].coordinate)/2&&t<=(n[A].coordinate+n[A+1].coordinate)/2||A===u-1&&t>(n[A].coordinate+n[A-1].coordinate)/2){o=n[A].index;break}return o},ws=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?ve(ve({},t.type.defaultProps),t.props):t.props,o=a.stroke,u=a.fill,c;switch(i){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:u;break;default:c=u;break}return c},ik=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},u=Object.keys(a),c=0,s=u.length;c=0});if(b&&b.length){var w=b[0].type.defaultProps,x=w!==void 0?ve(ve({},w),b[0].props):b[0].props,A=x.barSize,g=x[v];o[g]||(o[g]=[]);var m=Q(A)?r:A;o[g].push({item:b[0],stackList:b.slice(1),barSize:Q(m)?void 0:ke(m,n,0)})}}return o},ak=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,u=t.maxBarSize,c=o.length;if(c<1)return null;var s=ke(r,i,0,!0),f,l=[];if(o[0].barSize===+o[0].barSize){var d=!1,p=i/c,y=o.reduce(function(A,g){return A+g.barSize||0},0);y+=(c-1)*s,y>=i&&(y-=(c-1)*s,s=0),y>=i&&p>0&&(d=!0,p*=.9,y=c*p);var h=(i-y)/2>>0,v={offset:h-s,size:0};f=o.reduce(function(A,g){var m={item:g.item,position:{offset:v.offset+v.size+s,size:d?p:g.barSize}},O=[].concat(Zf(A),[m]);return v=O[O.length-1].position,g.stackList&&g.stackList.length&&g.stackList.forEach(function(S){O.push({item:S,position:v})}),O},l)}else{var b=ke(n,i,0,!0);i-2*b-(c-1)*s<=0&&(s=0);var w=(i-2*b-(c-1)*s)/c;w>1&&(w>>=0);var x=u===+u?Math.min(w,u):w;f=o.reduce(function(A,g,m){var O=[].concat(Zf(A),[{item:g.item,position:{offset:b+(w+s)*m+(w-x)/2,size:x}}]);return g.stackList&&g.stackList.length&&g.stackList.forEach(function(S){O.push({item:S,position:O[O.length-1].position})}),O},l)}return f},ok=function(t,r,n,i){var a=n.children,o=n.width,u=n.margin,c=o-(u.left||0)-(u.right||0),s=Vy({children:a,legendWidth:c});if(s){var f=i||{},l=f.width,d=f.height,p=s.align,y=s.verticalAlign,h=s.layout;if((h==="vertical"||h==="horizontal"&&y==="middle")&&p!=="center"&&R(t[p]))return ve(ve({},t),{},Or({},p,t[p]+(l||0)));if((h==="horizontal"||h==="vertical"&&p==="center")&&y!=="middle"&&R(t[y]))return ve(ve({},t),{},Or({},y,t[y]+(d||0)))}return t},uk=function(t,r,n){return Q(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},Yy=function(t,r,n,i,a){var o=r.props.children,u=Ve(o,so).filter(function(s){return uk(i,a,s.props.direction)});if(u&&u.length){var c=u.map(function(s){return s.props.dataKey});return t.reduce(function(s,f){var l=Me(f,n);if(Q(l))return s;var d=Array.isArray(l)?[ao(l),io(l)]:[l,l],p=c.reduce(function(y,h){var v=Me(f,h,0),b=d[0]-Math.abs(Array.isArray(v)?v[0]:v),w=d[1]+Math.abs(Array.isArray(v)?v[1]:v);return[Math.min(b,y[0]),Math.max(w,y[1])]},[1/0,-1/0]);return[Math.min(p[0],s[0]),Math.max(p[1],s[1])]},[1/0,-1/0])}return null},ck=function(t,r,n,i,a){var o=r.map(function(u){return Yy(t,u,n,a,i)}).filter(function(u){return!Q(u)});return o&&o.length?o.reduce(function(u,c){return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]):null},Zy=function(t,r,n,i,a){var o=r.map(function(c){var s=c.props.dataKey;return n==="number"&&s&&Yy(t,c,s,i)||xn(t,s,n,a)});if(n==="number")return o.reduce(function(c,s){return[Math.min(c[0],s[0]),Math.max(c[1],s[1])]},[1/0,-1/0]);var u={};return o.reduce(function(c,s){for(var f=0,l=s.length;f=2?Ie(u[0]-u[1])*2*s:s,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(l){var d=a?a.indexOf(l):l;return{coordinate:i(d)+s,value:l,offset:s}});return f.filter(function(l){return!ui(l.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(l,d){return{coordinate:i(l)+s,value:l,index:d,offset:s}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(l){return{coordinate:i(l)+s,value:l,offset:s}}):i.domain().map(function(l,d){return{coordinate:i(l)+s,value:a?a[l]:l,index:d,offset:s}})},qo=new WeakMap,Pi=function(t,r){if(typeof r!="function")return t;qo.has(t)||qo.set(t,new WeakMap);var n=qo.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},ev=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,u=t.axisType;if(i==="auto")return o==="radial"&&u==="radiusAxis"?{scale:Mn(),realScaleType:"band"}:o==="radial"&&u==="angleAxis"?{scale:Zi(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:bn(),realScaleType:"point"}:a==="category"?{scale:Mn(),realScaleType:"band"}:{scale:Zi(),realScaleType:"linear"};if(oi(i)){var c="scale".concat(qa(i));return{scale:(Hf[c]||bn)(),realScaleType:Hf[c]?c:"point"}}return V(i)?{scale:i}:{scale:bn(),realScaleType:"point"}},Qf=1e-4,tv=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-Qf,o=Math.max(i[0],i[1])+Qf,u=t(r[0]),c=t(r[n-1]);(uo||co)&&t.domain([r[0],r[n-1]])}},sk=function(t,r){if(!t)return null;for(var n=0,i=t.length;ni)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(t[u][n][0]=a,t[u][n][1]=a+c,a=t[u][n][1]):(t[u][n][0]=o,t[u][n][1]=o+c,o=t[u][n][1])}},dk=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n=0?(t[o][n][0]=a,t[o][n][1]=a+u,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},pk={sign:fk,expand:Iw,none:Ar,silhouette:kw,wiggle:Nw,positive:dk},hk=function(t,r,n){var i=r.map(function(u){return u.props.dataKey}),a=pk[n],o=Cw().keys(i).value(function(u,c){return+Me(u,c,0)}).order(su).offset(a);return o(t)},yk=function(t,r,n,i,a,o){if(!t)return null;var u=o?r.reverse():r,c={},s=u.reduce(function(l,d){var p,y=(p=d.type)!==null&&p!==void 0&&p.defaultProps?ve(ve({},d.type.defaultProps),d.props):d.props,h=y.stackId,v=y.hide;if(v)return l;var b=y[n],w=l[b]||{hasStack:!1,stackGroups:{}};if(Ae(h)){var x=w.stackGroups[h]||{numericAxisId:n,cateAxisId:i,items:[]};x.items.push(d),w.hasStack=!0,w.stackGroups[h]=x}else w.stackGroups[ci("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[d]};return ve(ve({},l),{},Or({},b,w))},c),f={};return Object.keys(s).reduce(function(l,d){var p=s[d];if(p.hasStack){var y={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(h,v){var b=p.stackGroups[v];return ve(ve({},h),{},Or({},v,{numericAxisId:n,cateAxisId:i,items:b.items,stackedData:hk(t,b.items,a)}))},y)}return ve(ve({},l),{},Or({},d,p))},f)},rv=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,u=r.allowDecimals,c=n||r.scale;if(c!=="auto"&&c!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var s=t.domain();if(!s.length)return null;var f=EI(s,a,u);return t.domain([ao(f),io(f)]),{niceTicks:f}}if(a&&i==="number"){var l=t.domain(),d=jI(l,a,u);return{niceTicks:d}}return null},ed=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,u=t.index;if(r.type==="category")return n[u]?n[u].coordinate+i:null;var c=Me(o,r.dataKey,r.domain[u]);return Q(c)?null:r.scale(c)-a/2+i},vk=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},gk=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?ve(ve({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(Ae(a)){var o=r[a];if(o){var u=o.items.indexOf(t);return u>=0?o.stackedData[u]:null}}return null},mk=function(t){return t.reduce(function(r,n){return[ao(n.concat([r[0]]).filter(R)),io(n.concat([r[1]]).filter(R))]},[1/0,-1/0])},nv=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],u=o.stackedData,c=u.reduce(function(s,f){var l=mk(f.slice(r,n+1));return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]);return[Math.min(c[0],i[0]),Math.max(c[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},td=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rd=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Bu=function(t,r,n){if(V(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(R(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(td.test(t[0])){var a=+td.exec(t[0])[1];i[0]=r[0]-a}else V(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(R(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(rd.test(t[1])){var o=+rd.exec(t[1])[1];i[1]=r[1]+o}else V(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},ia=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=Xc(r,function(l){return l.coordinate}),o=1/0,u=1,c=a.length;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},$k=function(t,r,n,i,a){var o=t.width,u=t.height,c=t.startAngle,s=t.endAngle,f=ke(t.cx,o,o/2),l=ke(t.cy,u,u/2),d=ov(o,u,n),p=ke(t.innerRadius,d,0),y=ke(t.outerRadius,d,d*.8),h=Object.keys(r);return h.reduce(function(v,b){var w=r[b],x=w.domain,A=w.reversed,g;if(Q(w.range))i==="angleAxis"?g=[c,s]:i==="radiusAxis"&&(g=[p,y]),A&&(g=[g[1],g[0]]);else{g=w.range;var m=g,O=wk(m,2);c=O[0],s=O[1]}var S=ev(w,a),_=S.realScaleType,E=S.scale;E.domain(x).range(g),tv(E);var $=rv(E,pt(pt({},w),{},{realScaleType:_})),T=pt(pt(pt({},w),$),{},{range:g,radius:y,realScaleType:_,scale:E,cx:f,cy:l,innerRadius:p,outerRadius:y,startAngle:c,endAngle:s});return pt(pt({},v),{},av({},b,T))},{})},Tk=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},Ek=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,u=Tk({x:n,y:i},{x:a,y:o});if(u<=0)return{radius:u};var c=(n-a)/u,s=Math.acos(c);return i>o&&(s=2*Math.PI-s),{radius:u,angle:_k(s),angleInRadian:s}},jk=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},Mk=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),u=Math.min(a,o);return t+u*360},od=function(t,r){var n=t.x,i=t.y,a=Ek({x:n,y:i},r),o=a.radius,u=a.angle,c=r.innerRadius,s=r.outerRadius;if(os)return!1;if(o===0)return!0;var f=jk(r),l=f.startAngle,d=f.endAngle,p=u,y;if(l<=d){for(;p>d;)p-=360;for(;p=l&&p<=d}else{for(;p>l;)p-=360;for(;p=d&&p<=l}return y?pt(pt({},r),{},{radius:o,angle:Mk(p,r)}):null},uv=function(t){return!L.isValidElement(t)&&!V(t)&&typeof t!="boolean"?t.className:""};function Wn(e){"@babel/helpers - typeof";return Wn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wn(e)}var Ck=["offset"];function Ik(e){return Rk(e)||Dk(e)||Nk(e)||kk()}function kk(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nk(e,t){if(e){if(typeof e=="string")return Fu(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Fu(e,t)}}function Dk(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Rk(e){if(Array.isArray(e))return Fu(e)}function Fu(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Bk(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ud(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Oe(e){for(var t=1;t=0?1:-1,x,A;i==="insideStart"?(x=p+w*o,A=h):i==="insideEnd"?(x=y-w*o,A=!h):i==="end"&&(x=y+w*o,A=h),A=b<=0?A:!A;var g=le(s,f,v,x),m=le(s,f,v,x+(A?1:-1)*359),O="M".concat(g.x,",").concat(g.y,` + A`).concat(v,",").concat(v,",0,1,").concat(A?0:1,`, + `).concat(m.x,",").concat(m.y),S=Q(t.id)?ci("recharts-radial-line-"):t.id;return P.createElement("text",zn({},n,{dominantBaseline:"central",className:J("recharts-radial-bar-label",u)}),P.createElement("defs",null,P.createElement("path",{id:S,d:O})),P.createElement("textPath",{xlinkHref:"#".concat(S)},r))},Gk=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,u=a.cy,c=a.innerRadius,s=a.outerRadius,f=a.startAngle,l=a.endAngle,d=(f+l)/2;if(i==="outside"){var p=le(o,u,s+n,d),y=p.x,h=p.y;return{x:y,y:h,textAnchor:y>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"end"};var v=(c+s)/2,b=le(o,u,v,d),w=b.x,x=b.y;return{x:w,y:x,textAnchor:"middle",verticalAnchor:"middle"}},Kk=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,u=o.x,c=o.y,s=o.width,f=o.height,l=f>=0?1:-1,d=l*i,p=l>0?"end":"start",y=l>0?"start":"end",h=s>=0?1:-1,v=h*i,b=h>0?"end":"start",w=h>0?"start":"end";if(a==="top"){var x={x:u+s/2,y:c-l*i,textAnchor:"middle",verticalAnchor:p};return Oe(Oe({},x),n?{height:Math.max(c-n.y,0),width:s}:{})}if(a==="bottom"){var A={x:u+s/2,y:c+f+d,textAnchor:"middle",verticalAnchor:y};return Oe(Oe({},A),n?{height:Math.max(n.y+n.height-(c+f),0),width:s}:{})}if(a==="left"){var g={x:u-v,y:c+f/2,textAnchor:b,verticalAnchor:"middle"};return Oe(Oe({},g),n?{width:Math.max(g.x-n.x,0),height:f}:{})}if(a==="right"){var m={x:u+s+v,y:c+f/2,textAnchor:w,verticalAnchor:"middle"};return Oe(Oe({},m),n?{width:Math.max(n.x+n.width-m.x,0),height:f}:{})}var O=n?{width:s,height:f}:{};return a==="insideLeft"?Oe({x:u+v,y:c+f/2,textAnchor:w,verticalAnchor:"middle"},O):a==="insideRight"?Oe({x:u+s-v,y:c+f/2,textAnchor:b,verticalAnchor:"middle"},O):a==="insideTop"?Oe({x:u+s/2,y:c+d,textAnchor:"middle",verticalAnchor:y},O):a==="insideBottom"?Oe({x:u+s/2,y:c+f-d,textAnchor:"middle",verticalAnchor:p},O):a==="insideTopLeft"?Oe({x:u+v,y:c+d,textAnchor:w,verticalAnchor:y},O):a==="insideTopRight"?Oe({x:u+s-v,y:c+d,textAnchor:b,verticalAnchor:y},O):a==="insideBottomLeft"?Oe({x:u+v,y:c+f-d,textAnchor:w,verticalAnchor:p},O):a==="insideBottomRight"?Oe({x:u+s-v,y:c+f-d,textAnchor:b,verticalAnchor:p},O):Xr(a)&&(R(a.x)||Vt(a.x))&&(R(a.y)||Vt(a.y))?Oe({x:u+ke(a.x,s),y:c+ke(a.y,f),textAnchor:"end",verticalAnchor:"end"},O):Oe({x:u+s/2,y:c+f/2,textAnchor:"middle",verticalAnchor:"middle"},O)},Xk=function(t){return"cx"in t&&R(t.cx)};function _e(e){var t=e.offset,r=t===void 0?5:t,n=Lk(e,Ck),i=Oe({offset:r},n),a=i.viewBox,o=i.position,u=i.value,c=i.children,s=i.content,f=i.className,l=f===void 0?"":f,d=i.textBreakAll;if(!a||Q(u)&&Q(c)&&!L.isValidElement(s)&&!V(s))return null;if(L.isValidElement(s))return L.cloneElement(s,i);var p;if(V(s)){if(p=L.createElement(s,i),L.isValidElement(p))return p}else p=Uk(i);var y=Xk(a),h=X(i,!0);if(y&&(o==="insideStart"||o==="insideEnd"||o==="end"))return Hk(i,p,h);var v=y?Gk(i):Kk(i);return P.createElement(rr,zn({className:J("recharts-label",l)},h,v,{breakAll:d}),p)}_e.displayName="Label";var cv=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,u=t.r,c=t.radius,s=t.innerRadius,f=t.outerRadius,l=t.x,d=t.y,p=t.top,y=t.left,h=t.width,v=t.height,b=t.clockWise,w=t.labelViewBox;if(w)return w;if(R(h)&&R(v)){if(R(l)&&R(d))return{x:l,y:d,width:h,height:v};if(R(p)&&R(y))return{x:p,y,width:h,height:v}}return R(l)&&R(d)?{x:l,y:d,width:0,height:0}:R(r)&&R(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:s||0,outerRadius:f||c||u||0,clockWise:b}:t.viewBox?t.viewBox:{}},Vk=function(t,r){return t?t===!0?P.createElement(_e,{key:"label-implicit",viewBox:r}):Ae(t)?P.createElement(_e,{key:"label-implicit",viewBox:r,value:t}):L.isValidElement(t)?t.type===_e?L.cloneElement(t,{key:"label-implicit",viewBox:r}):P.createElement(_e,{key:"label-implicit",content:t,viewBox:r}):V(t)?P.createElement(_e,{key:"label-implicit",content:t,viewBox:r}):Xr(t)?P.createElement(_e,zn({viewBox:r},t,{key:"label-implicit"})):null:null},Yk=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=cv(t),o=Ve(i,_e).map(function(c,s){return L.cloneElement(c,{viewBox:r||a,key:"label-".concat(s)})});if(!n)return o;var u=Vk(t.label,r||a);return[u].concat(Ik(o))};_e.parseViewBox=cv;_e.renderCallByParent=Yk;function Zk(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}var Jk=Zk;const Qk=ie(Jk);function Un(e){"@babel/helpers - typeof";return Un=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Un(e)}var e2=["valueAccessor"],t2=["data","dataKey","clockWise","id","textBreakAll"];function r2(e){return o2(e)||a2(e)||i2(e)||n2()}function n2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i2(e,t){if(e){if(typeof e=="string")return Wu(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Wu(e,t)}}function a2(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function o2(e){if(Array.isArray(e))return Wu(e)}function Wu(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l2(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var f2=function(t){return Array.isArray(t.value)?Qk(t.value):t.value};function It(e){var t=e.valueAccessor,r=t===void 0?f2:t,n=ld(e,e2),i=n.data,a=n.dataKey,o=n.clockWise,u=n.id,c=n.textBreakAll,s=ld(n,t2);return!i||!i.length?null:P.createElement(ne,{className:"recharts-label-list"},i.map(function(f,l){var d=Q(a)?r(f,l):Me(f&&f.payload,a),p=Q(u)?{}:{id:"".concat(u,"-").concat(l)};return P.createElement(_e,oa({},X(f,!0),s,p,{parentViewBox:f.parentViewBox,value:d,textBreakAll:c,viewBox:_e.parseViewBox(Q(o)?f:sd(sd({},f),{},{clockWise:o})),key:"label-".concat(l),index:l}))}))}It.displayName="LabelList";function d2(e,t){return e?e===!0?P.createElement(It,{key:"labelList-implicit",data:t}):P.isValidElement(e)||V(e)?P.createElement(It,{key:"labelList-implicit",data:t,content:e}):Xr(e)?P.createElement(It,oa({data:t},e,{key:"labelList-implicit"})):null:null}function p2(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=Ve(n,It).map(function(o,u){return L.cloneElement(o,{data:t,key:"labelList-".concat(u)})});if(!r)return i;var a=d2(e.label,t);return[a].concat(r2(i))}It.renderCallByParent=p2;function qn(e){"@babel/helpers - typeof";return qn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qn(e)}function zu(){return zu=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>s),`, + `).concat(l.x,",").concat(l.y,` + `);if(i>0){var p=le(r,n,i,o),y=le(r,n,i,s);d+="L ".concat(y.x,",").concat(y.y,` + A `).concat(i,",").concat(i,`,0, + `).concat(+(Math.abs(c)>180),",").concat(+(o<=s),`, + `).concat(p.x,",").concat(p.y," Z")}else d+="L ".concat(r,",").concat(n," Z");return d},m2=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,u=t.forceCornerRadius,c=t.cornerIsExternal,s=t.startAngle,f=t.endAngle,l=Ie(f-s),d=Si({cx:r,cy:n,radius:a,angle:s,sign:l,cornerRadius:o,cornerIsExternal:c}),p=d.circleTangency,y=d.lineTangency,h=d.theta,v=Si({cx:r,cy:n,radius:a,angle:f,sign:-l,cornerRadius:o,cornerIsExternal:c}),b=v.circleTangency,w=v.lineTangency,x=v.theta,A=c?Math.abs(s-f):Math.abs(s-f)-h-x;if(A<0)return u?"M ".concat(y.x,",").concat(y.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):sv({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:s,endAngle:f});var g="M ".concat(y.x,",").concat(y.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(p.x,",").concat(p.y,` + A`).concat(a,",").concat(a,",0,").concat(+(A>180),",").concat(+(l<0),",").concat(b.x,",").concat(b.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(w.x,",").concat(w.y,` + `);if(i>0){var m=Si({cx:r,cy:n,radius:i,angle:s,sign:l,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),O=m.circleTangency,S=m.lineTangency,_=m.theta,E=Si({cx:r,cy:n,radius:i,angle:f,sign:-l,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),$=E.circleTangency,T=E.lineTangency,C=E.theta,I=c?Math.abs(s-f):Math.abs(s-f)-_-C;if(I<0&&o===0)return"".concat(g,"L").concat(r,",").concat(n,"Z");g+="L".concat(T.x,",").concat(T.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat($.x,",").concat($.y,` + A`).concat(i,",").concat(i,",0,").concat(+(I>180),",").concat(+(l>0),",").concat(O.x,",").concat(O.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(S.x,",").concat(S.y,"Z")}else g+="L".concat(r,",").concat(n,"Z");return g},b2={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},lv=function(t){var r=dd(dd({},b2),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,u=r.cornerRadius,c=r.forceCornerRadius,s=r.cornerIsExternal,f=r.startAngle,l=r.endAngle,d=r.className;if(o0&&Math.abs(f-l)<360?v=m2({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(h,y/2),forceCornerRadius:c,cornerIsExternal:s,startAngle:f,endAngle:l}):v=sv({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:l}),P.createElement("path",zu({},X(r,!0),{className:p,d:v,role:"img"}))};function Hn(e){"@babel/helpers - typeof";return Hn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hn(e)}function Uu(){return Uu=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function L2(e,t){return sr(e.getTime(),t.getTime())}function B2(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function F2(e,t){return e===t}function xd(e,t,r){var n=e.size;if(n!==t.size)return!1;if(!n)return!0;for(var i=new Array(n),a=e.entries(),o,u,c=0;(o=a.next())&&!o.done;){for(var s=t.entries(),f=!1,l=0;(u=s.next())&&!u.done;){if(i[l]){l++;continue}var d=o.value,p=u.value;if(r.equals(d[0],p[0],c,l,e,t,r)&&r.equals(d[1],p[1],d[0],p[0],e,t,r)){f=i[l]=!0;break}l++}if(!f)return!1;c++}return!0}var W2=sr;function z2(e,t,r){var n=bd(e),i=n.length;if(bd(t).length!==i)return!1;for(;i-- >0;)if(!hv(e,t,r,n[i]))return!1;return!0}function yn(e,t,r){var n=gd(e),i=n.length;if(gd(t).length!==i)return!1;for(var a,o,u;i-- >0;)if(a=n[i],!hv(e,t,r,a)||(o=md(e,a),u=md(t,a),(o||u)&&(!o||!u||o.configurable!==u.configurable||o.enumerable!==u.enumerable||o.writable!==u.writable)))return!1;return!0}function U2(e,t){return sr(e.valueOf(),t.valueOf())}function q2(e,t){return e.source===t.source&&e.flags===t.flags}function wd(e,t,r){var n=e.size;if(n!==t.size)return!1;if(!n)return!0;for(var i=new Array(n),a=e.values(),o,u;(o=a.next())&&!o.done;){for(var c=t.values(),s=!1,f=0;(u=c.next())&&!u.done;){if(!i[f]&&r.equals(o.value,u.value,o.value,u.value,e,t,r)){s=i[f]=!0;break}f++}if(!s)return!1}return!0}function H2(e,t){var r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function G2(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function hv(e,t,r,n){return(n===D2||n===N2||n===k2)&&(e.$$typeof||t.$$typeof)?!0:I2(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}var K2="[object Arguments]",X2="[object Boolean]",V2="[object Date]",Y2="[object Error]",Z2="[object Map]",J2="[object Number]",Q2="[object Object]",eN="[object RegExp]",tN="[object Set]",rN="[object String]",nN="[object URL]",iN=Array.isArray,Od=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,Ad=Object.assign,aN=Object.prototype.toString.call.bind(Object.prototype.toString);function oN(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areErrorsEqual,i=e.areFunctionsEqual,a=e.areMapsEqual,o=e.areNumbersEqual,u=e.areObjectsEqual,c=e.arePrimitiveWrappersEqual,s=e.areRegExpsEqual,f=e.areSetsEqual,l=e.areTypedArraysEqual,d=e.areUrlsEqual;return function(y,h,v){if(y===h)return!0;if(y==null||h==null)return!1;var b=typeof y;if(b!==typeof h)return!1;if(b!=="object")return b==="number"?o(y,h,v):b==="function"?i(y,h,v):!1;var w=y.constructor;if(w!==h.constructor)return!1;if(w===Object)return u(y,h,v);if(iN(y))return t(y,h,v);if(Od!=null&&Od(y))return l(y,h,v);if(w===Date)return r(y,h,v);if(w===RegExp)return s(y,h,v);if(w===Map)return a(y,h,v);if(w===Set)return f(y,h,v);var x=aN(y);return x===V2?r(y,h,v):x===eN?s(y,h,v):x===Z2?a(y,h,v):x===tN?f(y,h,v):x===Q2?typeof y.then!="function"&&typeof h.then!="function"&&u(y,h,v):x===nN?d(y,h,v):x===Y2?n(y,h,v):x===K2?u(y,h,v):x===X2||x===J2||x===rN?c(y,h,v):!1}}function uN(e){var t=e.circular,r=e.createCustomConfig,n=e.strict,i={areArraysEqual:n?yn:R2,areDatesEqual:L2,areErrorsEqual:B2,areFunctionsEqual:F2,areMapsEqual:n?vd(xd,yn):xd,areNumbersEqual:W2,areObjectsEqual:n?yn:z2,arePrimitiveWrappersEqual:U2,areRegExpsEqual:q2,areSetsEqual:n?vd(wd,yn):wd,areTypedArraysEqual:n?yn:H2,areUrlsEqual:G2};if(r&&(i=Ad({},i,r(i))),t){var a=$i(i.areArraysEqual),o=$i(i.areMapsEqual),u=$i(i.areObjectsEqual),c=$i(i.areSetsEqual);i=Ad({},i,{areArraysEqual:a,areMapsEqual:o,areObjectsEqual:u,areSetsEqual:c})}return i}function cN(e){return function(t,r,n,i,a,o,u){return e(t,r,u)}}function sN(e){var t=e.circular,r=e.comparator,n=e.createState,i=e.equals,a=e.strict;if(n)return function(c,s){var f=n(),l=f.cache,d=l===void 0?t?new WeakMap:void 0:l,p=f.meta;return r(c,s,{cache:d,equals:i,meta:p,strict:a})};if(t)return function(c,s){return r(c,s,{cache:new WeakMap,equals:i,meta:void 0,strict:a})};var o={cache:void 0,equals:i,meta:void 0,strict:a};return function(c,s){return r(c,s,o)}}var lN=Rt();Rt({strict:!0});Rt({circular:!0});Rt({circular:!0,strict:!0});Rt({createInternalComparator:function(){return sr}});Rt({strict:!0,createInternalComparator:function(){return sr}});Rt({circular:!0,createInternalComparator:function(){return sr}});Rt({circular:!0,createInternalComparator:function(){return sr},strict:!0});function Rt(e){e===void 0&&(e={});var t=e.circular,r=t===void 0?!1:t,n=e.createInternalComparator,i=e.createState,a=e.strict,o=a===void 0?!1:a,u=uN(e),c=oN(u),s=n?n(c):cN(c);return sN({circular:r,comparator:c,createState:i,equals:s,strict:o})}function fN(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function Pd(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):fN(i)};requestAnimationFrame(n)}function Hu(e){"@babel/helpers - typeof";return Hu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hu(e)}function dN(e){return vN(e)||yN(e)||hN(e)||pN()}function pN(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hN(e,t){if(e){if(typeof e=="string")return Sd(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sd(e,t)}}function Sd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?1:b<0?0:b},h=function(b){for(var w=b>1?1:b,x=w,A=0;A<8;++A){var g=l(x)-w,m=p(x);if(Math.abs(g-w)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,u=o===void 0?17:o,c=function(f,l,d){var p=-(f-l)*n,y=d*a,h=d+(p-y)*u/1e3,v=d*u/1e3+f;return Math.abs(v-l)e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function KN(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a=0)&&(r[i]=e[i]);return r}function Ho(e){return ZN(e)||YN(e)||VN(e)||XN()}function XN(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VN(e,t){if(e){if(typeof e=="string")return Yu(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yu(e,t)}}function YN(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ZN(e){if(Array.isArray(e))return Yu(e)}function Yu(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sa(e){return sa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},sa(e)}var At=function(e){rD(r,e);var t=nD(r);function r(n,i){var a;JN(this,r),a=t.call(this,n,i);var o=a.props,u=o.isActive,c=o.attributeName,s=o.from,f=o.to,l=o.steps,d=o.children,p=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(Qu(a)),a.changeStyle=a.changeStyle.bind(Qu(a)),!u||p<=0)return a.state={style:{}},typeof d=="function"&&(a.state={style:f}),Ju(a);if(l&&l.length)a.state={style:l[0].style};else if(s){if(typeof d=="function")return a.state={style:s},Ju(a);a.state={style:c?gn({},c,s):s}}else a.state={style:{}};return a}return eD(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,u=a.canBegin,c=a.attributeName,s=a.shouldReAnimate,f=a.to,l=a.from,d=this.state.style;if(u){if(!o){var p={style:c?gn({},c,f):f};this.state&&d&&(c&&d[c]!==f||!c&&d!==f)&&this.setState(p);return}if(!(lN(i.to,f)&&i.canBegin&&i.isActive)){var y=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var h=y||s?l:i.to;if(this.state&&d){var v={style:c?gn({},c,h):h};(c&&d[c]!==h||!c&&d!==h)&&this.setState(v)}this.runAnimation(et(et({},this.props),{},{from:h,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,u=i.to,c=i.duration,s=i.easing,f=i.begin,l=i.onAnimationEnd,d=i.onAnimationStart,p=qN(o,u,IN(s),c,this.changeStyle),y=function(){a.stopJSAnimation=p()};this.manager.start([d,f,y,c,l])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,u=i.begin,c=i.onAnimationStart,s=o[0],f=s.style,l=s.duration,d=l===void 0?0:l,p=function(h,v,b){if(b===0)return h;var w=v.duration,x=v.easing,A=x===void 0?"ease":x,g=v.style,m=v.properties,O=v.onAnimationEnd,S=b>0?o[b-1]:v,_=m||Object.keys(g);if(typeof A=="function"||A==="spring")return[].concat(Ho(h),[a.runJSAnimation.bind(a,{from:S.style,to:g,duration:w,easing:A}),w]);var E=Td(_,w,A),$=et(et(et({},S.style),g),{},{transition:E});return[].concat(Ho(h),[$,w,O]).filter(wN)};return this.manager.start([c].concat(Ho(o.reduce(p,[f,Math.max(d,u)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=gN());var a=i.begin,o=i.duration,u=i.attributeName,c=i.to,s=i.easing,f=i.onAnimationStart,l=i.onAnimationEnd,d=i.steps,p=i.children,y=this.manager;if(this.unSubscribe=y.subscribe(this.handleStyleChange),typeof s=="function"||typeof p=="function"||s==="spring"){this.runJSAnimation(i);return}if(d.length>1){this.runStepAnimation(i);return}var h=u?gn({},u,c):c,v=Td(Object.keys(h),o,s);y.start([f,a,et(et({},h),{},{transition:v}),o,l])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var u=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var c=GN(i,HN),s=L.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!u||s===0||o<=0)return a;var l=function(p){var y=p.props,h=y.style,v=h===void 0?{}:h,b=y.className,w=L.cloneElement(p,et(et({},c),{},{style:et(et({},v),f),className:b}));return w};return s===1?l(L.Children.only(a)):P.createElement("div",null,L.Children.map(a,function(d){return l(d)}))}}]),r}(L.PureComponent);At.displayName="Animate";At.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};At.propTypes={from:re.oneOfType([re.object,re.string]),to:re.oneOfType([re.object,re.string]),attributeName:re.string,duration:re.number,begin:re.number,easing:re.oneOfType([re.string,re.func]),steps:re.arrayOf(re.shape({duration:re.number.isRequired,style:re.object.isRequired,easing:re.oneOfType([re.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),re.func]),properties:re.arrayOf("string"),onAnimationEnd:re.func})),children:re.oneOfType([re.node,re.func]),isActive:re.bool,canBegin:re.bool,onAnimationEnd:re.func,shouldReAnimate:re.bool,onAnimationStart:re.func,onAnimationReStart:re.func};function Xn(e){"@babel/helpers - typeof";return Xn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xn(e)}function la(){return la=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?1:-1,c=n>=0?1:-1,s=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var l=[0,0,0,0],d=0,p=4;do?o:a[d];f="M".concat(t,",").concat(r+u*l[0]),l[0]>0&&(f+="A ".concat(l[0],",").concat(l[0],",0,0,").concat(s,",").concat(t+c*l[0],",").concat(r)),f+="L ".concat(t+n-c*l[1],",").concat(r),l[1]>0&&(f+="A ".concat(l[1],",").concat(l[1],",0,0,").concat(s,`, + `).concat(t+n,",").concat(r+u*l[1])),f+="L ".concat(t+n,",").concat(r+i-u*l[2]),l[2]>0&&(f+="A ".concat(l[2],",").concat(l[2],",0,0,").concat(s,`, + `).concat(t+n-c*l[2],",").concat(r+i)),f+="L ".concat(t+c*l[3],",").concat(r+i),l[3]>0&&(f+="A ".concat(l[3],",").concat(l[3],",0,0,").concat(s,`, + `).concat(t,",").concat(r+i-u*l[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var y=Math.min(o,a);f="M ".concat(t,",").concat(r+u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+c*y,",").concat(r,` + L `).concat(t+n-c*y,",").concat(r,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+n,",").concat(r+u*y,` + L `).concat(t+n,",").concat(r+i-u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+n-c*y,",").concat(r+i,` + L `).concat(t+c*y,",").concat(r+i,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t,",").concat(r+i-u*y," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},pD=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,u=r.width,c=r.height;if(Math.abs(u)>0&&Math.abs(c)>0){var s=Math.min(a,a+u),f=Math.max(a,a+u),l=Math.min(o,o+c),d=Math.max(o,o+c);return n>=s&&n<=f&&i>=l&&i<=d}return!1},hD={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Os=function(t){var r=Dd(Dd({},hD),t),n=L.useRef(),i=L.useState(-1),a=aD(i,2),o=a[0],u=a[1];L.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var A=n.current.getTotalLength();A&&u(A)}catch{}},[]);var c=r.x,s=r.y,f=r.width,l=r.height,d=r.radius,p=r.className,y=r.animationEasing,h=r.animationDuration,v=r.animationBegin,b=r.isAnimationActive,w=r.isUpdateAnimationActive;if(c!==+c||s!==+s||f!==+f||l!==+l||f===0||l===0)return null;var x=J("recharts-rectangle",p);return w?P.createElement(At,{canBegin:o>0,from:{width:f,height:l,x:c,y:s},to:{width:f,height:l,x:c,y:s},duration:h,animationEasing:y,isActive:w},function(A){var g=A.width,m=A.height,O=A.x,S=A.y;return P.createElement(At,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:h,isActive:b,easing:y},P.createElement("path",la({},X(r,!0),{className:x,d:Rd(O,S,g,m,d),ref:n})))}):P.createElement("path",la({},X(r,!0),{className:x,d:Rd(c,s,f,l,d)}))},yD=["points","className","baseLinePoints","connectNulls"];function yr(){return yr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function gD(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Ld(e){return wD(e)||xD(e)||bD(e)||mD()}function mD(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bD(e,t){if(e){if(typeof e=="string")return ec(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ec(e,t)}}function xD(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wD(e){if(Array.isArray(e))return ec(e)}function ec(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){Bd(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),Bd(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},On=function(t,r){var n=OD(t);r&&(n=[n.reduce(function(a,o){return[].concat(Ld(a),Ld(o))},[])]);var i=n.map(function(a){return a.reduce(function(o,u,c){return"".concat(o).concat(c===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},AD=function(t,r,n){var i=On(t,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(On(r.reverse(),n).slice(1))},PD=function(t){var r=t.points,n=t.className,i=t.baseLinePoints,a=t.connectNulls,o=vD(t,yD);if(!r||!r.length)return null;var u=J("recharts-polygon",n);if(i&&i.length){var c=o.stroke&&o.stroke!=="none",s=AD(r,i,a);return P.createElement("g",{className:u},P.createElement("path",yr({},X(o,!0),{fill:s.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:s})),c?P.createElement("path",yr({},X(o,!0),{fill:"none",d:On(r,a)})):null,c?P.createElement("path",yr({},X(o,!0),{fill:"none",d:On(i,a)})):null)}var f=On(r,a);return P.createElement("path",yr({},X(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:u,d:f}))};function tc(){return tc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function MD(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var CD=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},ID=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,u=o===void 0?0:o,c=t.left,s=c===void 0?0:c,f=t.width,l=f===void 0?0:f,d=t.height,p=d===void 0?0:d,y=t.className,h=jD(t,SD),v=_D({x:n,y:a,top:u,left:s,width:l,height:p},h);return!R(n)||!R(a)||!R(l)||!R(p)||!R(u)||!R(s)?null:P.createElement("path",rc({},X(v,!0),{className:J("recharts-cross",y),d:CD(n,a,l,p,u,s)}))},kD=no,ND=Cy,DD=lt;function RD(e,t){return e&&e.length?kD(e,DD(t),ND):void 0}var LD=RD;const BD=ie(LD);var FD=no,WD=lt,zD=Iy;function UD(e,t){return e&&e.length?FD(e,WD(t),zD):void 0}var qD=UD;const HD=ie(qD);var GD=["cx","cy","angle","ticks","axisLine"],KD=["ticks","tick","angle","tickFormatter","stroke"];function Ir(e){"@babel/helpers - typeof";return Ir=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ir(e)}function An(){return An=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function XD(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function VD(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ud(e,t){for(var r=0;rlR?o=i==="outer"?"start":"end":a<-1e-5?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.radius,u=n.axisLine,c=n.axisLineType,s=qt(qt({},X(this.props,!1)),{},{fill:"none"},X(u,!1));if(c==="circle")return P.createElement(As,Xt({className:"recharts-polar-angle-axis-line"},s,{cx:i,cy:a,r:o}));var f=this.props.ticks,l=f.map(function(d){return le(i,a,o,d.coordinate)});return P.createElement(PD,Xt({className:"recharts-polar-angle-axis-line"},s,{points:l}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,u=i.tickLine,c=i.tickFormatter,s=i.stroke,f=X(this.props,!1),l=X(o,!1),d=qt(qt({},f),{},{fill:"none"},X(u,!1)),p=a.map(function(y,h){var v=n.getTickLineCoord(y),b=n.getTickTextAnchor(y),w=qt(qt(qt({textAnchor:b},f),{},{stroke:"none",fill:s},l),{},{index:h,payload:y,x:v.x2,y:v.y2});return P.createElement(ne,Xt({className:J("recharts-polar-angle-axis-tick",uv(o)),key:"tick-".concat(y.coordinate)},tr(n.props,y,h)),u&&P.createElement("line",Xt({className:"recharts-polar-angle-axis-tick-line"},d,v)),o&&t.renderTickItem(o,w,c?c(y.value,h):y.value))});return P.createElement(ne,{className:"recharts-polar-angle-axis-ticks"},p)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,o=n.axisLine;return a<=0||!i||!i.length?null:P.createElement(ne,{className:J("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var o;return P.isValidElement(n)?o=P.cloneElement(n,i):V(n)?o=n(i):o=P.createElement(rr,Xt({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])}(L.PureComponent);po(ho,"displayName","PolarAngleAxis");po(ho,"axisType","angleAxis");po(ho,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var fR=$h,dR=fR(Object.getPrototypeOf,Object),pR=dR,hR=Pt,yR=pR,vR=St,gR="[object Object]",mR=Function.prototype,bR=Object.prototype,Sv=mR.toString,xR=bR.hasOwnProperty,wR=Sv.call(Object);function OR(e){if(!vR(e)||hR(e)!=gR)return!1;var t=yR(e);if(t===null)return!0;var r=xR.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Sv.call(r)==wR}var AR=OR;const PR=ie(AR);var SR=Pt,_R=St,$R="[object Boolean]";function TR(e){return e===!0||e===!1||_R(e)&&SR(e)==$R}var ER=TR;const jR=ie(ER);function Yn(e){"@babel/helpers - typeof";return Yn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yn(e)}function pa(){return pa=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0,from:{upperWidth:0,lowerWidth:0,height:d,x:c,y:s},to:{upperWidth:f,lowerWidth:l,height:d,x:c,y:s},duration:h,animationEasing:y,isActive:b},function(x){var A=x.upperWidth,g=x.lowerWidth,m=x.height,O=x.x,S=x.y;return P.createElement(At,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:h,easing:y},P.createElement("path",pa({},X(r,!0),{className:w,d:Vd(O,S,A,g,m),ref:n})))}):P.createElement("g",null,P.createElement("path",pa({},X(r,!0),{className:w,d:Vd(c,s,f,l,d)})))},WR=["option","shapeType","propTransformer","activeClassName","isActive"];function Zn(e){"@babel/helpers - typeof";return Zn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zn(e)}function zR(e,t){if(e==null)return{};var r=UR(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function UR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Yd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ha(e){for(var t=1;t0?qe(x,"paddingAngle",0):0;if(g){var O=Tt(g.endAngle-g.startAngle,x.endAngle-x.startAngle),S=ce(ce({},x),{},{startAngle:w+m,endAngle:w+O(h)+m});v.push(S),w=S.endAngle}else{var _=x.endAngle,E=x.startAngle,$=Tt(0,_-E),T=$(h),C=ce(ce({},x),{},{startAngle:w+m,endAngle:w+T+m});v.push(C),w=C.endAngle}}),P.createElement(ne,null,n.renderSectorsStatically(v))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var u=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[u].focus(),i.setState({sectorToFocus:u});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!oo(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,o=i.sectors,u=i.className,c=i.label,s=i.cx,f=i.cy,l=i.innerRadius,d=i.outerRadius,p=i.isAnimationActive,y=this.state.isAnimationFinished;if(a||!o||!o.length||!R(s)||!R(f)||!R(l)||!R(d))return null;var h=J("recharts-pie",u);return P.createElement(ne,{tabIndex:this.props.rootTabIndex,className:h,ref:function(b){n.pieRef=b}},this.renderSectors(),c&&this.renderLabels(o),_e.renderCallByParent(this.props,null,!1),(!p||y)&&It.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n=360?w:w-1)*c,A=v-w*p-x,g=i.reduce(function(S,_){var E=Me(_,b,0);return S+(R(E)?E:0)},0),m;if(g>0){var O;m=i.map(function(S,_){var E=Me(S,b,0),$=Me(S,f,_),T=(R(E)?E:0)/g,C;_?C=O.endAngle+Ie(h)*c*(E!==0?1:0):C=o;var I=C+Ie(h)*((E!==0?p:0)+T*A),M=(C+I)/2,k=(y.innerRadius+y.outerRadius)/2,D=[{name:$,value:E,payload:S,dataKey:b,type:d}],B=le(y.cx,y.cy,k,M);return O=ce(ce(ce({percent:T,cornerRadius:a,name:$,tooltipPayload:D,midAngle:M,middleRadius:k,tooltipPosition:B},S),y),{},{value:Me(S,b),startAngle:C,endAngle:I,payload:S,paddingAngle:Ie(h)*c}),O})}return ce(ce({},y),{},{sectors:m,data:i})});var lL=Math.ceil,fL=Math.max;function dL(e,t,r,n){for(var i=-1,a=fL(lL((t-e)/(r||1)),0),o=Array(a);a--;)o[n?a:++i]=e,e+=r;return o}var pL=dL,hL=Gh,yL=1/0,vL=17976931348623157e292;function gL(e){if(!e)return e===0?e:0;if(e=hL(e),e===yL||e===-1/0){var t=e<0?-1:1;return t*vL}return e===e?e:0}var Ev=gL,mL=pL,bL=Ya,Go=Ev;function xL(e){return function(t,r,n){return n&&typeof n!="number"&&bL(t,r,n)&&(r=n=void 0),t=Go(t),r===void 0?(r=t,t=0):r=Go(r),n=n===void 0?t0&&n.handleDrag(i.changedTouches[0])}),We(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,u=i.startIndex;o==null||o({endIndex:a,startIndex:u})}),n.detachDragEndListener()}),We(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),We(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),We(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),We(n,"handleSlideDragStart",function(i){var a=ip(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return kL(t,e),jL(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,u=this.props,c=u.gap,s=u.data,f=s.length-1,l=Math.min(i,a),d=Math.max(i,a),p=t.getIndexInRange(o,l),y=t.getIndexInRange(o,d);return{startIndex:p-p%c,endIndex:y===f?f:y-y%c}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,u=i.dataKey,c=Me(a[n],u,n);return V(o)?o(c,n):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,u=i.endX,c=this.props,s=c.x,f=c.width,l=c.travellerWidth,d=c.startIndex,p=c.endIndex,y=c.onChange,h=n.pageX-a;h>0?h=Math.min(h,s+f-l-u,s+f-l-o):h<0&&(h=Math.max(h,s-o,s-u));var v=this.getIndex({startX:o+h,endX:u+h});(v.startIndex!==d||v.endIndex!==p)&&y&&y(v),this.setState({startX:o+h,endX:u+h,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=ip(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,u=i.endX,c=i.startX,s=this.state[o],f=this.props,l=f.x,d=f.width,p=f.travellerWidth,y=f.onChange,h=f.gap,v=f.data,b={startX:this.state.startX,endX:this.state.endX},w=n.pageX-a;w>0?w=Math.min(w,l+d-p-s):w<0&&(w=Math.max(w,l-s)),b[o]=s+w;var x=this.getIndex(b),A=x.startIndex,g=x.endIndex,m=function(){var S=v.length-1;return o==="startX"&&(u>c?A%h===0:g%h===0)||uc?g%h===0:A%h===0)||u>c&&g===S};this.setState(We(We({},o,s+w),"brushMoveStartX",n.pageX),function(){y&&m()&&y(x)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,u=o.scaleValues,c=o.startX,s=o.endX,f=this.state[i],l=u.indexOf(f);if(l!==-1){var d=l+n;if(!(d===-1||d>=u.length)){var p=u[d];i==="startX"&&p>=s||i==="endX"&&p<=c||this.setState(We({},i,p),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,c=n.fill,s=n.stroke;return P.createElement("rect",{stroke:s,fill:c,x:i,y:a,width:o,height:u})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,c=n.data,s=n.children,f=n.padding,l=L.Children.only(s);return l?P.cloneElement(l,{x:i,y:a,width:o,height:u,margin:f,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,u=this,c=this.props,s=c.y,f=c.travellerWidth,l=c.height,d=c.traveller,p=c.ariaLabel,y=c.data,h=c.startIndex,v=c.endIndex,b=Math.max(n,this.props.x),w=Ko(Ko({},X(this.props,!1)),{},{x:b,y:s,width:f,height:l}),x=p||"Min value: ".concat((a=y[h])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=y[v])===null||o===void 0?void 0:o.name);return P.createElement(ne,{tabIndex:0,role:"slider","aria-label":x,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(g){["ArrowLeft","ArrowRight"].includes(g.key)&&(g.preventDefault(),g.stopPropagation(),u.handleTravellerMoveKeyboard(g.key==="ArrowRight"?1:-1,i))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(d,w))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,u=a.height,c=a.stroke,s=a.travellerWidth,f=Math.min(n,i)+s,l=Math.max(Math.abs(i-n)-s,0);return P.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:f,y:o,width:l,height:u})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,u=n.height,c=n.travellerWidth,s=n.stroke,f=this.state,l=f.startX,d=f.endX,p=5,y={pointerEvents:"none",fill:s};return P.createElement(ne,{className:"recharts-brush-texts"},P.createElement(rr,ga({textAnchor:"end",verticalAnchor:"middle",x:Math.min(l,d)-p,y:o+u/2},y),this.getTextOfTick(i)),P.createElement(rr,ga({textAnchor:"start",verticalAnchor:"middle",x:Math.max(l,d)+c+p,y:o+u/2},y),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,u=n.x,c=n.y,s=n.width,f=n.height,l=n.alwaysShowText,d=this.state,p=d.startX,y=d.endX,h=d.isTextActive,v=d.isSlideMoving,b=d.isTravellerMoving,w=d.isTravellerFocused;if(!i||!i.length||!R(u)||!R(c)||!R(s)||!R(f)||s<=0||f<=0)return null;var x=J("recharts-brush",a),A=P.Children.count(o)===1,g=TL("userSelect","none");return P.createElement(ne,{className:x,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:g},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(p,y),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(y,"endX"),(h||v||b||w||l)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,u=n.height,c=n.stroke,s=Math.floor(a+u/2)-1;return P.createElement(P.Fragment,null,P.createElement("rect",{x:i,y:a,width:o,height:u,fill:c,stroke:"none"}),P.createElement("line",{x1:i+1,y1:s,x2:i+o-1,y2:s,fill:"none",stroke:"#fff"}),P.createElement("line",{x1:i+1,y1:s+2,x2:i+o-1,y2:s+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return P.isValidElement(n)?a=P.cloneElement(n,i):V(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,u=n.x,c=n.travellerWidth,s=n.updateId,f=n.startIndex,l=n.endIndex;if(a!==i.prevData||s!==i.prevUpdateId)return Ko({prevData:a,prevTravellerWidth:c,prevUpdateId:s,prevX:u,prevWidth:o},a&&a.length?DL({data:a,width:o,x:u,travellerWidth:c,startIndex:f,endIndex:l}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||u!==i.prevX||c!==i.prevTravellerWidth)){i.scale.range([u,u+o-c]);var d=i.scale.domain().map(function(p){return i.scale(p)});return{prevData:a,prevTravellerWidth:c,prevUpdateId:s,prevX:u,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:d}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,u=a-1;u-o>1;){var c=Math.floor((o+u)/2);n[c]>i?u=c:o=c}return i>=n[u]?u:o}}])}(L.PureComponent);We(Rr,"displayName","Brush");We(Rr,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var RL=Kc;function LL(e,t){var r;return RL(e,function(n,i,a){return r=t(n,i,a),!r}),!!r}var BL=LL,FL=bh,WL=lt,zL=BL,UL=Be,qL=Ya;function HL(e,t,r){var n=UL(e)?FL:zL;return r&&qL(e,t,r)&&(t=void 0),n(e,WL(t))}var GL=HL;const KL=ie(GL);var ut=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},ap=Wh;function XL(e,t,r){t=="__proto__"&&ap?ap(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var VL=XL,YL=VL,ZL=Bh,JL=lt;function QL(e,t){var r={};return t=JL(t),ZL(e,function(n,i,a){YL(r,i,t(n,i,a))}),r}var eB=QL;const tB=ie(eB);function rB(e,t){for(var r=-1,n=e==null?0:e.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function bB(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function xB(e,t){var r=e.x,n=e.y,i=mB(e,hB),a="".concat(r),o=parseInt(a,10),u="".concat(n),c=parseInt(u,10),s="".concat(t.height||i.height),f=parseInt(s,10),l="".concat(t.width||i.width),d=parseInt(l,10);return vn(vn(vn(vn(vn({},t),i),o?{x:o}:{}),c?{y:c}:{}),{},{height:f,width:d,name:t.name,radius:t.radius})}function up(e){return P.createElement(_v,uc({shapeType:"rectangle",propTransformer:xB,activeClassName:"recharts-active-bar"},e))}var wB=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=typeof n=="number";return a?t(n,i):(a||ir(),r)}},OB=["value","background"],kv;function Lr(e){"@babel/helpers - typeof";return Lr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lr(e)}function AB(e,t){if(e==null)return{};var r=PB(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function PB(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ba(){return ba=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(M)0&&Math.abs(I)0&&(C=Math.min((fe||0)-(I[ge-1]||0),C))}),Number.isFinite(C)){var M=C/T,k=h.layout==="vertical"?n.height:n.width;if(h.padding==="gap"&&(O=M*k/2),h.padding==="no-gap"){var D=ke(t.barCategoryGap,M*k),B=M*k/2;O=B-D-(B-D)/k*D}}}i==="xAxis"?S=[n.left+(x.left||0)+(O||0),n.left+n.width-(x.right||0)-(O||0)]:i==="yAxis"?S=c==="horizontal"?[n.top+n.height-(x.bottom||0),n.top+(x.top||0)]:[n.top+(x.top||0)+(O||0),n.top+n.height-(x.bottom||0)-(O||0)]:S=h.range,g&&(S=[S[1],S[0]]);var F=ev(h,a,d),q=F.scale,G=F.realScaleType;q.domain(b).range(S),tv(q);var z=rv(q,tt(tt({},h),{},{realScaleType:G}));i==="xAxis"?($=v==="top"&&!A||v==="bottom"&&A,_=n.left,E=l[m]-$*h.height):i==="yAxis"&&($=v==="left"&&!A||v==="right"&&A,_=l[m]-$*h.width,E=n.top);var K=tt(tt(tt({},h),z),{},{realScaleType:G,x:_,y:E,scale:q,width:i==="xAxis"?n.width:h.width,height:i==="yAxis"?n.height:h.height});return K.bandSize=ia(K,z),!h.hide&&i==="xAxis"?l[m]+=($?-1:1)*K.height:h.hide||(l[m]+=($?-1:1)*K.width),tt(tt({},p),{},go({},y,K))},{})},Lv=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},DB=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return Lv({x:r,y:n},{x:i,y:a})},Bv=function(){function e(t){CB(this,e),this.scale=t}return IB(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(r)+u}default:return this.scale(r)}if(i){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+c}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])}();go(Bv,"EPS",1e-4);var Ps=function(t){var r=Object.keys(t).reduce(function(n,i){return tt(tt({},n),{},go({},i,Bv.create(t[i])))},{});return tt(tt({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,u=a.position;return tB(i,function(c,s){return r[s].apply(c,{bandAware:o,position:u})})},isInRange:function(i){return Iv(i,function(a,o){return r[o].isInRange(a)})}})};function RB(e){return(e%180+180)%180}var LB=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=RB(i),o=a*Math.PI/180,u=Math.atan(n/r),c=o>u&&o-1?i[a?t[o]:o]:void 0}}var UB=zB,qB=Ev;function HB(e){var t=qB(e),r=t%1;return t===t?r?t-r:t:0}var GB=HB,KB=Ih,XB=lt,VB=GB,YB=Math.max;function ZB(e,t,r){var n=e==null?0:e.length;if(!n)return-1;var i=r==null?0:VB(r);return i<0&&(i=YB(n+i,0)),KB(e,XB(t),i)}var JB=ZB,QB=UB,eF=JB,tF=QB(eF),rF=tF;const nF=ie(rF);var iF=e0(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),Ss=L.createContext(void 0),_s=L.createContext(void 0),Fv=L.createContext(void 0),Wv=L.createContext({}),zv=L.createContext(void 0),Uv=L.createContext(0),qv=L.createContext(0),dp=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,u=t.children,c=t.width,s=t.height,f=iF(a);return P.createElement(Ss.Provider,{value:n},P.createElement(_s.Provider,{value:i},P.createElement(Wv.Provider,{value:a},P.createElement(Fv.Provider,{value:f},P.createElement(zv.Provider,{value:o},P.createElement(Uv.Provider,{value:s},P.createElement(qv.Provider,{value:c},u)))))))},aF=function(){return L.useContext(zv)},Hv=function(t){var r=L.useContext(Ss);r==null&&ir();var n=r[t];return n==null&&ir(),n},oF=function(){var t=L.useContext(Ss);return jt(t)},uF=function(){var t=L.useContext(_s),r=nF(t,function(n){return Iv(n.domain,Number.isFinite)});return r||jt(t)},Gv=function(t){var r=L.useContext(_s);r==null&&ir();var n=r[t];return n==null&&ir(),n},cF=function(){var t=L.useContext(Fv);return t},sF=function(){return L.useContext(Wv)},$s=function(){return L.useContext(qv)},Ts=function(){return L.useContext(Uv)};function Br(e){"@babel/helpers - typeof";return Br=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Br(e)}function lF(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fF(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function GF(e,t){return Qv(e,t+1)}function KF(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,u=t.end,c=0,s=1,f=o,l=function(){var y=n==null?void 0:n[c];if(y===void 0)return{v:Qv(n,s)};var h=c,v,b=function(){return v===void 0&&(v=r(y,h)),v},w=y.coordinate,x=c===0||Pa(e,w,b,f,u);x||(c=0,f=o,s+=1),x&&(f=w+e*(b()/2+i),c+=s)},d;s<=a.length;)if(d=l(),d)return d.v;return[]}function ri(e){"@babel/helpers - typeof";return ri=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ri(e)}function xp(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ee(e){for(var t=1;t0?p.coordinate-v*e:p.coordinate})}else a[d]=p=Ee(Ee({},p),{},{tickCoord:p.coordinate});var b=Pa(e,p.tickCoord,h,u,c);b&&(c=p.tickCoord-e*(h()/2+i),a[d]=Ee(Ee({},p),{},{isShow:!0}))},f=o-1;f>=0;f--)s(f);return a}function JF(e,t,r,n,i,a){var o=(n||[]).slice(),u=o.length,c=t.start,s=t.end;if(a){var f=n[u-1],l=r(f,u-1),d=e*(f.coordinate+e*l/2-s);o[u-1]=f=Ee(Ee({},f),{},{tickCoord:d>0?f.coordinate-d*e:f.coordinate});var p=Pa(e,f.tickCoord,function(){return l},c,s);p&&(s=f.tickCoord-e*(l/2+i),o[u-1]=Ee(Ee({},f),{},{isShow:!0}))}for(var y=a?u-1:u,h=function(w){var x=o[w],A,g=function(){return A===void 0&&(A=r(x,w)),A};if(w===0){var m=e*(x.coordinate-e*g()/2-c);o[w]=x=Ee(Ee({},x),{},{tickCoord:m<0?x.coordinate-m*e:x.coordinate})}else o[w]=x=Ee(Ee({},x),{},{tickCoord:x.coordinate});var O=Pa(e,x.tickCoord,g,c,s);O&&(c=x.tickCoord+e*(g()/2+i),o[w]=Ee(Ee({},x),{},{isShow:!0}))},v=0;v=2?Ie(i[1].coordinate-i[0].coordinate):1,b=HF(a,v,p);return c==="equidistantPreserveStart"?KF(v,b,h,i,o):(c==="preserveStart"||c==="preserveStartEnd"?d=JF(v,b,h,i,o,c==="preserveStartEnd"):d=ZF(v,b,h,i,o),d.filter(function(w){return w.isShow}))}var QF=["viewBox"],e3=["viewBox"],t3=["ticks"];function zr(e){"@babel/helpers - typeof";return zr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zr(e)}function gr(){return gr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function r3(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function n3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Op(e,t){for(var r=0;r0?c(this.props):c(p)),o<=0||u<=0||!y||!y.length?null:P.createElement(ne,{className:J("recharts-cartesian-axis",s),ref:function(v){n.layerReference=v}},a&&this.renderAxisLine(),this.renderTicks(y,this.state.fontSize,this.state.letterSpacing),_e.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o;return P.isValidElement(n)?o=P.cloneElement(n,i):V(n)?o=n(i):o=P.createElement(rr,gr({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])}(L.Component);Cs(on,"displayName","CartesianAxis");Cs(on,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var l3=["x1","y1","x2","y2","key"],f3=["offset"];function ar(e){"@babel/helpers - typeof";return ar=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ar(e)}function Ap(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function je(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function y3(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var v3=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,u=t.height,c=t.ry;return P.createElement("rect",{x:i,y:a,ry:c,width:o,height:u,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function rg(e,t){var r;if(P.isValidElement(e))r=P.cloneElement(e,t);else if(V(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,u=t.key,c=Pp(t,l3),s=X(c,!1);s.offset;var f=Pp(s,f3);r=P.createElement("line",Jt({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:u}))}return r}function g3(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,c){var s=je(je({},e),{},{x1:t,y1:u,x2:t+r,y2:u,key:"line-".concat(c),index:c});return rg(i,s)});return P.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function m3(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,c){var s=je(je({},e),{},{x1:u,y1:t,x2:u,y2:t+r,key:"line-".concat(c),index:c});return rg(i,s)});return P.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function b3(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,u=e.horizontalPoints,c=e.horizontal,s=c===void 0?!0:c;if(!s||!t||!t.length)return null;var f=u.map(function(d){return Math.round(d+i-i)}).sort(function(d,p){return d-p});i!==f[0]&&f.unshift(0);var l=f.map(function(d,p){var y=!f[p+1],h=y?i+o-d:f[p+1]-d;if(h<=0)return null;var v=p%t.length;return P.createElement("rect",{key:"react-".concat(p),y:d,x:n,height:h,width:a,stroke:"none",fill:t[v],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return P.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},l)}function x3(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,u=e.width,c=e.height,s=e.verticalPoints;if(!r||!n||!n.length)return null;var f=s.map(function(d){return Math.round(d+a-a)}).sort(function(d,p){return d-p});a!==f[0]&&f.unshift(0);var l=f.map(function(d,p){var y=!f[p+1],h=y?a+u-d:f[p+1]-d;if(h<=0)return null;var v=p%n.length;return P.createElement("rect",{key:"react-".concat(p),x:d,y:o,width:h,height:c,stroke:"none",fill:n[v],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return P.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},l)}var w3=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return Qy(Ms(je(je(je({},on.defaultProps),n),{},{ticks:vt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},O3=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return Qy(Ms(je(je(je({},on.defaultProps),n),{},{ticks:vt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},pr={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function A3(e){var t,r,n,i,a,o,u=$s(),c=Ts(),s=sF(),f=je(je({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:pr.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:pr.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:pr.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:pr.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:pr.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:pr.verticalFill,x:R(e.x)?e.x:s.left,y:R(e.y)?e.y:s.top,width:R(e.width)?e.width:s.width,height:R(e.height)?e.height:s.height}),l=f.x,d=f.y,p=f.width,y=f.height,h=f.syncWithTicks,v=f.horizontalValues,b=f.verticalValues,w=oF(),x=uF();if(!R(p)||p<=0||!R(y)||y<=0||!R(l)||l!==+l||!R(d)||d!==+d)return null;var A=f.verticalCoordinatesGenerator||w3,g=f.horizontalCoordinatesGenerator||O3,m=f.horizontalPoints,O=f.verticalPoints;if((!m||!m.length)&&V(g)){var S=v&&v.length,_=g({yAxis:x?je(je({},x),{},{ticks:S?v:x.ticks}):void 0,width:u,height:c,offset:s},S?!0:h);nt(Array.isArray(_),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(ar(_),"]")),Array.isArray(_)&&(m=_)}if((!O||!O.length)&&V(A)){var E=b&&b.length,$=A({xAxis:w?je(je({},w),{},{ticks:E?b:w.ticks}):void 0,width:u,height:c,offset:s},E?!0:h);nt(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(ar($),"]")),Array.isArray($)&&(O=$)}return P.createElement("g",{className:"recharts-cartesian-grid"},P.createElement(v3,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),P.createElement(g3,Jt({},f,{offset:s,horizontalPoints:m,xAxis:w,yAxis:x})),P.createElement(m3,Jt({},f,{offset:s,verticalPoints:O,xAxis:w,yAxis:x})),P.createElement(b3,Jt({},f,{horizontalPoints:m})),P.createElement(x3,Jt({},f,{verticalPoints:O})))}A3.displayName="CartesianGrid";function Ur(e){"@babel/helpers - typeof";return Ur=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ur(e)}function P3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S3(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function fW(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function dW(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pW(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&R(i)&&R(a)?t.slice(i,a+1):[]};function vg(e){return e==="number"?[0,"auto"]:void 0}var Pc=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,u=Oo(r,t);return n<0||!a||!a.length||n>=u.length?null:a.reduce(function(c,s){var f,l=(f=s.props.data)!==null&&f!==void 0?f:r;l&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(l=l.slice(t.dataStartIndex,t.dataEndIndex+1));var d;if(o.dataKey&&!o.allowDuplicatedCategory){var p=l===void 0?u:l;d=Jo(p,o.dataKey,i)}else d=l&&l[n]||u[n];return d?[].concat(Gr(c),[iv(s,d)]):c},[])},jp=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=SW(a,n),u=t.orderedTooltipTicks,c=t.tooltipAxis,s=t.tooltipTicks,f=nk(o,u,s,c);if(f>=0&&s){var l=s[f]&&s[f].value,d=Pc(t,r,f,l),p=_W(n,u,f,a);return{activeTooltipIndex:f,activeLabel:l,activePayload:d,activeCoordinate:p}}return null},$W=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,d=t.stackOffset,p=Jy(f,a);return n.reduce(function(y,h){var v,b=h.type.defaultProps!==void 0?j(j({},h.type.defaultProps),h.props):h.props,w=b.type,x=b.dataKey,A=b.allowDataOverflow,g=b.allowDuplicatedCategory,m=b.scale,O=b.ticks,S=b.includeHidden,_=b[o];if(y[_])return y;var E=Oo(t.data,{graphicalItems:i.filter(function(z){var K,fe=o in z.props?z.props[o]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[o];return fe===_}),dataStartIndex:c,dataEndIndex:s}),$=E.length,T,C,I;Q3(b.domain,A,w)&&(T=Bu(b.domain,null,A),p&&(w==="number"||m!=="auto")&&(I=xn(E,x,"category")));var M=vg(w);if(!T||T.length===0){var k,D=(k=b.domain)!==null&&k!==void 0?k:M;if(x){if(T=xn(E,x,w),w==="category"&&p){var B=V0(T);g&&B?(C=T,T=va(0,$)):g||(T=nd(D,T,h).reduce(function(z,K){return z.indexOf(K)>=0?z:[].concat(Gr(z),[K])},[]))}else if(w==="category")g?T=T.filter(function(z){return z!==""&&!Q(z)}):T=nd(D,T,h).reduce(function(z,K){return z.indexOf(K)>=0||K===""||Q(K)?z:[].concat(Gr(z),[K])},[]);else if(w==="number"){var F=ck(E,i.filter(function(z){var K,fe,ge=o in z.props?z.props[o]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[o],Fe="hide"in z.props?z.props.hide:(fe=z.type.defaultProps)===null||fe===void 0?void 0:fe.hide;return ge===_&&(S||!Fe)}),x,a,f);F&&(T=F)}p&&(w==="number"||m!=="auto")&&(I=xn(E,x,"category"))}else p?T=va(0,$):u&&u[_]&&u[_].hasStack&&w==="number"?T=d==="expand"?[0,1]:nv(u[_].stackGroups,c,s):T=Zy(E,i.filter(function(z){var K=o in z.props?z.props[o]:z.type.defaultProps[o],fe="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return K===_&&(S||!fe)}),w,f,!0);if(w==="number")T=wc(l,T,_,a,O),D&&(T=Bu(D,T,A));else if(w==="category"&&D){var q=D,G=T.every(function(z){return q.indexOf(z)>=0});G&&(T=q)}}return j(j({},y),{},H({},_,j(j({},b),{},{axisType:a,domain:T,categoricalDomain:I,duplicateDomain:C,originalDomain:(v=b.domain)!==null&&v!==void 0?v:M,isCategorical:p,layout:f})))},{})},TW=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,d=Oo(t.data,{graphicalItems:n,dataStartIndex:c,dataEndIndex:s}),p=d.length,y=Jy(f,a),h=-1;return n.reduce(function(v,b){var w=b.type.defaultProps!==void 0?j(j({},b.type.defaultProps),b.props):b.props,x=w[o],A=vg("number");if(!v[x]){h++;var g;return y?g=va(0,p):u&&u[x]&&u[x].hasStack?(g=nv(u[x].stackGroups,c,s),g=wc(l,g,x,a)):(g=Bu(A,Zy(d,n.filter(function(m){var O,S,_=o in m.props?m.props[o]:(O=m.type.defaultProps)===null||O===void 0?void 0:O[o],E="hide"in m.props?m.props.hide:(S=m.type.defaultProps)===null||S===void 0?void 0:S.hide;return _===x&&!E}),"number",f),i.defaultProps.allowDataOverflow),g=wc(l,g,x,a)),j(j({},v),{},H({},x,j(j({axisType:a},i.defaultProps),{},{hide:!0,orientation:qe(AW,"".concat(a,".").concat(h%2),null),domain:g,originalDomain:A,isCategorical:y,layout:f})))}return v},{})},EW=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.children,l="".concat(i,"Id"),d=Ve(f,a),p={};return d.length?p=$W(t,{axes:d,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s}):o&&o.length&&(p=TW(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s})),p},jW=function(t){var r=jt(t),n=vt(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:Xc(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:ia(r,n)}},Mp=function(t){var r=t.children,n=t.defaultShowTooltip,i=ze(r,Rr),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},MW=function(t){return!t||!t.length?!1:t.some(function(r){var n=gt(r&&r.type);return n&&n.indexOf("Bar")>=0})},Cp=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},CW=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,u=t.yAxisMap,c=u===void 0?{}:u,s=n.width,f=n.height,l=n.children,d=n.margin||{},p=ze(l,Rr),y=ze(l,xr),h=Object.keys(c).reduce(function(g,m){var O=c[m],S=O.orientation;return!O.mirror&&!O.hide?j(j({},g),{},H({},S,g[S]+O.width)):g},{left:d.left||0,right:d.right||0}),v=Object.keys(o).reduce(function(g,m){var O=o[m],S=O.orientation;return!O.mirror&&!O.hide?j(j({},g),{},H({},S,qe(g,"".concat(S))+O.height)):g},{top:d.top||0,bottom:d.bottom||0}),b=j(j({},v),h),w=b.bottom;p&&(b.bottom+=p.props.height||Rr.defaultProps.height),y&&r&&(b=ok(b,i,n,r));var x=s-b.left-b.right,A=f-b.top-b.bottom;return j(j({brushBottom:w},b),{},{width:Math.max(x,0),height:Math.max(A,0)})},IW=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},gg=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,u=o===void 0?["axis"]:o,c=t.axisComponents,s=t.legendContent,f=t.formatAxisMap,l=t.defaultProps,d=function(b,w){var x=w.graphicalItems,A=w.stackGroups,g=w.offset,m=w.updateId,O=w.dataStartIndex,S=w.dataEndIndex,_=b.barSize,E=b.layout,$=b.barGap,T=b.barCategoryGap,C=b.maxBarSize,I=Cp(E),M=I.numericAxisName,k=I.cateAxisName,D=MW(x),B=[];return x.forEach(function(F,q){var G=Oo(b.data,{graphicalItems:[F],dataStartIndex:O,dataEndIndex:S}),z=F.type.defaultProps!==void 0?j(j({},F.type.defaultProps),F.props):F.props,K=z.dataKey,fe=z.maxBarSize,ge=z["".concat(M,"Id")],Fe=z["".concat(k,"Id")],Bt={},De=c.reduce(function(Ft,Wt){var Ao=w["".concat(Wt.axisType,"Map")],Ns=z["".concat(Wt.axisType,"Id")];Ao&&Ao[Ns]||Wt.axisType==="zAxis"||ir();var Ds=Ao[Ns];return j(j({},Ft),{},H(H({},Wt.axisType,Ds),"".concat(Wt.axisType,"Ticks"),vt(Ds)))},Bt),W=De[k],Y=De["".concat(k,"Ticks")],Z=A&&A[ge]&&A[ge].hasStack&&gk(F,A[ge].stackGroups),N=gt(F.type).indexOf("Bar")>=0,ye=ia(W,Y),ee=[],xe=D&&ik({barSize:_,stackGroups:A,totalSize:IW(De,k)});if(N){var we,Re,$t=Q(fe)?C:fe,lr=(we=(Re=ia(W,Y,!0))!==null&&Re!==void 0?Re:$t)!==null&&we!==void 0?we:0;ee=ak({barGap:$,barCategoryGap:T,bandSize:lr!==ye?lr:ye,sizeList:xe[Fe],maxBarSize:$t}),lr!==ye&&(ee=ee.map(function(Ft){return j(j({},Ft),{},{position:j(j({},Ft.position),{},{offset:Ft.position.offset-lr/2})})}))}var hi=F&&F.type&&F.type.getComposedData;hi&&B.push({props:j(j({},hi(j(j({},De),{},{displayedData:G,props:b,dataKey:K,item:F,bandSize:ye,barPosition:ee,offset:g,stackedData:Z,layout:E,dataStartIndex:O,dataEndIndex:S}))),{},H(H(H({key:F.key||"item-".concat(q)},M,De[M]),k,De[k]),"animationId",m)),childIndex:ox(F,b.children),item:F})}),B},p=function(b,w){var x=b.props,A=b.dataStartIndex,g=b.dataEndIndex,m=b.updateId;if(!Ys({props:x}))return null;var O=x.children,S=x.layout,_=x.stackOffset,E=x.data,$=x.reverseStackOrder,T=Cp(S),C=T.numericAxisName,I=T.cateAxisName,M=Ve(O,n),k=yk(E,M,"".concat(C,"Id"),"".concat(I,"Id"),_,$),D=c.reduce(function(z,K){var fe="".concat(K.axisType,"Map");return j(j({},z),{},H({},fe,EW(x,j(j({},K),{},{graphicalItems:M,stackGroups:K.axisType===C&&k,dataStartIndex:A,dataEndIndex:g}))))},{}),B=CW(j(j({},D),{},{props:x,graphicalItems:M}),w==null?void 0:w.legendBBox);Object.keys(D).forEach(function(z){D[z]=f(x,D[z],B,z.replace("Map",""),r)});var F=D["".concat(I,"Map")],q=jW(F),G=d(x,j(j({},D),{},{dataStartIndex:A,dataEndIndex:g,updateId:m,graphicalItems:M,stackGroups:k,offset:B}));return j(j({formattedGraphicalItems:G,graphicalItems:M,offset:B,stackGroups:k},q),D)},y=function(v){function b(w){var x,A,g;return dW(this,b),g=yW(this,b,[w]),H(g,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),H(g,"accessibilityManager",new J3),H(g,"handleLegendBBoxUpdate",function(m){if(m){var O=g.state,S=O.dataStartIndex,_=O.dataEndIndex,E=O.updateId;g.setState(j({legendBBox:m},p({props:g.props,dataStartIndex:S,dataEndIndex:_,updateId:E},j(j({},g.state),{},{legendBBox:m}))))}}),H(g,"handleReceiveSyncEvent",function(m,O,S){if(g.props.syncId===m){if(S===g.eventEmitterSymbol&&typeof g.props.syncMethod!="function")return;g.applySyncEvent(O)}}),H(g,"handleBrushChange",function(m){var O=m.startIndex,S=m.endIndex;if(O!==g.state.dataStartIndex||S!==g.state.dataEndIndex){var _=g.state.updateId;g.setState(function(){return j({dataStartIndex:O,dataEndIndex:S},p({props:g.props,dataStartIndex:O,dataEndIndex:S,updateId:_},g.state))}),g.triggerSyncEvent({dataStartIndex:O,dataEndIndex:S})}}),H(g,"handleMouseEnter",function(m){var O=g.getMouseInfo(m);if(O){var S=j(j({},O),{},{isTooltipActive:!0});g.setState(S),g.triggerSyncEvent(S);var _=g.props.onMouseEnter;V(_)&&_(S,m)}}),H(g,"triggeredAfterMouseMove",function(m){var O=g.getMouseInfo(m),S=O?j(j({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};g.setState(S),g.triggerSyncEvent(S);var _=g.props.onMouseMove;V(_)&&_(S,m)}),H(g,"handleItemMouseEnter",function(m){g.setState(function(){return{isTooltipActive:!0,activeItem:m,activePayload:m.tooltipPayload,activeCoordinate:m.tooltipPosition||{x:m.cx,y:m.cy}}})}),H(g,"handleItemMouseLeave",function(){g.setState(function(){return{isTooltipActive:!1}})}),H(g,"handleMouseMove",function(m){m.persist(),g.throttleTriggeredAfterMouseMove(m)}),H(g,"handleMouseLeave",function(m){g.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};g.setState(O),g.triggerSyncEvent(O);var S=g.props.onMouseLeave;V(S)&&S(O,m)}),H(g,"handleOuterEvent",function(m){var O=ax(m),S=qe(g.props,"".concat(O));if(O&&V(S)){var _,E;/.*touch.*/i.test(O)?E=g.getMouseInfo(m.changedTouches[0]):E=g.getMouseInfo(m),S((_=E)!==null&&_!==void 0?_:{},m)}}),H(g,"handleClick",function(m){var O=g.getMouseInfo(m);if(O){var S=j(j({},O),{},{isTooltipActive:!0});g.setState(S),g.triggerSyncEvent(S);var _=g.props.onClick;V(_)&&_(S,m)}}),H(g,"handleMouseDown",function(m){var O=g.props.onMouseDown;if(V(O)){var S=g.getMouseInfo(m);O(S,m)}}),H(g,"handleMouseUp",function(m){var O=g.props.onMouseUp;if(V(O)){var S=g.getMouseInfo(m);O(S,m)}}),H(g,"handleTouchMove",function(m){m.changedTouches!=null&&m.changedTouches.length>0&&g.throttleTriggeredAfterMouseMove(m.changedTouches[0])}),H(g,"handleTouchStart",function(m){m.changedTouches!=null&&m.changedTouches.length>0&&g.handleMouseDown(m.changedTouches[0])}),H(g,"handleTouchEnd",function(m){m.changedTouches!=null&&m.changedTouches.length>0&&g.handleMouseUp(m.changedTouches[0])}),H(g,"handleDoubleClick",function(m){var O=g.props.onDoubleClick;if(V(O)){var S=g.getMouseInfo(m);O(S,m)}}),H(g,"handleContextMenu",function(m){var O=g.props.onContextMenu;if(V(O)){var S=g.getMouseInfo(m);O(S,m)}}),H(g,"triggerSyncEvent",function(m){g.props.syncId!==void 0&&Vo.emit(Yo,g.props.syncId,m,g.eventEmitterSymbol)}),H(g,"applySyncEvent",function(m){var O=g.props,S=O.layout,_=O.syncMethod,E=g.state.updateId,$=m.dataStartIndex,T=m.dataEndIndex;if(m.dataStartIndex!==void 0||m.dataEndIndex!==void 0)g.setState(j({dataStartIndex:$,dataEndIndex:T},p({props:g.props,dataStartIndex:$,dataEndIndex:T,updateId:E},g.state)));else if(m.activeTooltipIndex!==void 0){var C=m.chartX,I=m.chartY,M=m.activeTooltipIndex,k=g.state,D=k.offset,B=k.tooltipTicks;if(!D)return;if(typeof _=="function")M=_(B,m);else if(_==="value"){M=-1;for(var F=0;F=0){var Z,N;if(C.dataKey&&!C.allowDuplicatedCategory){var ye=typeof C.dataKey=="function"?Y:"payload.".concat(C.dataKey.toString());Z=Jo(F,ye,M),N=q&&G&&Jo(G,ye,M)}else Z=F==null?void 0:F[I],N=q&&G&&G[I];if(Fe||ge){var ee=m.props.activeIndex!==void 0?m.props.activeIndex:I;return[L.cloneElement(m,j(j(j({},_.props),De),{},{activeIndex:ee})),null,null]}if(!Q(Z))return[W].concat(Gr(g.renderActivePoints({item:_,activePoint:Z,basePoint:N,childIndex:I,isRange:q})))}else{var xe,we=(xe=g.getItemByXY(g.state.activeCoordinate))!==null&&xe!==void 0?xe:{graphicalItem:W},Re=we.graphicalItem,$t=Re.item,lr=$t===void 0?m:$t,hi=Re.childIndex,Ft=j(j(j({},_.props),De),{},{activeIndex:hi});return[L.cloneElement(lr,Ft),null,null]}return q?[W,null,null]:[W,null]}),H(g,"renderCustomized",function(m,O,S){return L.cloneElement(m,j(j({key:"recharts-customized-".concat(S)},g.props),g.state))}),H(g,"renderMap",{CartesianGrid:{handler:Ei,once:!0},ReferenceArea:{handler:g.renderReferenceElement},ReferenceLine:{handler:Ei},ReferenceDot:{handler:g.renderReferenceElement},XAxis:{handler:Ei},YAxis:{handler:Ei},Brush:{handler:g.renderBrush,once:!0},Bar:{handler:g.renderGraphicChild},Line:{handler:g.renderGraphicChild},Area:{handler:g.renderGraphicChild},Radar:{handler:g.renderGraphicChild},RadialBar:{handler:g.renderGraphicChild},Scatter:{handler:g.renderGraphicChild},Pie:{handler:g.renderGraphicChild},Funnel:{handler:g.renderGraphicChild},Tooltip:{handler:g.renderCursor,once:!0},PolarGrid:{handler:g.renderPolarGrid,once:!0},PolarAngleAxis:{handler:g.renderPolarAxis},PolarRadiusAxis:{handler:g.renderPolarAxis},Customized:{handler:g.renderCustomized}}),g.clipPathId="".concat((x=w.id)!==null&&x!==void 0?x:ci("recharts"),"-clip"),g.throttleTriggeredAfterMouseMove=Xh(g.triggeredAfterMouseMove,(A=w.throttleDelay)!==null&&A!==void 0?A:1e3/60),g.state={},g}return mW(b,v),hW(b,[{key:"componentDidMount",value:function(){var x,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(x=this.props.margin.left)!==null&&x!==void 0?x:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var x=this.props,A=x.children,g=x.data,m=x.height,O=x.layout,S=ze(A,dt);if(S){var _=S.props.defaultIndex;if(!(typeof _!="number"||_<0||_>this.state.tooltipTicks.length-1)){var E=this.state.tooltipTicks[_]&&this.state.tooltipTicks[_].value,$=Pc(this.state,g,_,E),T=this.state.tooltipTicks[_].coordinate,C=(this.state.offset.top+m)/2,I=O==="horizontal",M=I?{x:T,y:C}:{y:T,x:C},k=this.state.formattedGraphicalItems.find(function(B){var F=B.item;return F.type.name==="Scatter"});k&&(M=j(j({},M),k.props.points[_].tooltipPosition),$=k.props.points[_].tooltipPayload);var D={activeTooltipIndex:_,isTooltipActive:!0,activeLabel:E,activePayload:$,activeCoordinate:M};this.setState(D),this.renderCursor(S),this.accessibilityManager.setIndex(_)}}}},{key:"getSnapshotBeforeUpdate",value:function(x,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==x.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==x.margin){var g,m;this.accessibilityManager.setDetails({offset:{left:(g=this.props.margin.left)!==null&&g!==void 0?g:0,top:(m=this.props.margin.top)!==null&&m!==void 0?m:0}})}return null}},{key:"componentDidUpdate",value:function(x){eu([ze(x.children,dt)],[ze(this.props.children,dt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var x=ze(this.props.children,dt);if(x&&typeof x.props.shared=="boolean"){var A=x.props.shared?"axis":"item";return u.indexOf(A)>=0?A:a}return a}},{key:"getMouseInfo",value:function(x){if(!this.container)return null;var A=this.container,g=A.getBoundingClientRect(),m=ME(g),O={chartX:Math.round(x.pageX-m.left),chartY:Math.round(x.pageY-m.top)},S=g.width/A.offsetWidth||1,_=this.inRange(O.chartX,O.chartY,S);if(!_)return null;var E=this.state,$=E.xAxisMap,T=E.yAxisMap,C=this.getTooltipEventType();if(C!=="axis"&&$&&T){var I=jt($).scale,M=jt(T).scale,k=I&&I.invert?I.invert(O.chartX):null,D=M&&M.invert?M.invert(O.chartY):null;return j(j({},O),{},{xValue:k,yValue:D})}var B=jp(this.state,this.props.data,this.props.layout,_);return B?j(j({},O),B):null}},{key:"inRange",value:function(x,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,m=this.props.layout,O=x/g,S=A/g;if(m==="horizontal"||m==="vertical"){var _=this.state.offset,E=O>=_.left&&O<=_.left+_.width&&S>=_.top&&S<=_.top+_.height;return E?{x:O,y:S}:null}var $=this.state,T=$.angleAxisMap,C=$.radiusAxisMap;if(T&&C){var I=jt(T);return od({x:O,y:S},I)}return null}},{key:"parseEventsOfWrapper",value:function(){var x=this.props.children,A=this.getTooltipEventType(),g=ze(x,dt),m={};g&&A==="axis"&&(g.props.trigger==="click"?m={onClick:this.handleClick}:m={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Mi(this.props,this.handleOuterEvent);return j(j({},O),m)}},{key:"addListener",value:function(){Vo.on(Yo,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Vo.removeListener(Yo,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(x,A,g){for(var m=this.state.formattedGraphicalItems,O=0,S=m.length;Or in a?Ir(a,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[r]=t;var y=(a,r,t)=>Rr(a,typeof r!="symbol"?r+"":r,t);import{c as Z}from"./ui-utils-BNSC_Jv-.js";import{r as v,R as Fr,b as m,d as Lr}from"./react-core-D_V7s-9r.js";import{s as Wr,j as Ge,t as Ar,v as ft,w as Hr,x as $r,y as Qr,z as Br}from"./radix-core-ByqQ8fsu.js";function C(a){const r=Object.prototype.toString.call(a);return a instanceof Date||typeof a=="object"&&r==="[object Date]"?new a.constructor(+a):typeof a=="number"||r==="[object Number]"||typeof a=="string"||r==="[object String]"?new Date(a):new Date(NaN)}function oe(a,r){return a instanceof Date?new a.constructor(r):new Date(r)}function qr(a,r){const t=C(a);return isNaN(r)?oe(a,NaN):(r&&t.setDate(t.getDate()+r),t)}function Kr(a,r){const t=C(a);if(isNaN(r))return oe(a,NaN);if(!r)return t;const e=t.getDate(),n=oe(a,t.getTime());n.setMonth(t.getMonth()+r+1,0);const s=n.getDate();return e>=s?n:(t.setFullYear(n.getFullYear(),n.getMonth(),e),t)}function ze(a,r){const{years:t=0,months:e=0,weeks:n=0,days:s=0,hours:o=0,minutes:i=0,seconds:c=0}=r,u=C(a),l=e||t?Kr(u,e+t*12):u,d=s||n?qr(l,s+n*7):l,f=i+o*60,h=(c+f*60)*1e3;return oe(a,d.getTime()+h)}const Jn=6048e5,Vr=864e5,it=6e4,rn=36e5,mn=525600,Qe=43200,xt=1440;let Ur={};function Le(){return Ur}function ct(a,r){var i,c,u,l;const t=Le(),e=(r==null?void 0:r.weekStartsOn)??((c=(i=r==null?void 0:r.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??t.weekStartsOn??((l=(u=t.locale)==null?void 0:u.options)==null?void 0:l.weekStartsOn)??0,n=C(a),s=n.getDay(),o=(s=n.getTime()?t+1:r.getTime()>=o.getTime()?t:t-1}function gn(a){const r=C(a);return r.setHours(0,0,0,0),r}function qe(a){const r=C(a),t=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()));return t.setUTCFullYear(r.getFullYear()),+a-+t}function tr(a,r){const t=gn(a),e=gn(r),n=+t-qe(t),s=+e-qe(e);return Math.round((n-s)/Vr)}function jr(a){const r=er(a),t=oe(a,0);return t.setFullYear(r,0,4),t.setHours(0,0,0,0),St(t)}function Ne(a,r){const t=C(a),e=C(r),n=t.getTime()-e.getTime();return n<0?-1:n>0?1:n}function nr(a){return oe(a,Date.now())}function Xr(a){return a instanceof Date||typeof a=="object"&&Object.prototype.toString.call(a)==="[object Date]"}function Gr(a){if(!Xr(a)&&typeof a!="number")return!1;const r=C(a);return!isNaN(Number(r))}function zr(a,r){const t=C(a),e=C(r),n=t.getFullYear()-e.getFullYear(),s=t.getMonth()-e.getMonth();return n*12+s}function Zr(a,r){const t=C(a),e=C(r);return t.getFullYear()-e.getFullYear()}function Jr(a,r){const t=C(a),e=C(r),n=wn(t,e),s=Math.abs(tr(t,e));t.setDate(t.getDate()-n*s);const o=+(wn(t,e)===-n),i=n*(s-o);return i===0?0:i}function wn(a,r){const t=a.getFullYear()-r.getFullYear()||a.getMonth()-r.getMonth()||a.getDate()-r.getDate()||a.getHours()-r.getHours()||a.getMinutes()-r.getMinutes()||a.getSeconds()-r.getSeconds()||a.getMilliseconds()-r.getMilliseconds();return t<0?-1:t>0?1:t}function Ft(a){return r=>{const e=(a?Math[a]:Math.trunc)(r);return e===0?0:e}}function an(a,r){return+C(a)-+C(r)}function ea(a,r,t){const e=an(a,r)/rn;return Ft(t==null?void 0:t.roundingMethod)(e)}function ta(a,r,t){const e=an(a,r)/it;return Ft(t==null?void 0:t.roundingMethod)(e)}function na(a){const r=C(a);return r.setHours(23,59,59,999),r}function ra(a){const r=C(a),t=r.getMonth();return r.setFullYear(r.getFullYear(),t+1,0),r.setHours(23,59,59,999),r}function aa(a){const r=C(a);return+na(r)==+ra(r)}function rr(a,r){const t=C(a),e=C(r),n=Ne(t,e),s=Math.abs(zr(t,e));let o;if(s<1)o=0;else{t.getMonth()===1&&t.getDate()>27&&t.setDate(30),t.setMonth(t.getMonth()-n*s);let i=Ne(t,e)===-n;aa(C(a))&&s===1&&Ne(a,e)===1&&(i=!1),o=n*(s-Number(i))}return o===0?0:o}function ar(a,r,t){const e=an(a,r)/1e3;return Ft(t==null?void 0:t.roundingMethod)(e)}function sa(a,r){const t=C(a),e=C(r),n=Ne(t,e),s=Math.abs(Zr(t,e));t.setFullYear(1584),e.setFullYear(1584);const o=Ne(t,e)===-n,i=n*(s-+o);return i===0?0:i}function oa(a){const r=C(a),t=oe(a,0);return t.setFullYear(r.getFullYear(),0,1),t.setHours(0,0,0,0),t}const ia={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},ca=(a,r,t)=>{let e;const n=ia[a];return typeof n=="string"?e=n:r===1?e=n.one:e=n.other.replace("{{count}}",r.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+e:e+" ago":e};function Bt(a){return(r={})=>{const t=r.width?String(r.width):a.defaultWidth;return a.formats[t]||a.formats[a.defaultWidth]}}const ua={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},la={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},da={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},fa={date:Bt({formats:ua,defaultWidth:"full"}),time:Bt({formats:la,defaultWidth:"full"}),dateTime:Bt({formats:da,defaultWidth:"full"})},pa={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ha=(a,r,t,e)=>pa[a];function Ze(a){return(r,t)=>{const e=t!=null&&t.context?String(t.context):"standalone";let n;if(e==="formatting"&&a.formattingValues){const o=a.defaultFormattingWidth||a.defaultWidth,i=t!=null&&t.width?String(t.width):o;n=a.formattingValues[i]||a.formattingValues[o]}else{const o=a.defaultWidth,i=t!=null&&t.width?String(t.width):a.defaultWidth;n=a.values[i]||a.values[o]}const s=a.argumentCallback?a.argumentCallback(r):r;return n[s]}}const ma={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ga={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},wa={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Da={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},ya={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},va={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ba=(a,r)=>{const t=Number(a),e=t%100;if(e>20||e<10)switch(e%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},ka={ordinalNumber:ba,era:Ze({values:ma,defaultWidth:"wide"}),quarter:Ze({values:ga,defaultWidth:"wide",argumentCallback:a=>a-1}),month:Ze({values:wa,defaultWidth:"wide"}),day:Ze({values:Da,defaultWidth:"wide"}),dayPeriod:Ze({values:ya,defaultWidth:"wide",formattingValues:va,defaultFormattingWidth:"wide"})};function Je(a){return(r,t={})=>{const e=t.width,n=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],s=r.match(n);if(!s)return null;const o=s[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],c=Array.isArray(i)?Ma(i,d=>d.test(o)):_a(i,d=>d.test(o));let u;u=a.valueCallback?a.valueCallback(c):c,u=t.valueCallback?t.valueCallback(u):u;const l=r.slice(o.length);return{value:u,rest:l}}}function _a(a,r){for(const t in a)if(Object.prototype.hasOwnProperty.call(a,t)&&r(a[t]))return t}function Ma(a,r){for(let t=0;t{const e=r.match(a.matchPattern);if(!e)return null;const n=e[0],s=r.match(a.parsePattern);if(!s)return null;let o=a.valueCallback?a.valueCallback(s[0]):s[0];o=t.valueCallback?t.valueCallback(o):o;const i=r.slice(n.length);return{value:o,rest:i}}}const Sa=/^(\d+)(th|st|nd|rd)?/i,Ca=/\d+/i,Pa={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Ta={any:[/^b/i,/^(a|c)/i]},Oa={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Ea={any:[/1/i,/2/i,/3/i,/4/i]},Na={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Ya={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Ia={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Ra={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Fa={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},La={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Wa={ordinalNumber:xa({matchPattern:Sa,parsePattern:Ca,valueCallback:a=>parseInt(a,10)}),era:Je({matchPatterns:Pa,defaultMatchWidth:"wide",parsePatterns:Ta,defaultParseWidth:"any"}),quarter:Je({matchPatterns:Oa,defaultMatchWidth:"wide",parsePatterns:Ea,defaultParseWidth:"any",valueCallback:a=>a+1}),month:Je({matchPatterns:Na,defaultMatchWidth:"wide",parsePatterns:Ya,defaultParseWidth:"any"}),day:Je({matchPatterns:Ia,defaultMatchWidth:"wide",parsePatterns:Ra,defaultParseWidth:"any"}),dayPeriod:Je({matchPatterns:Fa,defaultMatchWidth:"any",parsePatterns:La,defaultParseWidth:"any"})},Lt={code:"en-US",formatDistance:ca,formatLong:fa,formatRelative:ha,localize:ka,match:Wa,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Aa(a){const r=C(a);return tr(r,oa(r))+1}function Ha(a){const r=C(a),t=+St(r)-+jr(r);return Math.round(t/Jn)+1}function sr(a,r){var l,d,f,p;const t=C(a),e=t.getFullYear(),n=Le(),s=(r==null?void 0:r.firstWeekContainsDate)??((d=(l=r==null?void 0:r.locale)==null?void 0:l.options)==null?void 0:d.firstWeekContainsDate)??n.firstWeekContainsDate??((p=(f=n.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,o=oe(a,0);o.setFullYear(e+1,0,s),o.setHours(0,0,0,0);const i=ct(o,r),c=oe(a,0);c.setFullYear(e,0,s),c.setHours(0,0,0,0);const u=ct(c,r);return t.getTime()>=i.getTime()?e+1:t.getTime()>=u.getTime()?e:e-1}function $a(a,r){var i,c,u,l;const t=Le(),e=(r==null?void 0:r.firstWeekContainsDate)??((c=(i=r==null?void 0:r.locale)==null?void 0:i.options)==null?void 0:c.firstWeekContainsDate)??t.firstWeekContainsDate??((l=(u=t.locale)==null?void 0:u.options)==null?void 0:l.firstWeekContainsDate)??1,n=sr(a,r),s=oe(a,0);return s.setFullYear(n,0,e),s.setHours(0,0,0,0),ct(s,r)}function Qa(a,r){const t=C(a),e=+ct(t,r)-+$a(t,r);return Math.round(e/Jn)+1}function T(a,r){const t=a<0?"-":"",e=Math.abs(a).toString().padStart(r,"0");return t+e}const _e={y(a,r){const t=a.getFullYear(),e=t>0?t:1-t;return T(r==="yy"?e%100:e,r.length)},M(a,r){const t=a.getMonth();return r==="M"?String(t+1):T(t+1,2)},d(a,r){return T(a.getDate(),r.length)},a(a,r){const t=a.getHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(a,r){return T(a.getHours()%12||12,r.length)},H(a,r){return T(a.getHours(),r.length)},m(a,r){return T(a.getMinutes(),r.length)},s(a,r){return T(a.getSeconds(),r.length)},S(a,r){const t=r.length,e=a.getMilliseconds(),n=Math.trunc(e*Math.pow(10,t-3));return T(n,r.length)}},Ae={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Dn={G:function(a,r,t){const e=a.getFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return t.era(e,{width:"abbreviated"});case"GGGGG":return t.era(e,{width:"narrow"});case"GGGG":default:return t.era(e,{width:"wide"})}},y:function(a,r,t){if(r==="yo"){const e=a.getFullYear(),n=e>0?e:1-e;return t.ordinalNumber(n,{unit:"year"})}return _e.y(a,r)},Y:function(a,r,t,e){const n=sr(a,e),s=n>0?n:1-n;if(r==="YY"){const o=s%100;return T(o,2)}return r==="Yo"?t.ordinalNumber(s,{unit:"year"}):T(s,r.length)},R:function(a,r){const t=er(a);return T(t,r.length)},u:function(a,r){const t=a.getFullYear();return T(t,r.length)},Q:function(a,r,t){const e=Math.ceil((a.getMonth()+1)/3);switch(r){case"Q":return String(e);case"QQ":return T(e,2);case"Qo":return t.ordinalNumber(e,{unit:"quarter"});case"QQQ":return t.quarter(e,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(e,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(e,{width:"wide",context:"formatting"})}},q:function(a,r,t){const e=Math.ceil((a.getMonth()+1)/3);switch(r){case"q":return String(e);case"qq":return T(e,2);case"qo":return t.ordinalNumber(e,{unit:"quarter"});case"qqq":return t.quarter(e,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(e,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(e,{width:"wide",context:"standalone"})}},M:function(a,r,t){const e=a.getMonth();switch(r){case"M":case"MM":return _e.M(a,r);case"Mo":return t.ordinalNumber(e+1,{unit:"month"});case"MMM":return t.month(e,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(e,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(e,{width:"wide",context:"formatting"})}},L:function(a,r,t){const e=a.getMonth();switch(r){case"L":return String(e+1);case"LL":return T(e+1,2);case"Lo":return t.ordinalNumber(e+1,{unit:"month"});case"LLL":return t.month(e,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(e,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(e,{width:"wide",context:"standalone"})}},w:function(a,r,t,e){const n=Qa(a,e);return r==="wo"?t.ordinalNumber(n,{unit:"week"}):T(n,r.length)},I:function(a,r,t){const e=Ha(a);return r==="Io"?t.ordinalNumber(e,{unit:"week"}):T(e,r.length)},d:function(a,r,t){return r==="do"?t.ordinalNumber(a.getDate(),{unit:"date"}):_e.d(a,r)},D:function(a,r,t){const e=Aa(a);return r==="Do"?t.ordinalNumber(e,{unit:"dayOfYear"}):T(e,r.length)},E:function(a,r,t){const e=a.getDay();switch(r){case"E":case"EE":case"EEE":return t.day(e,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(e,{width:"short",context:"formatting"});case"EEEE":default:return t.day(e,{width:"wide",context:"formatting"})}},e:function(a,r,t,e){const n=a.getDay(),s=(n-e.weekStartsOn+8)%7||7;switch(r){case"e":return String(s);case"ee":return T(s,2);case"eo":return t.ordinalNumber(s,{unit:"day"});case"eee":return t.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(n,{width:"short",context:"formatting"});case"eeee":default:return t.day(n,{width:"wide",context:"formatting"})}},c:function(a,r,t,e){const n=a.getDay(),s=(n-e.weekStartsOn+8)%7||7;switch(r){case"c":return String(s);case"cc":return T(s,r.length);case"co":return t.ordinalNumber(s,{unit:"day"});case"ccc":return t.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(n,{width:"narrow",context:"standalone"});case"cccccc":return t.day(n,{width:"short",context:"standalone"});case"cccc":default:return t.day(n,{width:"wide",context:"standalone"})}},i:function(a,r,t){const e=a.getDay(),n=e===0?7:e;switch(r){case"i":return String(n);case"ii":return T(n,r.length);case"io":return t.ordinalNumber(n,{unit:"day"});case"iii":return t.day(e,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(e,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(e,{width:"short",context:"formatting"});case"iiii":default:return t.day(e,{width:"wide",context:"formatting"})}},a:function(a,r,t){const n=a.getHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(a,r,t){const e=a.getHours();let n;switch(e===12?n=Ae.noon:e===0?n=Ae.midnight:n=e/12>=1?"pm":"am",r){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(a,r,t){const e=a.getHours();let n;switch(e>=17?n=Ae.evening:e>=12?n=Ae.afternoon:e>=4?n=Ae.morning:n=Ae.night,r){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(a,r,t){if(r==="ho"){let e=a.getHours()%12;return e===0&&(e=12),t.ordinalNumber(e,{unit:"hour"})}return _e.h(a,r)},H:function(a,r,t){return r==="Ho"?t.ordinalNumber(a.getHours(),{unit:"hour"}):_e.H(a,r)},K:function(a,r,t){const e=a.getHours()%12;return r==="Ko"?t.ordinalNumber(e,{unit:"hour"}):T(e,r.length)},k:function(a,r,t){let e=a.getHours();return e===0&&(e=24),r==="ko"?t.ordinalNumber(e,{unit:"hour"}):T(e,r.length)},m:function(a,r,t){return r==="mo"?t.ordinalNumber(a.getMinutes(),{unit:"minute"}):_e.m(a,r)},s:function(a,r,t){return r==="so"?t.ordinalNumber(a.getSeconds(),{unit:"second"}):_e.s(a,r)},S:function(a,r){return _e.S(a,r)},X:function(a,r,t){const e=a.getTimezoneOffset();if(e===0)return"Z";switch(r){case"X":return vn(e);case"XXXX":case"XX":return Te(e);case"XXXXX":case"XXX":default:return Te(e,":")}},x:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"x":return vn(e);case"xxxx":case"xx":return Te(e);case"xxxxx":case"xxx":default:return Te(e,":")}},O:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+yn(e,":");case"OOOO":default:return"GMT"+Te(e,":")}},z:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+yn(e,":");case"zzzz":default:return"GMT"+Te(e,":")}},t:function(a,r,t){const e=Math.trunc(a.getTime()/1e3);return T(e,r.length)},T:function(a,r,t){const e=a.getTime();return T(e,r.length)}};function yn(a,r=""){const t=a>0?"-":"+",e=Math.abs(a),n=Math.trunc(e/60),s=e%60;return s===0?t+String(n):t+String(n)+r+T(s,2)}function vn(a,r){return a%60===0?(a>0?"-":"+")+T(Math.abs(a)/60,2):Te(a,r)}function Te(a,r=""){const t=a>0?"-":"+",e=Math.abs(a),n=T(Math.trunc(e/60),2),s=T(e%60,2);return t+n+r+s}const bn=(a,r)=>{switch(a){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},or=(a,r)=>{switch(a){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},Ba=(a,r)=>{const t=a.match(/(P+)(p+)?/)||[],e=t[1],n=t[2];if(!n)return bn(a,r);let s;switch(e){case"P":s=r.dateTime({width:"short"});break;case"PP":s=r.dateTime({width:"medium"});break;case"PPP":s=r.dateTime({width:"long"});break;case"PPPP":default:s=r.dateTime({width:"full"});break}return s.replace("{{date}}",bn(e,r)).replace("{{time}}",or(n,r))},qa={p:or,P:Ba},Ka=/^D+$/,Va=/^Y+$/,Ua=["D","DD","YY","YYYY"];function ja(a){return Ka.test(a)}function Xa(a){return Va.test(a)}function Ga(a,r,t){const e=za(a,r,t);if(console.warn(e),Ua.includes(a))throw new RangeError(e)}function za(a,r,t){const e=a[0]==="Y"?"years":"days of the month";return`Use \`${a.toLowerCase()}\` instead of \`${a}\` (in \`${r}\`) for formatting ${e} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Za=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ja=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,es=/^'([^]*?)'?$/,ts=/''/g,ns=/[a-zA-Z]/;function ou(a,r,t){var l,d,f,p;const e=Le(),n=e.locale??Lt,s=e.firstWeekContainsDate??((d=(l=e.locale)==null?void 0:l.options)==null?void 0:d.firstWeekContainsDate)??1,o=e.weekStartsOn??((p=(f=e.locale)==null?void 0:f.options)==null?void 0:p.weekStartsOn)??0,i=C(a);if(!Gr(i))throw new RangeError("Invalid time value");let c=r.match(Ja).map(h=>{const g=h[0];if(g==="p"||g==="P"){const w=qa[g];return w(h,n.formatLong)}return h}).join("").match(Za).map(h=>{if(h==="''")return{isToken:!1,value:"'"};const g=h[0];if(g==="'")return{isToken:!1,value:rs(h)};if(Dn[g])return{isToken:!0,value:h};if(g.match(ns))throw new RangeError("Format string contains an unescaped latin alphabet character `"+g+"`");return{isToken:!1,value:h}});n.localize.preprocessor&&(c=n.localize.preprocessor(i,c));const u={firstWeekContainsDate:s,weekStartsOn:o,locale:n};return c.map(h=>{if(!h.isToken)return h.value;const g=h.value;(Xa(g)||ja(g))&&Ga(g,r,String(a));const w=Dn[g[0]];return w(i,g,n.localize,u)}).join("")}function rs(a){const r=a.match(es);return r?r[1].replace(ts,"'"):a}function as(a,r,t){const e=Le(),n=(t==null?void 0:t.locale)??e.locale??Lt,s=2520,o=Ne(a,r);if(isNaN(o))throw new RangeError("Invalid time value");const i=Object.assign({},t,{addSuffix:t==null?void 0:t.addSuffix,comparison:o});let c,u;o>0?(c=C(r),u=C(a)):(c=C(a),u=C(r));const l=ar(u,c),d=(qe(u)-qe(c))/1e3,f=Math.round((l-d)/60);let p;if(f<2)return t!=null&&t.includeSeconds?l<5?n.formatDistance("lessThanXSeconds",5,i):l<10?n.formatDistance("lessThanXSeconds",10,i):l<20?n.formatDistance("lessThanXSeconds",20,i):l<40?n.formatDistance("halfAMinute",0,i):l<60?n.formatDistance("lessThanXMinutes",1,i):n.formatDistance("xMinutes",1,i):f===0?n.formatDistance("lessThanXMinutes",1,i):n.formatDistance("xMinutes",f,i);if(f<45)return n.formatDistance("xMinutes",f,i);if(f<90)return n.formatDistance("aboutXHours",1,i);if(f0?(i=C(r),c=C(a)):(i=C(a),c=C(r));const u=Ft((t==null?void 0:t.roundingMethod)??"round"),l=c.getTime()-i.getTime(),d=l/it,f=qe(c)-qe(i),p=(l-f)/it,h=t==null?void 0:t.unit;let g;if(h?g=h:d<1?g="second":d<60?g="minute":d{const l=`x${u.replace(/(^.)/,f=>f.toUpperCase())}`,d=a[u];return d!==void 0&&(s||a[u])?c.concat(e.formatDistance(l,d)):c},[]).join(o):""}function lu(a,r){const t=C(a);if(isNaN(t.getTime()))throw new RangeError("Invalid time value");const e=(r==null?void 0:r.representation)??"complete";let n="",s="";const o="-",i=":";if(e!=="time"){const c=T(t.getDate(),2),u=T(t.getMonth()+1,2);n=`${T(t.getFullYear(),4)}${o}${u}${o}${c}`}if(e!=="date"){const c=t.getTimezoneOffset();if(c!==0){const h=Math.abs(c),g=T(Math.trunc(h/60),2),w=T(h%60,2);s=`${c<0?"+":"-"}${g}:${w}`}else s="Z";const u=T(t.getHours(),2),l=T(t.getMinutes(),2),d=T(t.getSeconds(),2),f=n===""?"":"T",p=[u,l,d].join(i);n=`${n}${f}${p}${s}`}return n}function du(a){return C(a*1e3)}function fu(a){const r=C(a.start),t=C(a.end),e={},n=sa(t,r);n&&(e.years=n);const s=ze(r,{years:e.years}),o=rr(t,s);o&&(e.months=o);const i=ze(s,{months:e.months}),c=Jr(t,i);c&&(e.days=c);const u=ze(i,{days:e.days}),l=ea(t,u);l&&(e.hours=l);const d=ze(u,{hours:e.hours}),f=ta(t,d);f&&(e.minutes=f);const p=ze(d,{minutes:e.minutes}),h=ar(t,p);return h&&(e.seconds=h),e}function pu(a,r){const e=ls(a);let n;if(e.date){const c=ds(e.date,2);n=fs(c.restDateString,c.year)}if(!n||isNaN(n.getTime()))return new Date(NaN);const s=n.getTime();let o=0,i;if(e.time&&(o=ps(e.time),isNaN(o)))return new Date(NaN);if(e.timezone){if(i=hs(e.timezone),isNaN(i))return new Date(NaN)}else{const c=new Date(s+o),u=new Date(0);return u.setFullYear(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()),u.setHours(c.getUTCHours(),c.getUTCMinutes(),c.getUTCSeconds(),c.getUTCMilliseconds()),u}return new Date(s+o+i)}const pt={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},is=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,cs=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,us=/^([+-])(\d{2})(?::?(\d{2}))?$/;function ls(a){const r={},t=a.split(pt.dateTimeDelimiter);let e;if(t.length>2)return r;if(/:/.test(t[0])?e=t[0]:(r.date=t[0],e=t[1],pt.timeZoneDelimiter.test(r.date)&&(r.date=a.split(pt.timeZoneDelimiter)[0],e=a.substr(r.date.length,a.length))),e){const n=pt.timezone.exec(e);n?(r.time=e.replace(n[1],""),r.timezone=n[1]):r.time=e}return r}function ds(a,r){const t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+r)+"})|(\\d{2}|[+-]\\d{"+(2+r)+"})$)"),e=a.match(t);if(!e)return{year:NaN,restDateString:""};const n=e[1]?parseInt(e[1]):null,s=e[2]?parseInt(e[2]):null;return{year:s===null?n:s*100,restDateString:a.slice((e[1]||e[2]).length)}}function fs(a,r){if(r===null)return new Date(NaN);const t=a.match(is);if(!t)return new Date(NaN);const e=!!t[4],n=et(t[1]),s=et(t[2])-1,o=et(t[3]),i=et(t[4]),c=et(t[5])-1;if(e)return ys(r,i,c)?ms(r,i,c):new Date(NaN);{const u=new Date(0);return!ws(r,s,o)||!Ds(r,n)?new Date(NaN):(u.setUTCFullYear(r,s,Math.max(n,o)),u)}}function et(a){return a?parseInt(a):1}function ps(a){const r=a.match(cs);if(!r)return NaN;const t=qt(r[1]),e=qt(r[2]),n=qt(r[3]);return vs(t,e,n)?t*rn+e*it+n*1e3:NaN}function qt(a){return a&&parseFloat(a.replace(",","."))||0}function hs(a){if(a==="Z")return 0;const r=a.match(us);if(!r)return 0;const t=r[1]==="+"?-1:1,e=parseInt(r[2]),n=r[3]&&parseInt(r[3])||0;return bs(e,n)?t*(e*rn+n*it):NaN}function ms(a,r,t){const e=new Date(0);e.setUTCFullYear(a,0,4);const n=e.getUTCDay()||7,s=(r-1)*7+t+1-n;return e.setUTCDate(e.getUTCDate()+s),e}const gs=[31,null,31,30,31,30,31,31,30,31,30,31];function ir(a){return a%400===0||a%4===0&&a%100!==0}function ws(a,r,t){return r>=0&&r<=11&&t>=1&&t<=(gs[r]||(ir(a)?29:28))}function Ds(a,r){return r>=1&&r<=(ir(a)?366:365)}function ys(a,r,t){return r>=1&&r<=53&&t>=0&&t<=6}function vs(a,r,t){return a===24?r===0&&t===0:t>=0&&t<60&&r>=0&&r<60&&a>=0&&a<25}function bs(a,r){return r>=0&&r<=59}const cr=6048e5,ks=864e5,Wt=6e4,At=36e5,_s=1e3,kn=Symbol.for("constructDateFrom");function W(a,r){return typeof a=="function"?a(r):a&&typeof a=="object"&&kn in a?a[kn](r):a instanceof Date?new a.constructor(r):new Date(r)}function b(a,r){return W(r||a,a)}function ce(a,r,t){const e=b(a,t==null?void 0:t.in);return isNaN(r)?W((t==null?void 0:t.in)||a,NaN):(r&&e.setDate(e.getDate()+r),e)}function ue(a,r,t){const e=b(a,t==null?void 0:t.in);if(isNaN(r))return W(a,NaN);if(!r)return e;const n=e.getDate(),s=W(a,e.getTime());s.setMonth(e.getMonth()+r+1,0);const o=s.getDate();return n>=o?s:(e.setFullYear(s.getFullYear(),s.getMonth(),n),e)}function ur(a,r,t){return W(a,+b(a)+r)}function Ms(a,r,t){return ur(a,r*At)}let xs={};function We(){return xs}function be(a,r){var i,c,u,l;const t=We(),e=(r==null?void 0:r.weekStartsOn)??((c=(i=r==null?void 0:r.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??t.weekStartsOn??((l=(u=t.locale)==null?void 0:u.options)==null?void 0:l.weekStartsOn)??0,n=b(a,r==null?void 0:r.in),s=n.getDay(),o=(s=s.getTime()?e+1:t.getTime()>=i.getTime()?e:e-1}function Ct(a){const r=b(a),t=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours(),r.getMinutes(),r.getSeconds(),r.getMilliseconds()));return t.setUTCFullYear(r.getFullYear()),+a-+t}function ke(a,...r){const t=W.bind(null,r.find(e=>typeof e=="object"));return r.map(t)}function Re(a,r){const t=b(a,r==null?void 0:r.in);return t.setHours(0,0,0,0),t}function Ve(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r),s=Re(e),o=Re(n),i=+s-Ct(s),c=+o-Ct(o);return Math.round((i-c)/ks)}function Ss(a,r){const t=lr(a,r),e=W(a,0);return e.setFullYear(t,0,4),e.setHours(0,0,0,0),Ke(e)}function Zt(a,r,t){const e=b(a,t==null?void 0:t.in);return e.setTime(e.getTime()+r*Wt),e}function sn(a,r,t){return ue(a,r*3,t)}function Cs(a,r,t){return ur(a,r*1e3)}function Pt(a,r,t){return ce(a,r*7,t)}function ge(a,r,t){return ue(a,r*12,t)}function _n(a,r){let t,e=r==null?void 0:r.in;return a.forEach(n=>{!e&&typeof n=="object"&&(e=W.bind(null,n));const s=b(n,e);(!t||t{!e&&typeof n=="object"&&(e=W.bind(null,n));const s=b(n,e);(!t||t>s||isNaN(+s))&&(t=s)}),W(e,t||NaN)}function Ps(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r);return+Re(e)==+Re(n)}function we(a){return a instanceof Date||typeof a=="object"&&Object.prototype.toString.call(a)==="[object Date]"}function Tt(a){return!(!we(a)&&typeof a!="number"||isNaN(+b(a)))}function Ot(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r),s=e.getFullYear()-n.getFullYear(),o=e.getMonth()-n.getMonth();return s*12+o}function Ye(a,r){const t=b(a,r==null?void 0:r.in);return Math.trunc(t.getMonth()/3)+1}function Et(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r),s=e.getFullYear()-n.getFullYear(),o=Ye(e)-Ye(n);return s*4+o}function Nt(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r);return e.getFullYear()-n.getFullYear()}function Ts(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r),s=xn(e,n),o=Math.abs(Ve(e,n));e.setDate(e.getDate()-s*o);const i=+(xn(e,n)===-s),c=s*(o-i);return c===0?0:c}function xn(a,r){const t=a.getFullYear()-r.getFullYear()||a.getMonth()-r.getMonth()||a.getDate()-r.getDate()||a.getHours()-r.getHours()||a.getMinutes()-r.getMinutes()||a.getSeconds()-r.getSeconds()||a.getMilliseconds()-r.getMilliseconds();return t<0?-1:t>0?1:t}function dr(a,r){const t=b(a,r==null?void 0:r.in);return t.setHours(23,59,59,999),t}function fr(a,r){const t=b(a,r==null?void 0:r.in),e=t.getMonth();return t.setFullYear(t.getFullYear(),e+1,0),t.setHours(23,59,59,999),t}function Jt(a,r){const t=b(a,r==null?void 0:r.in),e=t.getMonth(),n=e-e%3;return t.setMonth(n,1),t.setHours(0,0,0,0),t}function pr(a,r){const t=b(a,r==null?void 0:r.in);return t.setDate(1),t.setHours(0,0,0,0),t}function hr(a,r){const t=b(a,r==null?void 0:r.in),e=t.getFullYear();return t.setFullYear(e+1,0,0),t.setHours(23,59,59,999),t}function Ht(a,r){const t=b(a,r==null?void 0:r.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function Os(a,r){var i,c;const t=We(),e=t.weekStartsOn??((c=(i=t.locale)==null?void 0:i.options)==null?void 0:c.weekStartsOn)??0,n=b(a,r==null?void 0:r.in),s=n.getDay(),o=(s{let e;const n=Es[a];return typeof n=="string"?e=n:r===1?e=n.one:e=n.other.replace("{{count}}",r.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+e:e+" ago":e};function Kt(a){return(r={})=>{const t=r.width?String(r.width):a.defaultWidth;return a.formats[t]||a.formats[a.defaultWidth]}}const Ys={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Is={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Rs={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Fs={date:Kt({formats:Ys,defaultWidth:"full"}),time:Kt({formats:Is,defaultWidth:"full"}),dateTime:Kt({formats:Rs,defaultWidth:"full"})},Ls={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Ws=(a,r,t,e)=>Ls[a];function tt(a){return(r,t)=>{const e=t!=null&&t.context?String(t.context):"standalone";let n;if(e==="formatting"&&a.formattingValues){const o=a.defaultFormattingWidth||a.defaultWidth,i=t!=null&&t.width?String(t.width):o;n=a.formattingValues[i]||a.formattingValues[o]}else{const o=a.defaultWidth,i=t!=null&&t.width?String(t.width):a.defaultWidth;n=a.values[i]||a.values[o]}const s=a.argumentCallback?a.argumentCallback(r):r;return n[s]}}const As={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Hs={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},$s={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Qs={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Bs={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},qs={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ks=(a,r)=>{const t=Number(a),e=t%100;if(e>20||e<10)switch(e%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},Vs={ordinalNumber:Ks,era:tt({values:As,defaultWidth:"wide"}),quarter:tt({values:Hs,defaultWidth:"wide",argumentCallback:a=>a-1}),month:tt({values:$s,defaultWidth:"wide"}),day:tt({values:Qs,defaultWidth:"wide"}),dayPeriod:tt({values:Bs,defaultWidth:"wide",formattingValues:qs,defaultFormattingWidth:"wide"})};function nt(a){return(r,t={})=>{const e=t.width,n=e&&a.matchPatterns[e]||a.matchPatterns[a.defaultMatchWidth],s=r.match(n);if(!s)return null;const o=s[0],i=e&&a.parsePatterns[e]||a.parsePatterns[a.defaultParseWidth],c=Array.isArray(i)?js(i,d=>d.test(o)):Us(i,d=>d.test(o));let u;u=a.valueCallback?a.valueCallback(c):c,u=t.valueCallback?t.valueCallback(u):u;const l=r.slice(o.length);return{value:u,rest:l}}}function Us(a,r){for(const t in a)if(Object.prototype.hasOwnProperty.call(a,t)&&r(a[t]))return t}function js(a,r){for(let t=0;t{const e=r.match(a.matchPattern);if(!e)return null;const n=e[0],s=r.match(a.parsePattern);if(!s)return null;let o=a.valueCallback?a.valueCallback(s[0]):s[0];o=t.valueCallback?t.valueCallback(o):o;const i=r.slice(n.length);return{value:o,rest:i}}}const Gs=/^(\d+)(th|st|nd|rd)?/i,zs=/\d+/i,Zs={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Js={any:[/^b/i,/^(a|c)/i]},eo={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},to={any:[/1/i,/2/i,/3/i,/4/i]},no={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ro={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},ao={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},so={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},oo={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},io={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},co={ordinalNumber:Xs({matchPattern:Gs,parsePattern:zs,valueCallback:a=>parseInt(a,10)}),era:nt({matchPatterns:Zs,defaultMatchWidth:"wide",parsePatterns:Js,defaultParseWidth:"any"}),quarter:nt({matchPatterns:eo,defaultMatchWidth:"wide",parsePatterns:to,defaultParseWidth:"any",valueCallback:a=>a+1}),month:nt({matchPatterns:no,defaultMatchWidth:"wide",parsePatterns:ro,defaultParseWidth:"any"}),day:nt({matchPatterns:ao,defaultMatchWidth:"wide",parsePatterns:so,defaultParseWidth:"any"}),dayPeriod:nt({matchPatterns:oo,defaultMatchWidth:"any",parsePatterns:io,defaultParseWidth:"any"})},mr={code:"en-US",formatDistance:Ns,formatLong:Fs,formatRelative:Ws,localize:Vs,match:co,options:{weekStartsOn:0,firstWeekContainsDate:1}};function uo(a,r){const t=b(a,r==null?void 0:r.in);return Ve(t,Ht(t))+1}function on(a,r){const t=b(a,r==null?void 0:r.in),e=+Ke(t)-+Ss(t);return Math.round(e/cr)+1}function cn(a,r){var l,d,f,p;const t=b(a,r==null?void 0:r.in),e=t.getFullYear(),n=We(),s=(r==null?void 0:r.firstWeekContainsDate)??((d=(l=r==null?void 0:r.locale)==null?void 0:l.options)==null?void 0:d.firstWeekContainsDate)??n.firstWeekContainsDate??((p=(f=n.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,o=W((r==null?void 0:r.in)||a,0);o.setFullYear(e+1,0,s),o.setHours(0,0,0,0);const i=be(o,r),c=W((r==null?void 0:r.in)||a,0);c.setFullYear(e,0,s),c.setHours(0,0,0,0);const u=be(c,r);return+t>=+i?e+1:+t>=+u?e:e-1}function lo(a,r){var i,c,u,l;const t=We(),e=(r==null?void 0:r.firstWeekContainsDate)??((c=(i=r==null?void 0:r.locale)==null?void 0:i.options)==null?void 0:c.firstWeekContainsDate)??t.firstWeekContainsDate??((l=(u=t.locale)==null?void 0:u.options)==null?void 0:l.firstWeekContainsDate)??1,n=cn(a,r),s=W((r==null?void 0:r.in)||a,0);return s.setFullYear(n,0,e),s.setHours(0,0,0,0),be(s,r)}function gr(a,r){const t=b(a,r==null?void 0:r.in),e=+be(t,r)-+lo(t,r);return Math.round(e/cr)+1}function L(a,r){const t=a<0?"-":"",e=Math.abs(a).toString().padStart(r,"0");return t+e}const Me={y(a,r){const t=a.getFullYear(),e=t>0?t:1-t;return L(r==="yy"?e%100:e,r.length)},M(a,r){const t=a.getMonth();return r==="M"?String(t+1):L(t+1,2)},d(a,r){return L(a.getDate(),r.length)},a(a,r){const t=a.getHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(a,r){return L(a.getHours()%12||12,r.length)},H(a,r){return L(a.getHours(),r.length)},m(a,r){return L(a.getMinutes(),r.length)},s(a,r){return L(a.getSeconds(),r.length)},S(a,r){const t=r.length,e=a.getMilliseconds(),n=Math.trunc(e*Math.pow(10,t-3));return L(n,r.length)}},He={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Sn={G:function(a,r,t){const e=a.getFullYear()>0?1:0;switch(r){case"G":case"GG":case"GGG":return t.era(e,{width:"abbreviated"});case"GGGGG":return t.era(e,{width:"narrow"});case"GGGG":default:return t.era(e,{width:"wide"})}},y:function(a,r,t){if(r==="yo"){const e=a.getFullYear(),n=e>0?e:1-e;return t.ordinalNumber(n,{unit:"year"})}return Me.y(a,r)},Y:function(a,r,t,e){const n=cn(a,e),s=n>0?n:1-n;if(r==="YY"){const o=s%100;return L(o,2)}return r==="Yo"?t.ordinalNumber(s,{unit:"year"}):L(s,r.length)},R:function(a,r){const t=lr(a);return L(t,r.length)},u:function(a,r){const t=a.getFullYear();return L(t,r.length)},Q:function(a,r,t){const e=Math.ceil((a.getMonth()+1)/3);switch(r){case"Q":return String(e);case"QQ":return L(e,2);case"Qo":return t.ordinalNumber(e,{unit:"quarter"});case"QQQ":return t.quarter(e,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(e,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(e,{width:"wide",context:"formatting"})}},q:function(a,r,t){const e=Math.ceil((a.getMonth()+1)/3);switch(r){case"q":return String(e);case"qq":return L(e,2);case"qo":return t.ordinalNumber(e,{unit:"quarter"});case"qqq":return t.quarter(e,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(e,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(e,{width:"wide",context:"standalone"})}},M:function(a,r,t){const e=a.getMonth();switch(r){case"M":case"MM":return Me.M(a,r);case"Mo":return t.ordinalNumber(e+1,{unit:"month"});case"MMM":return t.month(e,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(e,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(e,{width:"wide",context:"formatting"})}},L:function(a,r,t){const e=a.getMonth();switch(r){case"L":return String(e+1);case"LL":return L(e+1,2);case"Lo":return t.ordinalNumber(e+1,{unit:"month"});case"LLL":return t.month(e,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(e,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(e,{width:"wide",context:"standalone"})}},w:function(a,r,t,e){const n=gr(a,e);return r==="wo"?t.ordinalNumber(n,{unit:"week"}):L(n,r.length)},I:function(a,r,t){const e=on(a);return r==="Io"?t.ordinalNumber(e,{unit:"week"}):L(e,r.length)},d:function(a,r,t){return r==="do"?t.ordinalNumber(a.getDate(),{unit:"date"}):Me.d(a,r)},D:function(a,r,t){const e=uo(a);return r==="Do"?t.ordinalNumber(e,{unit:"dayOfYear"}):L(e,r.length)},E:function(a,r,t){const e=a.getDay();switch(r){case"E":case"EE":case"EEE":return t.day(e,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(e,{width:"short",context:"formatting"});case"EEEE":default:return t.day(e,{width:"wide",context:"formatting"})}},e:function(a,r,t,e){const n=a.getDay(),s=(n-e.weekStartsOn+8)%7||7;switch(r){case"e":return String(s);case"ee":return L(s,2);case"eo":return t.ordinalNumber(s,{unit:"day"});case"eee":return t.day(n,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(n,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(n,{width:"short",context:"formatting"});case"eeee":default:return t.day(n,{width:"wide",context:"formatting"})}},c:function(a,r,t,e){const n=a.getDay(),s=(n-e.weekStartsOn+8)%7||7;switch(r){case"c":return String(s);case"cc":return L(s,r.length);case"co":return t.ordinalNumber(s,{unit:"day"});case"ccc":return t.day(n,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(n,{width:"narrow",context:"standalone"});case"cccccc":return t.day(n,{width:"short",context:"standalone"});case"cccc":default:return t.day(n,{width:"wide",context:"standalone"})}},i:function(a,r,t){const e=a.getDay(),n=e===0?7:e;switch(r){case"i":return String(n);case"ii":return L(n,r.length);case"io":return t.ordinalNumber(n,{unit:"day"});case"iii":return t.day(e,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(e,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(e,{width:"short",context:"formatting"});case"iiii":default:return t.day(e,{width:"wide",context:"formatting"})}},a:function(a,r,t){const n=a.getHours()/12>=1?"pm":"am";switch(r){case"a":case"aa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(a,r,t){const e=a.getHours();let n;switch(e===12?n=He.noon:e===0?n=He.midnight:n=e/12>=1?"pm":"am",r){case"b":case"bb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(a,r,t){const e=a.getHours();let n;switch(e>=17?n=He.evening:e>=12?n=He.afternoon:e>=4?n=He.morning:n=He.night,r){case"B":case"BB":case"BBB":return t.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(n,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(a,r,t){if(r==="ho"){let e=a.getHours()%12;return e===0&&(e=12),t.ordinalNumber(e,{unit:"hour"})}return Me.h(a,r)},H:function(a,r,t){return r==="Ho"?t.ordinalNumber(a.getHours(),{unit:"hour"}):Me.H(a,r)},K:function(a,r,t){const e=a.getHours()%12;return r==="Ko"?t.ordinalNumber(e,{unit:"hour"}):L(e,r.length)},k:function(a,r,t){let e=a.getHours();return e===0&&(e=24),r==="ko"?t.ordinalNumber(e,{unit:"hour"}):L(e,r.length)},m:function(a,r,t){return r==="mo"?t.ordinalNumber(a.getMinutes(),{unit:"minute"}):Me.m(a,r)},s:function(a,r,t){return r==="so"?t.ordinalNumber(a.getSeconds(),{unit:"second"}):Me.s(a,r)},S:function(a,r){return Me.S(a,r)},X:function(a,r,t){const e=a.getTimezoneOffset();if(e===0)return"Z";switch(r){case"X":return Pn(e);case"XXXX":case"XX":return Oe(e);case"XXXXX":case"XXX":default:return Oe(e,":")}},x:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"x":return Pn(e);case"xxxx":case"xx":return Oe(e);case"xxxxx":case"xxx":default:return Oe(e,":")}},O:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"O":case"OO":case"OOO":return"GMT"+Cn(e,":");case"OOOO":default:return"GMT"+Oe(e,":")}},z:function(a,r,t){const e=a.getTimezoneOffset();switch(r){case"z":case"zz":case"zzz":return"GMT"+Cn(e,":");case"zzzz":default:return"GMT"+Oe(e,":")}},t:function(a,r,t){const e=Math.trunc(+a/1e3);return L(e,r.length)},T:function(a,r,t){return L(+a,r.length)}};function Cn(a,r=""){const t=a>0?"-":"+",e=Math.abs(a),n=Math.trunc(e/60),s=e%60;return s===0?t+String(n):t+String(n)+r+L(s,2)}function Pn(a,r){return a%60===0?(a>0?"-":"+")+L(Math.abs(a)/60,2):Oe(a,r)}function Oe(a,r=""){const t=a>0?"-":"+",e=Math.abs(a),n=L(Math.trunc(e/60),2),s=L(e%60,2);return t+n+r+s}const Tn=(a,r)=>{switch(a){case"P":return r.date({width:"short"});case"PP":return r.date({width:"medium"});case"PPP":return r.date({width:"long"});case"PPPP":default:return r.date({width:"full"})}},wr=(a,r)=>{switch(a){case"p":return r.time({width:"short"});case"pp":return r.time({width:"medium"});case"ppp":return r.time({width:"long"});case"pppp":default:return r.time({width:"full"})}},fo=(a,r)=>{const t=a.match(/(P+)(p+)?/)||[],e=t[1],n=t[2];if(!n)return Tn(a,r);let s;switch(e){case"P":s=r.dateTime({width:"short"});break;case"PP":s=r.dateTime({width:"medium"});break;case"PPP":s=r.dateTime({width:"long"});break;case"PPPP":default:s=r.dateTime({width:"full"});break}return s.replace("{{date}}",Tn(e,r)).replace("{{time}}",wr(n,r))},en={p:wr,P:fo},po=/^D+$/,ho=/^Y+$/,mo=["D","DD","YY","YYYY"];function go(a){return po.test(a)}function wo(a){return ho.test(a)}function Do(a,r,t){const e=yo(a,r,t);if(console.warn(e),mo.includes(a))throw new RangeError(e)}function yo(a,r,t){const e=a[0]==="Y"?"years":"days of the month";return`Use \`${a.toLowerCase()}\` instead of \`${a}\` (in \`${r}\`) for formatting ${e} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const vo=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,bo=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,ko=/^'([^]*?)'?$/,_o=/''/g,Mo=/[a-zA-Z]/;function On(a,r,t){var l,d,f,p,h,g,w,k;const e=We(),n=(t==null?void 0:t.locale)??e.locale??mr,s=(t==null?void 0:t.firstWeekContainsDate)??((d=(l=t==null?void 0:t.locale)==null?void 0:l.options)==null?void 0:d.firstWeekContainsDate)??e.firstWeekContainsDate??((p=(f=e.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??1,o=(t==null?void 0:t.weekStartsOn)??((g=(h=t==null?void 0:t.locale)==null?void 0:h.options)==null?void 0:g.weekStartsOn)??e.weekStartsOn??((k=(w=e.locale)==null?void 0:w.options)==null?void 0:k.weekStartsOn)??0,i=b(a,t==null?void 0:t.in);if(!Tt(i))throw new RangeError("Invalid time value");let c=r.match(bo).map(S=>{const x=S[0];if(x==="p"||x==="P"){const N=en[x];return N(S,n.formatLong)}return S}).join("").match(vo).map(S=>{if(S==="''")return{isToken:!1,value:"'"};const x=S[0];if(x==="'")return{isToken:!1,value:xo(S)};if(Sn[x])return{isToken:!0,value:S};if(x.match(Mo))throw new RangeError("Format string contains an unescaped latin alphabet character `"+x+"`");return{isToken:!1,value:S}});n.localize.preprocessor&&(c=n.localize.preprocessor(i,c));const u={firstWeekContainsDate:s,weekStartsOn:o,locale:n};return c.map(S=>{if(!S.isToken)return S.value;const x=S.value;(!(t!=null&&t.useAdditionalWeekYearTokens)&&wo(x)||!(t!=null&&t.useAdditionalDayOfYearTokens)&&go(x))&&Do(x,r,String(a));const N=Sn[x[0]];return N(i,x,n.localize,u)}).join("")}function xo(a){const r=a.match(ko);return r?r[1].replace(_o,"'"):a}function En(a,r){return b(a,r==null?void 0:r.in).getDate()}function So(a,r){return b(a,r==null?void 0:r.in).getDay()}function Co(a,r){const t=b(a,r==null?void 0:r.in),e=t.getFullYear(),n=t.getMonth(),s=W(t,0);return s.setFullYear(e,n+1,0),s.setHours(0,0,0,0),s.getDate()}function Po(){return Object.assign({},We())}function De(a,r){return b(a,r==null?void 0:r.in).getHours()}function To(a,r){const t=b(a,r==null?void 0:r.in).getDay();return t===0?7:t}function ye(a,r){return b(a,r==null?void 0:r.in).getMinutes()}function te(a,r){return b(a,r==null?void 0:r.in).getMonth()}function Se(a){return b(a).getSeconds()}function tn(a){return+b(a)}function P(a,r){return b(a,r==null?void 0:r.in).getFullYear()}function Pe(a,r){return+b(a)>+b(r)}function Fe(a,r){return+b(a)<+b(r)}function Oo(a,r){return+b(a)==+b(r)}function Eo(a,r){const t=No(r)?new r(0):W(r,0);return t.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),t.setHours(a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()),t}function No(a){var r;return typeof a=="function"&&((r=a.prototype)==null?void 0:r.constructor)===a}const Yo=10;class Dr{constructor(){y(this,"subPriority",0)}validate(r,t){return!0}}class Io extends Dr{constructor(r,t,e,n,s){super(),this.value=r,this.validateValue=t,this.setValue=e,this.priority=n,s&&(this.subPriority=s)}validate(r,t){return this.validateValue(r,this.value,t)}set(r,t,e){return this.setValue(r,t,this.value,e)}}class Ro extends Dr{constructor(t,e){super();y(this,"priority",Yo);y(this,"subPriority",-1);this.context=t||(n=>W(e,n))}set(t,e){return e.timestampIsSet?t:W(t,Eo(t,this.context))}}class Y{run(r,t,e,n){const s=this.parse(r,t,e,n);return s?{setter:new Io(s.value,this.validate,this.set,this.priority,this.subPriority),rest:s.rest}:null}validate(r,t,e){return!0}}class Fo extends Y{constructor(){super(...arguments);y(this,"priority",140);y(this,"incompatibleTokens",["R","u","t","T"])}parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"});case"GGGGG":return n.era(t,{width:"narrow"});case"GGGG":default:return n.era(t,{width:"wide"})||n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"})}}set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}}const U={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},pe={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function j(a,r){return a&&{value:r(a.value),rest:a.rest}}function B(a,r){const t=r.match(a);return t?{value:parseInt(t[0],10),rest:r.slice(t[0].length)}:null}function he(a,r){const t=r.match(a);if(!t)return null;if(t[0]==="Z")return{value:0,rest:r.slice(1)};const e=t[1]==="+"?1:-1,n=t[2]?parseInt(t[2],10):0,s=t[3]?parseInt(t[3],10):0,o=t[5]?parseInt(t[5],10):0;return{value:e*(n*At+s*Wt+o*_s),rest:r.slice(t[0].length)}}function yr(a){return B(U.anyDigitsSigned,a)}function V(a,r){switch(a){case 1:return B(U.singleDigit,r);case 2:return B(U.twoDigits,r);case 3:return B(U.threeDigits,r);case 4:return B(U.fourDigits,r);default:return B(new RegExp("^\\d{1,"+a+"}"),r)}}function Yt(a,r){switch(a){case 1:return B(U.singleDigitSigned,r);case 2:return B(U.twoDigitsSigned,r);case 3:return B(U.threeDigitsSigned,r);case 4:return B(U.fourDigitsSigned,r);default:return B(new RegExp("^-?\\d{1,"+a+"}"),r)}}function un(a){switch(a){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function vr(a,r){const t=r>0,e=t?r:1-r;let n;if(e<=50)n=a||100;else{const s=e+50,o=Math.trunc(s/100)*100,i=a>=s%100;n=a+o-(i?100:0)}return t?n:1-n}function br(a){return a%400===0||a%4===0&&a%100!==0}class Lo extends Y{constructor(){super(...arguments);y(this,"priority",130);y(this,"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"])}parse(t,e,n){const s=o=>({year:o,isTwoDigitYear:e==="yy"});switch(e){case"y":return j(V(4,t),s);case"yo":return j(n.ordinalNumber(t,{unit:"year"}),s);default:return j(V(e.length,t),s)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n){const s=t.getFullYear();if(n.isTwoDigitYear){const i=vr(n.year,s);return t.setFullYear(i,0,1),t.setHours(0,0,0,0),t}const o=!("era"in e)||e.era===1?n.year:1-n.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}class Wo extends Y{constructor(){super(...arguments);y(this,"priority",130);y(this,"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"])}parse(t,e,n){const s=o=>({year:o,isTwoDigitYear:e==="YY"});switch(e){case"Y":return j(V(4,t),s);case"Yo":return j(n.ordinalNumber(t,{unit:"year"}),s);default:return j(V(e.length,t),s)}}validate(t,e){return e.isTwoDigitYear||e.year>0}set(t,e,n,s){const o=cn(t,s);if(n.isTwoDigitYear){const c=vr(n.year,o);return t.setFullYear(c,0,s.firstWeekContainsDate),t.setHours(0,0,0,0),be(t,s)}const i=!("era"in e)||e.era===1?n.year:1-n.year;return t.setFullYear(i,0,s.firstWeekContainsDate),t.setHours(0,0,0,0),be(t,s)}}class Ao extends Y{constructor(){super(...arguments);y(this,"priority",130);y(this,"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"])}parse(t,e){return Yt(e==="R"?4:e.length,t)}set(t,e,n){const s=W(t,0);return s.setFullYear(n,0,4),s.setHours(0,0,0,0),Ke(s)}}class Ho extends Y{constructor(){super(...arguments);y(this,"priority",130);y(this,"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"])}parse(t,e){return Yt(e==="u"?4:e.length,t)}set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}}class $o extends Y{constructor(){super(...arguments);y(this,"priority",120);y(this,"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,e,n){switch(e){case"Q":case"QQ":return V(e.length,t);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(t,{width:"wide",context:"formatting"})||n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth((n-1)*3,1),t.setHours(0,0,0,0),t}}class Qo extends Y{constructor(){super(...arguments);y(this,"priority",120);y(this,"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,e,n){switch(e){case"q":case"qq":return V(e.length,t);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(t,{width:"wide",context:"standalone"})||n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=1&&e<=4}set(t,e,n){return t.setMonth((n-1)*3,1),t.setHours(0,0,0,0),t}}class Bo extends Y{constructor(){super(...arguments);y(this,"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]);y(this,"priority",110)}parse(t,e,n){const s=o=>o-1;switch(e){case"M":return j(B(U.month,t),s);case"MM":return j(V(2,t),s);case"Mo":return j(n.ordinalNumber(t,{unit:"month"}),s);case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}class qo extends Y{constructor(){super(...arguments);y(this,"priority",110);y(this,"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"])}parse(t,e,n){const s=o=>o-1;switch(e){case"L":return j(B(U.month,t),s);case"LL":return j(V(2,t),s);case"Lo":return j(n.ordinalNumber(t,{unit:"month"}),s);case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(t,{width:"wide",context:"standalone"})||n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}}function Ko(a,r,t){const e=b(a,t==null?void 0:t.in),n=gr(e,t)-r;return e.setDate(e.getDate()-n*7),b(e,t==null?void 0:t.in)}class Vo extends Y{constructor(){super(...arguments);y(this,"priority",100);y(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"])}parse(t,e,n){switch(e){case"w":return B(U.week,t);case"wo":return n.ordinalNumber(t,{unit:"week"});default:return V(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n,s){return be(Ko(t,n,s),s)}}function Uo(a,r,t){const e=b(a,t==null?void 0:t.in),n=on(e,t)-r;return e.setDate(e.getDate()-n*7),e}class jo extends Y{constructor(){super(...arguments);y(this,"priority",100);y(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"])}parse(t,e,n){switch(e){case"I":return B(U.week,t);case"Io":return n.ordinalNumber(t,{unit:"week"});default:return V(e.length,t)}}validate(t,e){return e>=1&&e<=53}set(t,e,n){return Ke(Uo(t,n))}}const Xo=[31,28,31,30,31,30,31,31,30,31,30,31],Go=[31,29,31,30,31,30,31,31,30,31,30,31];class zo extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"subPriority",1);y(this,"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"])}parse(t,e,n){switch(e){case"d":return B(U.date,t);case"do":return n.ordinalNumber(t,{unit:"date"});default:return V(e.length,t)}}validate(t,e){const n=t.getFullYear(),s=br(n),o=t.getMonth();return s?e>=1&&e<=Go[o]:e>=1&&e<=Xo[o]}set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}}class Zo extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"subpriority",1);y(this,"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"])}parse(t,e,n){switch(e){case"D":case"DD":return B(U.dayOfYear,t);case"Do":return n.ordinalNumber(t,{unit:"date"});default:return V(e.length,t)}}validate(t,e){const n=t.getFullYear();return br(n)?e>=1&&e<=366:e>=1&&e<=365}set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}}function ln(a,r,t){var d,f,p,h;const e=We(),n=(t==null?void 0:t.weekStartsOn)??((f=(d=t==null?void 0:t.locale)==null?void 0:d.options)==null?void 0:f.weekStartsOn)??e.weekStartsOn??((h=(p=e.locale)==null?void 0:p.options)==null?void 0:h.weekStartsOn)??0,s=b(a,t==null?void 0:t.in),o=s.getDay(),c=(r%7+7)%7,u=7-n,l=r<0||r>6?r-(o+u)%7:(c+u)%7-(o+u)%7;return ce(s,l,t)}class Jo extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"incompatibleTokens",["D","i","e","c","t","T"])}parse(t,e,n){switch(e){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,s){return t=ln(t,n,s),t.setHours(0,0,0,0),t}}class ei extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"])}parse(t,e,n,s){const o=i=>{const c=Math.floor((i-1)/7)*7;return(i+s.weekStartsOn+6)%7+c};switch(e){case"e":case"ee":return j(V(e.length,t),o);case"eo":return j(n.ordinalNumber(t,{unit:"day"}),o);case"eee":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeeee":return n.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,s){return t=ln(t,n,s),t.setHours(0,0,0,0),t}}class ti extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"])}parse(t,e,n,s){const o=i=>{const c=Math.floor((i-1)/7)*7;return(i+s.weekStartsOn+6)%7+c};switch(e){case"c":case"cc":return j(V(e.length,t),o);case"co":return j(n.ordinalNumber(t,{unit:"day"}),o);case"ccc":return n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"ccccc":return n.day(t,{width:"narrow",context:"standalone"});case"cccccc":return n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return n.day(t,{width:"wide",context:"standalone"})||n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"})}}validate(t,e){return e>=0&&e<=6}set(t,e,n,s){return t=ln(t,n,s),t.setHours(0,0,0,0),t}}function ni(a,r,t){const e=b(a,t==null?void 0:t.in),n=To(e,t),s=r-n;return ce(e,s,t)}class ri extends Y{constructor(){super(...arguments);y(this,"priority",90);y(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"])}parse(t,e,n){const s=o=>o===0?7:o;switch(e){case"i":case"ii":return V(e.length,t);case"io":return n.ordinalNumber(t,{unit:"day"});case"iii":return j(n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),s);case"iiiii":return j(n.day(t,{width:"narrow",context:"formatting"}),s);case"iiiiii":return j(n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),s);case"iiii":default:return j(n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"}),s)}}validate(t,e){return e>=1&&e<=7}set(t,e,n){return t=ni(t,n),t.setHours(0,0,0,0),t}}class ai extends Y{constructor(){super(...arguments);y(this,"priority",80);y(this,"incompatibleTokens",["b","B","H","k","t","T"])}parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(un(n),0,0,0),t}}class si extends Y{constructor(){super(...arguments);y(this,"priority",80);y(this,"incompatibleTokens",["a","B","H","k","t","T"])}parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(un(n),0,0,0),t}}class oi extends Y{constructor(){super(...arguments);y(this,"priority",80);y(this,"incompatibleTokens",["a","b","t","T"])}parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,e,n){return t.setHours(un(n),0,0,0),t}}class ii extends Y{constructor(){super(...arguments);y(this,"priority",70);y(this,"incompatibleTokens",["H","K","k","t","T"])}parse(t,e,n){switch(e){case"h":return B(U.hour12h,t);case"ho":return n.ordinalNumber(t,{unit:"hour"});default:return V(e.length,t)}}validate(t,e){return e>=1&&e<=12}set(t,e,n){const s=t.getHours()>=12;return s&&n<12?t.setHours(n+12,0,0,0):!s&&n===12?t.setHours(0,0,0,0):t.setHours(n,0,0,0),t}}class ci extends Y{constructor(){super(...arguments);y(this,"priority",70);y(this,"incompatibleTokens",["a","b","h","K","k","t","T"])}parse(t,e,n){switch(e){case"H":return B(U.hour23h,t);case"Ho":return n.ordinalNumber(t,{unit:"hour"});default:return V(e.length,t)}}validate(t,e){return e>=0&&e<=23}set(t,e,n){return t.setHours(n,0,0,0),t}}class ui extends Y{constructor(){super(...arguments);y(this,"priority",70);y(this,"incompatibleTokens",["h","H","k","t","T"])}parse(t,e,n){switch(e){case"K":return B(U.hour11h,t);case"Ko":return n.ordinalNumber(t,{unit:"hour"});default:return V(e.length,t)}}validate(t,e){return e>=0&&e<=11}set(t,e,n){return t.getHours()>=12&&n<12?t.setHours(n+12,0,0,0):t.setHours(n,0,0,0),t}}class li extends Y{constructor(){super(...arguments);y(this,"priority",70);y(this,"incompatibleTokens",["a","b","h","H","K","t","T"])}parse(t,e,n){switch(e){case"k":return B(U.hour24h,t);case"ko":return n.ordinalNumber(t,{unit:"hour"});default:return V(e.length,t)}}validate(t,e){return e>=1&&e<=24}set(t,e,n){const s=n<=24?n%24:n;return t.setHours(s,0,0,0),t}}class di extends Y{constructor(){super(...arguments);y(this,"priority",60);y(this,"incompatibleTokens",["t","T"])}parse(t,e,n){switch(e){case"m":return B(U.minute,t);case"mo":return n.ordinalNumber(t,{unit:"minute"});default:return V(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setMinutes(n,0,0),t}}class fi extends Y{constructor(){super(...arguments);y(this,"priority",50);y(this,"incompatibleTokens",["t","T"])}parse(t,e,n){switch(e){case"s":return B(U.second,t);case"so":return n.ordinalNumber(t,{unit:"second"});default:return V(e.length,t)}}validate(t,e){return e>=0&&e<=59}set(t,e,n){return t.setSeconds(n,0),t}}class pi extends Y{constructor(){super(...arguments);y(this,"priority",30);y(this,"incompatibleTokens",["t","T"])}parse(t,e){const n=s=>Math.trunc(s*Math.pow(10,-e.length+3));return j(V(e.length,t),n)}set(t,e,n){return t.setMilliseconds(n),t}}class hi extends Y{constructor(){super(...arguments);y(this,"priority",10);y(this,"incompatibleTokens",["t","T","x"])}parse(t,e){switch(e){case"X":return he(pe.basicOptionalMinutes,t);case"XX":return he(pe.basic,t);case"XXXX":return he(pe.basicOptionalSeconds,t);case"XXXXX":return he(pe.extendedOptionalSeconds,t);case"XXX":default:return he(pe.extended,t)}}set(t,e,n){return e.timestampIsSet?t:W(t,t.getTime()-Ct(t)-n)}}class mi extends Y{constructor(){super(...arguments);y(this,"priority",10);y(this,"incompatibleTokens",["t","T","X"])}parse(t,e){switch(e){case"x":return he(pe.basicOptionalMinutes,t);case"xx":return he(pe.basic,t);case"xxxx":return he(pe.basicOptionalSeconds,t);case"xxxxx":return he(pe.extendedOptionalSeconds,t);case"xxx":default:return he(pe.extended,t)}}set(t,e,n){return e.timestampIsSet?t:W(t,t.getTime()-Ct(t)-n)}}class gi extends Y{constructor(){super(...arguments);y(this,"priority",40);y(this,"incompatibleTokens","*")}parse(t){return yr(t)}set(t,e,n){return[W(t,n*1e3),{timestampIsSet:!0}]}}class wi extends Y{constructor(){super(...arguments);y(this,"priority",20);y(this,"incompatibleTokens","*")}parse(t){return yr(t)}set(t,e,n){return[W(t,n),{timestampIsSet:!0}]}}const Di={G:new Fo,y:new Lo,Y:new Wo,R:new Ao,u:new Ho,Q:new $o,q:new Qo,M:new Bo,L:new qo,w:new Vo,I:new jo,d:new zo,D:new Zo,E:new Jo,e:new ei,c:new ti,i:new ri,a:new ai,b:new si,B:new oi,h:new ii,H:new ci,K:new ui,k:new li,m:new di,s:new fi,S:new pi,X:new hi,x:new mi,t:new gi,T:new wi},yi=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,vi=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,bi=/^'([^]*?)'?$/,ki=/''/g,_i=/\S/,Mi=/[a-zA-Z]/;function xi(a,r,t,e){var w,k,S,x,N,q,$,I;const n=()=>W((e==null?void 0:e.in)||t,NaN),s=Po(),o=(e==null?void 0:e.locale)??s.locale??mr,i=(e==null?void 0:e.firstWeekContainsDate)??((k=(w=e==null?void 0:e.locale)==null?void 0:w.options)==null?void 0:k.firstWeekContainsDate)??s.firstWeekContainsDate??((x=(S=s.locale)==null?void 0:S.options)==null?void 0:x.firstWeekContainsDate)??1,c=(e==null?void 0:e.weekStartsOn)??((q=(N=e==null?void 0:e.locale)==null?void 0:N.options)==null?void 0:q.weekStartsOn)??s.weekStartsOn??((I=($=s.locale)==null?void 0:$.options)==null?void 0:I.weekStartsOn)??0;if(!r)return a?n():b(t,e==null?void 0:e.in);const u={firstWeekContainsDate:i,weekStartsOn:c,locale:o},l=[new Ro(e==null?void 0:e.in,t)],d=r.match(vi).map(_=>{const M=_[0];if(M in en){const F=en[M];return F(_,o.formatLong)}return _}).join("").match(yi),f=[];for(let _ of d){const M=_[0],F=Di[M];if(F){const{incompatibleTokens:X}=F;if(Array.isArray(X)){const J=f.find(le=>X.includes(le.token)||le.token===M);if(J)throw new RangeError(`The format string mustn't contain \`${J.fullToken}\` and \`${_}\` at the same time`)}else if(F.incompatibleTokens==="*"&&f.length>0)throw new RangeError(`The format string mustn't contain \`${_}\` and any other token at the same time`);f.push({token:M,fullToken:_});const K=F.run(a,_,o.match,u);if(!K)return n();l.push(K.setter),a=K.rest}else{if(M.match(Mi))throw new RangeError("Format string contains an unescaped latin alphabet character `"+M+"`");if(_==="''"?_="'":M==="'"&&(_=Si(_)),a.indexOf(_)===0)a=a.slice(_.length);else return n()}}if(a.length>0&&_i.test(a))return n();const p=l.map(_=>_.priority).sort((_,M)=>M-_).filter((_,M,F)=>F.indexOf(_)===M).map(_=>l.filter(M=>M.priority===_).sort((M,F)=>F.subPriority-M.subPriority)).map(_=>_[0]);let h=b(t,e==null?void 0:e.in);if(isNaN(+h))return n();const g={};for(const _ of p){if(!_.validate(h,u))return n();const M=_.set(h,g,u);Array.isArray(M)?(h=M[0],Object.assign(g,M[1])):h=M}return h}function Si(a){return a.match(bi)[1].replace(ki,"'")}function Ci(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r);return e.getFullYear()===n.getFullYear()&&e.getMonth()===n.getMonth()}function Pi(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r);return+Jt(e)==+Jt(n)}function Ti(a,r,t){const[e,n]=ke(t==null?void 0:t.in,a,r);return e.getFullYear()===n.getFullYear()}function ut(a,r,t){const e=+b(a,t==null?void 0:t.in),[n,s]=[+b(r.start,t==null?void 0:t.in),+b(r.end,t==null?void 0:t.in)].sort((o,i)=>o-i);return e>=n&&e<=s}function Oi(a,r,t){return ce(a,-1,t)}function Ei(a,r){const t=()=>W(r==null?void 0:r.in,NaN),n=Ri(a);let s;if(n.date){const u=Fi(n.date,2);s=Li(u.restDateString,u.year)}if(!s||isNaN(+s))return t();const o=+s;let i=0,c;if(n.time&&(i=Wi(n.time),isNaN(i)))return t();if(n.timezone){if(c=Ai(n.timezone),isNaN(c))return t()}else{const u=new Date(o+i),l=b(0,r==null?void 0:r.in);return l.setFullYear(u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()),l.setHours(u.getUTCHours(),u.getUTCMinutes(),u.getUTCSeconds(),u.getUTCMilliseconds()),l}return b(o+i+c,r==null?void 0:r.in)}const ht={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},Ni=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Yi=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,Ii=/^([+-])(\d{2})(?::?(\d{2}))?$/;function Ri(a){const r={},t=a.split(ht.dateTimeDelimiter);let e;if(t.length>2)return r;if(/:/.test(t[0])?e=t[0]:(r.date=t[0],e=t[1],ht.timeZoneDelimiter.test(r.date)&&(r.date=a.split(ht.timeZoneDelimiter)[0],e=a.substr(r.date.length,a.length))),e){const n=ht.timezone.exec(e);n?(r.time=e.replace(n[1],""),r.timezone=n[1]):r.time=e}return r}function Fi(a,r){const t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+r)+"})|(\\d{2}|[+-]\\d{"+(2+r)+"})$)"),e=a.match(t);if(!e)return{year:NaN,restDateString:""};const n=e[1]?parseInt(e[1]):null,s=e[2]?parseInt(e[2]):null;return{year:s===null?n:s*100,restDateString:a.slice((e[1]||e[2]).length)}}function Li(a,r){if(r===null)return new Date(NaN);const t=a.match(Ni);if(!t)return new Date(NaN);const e=!!t[4],n=rt(t[1]),s=rt(t[2])-1,o=rt(t[3]),i=rt(t[4]),c=rt(t[5])-1;if(e)return qi(r,i,c)?Hi(r,i,c):new Date(NaN);{const u=new Date(0);return!Qi(r,s,o)||!Bi(r,n)?new Date(NaN):(u.setUTCFullYear(r,s,Math.max(n,o)),u)}}function rt(a){return a?parseInt(a):1}function Wi(a){const r=a.match(Yi);if(!r)return NaN;const t=Vt(r[1]),e=Vt(r[2]),n=Vt(r[3]);return Ki(t,e,n)?t*At+e*Wt+n*1e3:NaN}function Vt(a){return a&&parseFloat(a.replace(",","."))||0}function Ai(a){if(a==="Z")return 0;const r=a.match(Ii);if(!r)return 0;const t=r[1]==="+"?-1:1,e=parseInt(r[2]),n=r[3]&&parseInt(r[3])||0;return Vi(e,n)?t*(e*At+n*Wt):NaN}function Hi(a,r,t){const e=new Date(0);e.setUTCFullYear(a,0,4);const n=e.getUTCDay()||7,s=(r-1)*7+t+1-n;return e.setUTCDate(e.getUTCDate()+s),e}const $i=[31,null,31,30,31,30,31,31,30,31,30,31];function kr(a){return a%400===0||a%4===0&&a%100!==0}function Qi(a,r,t){return r>=0&&r<=11&&t>=1&&t<=($i[r]||(kr(a)?29:28))}function Bi(a,r){return r>=1&&r<=(kr(a)?366:365)}function qi(a,r,t){return r>=1&&r<=53&&t>=0&&t<=6}function Ki(a,r,t){return a===24?r===0&&t===0:t>=0&&t<60&&r>=0&&r<60&&a>=0&&a<25}function Vi(a,r){return r>=0&&r<=59}function ae(a,r,t){const e=b(a,t==null?void 0:t.in),n=e.getFullYear(),s=e.getDate(),o=W(a,0);o.setFullYear(n,r,15),o.setHours(0,0,0,0);const i=Co(o);return e.setMonth(r,Math.min(s,i)),e}function vt(a,r,t){const e=b(a,t==null?void 0:t.in);return e.setHours(r),e}function bt(a,r,t){const e=b(a,t==null?void 0:t.in);return e.setMinutes(r),e}function $e(a,r,t){const e=b(a,t==null?void 0:t.in),n=Math.trunc(e.getMonth()/3)+1,s=r-n;return ae(e,e.getMonth()+s*3)}function kt(a,r,t){const e=b(a,t==null?void 0:t.in);return e.setSeconds(r),e}function de(a,r,t){const e=b(a,t==null?void 0:t.in);return isNaN(+e)?W(a,NaN):(e.setFullYear(r),e)}function Ie(a,r,t){return ue(a,-r,t)}function _r(a,r,t){return sn(a,-1,t)}function Nn(a,r,t){return Pt(a,-1,t)}function Ue(a,r,t){return ge(a,-r,t)}const Mr={...Fr},Ui=Mr.useInsertionEffect,ji=Ui||(a=>a());function Xi(a){const r=v.useRef(()=>{});return ji(()=>{r.current=a}),v.useCallback(function(){for(var t=arguments.length,e=new Array(t),n=0;n"floating-ui-"+Math.random().toString(36).slice(2,6)+Gi++;function zi(){const[a,r]=v.useState(()=>Yn?In():void 0);return It(()=>{a==null&&r(In())},[]),v.useEffect(()=>{Yn=!0},[]),a}const Zi=Mr.useId,xr=Zi||zi,Ji=v.forwardRef(function(r,t){const{context:{placement:e,elements:{floating:n},middlewareData:{arrow:s,shift:o}},width:i=14,height:c=7,tipRadius:u=0,strokeWidth:l=0,staticOffset:d,stroke:f,d:p,style:{transform:h,...g}={},...w}=r,k=xr(),[S,x]=v.useState(!1);if(It(()=>{if(!n)return;Wr(n).direction==="rtl"&&x(!0)},[n]),!n)return null;const[N,q]=e.split("-"),$=N==="top"||N==="bottom";let I=d;($&&o!=null&&o.x||!$&&o!=null&&o.y)&&(I=null);const _=l*2,M=_/2,F=i/2*(u/-8+1),X=c/2*u/4,K=!!p,J=I&&q==="end"?"bottom":"top";let le=I&&q==="end"?"right":"left";I&&S&&(le=q==="end"?"left":"right");const G=(s==null?void 0:s.x)!=null?I||s.x:"",A=(s==null?void 0:s.y)!=null?I||s.y:"",Q=p||"M0,0"+(" H"+i)+(" L"+(i-F)+","+(c-X))+(" Q"+i/2+","+c+" "+F+","+(c-X))+" Z",ne={top:K?"rotate(180deg)":"",left:K?"rotate(90deg)":"rotate(-90deg)",bottom:K?"":"rotate(180deg)",right:K?"rotate(-90deg)":"rotate(90deg)"}[N];return Ge.jsxs("svg",{...w,"aria-hidden":!0,ref:t,width:K?i:i+_,height:i,viewBox:"0 0 "+i+" "+(c>i?c:i),style:{position:"absolute",pointerEvents:"none",[le]:G,[J]:A,[N]:$||K?"100%":"calc(100% - "+_/2+"px)",transform:[ne,h].filter(Xe=>!!Xe).join(" "),...g},children:[_>0&&Ge.jsx("path",{clipPath:"url(#"+k+")",fill:"none",stroke:f,strokeWidth:_+(p?0:1),d:Q}),Ge.jsx("path",{stroke:_&&!p?w.fill:"none",d:Q}),Ge.jsx("clipPath",{id:k,children:Ge.jsx("rect",{x:-M,y:M*(K?-1:1),width:i+_,height:i})})]})});function ec(){const a=new Map;return{emit(r,t){var e;(e=a.get(r))==null||e.forEach(n=>n(t))},on(r,t){a.set(r,[...a.get(r)||[],t])},off(r,t){var e;a.set(r,((e=a.get(r))==null?void 0:e.filter(n=>n!==t))||[])}}}const tc=v.createContext(null),nc=v.createContext(null),rc=()=>{var a;return((a=v.useContext(tc))==null?void 0:a.id)||null},ac=()=>v.useContext(nc);function sc(a){const{open:r=!1,onOpenChange:t,elements:e}=a,n=xr(),s=v.useRef({}),[o]=v.useState(()=>ec()),i=rc()!=null,[c,u]=v.useState(e.reference),l=Xi((p,h,g)=>{s.current.openEvent=p?h:void 0,o.emit("openchange",{open:p,event:h,reason:g,nested:i}),t==null||t(p,h,g)}),d=v.useMemo(()=>({setPositionReference:u}),[]),f=v.useMemo(()=>({reference:c||e.reference||null,floating:e.floating||null,domReference:e.reference}),[c,e.reference,e.floating]);return v.useMemo(()=>({dataRef:s,open:r,onOpenChange:l,elements:f,events:o,floatingId:n,refs:d}),[r,l,f,o,n,d])}function oc(a){a===void 0&&(a={});const{nodeId:r}=a,t=sc({...a,elements:{reference:null,floating:null,...a.elements}}),e=a.rootContext||t,n=e.elements,[s,o]=v.useState(null),[i,c]=v.useState(null),l=(n==null?void 0:n.domReference)||s,d=v.useRef(null),f=ac();It(()=>{l&&(d.current=l)},[l]);const p=Ar({...a,elements:{...n,...i&&{reference:i}}}),h=v.useCallback(x=>{const N=ft(x)?{getBoundingClientRect:()=>x.getBoundingClientRect(),contextElement:x}:x;c(N),p.refs.setReference(N)},[p.refs]),g=v.useCallback(x=>{(ft(x)||x===null)&&(d.current=x,o(x)),(ft(p.refs.reference.current)||p.refs.reference.current===null||x!==null&&!ft(x))&&p.refs.setReference(x)},[p.refs]),w=v.useMemo(()=>({...p.refs,setReference:g,setPositionReference:h,domReference:d}),[p.refs,g,h]),k=v.useMemo(()=>({...p.elements,domReference:l}),[p.elements,l]),S=v.useMemo(()=>({...p,...e,refs:w,elements:k,nodeId:r}),[p,w,k,r,e]);return It(()=>{e.dataRef.current.floatingContext=S;const x=f==null?void 0:f.nodesRef.current.find(N=>N.id===r);x&&(x.context=S)}),v.useMemo(()=>({...p,context:S,refs:w,elements:k}),[p,w,k,S])}/*! + react-datepicker v8.0.0 + https://github.com/Hacker0x01/react-datepicker + Released under the MIT License. +*/var nn=function(r,t){return nn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])},nn(r,t)};function z(a,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");nn(a,r);function t(){this.constructor=a}a.prototype=r===null?Object.create(r):(t.prototype=r.prototype,new t)}var E=function(){return E=Object.assign||function(t){for(var e,n=1,s=arguments.length;n0?t[0]:t;return a&&H(a,n,e)||""}function uc(a,r,t){if(!a)return"";var e=re(a,t),n=r?re(r,t):"";return"".concat(e," - ").concat(n)}function lc(a,r){if(!(a!=null&&a.length))return"";var t=a[0]?re(a[0],r):"";if(a.length===1)return t;if(a.length===2&&a[1]){var e=re(a[1],r);return"".concat(t,", ").concat(e)}var n=a.length-1;return"".concat(t," (+").concat(n,")")}function jt(a,r){var t=r.hour,e=t===void 0?0:t,n=r.minute,s=n===void 0?0:n,o=r.second,i=o===void 0?0:o;return vt(bt(kt(a,i),s),e)}function dc(a){return on(a)}function fc(a,r){return H(a,"ddd",r)}function _t(a){return Re(a)}function Ce(a,r,t){var e=je(r||dn());return be(a,{locale:e,weekStartsOn:t})}function ve(a){return pr(a)}function st(a){return Ht(a)}function Rn(a){return Jt(a)}function Fn(){return Re(R())}function Ln(a){return dr(a)}function pc(a){return Os(a)}function hc(a){return fr(a)}function fe(a,r){return a&&r?Ti(a,r):!a&&!r}function ee(a,r){return a&&r?Ci(a,r):!a&&!r}function Rt(a,r){return a&&r?Pi(a,r):!a&&!r}function O(a,r){return a&&r?Ps(a,r):!a&&!r}function Ee(a,r){return a&&r?Oo(a,r):!a&&!r}function ot(a,r,t){var e,n=Re(r),s=dr(t);try{e=ut(a,{start:n,end:s})}catch{e=!1}return e}function dn(){var a=Sr();return a.__localeId__}function je(a){if(typeof a=="string"){var r=Sr();return r.__localeData__?r.__localeData__[a]:void 0}else return a}function mc(a,r,t){return r(H(a,"EEEE",t))}function gc(a,r){return H(a,"EEEEEE",r)}function wc(a,r){return H(a,"EEE",r)}function fn(a,r){return H(ae(R(),a),"LLLL",r)}function Cr(a,r){return H(ae(R(),a),"LLL",r)}function Dc(a,r){return H($e(R(),a),"QQQ",r)}function se(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.maxDate,s=t.excludeDates,o=t.excludeDateIntervals,i=t.includeDates,c=t.includeDateIntervals,u=t.filterDate;return dt(a,{minDate:e,maxDate:n})||s&&s.some(function(l){return l instanceof Date?O(a,l):O(a,l.date)})||o&&o.some(function(l){var d=l.start,f=l.end;return ut(a,{start:d,end:f})})||i&&!i.some(function(l){return O(a,l)})||c&&!c.some(function(l){var d=l.start,f=l.end;return ut(a,{start:d,end:f})})||u&&!u(R(a))||!1}function pn(a,r){var t=r===void 0?{}:r,e=t.excludeDates,n=t.excludeDateIntervals;return n&&n.length>0?n.some(function(s){var o=s.start,i=s.end;return ut(a,{start:o,end:i})}):e&&e.some(function(s){var o;return s instanceof Date?O(a,s):O(a,(o=s.date)!==null&&o!==void 0?o:new Date)})||!1}function Pr(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.maxDate,s=t.excludeDates,o=t.includeDates,i=t.filterDate;return dt(a,{minDate:e?pr(e):void 0,maxDate:n?fr(n):void 0})||(s==null?void 0:s.some(function(c){return ee(a,c instanceof Date?c:c.date)}))||o&&!o.some(function(c){return ee(a,c)})||i&&!i(R(a))||!1}function mt(a,r,t,e){var n=P(a),s=te(a),o=P(r),i=te(r),c=P(e);return n===o&&n===c?s<=t&&t<=i:n=t||cn:!1}function yc(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.maxDate,s=t.excludeDates,o=t.includeDates;return dt(a,{minDate:e,maxDate:n})||s&&s.some(function(i){return ee(i instanceof Date?i:i.date,a)})||o&&!o.some(function(i){return ee(i,a)})||!1}function gt(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.maxDate,s=t.excludeDates,o=t.includeDates,i=t.filterDate;return dt(a,{minDate:e,maxDate:n})||(s==null?void 0:s.some(function(c){return Rt(a,c instanceof Date?c:c.date)}))||o&&!o.some(function(c){return Rt(a,c)})||i&&!i(R(a))||!1}function wt(a,r,t){if(!r||!t||!Tt(r)||!Tt(t))return!1;var e=P(r),n=P(t);return e<=a&&n>=a}function Mt(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.maxDate,s=t.excludeDates,o=t.includeDates,i=t.filterDate,c=new Date(a,0,1);return dt(c,{minDate:e?Ht(e):void 0,maxDate:n?hr(n):void 0})||(s==null?void 0:s.some(function(u){return fe(c,u instanceof Date?u:u.date)}))||o&&!o.some(function(u){return fe(c,u)})||i&&!i(R(c))||!1}function Dt(a,r,t,e){var n=P(a),s=Ye(a),o=P(r),i=Ye(r),c=P(e);return n===o&&n===c?s<=t&&t<=i:n=t||cn:!1}function dt(a,r){var t,e=r===void 0?{}:r,n=e.minDate,s=e.maxDate;return(t=n&&Ve(a,n)<0||s&&Ve(a,s)>0)!==null&&t!==void 0?t:!1}function Wn(a,r){return r.some(function(t){return De(t)===De(a)&&ye(t)===ye(a)&&Se(t)===Se(a)})}function An(a,r){var t=r===void 0?{}:r,e=t.excludeTimes,n=t.includeTimes,s=t.filterTime;return e&&Wn(a,e)||n&&!Wn(a,n)||s&&!s(a)||!1}function Hn(a,r){var t=r.minTime,e=r.maxTime;if(!t||!e)throw new Error("Both minTime and maxTime props required");var n=R();n=vt(n,De(a)),n=bt(n,ye(a)),n=kt(n,Se(a));var s=R();s=vt(s,De(t)),s=bt(s,ye(t)),s=kt(s,Se(t));var o=R();o=vt(o,De(e)),o=bt(o,ye(e)),o=kt(o,Se(e));var i;try{i=!ut(n,{start:s,end:o})}catch{i=!1}return i}function $n(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.includeDates,s=Ie(a,1);return e&&Ot(e,s)>0||n&&n.every(function(o){return Ot(o,s)>0})||!1}function Qn(a,r){var t=r===void 0?{}:r,e=t.maxDate,n=t.includeDates,s=ue(a,1);return e&&Ot(s,e)>0||n&&n.every(function(o){return Ot(s,o)>0})||!1}function vc(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.includeDates,s=Ht(a),o=_r(s);return e&&Et(e,o)>0||n&&n.every(function(i){return Et(i,o)>0})||!1}function bc(a,r){var t=r===void 0?{}:r,e=t.maxDate,n=t.includeDates,s=hr(a),o=sn(s,1);return e&&Et(o,e)>0||n&&n.every(function(i){return Et(o,i)>0})||!1}function Bn(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.includeDates,s=Ue(a,1);return e&&Nt(e,s)>0||n&&n.every(function(o){return Nt(o,s)>0})||!1}function kc(a,r){var t=r===void 0?{}:r,e=t.minDate,n=t.yearItemNumber,s=n===void 0?lt:n,o=st(Ue(a,s)),i=xe(o,s).endPeriod,c=e&&P(e);return c&&c>i||!1}function qn(a,r){var t=r===void 0?{}:r,e=t.maxDate,n=t.includeDates,s=ge(a,1);return e&&Nt(s,e)>0||n&&n.every(function(o){return Nt(s,o)>0})||!1}function _c(a,r){var t=r===void 0?{}:r,e=t.maxDate,n=t.yearItemNumber,s=n===void 0?lt:n,o=ge(a,s),i=xe(o,s).startPeriod,c=e&&P(e);return c&&c=0});return Mn(e)}else return t?Mn(t):r}function Or(a){var r=a.maxDate,t=a.includeDates;if(t&&r){var e=t.filter(function(n){return Ve(n,r)<=0});return _n(e)}else return t?_n(t):r}function Kn(a,r){var t;a===void 0&&(a=[]),r===void 0&&(r="react-datepicker__day--highlighted");for(var e=new Map,n=0,s=a.length;n=Yc,p=!n&&!t.isWeekInMonth(i);if(f||p)if(t.props.peekNextMonth)o=!0;else break}return e},t.onMonthClick=function(e,n){var s=t.isMonthDisabledForLabelDate(n),o=s.isDisabled,i=s.labelDate;o||t.handleDayClick(ve(i),e)},t.onMonthMouseEnter=function(e){var n=t.isMonthDisabledForLabelDate(e),s=n.isDisabled,o=n.labelDate;s||t.handleDayMouseEnter(ve(o))},t.handleMonthNavigation=function(e,n){var s,o,i,c;(o=(s=t.props).setPreSelection)===null||o===void 0||o.call(s,n),(c=(i=t.MONTH_REFS[e])===null||i===void 0?void 0:i.current)===null||c===void 0||c.focus()},t.handleKeyboardNavigation=function(e,n,s){var o,i=t.props,c=i.selected,u=i.preSelection,l=i.setPreSelection,d=i.minDate,f=i.maxDate,p=i.showFourColumnMonthYearPicker,h=i.showTwoColumnMonthYearPicker;if(u){var g=Gn(p,h),w=t.getVerticalOffset(g),k=(o=Xt[g])===null||o===void 0?void 0:o.grid,S=function(I,_,M){var F,X,K=_,J=M;switch(I){case D.ArrowRight:K=ue(_,yt),J=M===11?0:M+yt;break;case D.ArrowLeft:K=Ie(_,yt),J=M===0?11:M-yt;break;case D.ArrowUp:K=Ie(_,w),J=!((F=k==null?void 0:k[0])===null||F===void 0)&&F.includes(M)?M+12-w:M-w;break;case D.ArrowDown:K=ue(_,w),J=!((X=k==null?void 0:k[k.length-1])===null||X===void 0)&&X.includes(M)?M-12+w:M+w;break}return{newCalculatedDate:K,newCalculatedMonth:J}},x=function(I,_,M){for(var F=40,X=I,K=!1,J=0,le=S(X,_,M),G=le.newCalculatedDate,A=le.newCalculatedMonth;!K;){if(J>=F){G=_,A=M;break}if(d&&Gf){X=D.ArrowLeft;var Q=S(X,G,A);G=Q.newCalculatedDate,A=Q.newCalculatedMonth}if(yc(G,t.props)){var Q=S(X,G,A);G=Q.newCalculatedDate,A=Q.newCalculatedMonth}else K=!0;J++}return{newCalculatedDate:G,newCalculatedMonth:A}};if(n===D.Enter){t.isMonthDisabled(s)||(t.onMonthClick(e,s),l==null||l(c));return}var N=x(n,u,s),q=N.newCalculatedDate,$=N.newCalculatedMonth;switch(n){case D.ArrowRight:case D.ArrowLeft:case D.ArrowUp:case D.ArrowDown:t.handleMonthNavigation($,q);break}}},t.getVerticalOffset=function(e){var n,s;return(s=(n=Xt[e])===null||n===void 0?void 0:n.verticalNavigationOffset)!==null&&s!==void 0?s:0},t.onMonthKeyDown=function(e,n){var s=t.props,o=s.disabledKeyboardNavigation,i=s.handleOnMonthKeyDown,c=e.key;c!==D.Tab&&e.preventDefault(),o||t.handleKeyboardNavigation(e,c,n),i&&i(e)},t.onQuarterClick=function(e,n){var s=$e(t.props.day,n);gt(s,t.props)||t.handleDayClick(Rn(s),e)},t.onQuarterMouseEnter=function(e){var n=$e(t.props.day,e);gt(n,t.props)||t.handleDayMouseEnter(Rn(n))},t.handleQuarterNavigation=function(e,n){var s,o,i,c;t.isDisabled(n)||t.isExcluded(n)||((o=(s=t.props).setPreSelection)===null||o===void 0||o.call(s,n),(c=(i=t.QUARTER_REFS[e-1])===null||i===void 0?void 0:i.current)===null||c===void 0||c.focus())},t.onQuarterKeyDown=function(e,n){var s,o,i=e.key;if(!t.props.disabledKeyboardNavigation)switch(i){case D.Enter:t.onQuarterClick(e,n),(o=(s=t.props).setPreSelection)===null||o===void 0||o.call(s,t.props.selected);break;case D.ArrowRight:if(!t.props.preSelection)break;t.handleQuarterNavigation(n===4?1:n+1,sn(t.props.preSelection,1));break;case D.ArrowLeft:if(!t.props.preSelection)break;t.handleQuarterNavigation(n===1?4:n-1,_r(t.props.preSelection));break}},t.isMonthDisabledForLabelDate=function(e){var n,s=t.props,o=s.day,i=s.minDate,c=s.maxDate,u=s.excludeDates,l=s.includeDates,d=ae(o,e);return{isDisabled:(n=(i||c||u||l)&&Pr(d,t.props))!==null&&n!==void 0?n:!1,labelDate:d}},t.isMonthDisabled=function(e){var n=t.isMonthDisabledForLabelDate(e).isDisabled;return n},t.getMonthClassNames=function(e){var n=t.props,s=n.day,o=n.startDate,i=n.endDate,c=n.preSelection,u=n.monthClassName,l=u?u(ae(s,e)):void 0,d=t.getSelection();return Z("react-datepicker__month-text","react-datepicker__month-".concat(e),l,{"react-datepicker__month-text--disabled":t.isMonthDisabled(e),"react-datepicker__month-text--selected":d?t.isSelectMonthInList(s,e,d):void 0,"react-datepicker__month-text--keyboard-selected":!t.props.disabledKeyboardNavigation&&c&&t.isSelectedMonth(s,e,c)&&!t.isMonthDisabled(e),"react-datepicker__month-text--in-selecting-range":t.isInSelectingRangeMonth(e),"react-datepicker__month-text--in-range":o&&i?mt(o,i,e,s):void 0,"react-datepicker__month-text--range-start":t.isRangeStartMonth(e),"react-datepicker__month-text--range-end":t.isRangeEndMonth(e),"react-datepicker__month-text--selecting-range-start":t.isSelectingMonthRangeStart(e),"react-datepicker__month-text--selecting-range-end":t.isSelectingMonthRangeEnd(e),"react-datepicker__month-text--today":t.isCurrentMonth(s,e)})},t.getTabIndex=function(e){if(t.props.preSelection==null)return"-1";var n=te(t.props.preSelection),s=t.isMonthDisabledForLabelDate(n).isDisabled,o=e===n&&!(s||t.props.disabledKeyboardNavigation)?"0":"-1";return o},t.getQuarterTabIndex=function(e){if(t.props.preSelection==null)return"-1";var n=Ye(t.props.preSelection),s=gt(t.props.day,t.props),o=e===n&&!(s||t.props.disabledKeyboardNavigation)?"0":"-1";return o},t.getAriaLabel=function(e){var n=t.props,s=n.chooseDayAriaLabelPrefix,o=s===void 0?"Choose":s,i=n.disabledDayAriaLabelPrefix,c=i===void 0?"Not available":i,u=n.day,l=n.locale,d=ae(u,e),f=t.isDisabled(d)||t.isExcluded(d)?c:o;return"".concat(f," ").concat(H(d,"MMMM yyyy",l))},t.getQuarterClassNames=function(e){var n=t.props,s=n.day,o=n.startDate,i=n.endDate,c=n.selected,u=n.minDate,l=n.maxDate,d=n.excludeDates,f=n.includeDates,p=n.filterDate,h=n.preSelection,g=n.disabledKeyboardNavigation,w=(u||l||d||f||p)&>($e(s,e),t.props);return Z("react-datepicker__quarter-text","react-datepicker__quarter-".concat(e),{"react-datepicker__quarter-text--disabled":w,"react-datepicker__quarter-text--selected":c?t.isSelectedQuarter(s,e,c):void 0,"react-datepicker__quarter-text--keyboard-selected":!g&&h&&t.isSelectedQuarter(s,e,h)&&!w,"react-datepicker__quarter-text--in-selecting-range":t.isInSelectingRangeQuarter(e),"react-datepicker__quarter-text--in-range":o&&i?Dt(o,i,e,s):void 0,"react-datepicker__quarter-text--range-start":t.isRangeStartQuarter(e),"react-datepicker__quarter-text--range-end":t.isRangeEndQuarter(e)})},t.getMonthContent=function(e){var n=t.props,s=n.showFullMonthYearPicker,o=n.renderMonthContent,i=n.locale,c=n.day,u=Cr(e,i),l=fn(e,i);return o?o(e,u,l,c):s?l:u},t.getQuarterContent=function(e){var n,s=t.props,o=s.renderQuarterContent,i=s.locale,c=Dc(e,i);return(n=o==null?void 0:o(e,c))!==null&&n!==void 0?n:c},t.renderMonths=function(){var e,n=t.props,s=n.showTwoColumnMonthYearPicker,o=n.showFourColumnMonthYearPicker,i=n.day,c=n.selected,u=(e=Xt[Gn(o,s)])===null||e===void 0?void 0:e.grid;return u==null?void 0:u.map(function(l,d){return m.createElement("div",{className:"react-datepicker__month-wrapper",key:d},l.map(function(f,p){return m.createElement("div",{ref:t.MONTH_REFS[f],key:p,onClick:function(h){t.onMonthClick(h,f)},onKeyDown:function(h){Er(h)&&(h.preventDefault(),h.key=D.Enter),t.onMonthKeyDown(h,f)},onMouseEnter:t.props.usePointerEvent?void 0:function(){return t.onMonthMouseEnter(f)},onPointerEnter:t.props.usePointerEvent?function(){return t.onMonthMouseEnter(f)}:void 0,tabIndex:Number(t.getTabIndex(f)),className:t.getMonthClassNames(f),"aria-disabled":t.isMonthDisabled(f),role:"option","aria-label":t.getAriaLabel(f),"aria-current":t.isCurrentMonth(i,f)?"date":void 0,"aria-selected":c?t.isSelectedMonth(i,f,c):void 0},t.getMonthContent(f))}))})},t.renderQuarters=function(){var e=t.props,n=e.day,s=e.selected,o=[1,2,3,4];return m.createElement("div",{className:"react-datepicker__quarter-wrapper"},o.map(function(i,c){return m.createElement("div",{key:c,ref:t.QUARTER_REFS[c],role:"option",onClick:function(u){t.onQuarterClick(u,i)},onKeyDown:function(u){t.onQuarterKeyDown(u,i)},onMouseEnter:t.props.usePointerEvent?void 0:function(){return t.onQuarterMouseEnter(i)},onPointerEnter:t.props.usePointerEvent?function(){return t.onQuarterMouseEnter(i)}:void 0,className:t.getQuarterClassNames(i),"aria-selected":s?t.isSelectedQuarter(n,i,s):void 0,tabIndex:Number(t.getQuarterTabIndex(i)),"aria-current":t.isCurrentQuarter(n,i)?"date":void 0},t.getQuarterContent(i))}))},t.getClassNames=function(){var e=t.props,n=e.selectingDate,s=e.selectsStart,o=e.selectsEnd,i=e.showMonthYearPicker,c=e.showQuarterYearPicker,u=e.showWeekPicker;return Z("react-datepicker__month",{"react-datepicker__month--selecting-range":n&&(s||o)},{"react-datepicker__monthPicker":i},{"react-datepicker__quarterPicker":c},{"react-datepicker__weekPicker":u})},t}return r.prototype.getSelection=function(){var t=this.props,e=t.selected,n=t.selectedDates,s=t.selectsMultiple;if(s)return n;if(e)return[e]},r.prototype.render=function(){var t=this.props,e=t.showMonthYearPicker,n=t.showQuarterYearPicker,s=t.day,o=t.ariaLabelPrefix,i=o===void 0?"Month ":o,c=i?i.trim()+" ":"";return m.createElement("div",{className:this.getClassNames(),onMouseLeave:this.props.usePointerEvent?void 0:this.handleMouseLeave,onPointerLeave:this.props.usePointerEvent?this.handleMouseLeave:void 0,"aria-label":"".concat(c).concat(H(s,"MMMM, yyyy",this.props.locale)),role:"listbox"},e?this.renderMonths():n?this.renderQuarters():this.renderWeeks())},r}(v.Component),Rc=function(a){z(r,a);function r(){var t=a!==null&&a.apply(this,arguments)||this;return t.isSelectedMonth=function(e){return t.props.month===e},t.renderOptions=function(){return t.props.monthNames.map(function(e,n){return m.createElement("div",{className:t.isSelectedMonth(n)?"react-datepicker__month-option react-datepicker__month-option--selected_month":"react-datepicker__month-option",key:e,onClick:t.onChange.bind(t,n),"aria-selected":t.isSelectedMonth(n)?"true":void 0},t.isSelectedMonth(n)?m.createElement("span",{className:"react-datepicker__month-option--selected"},"✓"):"",e)})},t.onChange=function(e){return t.props.onChange(e)},t.handleClickOutside=function(){return t.props.onCancel()},t}return r.prototype.render=function(){return m.createElement($t,{className:"react-datepicker__month-dropdown",onClickOutside:this.handleClickOutside},this.renderOptions())},r}(v.Component),Fc=function(a){z(r,a);function r(){var t=a!==null&&a.apply(this,arguments)||this;return t.state={dropdownVisible:!1},t.renderSelectOptions=function(e){return e.map(function(n,s){return m.createElement("option",{key:n,value:s},n)})},t.renderSelectMode=function(e){return m.createElement("select",{value:t.props.month,className:"react-datepicker__month-select",onChange:function(n){return t.onChange(parseInt(n.target.value))}},t.renderSelectOptions(e))},t.renderReadView=function(e,n){return m.createElement("div",{key:"read",style:{visibility:e?"visible":"hidden"},className:"react-datepicker__month-read-view",onClick:t.toggleDropdown},m.createElement("span",{className:"react-datepicker__month-read-view--down-arrow"}),m.createElement("span",{className:"react-datepicker__month-read-view--selected-month"},n[t.props.month]))},t.renderDropdown=function(e){return m.createElement(Rc,E({key:"dropdown"},t.props,{monthNames:e,onChange:t.onChange,onCancel:t.toggleDropdown}))},t.renderScrollMode=function(e){var n=t.state.dropdownVisible,s=[t.renderReadView(!n,e)];return n&&s.unshift(t.renderDropdown(e)),s},t.onChange=function(e){t.toggleDropdown(),e!==t.props.month&&t.props.onChange(e)},t.toggleDropdown=function(){return t.setState({dropdownVisible:!t.state.dropdownVisible})},t}return r.prototype.render=function(){var t=this,e=[0,1,2,3,4,5,6,7,8,9,10,11].map(this.props.useShortMonthInDropdown?function(s){return Cr(s,t.props.locale)}:function(s){return fn(s,t.props.locale)}),n;switch(this.props.dropdownMode){case"scroll":n=this.renderScrollMode(e);break;case"select":n=this.renderSelectMode(e);break}return m.createElement("div",{className:"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--".concat(this.props.dropdownMode)},n)},r}(v.Component);function Lc(a,r){for(var t=[],e=ve(a),n=ve(r);!Pe(e,n);)t.push(R(e)),e=ue(e,1);return t}var Wc=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;return e.renderOptions=function(){return e.state.monthYearsList.map(function(n){var s=tn(n),o=fe(e.props.date,n)&&ee(e.props.date,n);return m.createElement("div",{className:o?"react-datepicker__month-year-option--selected_month-year":"react-datepicker__month-year-option",key:s,onClick:e.onChange.bind(e,s),"aria-selected":o?"true":void 0},o?m.createElement("span",{className:"react-datepicker__month-year-option--selected"},"✓"):"",H(n,e.props.dateFormat,e.props.locale))})},e.onChange=function(n){return e.props.onChange(n)},e.handleClickOutside=function(){e.props.onCancel()},e.state={monthYearsList:Lc(e.props.minDate,e.props.maxDate)},e}return r.prototype.render=function(){var t=Z({"react-datepicker__month-year-dropdown":!0,"react-datepicker__month-year-dropdown--scrollable":this.props.scrollableMonthYearDropdown});return m.createElement($t,{className:t,onClickOutside:this.handleClickOutside},this.renderOptions())},r}(v.Component),Ac=function(a){z(r,a);function r(){var t=a!==null&&a.apply(this,arguments)||this;return t.state={dropdownVisible:!1},t.renderSelectOptions=function(){for(var e=ve(t.props.minDate),n=ve(t.props.maxDate),s=[];!Pe(e,n);){var o=tn(e);s.push(m.createElement("option",{key:o,value:o},H(e,t.props.dateFormat,t.props.locale))),e=ue(e,1)}return s},t.onSelectChange=function(e){t.onChange(parseInt(e.target.value))},t.renderSelectMode=function(){return m.createElement("select",{value:tn(ve(t.props.date)),className:"react-datepicker__month-year-select",onChange:t.onSelectChange},t.renderSelectOptions())},t.renderReadView=function(e){var n=H(t.props.date,t.props.dateFormat,t.props.locale);return m.createElement("div",{key:"read",style:{visibility:e?"visible":"hidden"},className:"react-datepicker__month-year-read-view",onClick:t.toggleDropdown},m.createElement("span",{className:"react-datepicker__month-year-read-view--down-arrow"}),m.createElement("span",{className:"react-datepicker__month-year-read-view--selected-month-year"},n))},t.renderDropdown=function(){return m.createElement(Wc,E({key:"dropdown"},t.props,{onChange:t.onChange,onCancel:t.toggleDropdown}))},t.renderScrollMode=function(){var e=t.state.dropdownVisible,n=[t.renderReadView(!e)];return e&&n.unshift(t.renderDropdown()),n},t.onChange=function(e){t.toggleDropdown();var n=R(e);fe(t.props.date,n)&&ee(t.props.date,n)||t.props.onChange(n)},t.toggleDropdown=function(){return t.setState({dropdownVisible:!t.state.dropdownVisible})},t}return r.prototype.render=function(){var t;switch(this.props.dropdownMode){case"scroll":t=this.renderScrollMode();break;case"select":t=this.renderSelectMode();break}return m.createElement("div",{className:"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--".concat(this.props.dropdownMode)},t)},r}(v.Component),Hc=function(a){z(r,a);function r(){var t=a!==null&&a.apply(this,arguments)||this;return t.state={height:null},t.scrollToTheSelectedTime=function(){requestAnimationFrame(function(){var e,n,s;t.list&&(t.list.scrollTop=(s=t.centerLi&&r.calcCenterPosition(t.props.monthRef?t.props.monthRef.clientHeight-((n=(e=t.header)===null||e===void 0?void 0:e.clientHeight)!==null&&n!==void 0?n:0):t.list.clientHeight,t.centerLi))!==null&&s!==void 0?s:0)})},t.handleClick=function(e){var n,s;(t.props.minTime||t.props.maxTime)&&Hn(e,t.props)||(t.props.excludeTimes||t.props.includeTimes||t.props.filterTime)&&An(e,t.props)||(s=(n=t.props).onChange)===null||s===void 0||s.call(n,e)},t.isSelectedTime=function(e){return t.props.selected&&Pc(t.props.selected,e)},t.isDisabledTime=function(e){return(t.props.minTime||t.props.maxTime)&&Hn(e,t.props)||(t.props.excludeTimes||t.props.includeTimes||t.props.filterTime)&&An(e,t.props)},t.liClasses=function(e){var n,s=["react-datepicker__time-list-item",t.props.timeClassName?t.props.timeClassName(e):void 0];return t.isSelectedTime(e)&&s.push("react-datepicker__time-list-item--selected"),t.isDisabledTime(e)&&s.push("react-datepicker__time-list-item--disabled"),t.props.injectTimes&&(De(e)*3600+ye(e)*60+Se(e))%(((n=t.props.intervals)!==null&&n!==void 0?n:r.defaultProps.intervals)*60)!==0&&s.push("react-datepicker__time-list-item--injected"),s.join(" ")},t.handleOnKeyDown=function(e,n){var s,o;e.key===D.Space&&(e.preventDefault(),e.key=D.Enter),(e.key===D.ArrowUp||e.key===D.ArrowLeft)&&e.target instanceof HTMLElement&&e.target.previousSibling&&(e.preventDefault(),e.target.previousSibling instanceof HTMLElement&&e.target.previousSibling.focus()),(e.key===D.ArrowDown||e.key===D.ArrowRight)&&e.target instanceof HTMLElement&&e.target.nextSibling&&(e.preventDefault(),e.target.nextSibling instanceof HTMLElement&&e.target.nextSibling.focus()),e.key===D.Enter&&t.handleClick(n),(o=(s=t.props).handleOnKeyDown)===null||o===void 0||o.call(s,e)},t.renderTimes=function(){for(var e,n=[],s=typeof t.props.format=="string"?t.props.format:"p",o=(e=t.props.intervals)!==null&&e!==void 0?e:r.defaultProps.intervals,i=t.props.selected||t.props.openToDate||R(),c=_t(i),u=t.props.injectTimes&&t.props.injectTimes.sort(function(w,k){return w.getTime()-k.getTime()}),l=60*Cc(i),d=l/o,f=0;f=f?e.updateFocusOnPaginate(Math.abs(f-(n-p))):(u=(c=e.YEAR_REFS[n-p])===null||c===void 0?void 0:c.current)===null||u===void 0||u.focus())}},e.isSameDay=function(n,s){return O(n,s)},e.isCurrentYear=function(n){return n===P(R())},e.isRangeStart=function(n){return e.props.startDate&&e.props.endDate&&fe(de(R(),n),e.props.startDate)},e.isRangeEnd=function(n){return e.props.startDate&&e.props.endDate&&fe(de(R(),n),e.props.endDate)},e.isInRange=function(n){return wt(n,e.props.startDate,e.props.endDate)},e.isInSelectingRange=function(n){var s=e.props,o=s.selectsStart,i=s.selectsEnd,c=s.selectsRange,u=s.startDate,l=s.endDate;return!(o||i||c)||!e.selectingDate()?!1:o&&l?wt(n,e.selectingDate(),l):i&&u||c&&u&&!l?wt(n,u,e.selectingDate()):!1},e.isSelectingRangeStart=function(n){var s;if(!e.isInSelectingRange(n))return!1;var o=e.props,i=o.startDate,c=o.selectsStart,u=de(R(),n);return c?fe(u,(s=e.selectingDate())!==null&&s!==void 0?s:null):fe(u,i??null)},e.isSelectingRangeEnd=function(n){var s;if(!e.isInSelectingRange(n))return!1;var o=e.props,i=o.endDate,c=o.selectsEnd,u=o.selectsRange,l=de(R(),n);return c||u?fe(l,(s=e.selectingDate())!==null&&s!==void 0?s:null):fe(l,i??null)},e.isKeyboardSelected=function(n){if(!(e.props.date===void 0||e.props.selected==null||e.props.preSelection==null)){var s=e.props,o=s.minDate,i=s.maxDate,c=s.excludeDates,u=s.includeDates,l=s.filterDate,d=st(de(e.props.date,n)),f=(o||i||c||u||l)&&Mt(n,e.props);return!e.props.disabledKeyboardNavigation&&!e.props.inline&&!O(d,st(e.props.selected))&&O(d,st(e.props.preSelection))&&!f}},e.onYearClick=function(n,s){var o=e.props.date;o!==void 0&&e.handleYearClick(st(de(o,s)),n)},e.onYearKeyDown=function(n,s){var o,i,c=n.key,u=e.props,l=u.date,d=u.yearItemNumber,f=u.handleOnKeyDown;if(c!==D.Tab&&n.preventDefault(),!e.props.disabledKeyboardNavigation)switch(c){case D.Enter:if(e.props.selected==null)break;e.onYearClick(n,s),(i=(o=e.props).setPreSelection)===null||i===void 0||i.call(o,e.props.selected);break;case D.ArrowRight:if(e.props.preSelection==null)break;e.handleYearNavigation(s+1,ge(e.props.preSelection,1));break;case D.ArrowLeft:if(e.props.preSelection==null)break;e.handleYearNavigation(s-1,Ue(e.props.preSelection,1));break;case D.ArrowUp:{if(l===void 0||d===void 0||e.props.preSelection==null)break;var p=xe(l,d).startPeriod,h=zn,g=s-h;if(g=p&&sk){var w=d%h;s<=k&&s>k-w?h=w:h+=w,g=s+h}e.handleYearNavigation(g,ge(e.props.preSelection,h));break}}f&&f(n)},e.getYearClassNames=function(n){var s=e.props,o=s.date,i=s.minDate,c=s.maxDate,u=s.selected,l=s.excludeDates,d=s.includeDates,f=s.filterDate,p=s.yearClassName;return Z("react-datepicker__year-text","react-datepicker__year-".concat(n),o?p==null?void 0:p(de(o,n)):void 0,{"react-datepicker__year-text--selected":u?n===P(u):void 0,"react-datepicker__year-text--disabled":(i||c||l||d||f)&&Mt(n,e.props),"react-datepicker__year-text--keyboard-selected":e.isKeyboardSelected(n),"react-datepicker__year-text--range-start":e.isRangeStart(n),"react-datepicker__year-text--range-end":e.isRangeEnd(n),"react-datepicker__year-text--in-range":e.isInRange(n),"react-datepicker__year-text--in-selecting-range":e.isInSelectingRange(n),"react-datepicker__year-text--selecting-range-start":e.isSelectingRangeStart(n),"react-datepicker__year-text--selecting-range-end":e.isSelectingRangeEnd(n),"react-datepicker__year-text--today":e.isCurrentYear(n)})},e.getYearTabIndex=function(n){if(e.props.disabledKeyboardNavigation||e.props.preSelection==null)return"-1";var s=P(e.props.preSelection),o=Mt(n,e.props);return n===s&&!o?"0":"-1"},e.getYearContent=function(n){return e.props.renderYearContent?e.props.renderYearContent(n):n},e}return r.prototype.render=function(){var t=this,e=[],n=this.props,s=n.date,o=n.yearItemNumber,i=n.onYearMouseEnter,c=n.onYearMouseLeave;if(s===void 0)return null;for(var u=xe(s,o),l=u.startPeriod,d=u.endPeriod,f=function(g){e.push(m.createElement("div",{ref:p.YEAR_REFS[g-l],onClick:function(w){t.onYearClick(w,g)},onKeyDown:function(w){Er(w)&&(w.preventDefault(),w.key=D.Enter),t.onYearKeyDown(w,g)},tabIndex:Number(p.getYearTabIndex(g)),className:p.getYearClassNames(g),onMouseEnter:p.props.usePointerEvent?void 0:function(w){return i(w,g)},onPointerEnter:p.props.usePointerEvent?function(w){return i(w,g)}:void 0,onMouseLeave:p.props.usePointerEvent?void 0:function(w){return c(w,g)},onPointerLeave:p.props.usePointerEvent?function(w){return c(w,g)}:void 0,key:g,"aria-current":p.isCurrentYear(g)?"date":void 0},p.getYearContent(g)))},p=this,h=l;h<=d;h++)f(h);return m.createElement("div",{className:"react-datepicker__year"},m.createElement("div",{className:"react-datepicker__year-wrapper",onMouseLeave:this.props.usePointerEvent?void 0:this.props.clearSelectingDate,onPointerLeave:this.props.usePointerEvent?this.props.clearSelectingDate:void 0},e))},r}(v.Component);function Qc(a,r,t,e){for(var n=[],s=0;s<2*r+1;s++){var o=a+r-s,i=!0;t&&(i=P(t)<=o),e&&i&&(i=P(e)>=o),i&&n.push(o)}return n}var Bc=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;e.renderOptions=function(){var i=e.props.year,c=e.state.yearsList.map(function(d){return m.createElement("div",{className:i===d?"react-datepicker__year-option react-datepicker__year-option--selected_year":"react-datepicker__year-option",key:d,onClick:e.onChange.bind(e,d),"aria-selected":i===d?"true":void 0},i===d?m.createElement("span",{className:"react-datepicker__year-option--selected"},"✓"):"",d)}),u=e.props.minDate?P(e.props.minDate):null,l=e.props.maxDate?P(e.props.maxDate):null;return(!l||!e.state.yearsList.find(function(d){return d===l}))&&c.unshift(m.createElement("div",{className:"react-datepicker__year-option",key:"upcoming",onClick:e.incrementYears},m.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming"}))),(!u||!e.state.yearsList.find(function(d){return d===u}))&&c.push(m.createElement("div",{className:"react-datepicker__year-option",key:"previous",onClick:e.decrementYears},m.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous"}))),c},e.onChange=function(i){e.props.onChange(i)},e.handleClickOutside=function(){e.props.onCancel()},e.shiftYears=function(i){var c=e.state.yearsList.map(function(u){return u+i});e.setState({yearsList:c})},e.incrementYears=function(){return e.shiftYears(1)},e.decrementYears=function(){return e.shiftYears(-1)};var n=t.yearDropdownItemNumber,s=t.scrollableYearDropdown,o=n||(s?10:5);return e.state={yearsList:Qc(e.props.year,o,e.props.minDate,e.props.maxDate)},e.dropdownRef=v.createRef(),e}return r.prototype.componentDidMount=function(){var t=this.dropdownRef.current;if(t){var e=t.children?Array.from(t.children):null,n=e?e.find(function(s){return s.ariaSelected}):null;t.scrollTop=n&&n instanceof HTMLElement?n.offsetTop+(n.clientHeight-t.clientHeight)/2:(t.scrollHeight-t.clientHeight)/2}},r.prototype.render=function(){var t=Z({"react-datepicker__year-dropdown":!0,"react-datepicker__year-dropdown--scrollable":this.props.scrollableYearDropdown});return m.createElement($t,{className:t,containerRef:this.dropdownRef,onClickOutside:this.handleClickOutside},this.renderOptions())},r}(v.Component),qc=function(a){z(r,a);function r(){var t=a!==null&&a.apply(this,arguments)||this;return t.state={dropdownVisible:!1},t.renderSelectOptions=function(){for(var e=t.props.minDate?P(t.props.minDate):1900,n=t.props.maxDate?P(t.props.maxDate):2100,s=[],o=e;o<=n;o++)s.push(m.createElement("option",{key:o,value:o},o));return s},t.onSelectChange=function(e){t.onChange(parseInt(e.target.value))},t.renderSelectMode=function(){return m.createElement("select",{value:t.props.year,className:"react-datepicker__year-select",onChange:t.onSelectChange},t.renderSelectOptions())},t.renderReadView=function(e){return m.createElement("div",{key:"read",style:{visibility:e?"visible":"hidden"},className:"react-datepicker__year-read-view",onClick:function(n){return t.toggleDropdown(n)}},m.createElement("span",{className:"react-datepicker__year-read-view--down-arrow"}),m.createElement("span",{className:"react-datepicker__year-read-view--selected-year"},t.props.year))},t.renderDropdown=function(){return m.createElement(Bc,E({key:"dropdown"},t.props,{onChange:t.onChange,onCancel:t.toggleDropdown}))},t.renderScrollMode=function(){var e=t.state.dropdownVisible,n=[t.renderReadView(!e)];return e&&n.unshift(t.renderDropdown()),n},t.onChange=function(e){t.toggleDropdown(),e!==t.props.year&&t.props.onChange(e)},t.toggleDropdown=function(e){t.setState({dropdownVisible:!t.state.dropdownVisible},function(){t.props.adjustDateOnChange&&t.handleYearChange(t.props.date,e)})},t.handleYearChange=function(e,n){var s;(s=t.onSelect)===null||s===void 0||s.call(t,e,n),t.setOpen()},t.onSelect=function(e,n){var s,o;(o=(s=t.props).onSelect)===null||o===void 0||o.call(s,e,n)},t.setOpen=function(){var e,n;(n=(e=t.props).setOpen)===null||n===void 0||n.call(e,!0)},t}return r.prototype.render=function(){var t;switch(this.props.dropdownMode){case"scroll":t=this.renderScrollMode();break;case"select":t=this.renderSelectMode();break}return m.createElement("div",{className:"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--".concat(this.props.dropdownMode)},t)},r}(v.Component),Kc=["react-datepicker__year-select","react-datepicker__month-select","react-datepicker__month-year-select"],Vc=function(a){var r=(a.className||"").split(/\s+/);return Kc.some(function(t){return r.indexOf(t)>=0})},Uc=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;return e.monthContainer=void 0,e.handleClickOutside=function(n){e.props.onClickOutside(n)},e.setClickOutsideRef=function(){return e.containerRef.current},e.handleDropdownFocus=function(n){var s,o;Vc(n.target)&&((o=(s=e.props).onDropdownFocus)===null||o===void 0||o.call(s,n))},e.getDateInView=function(){var n=e.props,s=n.preSelection,o=n.selected,i=n.openToDate,c=Tr(e.props),u=Or(e.props),l=R(),d=i||o||s;return d||(c&&Fe(l,c)?c:u&&Pe(l,u)?u:l)},e.increaseMonth=function(){e.setState(function(n){var s=n.date;return{date:ue(s,1)}},function(){return e.handleMonthChange(e.state.date)})},e.decreaseMonth=function(){e.setState(function(n){var s=n.date;return{date:Ie(s,1)}},function(){return e.handleMonthChange(e.state.date)})},e.handleDayClick=function(n,s,o){e.props.onSelect(n,s,o),e.props.setPreSelection&&e.props.setPreSelection(n)},e.handleDayMouseEnter=function(n){e.setState({selectingDate:n}),e.props.onDayMouseEnter&&e.props.onDayMouseEnter(n)},e.handleMonthMouseLeave=function(){e.setState({selectingDate:void 0}),e.props.onMonthMouseLeave&&e.props.onMonthMouseLeave()},e.handleYearMouseEnter=function(n,s){e.setState({selectingDate:de(R(),s)}),e.props.onYearMouseEnter&&e.props.onYearMouseEnter(n,s)},e.handleYearMouseLeave=function(n,s){e.props.onYearMouseLeave&&e.props.onYearMouseLeave(n,s)},e.handleYearChange=function(n){var s,o,i,c;(o=(s=e.props).onYearChange)===null||o===void 0||o.call(s,n),e.setState({isRenderAriaLiveMessage:!0}),e.props.adjustDateOnChange&&(e.props.onSelect(n),(c=(i=e.props).setOpen)===null||c===void 0||c.call(i,!0)),e.props.setPreSelection&&e.props.setPreSelection(n)},e.getEnabledPreSelectionDateForMonth=function(n){if(!se(n,e.props))return n;for(var s=ve(n),o=hc(n),i=Ts(o,s),c=null,u=0;u<=i;u++){var l=ce(s,u);if(!se(l,e.props)){c=l;break}}return c},e.handleMonthChange=function(n){var s,o,i,c=(s=e.getEnabledPreSelectionDateForMonth(n))!==null&&s!==void 0?s:n;e.handleCustomMonthChange(c),e.props.adjustDateOnChange&&(e.props.onSelect(c),(i=(o=e.props).setOpen)===null||i===void 0||i.call(o,!0)),e.props.setPreSelection&&e.props.setPreSelection(c)},e.handleCustomMonthChange=function(n){var s,o;(o=(s=e.props).onMonthChange)===null||o===void 0||o.call(s,n),e.setState({isRenderAriaLiveMessage:!0})},e.handleMonthYearChange=function(n){e.handleYearChange(n),e.handleMonthChange(n)},e.changeYear=function(n){e.setState(function(s){var o=s.date;return{date:de(o,Number(n))}},function(){return e.handleYearChange(e.state.date)})},e.changeMonth=function(n){e.setState(function(s){var o=s.date;return{date:ae(o,Number(n))}},function(){return e.handleMonthChange(e.state.date)})},e.changeMonthYear=function(n){e.setState(function(s){var o=s.date;return{date:de(ae(o,te(n)),P(n))}},function(){return e.handleMonthYearChange(e.state.date)})},e.header=function(n){n===void 0&&(n=e.state.date);var s=Ce(n,e.props.locale,e.props.calendarStartDay),o=[];return e.props.showWeekNumbers&&o.push(m.createElement("div",{key:"W",className:"react-datepicker__day-name"},e.props.weekLabel||"#")),o.concat([0,1,2,3,4,5,6].map(function(i){var c=ce(s,i),u=e.formatWeekday(c,e.props.locale),l=e.props.weekDayClassName?e.props.weekDayClassName(c):void 0;return m.createElement("div",{key:i,"aria-label":H(c,"EEEE",e.props.locale),className:Z("react-datepicker__day-name",l)},u)}))},e.formatWeekday=function(n,s){return e.props.formatWeekDay?mc(n,e.props.formatWeekDay,s):e.props.useWeekdaysShort?wc(n,s):gc(n,s)},e.decreaseYear=function(){e.setState(function(n){var s,o=n.date;return{date:Ue(o,e.props.showYearPicker?(s=e.props.yearItemNumber)!==null&&s!==void 0?s:r.defaultProps.yearItemNumber:1)}},function(){return e.handleYearChange(e.state.date)})},e.clearSelectingDate=function(){e.setState({selectingDate:void 0})},e.renderPreviousButton=function(){var n,s,o;if(!e.props.renderCustomHeader){var i=(n=e.props.monthsShown)!==null&&n!==void 0?n:r.defaultProps.monthsShown,c=e.props.showPreviousMonths?i-1:0,u=(s=e.props.monthSelectedIn)!==null&&s!==void 0?s:c,l=Ie(e.state.date,u),d;switch(!0){case e.props.showMonthYearPicker:d=Bn(e.state.date,e.props);break;case e.props.showYearPicker:d=kc(e.state.date,e.props);break;case e.props.showQuarterYearPicker:d=vc(e.state.date,e.props);break;default:d=$n(l,e.props);break}if(!(!((o=e.props.forceShowMonthNavigation)!==null&&o!==void 0?o:r.defaultProps.forceShowMonthNavigation)&&!e.props.showDisabledMonthNavigation&&d||e.props.showTimeSelectOnly)){var f=["react-datepicker__navigation-icon","react-datepicker__navigation-icon--previous"],p=["react-datepicker__navigation","react-datepicker__navigation--previous"],h=e.decreaseMonth;(e.props.showMonthYearPicker||e.props.showQuarterYearPicker||e.props.showYearPicker)&&(h=e.decreaseYear),d&&e.props.showDisabledMonthNavigation&&(p.push("react-datepicker__navigation--previous--disabled"),h=void 0);var g=e.props.showMonthYearPicker||e.props.showQuarterYearPicker||e.props.showYearPicker,w=e.props,k=w.previousMonthButtonLabel,S=k===void 0?r.defaultProps.previousMonthButtonLabel:k,x=w.previousYearButtonLabel,N=x===void 0?r.defaultProps.previousYearButtonLabel:x,q=e.props,$=q.previousMonthAriaLabel,I=$===void 0?typeof S=="string"?S:"Previous Month":$,_=q.previousYearAriaLabel,M=_===void 0?typeof N=="string"?N:"Previous Year":_;return m.createElement("button",{type:"button",className:p.join(" "),onClick:h,onKeyDown:e.props.handleOnKeyDown,"aria-label":g?M:I},m.createElement("span",{className:f.join(" ")},g?N:S))}}},e.increaseYear=function(){e.setState(function(n){var s,o=n.date;return{date:ge(o,e.props.showYearPicker?(s=e.props.yearItemNumber)!==null&&s!==void 0?s:r.defaultProps.yearItemNumber:1)}},function(){return e.handleYearChange(e.state.date)})},e.renderNextButton=function(){var n;if(!e.props.renderCustomHeader){var s;switch(!0){case e.props.showMonthYearPicker:s=qn(e.state.date,e.props);break;case e.props.showYearPicker:s=_c(e.state.date,e.props);break;case e.props.showQuarterYearPicker:s=bc(e.state.date,e.props);break;default:s=Qn(e.state.date,e.props);break}if(!(!((n=e.props.forceShowMonthNavigation)!==null&&n!==void 0?n:r.defaultProps.forceShowMonthNavigation)&&!e.props.showDisabledMonthNavigation&&s||e.props.showTimeSelectOnly)){var o=["react-datepicker__navigation","react-datepicker__navigation--next"],i=["react-datepicker__navigation-icon","react-datepicker__navigation-icon--next"];e.props.showTimeSelect&&o.push("react-datepicker__navigation--next--with-time"),e.props.todayButton&&o.push("react-datepicker__navigation--next--with-today-button");var c=e.increaseMonth;(e.props.showMonthYearPicker||e.props.showQuarterYearPicker||e.props.showYearPicker)&&(c=e.increaseYear),s&&e.props.showDisabledMonthNavigation&&(o.push("react-datepicker__navigation--next--disabled"),c=void 0);var u=e.props.showMonthYearPicker||e.props.showQuarterYearPicker||e.props.showYearPicker,l=e.props,d=l.nextMonthButtonLabel,f=d===void 0?r.defaultProps.nextMonthButtonLabel:d,p=l.nextYearButtonLabel,h=p===void 0?r.defaultProps.nextYearButtonLabel:p,g=e.props,w=g.nextMonthAriaLabel,k=w===void 0?typeof f=="string"?f:"Next Month":w,S=g.nextYearAriaLabel,x=S===void 0?typeof h=="string"?h:"Next Year":S;return m.createElement("button",{type:"button",className:o.join(" "),onClick:c,onKeyDown:e.props.handleOnKeyDown,"aria-label":u?x:k},m.createElement("span",{className:i.join(" ")},u?h:f))}}},e.renderCurrentMonth=function(n){n===void 0&&(n=e.state.date);var s=["react-datepicker__current-month"];return e.props.showYearDropdown&&s.push("react-datepicker__current-month--hasYearDropdown"),e.props.showMonthDropdown&&s.push("react-datepicker__current-month--hasMonthDropdown"),e.props.showMonthYearDropdown&&s.push("react-datepicker__current-month--hasMonthYearDropdown"),m.createElement("h2",{className:s.join(" ")},H(n,e.props.dateFormat,e.props.locale))},e.renderYearDropdown=function(n){if(n===void 0&&(n=!1),!(!e.props.showYearDropdown||n))return m.createElement(qc,E({},r.defaultProps,e.props,{date:e.state.date,onChange:e.changeYear,year:P(e.state.date)}))},e.renderMonthDropdown=function(n){if(n===void 0&&(n=!1),!(!e.props.showMonthDropdown||n))return m.createElement(Fc,E({},r.defaultProps,e.props,{month:te(e.state.date),onChange:e.changeMonth}))},e.renderMonthYearDropdown=function(n){if(n===void 0&&(n=!1),!(!e.props.showMonthYearDropdown||n))return m.createElement(Ac,E({},r.defaultProps,e.props,{date:e.state.date,onChange:e.changeMonthYear}))},e.handleTodayButtonClick=function(n){e.props.onSelect(Fn(),n),e.props.setPreSelection&&e.props.setPreSelection(Fn())},e.renderTodayButton=function(){if(!(!e.props.todayButton||e.props.showTimeSelectOnly))return m.createElement("div",{className:"react-datepicker__today-button",onClick:e.handleTodayButtonClick},e.props.todayButton)},e.renderDefaultHeader=function(n){var s=n.monthDate,o=n.i;return m.createElement("div",{className:"react-datepicker__header ".concat(e.props.showTimeSelect?"react-datepicker__header--has-time-select":"")},e.renderCurrentMonth(s),m.createElement("div",{className:"react-datepicker__header__dropdown react-datepicker__header__dropdown--".concat(e.props.dropdownMode),onFocus:e.handleDropdownFocus},e.renderMonthDropdown(o!==0),e.renderMonthYearDropdown(o!==0),e.renderYearDropdown(o!==0)),m.createElement("div",{className:"react-datepicker__day-names"},e.header(s)))},e.renderCustomHeader=function(n){var s,o,i=n.monthDate,c=n.i;if(e.props.showTimeSelect&&!e.state.monthContainer||e.props.showTimeSelectOnly)return null;var u=$n(e.state.date,e.props),l=Qn(e.state.date,e.props),d=Bn(e.state.date,e.props),f=qn(e.state.date,e.props),p=!e.props.showMonthYearPicker&&!e.props.showQuarterYearPicker&&!e.props.showYearPicker;return m.createElement("div",{className:"react-datepicker__header react-datepicker__header--custom",onFocus:e.props.onDropdownFocus},(o=(s=e.props).renderCustomHeader)===null||o===void 0?void 0:o.call(s,E(E({},e.state),{customHeaderCount:c,monthDate:i,changeMonth:e.changeMonth,changeYear:e.changeYear,decreaseMonth:e.decreaseMonth,increaseMonth:e.increaseMonth,decreaseYear:e.decreaseYear,increaseYear:e.increaseYear,prevMonthButtonDisabled:u,nextMonthButtonDisabled:l,prevYearButtonDisabled:d,nextYearButtonDisabled:f})),p&&m.createElement("div",{className:"react-datepicker__day-names"},e.header(i)))},e.renderYearHeader=function(n){var s=n.monthDate,o=e.props,i=o.showYearPicker,c=o.yearItemNumber,u=c===void 0?r.defaultProps.yearItemNumber:c,l=xe(s,u),d=l.startPeriod,f=l.endPeriod;return m.createElement("div",{className:"react-datepicker__header react-datepicker-year-header"},i?"".concat(d," - ").concat(f):P(s))},e.renderHeader=function(n){var s=n.monthDate,o=n.i,i=o===void 0?0:o,c={monthDate:s,i};switch(!0){case e.props.renderCustomHeader!==void 0:return e.renderCustomHeader(c);case(e.props.showMonthYearPicker||e.props.showQuarterYearPicker||e.props.showYearPicker):return e.renderYearHeader(c);default:return e.renderDefaultHeader(c)}},e.renderMonths=function(){var n,s;if(!(e.props.showTimeSelectOnly||e.props.showYearPicker)){for(var o=[],i=(n=e.props.monthsShown)!==null&&n!==void 0?n:r.defaultProps.monthsShown,c=e.props.showPreviousMonths?i-1:0,u=e.props.showMonthYearPicker||e.props.showQuarterYearPicker?ge(e.state.date,c):Ie(e.state.date,c),l=(s=e.props.monthSelectedIn)!==null&&s!==void 0?s:c,d=0;d0;o.push(m.createElement("div",{key:h,ref:function(k){e.monthContainer=k??void 0},className:"react-datepicker__month-container"},e.renderHeader({monthDate:p,i:d}),m.createElement(Ic,E({},r.defaultProps,e.props,{ariaLabelPrefix:e.props.monthAriaLabelPrefix,day:p,onDayClick:e.handleDayClick,handleOnKeyDown:e.props.handleOnDayKeyDown,handleOnMonthKeyDown:e.props.handleOnKeyDown,onDayMouseEnter:e.handleDayMouseEnter,onMouseLeave:e.handleMonthMouseLeave,orderInDisplay:d,selectingDate:e.state.selectingDate,monthShowsDuplicateDaysEnd:g,monthShowsDuplicateDaysStart:w}))))}return o}},e.renderYears=function(){if(!e.props.showTimeSelectOnly&&e.props.showYearPicker)return m.createElement("div",{className:"react-datepicker__year--container"},e.renderHeader({monthDate:e.state.date}),m.createElement($c,E({},r.defaultProps,e.props,{selectingDate:e.state.selectingDate,date:e.state.date,onDayClick:e.handleDayClick,clearSelectingDate:e.clearSelectingDate,onYearMouseEnter:e.handleYearMouseEnter,onYearMouseLeave:e.handleYearMouseLeave})))},e.renderTimeSection=function(){if(e.props.showTimeSelect&&(e.state.monthContainer||e.props.showTimeSelectOnly))return m.createElement(Hc,E({},r.defaultProps,e.props,{onChange:e.props.onTimeChange,format:e.props.timeFormat,intervals:e.props.timeIntervals,monthRef:e.state.monthContainer}))},e.renderInputTimeSection=function(){var n=e.props.selected?new Date(e.props.selected):void 0,s=n&&Qt(n)&&!!e.props.selected,o=s?"".concat(Vn(n.getHours()),":").concat(Vn(n.getMinutes())):"";if(e.props.showTimeInput)return m.createElement(Tc,E({},r.defaultProps,e.props,{date:n,timeString:o,onChange:e.props.onTimeChange}))},e.renderAriaLiveRegion=function(){var n,s=xe(e.state.date,(n=e.props.yearItemNumber)!==null&&n!==void 0?n:r.defaultProps.yearItemNumber),o=s.startPeriod,i=s.endPeriod,c;return e.props.showYearPicker?c="".concat(o," - ").concat(i):e.props.showMonthYearPicker||e.props.showQuarterYearPicker?c=P(e.state.date):c="".concat(fn(te(e.state.date),e.props.locale)," ").concat(P(e.state.date)),m.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},e.state.isRenderAriaLiveMessage&&c)},e.renderChildren=function(){if(e.props.children)return m.createElement("div",{className:"react-datepicker__children-container"},e.props.children)},e.containerRef=v.createRef(),e.state={date:e.getDateInView(),selectingDate:void 0,monthContainer:void 0,isRenderAriaLiveMessage:!1},e}return Object.defineProperty(r,"defaultProps",{get:function(){return{monthsShown:1,forceShowMonthNavigation:!1,timeCaption:"Time",previousYearButtonLabel:"Previous Year",nextYearButtonLabel:"Next Year",previousMonthButtonLabel:"Previous Month",nextMonthButtonLabel:"Next Month",yearItemNumber:lt}},enumerable:!1,configurable:!0}),r.prototype.componentDidMount=function(){var t=this;this.props.showTimeSelect&&(this.assignMonthContainer=function(){t.setState({monthContainer:t.monthContainer})}())},r.prototype.componentDidUpdate=function(t){var e=this;if(this.props.preSelection&&(!O(this.props.preSelection,t.preSelection)||this.props.monthSelectedIn!==t.monthSelectedIn)){var n=!ee(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},function(){return n&&e.handleCustomMonthChange(e.state.date)})}else this.props.openToDate&&!O(this.props.openToDate,t.openToDate)&&this.setState({date:this.props.openToDate})},r.prototype.render=function(){var t=this.props.container||ic;return m.createElement($t,{onClickOutside:this.handleClickOutside,style:{display:"contents"},containerRef:this.containerRef,ignoreClass:this.props.outsideClickIgnoreClass},m.createElement(t,{className:Z("react-datepicker",this.props.className,{"react-datepicker--time-only":this.props.showTimeSelectOnly}),showTime:this.props.showTimeSelect||this.props.showTimeInput,showTimeSelectOnly:this.props.showTimeSelectOnly},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))},r}(v.Component),jc=function(a){var r=a.icon,t=a.className,e=t===void 0?"":t,n=a.onClick,s="react-datepicker__calendar-icon";if(typeof r=="string")return m.createElement("i",{className:"".concat(s," ").concat(r," ").concat(e),"aria-hidden":"true",onClick:n});if(m.isValidElement(r)){var o=r;return m.cloneElement(o,{className:"".concat(o.props.className||""," ").concat(s," ").concat(e),onClick:function(i){typeof o.props.onClick=="function"&&o.props.onClick(i),typeof n=="function"&&n(i)}})}return m.createElement("svg",{className:"".concat(s," ").concat(e),xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",onClick:n},m.createElement("path",{d:"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"}))},Nr=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;return e.portalRoot=null,e.el=document.createElement("div"),e}return r.prototype.componentDidMount=function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement("div"),this.portalRoot.setAttribute("id",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)},r.prototype.componentWillUnmount=function(){this.portalRoot&&this.portalRoot.removeChild(this.el)},r.prototype.render=function(){return Lr.createPortal(this.props.children,this.el)},r}(v.Component),Xc="[tabindex], a, button, input, select, textarea",Gc=function(a){return(a instanceof HTMLAnchorElement||!a.disabled)&&a.tabIndex!==-1},Yr=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;return e.getTabChildren=function(){var n;return Array.prototype.slice.call((n=e.tabLoopRef.current)===null||n===void 0?void 0:n.querySelectorAll(Xc),1,-1).filter(Gc)},e.handleFocusStart=function(){var n=e.getTabChildren();n&&n.length>1&&n[n.length-1].focus()},e.handleFocusEnd=function(){var n=e.getTabChildren();n&&n.length>1&&n[0].focus()},e.tabLoopRef=v.createRef(),e}return r.prototype.render=function(){var t;return((t=this.props.enableTabLoop)!==null&&t!==void 0?t:r.defaultProps.enableTabLoop)?m.createElement("div",{className:"react-datepicker__tab-loop",ref:this.tabLoopRef},m.createElement("div",{className:"react-datepicker__tab-loop__start",tabIndex:0,onFocus:this.handleFocusStart}),this.props.children,m.createElement("div",{className:"react-datepicker__tab-loop__end",tabIndex:0,onFocus:this.handleFocusEnd})):this.props.children},r.defaultProps={enableTabLoop:!0},r}(v.Component);function zc(a){var r=function(t){var e,n=typeof t.hidePopper=="boolean"?t.hidePopper:!0,s=v.useRef(null),o=oc(E({open:!n,whileElementsMounted:Hr,placement:t.popperPlacement,middleware:me([$r({padding:15}),Qr(10),Br({element:s})],(e=t.popperModifiers)!==null&&e!==void 0?e:[],!0)},t.popperProps)),i=E(E({},t),{hidePopper:n,popperProps:E(E({},o),{arrowRef:s})});return m.createElement(a,E({},i))};return r}var Zc=function(a){z(r,a);function r(){return a!==null&&a.apply(this,arguments)||this}return Object.defineProperty(r,"defaultProps",{get:function(){return{hidePopper:!0}},enumerable:!1,configurable:!0}),r.prototype.render=function(){var t=this.props,e=t.className,n=t.wrapperClassName,s=t.hidePopper,o=s===void 0?r.defaultProps.hidePopper:s,i=t.popperComponent,c=t.targetComponent,u=t.enableTabLoop,l=t.popperOnKeyDown,d=t.portalId,f=t.portalHost,p=t.popperProps,h=t.showArrow,g=void 0;if(!o){var w=Z("react-datepicker-popper",e);g=m.createElement(Yr,{enableTabLoop:u},m.createElement("div",{ref:p.refs.setFloating,style:p.floatingStyles,className:w,"data-placement":p.placement,onKeyDown:l},i,h&&m.createElement(Ji,{ref:p.arrowRef,context:p.context,fill:"currentColor",strokeWidth:1,height:8,width:16,style:{transform:"translateY(-1px)"},className:"react-datepicker__triangle"})))}this.props.popperContainer&&(g=v.createElement(this.props.popperContainer,{},g)),d&&!o&&(g=m.createElement(Nr,{portalId:d,portalHost:f},g));var k=Z("react-datepicker-wrapper",n);return m.createElement(m.Fragment,null,m.createElement("div",{ref:p.refs.setReference,className:k},c),g)},r}(v.Component),Jc=zc(Zc),Zn="react-datepicker-ignore-onclickoutside";function eu(a,r){return a&&r?te(a)!==te(r)||P(a)!==P(r):a!==r}var Gt="Date input not valid.",hu=function(a){z(r,a);function r(t){var e=a.call(this,t)||this;return e.calendar=null,e.input=null,e.getPreSelection=function(){return e.props.openToDate?e.props.openToDate:e.props.selectsEnd&&e.props.startDate?e.props.startDate:e.props.selectsStart&&e.props.endDate?e.props.endDate:R()},e.modifyHolidays=function(){var n;return(n=e.props.holidays)===null||n===void 0?void 0:n.reduce(function(s,o){var i=new Date(o.date);return Qt(i)?me(me([],s,!0),[E(E({},o),{date:i})],!1):s},[])},e.calcInitialState=function(){var n,s=e.getPreSelection(),o=Tr(e.props),i=Or(e.props),c=o&&Fe(s,_t(o))?o:i&&Pe(s,Ln(i))?i:s;return{open:e.props.startOpen||!1,preventFocus:!1,inputValue:null,preSelection:(n=e.props.selectsRange?e.props.startDate:e.props.selected)!==null&&n!==void 0?n:c,highlightDates:Kn(e.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1,wasHidden:!1}},e.resetHiddenStatus=function(){e.setState(E(E({},e.state),{wasHidden:!1}))},e.setHiddenStatus=function(){e.setState(E(E({},e.state),{wasHidden:!0}))},e.setHiddenStateOnVisibilityHidden=function(){document.visibilityState==="hidden"&&e.setHiddenStatus()},e.clearPreventFocusTimeout=function(){e.preventFocusTimeout&&clearTimeout(e.preventFocusTimeout)},e.safeFocus=function(){setTimeout(function(){var n,s;(s=(n=e.input)===null||n===void 0?void 0:n.focus)===null||s===void 0||s.call(n,{preventScroll:!0})},0)},e.safeBlur=function(){setTimeout(function(){var n,s;(s=(n=e.input)===null||n===void 0?void 0:n.blur)===null||s===void 0||s.call(n)},0)},e.setFocus=function(){e.safeFocus()},e.setBlur=function(){e.safeBlur(),e.cancelFocusInput()},e.setOpen=function(n,s){s===void 0&&(s=!1),e.setState({open:n,preSelection:n&&e.state.open?e.state.preSelection:e.calcInitialState().preSelection,lastPreSelectChange:zt},function(){n||e.setState(function(o){return{focused:s?o.focused:!1}},function(){!s&&e.setBlur(),e.setState({inputValue:null})})})},e.inputOk=function(){return we(e.state.preSelection)},e.isCalendarOpen=function(){return e.props.open===void 0?e.state.open&&!e.props.disabled&&!e.props.readOnly:e.props.open},e.handleFocus=function(n){var s,o,i=e.state.wasHidden,c=i?e.state.open:!0;i&&e.resetHiddenStatus(),e.state.preventFocus||((o=(s=e.props).onFocus)===null||o===void 0||o.call(s,n),c&&!e.props.preventOpenOnFocus&&!e.props.readOnly&&e.setOpen(!0)),e.setState({focused:!0})},e.sendFocusBackToInput=function(){e.preventFocusTimeout&&e.clearPreventFocusTimeout(),e.setState({preventFocus:!0},function(){e.preventFocusTimeout=setTimeout(function(){e.setFocus(),e.setState({preventFocus:!1})})})},e.cancelFocusInput=function(){clearTimeout(e.inputFocusTimeout),e.inputFocusTimeout=void 0},e.deferFocusInput=function(){e.cancelFocusInput(),e.inputFocusTimeout=setTimeout(function(){return e.setFocus()},1)},e.handleDropdownFocus=function(){e.cancelFocusInput()},e.handleBlur=function(n){var s,o;(!e.state.open||e.props.withPortal||e.props.showTimeInput)&&((o=(s=e.props).onBlur)===null||o===void 0||o.call(s,n)),e.setState({focused:!1})},e.handleCalendarClickOutside=function(n){var s,o;e.props.inline||e.setOpen(!1),(o=(s=e.props).onClickOutside)===null||o===void 0||o.call(s,n),e.props.withPortal&&n.preventDefault()},e.handleChange=function(){for(var n,s,o,i,c,u=[],l=0;l=Q){ie=A;break}f&&iep&&(ne=D.ArrowLeft,ie=se(p,e.props)?_(ne,ie):p),se(ie,e.props)?((ne===D.PageUp||ne===D.Home)&&(ne=D.ArrowRight),(ne===D.PageDown||ne===D.End)&&(ne=D.ArrowLeft),ie=_(ne,ie)):Xe=!0,hn++}return ie};if(q===D.Enter){n.preventDefault(),e.handleSelect(I,n),!w&&e.setPreSelection(I);return}else if(q===D.Escape){n.preventDefault(),e.setOpen(!1),e.inputOk()||(c=(i=e.props).onInputError)===null||c===void 0||c.call(i,{code:1,msg:Gt});return}var F=null;switch(q){case D.ArrowLeft:case D.ArrowRight:case D.ArrowUp:case D.ArrowDown:case D.PageUp:case D.PageDown:case D.Home:case D.End:F=M(q,I);break}if(!F){(l=(u=e.props).onInputError)===null||l===void 0||l.call(u,{code:1,msg:Gt});return}if(n.preventDefault(),e.setState({lastPreSelectChange:zt}),x&&e.setSelected(F),e.setPreSelection(F),N){var X=te(I),K=te(F),J=P(I),le=P(F);X!==K||J!==le?e.setState({shouldFocusDayInline:!0}):e.setState({shouldFocusDayInline:!1})}}},e.onPopperKeyDown=function(n){var s=n.key;s===D.Escape&&(n.preventDefault(),e.sendFocusBackToInput())},e.onClearClick=function(n){n&&n.preventDefault&&n.preventDefault(),e.sendFocusBackToInput();var s=e.props,o=s.selectsRange,i=s.onChange;o?i==null||i([null,null],n):i==null||i(null,n),e.setState({inputValue:null})},e.clear=function(){e.onClearClick()},e.onScroll=function(n){typeof e.props.closeOnScroll=="boolean"&&e.props.closeOnScroll?(n.target===document||n.target===document.documentElement||n.target===document.body)&&e.setOpen(!1):typeof e.props.closeOnScroll=="function"&&e.props.closeOnScroll(n)&&e.setOpen(!1)},e.renderCalendar=function(){var n,s;return!e.props.inline&&!e.isCalendarOpen()?null:m.createElement(Uc,E({showMonthYearDropdown:void 0,ref:function(o){e.calendar=o}},e.props,e.state,{setOpen:e.setOpen,dateFormat:(n=e.props.dateFormatCalendar)!==null&&n!==void 0?n:r.defaultProps.dateFormatCalendar,onSelect:e.handleSelect,onClickOutside:e.handleCalendarClickOutside,holidays:xc(e.modifyHolidays()),outsideClickIgnoreClass:Zn,onDropdownFocus:e.handleDropdownFocus,onTimeChange:e.handleTimeChange,className:e.props.calendarClassName,container:e.props.calendarContainer,handleOnKeyDown:e.props.onKeyDown,handleOnDayKeyDown:e.onDayKeyDown,setPreSelection:e.setPreSelection,dropdownMode:(s=e.props.dropdownMode)!==null&&s!==void 0?s:r.defaultProps.dropdownMode}),e.props.children)},e.renderAriaLiveRegion=function(){var n=e.props,s=n.dateFormat,o=s===void 0?r.defaultProps.dateFormat:s,i=n.locale,c=e.props.showTimeInput||e.props.showTimeSelect,u=c?"PPPPp":"PPPP",l;return e.props.selectsRange?l="Selected start date: ".concat(re(e.props.startDate,{dateFormat:u,locale:i}),". ").concat(e.props.endDate?"End date: "+re(e.props.endDate,{dateFormat:u,locale:i}):""):e.props.showTimeSelectOnly?l="Selected time: ".concat(re(e.props.selected,{dateFormat:o,locale:i})):e.props.showYearPicker?l="Selected year: ".concat(re(e.props.selected,{dateFormat:"yyyy",locale:i})):e.props.showMonthYearPicker?l="Selected month: ".concat(re(e.props.selected,{dateFormat:"MMMM yyyy",locale:i})):e.props.showQuarterYearPicker?l="Selected quarter: ".concat(re(e.props.selected,{dateFormat:"yyyy, QQQ",locale:i})):l="Selected date: ".concat(re(e.props.selected,{dateFormat:u,locale:i})),m.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},l)},e.renderDateInput=function(){var n,s,o,i=Z(e.props.className,(n={},n[Zn]=e.state.open,n)),c=e.props.customInput||m.createElement("input",{type:"text"}),u=e.props.customInputRef||"ref",l=e.props,d=l.dateFormat,f=d===void 0?r.defaultProps.dateFormat:d,p=l.locale,h=typeof e.props.value=="string"?e.props.value:typeof e.state.inputValue=="string"?e.state.inputValue:e.props.selectsRange?uc(e.props.startDate,e.props.endDate,{dateFormat:f,locale:p}):e.props.selectsMultiple?lc((o=e.props.selectedDates)!==null&&o!==void 0?o:[],{dateFormat:f,locale:p}):re(e.props.selected,{dateFormat:f,locale:p});return v.cloneElement(c,(s={},s[u]=function(g){e.input=g},s.value=h,s.onBlur=e.handleBlur,s.onChange=e.handleChange,s.onClick=e.onInputClick,s.onFocus=e.handleFocus,s.onKeyDown=e.onInputKeyDown,s.id=e.props.id,s.name=e.props.name,s.form=e.props.form,s.autoFocus=e.props.autoFocus,s.placeholder=e.props.placeholderText,s.disabled=e.props.disabled,s.autoComplete=e.props.autoComplete,s.className=Z(c.props.className,i),s.title=e.props.title,s.readOnly=e.props.readOnly,s.required=e.props.required,s.tabIndex=e.props.tabIndex,s["aria-describedby"]=e.props.ariaDescribedBy,s["aria-invalid"]=e.props.ariaInvalid,s["aria-labelledby"]=e.props.ariaLabelledBy,s["aria-required"]=e.props.ariaRequired,s))},e.renderClearButton=function(){var n=e.props,s=n.isClearable,o=n.disabled,i=n.selected,c=n.startDate,u=n.endDate,l=n.clearButtonTitle,d=n.clearButtonClassName,f=d===void 0?"":d,p=n.ariaLabelClose,h=p===void 0?"Close":p,g=n.selectedDates;return s&&(i!=null||c!=null||u!=null||g!=null&&g.length)?m.createElement("button",{type:"button",className:Z("react-datepicker__close-icon",f,{"react-datepicker__close-icon--disabled":o}),disabled:o,"aria-label":h,onClick:e.onClearClick,title:l,tabIndex:-1}):null},e.state=e.calcInitialState(),e.preventFocusTimeout=void 0,e}return Object.defineProperty(r,"defaultProps",{get:function(){return{allowSameDay:!1,dateFormat:"MM/dd/yyyy",dateFormatCalendar:"LLLL yyyy",disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:"scroll",preventOpenOnFocus:!1,monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,swapRange:!1,timeIntervals:30,timeCaption:"Time",previousMonthAriaLabel:"Previous Month",previousMonthButtonLabel:"Previous Month",nextMonthAriaLabel:"Next Month",nextMonthButtonLabel:"Next Month",previousYearAriaLabel:"Previous Year",previousYearButtonLabel:"Previous Year",nextYearAriaLabel:"Next Year",nextYearButtonLabel:"Next Year",timeInputLabel:"Time",enableTabLoop:!0,yearItemNumber:lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1,usePointerEvent:!1}},enumerable:!1,configurable:!0}),r.prototype.componentDidMount=function(){window.addEventListener("scroll",this.onScroll,!0),document.addEventListener("visibilitychange",this.setHiddenStateOnVisibilityHidden)},r.prototype.componentDidUpdate=function(t,e){var n,s,o,i;t.inline&&eu(t.selected,this.props.selected)&&this.setPreSelection(this.props.selected),this.state.monthSelectedIn!==void 0&&t.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),t.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:Kn(this.props.highlightDates)}),!e.focused&&!Ee(t.selected,this.props.selected)&&this.setState({inputValue:null}),e.open!==this.state.open&&(e.open===!1&&this.state.open===!0&&((s=(n=this.props).onCalendarOpen)===null||s===void 0||s.call(n)),e.open===!0&&this.state.open===!1&&((i=(o=this.props).onCalendarClose)===null||i===void 0||i.call(o)))},r.prototype.componentWillUnmount=function(){this.clearPreventFocusTimeout(),window.removeEventListener("scroll",this.onScroll,!0),document.removeEventListener("visibilitychange",this.setHiddenStateOnVisibilityHidden)},r.prototype.renderInputContainer=function(){var t=this.props,e=t.showIcon,n=t.icon,s=t.calendarIconClassname,o=t.calendarIconClassName,i=t.toggleCalendarOnIconClick,c=this.state.open;return s&&console.warn("calendarIconClassname props is deprecated. should use calendarIconClassName props."),m.createElement("div",{className:"react-datepicker__input-container".concat(e?" react-datepicker__view-calendar-icon":"")},e&&m.createElement(jc,E({icon:n,className:Z(o,!o&&s,c&&"react-datepicker-ignore-onclickoutside")},i?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())},r.prototype.render=function(){var t=this.renderCalendar();if(this.props.inline)return t;if(this.props.withPortal){var e=this.state.open?m.createElement(Yr,{enableTabLoop:this.props.enableTabLoop},m.createElement("div",{className:"react-datepicker__portal",tabIndex:-1,onKeyDown:this.onPortalKeyDown},t)):null;return this.state.open&&this.props.portalId&&(e=m.createElement(Nr,E({portalId:this.props.portalId},this.props),e)),m.createElement("div",null,this.renderInputContainer(),e)}return m.createElement(Jc,E({},this.props,{className:this.props.popperClassName,hidePopper:!this.isCalendarOpen(),targetComponent:this.renderInputContainer(),popperComponent:t,popperOnKeyDown:this.onPopperKeyDown,showArrow:this.props.showPopperArrow}))},r}(v.Component),tu="input",zt="navigate";export{hu as D,lu as a,iu as b,ou as c,as as d,du as e,cu as f,uu as g,fu as h,Gr as i,pu as p}; diff --git a/pkg/ui/frontend/dist/assets/form-libs-B6JBoFJD.js b/pkg/ui/frontend/dist/assets/form-libs-B6JBoFJD.js new file mode 100644 index 0000000000..30d726f4e1 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/form-libs-B6JBoFJD.js @@ -0,0 +1 @@ +import{b as I}from"./react-core-D_V7s-9r.js";var Ge=r=>r.type==="checkbox",Ae=r=>r instanceof Date,H=r=>r==null;const mr=r=>typeof r=="object";var j=r=>!H(r)&&!Array.isArray(r)&&mr(r)&&!Ae(r),pr=r=>j(r)&&r.target?Ge(r.target)?r.target.checked:r.target.value:r,$r=r=>r.substring(0,r.search(/\.\d+(\.|$)/))||r,yr=(r,e)=>r.has($r(e)),Ur=r=>{const e=r.constructor&&r.constructor.prototype;return j(e)&&e.hasOwnProperty("isPrototypeOf")},jt=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function G(r){let e;const t=Array.isArray(r),s=typeof FileList<"u"?r instanceof FileList:!1;if(r instanceof Date)e=new Date(r);else if(r instanceof Set)e=new Set(r);else if(!(jt&&(r instanceof Blob||s))&&(t||j(r)))if(e=t?[]:{},!t&&!Ur(r))e=r;else for(const n in r)r.hasOwnProperty(n)&&(e[n]=G(r[n]));else return r;return e}var _t=r=>Array.isArray(r)?r.filter(Boolean):[],Z=r=>r===void 0,p=(r,e,t)=>{if(!e||!j(r))return t;const s=_t(e.split(/[,[\].]+?/)).reduce((n,a)=>H(n)?n:n[a],r);return Z(s)||s===r?Z(r[e])?t:r[e]:s},re=r=>typeof r=="boolean",Mt=r=>/^\w*$/.test(r),_r=r=>_t(r.replace(/["|']|\]/g,"").split(/\.|\[/)),F=(r,e,t)=>{let s=-1;const n=Mt(e)?[e]:_r(e),a=n.length,i=a-1;for(;++sI.useContext(gr),Fs=r=>{const{children:e,...t}=r;return I.createElement(gr.Provider,{value:t},e)};var vr=(r,e,t,s=!0)=>{const n={defaultValues:e._defaultValues};for(const a in r)Object.defineProperty(n,a,{get:()=>{const i=a;return e._proxyFormState[i]!==ae.all&&(e._proxyFormState[i]=!s||ae.all),t&&(t[i]=!0),r[i]}});return n},X=r=>j(r)&&!Object.keys(r).length,xr=(r,e,t,s)=>{t(r);const{name:n,...a}=r;return X(a)||Object.keys(a).length>=Object.keys(e).length||Object.keys(a).find(i=>e[i]===(!s||ae.all))},ze=r=>Array.isArray(r)?r:[r],br=(r,e,t)=>!r||!e||r===e||ze(r).some(s=>s&&(t?s===e:s.startsWith(e)||e.startsWith(s)));function Pt(r){const e=I.useRef(r);e.current=r,I.useEffect(()=>{const t=!r.disabled&&e.current.subject&&e.current.subject.subscribe({next:e.current.next});return()=>{t&&t.unsubscribe()}},[r.disabled])}function Br(r){const e=Lt(),{control:t=e.control,disabled:s,name:n,exact:a}=r,[i,d]=I.useState(t._formState),c=I.useRef(!0),h=I.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),y=I.useRef(n);return y.current=n,Pt({disabled:s,next:k=>c.current&&br(y.current,k.name,a)&&xr(k,h.current,t._updateFormState)&&d({...t._formState,...k}),subject:t._subjects.state}),I.useEffect(()=>(c.current=!0,h.current.isValid&&t._updateValid(!0),()=>{c.current=!1}),[t]),I.useMemo(()=>vr(i,t,h.current,!1),[i,t])}var ue=r=>typeof r=="string",kr=(r,e,t,s,n)=>ue(r)?(s&&e.watch.add(r),p(t,r,n)):Array.isArray(r)?r.map(a=>(s&&e.watch.add(a),p(t,a))):(s&&(e.watchAll=!0),t);function zr(r){const e=Lt(),{control:t=e.control,name:s,defaultValue:n,disabled:a,exact:i}=r,d=I.useRef(s);d.current=s,Pt({disabled:a,subject:t._subjects.values,next:y=>{br(d.current,y.name,i)&&h(G(kr(d.current,t._names,y.values||t._formValues,!1,n)))}});const[c,h]=I.useState(t._getWatch(s,n));return I.useEffect(()=>t._removeUnmounted()),c}function Wr(r){const e=Lt(),{name:t,disabled:s,control:n=e.control,shouldUnregister:a}=r,i=yr(n._names.array,t),d=zr({control:n,name:t,defaultValue:p(n._formValues,t,p(n._defaultValues,t,r.defaultValue)),exact:!0}),c=Br({control:n,name:t,exact:!0}),h=I.useRef(n.register(t,{...r.rules,value:d,...re(r.disabled)?{disabled:r.disabled}:{}})),y=I.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!p(c.errors,t)},isDirty:{enumerable:!0,get:()=>!!p(c.dirtyFields,t)},isTouched:{enumerable:!0,get:()=>!!p(c.touchedFields,t)},isValidating:{enumerable:!0,get:()=>!!p(c.validatingFields,t)},error:{enumerable:!0,get:()=>p(c.errors,t)}}),[c,t]),k=I.useMemo(()=>({name:t,value:d,...re(s)||c.disabled?{disabled:c.disabled||s}:{},onChange:M=>h.current.onChange({target:{value:pr(M),name:t},type:et.CHANGE}),onBlur:()=>h.current.onBlur({target:{value:p(n._formValues,t),name:t},type:et.BLUR}),ref:M=>{const Y=p(n._fields,t);Y&&M&&(Y._f.ref={focus:()=>M.focus(),select:()=>M.select(),setCustomValidity:z=>M.setCustomValidity(z),reportValidity:()=>M.reportValidity()})}}),[t,n._formValues,s,c.disabled,d,n._fields]);return I.useEffect(()=>{const M=n._options.shouldUnregister||a,Y=(z,q)=>{const K=p(n._fields,z);K&&K._f&&(K._f.mount=q)};if(Y(t,!0),M){const z=G(p(n._options.defaultValues,t));F(n._defaultValues,t,z),Z(p(n._formValues,t))&&F(n._formValues,t,z)}return!i&&n.register(t),()=>{(i?M&&!n._state.action:M)?n.unregister(t):Y(t,!1)}},[t,n,i,a]),I.useEffect(()=>{n._updateDisabledField({disabled:s,fields:n._fields,name:t})},[s,t,n]),I.useMemo(()=>({field:k,formState:c,fieldState:y}),[k,c,y])}const Is=r=>r.render(Wr(r));var qr=(r,e,t,s,n)=>e?{...t[r],types:{...t[r]&&t[r].types?t[r].types:{},[s]:n||!0}}:{},er=r=>({isOnSubmit:!r||r===ae.onSubmit,isOnBlur:r===ae.onBlur,isOnChange:r===ae.onChange,isOnAll:r===ae.all,isOnTouch:r===ae.onTouched}),tr=(r,e,t)=>!t&&(e.watchAll||e.watch.has(r)||[...e.watch].some(s=>r.startsWith(s)&&/^\.\w+/.test(r.slice(s.length))));const We=(r,e,t,s)=>{for(const n of t||Object.keys(r)){const a=p(r,n);if(a){const{_f:i,...d}=a;if(i){if(i.refs&&i.refs[0]&&e(i.refs[0],n)&&!s)return!0;if(i.ref&&e(i.ref,i.name)&&!s)return!0;if(We(d,e))break}else if(j(d)&&We(d,e))break}}};var Hr=(r,e,t)=>{const s=ze(p(r,t));return F(s,"root",e[t]),F(r,t,s),r},$t=r=>r.type==="file",ie=r=>typeof r=="function",tt=r=>{if(!jt)return!1;const e=r?r.ownerDocument:0;return r instanceof(e&&e.defaultView?e.defaultView.HTMLElement:HTMLElement)},Ke=r=>ue(r),Ut=r=>r.type==="radio",rt=r=>r instanceof RegExp;const rr={value:!1,isValid:!1},sr={value:!0,isValid:!0};var wr=r=>{if(Array.isArray(r)){if(r.length>1){const e=r.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:e,isValid:!!e.length}}return r[0].checked&&!r[0].disabled?r[0].attributes&&!Z(r[0].attributes.value)?Z(r[0].value)||r[0].value===""?sr:{value:r[0].value,isValid:!0}:sr:rr}return rr};const nr={isValid:!1,value:null};var Ar=r=>Array.isArray(r)?r.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,nr):nr;function ar(r,e,t="validate"){if(Ke(r)||Array.isArray(r)&&r.every(Ke)||re(r)&&!r)return{type:t,message:Ke(r)?r:"",ref:e}}var Ee=r=>j(r)&&!rt(r)?r:{value:r,message:""},ir=async(r,e,t,s,n,a)=>{const{ref:i,refs:d,required:c,maxLength:h,minLength:y,min:k,max:M,pattern:Y,validate:z,name:q,valueAsNumber:K,mount:ge}=r._f,R=p(t,q);if(!ge||e.has(q))return{};const le=d?d[0]:i,ce=E=>{n&&le.reportValidity&&(le.setCustomValidity(re(E)?"":E||""),le.reportValidity())},L={},Ce=Ut(i),Xe=Ge(i),we=Ce||Xe,Ve=(K||$t(i))&&Z(i.value)&&Z(R)||tt(i)&&i.value===""||R===""||Array.isArray(R)&&!R.length,ee=qr.bind(null,q,s,L),Qe=(E,N,P,W=fe.maxLength,ne=fe.minLength)=>{const te=E?N:P;L[q]={type:E?W:ne,message:te,ref:i,...ee(E?W:ne,te)}};if(a?!Array.isArray(R)||!R.length:c&&(!we&&(Ve||H(R))||re(R)&&!R||Xe&&!wr(d).isValid||Ce&&!Ar(d).isValid)){const{value:E,message:N}=Ke(c)?{value:!!c,message:c}:Ee(c);if(E&&(L[q]={type:fe.required,message:N,ref:le,...ee(fe.required,N)},!s))return ce(N),L}if(!Ve&&(!H(k)||!H(M))){let E,N;const P=Ee(M),W=Ee(k);if(!H(R)&&!isNaN(R)){const ne=i.valueAsNumber||R&&+R;H(P.value)||(E=ne>P.value),H(W.value)||(N=nenew Date(new Date().toDateString()+" "+Me),Ze=i.type=="time",je=i.type=="week";ue(P.value)&&R&&(E=Ze?te(R)>te(P.value):je?R>P.value:ne>new Date(P.value)),ue(W.value)&&R&&(N=Ze?te(R)+E.value,W=!H(N.value)&&R.length<+N.value;if((P||W)&&(Qe(P,E.message,N.message),!s))return ce(L[q].message),L}if(Y&&!Ve&&ue(R)){const{value:E,message:N}=Ee(Y);if(rt(E)&&!R.match(E)&&(L[q]={type:fe.pattern,message:N,ref:i,...ee(fe.pattern,N)},!s))return ce(N),L}if(z){if(ie(z)){const E=await z(R,t),N=ar(E,le);if(N&&(L[q]={...N,...ee(fe.validate,N.message)},!s))return ce(N.message),L}else if(j(z)){let E={};for(const N in z){if(!X(E)&&!s)break;const P=ar(await z[N](R,t),le,N);P&&(E={...P,...ee(N,P.message)},ce(P.message),s&&(L[q]=E))}if(!X(E)&&(L[q]={ref:le,...E},!s))return L}}return ce(!0),L};function Jr(r,e){const t=e.slice(0,-1).length;let s=0;for(;s{let r=[];return{get observers(){return r},next:n=>{for(const a of r)a.next&&a.next(n)},subscribe:n=>(r.push(n),{unsubscribe:()=>{r=r.filter(a=>a!==n)}}),unsubscribe:()=>{r=[]}}},Ct=r=>H(r)||!mr(r);function be(r,e){if(Ct(r)||Ct(e))return r===e;if(Ae(r)&&Ae(e))return r.getTime()===e.getTime();const t=Object.keys(r),s=Object.keys(e);if(t.length!==s.length)return!1;for(const n of t){const a=r[n];if(!s.includes(n))return!1;if(n!=="ref"){const i=e[n];if(Ae(a)&&Ae(i)||j(a)&&j(i)||Array.isArray(a)&&Array.isArray(i)?!be(a,i):a!==i)return!1}}return!0}var Sr=r=>r.type==="select-multiple",Gr=r=>Ut(r)||Ge(r),At=r=>tt(r)&&r.isConnected,Tr=r=>{for(const e in r)if(ie(r[e]))return!0;return!1};function st(r,e={}){const t=Array.isArray(r);if(j(r)||t)for(const s in r)Array.isArray(r[s])||j(r[s])&&!Tr(r[s])?(e[s]=Array.isArray(r[s])?[]:{},st(r[s],e[s])):H(r[s])||(e[s]=!0);return e}function Cr(r,e,t){const s=Array.isArray(r);if(j(r)||s)for(const n in r)Array.isArray(r[n])||j(r[n])&&!Tr(r[n])?Z(e)||Ct(t[n])?t[n]=Array.isArray(r[n])?st(r[n],[]):{...st(r[n])}:Cr(r[n],H(e)?{}:e[n],t[n]):t[n]=!be(r[n],e[n]);return t}var Le=(r,e)=>Cr(r,e,st(e)),Vr=(r,{valueAsNumber:e,valueAsDate:t,setValueAs:s})=>Z(r)?r:e?r===""?NaN:r&&+r:t&&ue(r)?new Date(r):s?s(r):r;function St(r){const e=r.ref;return $t(e)?e.files:Ut(e)?Ar(r.refs).value:Sr(e)?[...e.selectedOptions].map(({value:t})=>t):Ge(e)?wr(r.refs).value:Vr(Z(e.value)?r.ref.value:e.value,r)}var Xr=(r,e,t,s)=>{const n={};for(const a of r){const i=p(e,a);i&&F(n,a,i._f)}return{criteriaMode:t,names:[...r],fields:n,shouldUseNativeValidation:s}},Pe=r=>Z(r)?r:rt(r)?r.source:j(r)?rt(r.value)?r.value.source:r.value:r;const ur="AsyncFunction";var Qr=r=>!!r&&!!r.validate&&!!(ie(r.validate)&&r.validate.constructor.name===ur||j(r.validate)&&Object.values(r.validate).find(e=>e.constructor.name===ur)),Kr=r=>r.mount&&(r.required||r.min||r.max||r.maxLength||r.minLength||r.pattern||r.validate);function dr(r,e,t){const s=p(r,t);if(s||Mt(t))return{error:s,name:t};const n=t.split(".");for(;n.length;){const a=n.join("."),i=p(e,a),d=p(r,a);if(i&&!Array.isArray(i)&&t!==a)return{name:t};if(d&&d.type)return{name:a,error:d};n.pop()}return{name:t}}var es=(r,e,t,s,n)=>n.isOnAll?!1:!t&&n.isOnTouch?!(e||r):(t?s.isOnBlur:n.isOnBlur)?!r:(t?s.isOnChange:n.isOnChange)?r:!0,ts=(r,e)=>!_t(p(r,e)).length&&$(r,e);const rs={mode:ae.onSubmit,reValidateMode:ae.onChange,shouldFocusError:!0};function ss(r={}){let e={...rs,...r},t={submitCount:0,isDirty:!1,isLoading:ie(e.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1},s={},n=j(e.defaultValues)||j(e.values)?G(e.defaultValues||e.values)||{}:{},a=e.shouldUnregister?{}:G(n),i={action:!1,mount:!1,watch:!1},d={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},c,h=0;const y={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},k={values:wt(),array:wt(),state:wt()},M=er(e.mode),Y=er(e.reValidateMode),z=e.criteriaMode===ae.all,q=u=>o=>{clearTimeout(h),h=setTimeout(u,o)},K=async u=>{if(!e.disabled&&(y.isValid||u)){const o=e.resolver?X((await we()).errors):await ee(s,!0);o!==t.isValid&&k.state.next({isValid:o})}},ge=(u,o)=>{!e.disabled&&(y.isValidating||y.validatingFields)&&((u||Array.from(d.mount)).forEach(l=>{l&&(o?F(t.validatingFields,l,o):$(t.validatingFields,l))}),k.state.next({validatingFields:t.validatingFields,isValidating:!X(t.validatingFields)}))},R=(u,o=[],l,v,_=!0,m=!0)=>{if(v&&l&&!e.disabled){if(i.action=!0,m&&Array.isArray(p(s,u))){const w=l(p(s,u),v.argA,v.argB);_&&F(s,u,w)}if(m&&Array.isArray(p(t.errors,u))){const w=l(p(t.errors,u),v.argA,v.argB);_&&F(t.errors,u,w),ts(t.errors,u)}if(y.touchedFields&&m&&Array.isArray(p(t.touchedFields,u))){const w=l(p(t.touchedFields,u),v.argA,v.argB);_&&F(t.touchedFields,u,w)}y.dirtyFields&&(t.dirtyFields=Le(n,a)),k.state.next({name:u,isDirty:E(u,o),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else F(a,u,o)},le=(u,o)=>{F(t.errors,u,o),k.state.next({errors:t.errors})},ce=u=>{t.errors=u,k.state.next({errors:t.errors,isValid:!1})},L=(u,o,l,v)=>{const _=p(s,u);if(_){const m=p(a,u,Z(l)?p(n,u):l);Z(m)||v&&v.defaultChecked||o?F(a,u,o?m:St(_._f)):W(u,m),i.mount&&K()}},Ce=(u,o,l,v,_)=>{let m=!1,w=!1;const C={name:u};if(!e.disabled){const U=!!(p(s,u)&&p(s,u)._f&&p(s,u)._f.disabled);if(!l||v){y.isDirty&&(w=t.isDirty,t.isDirty=C.isDirty=E(),m=w!==C.isDirty);const B=U||be(p(n,u),o);w=!!(!U&&p(t.dirtyFields,u)),B||U?$(t.dirtyFields,u):F(t.dirtyFields,u,!0),C.dirtyFields=t.dirtyFields,m=m||y.dirtyFields&&w!==!B}if(l){const B=p(t.touchedFields,u);B||(F(t.touchedFields,u,l),C.touchedFields=t.touchedFields,m=m||y.touchedFields&&B!==l)}m&&_&&k.state.next(C)}return m?C:{}},Xe=(u,o,l,v)=>{const _=p(t.errors,u),m=y.isValid&&re(o)&&t.isValid!==o;if(e.delayError&&l?(c=q(()=>le(u,l)),c(e.delayError)):(clearTimeout(h),c=null,l?F(t.errors,u,l):$(t.errors,u)),(l?!be(_,l):_)||!X(v)||m){const w={...v,...m&&re(o)?{isValid:o}:{},errors:t.errors,name:u};t={...t,...w},k.state.next(w)}},we=async u=>{ge(u,!0);const o=await e.resolver(a,e.context,Xr(u||d.mount,s,e.criteriaMode,e.shouldUseNativeValidation));return ge(u),o},Ve=async u=>{const{errors:o}=await we(u);if(u)for(const l of u){const v=p(o,l);v?F(t.errors,l,v):$(t.errors,l)}else t.errors=o;return o},ee=async(u,o,l={valid:!0})=>{for(const v in u){const _=u[v];if(_){const{_f:m,...w}=_;if(m){const C=d.array.has(m.name),U=_._f&&Qr(_._f);U&&y.validatingFields&&ge([v],!0);const B=await ir(_,d.disabled,a,z,e.shouldUseNativeValidation&&!o,C);if(U&&y.validatingFields&&ge([v]),B[m.name]&&(l.valid=!1,o))break;!o&&(p(B,m.name)?C?Hr(t.errors,B,m.name):F(t.errors,m.name,B[m.name]):$(t.errors,m.name))}!X(w)&&await ee(w,o,l)}}return l.valid},Qe=()=>{for(const u of d.unMount){const o=p(s,u);o&&(o._f.refs?o._f.refs.every(l=>!At(l)):!At(o._f.ref))&&vt(u)}d.unMount=new Set},E=(u,o)=>!e.disabled&&(u&&o&&F(a,u,o),!be(zt(),n)),N=(u,o,l)=>kr(u,d,{...i.mount?a:Z(o)?n:ue(u)?{[u]:o}:o},l,o),P=u=>_t(p(i.mount?a:n,u,e.shouldUnregister?p(n,u,[]):[])),W=(u,o,l={})=>{const v=p(s,u);let _=o;if(v){const m=v._f;m&&(!m.disabled&&F(a,u,Vr(o,m)),_=tt(m.ref)&&H(o)?"":o,Sr(m.ref)?[...m.ref.options].forEach(w=>w.selected=_.includes(w.value)):m.refs?Ge(m.ref)?m.refs.length>1?m.refs.forEach(w=>(!w.defaultChecked||!w.disabled)&&(w.checked=Array.isArray(_)?!!_.find(C=>C===w.value):_===w.value)):m.refs[0]&&(m.refs[0].checked=!!_):m.refs.forEach(w=>w.checked=w.value===_):$t(m.ref)?m.ref.value="":(m.ref.value=_,m.ref.type||k.values.next({name:u,values:{...a}})))}(l.shouldDirty||l.shouldTouch)&&Ce(u,_,l.shouldTouch,l.shouldDirty,!0),l.shouldValidate&&Me(u)},ne=(u,o,l)=>{for(const v in o){const _=o[v],m=`${u}.${v}`,w=p(s,m);(d.array.has(u)||j(_)||w&&!w._f)&&!Ae(_)?ne(m,_,l):W(m,_,l)}},te=(u,o,l={})=>{const v=p(s,u),_=d.array.has(u),m=G(o);F(a,u,m),_?(k.array.next({name:u,values:{...a}}),(y.isDirty||y.dirtyFields)&&l.shouldDirty&&k.state.next({name:u,dirtyFields:Le(n,a),isDirty:E(u,m)})):v&&!v._f&&!H(m)?ne(u,m,l):W(u,m,l),tr(u,d)&&k.state.next({...t}),k.values.next({name:i.mount?u:void 0,values:{...a}})},Ze=async u=>{i.mount=!0;const o=u.target;let l=o.name,v=!0;const _=p(s,l),m=()=>o.type?St(_._f):pr(u),w=C=>{v=Number.isNaN(C)||Ae(C)&&isNaN(C.getTime())||be(C,p(a,l,C))};if(_){let C,U;const B=m(),ve=u.type===et.BLUR||u.type===et.FOCUS_OUT,Mr=!Kr(_._f)&&!e.resolver&&!p(t.errors,l)&&!_._f.deps||es(ve,p(t.touchedFields,l),t.isSubmitted,Y,M),bt=tr(l,d,ve);F(a,l,B),ve?(_._f.onBlur&&_._f.onBlur(u),c&&c(0)):_._f.onChange&&_._f.onChange(u);const kt=Ce(l,B,ve,!1),Lr=!X(kt)||bt;if(!ve&&k.values.next({name:l,type:u.type,values:{...a}}),Mr)return y.isValid&&(e.mode==="onBlur"&&ve?K():ve||K()),Lr&&k.state.next({name:l,...bt?{}:kt});if(!ve&&bt&&k.state.next({...t}),e.resolver){const{errors:Qt}=await we([l]);if(w(B),v){const Pr=dr(t.errors,s,l),Kt=dr(Qt,s,Pr.name||l);C=Kt.error,l=Kt.name,U=X(Qt)}}else ge([l],!0),C=(await ir(_,d.disabled,a,z,e.shouldUseNativeValidation))[l],ge([l]),w(B),v&&(C?U=!1:y.isValid&&(U=await ee(s,!0)));v&&(_._f.deps&&Me(_._f.deps),Xe(l,U,C,kt))}},je=(u,o)=>{if(p(t.errors,o)&&u.focus)return u.focus(),1},Me=async(u,o={})=>{let l,v;const _=ze(u);if(e.resolver){const m=await Ve(Z(u)?u:_);l=X(m),v=u?!_.some(w=>p(m,w)):l}else u?(v=(await Promise.all(_.map(async m=>{const w=p(s,m);return await ee(w&&w._f?{[m]:w}:w)}))).every(Boolean),!(!v&&!t.isValid)&&K()):v=l=await ee(s);return k.state.next({...!ue(u)||y.isValid&&l!==t.isValid?{}:{name:u},...e.resolver||!u?{isValid:l}:{},errors:t.errors}),o.shouldFocus&&!v&&We(s,je,u?_:d.mount),v},zt=u=>{const o={...i.mount?a:n};return Z(u)?o:ue(u)?p(o,u):u.map(l=>p(o,l))},Wt=(u,o)=>({invalid:!!p((o||t).errors,u),isDirty:!!p((o||t).dirtyFields,u),error:p((o||t).errors,u),isValidating:!!p(t.validatingFields,u),isTouched:!!p((o||t).touchedFields,u)}),Ir=u=>{u&&ze(u).forEach(o=>$(t.errors,o)),k.state.next({errors:u?t.errors:{}})},qt=(u,o,l)=>{const v=(p(s,u,{_f:{}})._f||{}).ref,_=p(t.errors,u)||{},{ref:m,message:w,type:C,...U}=_;F(t.errors,u,{...U,...o,ref:v}),k.state.next({name:u,errors:t.errors,isValid:!1}),l&&l.shouldFocus&&v&&v.focus&&v.focus()},Dr=(u,o)=>ie(u)?k.values.subscribe({next:l=>u(N(void 0,o),l)}):N(u,o,!0),vt=(u,o={})=>{for(const l of u?ze(u):d.mount)d.mount.delete(l),d.array.delete(l),o.keepValue||($(s,l),$(a,l)),!o.keepError&&$(t.errors,l),!o.keepDirty&&$(t.dirtyFields,l),!o.keepTouched&&$(t.touchedFields,l),!o.keepIsValidating&&$(t.validatingFields,l),!e.shouldUnregister&&!o.keepDefaultValue&&$(n,l);k.values.next({values:{...a}}),k.state.next({...t,...o.keepDirty?{isDirty:E()}:{}}),!o.keepIsValid&&K()},Ht=({disabled:u,name:o,field:l,fields:v})=>{(re(u)&&i.mount||u||d.disabled.has(o))&&(u?d.disabled.add(o):d.disabled.delete(o),Ce(o,St(l?l._f:p(v,o)._f),!1,!1,!0))},xt=(u,o={})=>{let l=p(s,u);const v=re(o.disabled)||re(e.disabled);return F(s,u,{...l||{},_f:{...l&&l._f?l._f:{ref:{name:u}},name:u,mount:!0,...o}}),d.mount.add(u),l?Ht({field:l,disabled:re(o.disabled)?o.disabled:e.disabled,name:u}):L(u,!0,o.value),{...v?{disabled:o.disabled||e.disabled}:{},...e.progressive?{required:!!o.required,min:Pe(o.min),max:Pe(o.max),minLength:Pe(o.minLength),maxLength:Pe(o.maxLength),pattern:Pe(o.pattern)}:{},name:u,onChange:Ze,onBlur:Ze,ref:_=>{if(_){xt(u,o),l=p(s,u);const m=Z(_.value)&&_.querySelectorAll&&_.querySelectorAll("input,select,textarea")[0]||_,w=Gr(m),C=l._f.refs||[];if(w?C.find(U=>U===m):m===l._f.ref)return;F(s,u,{_f:{...l._f,...w?{refs:[...C.filter(At),m,...Array.isArray(p(n,u))?[{}]:[]],ref:{type:m.type,name:u}}:{ref:m}}}),L(u,!1,void 0,m)}else l=p(s,u,{}),l._f&&(l._f.mount=!1),(e.shouldUnregister||o.shouldUnregister)&&!(yr(d.array,u)&&i.action)&&d.unMount.add(u)}}},Jt=()=>e.shouldFocusError&&We(s,je,d.mount),Zr=u=>{re(u)&&(k.state.next({disabled:u}),We(s,(o,l)=>{const v=p(s,l);v&&(o.disabled=v._f.disabled||u,Array.isArray(v._f.refs)&&v._f.refs.forEach(_=>{_.disabled=v._f.disabled||u}))},0,!1))},Yt=(u,o)=>async l=>{let v;l&&(l.preventDefault&&l.preventDefault(),l.persist&&l.persist());let _=G(a);if(d.disabled.size)for(const m of d.disabled)F(_,m,void 0);if(k.state.next({isSubmitting:!0}),e.resolver){const{errors:m,values:w}=await we();t.errors=m,_=w}else await ee(s);if($(t.errors,"root"),X(t.errors)){k.state.next({errors:{}});try{await u(_,l)}catch(m){v=m}}else o&&await o({...t.errors},l),Jt(),setTimeout(Jt);if(k.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:X(t.errors)&&!v,submitCount:t.submitCount+1,errors:t.errors}),v)throw v},jr=(u,o={})=>{p(s,u)&&(Z(o.defaultValue)?te(u,G(p(n,u))):(te(u,o.defaultValue),F(n,u,G(o.defaultValue))),o.keepTouched||$(t.touchedFields,u),o.keepDirty||($(t.dirtyFields,u),t.isDirty=o.defaultValue?E(u,G(p(n,u))):E()),o.keepError||($(t.errors,u),y.isValid&&K()),k.state.next({...t}))},Gt=(u,o={})=>{const l=u?G(u):n,v=G(l),_=X(u),m=_?n:v;if(o.keepDefaultValues||(n=l),!o.keepValues){if(o.keepDirtyValues){const w=new Set([...d.mount,...Object.keys(Le(n,a))]);for(const C of Array.from(w))p(t.dirtyFields,C)?F(m,C,p(a,C)):te(C,p(m,C))}else{if(jt&&Z(u))for(const w of d.mount){const C=p(s,w);if(C&&C._f){const U=Array.isArray(C._f.refs)?C._f.refs[0]:C._f.ref;if(tt(U)){const B=U.closest("form");if(B){B.reset();break}}}}s={}}a=e.shouldUnregister?o.keepDefaultValues?G(n):{}:G(m),k.array.next({values:{...m}}),k.values.next({values:{...m}})}d={mount:o.keepDirtyValues?d.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},i.mount=!y.isValid||!!o.keepIsValid||!!o.keepDirtyValues,i.watch=!!e.shouldUnregister,k.state.next({submitCount:o.keepSubmitCount?t.submitCount:0,isDirty:_?!1:o.keepDirty?t.isDirty:!!(o.keepDefaultValues&&!be(u,n)),isSubmitted:o.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:_?{}:o.keepDirtyValues?o.keepDefaultValues&&a?Le(n,a):t.dirtyFields:o.keepDefaultValues&&u?Le(n,u):o.keepDirty?t.dirtyFields:{},touchedFields:o.keepTouched?t.touchedFields:{},errors:o.keepErrors?t.errors:{},isSubmitSuccessful:o.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1})},Xt=(u,o)=>Gt(ie(u)?u(a):u,o);return{control:{register:xt,unregister:vt,getFieldState:Wt,handleSubmit:Yt,setError:qt,_executeSchema:we,_getWatch:N,_getDirty:E,_updateValid:K,_removeUnmounted:Qe,_updateFieldArray:R,_updateDisabledField:Ht,_getFieldArray:P,_reset:Gt,_resetDefaultValues:()=>ie(e.defaultValues)&&e.defaultValues().then(u=>{Xt(u,e.resetOptions),k.state.next({isLoading:!1})}),_updateFormState:u=>{t={...t,...u}},_disableForm:Zr,_subjects:k,_proxyFormState:y,_setErrors:ce,get _fields(){return s},get _formValues(){return a},get _state(){return i},set _state(u){i=u},get _defaultValues(){return n},get _names(){return d},set _names(u){d=u},get _formState(){return t},set _formState(u){t=u},get _options(){return e},set _options(u){e={...e,...u}}},trigger:Me,register:xt,handleSubmit:Yt,watch:Dr,setValue:te,getValues:zt,reset:Xt,resetField:jr,clearErrors:Ir,unregister:vt,setError:qt,setFocus:(u,o={})=>{const l=p(s,u),v=l&&l._f;if(v){const _=v.refs?v.refs[0]:v.ref;_.focus&&(_.focus(),o.shouldSelect&&ie(_.select)&&_.select())}},getFieldState:Wt}}function Ds(r={}){const e=I.useRef(void 0),t=I.useRef(void 0),[s,n]=I.useState({isDirty:!1,isValidating:!1,isLoading:ie(r.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:r.errors||{},disabled:r.disabled||!1,defaultValues:ie(r.defaultValues)?void 0:r.defaultValues});e.current||(e.current={...ss(r),formState:s});const a=e.current.control;return a._options=r,Pt({subject:a._subjects.state,next:i=>{xr(i,a._proxyFormState,a._updateFormState,!0)&&n({...a._formState})}}),I.useEffect(()=>a._disableForm(r.disabled),[a,r.disabled]),I.useEffect(()=>{if(a._proxyFormState.isDirty){const i=a._getDirty();i!==s.isDirty&&a._subjects.state.next({isDirty:i})}},[a,s.isDirty]),I.useEffect(()=>{r.values&&!be(r.values,t.current)?(a._reset(r.values,a._options.resetOptions),t.current=r.values,n(i=>({...i}))):a._resetDefaultValues()},[r.values,a]),I.useEffect(()=>{r.errors&&a._setErrors(r.errors)},[r.errors,a]),I.useEffect(()=>{a._state.mount||(a._updateValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),I.useEffect(()=>{r.shouldUnregister&&a._subjects.values.next({values:a._getWatch()})},[r.shouldUnregister,a]),e.current.formState=vr(s,a),e.current}const or=(r,e,t)=>{if(r&&"reportValidity"in r){const s=p(t,e);r.setCustomValidity(s&&s.message||""),r.reportValidity()}},ns=(r,e)=>{for(const t in e.fields){const s=e.fields[t];s&&s.ref&&"reportValidity"in s.ref?or(s.ref,t,r):s.refs&&s.refs.forEach(n=>or(n,t,r))}},Zs=(r,e)=>{e.shouldUseNativeValidation&&ns(r,e);const t={};for(const s in r){const n=p(e.fields,s),a=Object.assign(r[s]||{},{ref:n&&n.ref});if(as(e.names||Object.keys(r),s)){const i=Object.assign({},p(t,s));F(i,"root",a),F(t,s,i)}else F(t,s,a)}return t},as=(r,e)=>r.some(t=>t.startsWith(e+"."));var O;(function(r){r.assertEqual=n=>n;function e(n){}r.assertIs=e;function t(n){throw new Error}r.assertNever=t,r.arrayToEnum=n=>{const a={};for(const i of n)a[i]=i;return a},r.getValidEnumValues=n=>{const a=r.objectKeys(n).filter(d=>typeof n[n[d]]!="number"),i={};for(const d of a)i[d]=n[d];return r.objectValues(i)},r.objectValues=n=>r.objectKeys(n).map(function(a){return n[a]}),r.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{const a=[];for(const i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.push(i);return a},r.find=(n,a)=>{for(const i of n)if(a(i))return i},r.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&isFinite(n)&&Math.floor(n)===n;function s(n,a=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(a)}r.joinValues=s,r.jsonStringifyReplacer=(n,a)=>typeof a=="bigint"?a.toString():a})(O||(O={}));var lr;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(lr||(lr={}));const x=O.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xe=r=>{switch(typeof r){case"undefined":return x.undefined;case"string":return x.string;case"number":return isNaN(r)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(r)?x.array:r===null?x.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?x.promise:typeof Map<"u"&&r instanceof Map?x.map:typeof Set<"u"&&r instanceof Set?x.set:typeof Date<"u"&&r instanceof Date?x.date:x.object;default:return x.unknown}},f=O.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class se extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(a){return a.message},s={_errors:[]},n=a=>{for(const i of a.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let d=s,c=0;for(;ct.message){const t={},s=[];for(const n of this.issues)n.path.length>0?(t[n.path[0]]=t[n.path[0]]||[],t[n.path[0]].push(e(n))):s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}se.create=r=>new se(r);const He=(r,e)=>{let t;switch(r.code){case f.invalid_type:r.received===x.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case f.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,O.jsonStringifyReplacer)}`;break;case f.unrecognized_keys:t=`Unrecognized key(s) in object: ${O.joinValues(r.keys,", ")}`;break;case f.invalid_union:t="Invalid input";break;case f.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${O.joinValues(r.options)}`;break;case f.invalid_enum_value:t=`Invalid enum value. Expected ${O.joinValues(r.options)}, received '${r.received}'`;break;case f.invalid_arguments:t="Invalid function arguments";break;case f.invalid_return_type:t="Invalid function return type";break;case f.invalid_date:t="Invalid date";break;case f.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:O.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case f.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case f.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case f.custom:t="Invalid input";break;case f.invalid_intersection_types:t="Intersection results could not be merged";break;case f.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case f.not_finite:t="Number must be finite";break;default:t=e.defaultError,O.assertNever(r)}return{message:t}};let is=He;function Vt(){return is}const Et=r=>{const{data:e,path:t,errorMaps:s,issueData:n}=r,a=[...t,...n.path||[]],i={...n,path:a};if(n.message!==void 0)return{...n,path:a,message:n.message};let d="";const c=s.filter(h=>!!h).slice().reverse();for(const h of c)d=h(i,{data:e,defaultError:d}).message;return{...n,path:a,message:d}};function g(r,e){const t=Vt(),s=Et({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===He?void 0:He].filter(n=>!!n)});r.common.issues.push(s)}class J{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const n of t){if(n.status==="aborted")return S;n.status==="dirty"&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const n of t){const a=await n.key,i=await n.value;s.push({key:a,value:i})}return J.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const n of t){const{key:a,value:i}=n;if(a.status==="aborted"||i.status==="aborted")return S;a.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(s[a.value]=i.value)}return{status:e.value,value:s}}}const S=Object.freeze({status:"aborted"}),$e=r=>({status:"dirty",value:r}),Q=r=>({status:"valid",value:r}),cr=r=>r.status==="aborted",fr=r=>r.status==="dirty",Ne=r=>r.status==="valid",nt=r=>typeof Promise<"u"&&r instanceof Promise;function at(r,e,t,s){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function Er(r,e,t,s,n){if(typeof e=="function"?r!==e||!0:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}var b;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(b||(b={}));var Ue,Be;class oe{constructor(e,t,s,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=n}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const hr=(r,e)=>{if(Ne(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new se(r.common.issues);return this._error=t,this._error}}};function T(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:n}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,d)=>{var c,h;const{message:y}=r;return i.code==="invalid_enum_value"?{message:y??d.defaultError}:typeof d.data>"u"?{message:(c=y??s)!==null&&c!==void 0?c:d.defaultError}:i.code!=="invalid_type"?{message:d.defaultError}:{message:(h=y??t)!==null&&h!==void 0?h:d.defaultError}},description:n}}class V{get description(){return this._def.description}_getType(e){return xe(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:xe(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new J,ctx:{common:e.parent.common,data:e.data,parsedType:xe(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(nt(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){var s;const n={common:{issues:[],async:(s=t==null?void 0:t.async)!==null&&s!==void 0?s:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xe(e)},a=this._parseSync({data:e,path:n.path,parent:n});return hr(n,a)}"~validate"(e){var t,s;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xe(e)};if(!this["~standard"].async)try{const a=this._parseSync({data:e,path:[],parent:n});return Ne(a)?{value:a.value}:{issues:n.common.issues}}catch(a){!((s=(t=a==null?void 0:a.message)===null||t===void 0?void 0:t.toLowerCase())===null||s===void 0)&&s.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(a=>Ne(a)?{value:a.value}:{issues:n.common.issues})}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xe(e)},n=this._parse({data:e,path:s.path,parent:s}),a=await(nt(n)?n:Promise.resolve(n));return hr(s,a)}refine(e,t){const s=n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t;return this._refinement((n,a)=>{const i=e(n),d=()=>a.addIssue({code:f.custom,...s(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(d(),!1)):i?!0:(d(),!1)})}refinement(e,t){return this._refinement((s,n)=>e(s)?!0:(n.addIssue(typeof t=="function"?t(s,n):t),!1))}_refinement(e){return new _e({schema:this,typeName:A.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return pe.create(this,this._def)}nullable(){return Te.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return de.create(this)}promise(){return Ye.create(this,this._def)}or(e){return dt.create([this,e],this._def)}and(e){return ot.create(this,e,this._def)}transform(e){return new _e({...T(this._def),schema:this,typeName:A.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new mt({...T(this._def),innerType:this,defaultValue:t,typeName:A.ZodDefault})}brand(){return new Fr({typeName:A.ZodBranded,type:this,...T(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new pt({...T(this._def),innerType:this,catchValue:t,typeName:A.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return gt.create(this,e)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const us=/^c[^\s-]{8,}$/i,ds=/^[0-9a-z]+$/,os=/^[0-9A-HJKMNP-TV-Z]{26}$/i,ls=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,cs=/^[a-z0-9_-]{21}$/i,fs=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,hs=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,ms=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ps="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Tt;const ys=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_s=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,gs=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,vs=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,xs=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bs=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Or="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ks=new RegExp(`^${Or}$`);function Rr(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function ws(r){return new RegExp(`^${Rr(r)}$`)}function As(r){let e=`${Or}T${Rr(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function Ss(r,e){return!!((e==="v4"||!e)&&ys.test(r)||(e==="v6"||!e)&&gs.test(r))}function Ts(r,e){if(!fs.test(r))return!1;try{const[t]=r.split("."),s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return!(typeof n!="object"||n===null||!n.typ||!n.alg||e&&n.alg!==e)}catch{return!1}}function Cs(r,e){return!!((e==="v4"||!e)&&_s.test(r)||(e==="v6"||!e)&&vs.test(r))}class me extends V{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==x.string){const a=this._getOrReturnCtx(e);return g(a,{code:f.invalid_type,expected:x.string,received:a.parsedType}),S}const s=new J;let n;for(const a of this._def.checks)if(a.kind==="min")e.data.lengtha.value&&(n=this._getOrReturnCtx(e,n),g(n,{code:f.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),s.dirty());else if(a.kind==="length"){const i=e.data.length>a.value,d=e.data.lengthe.test(n),{validation:t,code:f.invalid_string,...b.errToObj(s)})}_addCheck(e){return new me({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...b.errToObj(e)})}url(e){return this._addCheck({kind:"url",...b.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...b.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...b.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...b.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...b.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...b.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...b.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...b.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...b.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...b.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...b.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...b.errToObj(e)})}datetime(e){var t,s;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(s=e==null?void 0:e.local)!==null&&s!==void 0?s:!1,...b.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...b.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...b.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...b.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...b.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...b.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...b.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...b.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...b.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...b.errToObj(t)})}nonempty(e){return this.min(1,b.errToObj(e))}trim(){return new me({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new me({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new me({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new me({checks:[],typeName:A.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...T(r)})};function Vs(r,e){const t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,a=parseInt(r.toFixed(n).replace(".","")),i=parseInt(e.toFixed(n).replace(".",""));return a%i/Math.pow(10,n)}class Fe extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==x.number){const a=this._getOrReturnCtx(e);return g(a,{code:f.invalid_type,expected:x.number,received:a.parsedType}),S}let s;const n=new J;for(const a of this._def.checks)a.kind==="int"?O.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),g(s,{code:f.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty()):a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),g(s,{code:f.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty()):a.kind==="multipleOf"?Vs(e.data,a.value)!==0&&(s=this._getOrReturnCtx(e,s),g(s,{code:f.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),g(s,{code:f.not_finite,message:a.message}),n.dirty()):O.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,b.toString(t))}gt(e,t){return this.setLimit("min",e,!1,b.toString(t))}lte(e,t){return this.setLimit("max",e,!0,b.toString(t))}lt(e,t){return this.setLimit("max",e,!1,b.toString(t))}setLimit(e,t,s,n){return new Fe({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:b.toString(n)}]})}_addCheck(e){return new Fe({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:b.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:b.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:b.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:b.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:b.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:b.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:b.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:b.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:b.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&O.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.valuenew Fe({checks:[],typeName:A.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...T(r)});class Ie extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==x.bigint)return this._getInvalidInput(e);let s;const n=new J;for(const a of this._def.checks)a.kind==="min"?(a.inclusive?e.dataa.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),g(s,{code:f.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),g(s,{code:f.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):O.assertNever(a);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return g(t,{code:f.invalid_type,expected:x.bigint,received:t.parsedType}),S}gte(e,t){return this.setLimit("min",e,!0,b.toString(t))}gt(e,t){return this.setLimit("min",e,!1,b.toString(t))}lte(e,t){return this.setLimit("max",e,!0,b.toString(t))}lt(e,t){return this.setLimit("max",e,!1,b.toString(t))}setLimit(e,t,s,n){return new Ie({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:b.toString(n)}]})}_addCheck(e){return new Ie({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:b.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:b.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:b.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:b.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:b.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value{var e;return new Ie({checks:[],typeName:A.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...T(r)})};class Ot extends V{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==x.boolean){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.boolean,received:s.parsedType}),S}return Q(e.data)}}Ot.create=r=>new Ot({typeName:A.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...T(r)});class Je extends V{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==x.date){const a=this._getOrReturnCtx(e);return g(a,{code:f.invalid_type,expected:x.date,received:a.parsedType}),S}if(isNaN(e.data.getTime())){const a=this._getOrReturnCtx(e);return g(a,{code:f.invalid_date}),S}const s=new J;let n;for(const a of this._def.checks)a.kind==="min"?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),g(n,{code:f.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),s.dirty()):O.assertNever(a);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Je({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:b.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:b.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Je({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:A.ZodDate,...T(r)});class Rt extends V{_parse(e){if(this._getType(e)!==x.symbol){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.symbol,received:s.parsedType}),S}return Q(e.data)}}Rt.create=r=>new Rt({typeName:A.ZodSymbol,...T(r)});class it extends V{_parse(e){if(this._getType(e)!==x.undefined){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.undefined,received:s.parsedType}),S}return Q(e.data)}}it.create=r=>new it({typeName:A.ZodUndefined,...T(r)});class ut extends V{_parse(e){if(this._getType(e)!==x.null){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.null,received:s.parsedType}),S}return Q(e.data)}}ut.create=r=>new ut({typeName:A.ZodNull,...T(r)});class Nt extends V{constructor(){super(...arguments),this._any=!0}_parse(e){return Q(e.data)}}Nt.create=r=>new Nt({typeName:A.ZodAny,...T(r)});class Re extends V{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Q(e.data)}}Re.create=r=>new Re({typeName:A.ZodUnknown,...T(r)});class ke extends V{_parse(e){const t=this._getOrReturnCtx(e);return g(t,{code:f.invalid_type,expected:x.never,received:t.parsedType}),S}}ke.create=r=>new ke({typeName:A.ZodNever,...T(r)});class Ft extends V{_parse(e){if(this._getType(e)!==x.undefined){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.void,received:s.parsedType}),S}return Q(e.data)}}Ft.create=r=>new Ft({typeName:A.ZodVoid,...T(r)});class de extends V{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==x.array)return g(t,{code:f.invalid_type,expected:x.array,received:t.parsedType}),S;if(n.exactLength!==null){const i=t.data.length>n.exactLength.value,d=t.data.lengthn.maxLength.value&&(g(t,{code:f.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((i,d)=>n.type._parseAsync(new oe(t,i,t.path,d)))).then(i=>J.mergeArray(s,i));const a=[...t.data].map((i,d)=>n.type._parseSync(new oe(t,i,t.path,d)));return J.mergeArray(s,a)}get element(){return this._def.type}min(e,t){return new de({...this._def,minLength:{value:e,message:b.toString(t)}})}max(e,t){return new de({...this._def,maxLength:{value:e,message:b.toString(t)}})}length(e,t){return new de({...this._def,exactLength:{value:e,message:b.toString(t)}})}nonempty(e){return this.min(1,e)}}de.create=(r,e)=>new de({type:r,minLength:null,maxLength:null,exactLength:null,typeName:A.ZodArray,...T(e)});function Oe(r){if(r instanceof D){const e={};for(const t in r.shape){const s=r.shape[t];e[t]=pe.create(Oe(s))}return new D({...r._def,shape:()=>e})}else return r instanceof de?new de({...r._def,type:Oe(r.element)}):r instanceof pe?pe.create(Oe(r.unwrap())):r instanceof Te?Te.create(Oe(r.unwrap())):r instanceof ye?ye.create(r.items.map(e=>Oe(e))):r}class D extends V{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=O.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==x.object){const h=this._getOrReturnCtx(e);return g(h,{code:f.invalid_type,expected:x.object,received:h.parsedType}),S}const{status:s,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),d=[];if(!(this._def.catchall instanceof ke&&this._def.unknownKeys==="strip"))for(const h in n.data)i.includes(h)||d.push(h);const c=[];for(const h of i){const y=a[h],k=n.data[h];c.push({key:{status:"valid",value:h},value:y._parse(new oe(n,k,n.path,h)),alwaysSet:h in n.data})}if(this._def.catchall instanceof ke){const h=this._def.unknownKeys;if(h==="passthrough")for(const y of d)c.push({key:{status:"valid",value:y},value:{status:"valid",value:n.data[y]}});else if(h==="strict")d.length>0&&(g(n,{code:f.unrecognized_keys,keys:d}),s.dirty());else if(h!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const h=this._def.catchall;for(const y of d){const k=n.data[y];c.push({key:{status:"valid",value:y},value:h._parse(new oe(n,k,n.path,y)),alwaysSet:y in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const h=[];for(const y of c){const k=await y.key,M=await y.value;h.push({key:k,value:M,alwaysSet:y.alwaysSet})}return h}).then(h=>J.mergeObjectSync(s,h)):J.mergeObjectSync(s,c)}get shape(){return this._def.shape()}strict(e){return b.errToObj,new D({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{var n,a,i,d;const c=(i=(a=(n=this._def).errorMap)===null||a===void 0?void 0:a.call(n,t,s).message)!==null&&i!==void 0?i:s.defaultError;return t.code==="unrecognized_keys"?{message:(d=b.errToObj(e).message)!==null&&d!==void 0?d:c}:{message:c}}}:{}})}strip(){return new D({...this._def,unknownKeys:"strip"})}passthrough(){return new D({...this._def,unknownKeys:"passthrough"})}extend(e){return new D({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new D({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:A.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new D({...this._def,catchall:e})}pick(e){const t={};return O.objectKeys(e).forEach(s=>{e[s]&&this.shape[s]&&(t[s]=this.shape[s])}),new D({...this._def,shape:()=>t})}omit(e){const t={};return O.objectKeys(this.shape).forEach(s=>{e[s]||(t[s]=this.shape[s])}),new D({...this._def,shape:()=>t})}deepPartial(){return Oe(this)}partial(e){const t={};return O.objectKeys(this.shape).forEach(s=>{const n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}),new D({...this._def,shape:()=>t})}required(e){const t={};return O.objectKeys(this.shape).forEach(s=>{if(e&&!e[s])t[s]=this.shape[s];else{let a=this.shape[s];for(;a instanceof pe;)a=a._def.innerType;t[s]=a}}),new D({...this._def,shape:()=>t})}keyof(){return Nr(O.objectKeys(this.shape))}}D.create=(r,e)=>new D({shape:()=>r,unknownKeys:"strip",catchall:ke.create(),typeName:A.ZodObject,...T(e)});D.strictCreate=(r,e)=>new D({shape:()=>r,unknownKeys:"strict",catchall:ke.create(),typeName:A.ZodObject,...T(e)});D.lazycreate=(r,e)=>new D({shape:r,unknownKeys:"strip",catchall:ke.create(),typeName:A.ZodObject,...T(e)});class dt extends V{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function n(a){for(const d of a)if(d.result.status==="valid")return d.result;for(const d of a)if(d.result.status==="dirty")return t.common.issues.push(...d.ctx.common.issues),d.result;const i=a.map(d=>new se(d.ctx.common.issues));return g(t,{code:f.invalid_union,unionErrors:i}),S}if(t.common.async)return Promise.all(s.map(async a=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await a._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(n);{let a;const i=[];for(const c of s){const h={...t,common:{...t.common,issues:[]},parent:null},y=c._parseSync({data:t.data,path:t.path,parent:h});if(y.status==="valid")return y;y.status==="dirty"&&!a&&(a={result:y,ctx:h}),h.common.issues.length&&i.push(h.common.issues)}if(a)return t.common.issues.push(...a.ctx.common.issues),a.result;const d=i.map(c=>new se(c));return g(t,{code:f.invalid_union,unionErrors:d}),S}}get options(){return this._def.options}}dt.create=(r,e)=>new dt({options:r,typeName:A.ZodUnion,...T(e)});const he=r=>r instanceof ct?he(r.schema):r instanceof _e?he(r.innerType()):r instanceof ft?[r.value]:r instanceof Se?r.options:r instanceof ht?O.objectValues(r.enum):r instanceof mt?he(r._def.innerType):r instanceof it?[void 0]:r instanceof ut?[null]:r instanceof pe?[void 0,...he(r.unwrap())]:r instanceof Te?[null,...he(r.unwrap())]:r instanceof Fr||r instanceof yt?he(r.unwrap()):r instanceof pt?he(r._def.innerType):[];class Bt extends V{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==x.object)return g(t,{code:f.invalid_type,expected:x.object,received:t.parsedType}),S;const s=this.discriminator,n=t.data[s],a=this.optionsMap.get(n);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):(g(t,{code:f.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),S)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){const n=new Map;for(const a of t){const i=he(a.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const d of i){if(n.has(d))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(d)}`);n.set(d,a)}}return new Bt({typeName:A.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...T(s)})}}function It(r,e){const t=xe(r),s=xe(e);if(r===e)return{valid:!0,data:r};if(t===x.object&&s===x.object){const n=O.objectKeys(e),a=O.objectKeys(r).filter(d=>n.indexOf(d)!==-1),i={...r,...e};for(const d of a){const c=It(r[d],e[d]);if(!c.valid)return{valid:!1};i[d]=c.data}return{valid:!0,data:i}}else if(t===x.array&&s===x.array){if(r.length!==e.length)return{valid:!1};const n=[];for(let a=0;a{if(cr(a)||cr(i))return S;const d=It(a.value,i.value);return d.valid?((fr(a)||fr(i))&&t.dirty(),{status:t.value,value:d.data}):(g(s,{code:f.invalid_intersection_types}),S)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([a,i])=>n(a,i)):n(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}ot.create=(r,e,t)=>new ot({left:r,right:e,typeName:A.ZodIntersection,...T(t)});class ye extends V{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==x.array)return g(s,{code:f.invalid_type,expected:x.array,received:s.parsedType}),S;if(s.data.lengththis._def.items.length&&(g(s,{code:f.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const a=[...s.data].map((i,d)=>{const c=this._def.items[d]||this._def.rest;return c?c._parse(new oe(s,i,s.path,d)):null}).filter(i=>!!i);return s.common.async?Promise.all(a).then(i=>J.mergeArray(t,i)):J.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new ye({...this._def,rest:e})}}ye.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ye({items:r,typeName:A.ZodTuple,rest:null,...T(e)})};class lt extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==x.object)return g(s,{code:f.invalid_type,expected:x.object,received:s.parsedType}),S;const n=[],a=this._def.keyType,i=this._def.valueType;for(const d in s.data)n.push({key:a._parse(new oe(s,d,s.path,d)),value:i._parse(new oe(s,s.data[d],s.path,d)),alwaysSet:d in s.data});return s.common.async?J.mergeObjectAsync(t,n):J.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof V?new lt({keyType:e,valueType:t,typeName:A.ZodRecord,...T(s)}):new lt({keyType:me.create(),valueType:e,typeName:A.ZodRecord,...T(t)})}}class Dt extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==x.map)return g(s,{code:f.invalid_type,expected:x.map,received:s.parsedType}),S;const n=this._def.keyType,a=this._def.valueType,i=[...s.data.entries()].map(([d,c],h)=>({key:n._parse(new oe(s,d,s.path,[h,"key"])),value:a._parse(new oe(s,c,s.path,[h,"value"]))}));if(s.common.async){const d=new Map;return Promise.resolve().then(async()=>{for(const c of i){const h=await c.key,y=await c.value;if(h.status==="aborted"||y.status==="aborted")return S;(h.status==="dirty"||y.status==="dirty")&&t.dirty(),d.set(h.value,y.value)}return{status:t.value,value:d}})}else{const d=new Map;for(const c of i){const h=c.key,y=c.value;if(h.status==="aborted"||y.status==="aborted")return S;(h.status==="dirty"||y.status==="dirty")&&t.dirty(),d.set(h.value,y.value)}return{status:t.value,value:d}}}}Dt.create=(r,e,t)=>new Dt({valueType:e,keyType:r,typeName:A.ZodMap,...T(t)});class De extends V{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==x.set)return g(s,{code:f.invalid_type,expected:x.set,received:s.parsedType}),S;const n=this._def;n.minSize!==null&&s.data.sizen.maxSize.value&&(g(s,{code:f.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());const a=this._def.valueType;function i(c){const h=new Set;for(const y of c){if(y.status==="aborted")return S;y.status==="dirty"&&t.dirty(),h.add(y.value)}return{status:t.value,value:h}}const d=[...s.data.values()].map((c,h)=>a._parse(new oe(s,c,s.path,h)));return s.common.async?Promise.all(d).then(c=>i(c)):i(d)}min(e,t){return new De({...this._def,minSize:{value:e,message:b.toString(t)}})}max(e,t){return new De({...this._def,maxSize:{value:e,message:b.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}De.create=(r,e)=>new De({valueType:r,minSize:null,maxSize:null,typeName:A.ZodSet,...T(e)});class qe extends V{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==x.function)return g(t,{code:f.invalid_type,expected:x.function,received:t.parsedType}),S;function s(d,c){return Et({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Vt(),He].filter(h=>!!h),issueData:{code:f.invalid_arguments,argumentsError:c}})}function n(d,c){return Et({data:d,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Vt(),He].filter(h=>!!h),issueData:{code:f.invalid_return_type,returnTypeError:c}})}const a={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ye){const d=this;return Q(async function(...c){const h=new se([]),y=await d._def.args.parseAsync(c,a).catch(Y=>{throw h.addIssue(s(c,Y)),h}),k=await Reflect.apply(i,this,y);return await d._def.returns._def.type.parseAsync(k,a).catch(Y=>{throw h.addIssue(n(k,Y)),h})})}else{const d=this;return Q(function(...c){const h=d._def.args.safeParse(c,a);if(!h.success)throw new se([s(c,h.error)]);const y=Reflect.apply(i,this,h.data),k=d._def.returns.safeParse(y,a);if(!k.success)throw new se([n(y,k.error)]);return k.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new qe({...this._def,args:ye.create(e).rest(Re.create())})}returns(e){return new qe({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new qe({args:e||ye.create([]).rest(Re.create()),returns:t||Re.create(),typeName:A.ZodFunction,...T(s)})}}class ct extends V{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}ct.create=(r,e)=>new ct({getter:r,typeName:A.ZodLazy,...T(e)});class ft extends V{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return g(t,{received:t.data,code:f.invalid_literal,expected:this._def.value}),S}return{status:"valid",value:e.data}}get value(){return this._def.value}}ft.create=(r,e)=>new ft({value:r,typeName:A.ZodLiteral,...T(e)});function Nr(r,e){return new Se({values:r,typeName:A.ZodEnum,...T(e)})}class Se extends V{constructor(){super(...arguments),Ue.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return g(t,{expected:O.joinValues(s),received:t.parsedType,code:f.invalid_type}),S}if(at(this,Ue)||Er(this,Ue,new Set(this._def.values)),!at(this,Ue).has(e.data)){const t=this._getOrReturnCtx(e),s=this._def.values;return g(t,{received:t.data,code:f.invalid_enum_value,options:s}),S}return Q(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Se.create(e,{...this._def,...t})}exclude(e,t=this._def){return Se.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}}Ue=new WeakMap;Se.create=Nr;class ht extends V{constructor(){super(...arguments),Be.set(this,void 0)}_parse(e){const t=O.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==x.string&&s.parsedType!==x.number){const n=O.objectValues(t);return g(s,{expected:O.joinValues(n),received:s.parsedType,code:f.invalid_type}),S}if(at(this,Be)||Er(this,Be,new Set(O.getValidEnumValues(this._def.values))),!at(this,Be).has(e.data)){const n=O.objectValues(t);return g(s,{received:s.data,code:f.invalid_enum_value,options:n}),S}return Q(e.data)}get enum(){return this._def.values}}Be=new WeakMap;ht.create=(r,e)=>new ht({values:r,typeName:A.ZodNativeEnum,...T(e)});class Ye extends V{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==x.promise&&t.common.async===!1)return g(t,{code:f.invalid_type,expected:x.promise,received:t.parsedType}),S;const s=t.parsedType===x.promise?t.data:Promise.resolve(t.data);return Q(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Ye.create=(r,e)=>new Ye({type:r,typeName:A.ZodPromise,...T(e)});class _e extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===A.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,a={addIssue:i=>{g(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(a.addIssue=a.addIssue.bind(a),n.type==="preprocess"){const i=n.transform(s.data,a);if(s.common.async)return Promise.resolve(i).then(async d=>{if(t.value==="aborted")return S;const c=await this._def.schema._parseAsync({data:d,path:s.path,parent:s});return c.status==="aborted"?S:c.status==="dirty"||t.value==="dirty"?$e(c.value):c});{if(t.value==="aborted")return S;const d=this._def.schema._parseSync({data:i,path:s.path,parent:s});return d.status==="aborted"?S:d.status==="dirty"||t.value==="dirty"?$e(d.value):d}}if(n.type==="refinement"){const i=d=>{const c=n.refinement(d,a);if(s.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return d};if(s.common.async===!1){const d=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return d.status==="aborted"?S:(d.status==="dirty"&&t.dirty(),i(d.value),{status:t.value,value:d.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(d=>d.status==="aborted"?S:(d.status==="dirty"&&t.dirty(),i(d.value).then(()=>({status:t.value,value:d.value}))))}if(n.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Ne(i))return i;const d=n.transform(i.value,a);if(d instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:d}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>Ne(i)?Promise.resolve(n.transform(i.value,a)).then(d=>({status:t.value,value:d})):i);O.assertNever(n)}}_e.create=(r,e,t)=>new _e({schema:r,typeName:A.ZodEffects,effect:e,...T(t)});_e.createWithPreprocess=(r,e,t)=>new _e({schema:e,effect:{type:"preprocess",transform:r},typeName:A.ZodEffects,...T(t)});class pe extends V{_parse(e){return this._getType(e)===x.undefined?Q(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}pe.create=(r,e)=>new pe({innerType:r,typeName:A.ZodOptional,...T(e)});class Te extends V{_parse(e){return this._getType(e)===x.null?Q(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Te.create=(r,e)=>new Te({innerType:r,typeName:A.ZodNullable,...T(e)});class mt extends V{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===x.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}mt.create=(r,e)=>new mt({innerType:r,typeName:A.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});class pt extends V{_parse(e){const{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return nt(n)?n.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new se(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new se(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}pt.create=(r,e)=>new pt({innerType:r,typeName:A.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});class Zt extends V{_parse(e){if(this._getType(e)!==x.nan){const s=this._getOrReturnCtx(e);return g(s,{code:f.invalid_type,expected:x.nan,received:s.parsedType}),S}return{status:"valid",value:e.data}}}Zt.create=r=>new Zt({typeName:A.ZodNaN,...T(r)});class Fr extends V{_parse(e){const{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}class gt extends V{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const a=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?S:a.status==="dirty"?(t.dirty(),$e(a.value)):this._def.out._parseAsync({data:a.value,path:s.path,parent:s})})();{const n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?S:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new gt({in:e,out:t,typeName:A.ZodPipeline})}}class yt extends V{_parse(e){const t=this._def.innerType._parse(e),s=n=>(Ne(n)&&(n.value=Object.freeze(n.value)),n);return nt(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}}yt.create=(r,e)=>new yt({innerType:r,typeName:A.ZodReadonly,...T(e)});D.lazycreate;var A;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(A||(A={}));const js=me.create;Fe.create;Zt.create;Ie.create;Ot.create;const Ms=Je.create;Rt.create;it.create;ut.create;Nt.create;Re.create;ke.create;Ft.create;de.create;const Ls=D.create;D.strictCreate;dt.create;Bt.create;ot.create;ye.create;lt.create;Dt.create;De.create;qe.create;ct.create;ft.create;Se.create;ht.create;Ye.create;_e.create;pe.create;Te.create;_e.createWithPreprocess;gt.create;export{Is as C,Fs as F,qr as a,Ls as b,Ds as c,Ms as d,ns as o,Zs as r,js as s,Lt as u}; diff --git a/pkg/ui/frontend/dist/assets/index-DqJzRHuy.js b/pkg/ui/frontend/dist/assets/index-DqJzRHuy.js new file mode 100644 index 0000000000..0d9ab4e529 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/index-DqJzRHuy.js @@ -0,0 +1,63 @@ +import{j as e,S as Se,c as hr,P as re,e as Me,B as uo,E as xr,G as po,T as mo,H as go,I as br,J as fo,K as ho,L as xo,M as yr,u as vr,N as bo,V as jr,a as yo,g as vo,b as jt,d as pe,O as jo,n as wo,p as No,m as ko}from"./radix-core-ByqQ8fsu.js";import{c as wr,r as i,b as Be}from"./react-core-D_V7s-9r.js";import{u as It,a as at,L as ce,b as Nr,c as So,d as Eo,R as Co,e as To,f as Ro,g as Ao}from"./react-router-Bj-soKrx.js";import{t as _o,c as ys,a as Ee}from"./ui-utils-BNSC_Jv-.js";import{S as Io,M as Fo,C as kr,R as Lo,H as Po,a as qe,b as Do,A as Ws,c as ls,d as Sr,e as Ft,X as vs,f as Er,P as Oo,L as he,g as nt,h as Cr,i as $o,j as Mo,k as ot,l as Tr,F as Bo,m as zo,D as Rr,n as Ar,o as Vo,G as js,p as Uo,q as qo,r as Go,s as Ho,t as Ko,U as Wo,u as Zo,B as Yo}from"./ui-icons-CFVjIJRk.js";import{f as Xo,a as Qo,b as _r,c as wt,p as cs,i as Ze,d as Jo,e as Zs,g as ei,h as ti,D as Ys}from"./date-utils-B6syNIuD.js";import{R as Ir,I as si,T as Fr,a as ri,S as Lr,b as Pr,P as ai,C as Dr,V as ni,L as Or,c as $r,d as oi,e as ii,f as Mr,g as li,h as ci,i as Br,j as di,k as zr,l as Vr,m as Ur}from"./radix-inputs-D4_OLmm6.js";import{S as qr,d as Gr,P as ui,C as Hr,e as Kr,f as Wr,g as Zr,h as Yr,L as Xr,i as Qr,j as pi,T as mi,k as Jr,V as gi,l as fi,m as ea,n as hi,o as ta,p as sa,q as ra,r as xi,c as bi}from"./radix-navigation-DYoR-lWZ.js";import{R as ws,P as Ns,O as it,C as lt,a as aa,T as Lt,D as Pt,b as na,c as yi,d as vi,e as ji,f as wi,g as Ni,h as oa}from"./radix-layout-BqTpm3s4.js";import{R as ct,P as Dt,a as Ot,C as $t,T as dt,d as ki,B as Si,b as Ei,Y as Ci,X as Ti,c as Ri}from"./data-viz-BuFFX-vG.js";import{u as Mt,a as Ai,Q as _i,b as Ii}from"./query-management-DbWM5GrR.js";import{z as Fi}from"./theme-utils-CNom64Sw.js";import{u as Li,F as Pi,C as Di,o as Oi,r as $i,a as Mi,b as ia,s as Ye,d as Xs,c as la}from"./form-libs-B6JBoFJD.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const o of n)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function r(n){const o={};return n.integrity&&(o.integrity=n.integrity),n.referrerPolicy&&(o.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?o.credentials="include":n.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(n){if(n.ep)return;n.ep=!0;const o=r(n);fetch(n.href,o)}})();var ca,Qs=wr;ca=Qs.createRoot,Qs.hydrateRoot;function v(...t){return _o(ys(t))}function me(t){if(t===0)return"0 B";const s=1024,r=["B","KB","MB","GB","TB","PB"],a=Math.floor(Math.log(t)/Math.log(s));return`${parseFloat((t/Math.pow(s,a)).toFixed(2))} ${r[a]}`}function Oe(t,s){return t?Object.keys(t).find(r=>da(t[r],s)):null}function da(t,s){var r;return((r=t.services)==null?void 0:r.some(a=>a.service===s))??!1}const Bi=Ee("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),q=i.forwardRef(({className:t,variant:s,size:r,asChild:a=!1,...n},o)=>{const l=a?Se:"button";return e.jsx(l,{className:v(Bi({variant:s,size:r,className:t})),ref:o,...n})});q.displayName="Button";function zi(){return e.jsx(q,{variant:"ghost",size:"icon",className:"bg-muted hover:bg-muted-hover rounded-lg",asChild:!0,children:e.jsxs("a",{href:"https://github.com/grafana/loki",target:"_blank",rel:"noopener noreferrer",children:[e.jsx("svg",{viewBox:"0 0 438.549 438.549",className:"h-[1.2rem] w-[1.2rem]",children:e.jsx("path",{fill:"currentColor",d:"M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"})}),e.jsx("span",{className:"sr-only",children:"View on GitHub"})]})})}const Vi={theme:"light",setTheme:()=>null},ua=i.createContext(Vi);function Ui(){const t=i.useContext(ua);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t}function qi({children:t,defaultTheme:s="light",storageKey:r="loki-ui-theme",...a}){const[n,o]=i.useState(()=>{try{const c=localStorage.getItem(r);return c==="dark"||c==="light"?c:s}catch{return s}}),l=c=>{try{localStorage.setItem(r,c),o(c)}catch(d){console.error("Failed to save theme:",d)}};return i.useEffect(()=>{const c=window.document.documentElement;c.classList.remove("light","dark"),c.classList.add(n)},[n]),e.jsx(ua.Provider,{value:{theme:n,setTheme:l},...a,children:t})}function Gi(){const{theme:t,setTheme:s}=Ui(),r=()=>{s(t==="light"?"dark":"light")};return e.jsxs(q,{variant:"ghost",size:"icon",className:"bg-muted hover:bg-muted-hover rounded-lg",onClick:r,children:[t==="light"?e.jsx(Io,{className:"h-[1.2rem] w-[1.2rem]"}):e.jsx(Fo,{className:"h-[1.2rem] w-[1.2rem]"}),e.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}function Hi(){return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(zi,{}),e.jsx(Gi,{})]})}const ks=i.forwardRef(({...t},s)=>e.jsx("nav",{ref:s,"aria-label":"breadcrumb",...t}));ks.displayName="Breadcrumb";const Ss=i.forwardRef(({className:t,...s},r)=>e.jsx("ol",{ref:r,className:v("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",t),...s}));Ss.displayName="BreadcrumbList";const Nt=i.forwardRef(({className:t,...s},r)=>e.jsx("li",{ref:r,className:v("inline-flex items-center gap-1.5",t),...s}));Nt.displayName="BreadcrumbItem";const kt=i.forwardRef(({asChild:t,className:s,...r},a)=>{const n=t?Se:"a";return e.jsx(n,{ref:a,className:v("transition-colors hover:text-foreground",s),...r})});kt.displayName="BreadcrumbLink";const pa=i.forwardRef(({className:t,...s},r)=>e.jsx("span",{ref:r,role:"link","aria-disabled":"true","aria-current":"page",className:v("font-normal text-foreground",t),...s}));pa.displayName="BreadcrumbPage";const St=({children:t,className:s,...r})=>e.jsx("li",{role:"presentation","aria-hidden":"true",className:v("[&>svg]:w-3.5 [&>svg]:h-3.5",s),...r,children:t??e.jsx(kr,{})});St.displayName="BreadcrumbSeparator";const Ki=({match:t})=>{const s=t.params.nodeName;return e.jsx("span",{children:s})},Wi=({match:t})=>{const s=t.params.ringName;return e.jsx("span",{children:s})},ee=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("rounded-xl border bg-card text-card-foreground shadow",t),...s}));ee.displayName="Card";const se=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("flex flex-col space-y-1.5 p-6",t),...s}));se.displayName="CardHeader";const ae=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("font-semibold leading-none tracking-tight",t),...s}));ae.displayName="CardTitle";const Qe=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("text-sm text-muted-foreground",t),...s}));Qe.displayName="CardDescription";const te=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("p-6 pt-0",t),...s}));te.displayName="CardContent";const ma=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("flex items-center p-6 pt-0",t),...s}));ma.displayName="CardFooter";function Zi(){const t=It(),[s]=at(),r=s.get("path")||window.location.pathname;return e.jsxs("div",{className:"flex min-h-[calc(100vh-12rem)] items-center justify-center bg-dot-pattern px-4",children:[e.jsxs(ee,{className:"w-full max-w-[450px] overflow-hidden",children:[e.jsxs(se,{className:"text-center pb-0",children:[e.jsxs("div",{className:"relative mb-8",children:[e.jsx("div",{className:"absolute inset-0 flex items-center justify-center"}),e.jsx("div",{className:"relative flex justify-center py-4",children:e.jsx("div",{className:"bg-white dark:bg-transparent p-2 rounded-full",children:e.jsx("img",{src:"https://grafana.com/media/docs/loki/logo-grafana-loki.png",alt:"Loki Logo",className:v("h-16 w-16 sm:h-24 sm:w-24","rotate-180 animate-swing hover:animate-shake cursor-pointer transition-all duration-300")})})})]}),e.jsx(ae,{className:"text-5xl sm:text-7xl font-bold bg-gradient-to-r from-primary to-primary/50 bg-clip-text text-transparent",children:"404"})]}),e.jsxs(te,{className:"text-center space-y-3 pb-8",children:[e.jsx("h2",{className:"text-xl sm:text-2xl font-semibold tracking-tight",children:"Oops! Page Not Found"}),e.jsx("p",{className:"text-sm sm:text-base text-muted-foreground",children:"Even with our powerful log aggregation, we couldn't find this page in any of our streams!"}),e.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground italic",children:["Error: LogQL query returned 0 results for label"," ",`{path="${r}"}`]})]}),e.jsxs(ma,{className:"flex justify-center gap-4 pb-8",children:[e.jsxs(q,{variant:"outline",onClick:()=>t(-1),className:"gap-2 group",size:"sm",children:[e.jsx(Lo,{className:"h-4 w-4 group-hover:animate-spin"}),"Go Back"]}),e.jsxs(q,{onClick:()=>t("/"),className:"gap-2 group",size:"sm",children:[e.jsx(Po,{className:"h-4 w-4 group-hover:animate-bounce"}),"Go Home"]})]})]}),e.jsx("style",{children:` + .bg-dot-pattern { + background-image: radial-gradient(circle at 1px 1px, hsl(var(--muted-foreground) / 0.1) 1px, transparent 0); + background-size: 32px 32px; + } + @keyframes shake { + 0%, 100% { transform: rotate(180deg); } + 25% { transform: rotate(170deg); } + 75% { transform: rotate(190deg); } + } + @keyframes swing { + 0%, 100% { transform: rotate(180deg); } + 50% { transform: rotate(190deg); } + } + .animate-swing { + animation: swing 1s ease-in-out infinite; + } + .animate-shake { + animation: shake 0.3s ease-in-out; + } + `})]})}const J={INGESTER:"ingester",PARTITION_INGESTER:"partition-ingester",DISTRIBUTOR:"distributor",PATTERN_INGESTER:"pattern-ingester",QUERY_SCHEDULER:"query-scheduler",COMPACTOR:"compactor",RULER:"ruler",INDEX_GATEWAY:"index-gateway"},ga={0:"Unknown",1:"Pending",2:"Active",3:"Inactive",4:"Deleted"},Yi={cluster:null,error:null,isLoading:!0,refresh:()=>Promise.resolve()},fa=i.createContext(Yi);function ue(){const t=i.useContext(fa);if(!t)throw new Error("useCluster must be used within a ClusterProvider");return t}function ha(t){const s=new Date(t);return`${Xo(s)} ago`}function xa(t){const s=new Date(t);return Qo(s,{format:"extended"})}function Et(t){switch(typeof t=="string"?parseInt(t,10):t){case 2:return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case 1:return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case 3:return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";case 4:return"bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200";default:return"bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200"}}function ba(t){const s=t.split("").reduce((n,o)=>o.charCodeAt(0)+((n<<5)-n),0),r=["bg-rose-100 text-rose-800 dark:bg-rose-900 dark:text-rose-200","bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200","bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200","bg-lime-100 text-lime-800 dark:bg-lime-900 dark:text-lime-200","bg-teal-100 text-teal-800 dark:bg-teal-900 dark:text-teal-200","bg-cyan-100 text-cyan-800 dark:bg-cyan-900 dark:text-cyan-200","bg-indigo-100 text-indigo-800 dark:bg-indigo-900 dark:text-indigo-200","bg-fuchsia-100 text-fuchsia-800 dark:bg-fuchsia-900 dark:text-fuchsia-200"],a=Math.abs(s)%r.length;return r[a]}function Es(t){const s=t.split("-");return s.length>=3?s[s.length-2]:""}function Xi(t){const s=["B","KiB","MiB","GiB","TiB"];let r=t,a=0;for(;r>=1024&&aObject.values(t).some(r=>da(r,s)),ya={ingester:"ingester","partition-ring":"partition-ring",distributor:"distributor","pattern-ingester":"pattern-ingester","query-scheduler":"query-scheduler",compactor:"compactor",ruler:"ruler","index-gateway":"index-gateway"},Ne={ingester:{title:"Ingester",ringName:J.INGESTER,ringPath:"/ring",needsTokens:!0},"partition-ring":{title:"Partition Ingester",ringName:J.PARTITION_INGESTER,ringPath:"/partition-ring",needsTokens:!0},distributor:{title:"Distributor",ringName:J.DISTRIBUTOR,ringPath:"/distributor/ring",needsTokens:!1},"pattern-ingester":{title:"Pattern Ingester",ringName:J.PATTERN_INGESTER,ringPath:"/pattern/ring",needsTokens:!0},"query-scheduler":{title:"Scheduler",ringName:J.QUERY_SCHEDULER,ringPath:"/scheduler/ring",needsTokens:!1},compactor:{title:"Compactor",ringName:J.COMPACTOR,ringPath:"/compactor/ring",needsTokens:!1},ruler:{title:"Ruler",ringName:J.RULER,ringPath:"/ruler/ring",needsTokens:!0},"index-gateway":{title:"Index Gateway",ringName:J.INDEX_GATEWAY,ringPath:"/indexgateway/ring",needsTokens:!0}};function va(t){return Object.keys(Ne).find(s=>Ne[s].ringName===t)}function Ji(t){if(!t)return!1;const s=va(t);return s?Ne[s].needsTokens:!1}const el=t=>{const s=[];if(!t)return s;for(const r in Ne)Qi(t,r)&&s.push({title:Ne[r].title,url:`/rings/${Ne[r].ringName}`});return s};function ja(t,s){if(!t||!s)return"";const r=va(s);if(!r)return"";const a=Oe(t,r);if(!a)return"";const n=`/ui/api/v1/proxy/${a}`,o=Ne[r].ringPath,l=Ne[r].needsTokens?"?tokens=true":"";return`${n}${o}${l}`}const wa=[{id:J.INGESTER,title:"Ingester"},{id:J.PARTITION_INGESTER,title:"Partition Ingester"},{id:J.DISTRIBUTOR,title:"Distributor"},{id:J.PATTERN_INGESTER,title:"Pattern Ingester"},{id:J.QUERY_SCHEDULER,title:"Scheduler"},{id:J.COMPACTOR,title:"Compactor"},{id:J.RULER,title:"Ruler"},{id:J.INDEX_GATEWAY,title:"Index Gateway"}];function tl(t){const s={};try{const r=/]*>([\s\S]*?)<\/tbody>/,a=t.match(r);if(!a)return s;const n=/]*>([\s\S]*?)<\/tr>/g,o=Array.from(a[1].matchAll(n));for(const l of o){const c=/]*>([\s\S]*?)<\/td>/g,d=Array.from(l[1].matchAll(c)).map(u=>u[1].trim().replace(/ /g,""));if(d.length>=10){const u=d[0],m=d[9].endsWith("%")?d[9]:`${d[9]}%`;s[u]=m}}}catch(r){console.error("Error parsing ring HTML:",r)}return s}function sl({ringName:t,isPaused:s=!1}){const{cluster:r}=ue(),[a,n]=i.useState(null),[o,l]=i.useState(""),[c,d]=i.useState(!1),u=i.useRef(),m=i.useMemo(()=>Ji(t),[t]),f=i.useCallback(()=>ja(r==null?void 0:r.members,t??""),[r,t]),y=i.useCallback(async()=>{if(!t){l("Ring name is required");return}const g=f();if(!g){l("No cluster members available");return}u.current&&u.current.abort(),u.current=new AbortController,d(!0);try{const x=await fetch(g,{headers:{Accept:"application/json"},signal:u.current.signal});if(!x.ok)throw new Error(`Failed to fetch ring: ${x.statusText}`);const b=await x.json();if(!b||!b.shards){n(null);return}const j=await fetch(g,{headers:{Accept:"text/plain"},signal:u.current.signal});if(!j.ok)throw new Error(`Failed to fetch ring ownership: ${j.statusText}`);const w=await j.text(),E=tl(w),C={...b,shards:b.shards.map(A=>({...A,ownership:E[A.id]||"0%"}))};n(C),l("")}catch(x){if(x instanceof Error&&x.name==="AbortError")return;console.error("Error fetching ring:",x),l(x instanceof Error?x.message:"Unknown error"),n(null)}finally{d(!1)}},[t,f]),N=i.useCallback(async g=>{const x=f();if(!x)throw new Error("Ring name and node name are required");let b=0;const j=g.length;for(const w of g)try{const E=new FormData;E.append("forget",w),(await fetch(x,{method:"POST",body:E})).ok&&b++}catch(E){console.error(`Error forgetting instance ${w}:`,E)}return{success:b,total:j}},[f]),{uniqueStates:h,uniqueZones:p}=i.useMemo(()=>{if(!(a!=null&&a.shards))return{uniqueStates:[],uniqueZones:[]};const g=new Set,x=new Set;return a.shards.forEach(b=>{const j=b.state||"unknown";j.trim()&&g.add(j),b.zone&&b.zone.trim()&&x.add(b.zone)}),{uniqueStates:Array.from(g).sort(),uniqueZones:Array.from(x).sort()}},[a==null?void 0:a.shards]);return i.useEffect(()=>()=>{u.current&&u.current.abort()},[]),i.useEffect(()=>{if(y(),!s){const g=setInterval(()=>{y()},5e3);return()=>{clearInterval(g)}}},[y,s]),{ring:a,error:o,isLoading:c,fetchRing:y,forgetInstances:N,uniqueStates:h,uniqueZones:p,isTokenBased:m}}const Le=i.forwardRef(({className:t,...s},r)=>e.jsx(Ir,{ref:r,className:v("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",t),...s,children:e.jsx(si,{className:v("flex items-center justify-center text-current"),children:e.jsx(qe,{className:"h-4 w-4"})})}));Le.displayName=Ir.displayName;const Ce=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:r,className:v("w-full caption-bottom text-sm",t),...s})}));Ce.displayName="Table";const Te=i.forwardRef(({className:t,...s},r)=>e.jsx("thead",{ref:r,className:v("[&_tr]:border-b",t),...s}));Te.displayName="TableHeader";const Re=i.forwardRef(({className:t,...s},r)=>e.jsx("tbody",{ref:r,className:v("[&_tr:last-child]:border-0",t),...s}));Re.displayName="TableBody";const rl=i.forwardRef(({className:t,...s},r)=>e.jsx("tfoot",{ref:r,className:v("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...s}));rl.displayName="TableFooter";const X=i.forwardRef(({className:t,...s},r)=>e.jsx("tr",{ref:r,className:v("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...s}));X.displayName="TableRow";const D=i.forwardRef(({className:t,...s},r)=>e.jsx("th",{ref:r,className:v("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s}));D.displayName="TableHead";const F=i.forwardRef(({className:t,...s},r)=>e.jsx("td",{ref:r,className:v("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s}));F.displayName="TableCell";const al=i.forwardRef(({className:t,...s},r)=>e.jsx("caption",{ref:r,className:v("mt-4 text-sm text-muted-foreground",t),...s}));al.displayName="TableCaption";const nl=pi,ol=mi,il=i.forwardRef(({className:t,inset:s,children:r,...a},n)=>e.jsxs(qr,{ref:n,className:v("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",s&&"pl-8",t),...a,children:[r,e.jsx(kr,{className:"ml-auto h-4 w-4"})]}));il.displayName=qr.displayName;const ll=i.forwardRef(({className:t,...s},r)=>e.jsx(Gr,{ref:r,className:v("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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",t),...s}));ll.displayName=Gr.displayName;const Na=i.forwardRef(({className:t,sideOffset:s=4,...r},a)=>e.jsx(ui,{children:e.jsx(Hr,{ref:a,sideOffset:s,className:v("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...r})}));Na.displayName=Hr.displayName;const ds=i.forwardRef(({className:t,inset:s,...r},a)=>e.jsx(Kr,{ref:a,className:v("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s&&"pl-8",t),...r}));ds.displayName=Kr.displayName;const cl=i.forwardRef(({className:t,children:s,checked:r,...a},n)=>e.jsxs(Wr,{ref:n,className:v("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),checked:r,...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Zr,{children:e.jsx(qe,{className:"h-4 w-4"})})}),s]}));cl.displayName=Wr.displayName;const dl=i.forwardRef(({className:t,children:s,...r},a)=>e.jsxs(Yr,{ref:a,className:v("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Zr,{children:e.jsx(Do,{className:"h-2 w-2 fill-current"})})}),s]}));dl.displayName=Yr.displayName;const ul=i.forwardRef(({className:t,inset:s,...r},a)=>e.jsx(Xr,{ref:a,className:v("px-2 py-1.5 text-sm font-semibold",s&&"pl-8",t),...r}));ul.displayName=Xr.displayName;const pl=i.forwardRef(({className:t,...s},r)=>e.jsx(Qr,{ref:r,className:v("-mx-1 my-1 h-px bg-muted",t),...s}));pl.displayName=Qr.displayName;function Z({title:t,field:s,sortField:r,sortDirection:a,onSort:n}){const o=r===s,l=c=>{r===s&&a===c||n(s)};return e.jsx("div",{className:"flex items-center space-x-2",children:e.jsxs(nl,{children:[e.jsx(ol,{asChild:!0,children:e.jsx(q,{variant:"ghost",size:"sm",className:"-ml-3 h-8 hover:bg-muted/50 data-[state=open]:bg-muted/50",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("span",{children:t}),o?a==="desc"?e.jsx(Ws,{className:"ml-2 h-4 w-4"}):e.jsx(ls,{className:"ml-2 h-4 w-4"}):e.jsx(Sr,{className:"ml-2 h-4 w-4"})]})})}),e.jsxs(Na,{align:"start",children:[e.jsxs(ds,{onClick:()=>l("asc"),className:v("cursor-pointer",o&&a==="asc"&&"bg-accent"),children:[e.jsx(ls,{className:"mr-2 h-3.5 w-3.5 text-muted-foreground/70"}),"Asc"]}),e.jsxs(ds,{onClick:()=>l("desc"),className:v("cursor-pointer",o&&a==="desc"&&"bg-accent"),children:[e.jsx(Ws,{className:"mr-2 h-3.5 w-3.5 text-muted-foreground/70"}),"Desc"]})]})]})})}var Cs="Progress",Ts=100,[ml,Im]=hr(Cs),[gl,fl]=ml(Cs),ka=i.forwardRef((t,s)=>{const{__scopeProgress:r,value:a=null,max:n,getValueLabel:o=hl,...l}=t;(n||n===0)&&!Js(n)&&console.error(xl(`${n}`,"Progress"));const c=Js(n)?n:Ts;a!==null&&!er(a,c)&&console.error(bl(`${a}`,"Progress"));const d=er(a,c)?a:null,u=Ct(d)?o(d,c):void 0;return e.jsx(gl,{scope:r,value:d,max:c,children:e.jsx(re.div,{"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":Ct(d)?d:void 0,"aria-valuetext":u,role:"progressbar","data-state":Ca(d,c),"data-value":d??void 0,"data-max":c,...l,ref:s})})});ka.displayName=Cs;var Sa="ProgressIndicator",Ea=i.forwardRef((t,s)=>{const{__scopeProgress:r,...a}=t,n=fl(Sa,r);return e.jsx(re.div,{"data-state":Ca(n.value,n.max),"data-value":n.value??void 0,"data-max":n.max,...a,ref:s})});Ea.displayName=Sa;function hl(t,s){return`${Math.round(t/s*100)}%`}function Ca(t,s){return t==null?"indeterminate":t===s?"complete":"loading"}function Ct(t){return typeof t=="number"}function Js(t){return Ct(t)&&!isNaN(t)&&t>0}function er(t,s){return Ct(t)&&!isNaN(t)&&t<=s&&t>=0}function xl(t,s){return`Invalid prop \`max\` of value \`${t}\` supplied to \`${s}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Ts}\`.`}function bl(t,s){return`Invalid prop \`value\` of value \`${t}\` supplied to \`${s}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${Ts} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var Ta=ka,yl=Ea;const Ra=i.forwardRef(({className:t,value:s,...r},a)=>e.jsx(Ta,{ref:a,className:v("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",t),...r,children:e.jsx(yl,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(s||0)}%)`}})}));Ra.displayName=Ta.displayName;function vl({visibleIds:t,selectedIds:s,onChange:r}){const a=t.every(o=>s.has(o)),n=()=>{const o=new Set(t);r(a?new Set([...s].filter(l=>!o.has(l))):new Set([...s,...t]))};return e.jsx(Le,{checked:t.length>0&&a,onCheckedChange:n,"aria-label":"Select all visible instances"})}function jl({instances:t,selectedInstances:s,onSelectInstance:r,sortField:a,sortDirection:n,onSort:o,showTokens:l=!1}){return e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{className:"hover:bg-transparent",children:[e.jsx(D,{className:"w-[50px]",children:e.jsx(vl,{visibleIds:t.map(c=>c.id),selectedIds:s,onChange:c=>{t.forEach(d=>{c.has(d.id)!==s.has(d.id)&&r(d.id)})}})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"ID",field:"id",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"State",field:"state",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{children:e.jsx(Z,{title:"Address",field:"address",sortField:a,sortDirection:n,onSort:o})}),l&&e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Ownership",field:"ownership",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"Zone",field:"zone",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Last Heartbeat",field:"timestamp",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[50px]"})]})}),e.jsxs(Re,{children:[t.map(c=>{const d=l?c.ownership:0;return e.jsxs(X,{children:[e.jsx(F,{children:e.jsx(Le,{checked:s.has(c.id),onCheckedChange:()=>r(c.id),"aria-label":`Select instance ${c.id}`})}),e.jsx(F,{className:"font-medium",children:e.jsx(ce,{to:`/nodes/${c.id}`,className:"hover:underline",children:c.id})}),e.jsx(F,{children:e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",Et(c.state)),children:c.state})}),e.jsx(F,{children:c.address}),l&&e.jsx(F,{children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{children:d}),e.jsxs("span",{className:"text-muted-foreground",children:[c.tokens.length," tokens"]})]}),e.jsx(Ra,{value:typeof d=="number"?d:Number(d.slice(0,-1)),className:"h-2"})]})}),e.jsx(F,{children:c.zone?e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",ba(c.zone)),children:c.zone}):e.jsx("span",{className:"text-muted-foreground",children:"-"})}),e.jsx(F,{children:e.jsx("span",{title:xa(c.timestamp),className:"text-muted-foreground",children:ha(c.timestamp)})}),e.jsx(F,{children:e.jsx(q,{variant:"ghost",size:"icon",asChild:!0,className:"h-8 w-8",title:"View instance details",children:e.jsx(ce,{to:`/nodes/${c.id}`,children:e.jsx(Ft,{className:"h-4 w-4"})})})})]},c.id)}),t.length===0&&e.jsx(X,{children:e.jsx(F,{colSpan:7,className:"h-24 text-center",children:e.jsx("div",{className:"text-muted-foreground",children:"No instances found"})})})]})]})}const xe=i.forwardRef(({className:t,type:s,...r},a)=>e.jsx("input",{type:s,className:v("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:a,...r}));xe.displayName="Input";var tr=1,wl=.9,Nl=.8,kl=.17,Qt=.1,Jt=.999,Sl=.9999,El=.99,Cl=/[\\\/_+.#"@\[\(\{&]/,Tl=/[\\\/_+.#"@\[\(\{&]/g,Rl=/[\s-]/,Aa=/[\s-]/g;function us(t,s,r,a,n,o,l){if(o===s.length)return n===t.length?tr:El;var c=`${n},${o}`;if(l[c]!==void 0)return l[c];for(var d=a.charAt(o),u=r.indexOf(d,n),m=0,f,y,N,h;u>=0;)f=us(t,s,r,a,u+1,o+1,l),f>m&&(u===n?f*=tr:Cl.test(t.charAt(u-1))?(f*=Nl,N=t.slice(n,u-1).match(Tl),N&&n>0&&(f*=Math.pow(Jt,N.length))):Rl.test(t.charAt(u-1))?(f*=wl,h=t.slice(n,u-1).match(Aa),h&&n>0&&(f*=Math.pow(Jt,h.length))):(f*=kl,n>0&&(f*=Math.pow(Jt,u-n))),t.charAt(u)!==s.charAt(o)&&(f*=Sl)),(ff&&(f=y*Qt)),f>m&&(m=f),u=r.indexOf(d,u+1);return l[c]=m,m}function sr(t){return t.toLowerCase().replace(Aa," ")}function Al(t,s,r){return t=r&&r.length>0?`${t+" "+r.join(" ")}`:t,us(t,s,sr(t),sr(s),0,0,{})}var _a={exports:{}},Ia={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Ve=i;function _l(t,s){return t===s&&(t!==0||1/t===1/s)||t!==t&&s!==s}var Il=typeof Object.is=="function"?Object.is:_l,Fl=Ve.useState,Ll=Ve.useEffect,Pl=Ve.useLayoutEffect,Dl=Ve.useDebugValue;function Ol(t,s){var r=s(),a=Fl({inst:{value:r,getSnapshot:s}}),n=a[0].inst,o=a[1];return Pl(function(){n.value=r,n.getSnapshot=s,es(n)&&o({inst:n})},[t,r,s]),Ll(function(){return es(n)&&o({inst:n}),t(function(){es(n)&&o({inst:n})})},[t]),Dl(r),r}function es(t){var s=t.getSnapshot;t=t.value;try{var r=s();return!Il(t,r)}catch{return!0}}function $l(t,s){return s()}var Ml=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?$l:Ol;Ia.useSyncExternalStore=Ve.useSyncExternalStore!==void 0?Ve.useSyncExternalStore:Ml;_a.exports=Ia;var Bl=_a.exports,We='[cmdk-group=""]',ts='[cmdk-group-items=""]',zl='[cmdk-group-heading=""]',Rs='[cmdk-item=""]',rr=`${Rs}:not([aria-disabled="true"])`,ps="cmdk-item-select",_e="data-value",Vl=(t,s,r)=>Al(t,s,r),Fa=i.createContext(void 0),ut=()=>i.useContext(Fa),La=i.createContext(void 0),As=()=>i.useContext(La),Pa=i.createContext(void 0),Da=i.forwardRef((t,s)=>{let r=$e(()=>{var S,R;return{search:"",value:(R=(S=t.value)!=null?S:t.defaultValue)!=null?R:"",filtered:{count:0,items:new Map,groups:new Set}}}),a=$e(()=>new Set),n=$e(()=>new Map),o=$e(()=>new Map),l=$e(()=>new Set),c=Oa(t),{label:d,children:u,value:m,onValueChange:f,filter:y,shouldFilter:N,loop:h,disablePointerSelection:p=!1,vimBindings:g=!0,...x}=t,b=Me(),j=Me(),w=Me(),E=i.useRef(null),C=Jl();Pe(()=>{if(m!==void 0){let S=m.trim();r.current.value=S,A.emit()}},[m]),Pe(()=>{C(6,W)},[]);let A=i.useMemo(()=>({subscribe:S=>(l.current.add(S),()=>l.current.delete(S)),snapshot:()=>r.current,setState:(S,R,$)=>{var L,G,H;if(!Object.is(r.current[S],R)){if(r.current[S]=R,S==="search")M(),Y(),C(1,K);else if(S==="value"&&($||C(5,W),((L=c.current)==null?void 0:L.value)!==void 0)){let ne=R??"";(H=(G=c.current).onValueChange)==null||H.call(G,ne);return}A.emit()}},emit:()=>{l.current.forEach(S=>S())}}),[]),B=i.useMemo(()=>({value:(S,R,$)=>{var L;R!==((L=o.current.get(S))==null?void 0:L.value)&&(o.current.set(S,{value:R,keywords:$}),r.current.filtered.items.set(S,z(R,$)),C(2,()=>{Y(),A.emit()}))},item:(S,R)=>(a.current.add(S),R&&(n.current.has(R)?n.current.get(R).add(S):n.current.set(R,new Set([S]))),C(3,()=>{M(),Y(),r.current.value||K(),A.emit()}),()=>{o.current.delete(S),a.current.delete(S),r.current.filtered.items.delete(S);let $=T();C(4,()=>{M(),($==null?void 0:$.getAttribute("id"))===S&&K(),A.emit()})}),group:S=>(n.current.has(S)||n.current.set(S,new Set),()=>{o.current.delete(S),n.current.delete(S)}),filter:()=>c.current.shouldFilter,label:d||t["aria-label"],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:b,inputId:w,labelId:j,listInnerRef:E}),[]);function z(S,R){var $,L;let G=(L=($=c.current)==null?void 0:$.filter)!=null?L:Vl;return S?G(S,r.current.search,R):0}function Y(){if(!r.current.search||c.current.shouldFilter===!1)return;let S=r.current.filtered.items,R=[];r.current.filtered.groups.forEach(L=>{let G=n.current.get(L),H=0;G.forEach(ne=>{let de=S.get(ne);H=Math.max(de,H)}),R.push([L,H])});let $=E.current;O().sort((L,G)=>{var H,ne;let de=L.getAttribute("id"),gt=G.getAttribute("id");return((H=S.get(gt))!=null?H:0)-((ne=S.get(de))!=null?ne:0)}).forEach(L=>{let G=L.closest(ts);G?G.appendChild(L.parentElement===G?L:L.closest(`${ts} > *`)):$.appendChild(L.parentElement===$?L:L.closest(`${ts} > *`))}),R.sort((L,G)=>G[1]-L[1]).forEach(L=>{var G;let H=(G=E.current)==null?void 0:G.querySelector(`${We}[${_e}="${encodeURIComponent(L[0])}"]`);H==null||H.parentElement.appendChild(H)})}function K(){let S=O().find($=>$.getAttribute("aria-disabled")!=="true"),R=S==null?void 0:S.getAttribute(_e);A.setState("value",R||void 0)}function M(){var S,R,$,L;if(!r.current.search||c.current.shouldFilter===!1){r.current.filtered.count=a.current.size;return}r.current.filtered.groups=new Set;let G=0;for(let H of a.current){let ne=(R=(S=o.current.get(H))==null?void 0:S.value)!=null?R:"",de=(L=($=o.current.get(H))==null?void 0:$.keywords)!=null?L:[],gt=z(ne,de);r.current.filtered.items.set(H,gt),gt>0&&G++}for(let[H,ne]of n.current)for(let de of ne)if(r.current.filtered.items.get(de)>0){r.current.filtered.groups.add(H);break}r.current.filtered.count=G}function W(){var S,R,$;let L=T();L&&(((S=L.parentElement)==null?void 0:S.firstChild)===L&&(($=(R=L.closest(We))==null?void 0:R.querySelector(zl))==null||$.scrollIntoView({block:"nearest"})),L.scrollIntoView({block:"nearest"}))}function T(){var S;return(S=E.current)==null?void 0:S.querySelector(`${Rs}[aria-selected="true"]`)}function O(){var S;return Array.from(((S=E.current)==null?void 0:S.querySelectorAll(rr))||[])}function V(S){let R=O()[S];R&&A.setState("value",R.getAttribute(_e))}function Q(S){var R;let $=T(),L=O(),G=L.findIndex(ne=>ne===$),H=L[G+S];(R=c.current)!=null&&R.loop&&(H=G+S<0?L[L.length-1]:G+S===L.length?L[0]:L[G+S]),H&&A.setState("value",H.getAttribute(_e))}function _(S){let R=T(),$=R==null?void 0:R.closest(We),L;for(;$&&!L;)$=S>0?Xl($,We):Ql($,We),L=$==null?void 0:$.querySelector(rr);L?A.setState("value",L.getAttribute(_e)):Q(S)}let I=()=>V(O().length-1),P=S=>{S.preventDefault(),S.metaKey?I():S.altKey?_(1):Q(1)},U=S=>{S.preventDefault(),S.metaKey?V(0):S.altKey?_(-1):Q(-1)};return i.createElement(re.div,{ref:s,tabIndex:-1,...x,"cmdk-root":"",onKeyDown:S=>{var R;if((R=x.onKeyDown)==null||R.call(x,S),!S.defaultPrevented)switch(S.key){case"n":case"j":{g&&S.ctrlKey&&P(S);break}case"ArrowDown":{P(S);break}case"p":case"k":{g&&S.ctrlKey&&U(S);break}case"ArrowUp":{U(S);break}case"Home":{S.preventDefault(),V(0);break}case"End":{S.preventDefault(),I();break}case"Enter":if(!S.nativeEvent.isComposing&&S.keyCode!==229){S.preventDefault();let $=T();if($){let L=new Event(ps);$.dispatchEvent(L)}}}}},i.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:tc},d),Bt(t,S=>i.createElement(La.Provider,{value:A},i.createElement(Fa.Provider,{value:B},S))))}),Ul=i.forwardRef((t,s)=>{var r,a;let n=Me(),o=i.useRef(null),l=i.useContext(Pa),c=ut(),d=Oa(t),u=(a=(r=d.current)==null?void 0:r.forceMount)!=null?a:l==null?void 0:l.forceMount;Pe(()=>{if(!u)return c.item(n,l==null?void 0:l.id)},[u]);let m=$a(n,o,[t.value,t.children,o],t.keywords),f=As(),y=De(C=>C.value&&C.value===m.current),N=De(C=>u||c.filter()===!1?!0:C.search?C.filtered.items.get(n)>0:!0);i.useEffect(()=>{let C=o.current;if(!(!C||t.disabled))return C.addEventListener(ps,h),()=>C.removeEventListener(ps,h)},[N,t.onSelect,t.disabled]);function h(){var C,A;p(),(A=(C=d.current).onSelect)==null||A.call(C,m.current)}function p(){f.setState("value",m.current,!0)}if(!N)return null;let{disabled:g,value:x,onSelect:b,forceMount:j,keywords:w,...E}=t;return i.createElement(re.div,{ref:Je([o,s]),...E,id:n,"cmdk-item":"",role:"option","aria-disabled":!!g,"aria-selected":!!y,"data-disabled":!!g,"data-selected":!!y,onPointerMove:g||c.getDisablePointerSelection()?void 0:p,onClick:g?void 0:h},t.children)}),ql=i.forwardRef((t,s)=>{let{heading:r,children:a,forceMount:n,...o}=t,l=Me(),c=i.useRef(null),d=i.useRef(null),u=Me(),m=ut(),f=De(N=>n||m.filter()===!1?!0:N.search?N.filtered.groups.has(l):!0);Pe(()=>m.group(l),[]),$a(l,c,[t.value,t.heading,d]);let y=i.useMemo(()=>({id:l,forceMount:n}),[n]);return i.createElement(re.div,{ref:Je([c,s]),...o,"cmdk-group":"",role:"presentation",hidden:f?void 0:!0},r&&i.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:u},r),Bt(t,N=>i.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?u:void 0},i.createElement(Pa.Provider,{value:y},N))))}),Gl=i.forwardRef((t,s)=>{let{alwaysRender:r,...a}=t,n=i.useRef(null),o=De(l=>!l.search);return!r&&!o?null:i.createElement(re.div,{ref:Je([n,s]),...a,"cmdk-separator":"",role:"separator"})}),Hl=i.forwardRef((t,s)=>{let{onValueChange:r,...a}=t,n=t.value!=null,o=As(),l=De(m=>m.search),c=De(m=>m.value),d=ut(),u=i.useMemo(()=>{var m;let f=(m=d.listInnerRef.current)==null?void 0:m.querySelector(`${Rs}[${_e}="${encodeURIComponent(c)}"]`);return f==null?void 0:f.getAttribute("id")},[]);return i.useEffect(()=>{t.value!=null&&o.setState("search",t.value)},[t.value]),i.createElement(re.input,{ref:s,...a,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:n?t.value:l,onChange:m=>{n||o.setState("search",m.target.value),r==null||r(m.target.value)}})}),Kl=i.forwardRef((t,s)=>{let{children:r,label:a="Suggestions",...n}=t,o=i.useRef(null),l=i.useRef(null),c=ut();return i.useEffect(()=>{if(l.current&&o.current){let d=l.current,u=o.current,m,f=new ResizeObserver(()=>{m=requestAnimationFrame(()=>{let y=d.offsetHeight;u.style.setProperty("--cmdk-list-height",y.toFixed(1)+"px")})});return f.observe(d),()=>{cancelAnimationFrame(m),f.unobserve(d)}}},[]),i.createElement(re.div,{ref:Je([o,s]),...n,"cmdk-list":"",role:"listbox","aria-label":a,id:c.listId},Bt(t,d=>i.createElement("div",{ref:Je([l,c.listInnerRef]),"cmdk-list-sizer":""},d)))}),Wl=i.forwardRef((t,s)=>{let{open:r,onOpenChange:a,overlayClassName:n,contentClassName:o,container:l,...c}=t;return i.createElement(ws,{open:r,onOpenChange:a},i.createElement(Ns,{container:l},i.createElement(it,{"cmdk-overlay":"",className:n}),i.createElement(lt,{"aria-label":t.label,"cmdk-dialog":"",className:o},i.createElement(Da,{ref:s,...c}))))}),Zl=i.forwardRef((t,s)=>De(r=>r.filtered.count===0)?i.createElement(re.div,{ref:s,...t,"cmdk-empty":"",role:"presentation"}):null),Yl=i.forwardRef((t,s)=>{let{progress:r,children:a,label:n="Loading...",...o}=t;return i.createElement(re.div,{ref:s,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":n},Bt(t,l=>i.createElement("div",{"aria-hidden":!0},l)))}),oe=Object.assign(Da,{List:Kl,Item:Ul,Input:Hl,Group:ql,Separator:Gl,Dialog:Wl,Empty:Zl,Loading:Yl});function Xl(t,s){let r=t.nextElementSibling;for(;r;){if(r.matches(s))return r;r=r.nextElementSibling}}function Ql(t,s){let r=t.previousElementSibling;for(;r;){if(r.matches(s))return r;r=r.previousElementSibling}}function Oa(t){let s=i.useRef(t);return Pe(()=>{s.current=t}),s}var Pe=typeof window>"u"?i.useEffect:i.useLayoutEffect;function $e(t){let s=i.useRef();return s.current===void 0&&(s.current=t()),s}function Je(t){return s=>{t.forEach(r=>{typeof r=="function"?r(s):r!=null&&(r.current=s)})}}function De(t){let s=As(),r=()=>t(s.snapshot());return Bl.useSyncExternalStore(s.subscribe,r,r)}function $a(t,s,r,a=[]){let n=i.useRef(),o=ut();return Pe(()=>{var l;let c=(()=>{var u;for(let m of r){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(u=m.current.textContent)==null?void 0:u.trim():n.current}})(),d=a.map(u=>u.trim());o.value(t,c,d),(l=s.current)==null||l.setAttribute(_e,c),n.current=c}),n}var Jl=()=>{let[t,s]=i.useState(),r=$e(()=>new Map);return Pe(()=>{r.current.forEach(a=>a()),r.current=new Map},[t]),(a,n)=>{r.current.set(a,n),s({})}};function ec(t){let s=t.type;return typeof s=="function"?s(t.props):"render"in s?s.render(t.props):t}function Bt({asChild:t,children:s},r){return t&&i.isValidElement(s)?i.cloneElement(ec(s),{ref:s.ref},r(s.props.children)):r(s)}var tc={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Ma=ws,sc=Ns,Ba=i.forwardRef(({className:t,...s},r)=>e.jsx(it,{ref:r,className:v("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...s}));Ba.displayName=it.displayName;const _s=i.forwardRef(({className:t,children:s,...r},a)=>e.jsxs(sc,{children:[e.jsx(Ba,{}),e.jsxs(lt,{ref:a,className:v("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...r,children:[s,e.jsxs(aa,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(vs,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));_s.displayName=lt.displayName;const Is=({className:t,...s})=>e.jsx("div",{className:v("flex flex-col space-y-1.5 text-center sm:text-left",t),...s});Is.displayName="DialogHeader";const Fs=({className:t,...s})=>e.jsx("div",{className:v("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s});Fs.displayName="DialogFooter";const Ls=i.forwardRef(({className:t,...s},r)=>e.jsx(Lt,{ref:r,className:v("text-lg font-semibold leading-none tracking-tight",t),...s}));Ls.displayName=Lt.displayName;const Ps=i.forwardRef(({className:t,...s},r)=>e.jsx(Pt,{ref:r,className:v("text-sm text-muted-foreground",t),...s}));Ps.displayName=Pt.displayName;const za=i.forwardRef(({className:t,...s},r)=>e.jsx(oe,{ref:r,className:v("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...s}));za.displayName=oe.displayName;const Va=i.forwardRef(({className:t,...s},r)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(Er,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(oe.Input,{ref:r,className:v("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...s})]}));Va.displayName=oe.Input.displayName;const rc=i.forwardRef(({className:t,...s},r)=>e.jsx(oe.List,{ref:r,className:v("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...s}));rc.displayName=oe.List.displayName;const Ua=i.forwardRef((t,s)=>e.jsx(oe.Empty,{ref:s,className:"py-6 text-center text-sm",...t}));Ua.displayName=oe.Empty.displayName;const qa=i.forwardRef(({className:t,...s},r)=>e.jsx(oe.Group,{ref:r,className:v("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...s}));qa.displayName=oe.Group.displayName;const ac=i.forwardRef(({className:t,...s},r)=>e.jsx(oe.Separator,{ref:r,className:v("-mx-1 h-px bg-border",t),...s}));ac.displayName=oe.Separator.displayName;const ms=i.forwardRef(({className:t,...s},r)=>e.jsx(oe.Item,{ref:r,className:v("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t),...s}));ms.displayName=oe.Item.displayName;const nc=po,oc=mo,Ga=i.forwardRef(({className:t,align:s="center",sideOffset:r=4,...a},n)=>e.jsx(uo,{children:e.jsx(xr,{ref:n,align:s,sideOffset:r,className:v("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",t),...a})}));Ga.displayName=xr.displayName;function Fe({options:t=[],selected:s=[],onChange:r,placeholder:a="Select options...",emptyMessage:n="No options found.",className:o}){const[l,c]=i.useState(!1),d=y=>{const N=s.includes(y)?s.filter(h=>h!==y):[...s,y];r(N)},u=()=>{s.length===t.length?r([]):r(t.map(y=>y.value))},m=s.length,f=t.length;return e.jsxs(nc,{open:l,onOpenChange:c,children:[e.jsx(oc,{asChild:!0,children:e.jsxs(q,{variant:"outline",role:"combobox","aria-expanded":l,className:v("justify-between",o),children:[m===0?a:`${m} selected`,e.jsx(Sr,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),e.jsx(Ga,{className:"w-[200px] p-0",children:e.jsxs(za,{children:[e.jsx(Va,{placeholder:a}),e.jsx(Ua,{children:n}),e.jsxs(qa,{children:[f>0&&e.jsx(ms,{onSelect:u,children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Le,{checked:m>0&&m===f,"aria-label":"Select all"}),e.jsx("span",{children:"Select all"})]})}),t.map(y=>e.jsx(ms,{onSelect:()=>d(y.value),children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Le,{checked:s.includes(y.value)}),e.jsx("span",{children:y.label})]})},y.value))]})]})})]})}function ic({idFilter:t,onIdFilterChange:s,stateFilter:r,onStateFilterChange:a,zoneFilter:n,onZoneFilterChange:o,uniqueStates:l,uniqueZones:c}){return e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(Er,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(xe,{placeholder:"Filter by ID...",value:t,onChange:d=>s(d.target.value),className:"pl-8"})]}),l.length>0&&e.jsx(Fe,{options:l.map(d=>({value:d,label:d})),selected:r,onChange:a,placeholder:"Filter by State",className:"w-[180px]"}),c.length>0&&e.jsx(Fe,{options:c.map(d=>({value:d,label:d})),selected:n,onChange:o,placeholder:"Filter by Zone",className:"w-[180px]"})]})}const lc=t=>{switch(t){case"ACTIVE":return"#22c55e";case"LEAVING":return"#eab308";case"PENDING":return"#3b82f6";case"JOINING":return"#a855f7";case"LEFT":return"#ef4444";default:return"#6b7280"}};function cc({instances:t}){const s=i.useMemo(()=>{const a=new Map;return t.forEach(n=>{const o=n.state||"unknown";a.set(o,(a.get(o)||0)+1)}),Array.from(a.entries()).sort((n,o)=>o[1]-n[1]).map(([n,o])=>({name:n,value:o,color:lc(n)}))},[t]),r=i.useMemo(()=>t.length,[t]);return s.length===0?null:e.jsxs("div",{className:"w-full h-[120px] relative",children:[e.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none",children:[e.jsx("div",{className:"text-xl font-bold",children:r}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Instances"})]}),e.jsx(ct,{width:"100%",height:"100%",children:e.jsxs(Dt,{children:[e.jsx(Ot,{data:s,cx:"50%",cy:"50%",labelLine:!1,outerRadius:60,innerRadius:42,dataKey:"value",paddingAngle:1,strokeWidth:1,children:s.map(a=>e.jsx($t,{fill:a.color,stroke:"hsl(var(--background))"},`cell-${a.name}`))}),e.jsx(dt,{content:({active:a,payload:n})=>{if(!a||!n||!n[0])return null;const o=n[0].payload;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg px-3 py-2 flex items-center gap-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-sm",style:{backgroundColor:o.color}}),e.jsx("span",{className:"text-sm font-medium",children:o.name}),e.jsx("span",{className:"text-sm font-semibold",children:o.value})]})}})]})})]})}function Ha({onRefresh:t,isPaused:s=!1,isLoading:r,className:a}){const[n,o]=i.useState(r);return i.useEffect(()=>{let l;return r?o(!0):l=setTimeout(()=>{o(!1)},1e3),()=>{l&&clearTimeout(l)}},[r]),e.jsxs("div",{className:`flex items-center gap-2 text-sm text-muted-foreground ${a}`,children:[e.jsx(q,{variant:"secondary",size:"sm",className:"h-6 px-2 text-xs hover:bg-muted",onClick:t,children:"Refresh now"}),s?e.jsx(Oo,{className:"h-3 w-3 text-orange-500"}):e.jsx(he,{className:`h-3 w-3 ${n?"animate-spin text-emerald-500 ":"opacity-0 transition-opacity duration-1000"} `}),e.jsx("span",{className:"transition-opacity duration-1000",children:s?"Auto-refresh paused":n?"Refreshing...":""})]})}const dc=Ee("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Ge=i.forwardRef(({className:t,variant:s,...r},a)=>e.jsx("div",{ref:a,role:"alert",className:v(dc({variant:s}),t),...r}));Ge.displayName="Alert";const He=i.forwardRef(({className:t,...s},r)=>e.jsx("h5",{ref:r,className:v("mb-1 font-medium leading-none tracking-tight",t),...s}));He.displayName="AlertTitle";const Ke=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,className:v("text-sm [&_p]:leading-relaxed",t),...s}));Ke.displayName="AlertDescription";function ke({children:t,className:s,spacing:r=!0,...a}){return e.jsx("div",{className:"container p-6",children:e.jsx("div",{className:v(r&&"space-y-6",s),...a,children:t})})}function Ds({error:t,ringName:s}){return t?e.jsx(ke,{children:e.jsxs(Ge,{variant:"destructive",children:[e.jsx(nt,{className:"h-4 w-4"}),e.jsx(He,{children:"Error"}),e.jsx(Ke,{children:t})]})}):s?null:e.jsx(ke,{children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(Cr,{className:"h-6 w-6"}),e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Rings"})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:wa.map(r=>e.jsx(ce,{to:`/rings/${r.id}`,children:e.jsxs(ee,{className:"hover:bg-muted/50 transition-colors cursor-pointer",children:[e.jsx(se,{children:e.jsx(ae,{children:r.title})}),e.jsx(te,{children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["View and manage ",r.title.toLowerCase()," ring members"]})})]})},r.id))})]})})}const uc=5,pc=1e6;let ss=0;function mc(){return ss=(ss+1)%Number.MAX_SAFE_INTEGER,ss.toString()}const rs=new Map,ar=t=>{if(rs.has(t))return;const s=setTimeout(()=>{rs.delete(t),Xe({type:"REMOVE_TOAST",toastId:t})},pc);rs.set(t,s)},gc=(t,s)=>{switch(s.type){case"ADD_TOAST":return{...t,toasts:[s.toast,...t.toasts].slice(0,uc)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(r=>r.id===s.toast.id?{...r,...s.toast}:r)};case"DISMISS_TOAST":{const{toastId:r}=s;return r?ar(r):t.toasts.forEach(a=>{ar(a.id)}),{...t,toasts:t.toasts.map(a=>a.id===r||r===void 0?{...a,open:!1}:a)}}case"REMOVE_TOAST":return s.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(r=>r.id!==s.toastId)}}},xt=[];let bt={toasts:[]};function Xe(t){bt=gc(bt,t),xt.forEach(s=>{s(bt)})}function fc({...t}){const s=mc(),r=n=>Xe({type:"UPDATE_TOAST",toast:{...n,id:s}}),a=()=>Xe({type:"DISMISS_TOAST",toastId:s});return Xe({type:"ADD_TOAST",toast:{...t,id:s,open:!0,onOpenChange:n=>{n||a()}}}),{id:s,dismiss:a,update:r}}function zt(){const[t,s]=i.useState(bt);return i.useEffect(()=>(xt.push(s),()=>{const r=xt.indexOf(s);r>-1&&xt.splice(r,1)}),[t]),{...t,toast:fc,dismiss:r=>Xe({type:"DISMISS_TOAST",toastId:r})}}function hc({ringName:t}){var Q;const[s,r]=i.useState(new Set),[a,n]=i.useState(!1),[o,l]=i.useState(0),[c,d]=i.useState("id"),[u,m]=i.useState("asc"),[f,y]=i.useState(""),[N,h]=i.useState([]),[p,g]=i.useState([]),[x,b]=i.useState(!1),{ring:j,error:w,isLoading:E,fetchRing:C,forgetInstances:A,uniqueStates:B,uniqueZones:z,isTokenBased:Y}=sl({ringName:t,isPaused:s.size>0}),K=i.useMemo(()=>j!=null&&j.shards?j.shards.filter(_=>s.has(_.id)):[],[j==null?void 0:j.shards,s]),M=i.useCallback(_=>{d(I=>I===_?(m(P=>P==="asc"?"desc":"asc"),_):(m("asc"),_))},[]),W=i.useCallback(_=>{r(I=>{const P=new Set(I);return P.has(_)?P.delete(_):P.add(_),P})},[]),{toast:T}=zt(),O=i.useCallback(async()=>{if(s.size!==0)try{n(!0),l(0);const{success:_,total:I}=await A(Array.from(s));_>0&&(await C(),r(new Set)),_j!=null&&j.shards?j.shards.filter(_=>{const I=_.id.toLowerCase().includes(f.toLowerCase()),P=N.length===0||N.includes(_.state),U=p.length===0||p.includes(_.zone);return I&&P&&U}).sort((_,I)=>{let P=0;switch(c){case"id":P=_.id.localeCompare(I.id);break;case"state":P=_.state.localeCompare(I.state);break;case"address":P=_.address.localeCompare(I.address);break;case"zone":P=(_.zone||"").localeCompare(I.zone||"");break;case"timestamp":P=new Date(_.timestamp).getTime()-new Date(I.timestamp).getTime();break;case"tokens":P=_.tokens.length-I.tokens.length;break;case"ownership":P=parseFloat(_.ownership)-parseFloat(I.ownership);break}return u==="asc"?P:-P}):[],[j==null?void 0:j.shards,f,N,p,c,u]);return w?e.jsx(Ds,{error:w,ringName:t}):e.jsxs("div",{className:"container space-y-6 p-6",children:[e.jsxs(ee,{children:[e.jsx(se,{children:e.jsxs("div",{className:"grid grid-cols-[1fr_auto] gap-8",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsxs(ae,{className:"text-3xl font-semibold tracking-tight",children:[((Q=wa.find(_=>_.id===t))==null?void 0:Q.title)||""," ","Ring Members"]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"View and manage ring instances with their current status and configuration"})]}),e.jsxs("div",{className:"flex items-center justify-between min-h-[32px]",children:[e.jsx(Ha,{onRefresh:C,isPaused:s.size>0,isLoading:E}),s.size>0&&e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("span",{className:"text-sm text-muted-foreground",children:[s.size," instance",s.size!==1?"s":""," selected"]}),e.jsxs(q,{onClick:()=>b(!0),disabled:a,size:"sm",variant:"outline",className:v("border-red-200 bg-red-50 text-red-900 hover:bg-red-100 hover:text-red-900","dark:border-red-800 dark:bg-red-950 dark:text-red-200 dark:hover:bg-red-900","disabled:hover:bg-red-50 dark:disabled:hover:bg-red-950"),children:[a&&e.jsxs(e.Fragment,{children:[e.jsx(he,{className:"mr-2 h-4 w-4 animate-spin"}),o>0&&e.jsxs("span",{className:"mr-2",children:[o,"/",s.size]})]}),"Forget Selected"]})]})]})]}),e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"w-[250px]",children:(j==null?void 0:j.shards)&&e.jsx(cc,{instances:j.shards})})})]})}),e.jsxs(te,{className:"space-y-6",children:[e.jsx(ic,{idFilter:f,onIdFilterChange:y,stateFilter:N,onStateFilterChange:h,zoneFilter:p,onZoneFilterChange:g,uniqueStates:B,uniqueZones:z}),e.jsx("div",{className:"rounded-md border bg-card",children:e.jsx(jl,{instances:V,selectedInstances:s,onSelectInstance:W,sortField:c,sortDirection:u,onSort:M,showTokens:Y})})]})]}),e.jsx(Ma,{open:x,onOpenChange:b,children:e.jsxs(_s,{children:[e.jsxs(Is,{children:[e.jsx(Ls,{children:"Confirm Forget Instances"}),e.jsx(Ps,{children:"Are you sure you want to forget the following instances? This action cannot be undone."})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto",children:e.jsx("div",{className:"space-y-2",children:K.map(_=>e.jsxs("div",{className:"flex items-center justify-between p-2 rounded-md bg-muted",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium",children:_.id}),e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",Et(_.state)),children:_.state})]}),e.jsx("span",{className:"text-sm text-muted-foreground",children:_.address})]},_.id))})}),e.jsxs(Fs,{children:[e.jsx(q,{variant:"outline",onClick:()=>b(!1),disabled:a,children:"Cancel"}),e.jsx(q,{variant:"outline",onClick:O,disabled:a,className:v("border-red-200 bg-red-50 text-red-900 hover:bg-red-100 hover:text-red-900","dark:border-red-800 dark:bg-red-950 dark:text-red-200 dark:hover:bg-red-900","disabled:hover:bg-red-50 dark:disabled:hover:bg-red-950"),children:a?e.jsxs(e.Fragment,{children:[e.jsx(he,{className:"mr-2 h-4 w-4 animate-spin"}),"Forgetting..."]}):"Forget Instances"})]})]})})]})}const xc=()=>{const t=i.useRef({});return{fetchMetrics:i.useCallback(async({nodeNames:r,metrics:a})=>{if(!r.length)return{};const n={...t.current},o={};return await Promise.all(r.map(async l=>{try{const c=await fetch(`/ui/api/v1/proxy/${l}/metrics`);if(!c.ok)throw new Error(`Failed to fetch metrics: ${c.statusText}`);const d=await c.text(),u={timestamp:Date.now(),values:{}};a.forEach(f=>{const y=new RegExp(`${f}\\{[^}]*\\}\\s+([\\d.e+]+)`),N=d.match(y);N&&(u.values[f]=parseFloat(N[1]))});const m=t.current[l];if(n[l]=u,m){const f=(u.timestamp-m.timestamp)/1e3;if(f>0){const y=a.map(N=>{const h=u.values[N],p=m.values[N];if(h!==void 0&&p!==void 0){const g=(h-p)/f;return{name:N,rate:g,currentValue:h}}return{name:N,rate:0,currentValue:h??0}});o[l]=y}}}catch(c){console.error(`Error fetching metrics for node ${l}:`,c)}})),t.current=n,o},[])}},bc={0:"PartitionUnknown",1:"PartitionPending",2:"PartitionActive",3:"PartitionInactive",4:"PartitionDeleted"};function yc({isPaused:t=!1}={}){const{cluster:s,isLoading:r}=ue(),[a,n]=i.useState({partitions:[],error:"",isLoading:!1}),o=i.useRef(),l=i.useCallback(()=>ja(s==null?void 0:s.members,J.PARTITION_INGESTER),[s]),{fetchMetrics:c}=xc(),d=i.useCallback(async()=>{if(!l()){n(f=>({...f,partitions:[],error:"No cluster members available",isLoading:!1}));return}o.current&&o.current.abort(),o.current=new AbortController;try{n(g=>({...g,isLoading:!0,error:""}));const f=await fetch(l(),{signal:o.current.signal,headers:{Accept:"application/json"}});if(!f.ok)throw new Error(`Failed to fetch partitions: ${f.statusText}`);const N=(await f.json()).partitions.flatMap(g=>g.owner_ids.map(x=>({...g,owner_id:x,owner_ids:[x],zone:Es(x)}))),h=Array.from(new Set(N.map(g=>g.owner_ids).flat().filter(g=>g!==void 0))),p=await c({nodeNames:h,metrics:["loki_ingest_storage_reader_fetch_bytes_total","loki_ingest_storage_reader_fetch_compressed_bytes_total"]});n(g=>({...g,isLoading:!1,partitions:N.map(x=>{var j,w;if(!x.owner_id)return x;const b=p[x.owner_id]||[];return{...x,uncompressedRate:((j=b.find(E=>E.name==="loki_ingest_storage_reader_fetch_bytes_total"))==null?void 0:j.rate)||0,compressedRate:((w=b.find(E=>E.name==="loki_ingest_storage_reader_fetch_compressed_bytes_total"))==null?void 0:w.rate)||0}})}))}catch(f){f instanceof Error&&f.name!=="AbortError"&&n(y=>({...y,error:f instanceof Error?f.message:"Unknown error occurred",isLoading:!1}))}},[l,c]),u=i.useCallback(async(f,y)=>{if(!l())throw new Error("No cluster members available");const N=Array.from(new Set(f)),h=N.length;let p=0;return await Promise.allSettled(N.map(async g=>{const x=new FormData;x.append("action","change_state"),x.append("partition_id",g.toString());const b=bc[y];if(b===void 0)throw new Error(`Invalid partition state: ${y}`);x.append("partition_state",b.toString());const j=await fetch(l(),{method:"POST",body:x});if(!j.ok){const w=await j.text();throw new Error(`Failed to change state for partition ${g}: ${w}`)}return p++,g})),{success:p,total:h}},[l]),m=i.useMemo(()=>{const f=new Set,y=new Set,N={};return a.partitions.forEach(h=>{const p=h.state.toString();N[p]=(N[p]||0)+1,f.add(p),h.owner_ids.forEach(g=>{const x=g.split("-")[2];x&&y.add(x)})}),{partitionsByState:N,uniqueStates:Array.from(f).sort(),uniqueZones:Array.from(y).sort()}},[a.partitions]);return i.useEffect(()=>()=>{o.current&&o.current.abort()},[]),i.useEffect(()=>{if(d(),!t){const f=setInterval(d,5e3);return()=>clearInterval(f)}},[d,t]),{partitions:a.partitions,error:a.error,isLoading:a.isLoading||r,fetchPartitions:d,changePartitionState:u,...m}}function vc(t,s){return t===void 0||s===void 0||Math.abs((t-s)/s)<.1?null:t>s?"up":"down"}function jc({trend:t}){return t?t==="up"?e.jsx($o,{className:"inline h-4 w-4 text-green-500 ml-1"}):e.jsx(Mo,{className:"inline h-4 w-4 text-red-500 ml-1"}):null}function nr({currentRate:t,label:s,className:r}){const a=i.useRef(t),n=i.useMemo(()=>vc(t,a.current),[t]);return i.useEffect(()=>{const o=setTimeout(()=>{a.current=t},2e3);return()=>clearTimeout(o)},[t]),e.jsxs("span",{className:r,children:[Xi(t),"/s",s&&` ${s}`,e.jsx(jc,{trend:n})]})}function wc({allPartitions:t,selectedIds:s,onChange:r}){const a=i.useMemo(()=>Array.from(new Set(t.map(l=>l.id))),[t]),n=a.every(l=>s.has(l)),o=()=>{r(n?new Set:new Set(a))};return e.jsx(Le,{checked:a.length>0&&n,onCheckedChange:o,"aria-label":"Select all partitions"})}function Nc(t){switch(t){case 2:return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";case 1:return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";case 3:return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200";case 4:return"bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200";default:return"bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200"}}const kc=[{value:1,label:"Pending"},{value:2,label:"Active"},{value:3,label:"Inactive"},{value:4,label:"Deleted"}];function Sc({partitions:t,selectedPartitions:s,onSelectPartition:r,sortField:a,sortDirection:n,onSort:o}){const l=i.useMemo(()=>[...t].sort((c,d)=>{var m;let u=0;switch(a){case"uncompressed_rate":{u=(c.uncompressedRate||0)-(d.uncompressedRate||0);break}case"compressed_rate":{u=(c.compressedRate||0)-(d.compressedRate||0);break}case"id":u=c.id-d.id;break;case"state":u=c.state-d.state;break;case"owner":u=((m=c.owner_id)==null?void 0:m.localeCompare(d.owner_id||""))||0;break;case"zone":u=(c.zone||"").localeCompare(d.zone||"");break;case"timestamp":u=new Date(c.state_timestamp).getTime()-new Date(d.state_timestamp).getTime();break}return n==="asc"?u:-u}),[t,a,n]);return e.jsx(e.Fragment,{children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{className:"hover:bg-transparent",children:[e.jsx(D,{className:"w-[50px]",children:e.jsx(wc,{allPartitions:t,selectedIds:s,onChange:c=>{new Set(t.map(u=>u.id)).forEach(u=>{c.has(u)!==s.has(u)&&r(u)})}})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Owner",field:"owner",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"Zone",field:"zone",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[100px]",children:e.jsx(Z,{title:"Partition ID",field:"id",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"State",field:"state",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Last Update",field:"timestamp",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"Uncompressed Rate",field:"uncompressed_rate",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"Compressed Rate",field:"compressed_rate",sortField:a,sortDirection:n,onSort:o})}),e.jsx(D,{className:"w-[100px]"})]})}),e.jsxs(Re,{children:[l.map(c=>{var d;return e.jsxs(X,{children:[e.jsx(F,{children:e.jsx(Le,{checked:s.has(c.id),onCheckedChange:()=>r(c.id),"aria-label":`Select partition ${c.id}`})}),e.jsx(F,{className:"font-medium",children:e.jsx(ce,{to:`/nodes/${c.owner_id}`,className:"hover:underline",children:c.owner_id})}),e.jsx(F,{children:e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",ba(c.zone||"")),children:c.zone||"-"})}),e.jsx(F,{children:e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium",c.corrupted?"bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200":"bg-muted"),title:c.corrupted?"Corrupted":void 0,children:c.id})}),e.jsx(F,{children:e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium",Nc(c.state)),children:((d=kc.find(u=>u.value===c.state))==null?void 0:d.label)||"Unknown"})}),e.jsx(F,{children:e.jsx("span",{title:xa(c.state_timestamp),className:"text-muted-foreground",children:ha(c.state_timestamp)})}),e.jsx(F,{children:e.jsx(nr,{currentRate:c.uncompressedRate||0,className:"text-muted-foreground inline-flex items-center"})}),e.jsx(F,{children:e.jsx(nr,{currentRate:c.compressedRate||0,className:"text-muted-foreground inline-flex items-center"})}),e.jsx(F,{children:e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(ce,{to:`/nodes/${c.owner_id}`,className:"hover:underline",children:e.jsx(q,{variant:"ghost",size:"icon",className:"h-8 w-8",title:"View instance details",children:e.jsx(Ft,{className:"h-4 w-4"})})})})})]},`${c.owner_id}-${c.id}`)}),l.length===0&&e.jsx(X,{children:e.jsx(F,{colSpan:7,className:"h-24 text-center",children:e.jsx("div",{className:"text-muted-foreground",children:"No partitions found"})})})]})]})})}const Tt=li,Rt=ci,et=i.forwardRef(({className:t,children:s,...r},a)=>e.jsxs(Fr,{ref:a,className:v("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",t),...r,children:[s,e.jsx(ri,{asChild:!0,children:e.jsx(ot,{className:"h-4 w-4 opacity-50"})})]}));et.displayName=Fr.displayName;const Ka=i.forwardRef(({className:t,...s},r)=>e.jsx(Lr,{ref:r,className:v("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(Tr,{className:"h-4 w-4"})}));Ka.displayName=Lr.displayName;const Wa=i.forwardRef(({className:t,...s},r)=>e.jsx(Pr,{ref:r,className:v("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(ot,{className:"h-4 w-4"})}));Wa.displayName=Pr.displayName;const tt=i.forwardRef(({className:t,children:s,position:r="popper",...a},n)=>e.jsx(ai,{children:e.jsxs(Dr,{ref:n,className:v("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:r,...a,children:[e.jsx(Ka,{}),e.jsx(ni,{className:v("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),e.jsx(Wa,{})]})}));tt.displayName=Dr.displayName;const Ec=i.forwardRef(({className:t,...s},r)=>e.jsx(Or,{ref:r,className:v("px-2 py-1.5 text-sm font-semibold",t),...s}));Ec.displayName=Or.displayName;const ze=i.forwardRef(({className:t,children:s,...r},a)=>e.jsxs($r,{ref:a,className:v("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[e.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(oi,{children:e.jsx(qe,{className:"h-4 w-4"})})}),e.jsx(ii,{children:s})]}));ze.displayName=$r.displayName;const Cc=i.forwardRef(({className:t,...s},r)=>e.jsx(Mr,{ref:r,className:v("-mx-1 my-1 h-px bg-muted",t),...s}));Cc.displayName=Mr.displayName;const Tc=t=>{switch(t){case 2:return"#22c55e";case 1:return"#3b82f6";case 3:return"#eab308";case 4:return"#ef4444";default:return"#6b7280"}};function Rc({partitions:t}){const s=i.useMemo(()=>{const a=new Map;return t.forEach(n=>{const o=n.state;a.set(o,(a.get(o)||0)+1)}),Array.from(a.entries()).sort((n,o)=>o[1]-n[1]).map(([n,o])=>({name:ga[n],value:o,color:Tc(n)}))},[t]),r=i.useMemo(()=>t.length,[t]);return s.length===0?null:e.jsxs("div",{className:"w-full h-[120px] relative",children:[e.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none",children:[e.jsx("div",{className:"text-xl font-bold",children:r}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Partitions"})]}),e.jsx(ct,{width:"100%",height:"100%",children:e.jsxs(Dt,{children:[e.jsx(Ot,{data:s,cx:"50%",cy:"50%",labelLine:!1,outerRadius:60,innerRadius:42,dataKey:"value",paddingAngle:1,strokeWidth:1,children:s.map(a=>e.jsx($t,{fill:a.color,stroke:"hsl(var(--background))"},`cell-${a.name}`))}),e.jsx(dt,{content:({active:a,payload:n})=>{if(!a||!n||!n[0])return null;const o=n[0].payload;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg px-3 py-2 flex items-center gap-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-sm",style:{backgroundColor:o.color}}),e.jsx("span",{className:"text-sm font-medium",children:o.name}),e.jsx("span",{className:"text-sm font-semibold",children:o.value})]})}})]})})]})}function Ac({idFilter:t,onIdFilterChange:s,stateFilter:r,onStateFilterChange:a,zoneFilter:n,onZoneFilterChange:o,ownerFilter:l,onOwnerFilterChange:c,uniqueStates:d,partitions:u}){const m=d.map(p=>({value:p,label:ga[parseInt(p)]})),f=new Set;u.forEach(p=>{p.owner_ids.forEach(g=>{const x=Es(g);x&&f.add(x)})});const y=Array.from(f).sort().map(p=>({value:p,label:p})),h=Array.from(new Set(u.map(p=>p.id.toString()))).sort((p,g)=>parseInt(p)-parseInt(g)).map(p=>({value:p,label:`Partition ${p}`}));return e.jsxs("div",{className:"flex flex-wrap gap-4",children:[e.jsx("div",{className:"flex-1 min-w-[200px]",children:e.jsx(xe,{placeholder:"Filter by owner name...",value:l,onChange:p=>c(p.target.value),className:"max-w-sm"})}),e.jsx(Fe,{options:m,selected:r,onChange:a,placeholder:"Filter by state",className:"w-[200px]"}),e.jsx(Fe,{options:y,selected:n,onChange:o,placeholder:"Filter by zone",className:"w-[200px]"}),e.jsx(Fe,{options:h,selected:t,onChange:s,placeholder:"Filter by partition ID",className:"w-[200px]"})]})}const ft=[{value:1,label:"Pending"},{value:2,label:"Active"},{value:3,label:"Inactive"},{value:4,label:"Deleted"}];function _c(){const[t,s]=i.useState(new Set),[r,a]=i.useState("id"),[n,o]=i.useState("asc"),[l,c]=i.useState([]),[d,u]=i.useState([]),[m,f]=i.useState([]),[y,N]=i.useState(""),[h,p]=i.useState(!1),[g,x]=i.useState(),[b,j]=i.useState(!1),{toast:w}=zt(),{partitions:E,error:C,isLoading:A,fetchPartitions:B,changePartitionState:z,uniqueStates:Y,uniqueZones:K}=yc({isPaused:t.size>0}),M=i.useMemo(()=>E.flatMap(I=>I.owner_ids.map(P=>({...I,owner_id:P,owner_ids:[P],zone:Es(P)}))),[E]),W=i.useCallback(I=>{a(P=>P===I?(o(U=>U==="asc"?"desc":"asc"),I):(o("asc"),I))},[]),T=i.useCallback(I=>{s(P=>{const U=new Set(P);return U.has(I)?U.delete(I):U.add(I),U})},[]),O=i.useMemo(()=>M.filter(I=>{const P=l.length===0||l.includes(I.id.toString()),U=d.length===0||d.includes(I.state.toString()),S=m.length===0||m.includes(I.zone),R=y?I.owner_id.toLowerCase().includes(y.toLowerCase()):!0;return P&&U&&S&&R}),[M,l,d,m,y]),V=i.useMemo(()=>M.filter(I=>t.has(I.id)),[M,t]),Q=i.useCallback(async()=>{var I;if(!(t.size===0||!g))try{p(!0);const P=parseInt(g,10),{success:U,total:S}=await z(V.map(R=>R.id),g);U>0&&S===U?(w({title:"State Change Success",description:`Successfully changed state for ${U} partition${U!==1?"s":""} to ${(I=ft.find(R=>R.value===P))==null?void 0:I.label}`}),await B()):U0,isLoading:A}),t.size>0&&e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.size," partition",t.size!==1?"s":""," selected"]}),e.jsxs(Tt,{value:g,onValueChange:x,children:[e.jsx(et,{className:"w-[160px]",children:e.jsx(Rt,{placeholder:"Select new state"})}),e.jsx(tt,{children:ft.map(I=>e.jsx(ze,{value:I.value.toString(),children:I.label},I.value))})]}),e.jsxs(q,{onClick:()=>j(!0),disabled:h||!g,size:"sm",variant:"outline",children:[h&&e.jsx(he,{className:"mr-2 h-4 w-4 animate-spin"}),"Change State"]})]})]})]}),e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"w-[250px]",children:e.jsx(Rc,{partitions:E})})})]})}),e.jsxs(te,{className:"space-y-6",children:[e.jsx(Ac,{idFilter:l,onIdFilterChange:c,stateFilter:d,onStateFilterChange:u,zoneFilter:m,onZoneFilterChange:f,ownerFilter:y,onOwnerFilterChange:N,uniqueStates:Y,uniqueZones:K,partitions:E}),e.jsx("div",{className:"rounded-md border bg-card",children:e.jsx(Sc,{..._})})]})]}),e.jsx(Ma,{open:b,onOpenChange:j,children:e.jsxs(_s,{children:[e.jsxs(Is,{children:[e.jsx(Ls,{children:"Confirm State Change"}),e.jsx(Ps,{children:"Are you sure you want to change the state of these partitions?"})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto",children:e.jsx("div",{className:"space-y-2",children:Array.from(new Set(V.map(I=>I.id))).map(I=>{var U,S;const P=E.find(R=>R.id===I);return P?e.jsx("div",{className:"flex items-center justify-between p-2 rounded-md bg-muted",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"font-medium",children:["Partition ",I]}),e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium",Et(P.state)),children:(U=ft.find(R=>R.value===P.state))==null?void 0:U.label}),e.jsx(Ft,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:v("inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium",Et(parseInt(g||"0",10))),children:(S=ft.find(R=>R.value===parseInt(g,10)))==null?void 0:S.label})]})},I):null})})}),e.jsxs(Fs,{children:[e.jsx(q,{variant:"outline",onClick:()=>j(!1),disabled:h,children:"Cancel"}),e.jsx(q,{onClick:Q,disabled:h,children:h?"Changing States...":"Confirm Changes"})]})]})})]})}function or(){const{ringName:t}=Nr(),s=Object.values(J).includes(t);return!t||!s?e.jsx(Ds,{}):t===J.PARTITION_INGESTER?e.jsx(_c,{}):e.jsx(hc,{ringName:t})}const pt=i.forwardRef(({className:t,children:s,...r},a)=>e.jsxs(Jr,{ref:a,className:v("relative overflow-hidden",t),...r,children:[e.jsx(gi,{className:"h-full w-full rounded-[inherit]",children:s}),e.jsx(Za,{}),e.jsx(fi,{})]}));pt.displayName=Jr.displayName;const Za=i.forwardRef(({className:t,orientation:s="vertical",...r},a)=>e.jsx(ea,{ref:a,orientation:s,className:v("flex touch-none select-none transition-colors",s==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",s==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",t),...r,children:e.jsx(hi,{className:"relative flex-1 rounded-full bg-border"})}));Za.displayName=ea.displayName;const Vt=yi,Ut=vi,mt=i.forwardRef(({className:t,align:s="center",sideOffset:r=4,...a},n)=>e.jsx(na,{ref:n,align:s,sideOffset:r,className:v("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",t),...a}));mt.displayName=na.displayName;const Os=({date:t,className:s=""})=>{const r=_r(t,{addSuffix:!0}),a=wt(t,"yyyy-MM-dd HH:mm:ss"),n=wt(new Date(t.getTime()+t.getTimezoneOffset()*6e4),"yyyy-MM-dd HH:mm:ss");return e.jsxs(Vt,{children:[e.jsx(Ut,{children:e.jsx("div",{className:`inline-block ${s}`,children:r})}),e.jsx(mt,{className:"w-[280px]",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"UTC"}),e.jsx("span",{className:"font-mono",children:n})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"Local"}),e.jsx("span",{className:"font-mono",children:a})]})]})})]})};function Ic({current:t,parent:s,files:r,folders:a}){const n=It(),[,o]=at(),l=d=>{o({path:d})},c=d=>{n(`/storage/dataobj/metadata?path=${encodeURIComponent(t+"/"+d.name)}`)};return e.jsx("div",{className:"space-y-4",children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{className:"h-12",children:[e.jsx(D,{children:"Name"}),e.jsx(D,{children:"Modified"}),e.jsx(D,{children:"Size"}),e.jsx(D,{})]})}),e.jsxs(Re,{children:[s!==t&&e.jsxs(X,{className:"h-12 cursor-pointer hover:bg-muted/50",onClick:()=>l(s||""),children:[e.jsx(F,{className:"font-medium",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("svg",{className:"w-5 h-5 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M15 19l-7-7 7-7"})}),".."]})}),e.jsx(F,{children:"-"}),e.jsx(F,{children:"-"}),e.jsx(F,{})]},"parent"),a.map(d=>e.jsxs(X,{className:"h-12 cursor-pointer hover:bg-muted/50",onClick:()=>l(t?`${t}/${d}`:d),children:[e.jsx(F,{className:"font-medium",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(Bo,{className:"mr-2 h-4 w-4"}),d]})}),e.jsx(F,{children:"-"}),e.jsx(F,{children:"-"}),e.jsx(F,{})]},d)),r.map(d=>e.jsxs(X,{className:"h-12 cursor-pointer hover:bg-muted/50",onClick:u=>{u.target.closest("a[download]")||c(d)},children:[e.jsx(F,{className:"font-medium",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx(zo,{className:"mr-2 h-4 w-4"}),d.name]})}),e.jsx(F,{children:e.jsx(Os,{date:new Date(d.lastModified)})}),e.jsx(F,{children:me(d.size)}),e.jsx(F,{children:e.jsx(q,{variant:"outline",size:"icon",asChild:!0,className:"h-8 w-8",children:e.jsx(ce,{to:d.downloadUrl,target:"_blank",download:!0,onClick:u=>u.stopPropagation(),children:e.jsx(Rr,{className:"h-4 w-4"})})})})]},d.name))]})]})})}function Fc(t){const{cluster:s}=ue(),r=i.useMemo(()=>Oe(s==null?void 0:s.members,"dataobj-explorer"),[s==null?void 0:s.members]);return Mt({queryKey:["explorer",t,r],queryFn:async()=>{if(!r)throw new Error("Node name not found");const a=await fetch(`/ui/api/v1/proxy/${r}/dataobj/api/v1/list?path=${encodeURIComponent(t)}`);if(!a.ok)throw new Error("Failed to fetch explorer data");const n=await a.json();return{...n,files:Lc(n.files).map(o=>({...o,downloadUrl:`/api/v1/proxy/${r}/dataobj/api/v1/download?file=${encodeURIComponent(t?`${t}/${o.name}`:o.name)}`}))}}})}const Lc=t=>[...t].sort((s,r)=>new Date(r.lastModified).getTime()-new Date(s.lastModified).getTime()),Pc=t=>{switch(t){case"S3":return{bg:"bg-orange-100",text:"text-orange-800",darkBg:"dark:bg-orange-900",darkText:"dark:text-orange-300"};case"GCS":return{bg:"bg-blue-100",text:"text-blue-800",darkBg:"dark:bg-blue-900",darkText:"dark:text-blue-300"};case"AZURE":return{bg:"bg-sky-100",text:"text-sky-800",darkBg:"dark:bg-sky-900",darkText:"dark:text-sky-300"};case"SWIFT":return{bg:"bg-red-100",text:"text-red-800",darkBg:"dark:bg-red-900",darkText:"dark:text-red-300"};case"COS":return{bg:"bg-purple-100",text:"text-purple-800",darkBg:"dark:bg-purple-900",darkText:"dark:text-purple-300"};case"ALIYUNOSS":return{bg:"bg-rose-100",text:"text-rose-800",darkBg:"dark:bg-rose-900",darkText:"dark:text-rose-300"};case"OCI":return{bg:"bg-red-100",text:"text-red-800",darkBg:"dark:bg-red-900",darkText:"dark:text-red-300"};case"OBS":return{bg:"bg-cyan-100",text:"text-cyan-800",darkBg:"dark:bg-cyan-900",darkText:"dark:text-cyan-300"};case"FILESYSTEM":return{bg:"bg-green-100",text:"text-green-800",darkBg:"dark:bg-green-900",darkText:"dark:text-green-300"};case"MEMORY":return{bg:"bg-yellow-100",text:"text-yellow-800",darkBg:"dark:bg-yellow-900",darkText:"dark:text-yellow-300"};default:return{bg:"bg-gray-100",text:"text-gray-800",darkBg:"dark:bg-gray-700",darkText:"dark:text-gray-300"}}};function Ya(){const[t,s]=Be.useState(""),{cluster:r}=ue(),a=i.useMemo(()=>Oe(r==null?void 0:r.members,"dataobj-explorer"),[r==null?void 0:r.members]);Be.useEffect(()=>{a&&fetch(`/ui/api/v1/proxy/${a}/dataobj/api/v1/provider`).then(d=>d.json()).then(d=>s(d.provider)).catch(console.error)},[a]);const[n]=at(),l=(n.get("path")||"").split("/").filter(Boolean),c=Pc(t);return e.jsx(ks,{children:e.jsxs(Ss,{children:[e.jsx(Nt,{children:e.jsx(kt,{asChild:!0,children:e.jsxs(ce,{to:"/storage/dataobj",className:`inline-flex items-center h-7 gap-2 px-3 py-1 text-xs font-medium ${c.bg} ${c.text} ${c.darkBg} ${c.darkText} rounded-full hover:ring-1 hover:ring-gray-300 dark:hover:ring-gray-600 transition-all duration-200`,children:[e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512",className:"w-4 h-4",fill:"currentColor",children:e.jsx("path",{d:"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"})}),t||""]})})}),l.length>0&&e.jsx(St,{}),l.map((d,u)=>{const m=l.slice(0,u+1).join("/"),f=u===l.length-1;return e.jsxs(Be.Fragment,{children:[e.jsx(Nt,{children:e.jsx(kt,{asChild:!0,children:f?e.jsx("span",{className:"text-gray-500",children:d}):e.jsx(ce,{to:`/storage/dataobj?path=${encodeURIComponent(m)}`,children:d})})}),u{navigator.clipboard.writeText(t).then(()=>{n(!0),r==null||r(),setTimeout(()=>n(!1),2e3)})};return e.jsx(q,{variant:"ghost",size:"sm",onClick:o,className:v("h-8 px-2",s),children:a?e.jsxs(e.Fragment,{children:[e.jsx(qe,{className:"h-4 w-4 mr-1"}),"Copied"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ar,{className:"h-4 w-4 mr-1"}),"Copy"]})})}const qt=({compressed:t,uncompressed:s,showVisualization:r=!1})=>{if(t===0||s===0)return e.jsx("span",{className:"dark:text-gray-200",children:"-"});const a=s/t,n=a>1;return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"font-medium whitespace-nowrap dark:text-gray-200",children:[a.toFixed(1),"x"]}),r&&n&&e.jsx("div",{className:"flex-1 h-2.5 bg-gray-100 dark:bg-gray-600 border border-gray-200 dark:border-gray-500 rounded relative",children:e.jsx("div",{className:"absolute inset-y-0 left-0 bg-blue-600 dark:bg-blue-500 rounded",style:{width:`${t/s*100}%`}})})]})},$c=t=>{switch(t){case"INT64":return"bg-blue-500/20 text-blue-700 dark:bg-blue-500/30 dark:text-blue-300 hover:bg-blue-500/30";case"BYTES":return"bg-red-500/20 text-red-700 dark:bg-red-500/30 dark:text-red-300 hover:bg-red-500/30";case"FLOAT64":return"bg-purple-500/20 text-purple-700 dark:bg-purple-500/30 dark:text-purple-300 hover:bg-purple-500/30";case"BOOL":return"bg-yellow-500/20 text-yellow-700 dark:bg-yellow-500/30 dark:text-yellow-300 hover:bg-yellow-500/30";case"STRING":return"bg-green-500/20 text-green-700 dark:bg-green-500/30 dark:text-green-300 hover:bg-green-500/30";case"TIMESTAMP":return"bg-orange-500/20 text-orange-700 dark:bg-orange-500/30 dark:text-orange-300 hover:bg-orange-500/30";default:return"bg-gray-500/20 text-gray-700 dark:bg-gray-500/30 dark:text-gray-300 hover:bg-gray-500/30"}};function Mc({metadata:t,filename:s,downloadUrl:r}){const[a,n]=i.useState(null),[o,l]=i.useState({}),c=p=>{n(a===p?null:p)},d=(p,g)=>{const x=`${p}-${g}`;l(b=>({...b,[x]:!b[x]}))},u=t.sections.reduce((p,g)=>p+g.totalCompressedSize,0),m=t.sections.reduce((p,g)=>p+g.totalUncompressedSize,0),f=t.sections.filter(p=>p.type==="SECTION_TYPE_STREAMS"),y=t.sections.filter(p=>p.type==="SECTION_TYPE_LOGS"),N=f==null?void 0:f.reduce((p,g)=>p+(g.columns[0].rows_count||0),0),h=y==null?void 0:y.reduce((p,g)=>p+(g.columns[0].rows_count||0),0);return e.jsxs(ee,{className:"w-full",children:[e.jsx(Bc,{filename:s,downloadUrl:r,lastModified:t.lastModified}),e.jsxs(te,{className:"space-y-8",children:[e.jsx(zc,{totalCompressed:u,totalUncompressed:m,sections:t.sections,streamCount:N,logCount:h}),e.jsx(Vc,{sections:t.sections,expandedSectionIndex:a,expandedColumns:o,onToggleSection:c,onToggleColumn:d})]})]})}function Bc({filename:t,downloadUrl:s,lastModified:r}){return e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(ae,{className:"text-2xl font-semibold tracking-tight",children:"Thor Dataobj File"}),e.jsx(q,{asChild:!0,variant:"outline",children:e.jsxs(ce,{to:s,target:"_blank",download:!0,children:[e.jsx(Rr,{className:"h-4 w-4 mr-2"}),"Download"]})})]}),e.jsx(Qe,{className:"space-y-2",children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-sm text-foreground",children:t}),e.jsx($s,{text:t})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx("span",{children:"Last Modified:"}),e.jsx(Os,{date:new Date(r)})]})]})})})]})}function zc({totalCompressed:t,totalUncompressed:s,sections:r,streamCount:a,logCount:n}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[e.jsxs("div",{className:"rounded-lg bg-muted/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Compression"}),e.jsx(qt,{compressed:t,uncompressed:s,showVisualization:!0}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-2",children:[me(t)," → ",me(s)]})]}),e.jsxs("div",{className:"rounded-lg bg-muted/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Sections"}),e.jsx("div",{className:"font-medium text-lg",children:r.length}),e.jsx("div",{className:"text-xs text-muted-foreground mt-2",children:r.map(o=>o.type).join(", ")})]}),a&&e.jsxs("div",{className:"rounded-lg bg-muted/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Stream Count"}),e.jsx("div",{className:"font-medium text-lg",children:a.toLocaleString()})]}),n&&e.jsxs("div",{className:"rounded-lg bg-muted/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Log Count"}),e.jsx("div",{className:"font-medium text-lg",children:n.toLocaleString()})]})]})}function Vc({sections:t,expandedSectionIndex:s,expandedColumns:r,onToggleSection:a,onToggleColumn:n}){return e.jsx("div",{className:"divide-y divide-border",children:t.map((o,l)=>e.jsx(Uc,{section:o,sectionIndex:l,isExpanded:s===l,expandedColumns:r,onToggle:()=>a(l),onToggleColumn:c=>n(l,c)},l))})}function Uc({section:t,sectionIndex:s,isExpanded:r,expandedColumns:a,onToggle:n,onToggleColumn:o}){return e.jsxs("div",{className:"py-4",children:[e.jsxs("button",{className:"w-full flex justify-between items-center py-4 px-6 rounded-lg hover:bg-accent/50 transition-colors",onClick:n,children:[e.jsxs("h3",{className:"text-lg font-semibold",children:["Section #",s+1,": ",t.type]}),e.jsx("svg",{className:`w-5 h-5 transform transition-transform duration-300 ${r?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 9l-7 7-7-7"})})]}),r&&e.jsxs("div",{className:"mt-6 px-6",children:[e.jsx(qc,{section:t}),e.jsx(Gc,{columns:t.columns,sectionIndex:s,expandedColumns:a,onToggleColumn:o})]})]})}function qc({section:t}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-8",children:[e.jsxs("div",{className:"rounded-lg bg-secondary/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Compression"}),e.jsx(qt,{compressed:t.totalCompressedSize,uncompressed:t.totalUncompressedSize,showVisualization:!0}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-2",children:[me(t.totalCompressedSize)," →"," ",me(t.totalUncompressedSize)]})]}),e.jsxs("div",{className:"rounded-lg bg-secondary/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Column Count"}),e.jsx("div",{className:"font-medium text-lg",children:t.columnCount})]}),e.jsxs("div",{className:"rounded-lg bg-secondary/50 p-6 shadow-sm",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Type"}),e.jsx("div",{className:"font-medium text-lg flex items-center gap-2",children:e.jsx(be,{variant:"outline",className:"font-mono",children:t.type})})]})]})}function Gc({columns:t,sectionIndex:s,expandedColumns:r,onToggleColumn:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("h4",{className:"text-lg font-medium",children:["Columns (",t.length,")"]}),e.jsx("div",{className:"space-y-4",children:t.map((n,o)=>e.jsx(Hc,{column:n,isExpanded:r[`${s}-${o}`],onToggle:()=>a(o)},o))})]})}function Hc({column:t,isExpanded:s,onToggle:r}){return e.jsxs(ee,{className:"bg-card/50",children:[e.jsxs("button",{className:"w-full flex justify-between items-center p-6 hover:bg-accent/50 transition-colors rounded-t-lg",onClick:r,children:[e.jsxs("div",{children:[e.jsx("h5",{className:"font-medium text-lg",children:t.name?`${t.name} (${t.type})`:t.type}),e.jsx("div",{className:"text-sm text-muted-foreground mt-1 flex items-center gap-2",children:e.jsx(be,{variant:"secondary",className:v("font-mono text-xs",$c(t.value_type)),children:t.value_type})})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:["Compression:",e.jsx(be,{variant:"outline",className:"font-mono",children:t.compression||"NONE"})]}),e.jsx("svg",{className:`w-4 h-4 transform transition-transform ${s?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 9l-7 7-7-7"})})]})]}),s&&e.jsxs(te,{className:"pt-6",children:[e.jsx(Kc,{column:t}),t.pages.length>0&&e.jsx(Wc,{pages:t.pages})]})]})}function Kc({column:t}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-6 mb-8",children:[e.jsxs("div",{className:"rounded-lg bg-muted p-6",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2 flex items-center gap-2",children:e.jsx(be,{variant:"outline",className:"font-mono",children:t.compression||"NONE"})}),e.jsx("div",{className:"font-medium",children:e.jsx(qt,{compressed:t.compressed_size,uncompressed:t.uncompressed_size})}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-2",children:[me(t.compressed_size)," →"," ",me(t.uncompressed_size)]})]}),e.jsxs("div",{className:"rounded-lg bg-muted p-6",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Rows"}),e.jsx("div",{className:"font-medium text-lg",children:t.rows_count.toLocaleString()})]}),e.jsxs("div",{className:"rounded-lg bg-muted p-6",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Values Count"}),e.jsx("div",{className:"font-medium text-lg",children:t.values_count.toLocaleString()})]}),e.jsxs("div",{className:"rounded-lg bg-muted p-6",children:[e.jsx("div",{className:"text-sm text-muted-foreground mb-2",children:"Offset"}),e.jsx("div",{className:"font-medium text-lg",children:me(t.metadata_offset)})]})]})}function Wc({pages:t}){return e.jsxs("div",{className:"mt-8",children:[e.jsxs("h6",{className:"text-base font-medium mb-4",children:["Pages (",t.length,")"]}),e.jsx("div",{className:"rounded-lg border border-border overflow-hidden bg-background",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-secondary/50 border-b border-border",children:[e.jsx("th",{className:"text-left p-4 font-medium text-muted-foreground",children:"#"}),e.jsx("th",{className:"text-left p-4 font-medium text-muted-foreground",children:"Rows"}),e.jsx("th",{className:"text-left p-4 font-medium text-muted-foreground",children:"Values"}),e.jsx("th",{className:"text-left p-4 font-medium text-muted-foreground",children:"Encoding"}),e.jsx("th",{className:"text-left p-4 font-medium text-muted-foreground",children:"Compression"})]})}),e.jsx("tbody",{children:t.map((s,r)=>e.jsxs("tr",{className:"border-t border-border hover:bg-accent/50 transition-colors",children:[e.jsx("td",{className:"p-4",children:r+1}),e.jsx("td",{className:"p-4",children:s.rows_count.toLocaleString()}),e.jsx("td",{className:"p-4",children:s.values_count.toLocaleString()}),e.jsx("td",{className:"p-4",children:e.jsx(be,{variant:"outline",className:"font-mono",children:s.encoding})}),e.jsx("td",{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(qt,{compressed:s.compressed_size,uncompressed:s.uncompressed_size}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",me(s.compressed_size)," →"," ",me(s.uncompressed_size),")"]})]})})]},r))})]})})]})}function Zc(t){const{cluster:s}=ue(),r=i.useMemo(()=>Oe(s==null?void 0:s.members,"dataobj-explorer"),[s==null?void 0:s.members]),a=i.useMemo(()=>`/api/v1/proxy/${r}/dataobj/api/v1/download?file=${encodeURIComponent(t||"")}`,[t,r]);return{...Mt({queryKey:["file-metadata",t,r],queryFn:async()=>{if(!t)throw new Error("No file path provided");if(!r)throw new Error("Node name not found");const o=await fetch(`/ui/api/v1/proxy/${r}/dataobj/api/v1/inspect?file=${encodeURIComponent(t)}`);if(!o.ok)throw new Error("Failed to fetch file metadata");return o.json()},enabled:!!t&&!!r}),downloadUrl:a}}function Yc(){const[t]=at(),s=t.get("path")||"",{data:r,downloadUrl:a,isLoading:n,error:o}=Zc(s);return e.jsx(ke,{children:e.jsxs("div",{className:"flex h-full flex-col space-y-6",children:[e.jsx(Ya,{}),e.jsx(pt,{className:"h-full",children:n?e.jsx("div",{className:"flex items-center justify-center p-8",children:e.jsx(he,{className:"h-16 w-16 animate-spin"})}):o?e.jsxs(Ge,{variant:"destructive",children:[e.jsx(He,{children:"Error"}),e.jsx(Ke,{children:o.message})]}):r&&s?e.jsx(Mc,{metadata:r,filename:s,downloadUrl:a}):null})]})})}const Xc=["New","Starting","Running","Stopping","Terminated","Failed"],Qc=({nameFilter:t,targetFilter:s,selectedStates:r,onNameFilterChange:a,onTargetFilterChange:n,onStatesChange:o,onRefresh:l,availableTargets:c})=>{const d=Xc.map(m=>({label:m,value:m})),u=m=>{o(m)};return e.jsxs("div",{className:"grid grid-cols-[auto_1fr_auto] gap-x-4 gap-y-2",children:[e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Node filters"}),e.jsx(xe,{value:t,onChange:m=>a(m.target.value),placeholder:"Filter by node name...",className:"w-[300px]"}),e.jsx(Fe,{options:c.map(m=>({value:m,label:m})),selected:s,onChange:n,placeholder:"All Targets",className:"w-[300px]"})]})}),e.jsxs("div",{className:"space-y-1.5 self-end",children:[e.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Service states"}),e.jsx(Fe,{options:d,selected:r,onChange:u,placeholder:"Filter nodes by service states...",className:"w-full min-w-[300px]"})]}),e.jsx("div",{className:"self-end",children:e.jsx(q,{onClick:l,size:"sm",variant:"outline",className:"h-9 w-9",children:e.jsx(Vo,{className:"h-4 w-4"})})})]})},Jc=({services:t,error:s})=>{const r=()=>{if(s)return{className:"bg-red-500 dark:bg-red-500/80 hover:bg-red-600 dark:hover:bg-red-500 text-white border-transparent",tooltip:`Error: ${s}`,status:"error"};const o=t.every(c=>c.status==="Running"),l=t.every(c=>c.status==="Starting"||c.status==="Running");return o?{className:"bg-green-500 dark:bg-green-500/80 hover:bg-green-600 dark:hover:bg-green-500 text-white border-transparent",status:"healthy"}:l?{className:"bg-yellow-500 dark:bg-yellow-500/80 hover:bg-yellow-600 dark:hover:bg-yellow-500 text-white border-transparent",status:"pending"}:{className:"bg-red-500 dark:bg-red-500/80 hover:bg-red-600 dark:hover:bg-red-500 text-white border-transparent",status:"unhealthy"}},a=o=>{switch(o){case"Running":return"text-green-600 dark:text-green-400";case"Starting":return"text-yellow-600 dark:text-yellow-400";case"Failed":return"text-red-600 dark:text-red-400";case"Terminated":return"text-gray-600 dark:text-gray-400";case"Stopping":return"text-orange-600 dark:text-orange-400";case"New":return"text-blue-600 dark:text-blue-400";default:return"text-gray-600 dark:text-gray-400"}},{className:n}=r();return e.jsxs(Vt,{children:[e.jsx(Ut,{children:e.jsx("button",{type:"button",children:e.jsxs(be,{className:n,children:[t.length," services"]})})}),e.jsx(mt,{className:"w-80 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",sideOffset:5,children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"font-medium border-b border-gray-200 dark:border-gray-700 pb-1",children:"Service Status"}),e.jsx("div",{className:"space-y-1",children:t.map((o,l)=>e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"mr-4 font-medium",children:o.service}),e.jsx("span",{className:`${a(o.status)}`,children:o.status})]},l))}),s&&e.jsx("div",{className:"mt-2 pt-2 border-t border-gray-200 dark:border-gray-700 text-red-600 dark:text-red-400",children:s})]})})]})},Ms=fo,st=ho,rt=xo,Ue=i.forwardRef(({className:t,sideOffset:s=4,...r},a)=>e.jsx(go,{children:e.jsx(br,{ref:a,sideOffset:s,className:v("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",t),...r})}));Ue.displayName=br.displayName;function ed({isReady:t,message:s,className:r}){return e.jsx(Ms,{children:e.jsxs(st,{children:[e.jsx(rt,{asChild:!0,children:e.jsx("div",{className:v("flex items-center gap-2",r),children:e.jsx("div",{className:v("h-2.5 w-2.5 rounded-full",t?"bg-green-500":"bg-red-500")})})}),e.jsx(Ue,{children:e.jsx("p",{className:"text-sm",children:s||(t?"Ready":"Not Ready")})})]})})}const td=t=>{try{const s=cs(t);return Ze(s)?_r(s,{addSuffix:!0}):"Invalid date"}catch(s){return console.warn("Error parsing date:",t,s),"Invalid date"}},sd=({name:t,node:s,onNavigate:r})=>{var a,n;return e.jsxs(X,{className:"hover:bg-muted/50 cursor-pointer",onClick:()=>r(t),children:[e.jsx(F,{className:"font-medium",children:t}),e.jsx(F,{children:s.target}),e.jsx(F,{className:"font-mono text-sm",children:s.build.version}),e.jsx(F,{children:td(s.build.buildDate)}),e.jsx(F,{children:e.jsx(Jc,{services:s.services,error:s.error})}),e.jsx(F,{children:e.jsx(ed,{isReady:(a=s.ready)==null?void 0:a.isReady,message:(n=s.ready)==null?void 0:n.message})}),e.jsx(F,{children:e.jsxs(q,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:o=>{o.stopPropagation(),r(t)},children:[e.jsx(Ft,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"View details"})]})})]},t)},rd=({nodes:t,sortField:s,sortDirection:r,onSort:a})=>{const n=It(),o=(d,u)=>{const m=cs(d),f=cs(u);return!Ze(m)&&!Ze(f)?0:Ze(m)?Ze(f)?m.getTime()-f.getTime():-1:1},l=Object.entries(t).sort(([d,u],[m,f])=>{let y=0;switch(s){case"name":y=d.localeCompare(m);break;case"target":y=u.target.localeCompare(f.target);break;case"version":y=u.build.version.localeCompare(f.build.version);break;case"buildDate":y=o(u.build.buildDate,f.build.buildDate);break}return r==="asc"?y:-y}),c=d=>{n(`/nodes/${d}`)};return e.jsx("div",{className:"rounded-md border bg-card",children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{className:"hover:bg-transparent",children:[e.jsx(D,{className:"w-[300px]",children:e.jsx(Z,{title:"Node Name",field:"name",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Target",field:"target",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Version",field:"version",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Build Date",field:"buildDate",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[150px]",children:"Status"}),e.jsx(D,{className:"w-[50px]",children:"Ready"}),e.jsx(D,{className:"w-[100px]",children:"Actions"})]})}),e.jsxs(Re,{children:[l.map(([d,u])=>e.jsx(sd,{name:d,node:u,onNavigate:c},d)),l.length===0&&e.jsx(X,{children:e.jsx(F,{colSpan:7,className:"h-24 text-center",children:e.jsx("div",{className:"text-muted-foreground",children:"No nodes found"})})})]})]})})},ir=t=>`hsl(var(--chart-${t%6+1}))`;function ad({nodes:t}){const s=i.useMemo(()=>{const a=new Map;return Object.values(t).forEach(n=>{const o=n.target||"unknown";a.set(o,(a.get(o)||0)+1)}),Array.from(a.entries()).sort((n,o)=>o[1]-n[1]).map(([n,o],l)=>({name:n,value:o,color:ir(l)}))},[t]),r=i.useMemo(()=>Object.keys(t).length,[t]);return s.length===0?null:e.jsxs("div",{className:"w-full h-[120px] relative",children:[e.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none",children:[e.jsx("div",{className:"text-xl font-bold",children:r}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Nodes"})]}),e.jsx(ct,{width:"100%",height:"100%",children:e.jsxs(Dt,{children:[e.jsx(Ot,{data:s,cx:"50%",cy:"50%",labelLine:!1,outerRadius:60,innerRadius:42,fill:"hsl(var(--chart-1))",dataKey:"value",paddingAngle:1,strokeWidth:1,children:s.map((a,n)=>e.jsx($t,{fill:ir(n),stroke:"hsl(var(--background))"},`cell-${a.name}`))}),e.jsx(dt,{content:({active:a,payload:n})=>{if(!a||!n||!n[0])return null;const o=n[0].payload;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg px-3 py-2 flex items-center gap-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-sm",style:{backgroundColor:o.color}}),e.jsx("span",{className:"text-sm font-medium",children:o.name}),e.jsx("span",{className:"text-sm font-semibold",children:o.value})]})}})]})})]})}class Xa extends Be.Component{constructor(s){super(s),this.state={hasError:!1}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}render(){var s;return this.state.hasError?e.jsx("div",{className:"min-h-screen flex items-center justify-center p-4",children:e.jsxs("div",{className:"bg-destructive/10 p-6 rounded-lg max-w-2xl w-full",children:[e.jsx("h2",{className:"text-xl font-semibold text-destructive mb-4",children:"Something went wrong"}),e.jsx("div",{className:"bg-background/50 p-4 rounded-md",children:e.jsx("pre",{className:"text-sm overflow-auto",children:(s=this.state.error)==null?void 0:s.message})}),e.jsx("button",{className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",onClick:()=>window.location.reload(),children:"Reload Page"})]})}):this.props.children}}const nd=()=>{const{cluster:t,error:s,refresh:r,isLoading:a}=ue(),[n,o]=i.useState(""),[l,c]=i.useState([]),[d,u]=i.useState(["New","Starting","Running","Stopping","Terminated","Failed"]),[m,f]=i.useState("name"),[y,N]=i.useState("asc"),h=x=>{x===m?N(y==="asc"?"desc":"asc"):(f(x),N("asc"))},p=()=>t?Object.entries(t.members).reduce((x,[b,j])=>{const w=b.toLowerCase().includes(n.toLowerCase()),E=!l||l.length===0||l.includes(j.target),C=d.length===0||j.services&&Array.isArray(j.services)&&j.services.some(A=>(A==null?void 0:A.status)&&d.includes(A.status));return w&&E&&C&&(x[b]=j),x},{}):{},g=()=>{if(!t)return[];const x=new Set;return Object.values(t.members).forEach(b=>{b.target&&x.add(b.target)}),Array.from(x).sort()};return e.jsx(ke,{children:e.jsxs(ee,{className:"shadow-sm",children:[e.jsx(se,{children:e.jsxs("div",{className:"grid grid-cols-[1fr_auto] gap-8",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-3xl font-semibold tracking-tight",children:"Nodes"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"View and manage Loki nodes in your cluster with their current status and configuration"})]}),e.jsx(Qc,{nameFilter:n,targetFilter:l,selectedStates:d,onNameFilterChange:o,onTargetFilterChange:c,onStatesChange:u,onRefresh:r,availableTargets:g(),isLoading:a})]}),e.jsx("div",{className:"flex items-center",children:e.jsx("div",{className:"w-[250px]",children:e.jsx(ad,{nodes:p()})})})]})}),e.jsx(te,{children:e.jsxs("div",{className:"space-y-4",children:[s&&e.jsxs(Ge,{variant:"destructive",children:[e.jsx(nt,{className:"h-4 w-4"}),e.jsx(He,{children:"Error"}),e.jsx(Ke,{children:s})]}),a&&e.jsxs("div",{className:"flex items-center justify-center py-4",children:[e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent"}),e.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading..."})]}),!a&&!s&&e.jsx(rd,{nodes:p(),sortField:m,sortDirection:y,onSort:h})]})})]})})};function lr(){return e.jsx(Xa,{children:e.jsx(nd,{})})}const od=xi,Qa=i.forwardRef(({className:t,...s},r)=>e.jsx(ta,{ref:r,className:v("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t),...s}));Qa.displayName=ta.displayName;const yt=i.forwardRef(({className:t,...s},r)=>e.jsx(sa,{ref:r,className:v("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",t),...s}));yt.displayName=sa.displayName;const vt=i.forwardRef(({className:t,...s},r)=>e.jsx(ra,{ref:r,className:v("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...s}));vt.displayName=ra.displayName;var id=Object.create,Gt=Object.defineProperty,ld=Object.defineProperties,cd=Object.getOwnPropertyDescriptor,dd=Object.getOwnPropertyDescriptors,Ja=Object.getOwnPropertyNames,At=Object.getOwnPropertySymbols,ud=Object.getPrototypeOf,Bs=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable,cr=(t,s,r)=>s in t?Gt(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r,ge=(t,s)=>{for(var r in s||(s={}))Bs.call(s,r)&&cr(t,r,s[r]);if(At)for(var r of At(s))en.call(s,r)&&cr(t,r,s[r]);return t},Ht=(t,s)=>ld(t,dd(s)),tn=(t,s)=>{var r={};for(var a in t)Bs.call(t,a)&&s.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&At)for(var a of At(t))s.indexOf(a)<0&&en.call(t,a)&&(r[a]=t[a]);return r},pd=(t,s)=>function(){return s||(0,t[Ja(t)[0]])((s={exports:{}}).exports,s),s.exports},md=(t,s)=>{for(var r in s)Gt(t,r,{get:s[r],enumerable:!0})},gd=(t,s,r,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of Ja(s))!Bs.call(t,n)&&n!==r&&Gt(t,n,{get:()=>s[n],enumerable:!(a=cd(s,n))||a.enumerable});return t},fd=(t,s,r)=>(r=t!=null?id(ud(t)):{},gd(!t||!t.__esModule?Gt(r,"default",{value:t,enumerable:!0}):r,t)),hd=pd({"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(t,s){var r=function(){var a=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,o={},l={util:{encode:function h(p){return p instanceof c?new c(p.type,h(p.content),p.alias):Array.isArray(p)?p.map(h):p.replace(/&/g,"&").replace(/"+b.content+""};function d(h,p,g,x){h.lastIndex=p;var b=h.exec(g);if(b&&x&&b[1]){var j=b[1].length;b.index+=j,b[0]=b[0].slice(j)}return b}function u(h,p,g,x,b,j){for(var w in g)if(!(!g.hasOwnProperty(w)||!g[w])){var E=g[w];E=Array.isArray(E)?E:[E];for(var C=0;C=j.reach);O+=T.value.length,T=T.next){var V=T.value;if(p.length>h.length)return;if(!(V instanceof c)){var Q=1,_;if(Y){if(_=d(W,O,h,z),!_||_.index>=h.length)break;var S=_.index,I=_.index+_[0].length,P=O;for(P+=T.value.length;S>=P;)T=T.next,P+=T.value.length;if(P-=T.value.length,O=P,T.value instanceof c)continue;for(var U=T;U!==p.tail&&(Pj.reach&&(j.reach=G);var H=T.prev;$&&(H=f(p,H,$),O+=$.length),y(p,H,Q);var ne=new c(w,B?l.tokenize(R,B):R,K,R);if(T=f(p,H,ne),L&&f(p,T,L),Q>1){var de={cause:w+","+C,reach:G};u(h,p,g,T.prev,O,de),j&&de.reach>j.reach&&(j.reach=de.reach)}}}}}}function m(){var h={value:null,prev:null,next:null},p={value:null,prev:h,next:null};h.next=p,this.head=h,this.tail=p,this.length=0}function f(h,p,g){var x=p.next,b={value:g,prev:p,next:x};return p.next=b,x.prev=b,h.length++,b}function y(h,p,g){for(var x=p.next,b=0;b/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},k.languages.markup.tag.inside["attr-value"].inside.entity=k.languages.markup.entity,k.languages.markup.doctype.inside["internal-subset"].inside=k.languages.markup,k.hooks.add("wrap",function(t){t.type==="entity"&&(t.attributes.title=t.content.replace(/&/,"&"))}),Object.defineProperty(k.languages.markup.tag,"addInlined",{value:function(t,a){var r={},r=(r["language-"+a]={pattern:/(^$)/i,lookbehind:!0,inside:k.languages[a]},r.cdata=/^$/i,{"included-cdata":{pattern://i,inside:r}}),a=(r["language-"+a]={pattern:/[\s\S]+/,inside:k.languages[a]},{});a[t]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:r},k.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(k.languages.markup.tag,"addAttribute",{value:function(t,s){k.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+t+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[s,"language-"+s],inside:k.languages[s]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),k.languages.html=k.languages.markup,k.languages.mathml=k.languages.markup,k.languages.svg=k.languages.markup,k.languages.xml=k.languages.extend("markup",{}),k.languages.ssml=k.languages.xml,k.languages.atom=k.languages.xml,k.languages.rss=k.languages.xml,function(t){var s={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},r=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,a="(?:[^\\\\-]|"+r.source+")",a=RegExp(a+"-"+a),n={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};t.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:a,inside:{escape:r,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":s,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:r}},"special-escape":s,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":n}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:r,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},k.languages.javascript=k.languages.extend("clike",{"class-name":[k.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),k.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,k.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:k.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:k.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:k.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:k.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:k.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),k.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:k.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),k.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),k.languages.markup&&(k.languages.markup.tag.addInlined("script","javascript"),k.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),k.languages.js=k.languages.javascript,k.languages.actionscript=k.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),k.languages.actionscript["class-name"].alias="function",delete k.languages.actionscript.parameter,delete k.languages.actionscript["literal-property"],k.languages.markup&&k.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:k.languages.markup}}),function(t){var s=/#(?!\{).+/,r={pattern:/#\{[^}]+\}/,alias:"variable"};t.languages.coffeescript=t.languages.extend("javascript",{comment:s,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:r}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),t.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:s,interpolation:r}}}),t.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:t.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:r}}]}),t.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete t.languages.coffeescript["template-string"],t.languages.coffee=t.languages.coffeescript}(k),function(t){var s=t.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(s,"addSupport",{value:function(r,a){(r=typeof r=="string"?[r]:r).forEach(function(n){var o=function(f){f.inside||(f.inside={}),f.inside.rest=a},l="doc-comment";if(c=t.languages[n]){var c,d=c[l];if((d=d||(c=t.languages.insertBefore(n,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[l])instanceof RegExp&&(d=c[l]={pattern:d}),Array.isArray(d))for(var u=0,m=d.length;u|\+|~|\|\|/,punctuation:/[(),]/}},t.languages.css.atrule.inside["selector-function-argument"].inside=s,t.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),r={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};t.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:s,number:r,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:s,number:r})}(k),function(t){var s=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,a="(?:"+r.source+"(?:[ ]+"+s.source+")?|"+s.source+"(?:[ ]+"+r.source+")?)",n=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source}),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function l(c,d){d=(d||"").replace(/m/g,"")+"m";var u=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,function(){return a}).replace(/<>/g,function(){return c});return RegExp(u,d)}t.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,function(){return a})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,function(){return a}).replace(/<>/g,function(){return"(?:"+n+"|"+o+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:l(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:l(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:l(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:l(o),lookbehind:!0,greedy:!0},number:{pattern:l(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:r,important:s,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},t.languages.yml=t.languages.yaml}(k),function(t){var s=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function r(u){return u=u.replace(//g,function(){return s}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+u+")")}var a=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,n=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return a}),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,l=(t.languages.markdown=t.languages.extend("markup",{}),t.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:t.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+n+o+"(?:"+n+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+n+o+")(?:"+n+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(a),inside:t.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+n+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+n+"$"),inside:{"table-header":{pattern:RegExp(a),alias:"important",inside:t.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:r(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:r(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:r(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:r(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(u){["url","bold","italic","strike","code-snippet"].forEach(function(m){u!==m&&(t.languages.markdown[u].inside.content.inside[m]=t.languages.markdown[m])})}),t.hooks.add("after-tokenize",function(u){u.language!=="markdown"&&u.language!=="md"||function m(f){if(f&&typeof f!="string")for(var y=0,N=f.length;y",quot:'"'},d=String.fromCodePoint||String.fromCharCode;t.languages.md=t.languages.markdown}(k),k.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:k.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},k.hooks.add("after-tokenize",function(t){if(t.language==="graphql")for(var s=t.tokens.filter(function(h){return typeof h!="string"&&h.type!=="comment"&&h.type!=="scalar"}),r=0;r?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(t){var s=t.languages.javascript["template-string"],r=s.pattern.source,a=s.inside.interpolation,n=a.inside["interpolation-punctuation"],o=a.pattern.source;function l(f,y){if(t.languages[f])return{pattern:RegExp("((?:"+y+")\\s*)"+r),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:f}}}}function c(f,y,N){return f={code:f,grammar:y,language:N},t.hooks.run("before-tokenize",f),f.tokens=t.tokenize(f.code,f.grammar),t.hooks.run("after-tokenize",f),f.tokens}function d(f,y,N){var g=t.tokenize(f,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),h=0,p={},g=c(g.map(function(b){if(typeof b=="string")return b;for(var j,w,b=b.content;f.indexOf((w=h++,j="___"+N.toUpperCase()+"_"+w+"___"))!==-1;);return p[j]=b,j}).join(""),y,N),x=Object.keys(p);return h=0,function b(j){for(var w=0;w=x.length)return;var E,C,A,B,z,Y,K,M=j[w];typeof M=="string"||typeof M.content=="string"?(E=x[h],(K=(Y=typeof M=="string"?M:M.content).indexOf(E))!==-1&&(++h,C=Y.substring(0,K),z=p[E],A=void 0,(B={})["interpolation-punctuation"]=n,(B=t.tokenize(z,B)).length===3&&((A=[1,1]).push.apply(A,c(B[1],t.languages.javascript,"javascript")),B.splice.apply(B,A)),A=new t.Token("interpolation",B,a.alias,z),B=Y.substring(K+E.length),z=[],C&&z.push(C),z.push(A),B&&(b(Y=[B]),z.push.apply(z,Y)),typeof M=="string"?(j.splice.apply(j,[w,1].concat(z)),w+=z.length-1):M.content=z)):(K=M.content,Array.isArray(K)?b(K):b([K]))}}(g),new t.Token(N,g,"language-"+N,f)}t.languages.javascript["template-string"]=[l("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),l("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),l("svg",/\bsvg/.source),l("markdown",/\b(?:markdown|md)/.source),l("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),l("sql",/\bsql/.source),s].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function m(f){return typeof f=="string"?f:Array.isArray(f)?f.map(m).join(""):m(f.content)}t.hooks.add("after-tokenize",function(f){f.language in u&&function y(N){for(var h=0,p=N.length;h]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),t.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete t.languages.typescript.parameter,delete t.languages.typescript["literal-property"];var s=t.languages.extend("typescript",{});delete s["class-name"],t.languages.typescript["class-name"].inside=s,t.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),t.languages.ts=t.languages.typescript}(k),function(t){var s=t.languages.javascript,r=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,a="(@(?:arg|argument|param|property)\\s+(?:"+r+"\\s+)?)";t.languages.jsdoc=t.languages.extend("javadoclike",{parameter:{pattern:RegExp(a+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),t.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(a+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:s,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(//g,function(){return r})),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+r),lookbehind:!0,inside:{string:s.string,number:s.number,boolean:s.boolean,keyword:t.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:s,alias:"language-javascript"}}}}),t.languages.javadoclike.addSupport("javascript",t.languages.jsdoc)}(k),function(t){t.languages.flow=t.languages.extend("javascript",{}),t.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),t.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete t.languages.flow.parameter,t.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(t.languages.flow.keyword)||(t.languages.flow.keyword=[t.languages.flow.keyword]),t.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(k),k.languages.n4js=k.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),k.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),k.languages.n4jsd=k.languages.n4js,function(t){function s(l,c){return RegExp(l.replace(//g,function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source}),c)}t.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+t.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),t.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+t.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),t.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),t.languages.insertBefore("javascript","keyword",{imports:{pattern:s(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:t.languages.javascript},exports:{pattern:s(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:t.languages.javascript}}),t.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),t.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),t.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:s(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var r=["function","function-variable","method","method-variable","property-access"],a=0;a*\.{3}(?:[^{}]|)*\})/.source;function o(d,u){return d=d.replace(//g,function(){return r}).replace(//g,function(){return a}).replace(//g,function(){return n}),RegExp(d,u)}n=o(n).source,t.languages.jsx=t.languages.extend("markup",s),t.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),t.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,t.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,t.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,t.languages.jsx.tag.inside.comment=s.comment,t.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:t.languages.jsx}},t.languages.jsx.tag),t.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:t.languages.jsx}}},t.languages.jsx.tag);function l(d){for(var u=[],m=0;m"&&u.push({tagName:c(f.content[0].content[1]),openedBraces:0}):0]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},k.languages.swift["string-literal"].forEach(function(t){t.inside.interpolation.inside=k.languages.swift}),function(t){t.languages.kotlin=t.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete t.languages.kotlin["class-name"];var s={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:t.languages.kotlin}};t.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:s},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:s},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete t.languages.kotlin.string,t.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),t.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),t.languages.kt=t.languages.kotlin,t.languages.kts=t.languages.kotlin}(k),k.languages.c=k.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),k.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),k.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},k.languages.c.string],char:k.languages.c.char,comment:k.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:k.languages.c}}}}),k.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete k.languages.c.boolean,k.languages.objectivec=k.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete k.languages.objectivec["class-name"],k.languages.objc=k.languages.objectivec,k.languages.reason=k.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),k.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete k.languages.reason.function,function(t){for(var s=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|)*\*\//.source,r=0;r<2;r++)s=s.replace(//g,function(){return s});s=s.replace(//g,function(){return/[^\s\S]/.source}),t.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+s),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},t.languages.rust["closure-params"].inside.rest=t.languages.rust,t.languages.rust.attribute.inside.string=t.languages.rust.string}(k),k.languages.go=k.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),k.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete k.languages.go["class-name"],function(t){var s=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,r=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,function(){return s.source});t.languages.cpp=t.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,function(){return s.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:s,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),t.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,function(){return r})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),t.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t.languages.cpp}}}}),t.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),t.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:t.languages.extend("cpp",{})}}),t.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},t.languages.cpp["base-clause"])}(k),k.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},k.languages.python["string-interpolation"].inside.interpolation.inside.rest=k.languages.python,k.languages.py=k.languages.python,k.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},k.languages.webmanifest=k.languages.json;var xd={};md(xd,{dracula:()=>yd,duotoneDark:()=>jd,duotoneLight:()=>Nd,github:()=>Sd,gruvboxMaterialDark:()=>eu,gruvboxMaterialLight:()=>su,jettwaveDark:()=>Hd,jettwaveLight:()=>Wd,nightOwl:()=>Cd,nightOwlLight:()=>Rd,oceanicNext:()=>_d,okaidia:()=>Fd,oneDark:()=>Yd,oneLight:()=>Qd,palenight:()=>Pd,shadesOfPurple:()=>Od,synthwave84:()=>Md,ultramin:()=>zd,vsDark:()=>sn,vsLight:()=>qd});var bd={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},yd=bd,vd={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},jd=vd,wd={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},Nd=wd,kd={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},Sd=kd,Ed={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},Cd=Ed,Td={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},Rd=Td,ie={char:"#D8DEE9",comment:"#999999",keyword:"#c5a5c5",primitive:"#5a9bcf",string:"#8dc891",variable:"#d7deea",boolean:"#ff8b50",punctuation:"#5FB3B3",tag:"#fc929e",function:"#79b6f2",className:"#FAC863",method:"#6699CC",operator:"#fc929e"},Ad={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:ie.keyword}},{types:["attr-value"],style:{color:ie.string}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:ie.comment}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:ie.primitive}},{types:["boolean"],style:{color:ie.boolean}},{types:["tag"],style:{color:ie.tag}},{types:["string"],style:{color:ie.string}},{types:["punctuation"],style:{color:ie.string}},{types:["selector","char","builtin","inserted"],style:{color:ie.char}},{types:["function"],style:{color:ie.function}},{types:["operator","entity","url","variable"],style:{color:ie.variable}},{types:["keyword"],style:{color:ie.keyword}},{types:["atrule","class-name"],style:{color:ie.className}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},_d=Ad,Id={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},Fd=Id,Ld={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},Pd=Ld,Dd={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},Od=Dd,$d={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},Md=$d,Bd={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},zd=Bd,Vd={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},sn=Vd,Ud={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},qd=Ud,Gd={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Hd=Gd,Kd={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Wd=Kd,Zd={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},Yd=Zd,Xd={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Qd=Xd,Jd={plain:{color:"#ebdbb2",backgroundColor:"#292828"},styles:[{types:["imports","class-name","maybe-class-name","constant","doctype","builtin","function"],style:{color:"#d8a657"}},{types:["property-access"],style:{color:"#7daea3"}},{types:["tag"],style:{color:"#e78a4e"}},{types:["attr-name","char","url","regex"],style:{color:"#a9b665"}},{types:["attr-value","string"],style:{color:"#89b482"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#ea6962"}},{types:["entity","number","symbol"],style:{color:"#d3869b"}}]},eu=Jd,tu={plain:{color:"#654735",backgroundColor:"#f9f5d7"},styles:[{types:["delimiter","boolean","keyword","selector","important","atrule","property","variable","deleted"],style:{color:"#af2528"}},{types:["imports","class-name","maybe-class-name","constant","doctype","builtin"],style:{color:"#b4730e"}},{types:["string","attr-value"],style:{color:"#477a5b"}},{types:["property-access"],style:{color:"#266b79"}},{types:["function","attr-name","char","url"],style:{color:"#72761e"}},{types:["tag"],style:{color:"#b94c07"}},{types:["comment","prolog","cdata","operator","inserted"],style:{color:"#a89984"}},{types:["entity","number","symbol"],style:{color:"#924f79"}}]},su=tu,ru=t=>i.useCallback(s=>{var r=s,{className:a,style:n,line:o}=r,l=tn(r,["className","style","line"]);const c=Ht(ge({},l),{className:ys("token-line",a)});return typeof t=="object"&&"plain"in t&&(c.style=t.plain),typeof n=="object"&&(c.style=ge(ge({},c.style||{}),n)),c},[t]),au=t=>{const s=i.useCallback(({types:r,empty:a})=>{if(t!=null){{if(r.length===1&&r[0]==="plain")return a!=null?{display:"inline-block"}:void 0;if(r.length===1&&a!=null)return t[r[0]]}return Object.assign(a!=null?{display:"inline-block"}:{},...r.map(n=>t[n]))}},[t]);return i.useCallback(r=>{var a=r,{token:n,className:o,style:l}=a,c=tn(a,["token","className","style"]);const d=Ht(ge({},c),{className:ys("token",...n.types,o),children:n.content,style:s(n)});return l!=null&&(d.style=ge(ge({},d.style||{}),l)),d},[s])},nu=/\r\n|\r|\n/,dr=t=>{t.length===0?t.push({types:["plain"],content:` +`,empty:!0}):t.length===1&&t[0].content===""&&(t[0].content=` +`,t[0].empty=!0)},ur=(t,s)=>{const r=t.length;return r>0&&t[r-1]===s?t:t.concat(s)},ou=t=>{const s=[[]],r=[t],a=[0],n=[t.length];let o=0,l=0,c=[];const d=[c];for(;l>-1;){for(;(o=a[l]++)0?m:["plain"],u=y):(m=ur(m,y.type),y.alias&&(m=ur(m,y.alias)),u=y.content),typeof u!="string"){l++,s.push(m),r.push(u),a.push(0),n.push(u.length);continue}const N=u.split(nu),h=N.length;c.push({types:m,content:N[0]});for(let p=1;pi.useMemo(()=>{if(r==null)return pr([s]);const n={code:s,grammar:r,language:a,tokens:[]};return t.hooks.run("before-tokenize",n),n.tokens=t.tokenize(s,r),t.hooks.run("after-tokenize",n),pr(n.tokens)},[s,r,a,t]),lu=(t,s)=>{const{plain:r}=t,a=t.styles.reduce((n,o)=>{const{languages:l,style:c}=o;return l&&!l.includes(s)||o.types.forEach(d=>{const u=ge(ge({},n[d]),c);n[d]=u}),n},{});return a.root=r,a.plain=Ht(ge({},r),{backgroundColor:void 0}),a},cu=lu,du=({children:t,language:s,code:r,theme:a,prism:n})=>{const o=s.toLowerCase(),l=cu(a,o),c=ru(l),d=au(l),u=n.languages[o],m=iu({prism:n,language:o,code:r,grammar:u});return t({tokens:m,className:`prism-code language-${o}`,style:l!=null?l.root:{},getLineProps:c,getTokenProps:d})},uu=t=>i.createElement(du,Ht(ge({},t),{prism:t.prism||k,theme:t.theme||sn,code:t.code,language:t.language}));/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + *) +*/const pu=(t,s)=>s.some(r=>{if(typeof r=="number")return t===r;const[a,n]=r.split(":").map(o=>parseInt(o));return a<=t&&t<=n}),mu=(t,s,r)=>r.some(([a,[n,o]])=>a===t&&n<=s&&s<=o),gu=(t,s)=>t.split(new RegExp(`(${s.map(([r])=>r).join("|")})`)).filter(Boolean),fu=t=>t.map(s=>{s=s.startsWith("/")?s:"/"+s;const[,r,a="0:Infinity"]=s.split("/"),[n,o=n]=a.split(":").map(l=>Number(l));return[r,[n,o]]}),rn=(t,s)=>()=>{const r=i.useContext(t);if(r===void 0)throw new Error(s);return r},Kt=t=>Object.assign(i.forwardRef(t),{displayName:t.displayName??t.name}),an=i.createContext(void 0),nn=i.createContext(void 0),on=rn(an,'Could not find nearest component. Please wrap this component with a component imported from "react-code-block".'),zs=rn(nn,'Could not find nearest component. Please wrap this component with component imported from "react-code-block".'),ye=({code:t,words:s=[],lines:r=[],children:a,...n})=>{const o=i.useMemo(()=>fu(s),[s]);return e.jsx(an.Provider,{value:{code:t.trim(),words:o,lines:r,...n},children:a})},hu=({as:t,children:s,...r},a)=>{const{lines:n,words:o,...l}=on(),c=t??"pre";return e.jsx(uu,{...l,children:d=>e.jsx(c,{...r,ref:a,children:d.tokens.map((u,m)=>{const f=m+1,y=pu(f,n);return e.jsx(nn.Provider,{value:{highlight:d,line:u,lineNumber:f},children:typeof s=="function"?s({isLineHighlighted:y,lineNumber:f},m):s},m)})})})},xu=({as:t,children:s,className:r,...a},n)=>{const{highlight:o,line:l}=zs(),{getLineProps:c}=o,d=t??"div";return e.jsx(d,{...c({line:l,className:r}),...a,ref:n,children:s})},bu=({as:t,children:s=({children:o})=>e.jsx("span",{children:o}),className:r,...a},n)=>{const{words:o}=on(),{line:l,highlight:c,lineNumber:d}=zs(),{getTokenProps:u}=c,m=t??"span";return e.jsx(Be.Fragment,{children:l.map((f,y)=>{const{children:N,...h}=u({token:f,className:r}),p=o.length?gu(N,o):[N];return e.jsx(Be.Fragment,{children:p.map((g,x)=>e.jsx(m,{...h,...a,ref:n,children:s({children:g,isTokenHighlighted:mu(g,d,o)})},x))},y)})})},yu=({as:t,...s},r)=>{const{lineNumber:a}=zs(),n=t??"span";return e.jsx(n,{...s,ref:r,children:a})};ye.Code=Kt(hu);ye.LineContent=Kt(xu);ye.Token=Kt(bu);ye.LineNumber=Kt(yu);const vu={plain:{color:"var(--foreground)",backgroundColor:"var(--muted)"},styles:[{types:["comment"],style:{color:"#6e7781",fontStyle:"italic"}},{types:["keyword","selector","changed"],style:{color:"#cf222e"}},{types:["constant","number","builtin"],style:{color:"#0550ae"}},{types:["string","attr-value"],style:{color:"#0a3069"}},{types:["function","attr-name"],style:{color:"#8250df"}},{types:["tag","operator"],style:{color:"#116329"}},{types:["variable","property"],style:{color:"#953800"}},{types:["punctuation"],style:{color:"#24292f"}}]},ju={plain:{color:"var(--foreground)",backgroundColor:"var(--muted)"},styles:[{types:["comment"],style:{color:"#8b949e",fontStyle:"italic"}},{types:["keyword","selector","changed"],style:{color:"#ff7b72"}},{types:["constant","number","builtin"],style:{color:"#79c0ff"}},{types:["string","attr-value"],style:{color:"#a5d6ff"}},{types:["function","attr-name"],style:{color:"#d2a8ff"}},{types:["tag","operator"],style:{color:"#7ee787"}},{types:["variable","property"],style:{color:"#ffa657"}},{types:["punctuation"],style:{color:"#c9d1d9"}}]};function as({code:t,language:s="typescript",fileName:r,className:a,maxLines:n=200}){const[o,l]=i.useState(!1),[c,d]=i.useState(!1),{theme:u}=Fi(),m=async()=>{await navigator.clipboard.writeText(t),l(!0),setTimeout(()=>l(!1),2e3)},f=t.split(` +`),y=f.length>n,N=c?t:f.slice(0,n).join(` +`);return e.jsxs("div",{className:v("relative group rounded-lg overflow-hidden",a),children:[r&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b bg-muted/50",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:r}),e.jsxs(q,{variant:"ghost",size:"icon",className:"h-7 w-7 opacity-0 group-hover:opacity-100 transition-opacity",onClick:m,children:[o?e.jsx(qe,{className:"h-4 w-4"}):e.jsx(Ar,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Copy code"})]})]}),e.jsx(ye,{code:N,language:s,theme:u==="dark"?ju:vu,children:e.jsx(ye.Code,{className:"bg-muted/50 p-4 text-sm whitespace-pre-wrap break-words",children:e.jsx(ye.LineContent,{className:"max-w-full",children:e.jsx(ye.Token,{})})})}),y&&e.jsx("div",{className:"flex justify-center p-2 border-t bg-muted/50",children:e.jsx(q,{variant:"ghost",size:"sm",onClick:()=>d(!c),className:"flex items-center gap-2",children:c?e.jsxs(e.Fragment,{children:["Show Less ",e.jsx(Tr,{className:"h-4 w-4"})]}):e.jsxs(e.Fragment,{children:["Show More (",f.length-n," more lines)"," ",e.jsx(ot,{className:"h-4 w-4"})]})})})]})}function wu(t){const[s,r]=i.useState(null),[a,n]=i.useState(!1),[o,l]=i.useState(null);return i.useEffect(()=>{if(!t){l("Node name is required");return}n(!0),l(null),fetch(`/ui/api/v1/proxy/${t}/ui/api/v1/cluster/nodes/self/details`).then(c=>{if(!c.ok)throw new Error(`Failed to fetch node details: ${c.statusText}`);return c.json()}).then(c=>{var d,u;c.target=((u=(d=c.config.match(/target:\s*([^\n]+)/))==null?void 0:d[1])==null?void 0:u.trim())||"",r(c),n(!1)}).catch(c=>{l(c instanceof Error?c.message:"An error occurred"),n(!1)})},[t]),{nodeDetails:s,isLoading:a,error:o}}function Nu(t,s){const[r,a]=i.useState(!1),[n,o]=i.useState(null),[l,c]=i.useState("");return i.useEffect(()=>{if(!s){c("");return}if(!t)return;const d=new AbortController;async function u(){a(!0),o(null);try{const m=await fetch(`/ui/api/v1/proxy/${t}/metrics`,{signal:d.signal});if(!m.ok)throw new Error(`Failed to fetch metrics: ${m.statusText}`);const f=await m.text();c(f)}catch(m){m instanceof Error?o(m.message):o("An unknown error occurred")}finally{a(!1)}}return u(),()=>{d.abort()}},[t,s]),{isLoading:r,error:n,metrics:l}}const ku={Running:"#10B981",Starting:"#F59E0B",New:"#3B82F6",Stopping:"#F59E0B",Terminated:"#6B7280",Failed:"#EF4444"};function Su({services:t}){const s=i.useMemo(()=>{const a=t.reduce((n,{status:o})=>{const l=o;return n.set(l,(n.get(l)||0)+1),n},new Map);return Array.from(a.entries()).sort((n,o)=>o[1]-n[1]).map(([n,o])=>({name:n,value:o,color:ku[n]}))},[t]),r=i.useMemo(()=>t.length,[t]);return s.length===0?null:e.jsxs("div",{className:"h-[180px] w-full flex items-center",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none z-10",children:[e.jsx("div",{className:"text-2xl font-bold",children:r}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Services"})]}),e.jsx(ct,{width:"100%",height:180,children:e.jsxs(Dt,{margin:{top:0,right:0,bottom:0,left:0},children:[e.jsx(Ot,{data:s,cx:"50%",cy:"50%",labelLine:!1,outerRadius:70,innerRadius:50,dataKey:"value",paddingAngle:2,strokeWidth:2,children:s.map(a=>e.jsx($t,{fill:a.color,stroke:"hsl(var(--background))"},`cell-${a.name}`))}),e.jsx(dt,{content:({active:a,payload:n})=>{if(!a||!n||!n[0])return null;const o=n[0].payload;return e.jsxs("div",{className:"bg-background border rounded-lg shadow-lg px-3 py-2 flex items-center gap-2",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-sm",style:{backgroundColor:o.color}}),e.jsx("span",{className:"text-sm font-medium",children:o.name}),e.jsx("span",{className:"text-sm font-semibold",children:o.value})]})}})]})})]}),e.jsx("div",{className:"flex flex-col gap-1.5 min-w-[120px] pl-4",children:s.map(a=>e.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{backgroundColor:a.color}}),e.jsx("span",{className:"text-muted-foreground",children:a.name})]}),e.jsx("span",{className:"font-medium tabular-nums",children:a.value})]},a.name))})]})}const Eu=t=>{switch(t){case"Running":return"text-green-600 dark:text-green-400";case"Starting":return"text-yellow-600 dark:text-yellow-400";case"Failed":return"text-red-600 dark:text-red-400";case"New":return"text-blue-600 dark:text-blue-400";case"Terminated":return"text-gray-600 dark:text-gray-400";default:return"text-gray-600 dark:text-gray-400"}};function Cu({services:t}){return e.jsx(pt,{className:"h-[180px] rounded-md border",children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{children:[e.jsx(D,{children:"Service"}),e.jsx(D,{className:"text-right",children:"Status"})]})}),e.jsx(Re,{children:t.map(s=>e.jsxs(X,{className:"hover:bg-muted/50",children:[e.jsx(F,{className:"font-medium",children:s.service}),e.jsx(F,{className:`text-right ${Eu(s.status)} font-medium`,children:s.status})]},s.service))})]})})}const Tu={aws:"text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400","aws-dynamo":"text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400",s3:"text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400",azure:"text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400",gcp:"text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400","gcp-columnkey":"text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400",gcs:"text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400",alibabacloud:"text-orange-600 bg-orange-100 dark:bg-orange-950 dark:text-orange-400",filesystem:"text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400",local:"text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400",boltdb:"text-emerald-600 bg-emerald-100 dark:bg-emerald-950 dark:text-emerald-400",cassandra:"text-blue-700 bg-blue-100 dark:bg-blue-950 dark:text-blue-400",bigtable:"text-red-600 bg-red-100 dark:bg-red-950 dark:text-red-400","bigtable-hashed":"text-red-600 bg-red-100 dark:bg-red-950 dark:text-red-400",bos:"text-cyan-600 bg-cyan-100 dark:bg-cyan-950 dark:text-cyan-400",cos:"text-green-600 bg-green-100 dark:bg-green-950 dark:text-green-400",swift:"text-orange-600 bg-orange-100 dark:bg-orange-950 dark:text-orange-400",inmemory:"text-purple-600 bg-purple-100 dark:bg-purple-950 dark:text-purple-400","grpc-store":"text-indigo-600 bg-indigo-100 dark:bg-indigo-950 dark:text-indigo-400"};function Ru({type:t,className:s}){const r=t.toLowerCase(),a=Tu[r]||"text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400";return e.jsx("span",{className:v("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",a,s),children:r})}const Au=Ee("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),le=i.forwardRef(({className:t,...s},r)=>e.jsx(yr,{ref:r,className:v(Au(),t),...s}));le.displayName=yr.displayName;function _u(t){const[s,r]=i.useState("info"),[a,n]=i.useState(!1),[o,l]=i.useState(null),[c,d]=i.useState(!1),u=f=>{const y=f.message.match(/Current log level is (\w+)/);return(y==null?void 0:y[1])||"info"};return i.useEffect(()=>{async function f(){if(t){n(!0),l(null);try{const y=await fetch(`/ui/api/v1/proxy/${t}/log_level`);if(!y.ok)throw new Error(`Failed to fetch log level: ${y.statusText}`);const N=await y.json();r(u(N))}catch(y){l(y instanceof Error?y.message:"Failed to fetch log level")}finally{n(!1)}}}f()},[t]),{logLevel:s,isLoading:a,error:o,success:c,setLogLevel:async f=>{if(t){n(!0),l(null),d(!1);try{const y=await fetch(`/ui/api/v1/proxy/${t}/log_level?log_level=${f}`,{method:"POST"});if(!y.ok)throw new Error(`Failed to update log level: ${y.statusText}`);const N=await y.json();if(N.status==="success"&&N.message.includes(f))r(f),d(!0),setTimeout(()=>d(!1),3e3);else throw new Error("Failed to update log level: Unexpected response")}catch(y){l(y instanceof Error?y.message:"Failed to update log level")}finally{n(!1)}}}}}const Iu=["debug","info","warn","error"];function Fu({nodeName:t,className:s}){const{logLevel:r,isLoading:a,error:n,success:o,setLogLevel:l}=_u(t),c=d=>{l(d)};return e.jsxs("div",{className:"relative flex items-center gap-2",children:[e.jsxs(Tt,{value:r,onValueChange:c,disabled:a,children:[e.jsx(et,{className:v("w-[180px]",s,a&&"opacity-50 cursor-not-allowed"),children:e.jsx(Rt,{placeholder:"Select log level"})}),e.jsx(tt,{children:Iu.map(d=>e.jsx(ze,{value:d,children:d},d))})]}),e.jsx(Ms,{children:e.jsxs(st,{children:[e.jsx(rt,{asChild:!0,children:e.jsxs("div",{className:v("absolute -right-6 transition-all duration-300 ease-in-out",o||n?"opacity-100 translate-x-0":"opacity-0 translate-x-2"),children:[o&&e.jsx(qe,{className:"h-4 w-4 text-green-500 animate-in zoom-in-50 duration-300"}),n&&e.jsx(nt,{className:"h-4 w-4 text-red-500 animate-in zoom-in-50 duration-300"})]})}),e.jsxs(Ue,{side:"right",className:"text-xs",children:[o&&"Log level updated successfully",n&&n]})]})})]})}const ln=i.forwardRef(({className:t,...s},r)=>e.jsx(Br,{className:v("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",t),...s,ref:r,children:e.jsx(di,{className:v("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));ln.displayName=Br.displayName;function Lu(t){return js({tag:"svg",attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"},child:[]}]})(t)}function Pu(t){return js({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"},child:[]}]})(t)}function Du(t){return js({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"},child:[]}]})(t)}const Ou=t=>{const s=t.toLowerCase();return s.includes("darwin")||s.includes("mac")?e.jsx(Lu,{className:"h-4 w-4"}):s.includes("linux")?e.jsx(Pu,{className:"h-4 w-4"}):s.includes("windows")?e.jsx(Du,{className:"h-4 w-4"}):null},$u=t=>{const s=t.toLowerCase();return s==="oss"?"bg-blue-500/20 text-blue-700 dark:bg-blue-500/30 dark:text-blue-300 hover:bg-blue-500/30":s==="enterprise"?"bg-yellow-500/20 text-yellow-700 dark:bg-yellow-500/30 dark:text-yellow-300 hover:bg-yellow-500/30":""};function Mu({build:t,edition:s,os:r,arch:a}){const n=Ou(r);return e.jsxs(ee,{children:[e.jsx(se,{children:e.jsx(ae,{children:"Version Information"})}),e.jsx(te,{children:e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Version"}),e.jsx("p",{className:"text-sm",children:t.version})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Branch"}),e.jsx("p",{className:"text-sm",children:t.branch})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Go Version"}),e.jsx("p",{className:"text-sm",children:t.goVersion})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Edition"}),e.jsx("div",{children:e.jsx(be,{className:$u(s),children:s.toUpperCase()})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Architecture"}),e.jsx("p",{className:"text-sm",children:a})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"OS"}),e.jsxs("div",{className:"flex items-center gap-2",children:[n,e.jsx("p",{className:"text-sm",children:r})]})]})]})]})})]})}function Bu({nodeName:t,className:s}){const[r,a]=i.useState({isReady:!1,message:"Checking status..."}),[n,o]=i.useState(!0);return i.useEffect(()=>{const l=async()=>{try{const u=await fetch(`/ui/api/v1/proxy/${t}/ready`),m=await u.text();a({isReady:u.ok&&m.includes("ready"),message:u.ok?"Ready":m})}catch(u){a({isReady:!1,message:u instanceof Error?u.message:"Failed to check status"})}};l();const c=setInterval(l,3e3),d=setInterval(()=>{o(u=>!u)},1e3);return()=>{clearInterval(c),clearInterval(d)}},[t]),e.jsxs("div",{className:v("flex items-center gap-2",s),children:[e.jsx("span",{className:v("text-sm",r.isReady?"text-muted-foreground":"text-red-500"),children:r.message}),e.jsx("div",{className:v("h-2.5 w-2.5 rounded-full transition-opacity duration-150",r.isReady?"bg-green-500":"bg-red-500",n?"opacity-100":"opacity-30")})]})}const zu=[{name:"allocs",description:"A sampling of all past memory allocations"},{name:"block",description:"Stack traces that led to blocking on synchronization primitives"},{name:"heap",description:"A sampling of memory allocations of live objects"},{name:"mutex",description:"Stack traces of holders of contended mutexes"},{name:"profile",urlSuffix:"?seconds=15",description:"CPU profile (15 seconds)",displayName:"profile"},{name:"goroutine",description:"Stack traces of all current goroutines (debug=1)",variants:[{suffix:"?debug=0",label:"Basic",description:"Basic goroutine info"},{suffix:"?debug=1",label:"Standard",description:"Standard goroutine stack traces"},{suffix:"?debug=2",label:"Full",description:"Full goroutine stack dump with additional info"}]},{name:"threadcreate",description:"Stack traces that led to the creation of new OS threads",urlSuffix:"?debug=1",displayName:"threadcreate"},{name:"trace",description:"A trace of execution of the current program",urlSuffix:"?debug=1",displayName:"trace"}];function Vu({nodeName:t}){const s=r=>{window.open(`/ui/api/v1/proxy/${t}/debug/pprof/${r}`,"_blank")};return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:"Profiling Tools:"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:zu.map(r=>r.variants?r.variants.map(a=>e.jsxs(st,{children:[e.jsx(rt,{asChild:!0,children:e.jsx(q,{variant:"outline",size:"sm",onClick:()=>s(`${r.name}${a.suffix}`),children:`${r.name} (${a.label})`})}),e.jsx(Ue,{children:e.jsx("p",{children:a.description})})]},`${r.name}${a.suffix}`)):e.jsxs(st,{children:[e.jsx(rt,{asChild:!0,children:e.jsx(q,{variant:"outline",size:"sm",onClick:()=>s(`${r.name}${r.urlSuffix||""}`),children:r.displayName||r.name})}),e.jsx(Ue,{children:e.jsx("p",{children:r.description})})]},r.name))})]})}function Uu(){const{nodeName:t}=Nr(),[s,r]=i.useState("config"),{nodeDetails:a,isLoading:n,error:o}=wu(t),{metrics:l,isLoading:c,error:d}=Nu(t,s==="raw-metrics"),[u,m]=i.useState(!1);return n?e.jsx("div",{className:"container space-y-6 p-6",children:e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent"}),e.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading..."})]})}):a?e.jsx(ke,{children:e.jsxs(ee,{children:[e.jsx(se,{children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(ae,{children:e.jsx("h2",{className:"text-3xl font-semibold tracking-tight",children:e.jsxs("div",{className:"flex items-center gap-2",children:[a.target," - ",t,e.jsx($s,{text:t||""})]})})})}),e.jsx(Bu,{nodeName:t||""})]})}),e.jsxs(te,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsx(Mu,{build:a.build,edition:a.edition,os:a.os,arch:a.arch}),e.jsxs(ee,{children:[e.jsx(se,{children:e.jsx(ae,{children:"Cluster Information"})}),e.jsx(te,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Cluster ID"}),e.jsx("p",{className:"text-sm",children:a.clusterID})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Created"}),e.jsx("p",{className:"text-sm",children:wt(a.clusterSeededAt,"PPpp")})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(le,{children:"Storage"}),e.jsx("p",{children:e.jsx(Ru,{type:(a.metrics.store_object_type||"filesystem").toLowerCase(),className:""})})]})]})})]}),e.jsxs(ee,{children:[e.jsxs(se,{className:"flex flex-row items-center justify-between",children:[e.jsx(ae,{children:"Service Status"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(le,{htmlFor:"view-mode",children:"Table View"}),e.jsx(ln,{id:"view-mode",checked:u,onCheckedChange:m})]})]}),e.jsx(te,{children:u?e.jsx(Cu,{services:a.services}):e.jsx(Su,{services:a.services})})]})]}),e.jsxs("div",{className:"flex items-center gap-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mr-4",children:[e.jsx(le,{children:"Log Level"}),e.jsx(Fu,{nodeName:t||""})]}),e.jsx(Vu,{nodeName:t||""})]}),e.jsx("div",{children:e.jsxs(od,{defaultValue:"config",onValueChange:r,children:[e.jsxs(Qa,{children:[e.jsx(yt,{value:"config",children:"Configuration"}),e.jsx(yt,{value:"metrics",children:"Analytics"}),e.jsx(yt,{value:"raw-metrics",children:"Raw Metrics"})]}),e.jsx(vt,{value:"config",className:"mt-6",children:e.jsx(as,{language:"yaml",code:a.config,fileName:"loki.yaml"})}),e.jsx(vt,{value:"metrics",className:"mt-6",children:a.metrics&&e.jsx(as,{code:JSON.stringify(a.metrics,null,2),language:"json",fileName:"analytics.json"})}),e.jsx(vt,{value:"raw-metrics",className:"mt-6",children:c?e.jsxs("div",{className:"flex items-center justify-center p-6",children:[e.jsx("div",{className:"h-6 w-6 animate-spin rounded-full border-2 border-primary border-t-transparent"}),e.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading metrics..."})]}):d?e.jsx("div",{className:"bg-red-50 dark:bg-red-900 border-l-4 border-red-400 p-4",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-200",children:d})}):l?e.jsx(as,{code:l,language:"yaml",fileName:"metrics"}):null})]})})]})]})}):e.jsx("div",{className:"container space-y-6 p-6",children:e.jsx("div",{className:"bg-red-50 dark:bg-red-900 border-l-4 border-red-400 p-4",children:e.jsx("div",{className:"flex",children:e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-200",children:o||`Node "${t}" not found`})})})})})}function qu(){return e.jsx(Xa,{children:e.jsx(Uu,{})})}function Ae(){return e.jsxs("div",{className:"flex flex-col items-center justify-center min-h-[80vh] p-4",children:[e.jsx(Uo,{className:"h-16 w-16 text-muted-foreground mb-6"}),e.jsx("h1",{className:"text-4xl font-bold text-center mb-4",children:"Coming Soon"}),e.jsx("p",{className:"text-lg text-muted-foreground text-center max-w-md",children:"We're working hard to bring you this feature. Stay tuned for updates!"})]})}const cn=Ee("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}}),Gu=i.forwardRef(({className:t,variant:s,size:r,...a},n)=>e.jsx(zr,{ref:n,className:v(cn({variant:s,size:r,className:t})),...a}));Gu.displayName=zr.displayName;const dn=i.createContext({size:"default",variant:"default"}),un=i.forwardRef(({className:t,variant:s,size:r,children:a,...n},o)=>e.jsx(Vr,{ref:o,className:v("flex items-center justify-center gap-1",t),...n,children:e.jsx(dn.Provider,{value:{variant:s,size:r},children:a})}));un.displayName=Vr.displayName;const pn=i.forwardRef(({className:t,children:s,variant:r,size:a,...n},o)=>{const l=i.useContext(dn);return e.jsx(Ur,{ref:o,className:v(cn({variant:l.variant||r,size:l.size||a}),t),...n,children:s})});pn.displayName=Ur.displayName;const _t={Received:"received",Processing:"processed"},Hu=t=>{const{cluster:s}=ue(),r=i.useMemo(()=>Oe(s==null?void 0:s.members,ya.compactor),[s==null?void 0:s.members]),{data:a,isLoading:n,error:o}=Mt({queryKey:["deletes",t,r],queryFn:async()=>{try{return(await Promise.all(t.map(async c=>{const d=await fetch(`/ui/api/v1/proxy/${r}/compactor/ui/api/v1/deletes?status=${c}`);if(!d.ok){const u=await d.text();throw new Error(u||`HTTP error! status: ${d.status}`)}return d.json()}))).flat()}catch(l){throw l instanceof Error?l:new Error("Failed to fetch delete requests")}},enabled:!!r});return{data:a,isLoading:n,error:o}},Ku=({selectedStatus:t,onStatusChange:s,queryFilter:r,onQueryFilterChange:a})=>e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:"Status"}),e.jsx(un,{type:"multiple",value:t,onValueChange:n=>{n.length>0&&s(n)},className:"justify-start",children:Object.entries(_t).map(([n,o])=>e.jsx(pn,{value:o,"aria-label":`Toggle ${n.toLowerCase()} status`,className:"capitalize",children:n},o))})]}),e.jsx(xe,{type:"search",placeholder:"Filter by query...",value:r,onChange:n=>a(n.target.value),className:"w-[300px]"})]}),Wu=({status:t})=>{const s=t===_t.Received?"secondary":"default";return e.jsx(be,{variant:s,className:"capitalize",children:t})},Zu=({start:t,end:s})=>{const r=Jo(Zs(t/1e3),Zs(s/1e3)),a=n=>{const o=new Date(n);return wt(new Date(o.getTime()+o.getTimezoneOffset()*6e4),"yyyy-MM-dd HH:mm:ss")};return e.jsxs(Vt,{children:[e.jsx(Ut,{children:e.jsx("span",{className:"cursor-default",children:r})}),e.jsx(mt,{className:"w-fit",children:e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"From"}),e.jsx("span",{className:"font-mono",children:a(t)})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"px-2 py-0.5 text-xs font-medium bg-gray-100 rounded dark:bg-gray-700 w-14 text-center",children:"To"}),e.jsx("span",{className:"font-mono",children:a(s)})]})]})})})]})},Yu=({requests:t,sortField:s,sortDirection:r,onSort:a})=>{const n=[...t].sort((o,l)=>{let c=0,d,u;switch(s){case"status":c=o.status.localeCompare(l.status);break;case"user":c=o.user_id.localeCompare(l.user_id);break;case"createdAt":c=o.created_at-l.created_at;break;case"duration":d=o.end_time-o.start_time,u=l.end_time-l.start_time,c=d-u;break}return r==="asc"?c:-c});return e.jsx("div",{className:"rounded-md border bg-card",children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{className:"hover:bg-transparent",children:[e.jsx(D,{className:"w-[80px]",children:e.jsx(Z,{title:"Status",field:"status",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[100px]",children:e.jsx(Z,{title:"User",field:"user",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[200px]",children:e.jsx(Z,{title:"Created At",field:"createdAt",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[150px]",children:e.jsx(Z,{title:"Range",field:"duration",sortField:s,sortDirection:r,onSort:a})}),e.jsx(D,{className:"w-[100px]",children:"Deleted Lines"}),e.jsx(D,{children:"Query"})]})}),e.jsxs(Re,{children:[n.map(o=>e.jsxs(X,{children:[e.jsx(F,{className:"px-4",children:e.jsx(Wu,{status:o.status})}),e.jsx(F,{children:o.user_id}),e.jsx(F,{children:e.jsx(Os,{date:new Date(o.created_at)})}),e.jsx(F,{children:e.jsx(Zu,{start:o.start_time,end:o.end_time})}),e.jsx(F,{children:o.deleted_lines}),e.jsx(F,{children:e.jsx("code",{className:"font-mono text-sm whitespace-pre-wrap break-all",children:o.query})})]},`${o.request_id}-${o.start_time}-${o.end_time}`)),n.length===0&&e.jsx(X,{children:e.jsx(F,{colSpan:7,className:"h-24 text-center",children:e.jsx("div",{className:"text-muted-foreground",children:"No delete requests found"})})})]})]})})},Xu=()=>{const[t,s]=i.useState([_t.Received,_t.Processing]),[r,a]=i.useState(""),[n,o]=i.useState("createdAt"),[l,c]=i.useState("desc"),{data:d,isLoading:u,error:m}=Hu(t),f=i.useMemo(()=>!d||!r?d:d.filter(N=>N.query.toLowerCase().includes(r.toLowerCase())),[d,r]),y=N=>{N===n?c(l==="asc"?"desc":"asc"):(o(N),c("desc"))};return e.jsx(ke,{children:e.jsxs(ee,{className:"shadow-sm",children:[e.jsx(se,{children:e.jsxs("div",{className:"flex flex-col gap-6",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-3xl font-semibold tracking-tight",children:"Delete Requests"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"View and manage delete requests in your cluster"})]}),e.jsx(q,{variant:"default",asChild:!0,children:e.jsxs(ce,{to:"/tenants/deletes/new",children:[e.jsx(qo,{className:"mr-2 h-4 w-4"}),"New Delete Request"]})})]}),e.jsx(Ku,{selectedStatus:t,onStatusChange:s,queryFilter:r,onQueryFilterChange:a})]})}),e.jsx(te,{children:e.jsxs("div",{className:"space-y-4",children:[m&&e.jsxs(Ge,{variant:"destructive",children:[e.jsx(nt,{className:"h-4 w-4"}),e.jsx(He,{children:"Error"}),e.jsx(Ke,{children:m.message})]}),u&&e.jsx("div",{className:"flex items-center justify-center p-8",children:e.jsx(he,{className:"h-16 w-16 animate-spin"})}),!u&&!m&&f&&e.jsx(Yu,{requests:f,sortField:n,sortDirection:l,onSort:y})]})})]})})},mn=Pi,gn=i.createContext({}),Ie=({...t})=>e.jsx(gn.Provider,{value:{name:t.name},children:e.jsx(Di,{...t})}),Wt=()=>{const t=i.useContext(gn),s=i.useContext(fn),{getFieldState:r,formState:a}=Li(),n=r(t.name,a);if(!t)throw new Error("useFormField should be used within ");const{id:o}=s;return{id:o,name:t.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...n}},fn=i.createContext({}),ve=i.forwardRef(({className:t,...s},r)=>{const a=i.useId();return e.jsx(fn.Provider,{value:{id:a},children:e.jsx("div",{ref:r,className:v("space-y-2",t),...s})})});ve.displayName="FormItem";const fe=i.forwardRef(({className:t,...s},r)=>{const{error:a,formItemId:n}=Wt();return e.jsx(le,{ref:r,className:v(a&&"text-destructive",t),htmlFor:n,...s})});fe.displayName="FormLabel";const je=i.forwardRef(({...t},s)=>{const{error:r,formItemId:a,formDescriptionId:n,formMessageId:o}=Wt();return e.jsx(Se,{ref:s,id:a,"aria-describedby":r?`${n} ${o}`:`${n}`,"aria-invalid":!!r,...t})});je.displayName="FormControl";const hn=i.forwardRef(({className:t,...s},r)=>{const{formDescriptionId:a}=Wt();return e.jsx("p",{ref:r,id:a,className:v("text-[0.8rem] text-muted-foreground",t),...s})});hn.displayName="FormDescription";const we=i.forwardRef(({className:t,children:s,...r},a)=>{const{error:n,formMessageId:o}=Wt(),l=n?String(n==null?void 0:n.message):s;return l?e.jsx("p",{ref:a,id:o,className:v("text-[0.8rem] font-medium text-destructive",t),...r,children:l}):null});we.displayName="FormMessage";const xn=i.forwardRef(({className:t,...s},r)=>e.jsx("textarea",{className:v("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:r,...s}));xn.displayName="Textarea";var Qu=function(t,s){for(var r={};t.length;){var a=t[0],n=a.code,o=a.message,l=a.path.join(".");if(!r[l])if("unionErrors"in a){var c=a.unionErrors[0].errors[0];r[l]={message:c.message,type:c.code}}else r[l]={message:o,type:n};if("unionErrors"in a&&a.unionErrors.forEach(function(m){return m.errors.forEach(function(f){return t.push(f)})}),s){var d=r[l].types,u=d&&d[a.code];r[l]=Mi(l,s,r,n,u?[].concat(u,a.message):a.message)}t.shift()}return r},bn=function(t,s,r){return r===void 0&&(r={}),function(a,n,o){try{return Promise.resolve(function(l,c){try{var d=Promise.resolve(t[r.mode==="sync"?"parse":"parseAsync"](a,s)).then(function(u){return o.shouldUseNativeValidation&&Oi({},o),{errors:{},values:r.raw?a:u}})}catch(u){return c(u)}return d&&d.then?d.then(void 0,c):d}(0,function(l){if(function(c){return Array.isArray(c==null?void 0:c.errors)}(l))return{values:{},errors:$i(Qu(l.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)};throw l}))}catch(l){return Promise.reject(l)}}};const Ju=ia({tenant_id:Ye().min(1,"Tenant ID is required"),query:Ye().min(1,"Query is required"),start_time:Xs(),end_time:Xs().refine(t=>t>new Date(Date.now()-7*24*60*60*1e3),"End time must be after start time")}),ep=()=>{const t=It(),s=Ai(),[r,a]=i.useState(null),[n,o]=i.useState(!1),{cluster:l}=ue(),c=i.useMemo(()=>Oe(l==null?void 0:l.members,ya.compactor),[l==null?void 0:l.members]),d=la({resolver:bn(Ju),defaultValues:{tenant_id:"",query:"",start_time:new Date(Date.now()-7*24*60*60*1e3),end_time:new Date}}),u=i.useCallback(async(N,h=!1)=>{if(N.trim()){o(!0);try{const p=await fetch(`/ui/api/v1/proxy/${c}/loki/api/v1/format_query?query=${N}`,{method:"POST"}),g=await p.json();if(!p.ok||g.status==="invalid-query")throw new Error(g.error||"Invalid LogQL query");d.clearErrors("query"),h&&d.setValue("query",g.data)}catch(p){d.setError("query",{message:p instanceof Error?p.message:"Invalid LogQL query"})}finally{o(!1)}}},[d,c]),m=i.useMemo(()=>ki(N=>u(N,!1),1e3),[u]),f=async N=>{const h=new URLSearchParams;h.append("query",N.query),h.append("start",Math.floor(N.start_time.getTime()/1e3).toString()),h.append("end",Math.floor(N.end_time.getTime()/1e3).toString());try{const p=await fetch(`/ui/api/v1/proxy/${c}/compactor/ui/api/v1/deletes?${h.toString()}`,{method:"POST",headers:{"X-Scope-OrgID":N.tenant_id}});if(!p.ok){const g=await p.text();throw new Error(g||"Failed to create delete request")}await s.invalidateQueries({queryKey:["deletes"]}),t("/tenants/deletes")}catch(p){console.error("Error creating delete request:",p),a(p instanceof Error?p.message:"Failed to create delete request")}},y=i.useMemo(()=>{const N=d.watch("start_time"),h=d.watch("end_time");return ei(ti({start:N,end:h}),{format:["years","months","weeks","days","hours","minutes"],zero:!1})},[d]);return e.jsx(ke,{children:e.jsxs(ee,{children:[e.jsx(se,{children:e.jsx(ae,{children:"New Delete Request"})}),e.jsxs(te,{children:[r&&e.jsxs(Ge,{variant:"destructive",className:"mb-6",children:[e.jsx(nt,{className:"h-4 w-4"}),e.jsx(He,{children:"Error"}),e.jsx(Ke,{children:r})]}),e.jsx(mn,{...d,children:e.jsxs("form",{onSubmit:d.handleSubmit(f),className:"space-y-8",children:[e.jsx(Ie,{control:d.control,name:"tenant_id",render:({field:N})=>e.jsxs(ve,{children:[e.jsx(fe,{children:"TENANT ID"}),e.jsx(je,{children:e.jsx(xe,{placeholder:"Enter tenant ID",...N})}),e.jsx(we,{})]})}),e.jsx(Ie,{control:d.control,name:"query",render:({field:N})=>e.jsxs(ve,{children:[e.jsx(fe,{children:"LOGQL QUERY"}),e.jsx(je,{children:e.jsxs("div",{className:"relative",children:[e.jsx(xn,{placeholder:'{app="example"}',className:"font-mono",...N,onChange:h=>{N.onChange(h),m(h.target.value)},onBlur:async h=>{N.onBlur(),h.target.value&&await u(h.target.value,!0)}}),n&&e.jsx("div",{className:"absolute right-3 top-3",children:e.jsx(he,{className:"h-5 w-5 animate-spin"})})]})}),e.jsx(hn,{children:"Enter a LogQL query with labels in curly braces"}),e.jsx(we,{})]})}),e.jsxs("div",{className:"grid grid-cols-3 gap-8",children:[e.jsx(Ie,{control:d.control,name:"start_time",render:({field:N})=>e.jsxs(ve,{children:[e.jsx(fe,{children:"START TIME"}),e.jsx(je,{children:e.jsx(Ys,{selected:N.value,onChange:N.onChange,showTimeSelect:!0,timeFormat:"HH:mm",timeIntervals:15,dateFormat:"yyyy-MM-dd HH:mm",className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})}),e.jsx(we,{})]})}),e.jsx(Ie,{control:d.control,name:"end_time",render:({field:N})=>e.jsxs(ve,{children:[e.jsx(fe,{children:"END TIME"}),e.jsx(je,{children:e.jsx(Ys,{selected:N.value,onChange:N.onChange,showTimeSelect:!0,timeFormat:"HH:mm",timeIntervals:15,dateFormat:"yyyy-MM-dd HH:mm",minDate:d.watch("start_time"),className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"})}),e.jsx(we,{})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(fe,{children:"DURATION"}),e.jsx("div",{className:"h-10 flex items-center",children:e.jsx("span",{className:"text-sm text-muted-foreground",children:y})})]})]}),e.jsxs("div",{className:"flex justify-end space-x-3 pt-6 border-t",children:[e.jsx(q,{type:"button",variant:"outline",onClick:()=>t("/tenants/deletes"),children:"Cancel"}),e.jsx(q,{type:"submit",disabled:!d.formState.isValid||d.formState.isSubmitting,children:d.formState.isSubmitting?"Creating...":"Create Delete Request"})]})]})})]})]})})},tp={light:"",dark:".dark"},yn=i.createContext(null);function vn(){const t=i.useContext(yn);if(!t)throw new Error("useChart must be used within a ");return t}const jn=i.forwardRef(({id:t,className:s,children:r,config:a,...n},o)=>{const l=i.useId(),c=`chart-${t||l.replace(/:/g,"")}`;return e.jsx(yn.Provider,{value:{config:a},children:e.jsxs("div",{"data-chart":c,ref:o,className:v("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",s),...n,children:[e.jsx(sp,{id:c,config:a}),e.jsx(ct,{children:r})]})})});jn.displayName="Chart";const sp=({id:t,config:s})=>{const r=Object.entries(s).filter(([,a])=>a.theme||a.color);return r.length?e.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(tp).map(([a,n])=>` +${n} [data-chart=${t}] { +${r.map(([o,l])=>{var d;const c=((d=l.theme)==null?void 0:d[a])||l.color;return c?` --color-${o}: ${c};`:null}).join(` +`)} +} +`).join(` +`)}}):null},rp=dt,wn=i.forwardRef(({active:t,payload:s,className:r,indicator:a="dot",hideLabel:n=!1,hideIndicator:o=!1,label:l,labelFormatter:c,labelClassName:d,formatter:u,color:m,nameKey:f,labelKey:y},N)=>{const{config:h}=vn(),p=i.useMemo(()=>{var E;if(n||!(s!=null&&s.length))return null;const[x]=s,b=`${y||x.dataKey||x.name||"value"}`,j=gs(h,x,b),w=!y&&typeof l=="string"?((E=h[l])==null?void 0:E.label)||l:j==null?void 0:j.label;return c?e.jsx("div",{className:v("font-medium",d),children:c(w,s)}):w?e.jsx("div",{className:v("font-medium",d),children:w}):null},[l,c,s,n,d,h,y]);if(!t||!(s!=null&&s.length))return null;const g=s.length===1&&a!=="dot";return e.jsxs("div",{ref:N,className:v("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",r),children:[g?null:p,e.jsx("div",{className:"grid gap-1.5",children:s.map((x,b)=>{const j=`${f||x.name||x.dataKey||"value"}`,w=gs(h,x,j),E=m||x.payload.fill||x.color;return e.jsx("div",{className:v("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",a==="dot"&&"items-center"),children:u&&(x==null?void 0:x.value)!==void 0&&x.name?u(x.value,x.name,x,b,x.payload):e.jsxs(e.Fragment,{children:[w!=null&&w.icon?e.jsx(w.icon,{}):!o&&e.jsx("div",{className:v("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":a==="dot","w-1":a==="line","w-0 border-[1.5px] border-dashed bg-transparent":a==="dashed","my-0.5":g&&a==="dashed"}),style:{"--color-bg":E,"--color-border":E}}),e.jsxs("div",{className:v("flex flex-1 justify-between leading-none",g?"items-end":"items-center"),children:[e.jsxs("div",{className:"grid gap-1.5",children:[g?p:null,e.jsx("span",{className:"text-muted-foreground",children:(w==null?void 0:w.label)||x.name})]}),x.value&&e.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:x.value.toLocaleString()})]})]})},x.dataKey)})})]})});wn.displayName="ChartTooltip";const ap=i.forwardRef(({className:t,hideIcon:s=!1,payload:r,verticalAlign:a="bottom",nameKey:n},o)=>{const{config:l}=vn();return r!=null&&r.length?e.jsx("div",{ref:o,className:v("flex items-center justify-center gap-4",a==="top"?"pb-3":"pt-3",t),children:r.map(c=>{const d=`${n||c.dataKey||"value"}`,u=gs(l,c,d);return e.jsxs("div",{className:v("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[u!=null&&u.icon&&!s?e.jsx(u.icon,{}):e.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:c.color}}),u==null?void 0:u.label]},c.value)})}):null});ap.displayName="ChartLegend";function gs(t,s,r){if(typeof s!="object"||s===null)return;const a="payload"in s&&typeof s.payload=="object"&&s.payload!==null?s.payload:void 0;let n=r;return r in s&&typeof s[r]=="string"?n=s[r]:a&&r in a&&typeof a[r]=="string"&&(n=a[r]),n in t?t[n]:t[r]}const np=ji,op=wi,ip=Ni,lp=ia({tenant:Ye().min(1,"Tenant ID is required"),since:Ye(),matcher:Ye().default("{}")}),cp=[{value:"1h",label:"Last 1 hour"},{value:"3h",label:"Last 3 hours"},{value:"6h",label:"Last 6 hours"},{value:"12h",label:"Last 12 hours"},{value:"24h",label:"Last 24 hours"}];function dp({values:t,totalValues:s}){return e.jsx("div",{className:"space-y-2 py-2",children:t.map(({value:r,count:a})=>e.jsxs("div",{className:"grid grid-cols-[200px_1fr_80px] items-center gap-4",children:[e.jsx(be,{variant:"outline",className:"font-mono text-xs justify-self-start overflow-hidden",children:r}),e.jsx("div",{className:"h-2 bg-muted rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary",style:{width:`${a/s*100}%`}})}),e.jsxs("span",{className:"text-xs text-muted-foreground tabular-nums justify-self-end",children:[(a/s*100).toFixed(1),"%"]})]},r))})}function up(){const{cluster:t}=ue(),{toast:s}=zt(),[r,a]=i.useState(null),[n,o]=i.useState("uniqueValues"),[l,c]=i.useState("desc"),[d,u]=i.useState("uniqueValues"),[m,f]=i.useState(new Set),y=la({resolver:bn(lp),defaultValues:{matcher:"{}",since:"1h"}}),N=Oe(t==null?void 0:t.members,"query-frontend"),{isLoading:h,refetch:p}=Mt({queryKey:["analyze-labels"],queryFn:async()=>{try{const w=y.getValues(),E=new Date,C=new Date(E.getTime()-pp(w.since)),A=await fetch(`/ui/api/v1/proxy/${N}/loki/api/v1/series?match[]=${encodeURIComponent(w.matcher)}&start=${C.getTime()*1e6}&end=${E.getTime()*1e6}`,{headers:{"X-Scope-OrgID":w.tenant}});if(!A.ok){const M=await A.text();throw new Error(M||"Failed to fetch series")}const B=await A.json(),z=new Map,Y=new Map;B.data.forEach(M=>{Object.entries(M).forEach(([W,T])=>{z.has(W)||(z.set(W,{uniqueValues:new Set,inStreams:0}),Y.set(W,new Map));const O=z.get(W),V=Y.get(W);O.uniqueValues.add(T),O.inStreams++,V.set(T,(V.get(T)||0)+1)})});const K=Array.from(z.entries()).map(([M,W])=>{const T=Array.from(Y.get(M).entries()).map(([O,V])=>({value:O,count:V})).sort((O,V)=>V.count-O.count).slice(0,5);return{name:M,uniqueValues:W.uniqueValues.size,inStreams:W.inStreams,sampleValues:T}});return K.sort((M,W)=>W.uniqueValues-M.uniqueValues),a({totalStreams:B.data.length,uniqueLabels:z.size,labels:K}),B}catch(w){throw s({variant:"destructive",title:"Error analyzing labels",description:w instanceof Error?w.message:"An unexpected error occurred"}),w}},enabled:!1});function g(){p()}const x=i.useMemo(()=>{const w=document.createElement("style"),E=(r==null?void 0:r.labels.slice(0,10).map((C,A)=>{const B=A*137.5%360;return`--chart-color-${A}: hsl(${B}, 70%, 50%);`}).join(` +`))||"";return w.textContent=`:root { ${E} }`,document.head.appendChild(w),()=>w.remove()},[r]);i.useEffect(()=>x,[x]);const b={value:{label:d==="uniqueValues"?"Unique Values":"Found In Streams",theme:{light:"var(--chart-color-0)",dark:"var(--chart-color-0)"}}},j=i.useMemo(()=>r?[...r.labels].sort((w,E)=>{let C=0;switch(n){case"name":C=w.name.localeCompare(E.name);break;case"uniqueValues":C=w.uniqueValues-E.uniqueValues;break;case"inStreams":C=w.inStreams-E.inStreams;break;case"cardinality":C=w.uniqueValues/w.inStreams-E.uniqueValues/E.inStreams;break}return l==="asc"?C:-C}):[],[r,n,l]);return e.jsxs("div",{className:"container mx-auto p-4 space-y-6",children:[e.jsxs(ee,{children:[e.jsxs(se,{children:[e.jsx(ae,{children:"Analyze Labels"}),e.jsx(Qe,{children:"Analyze label distribution across your log streams"})]}),e.jsx(te,{children:e.jsx(mn,{...y,children:e.jsxs("form",{onSubmit:y.handleSubmit(g),className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[e.jsx(Ie,{control:y.control,name:"tenant",render:({field:w})=>e.jsxs(ve,{className:"flex flex-col space-y-1.5",children:[e.jsx(fe,{children:"Tenant ID"}),e.jsx(je,{children:e.jsx(xe,{placeholder:"Enter tenant ID...",...w})}),e.jsx(we,{className:"text-xs"})]})}),e.jsx(Ie,{control:y.control,name:"since",render:({field:w})=>e.jsxs(ve,{className:"flex flex-col space-y-1.5",children:[e.jsx(fe,{children:"Time Range"}),e.jsxs(Tt,{onValueChange:w.onChange,defaultValue:w.value,children:[e.jsx(je,{children:e.jsx(et,{children:e.jsx(Rt,{placeholder:"Select time range"})})}),e.jsx(tt,{children:cp.map(E=>e.jsx(ze,{value:E.value,children:E.label},E.value))})]}),e.jsx(we,{className:"text-xs"})]})}),e.jsx(Ie,{control:y.control,name:"matcher",render:({field:w})=>e.jsxs(ve,{className:"flex flex-col space-y-1.5",children:[e.jsx(fe,{children:"Matcher"}),e.jsx(je,{children:e.jsx(xe,{placeholder:"Enter matcher... (default: {})",...w})}),e.jsx(we,{className:"text-xs"})]})}),e.jsx(q,{type:"submit",disabled:h,className:"self-end h-10",children:h?"Analyzing...":"Analyze"})]})})})]}),r&&e.jsxs(e.Fragment,{children:[e.jsxs(ee,{children:[e.jsxs(se,{className:"flex flex-col items-stretch space-y-0 border-b p-0 sm:flex-row",children:[e.jsxs("div",{className:"flex flex-1 flex-col justify-center gap-1 px-6 py-5 sm:py-6",children:[e.jsx(ae,{children:"Label Distribution"}),e.jsx(Qe,{children:"Top 20 labels by unique values"})]}),e.jsxs("div",{className:"flex",children:[e.jsxs("div",{className:"relative z-30 flex flex-1 flex-col justify-center gap-1 px-6 py-4 text-left sm:px-8 sm:py-6",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"Total Streams"}),e.jsx("span",{className:"text-lg font-bold leading-none sm:text-3xl",children:r.totalStreams.toLocaleString()})]}),e.jsxs("div",{className:"relative z-30 flex flex-1 flex-col justify-center gap-1 border-l px-6 py-4 text-left sm:px-8 sm:py-6",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"Unique Labels"}),e.jsx("span",{className:"text-lg font-bold leading-none sm:text-3xl",children:r.uniqueLabels.toLocaleString()})]})]})]}),e.jsxs(te,{className:"px-2 sm:p-6",children:[e.jsx("div",{className:"mb-4",children:e.jsxs(Tt,{value:d,onValueChange:w=>u(w),children:[e.jsx(et,{className:"w-[200px]",children:e.jsx(Rt,{placeholder:"Select metric"})}),e.jsxs(tt,{children:[e.jsx(ze,{value:"uniqueValues",children:"Unique Values"}),e.jsx(ze,{value:"inStreams",children:"Found In Streams"})]})]})}),e.jsx(jn,{config:b,className:"aspect-auto h-[500px] w-full",children:e.jsxs(Si,{data:r.labels.slice(0,20).map((w,E)=>({name:w.name,value:d==="uniqueValues"?w.uniqueValues:w.inStreams,fill:`var(--chart-color-${E})`})),layout:"vertical",margin:{right:24},barSize:452/Math.min(20,r.labels.length)*.6,maxBarSize:24,children:[e.jsx(Ei,{horizontal:!1}),e.jsx(Ci,{dataKey:"name",type:"category",tickLine:!1,axisLine:!1,width:90,fontSize:11,interval:0}),e.jsx(Ti,{type:"number",tickLine:!1,axisLine:!1,tickMargin:8}),e.jsx(rp,{content:e.jsx(wn,{className:"w-[200px]"})}),e.jsx(Ri,{dataKey:"value",fillOpacity:.8,radius:[4,4,0,0]})]})})]})]}),e.jsxs(ee,{children:[e.jsx(se,{children:e.jsx(ae,{children:"Label Details"})}),e.jsx(te,{children:e.jsxs(Ce,{children:[e.jsx(Te,{children:e.jsxs(X,{children:[e.jsx(D,{children:e.jsx(Z,{title:"Label Name",field:"name",sortField:n,sortDirection:l,onSort:w=>{w===n?c(l==="asc"?"desc":"asc"):(o(w),c("desc"))}})}),e.jsx(D,{children:e.jsx(Z,{title:"Unique Values",field:"uniqueValues",sortField:n,sortDirection:l,onSort:w=>{w===n?c(l==="asc"?"desc":"asc"):(o(w),c("desc"))}})}),e.jsx(D,{children:e.jsx(Z,{title:"Found In Streams",field:"inStreams",sortField:n,sortDirection:l,onSort:w=>{w===n?c(l==="asc"?"desc":"asc"):(o(w),c("desc"))}})}),e.jsx(D,{children:e.jsx(Z,{title:"Cardinality %",field:"cardinality",sortField:n,sortDirection:l,onSort:w=>{w===n?c(l==="asc"?"desc":"asc"):(o(w),c("desc"))}})})]})}),e.jsx(Re,{children:j.map(w=>e.jsx(np,{asChild:!0,open:m.has(w.name),onOpenChange:E=>{const C=new Set(m);E?C.add(w.name):C.delete(w.name),f(C)},children:e.jsxs(e.Fragment,{children:[e.jsxs(X,{children:[e.jsx(F,{className:"font-medium",children:e.jsxs(op,{className:"flex items-center gap-2 hover:text-primary",children:[e.jsx(ot,{className:v("h-4 w-4 transition-transform",m.has(w.name)&&"rotate-180")}),w.name]})}),e.jsx(F,{children:w.uniqueValues.toLocaleString()}),e.jsx(F,{children:w.inStreams.toLocaleString()}),e.jsxs(F,{children:[(w.uniqueValues/w.inStreams*100).toFixed(2),"%"]})]}),e.jsx(ip,{asChild:!0,children:e.jsx(X,{children:e.jsx(F,{colSpan:4,className:"border-t-0 bg-muted/5",children:e.jsx("div",{className:"px-4",children:e.jsx(dp,{values:w.sampleValues,totalValues:w.inStreams})})})})})]})},w.name))})]})})]})]})]})}function pp(t){const s=parseInt(t),a=t.slice(-1)==="h"?36e5:0;return s*a}const Nn=[{path:"/",breadcrumb:"Home",element:e.jsx(lr,{})},{path:"/nodes",breadcrumb:"Nodes",element:e.jsx(lr,{})},{path:"/nodes/:nodeName",breadcrumb:Ki,element:e.jsx(qu,{})},{path:"/versions",breadcrumb:"Versions",element:e.jsx(Ae,{})},{path:"/rings",breadcrumb:"Rings",element:e.jsx(or,{})},{path:"/rings/:ringName",breadcrumb:Wi,element:e.jsx(or,{})},{path:"/storage",breadcrumb:"Storage",element:e.jsx(Ae,{})},{path:"/storage/object",breadcrumb:"Object Storage",element:e.jsx(Ae,{})},{path:"/storage/dataobj",breadcrumb:"Data Objects",element:e.jsx(Dc,{})},{path:"/storage/dataobj/metadata",breadcrumb:"File Metadata",element:e.jsx(Yc,{})},{path:"/tenants",breadcrumb:"Tenants",element:e.jsx(Ae,{})},{path:"/tenants/deletes",breadcrumb:"Deletes",element:e.jsx(Xu,{})},{path:"/tenants/deletes/new",element:e.jsx(ep,{}),breadcrumb:"New Delete Request"},{path:"/tenants/analyze-labels",element:e.jsx(up,{}),breadcrumb:"Analyze Labels"},{path:"/tenants/limits",breadcrumb:"Limits",element:e.jsx(Ae,{})},{path:"/tenants/labels",breadcrumb:"Labels",element:e.jsx(Ae,{})},{path:"/rules",breadcrumb:"Rules",element:e.jsx(Ae,{})},{path:"/404",breadcrumb:"404",element:e.jsx(Zi,{})}];function mp(){const t=So(Nn,{disableDefaults:!0});return e.jsx(ks,{children:e.jsx(Ss,{children:t.map(({match:s,breadcrumb:r},a)=>e.jsxs(i.Fragment,{children:[e.jsx(Nt,{className:a===0?"hidden md:block":"",children:a===t.length-1?e.jsx(pa,{children:r}):e.jsx(kt,{asChild:!0,children:e.jsx(ce,{to:s.pathname,children:r})})}),a{let l;return s?a(!0):l=setTimeout(()=>{a(!1)},500),()=>{l&&clearTimeout(l)}},[s]);const n=()=>{if(!(t!=null&&t.members))return"v0.0.0";const l=new Map;Object.values(t.members).forEach(u=>{if(!u.build.version)return;const m=u.build.version;l.set(m,(l.get(m)||0)+1)});let c="v0.0.0",d=0;return l.forEach((u,m)=>{u>d&&(d=u,c=m)}),c},o=()=>{if(!(t!=null&&t.members))return[];const l=new Set,c=new Map;return Object.values(t.members).forEach(d=>{const u=d.build.version;l.add(u),c.set(u,{revision:d.build.revision,branch:d.build.branch,buildUser:d.build.buildUser,buildDate:d.build.buildDate,goVersion:d.build.goVersion})}),Array.from(l).map(d=>({version:d??"v0.0.0",info:c.get(d)??{revision:"v0.0.0",branch:"v0.0.0",buildUser:"v0.0.0",buildDate:"v0.0.0",goVersion:"v0.0.0"}}))};return{mostCommonVersion:n(),versionInfos:o(),isLoading:r}}function fp(){const{mostCommonVersion:t,versionInfos:s,isLoading:r}=gp(),[a,n]=i.useState(!1),o=()=>s.map(({version:l,info:c})=>`Version: ${l} +Revision: ${c.revision} +Branch: ${c.branch} +Build User: ${c.buildUser} +Build Date: ${c.buildDate} +Go Version: ${c.goVersion} +`).join(` +`);return e.jsxs(Vt,{open:a,onOpenChange:n,children:[e.jsx(Ut,{asChild:!0,children:e.jsxs("span",{className:"text-sm text-muted-foreground flex items-center gap-1",children:[e.jsx("button",{onClick:()=>n(!a),className:v("transition-opacity duration-200 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded px-1 -mx-1",{"opacity-0":r,"opacity-100":!r}),children:t}),r&&e.jsxs(e.Fragment,{children:[e.jsx(he,{className:"h-3 w-3 animate-spin"}),"Loading..."]})]})}),e.jsx(mt,{side:"bottom",align:"start",className:"w-[400px]",children:e.jsxs("div",{className:"p-2",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("div",{className:"font-semibold",children:"Build Information"}),!r&&s.length>0&&e.jsx($s,{text:o()})]}),e.jsx("div",{className:v("transition-opacity duration-200",{"opacity-0":r,"opacity-100":!r}),children:s.length>0?s.map(({version:l,info:c})=>e.jsxs("div",{className:"mb-2 last:mb-0",children:[e.jsx("div",{className:"font-semibold",children:l}),e.jsxs("div",{className:"text-sm",children:[e.jsxs("div",{children:["Revision: ",c.revision]}),e.jsxs("div",{children:["Branch: ",c.branch]}),e.jsxs("div",{children:["Build User: ",c.buildUser]}),e.jsxs("div",{children:["Build Date: ",c.buildDate]}),e.jsxs("div",{children:["Go Version: ",c.goVersion]})]})]},l)):e.jsx("div",{className:"text-sm text-muted-foreground",children:"No build information available"})}),r&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(he,{className:"h-4 w-4 animate-spin"}),e.jsx("span",{children:"Loading build information..."})]})]})})]})}const ns=768;function hp(){const[t,s]=i.useState(void 0);return i.useEffect(()=>{const r=window.matchMedia(`(max-width: ${ns-1}px)`),a=()=>{s(window.innerWidthr.removeEventListener("change",a)},[]),!!t}const Vs=i.forwardRef(({className:t,orientation:s="horizontal",decorative:r=!0,...a},n)=>e.jsx(oa,{ref:n,decorative:r,orientation:s,className:v("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",t),...a}));Vs.displayName=oa.displayName;const xp=ws,bp=Ns,Sn=i.forwardRef(({className:t,...s},r)=>e.jsx(it,{className:v("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...s,ref:r}));Sn.displayName=it.displayName;const yp=Ee("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),En=i.forwardRef(({side:t="right",className:s,children:r,...a},n)=>e.jsxs(bp,{children:[e.jsx(Sn,{}),e.jsxs(lt,{ref:n,className:v(yp({side:t}),s),...a,children:[e.jsxs(aa,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[e.jsx(vs,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]}),r]})]}));En.displayName=lt.displayName;const vp=i.forwardRef(({className:t,...s},r)=>e.jsx(Lt,{ref:r,className:v("text-lg font-semibold text-foreground",t),...s}));vp.displayName=Lt.displayName;const jp=i.forwardRef(({className:t,...s},r)=>e.jsx(Pt,{ref:r,className:v("text-sm text-muted-foreground",t),...s}));jp.displayName=Pt.displayName;function mr({className:t,...s}){return e.jsx("div",{className:v("animate-pulse rounded-md bg-primary/10",t),...s})}const wp="sidebar:state",Np=60*60*24*7,kp="16rem",Sp="18rem",Ep="3rem",Cp="b",Cn=i.createContext(null);function Zt(){const t=i.useContext(Cn);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}const Tn=i.forwardRef(({defaultOpen:t=!0,open:s,onOpenChange:r,className:a,style:n,children:o,...l},c)=>{const d=hp(),[u,m]=i.useState(!1),[f,y]=i.useState(t),N=s??f,h=i.useCallback(b=>{const j=typeof b=="function"?b(N):b;r?r(j):y(j),document.cookie=`${wp}=${j}; path=/; max-age=${Np}`},[r,N]),p=i.useCallback(()=>d?m(b=>!b):h(b=>!b),[d,h,m]);i.useEffect(()=>{const b=j=>{j.key===Cp&&(j.metaKey||j.ctrlKey)&&(j.preventDefault(),p())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[p]);const g=N?"expanded":"collapsed",x=i.useMemo(()=>({state:g,open:N,setOpen:h,isMobile:d,openMobile:u,setOpenMobile:m,toggleSidebar:p}),[g,N,h,d,u,m,p]);return e.jsx(Cn.Provider,{value:x,children:e.jsx(Ms,{delayDuration:0,children:e.jsx("div",{style:{"--sidebar-width":kp,"--sidebar-width-icon":Ep,...n},className:v("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",a),ref:c,...l,children:o})})})});Tn.displayName="SidebarProvider";const Rn=i.forwardRef(({side:t="left",variant:s="sidebar",collapsible:r="offcanvas",className:a,children:n,...o},l)=>{const{isMobile:c,state:d,openMobile:u,setOpenMobile:m}=Zt();return r==="none"?e.jsx("div",{className:v("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",a),ref:l,...o,children:n}):c?e.jsx(xp,{open:u,onOpenChange:m,...o,children:e.jsx(En,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":Sp},side:t,children:e.jsx("div",{className:"flex h-full w-full flex-col",children:n})})}):e.jsxs("div",{ref:l,className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":d==="collapsed"?r:"","data-variant":s,"data-side":t,children:[e.jsx("div",{className:v("relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",s==="floating"||s==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon]")}),e.jsx("div",{className:v("fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex",t==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",s==="floating"||s==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",a),...o,children:e.jsx("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:n})})]})});Rn.displayName="Sidebar";const An=i.forwardRef(({className:t,onClick:s,...r},a)=>{const{toggleSidebar:n}=Zt();return e.jsxs(q,{ref:a,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:v("h-7 w-7",t),onClick:o=>{s==null||s(o),n()},...r,children:[e.jsx(Go,{}),e.jsx("span",{className:"sr-only",children:"Toggle Sidebar"})]})});An.displayName="SidebarTrigger";const _n=i.forwardRef(({className:t,...s},r)=>{const{toggleSidebar:a}=Zt();return e.jsx("button",{ref:r,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:v("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",t),...s})});_n.displayName="SidebarRail";const In=i.forwardRef(({className:t,...s},r)=>e.jsx("main",{ref:r,className:v("relative flex min-h-svh flex-1 flex-col bg-background","peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",t),...s}));In.displayName="SidebarInset";const Tp=i.forwardRef(({className:t,...s},r)=>e.jsx(xe,{ref:r,"data-sidebar":"input",className:v("h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",t),...s}));Tp.displayName="SidebarInput";const Fn=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"header",className:v("flex flex-col gap-2 p-2",t),...s}));Fn.displayName="SidebarHeader";const Rp=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"footer",className:v("flex flex-col gap-2 p-2",t),...s}));Rp.displayName="SidebarFooter";const Ap=i.forwardRef(({className:t,...s},r)=>e.jsx(Vs,{ref:r,"data-sidebar":"separator",className:v("mx-2 w-auto bg-sidebar-border",t),...s}));Ap.displayName="SidebarSeparator";const Ln=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"content",className:v("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",t),...s}));Ln.displayName="SidebarContent";const Pn=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"group",className:v("relative flex w-full min-w-0 flex-col p-2",t),...s}));Pn.displayName="SidebarGroup";const _p=i.forwardRef(({className:t,asChild:s=!1,...r},a)=>{const n=s?Se:"div";return e.jsx(n,{ref:a,"data-sidebar":"group-label",className:v("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",t),...r})});_p.displayName="SidebarGroupLabel";const Ip=i.forwardRef(({className:t,asChild:s=!1,...r},a)=>{const n=s?Se:"button";return e.jsx(n,{ref:a,"data-sidebar":"group-action",className:v("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",t),...r})});Ip.displayName="SidebarGroupAction";const Fp=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"group-content",className:v("w-full text-sm",t),...s}));Fp.displayName="SidebarGroupContent";const fs=i.forwardRef(({className:t,...s},r)=>e.jsx("ul",{ref:r,"data-sidebar":"menu",className:v("flex w-full min-w-0 flex-col gap-1",t),...s}));fs.displayName="SidebarMenu";const Us=i.forwardRef(({className:t,...s},r)=>e.jsx("li",{ref:r,"data-sidebar":"menu-item",className:v("group/menu-item relative",t),...s}));Us.displayName="SidebarMenuItem";const Lp=Ee("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),qs=i.forwardRef(({asChild:t=!1,isActive:s=!1,variant:r="default",size:a="default",tooltip:n,className:o,...l},c)=>{const d=t?Se:"button",{isMobile:u,state:m}=Zt(),f=e.jsx(d,{ref:c,"data-sidebar":"menu-button","data-size":a,"data-active":s,className:v(Lp({variant:r,size:a}),o),...l});return n?(typeof n=="string"&&(n={children:n}),e.jsxs(st,{children:[e.jsx(rt,{asChild:!0,children:f}),e.jsx(Ue,{side:"right",align:"center",hidden:m!=="collapsed"||u,...n})]})):f});qs.displayName="SidebarMenuButton";const Pp=i.forwardRef(({className:t,asChild:s=!1,showOnHover:r=!1,...a},n)=>{const o=s?Se:"button";return e.jsx(o,{ref:n,"data-sidebar":"menu-action",className:v("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",r&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",t),...a})});Pp.displayName="SidebarMenuAction";const Dp=i.forwardRef(({className:t,...s},r)=>e.jsx("div",{ref:r,"data-sidebar":"menu-badge",className:v("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",t),...s}));Dp.displayName="SidebarMenuBadge";const Op=i.forwardRef(({className:t,showIcon:s=!1,...r},a)=>{const n=i.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return e.jsxs("div",{ref:a,"data-sidebar":"menu-skeleton",className:v("flex h-8 items-center gap-2 rounded-md px-2",t),...r,children:[s&&e.jsx(mr,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),e.jsx(mr,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":n}})]})});Op.displayName="SidebarMenuSkeleton";const Dn=i.forwardRef(({className:t,...s},r)=>e.jsx("ul",{ref:r,"data-sidebar":"menu-sub",className:v("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",t),...s}));Dn.displayName="SidebarMenuSub";const On=i.forwardRef(({...t},s)=>e.jsx("li",{ref:s,...t}));On.displayName="SidebarMenuSubItem";const $n=i.forwardRef(({asChild:t=!1,size:s="md",isActive:r,className:a,...n},o)=>{const l=t?Se:"a";return e.jsx(l,{ref:o,"data-sidebar":"menu-sub-button","data-size":s,"data-active":r,className:v("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",s==="sm"&&"text-xs",s==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",a),...n})});$n.displayName="SidebarMenuSubButton";function $p(t,s){const[r,a]=i.useState(s);return i.useEffect(()=>{if(!(t!=null&&t.members))return;const n=s.map(o=>o.title==="Rings"&&t.members?{...o,items:el(t.members)}:o);a(n)},[t==null?void 0:t.members,s]),r}const os=[{title:"Cluster",url:"/nodes",icon:e.jsx(Ho,{className:"h-4 w-4"}),items:[{title:"Nodes",url:"/nodes"},{title:"Rollouts & Versions",url:"/versions"}]},{title:"Rings",url:"/rings",icon:e.jsx(Cr,{className:"h-4 w-4"}),items:[]},{title:"Storage",url:"/storage",icon:e.jsx(Ko,{className:"h-4 w-4"}),items:[{title:"Object Storage",url:"/storage/object"},{title:"Data Objects",url:"/storage/dataobj"}]},{title:"Tenants",url:"/tenants",icon:e.jsx(Wo,{className:"h-4 w-4"}),items:[{title:"Analyze Labels",url:"/tenants/analyze-labels"},{title:"Deletes",url:"/tenants/deletes"},{title:"Limits",url:"/tenants/limits"},{title:"Labels",url:"/tenants/labels"}]},{title:"Rules",url:"/rules",icon:e.jsx(Zo,{className:"h-4 w-4"}),items:[]},{title:"Documentation",url:"https://grafana.com/docs/loki/latest/",icon:e.jsx(Yo,{className:"h-4 w-4"}),items:[]}];function Mp(t){return e.jsx(_n,{...t,className:v("after:bg-border/40 hover:after:bg-border","hover:bg-muted/50",t.className)})}const gr="loki-sidebar-open-sections",Bp=i.memo(function({item:s,isOpen:r,isActive:a,onToggle:n}){return e.jsxs(Us,{children:[e.jsx(qs,{asChild:!0,isActive:a(s.url),onClick:()=>n(s.title),children:e.jsxs("div",{className:"flex items-center justify-between font-medium",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[s.icon,e.jsx(ce,{to:`${s.url}`,target:s.url.includes("http")?"_blank":"_self",children:s.title})]}),s.items&&s.items.length>0&&e.jsx(ot,{className:v("h-4 w-4 transition-transform duration-200",r?"rotate-0":"-rotate-90")})]})}),s.items&&s.items.length>0&&r&&e.jsx(Dn,{children:s.items.map(o=>e.jsx(On,{children:e.jsx($n,{asChild:!0,isActive:a(o.url),children:e.jsx(ce,{to:`${o.url}`,children:o.title})})},o.title))})]})});function zp({...t}){const s=kn(),r=Eo(),{cluster:a}=ue(),n=r.pathname.replace(s,"/"),[o,l]=i.useState(()=>{const m=localStorage.getItem(gr);if(m)try{return JSON.parse(m)}catch{return os.reduce((f,y)=>({...f,[y.title]:!0}),{})}return os.reduce((f,y)=>({...f,[y.title]:!0}),{})}),c=$p(a,os),d=i.useCallback(m=>m==="/"?n==="/":n.startsWith(m),[n]),u=i.useCallback(m=>{l(f=>{const y={...f,[m]:!f[m]};return localStorage.setItem(gr,JSON.stringify(y)),y})},[]);return e.jsxs(Rn,{...t,children:[e.jsx(Fn,{className:"py-4",children:e.jsx(fs,{children:e.jsx(Us,{children:e.jsx(qs,{size:"lg",asChild:!0,children:e.jsxs("div",{className:"flex items-center gap-3 px-6 py-4",children:[e.jsx("img",{src:"https://grafana.com/media/docs/loki/logo-grafana-loki.png",alt:"Loki Logo",className:"h-7 w-7"}),e.jsxs("div",{className:"flex flex-col gap-0.5",children:[e.jsx("span",{className:"text-sm font-semibold leading-none",children:"Grafana Loki"}),e.jsx(fp,{})]})]})})})})}),e.jsx(pt,{className:"flex-1",children:e.jsx(Ln,{children:e.jsx(Pn,{children:e.jsx(fs,{children:c.map(m=>e.jsx(i.Fragment,{children:e.jsx(Bp,{item:m,isOpen:o[m.title],isActive:d,onToggle:u})},m.title))})})})}),e.jsx(Mp,{})]})}function Vp(){const[t,s]=i.useState(!1);i.useEffect(()=>{const a=()=>{s(window.scrollY>300)};return window.addEventListener("scroll",a),()=>window.removeEventListener("scroll",a)},[]);const r=()=>{window.scrollTo({top:0,behavior:"smooth"})};return t?e.jsx(q,{onClick:r,size:"icon",className:"fixed bottom-8 right-8 rounded-full shadow-lg transition-all duration-300","aria-label":"Back to top",children:e.jsx(ls,{className:"h-4 w-4"})}):null}var Gs="ToastProvider",[Hs,Up,qp]=bi("Toast"),[Mn,Fm]=hr("Toast",[qp]),[Gp,Yt]=Mn(Gs),Bn=t=>{const{__scopeToast:s,label:r="Notification",duration:a=5e3,swipeDirection:n="right",swipeThreshold:o=50,children:l}=t,[c,d]=i.useState(null),[u,m]=i.useState(0),f=i.useRef(!1),y=i.useRef(!1);return r.trim()||console.error(`Invalid prop \`label\` supplied to \`${Gs}\`. Expected non-empty \`string\`.`),e.jsx(Hs.Provider,{scope:s,children:e.jsx(Gp,{scope:s,label:r,duration:a,swipeDirection:n,swipeThreshold:o,toastCount:u,viewport:c,onViewportChange:d,onToastAdd:i.useCallback(()=>m(N=>N+1),[]),onToastRemove:i.useCallback(()=>m(N=>N-1),[]),isFocusedToastEscapeKeyDownRef:f,isClosePausedRef:y,children:l})})};Bn.displayName=Gs;var zn="ToastViewport",Hp=["F8"],hs="toast.viewportPause",xs="toast.viewportResume",Vn=i.forwardRef((t,s)=>{const{__scopeToast:r,hotkey:a=Hp,label:n="Notifications ({hotkey})",...o}=t,l=Yt(zn,r),c=Up(r),d=i.useRef(null),u=i.useRef(null),m=i.useRef(null),f=i.useRef(null),y=vr(s,f,l.onViewportChange),N=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),h=l.toastCount>0;i.useEffect(()=>{const g=x=>{var j;a.length!==0&&a.every(w=>x[w]||x.code===w)&&((j=f.current)==null||j.focus())};return document.addEventListener("keydown",g),()=>document.removeEventListener("keydown",g)},[a]),i.useEffect(()=>{const g=d.current,x=f.current;if(h&&g&&x){const b=()=>{if(!l.isClosePausedRef.current){const C=new CustomEvent(hs);x.dispatchEvent(C),l.isClosePausedRef.current=!0}},j=()=>{if(l.isClosePausedRef.current){const C=new CustomEvent(xs);x.dispatchEvent(C),l.isClosePausedRef.current=!1}},w=C=>{!g.contains(C.relatedTarget)&&j()},E=()=>{g.contains(document.activeElement)||j()};return g.addEventListener("focusin",b),g.addEventListener("focusout",w),g.addEventListener("pointermove",b),g.addEventListener("pointerleave",E),window.addEventListener("blur",b),window.addEventListener("focus",j),()=>{g.removeEventListener("focusin",b),g.removeEventListener("focusout",w),g.removeEventListener("pointermove",b),g.removeEventListener("pointerleave",E),window.removeEventListener("blur",b),window.removeEventListener("focus",j)}}},[h,l.isClosePausedRef]);const p=i.useCallback(({tabbingDirection:g})=>{const b=c().map(j=>{const w=j.ref.current,E=[w,...nm(w)];return g==="forwards"?E:E.reverse()});return(g==="forwards"?b.reverse():b).flat()},[c]);return i.useEffect(()=>{const g=f.current;if(g){const x=b=>{var E,C,A;const j=b.altKey||b.ctrlKey||b.metaKey;if(b.key==="Tab"&&!j){const B=document.activeElement,z=b.shiftKey;if(b.target===g&&z){(E=u.current)==null||E.focus();return}const M=p({tabbingDirection:z?"backwards":"forwards"}),W=M.findIndex(T=>T===B);is(M.slice(W+1))?b.preventDefault():z?(C=u.current)==null||C.focus():(A=m.current)==null||A.focus()}};return g.addEventListener("keydown",x),()=>g.removeEventListener("keydown",x)}},[c,p]),e.jsxs(bo,{ref:d,role:"region","aria-label":n.replace("{hotkey}",N),tabIndex:-1,style:{pointerEvents:h?void 0:"none"},children:[h&&e.jsx(bs,{ref:u,onFocusFromOutsideViewport:()=>{const g=p({tabbingDirection:"forwards"});is(g)}}),e.jsx(Hs.Slot,{scope:r,children:e.jsx(re.ol,{tabIndex:-1,...o,ref:y})}),h&&e.jsx(bs,{ref:m,onFocusFromOutsideViewport:()=>{const g=p({tabbingDirection:"backwards"});is(g)}})]})});Vn.displayName=zn;var Un="ToastFocusProxy",bs=i.forwardRef((t,s)=>{const{__scopeToast:r,onFocusFromOutsideViewport:a,...n}=t,o=Yt(Un,r);return e.jsx(jr,{"aria-hidden":!0,tabIndex:0,...n,ref:s,style:{position:"fixed"},onFocus:l=>{var u;const c=l.relatedTarget;!((u=o.viewport)!=null&&u.contains(c))&&a()}})});bs.displayName=Un;var Xt="Toast",Kp="toast.swipeStart",Wp="toast.swipeMove",Zp="toast.swipeCancel",Yp="toast.swipeEnd",qn=i.forwardRef((t,s)=>{const{forceMount:r,open:a,defaultOpen:n,onOpenChange:o,...l}=t,[c=!0,d]=yo({prop:a,defaultProp:n,onChange:o});return e.jsx(vo,{present:r||c,children:e.jsx(Jp,{open:c,...l,ref:s,onClose:()=>d(!1),onPause:jt(t.onPause),onResume:jt(t.onResume),onSwipeStart:pe(t.onSwipeStart,u=>{u.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:pe(t.onSwipeMove,u=>{const{x:m,y:f}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","move"),u.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${f}px`)}),onSwipeCancel:pe(t.onSwipeCancel,u=>{u.currentTarget.setAttribute("data-swipe","cancel"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:pe(t.onSwipeEnd,u=>{const{x:m,y:f}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","end"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${f}px`),d(!1)})})})});qn.displayName=Xt;var[Xp,Qp]=Mn(Xt,{onClose(){}}),Jp=i.forwardRef((t,s)=>{const{__scopeToast:r,type:a="foreground",duration:n,open:o,onClose:l,onEscapeKeyDown:c,onPause:d,onResume:u,onSwipeStart:m,onSwipeMove:f,onSwipeCancel:y,onSwipeEnd:N,...h}=t,p=Yt(Xt,r),[g,x]=i.useState(null),b=vr(s,T=>x(T)),j=i.useRef(null),w=i.useRef(null),E=n||p.duration,C=i.useRef(0),A=i.useRef(E),B=i.useRef(0),{onToastAdd:z,onToastRemove:Y}=p,K=jt(()=>{var O;(g==null?void 0:g.contains(document.activeElement))&&((O=p.viewport)==null||O.focus()),l()}),M=i.useCallback(T=>{!T||T===1/0||(window.clearTimeout(B.current),C.current=new Date().getTime(),B.current=window.setTimeout(K,T))},[K]);i.useEffect(()=>{const T=p.viewport;if(T){const O=()=>{M(A.current),u==null||u()},V=()=>{const Q=new Date().getTime()-C.current;A.current=A.current-Q,window.clearTimeout(B.current),d==null||d()};return T.addEventListener(hs,V),T.addEventListener(xs,O),()=>{T.removeEventListener(hs,V),T.removeEventListener(xs,O)}}},[p.viewport,E,d,u,M]),i.useEffect(()=>{o&&!p.isClosePausedRef.current&&M(E)},[o,E,p.isClosePausedRef,M]),i.useEffect(()=>(z(),()=>Y()),[z,Y]);const W=i.useMemo(()=>g?Xn(g):null,[g]);return p.viewport?e.jsxs(e.Fragment,{children:[W&&e.jsx(em,{__scopeToast:r,role:"status","aria-live":a==="foreground"?"assertive":"polite","aria-atomic":!0,children:W}),e.jsx(Xp,{scope:r,onClose:K,children:wr.createPortal(e.jsx(Hs.ItemSlot,{scope:r,children:e.jsx(jo,{asChild:!0,onEscapeKeyDown:pe(c,()=>{p.isFocusedToastEscapeKeyDownRef.current||K(),p.isFocusedToastEscapeKeyDownRef.current=!1}),children:e.jsx(re.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":o?"open":"closed","data-swipe-direction":p.swipeDirection,...h,ref:b,style:{userSelect:"none",touchAction:"none",...t.style},onKeyDown:pe(t.onKeyDown,T=>{T.key==="Escape"&&(c==null||c(T.nativeEvent),T.nativeEvent.defaultPrevented||(p.isFocusedToastEscapeKeyDownRef.current=!0,K()))}),onPointerDown:pe(t.onPointerDown,T=>{T.button===0&&(j.current={x:T.clientX,y:T.clientY})}),onPointerMove:pe(t.onPointerMove,T=>{if(!j.current)return;const O=T.clientX-j.current.x,V=T.clientY-j.current.y,Q=!!w.current,_=["left","right"].includes(p.swipeDirection),I=["left","up"].includes(p.swipeDirection)?Math.min:Math.max,P=_?I(0,O):0,U=_?0:I(0,V),S=T.pointerType==="touch"?10:2,R={x:P,y:U},$={originalEvent:T,delta:R};Q?(w.current=R,ht(Wp,f,$,{discrete:!1})):fr(R,p.swipeDirection,S)?(w.current=R,ht(Kp,m,$,{discrete:!1}),T.target.setPointerCapture(T.pointerId)):(Math.abs(O)>S||Math.abs(V)>S)&&(j.current=null)}),onPointerUp:pe(t.onPointerUp,T=>{const O=w.current,V=T.target;if(V.hasPointerCapture(T.pointerId)&&V.releasePointerCapture(T.pointerId),w.current=null,j.current=null,O){const Q=T.currentTarget,_={originalEvent:T,delta:O};fr(O,p.swipeDirection,p.swipeThreshold)?ht(Yp,N,_,{discrete:!0}):ht(Zp,y,_,{discrete:!0}),Q.addEventListener("click",I=>I.preventDefault(),{once:!0})}})})})}),p.viewport)})]}):null}),em=t=>{const{__scopeToast:s,children:r,...a}=t,n=Yt(Xt,s),[o,l]=i.useState(!1),[c,d]=i.useState(!1);return rm(()=>l(!0)),i.useEffect(()=>{const u=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(u)},[]),c?null:e.jsx(wo,{asChild:!0,children:e.jsx(jr,{...a,children:o&&e.jsxs(e.Fragment,{children:[n.label," ",r]})})})},tm="ToastTitle",Gn=i.forwardRef((t,s)=>{const{__scopeToast:r,...a}=t;return e.jsx(re.div,{...a,ref:s})});Gn.displayName=tm;var sm="ToastDescription",Hn=i.forwardRef((t,s)=>{const{__scopeToast:r,...a}=t;return e.jsx(re.div,{...a,ref:s})});Hn.displayName=sm;var Kn="ToastAction",Wn=i.forwardRef((t,s)=>{const{altText:r,...a}=t;return r.trim()?e.jsx(Yn,{altText:r,asChild:!0,children:e.jsx(Ks,{...a,ref:s})}):(console.error(`Invalid prop \`altText\` supplied to \`${Kn}\`. Expected non-empty \`string\`.`),null)});Wn.displayName=Kn;var Zn="ToastClose",Ks=i.forwardRef((t,s)=>{const{__scopeToast:r,...a}=t,n=Qp(Zn,r);return e.jsx(Yn,{asChild:!0,children:e.jsx(re.button,{type:"button",...a,ref:s,onClick:pe(t.onClick,n.onClose)})})});Ks.displayName=Zn;var Yn=i.forwardRef((t,s)=>{const{__scopeToast:r,altText:a,...n}=t;return e.jsx(re.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":a||void 0,...n,ref:s})});function Xn(t){const s=[];return Array.from(t.childNodes).forEach(a=>{if(a.nodeType===a.TEXT_NODE&&a.textContent&&s.push(a.textContent),am(a)){const n=a.ariaHidden||a.hidden||a.style.display==="none",o=a.dataset.radixToastAnnounceExclude==="";if(!n)if(o){const l=a.dataset.radixToastAnnounceAlt;l&&s.push(l)}else s.push(...Xn(a))}}),s}function ht(t,s,r,{discrete:a}){const n=r.originalEvent.currentTarget,o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r});s&&n.addEventListener(t,s,{once:!0}),a?ko(n,o):n.dispatchEvent(o)}var fr=(t,s,r=0)=>{const a=Math.abs(t.x),n=Math.abs(t.y),o=a>n;return s==="left"||s==="right"?o&&a>r:!o&&n>r};function rm(t=()=>{}){const s=jt(t);No(()=>{let r=0,a=0;return r=window.requestAnimationFrame(()=>a=window.requestAnimationFrame(s)),()=>{window.cancelAnimationFrame(r),window.cancelAnimationFrame(a)}},[s])}function am(t){return t.nodeType===t.ELEMENT_NODE}function nm(t){const s=[],r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const n=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||n?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)s.push(r.currentNode);return s}function is(t){const s=document.activeElement;return t.some(r=>r===s?!0:(r.focus(),document.activeElement!==s))}var om=Bn,Qn=Vn,Jn=qn,eo=Gn,to=Hn,so=Wn,ro=Ks;const im=om,ao=i.forwardRef(({className:t,...s},r)=>e.jsx(Qn,{ref:r,className:v("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",t),...s}));ao.displayName=Qn.displayName;const lm=Ee("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),no=i.forwardRef(({className:t,variant:s,...r},a)=>e.jsx(Jn,{ref:a,className:v(lm({variant:s}),t),...r}));no.displayName=Jn.displayName;const cm=i.forwardRef(({className:t,...s},r)=>e.jsx(so,{ref:r,className:v("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",t),...s}));cm.displayName=so.displayName;const oo=i.forwardRef(({className:t,...s},r)=>e.jsx(ro,{ref:r,className:v("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",t),"toast-close":"",...s,children:e.jsx(vs,{className:"h-4 w-4"})}));oo.displayName=ro.displayName;const io=i.forwardRef(({className:t,...s},r)=>e.jsx(eo,{ref:r,className:v("text-sm font-semibold [&+div]:text-xs",t),...s}));io.displayName=eo.displayName;const lo=i.forwardRef(({className:t,...s},r)=>e.jsx(to,{ref:r,className:v("text-sm opacity-90",t),...s}));lo.displayName=to.displayName;function dm(){const{toasts:t}=zt();return e.jsxs(im,{children:[t.map(function({id:s,title:r,description:a,action:n,...o}){return e.jsxs(no,{...o,children:[e.jsxs("div",{className:"grid gap-1",children:[r&&e.jsx(io,{children:r}),a&&e.jsx(lo,{children:a})]}),n,e.jsx(oo,{})]},s)}),e.jsx(ao,{})]})}function um({children:t}){return e.jsx("div",{className:"flex min-h-screen",children:e.jsxs(Tn,{children:[e.jsx(zp,{}),e.jsxs(In,{children:[e.jsxs("header",{className:"flex h-16 shrink-0 items-center gap-2 border-b px-4",children:[e.jsx(An,{}),e.jsx(Vs,{orientation:"vertical",className:"mr-2 h-4"}),e.jsx(mp,{}),e.jsx("div",{className:"ml-auto px-4",children:e.jsx(Hi,{})})]}),e.jsx("main",{className:"flex flex-1 flex-col",children:t}),e.jsx(dm,{}),e.jsx(Vp,{})]})]})})}var pm=function(){return null};const mm=new _i({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:!1,staleTime:5*60*1e3}}});function gm({children:t}){return e.jsxs(Ii,{client:mm,children:[t,e.jsx(pm,{initialIsOpen:!1})]})}function fm({children:t}){const[s,r]=i.useState(null),[a,n]=i.useState(null),[o,l]=i.useState(!0),c=i.useRef(!1),d=i.useCallback(async()=>{if(!c.current){c.current=!0,l(!0);try{const m=await fetch("/ui/api/v1/cluster/nodes");if(!m.ok)throw new Error(`Failed to fetch cluster data: ${m.statusText}`);const f=await m.json();r(f),n(null)}catch(m){n(m instanceof Error?m.message:"An unknown error occurred")}finally{l(!1),c.current=!1}}},[]),u=i.useCallback(async()=>{await d()},[d]);return i.useEffect(()=>{d()},[d]),e.jsx(fa.Provider,{value:{cluster:s,error:a,isLoading:o,refresh:u},children:t})}function hm(){return e.jsx(gm,{children:e.jsx(qi,{defaultTheme:"dark",storageKey:"loki-ui-theme",children:e.jsx(fm,{children:e.jsx(um,{children:e.jsx(Co,{children:Nn.map(t=>e.jsx(To,{path:t.path,element:t.element},t.path))})})})})})}const xm=kn(),bm=Ro([{path:"*",element:e.jsx(hm,{})}],{basename:xm,future:{v7_relativeSplatPath:!0}}),co=document.getElementById("root");if(!co)throw new Error("Root element not found");ca(co).render(e.jsx(i.StrictMode,{children:e.jsx(Ao,{router:bm,future:{v7_startTransition:!0}})})); diff --git a/pkg/ui/frontend/dist/assets/query-management-DbWM5GrR.js b/pkg/ui/frontend/dist/assets/query-management-DbWM5GrR.js new file mode 100644 index 0000000000..47a82c4617 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/query-management-DbWM5GrR.js @@ -0,0 +1 @@ +var at=t=>{throw TypeError(t)};var He=(t,e,s)=>e.has(t)||at("Cannot "+s);var r=(t,e,s)=>(He(t,e,"read from private field"),s?s.call(t):e.get(t)),l=(t,e,s)=>e.has(t)?at("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,s),u=(t,e,s,i)=>(He(t,e,"write to private field"),i?i.call(t,s):e.set(t,s),s),p=(t,e,s)=>(He(t,e,"access private method"),s);var ke=(t,e,s,i)=>({set _(n){u(t,e,n,s)},get _(){return r(t,e,i)}});import{r as L}from"./react-core-D_V7s-9r.js";import{j as jt}from"./radix-core-ByqQ8fsu.js";var Ue=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},de=typeof window>"u"||"Deno"in globalThis;function k(){}function kt(t,e){return typeof t=="function"?t(e):t}function Ge(t){return typeof t=="number"&&t>=0&&t!==1/0}function Ft(t,e){return Math.max(t+(e||0)-Date.now(),0)}function pe(t,e){return typeof t=="function"?t(e):t}function G(t,e){return typeof t=="function"?t(e):t}function ut(t,e){const{type:s="all",exact:i,fetchStatus:n,predicate:a,queryKey:h,stale:c}=t;if(h){if(i){if(e.queryHash!==st(h,e.options))return!1}else if(!Te(e.queryKey,h))return!1}if(s!=="all"){const d=e.isActive();if(s==="active"&&!d||s==="inactive"&&d)return!1}return!(typeof c=="boolean"&&e.isStale()!==c||n&&n!==e.state.fetchStatus||a&&!a(e))}function ht(t,e){const{exact:s,status:i,predicate:n,mutationKey:a}=t;if(a){if(!e.options.mutationKey)return!1;if(s){if(Me(e.options.mutationKey)!==Me(a))return!1}else if(!Te(e.options.mutationKey,a))return!1}return!(i&&e.state.status!==i||n&&!n(e))}function st(t,e){return((e==null?void 0:e.queryKeyHashFn)||Me)(t)}function Me(t){return JSON.stringify(t,(e,s)=>Be(s)?Object.keys(s).sort().reduce((i,n)=>(i[n]=s[n],i),{}):s)}function Te(t,e){return t===e?!0:typeof t!=typeof e?!1:t&&e&&typeof t=="object"&&typeof e=="object"?!Object.keys(e).some(s=>!Te(t[s],e[s])):!1}function Qt(t,e){if(t===e)return t;const s=ot(t)&&ot(e);if(s||Be(t)&&Be(e)){const i=s?t:Object.keys(t),n=i.length,a=s?e:Object.keys(e),h=a.length,c=s?[]:{};let d=0;for(let w=0;w{setTimeout(e,t)})}function ze(t,e,s){return typeof s.structuralSharing=="function"?s.structuralSharing(t,e):s.structuralSharing!==!1?Qt(t,e):e}function Kt(t,e,s=0){const i=[...t,e];return s&&i.length>s?i.slice(1):i}function Ht(t,e,s=0){const i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}var it=Symbol();function Et(t,e){return!t.queryFn&&(e!=null&&e.initialPromise)?()=>e.initialPromise:!t.queryFn||t.queryFn===it?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}var re,X,me,bt,_t=(bt=class extends Ue{constructor(){super();l(this,re);l(this,X);l(this,me);u(this,me,e=>{if(!de&&window.addEventListener){const s=()=>e();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){r(this,X)||this.setEventListener(r(this,me))}onUnsubscribe(){var e;this.hasListeners()||((e=r(this,X))==null||e.call(this),u(this,X,void 0))}setEventListener(e){var s;u(this,me,e),(s=r(this,X))==null||s.call(this),u(this,X,e(i=>{typeof i=="boolean"?this.setFocused(i):this.onFocus()}))}setFocused(e){r(this,re)!==e&&(u(this,re,e),this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(s=>{s(e)})}isFocused(){var e;return typeof r(this,re)=="boolean"?r(this,re):((e=globalThis.document)==null?void 0:e.visibilityState)!=="hidden"}},re=new WeakMap,X=new WeakMap,me=new WeakMap,bt),rt=new _t,be,Y,ge,gt,Gt=(gt=class extends Ue{constructor(){super();l(this,be,!0);l(this,Y);l(this,ge);u(this,ge,e=>{if(!de&&window.addEventListener){const s=()=>e(!0),i=()=>e(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",i,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",i)}}})}onSubscribe(){r(this,Y)||this.setEventListener(r(this,ge))}onUnsubscribe(){var e;this.hasListeners()||((e=r(this,Y))==null||e.call(this),u(this,Y,void 0))}setEventListener(e){var s;u(this,ge,e),(s=r(this,Y))==null||s.call(this),u(this,Y,e(this.setOnline.bind(this)))}setOnline(e){r(this,be)!==e&&(u(this,be,e),this.listeners.forEach(i=>{i(e)}))}isOnline(){return r(this,be)}},be=new WeakMap,Y=new WeakMap,ge=new WeakMap,gt),Ke=new Gt;function Ve(){let t,e;const s=new Promise((n,a)=>{t=n,e=a});s.status="pending",s.catch(()=>{});function i(n){Object.assign(s,n),delete s.resolve,delete s.reject}return s.resolve=n=>{i({status:"fulfilled",value:n}),t(n)},s.reject=n=>{i({status:"rejected",reason:n}),e(n)},s}function Nt(t){return Math.min(1e3*2**t,3e4)}function Dt(t){return(t??"online")==="online"?Ke.isOnline():!0}var Mt=class extends Error{constructor(t){super("CancelledError"),this.revert=t==null?void 0:t.revert,this.silent=t==null?void 0:t.silent}};function _e(t){return t instanceof Mt}function Tt(t){let e=!1,s=0,i=!1,n;const a=Ve(),h=f=>{var y;i||(C(new Mt(f)),(y=t.abort)==null||y.call(t))},c=()=>{e=!0},d=()=>{e=!1},w=()=>rt.isFocused()&&(t.networkMode==="always"||Ke.isOnline())&&t.canRun(),b=()=>Dt(t.networkMode)&&t.canRun(),o=f=>{var y;i||(i=!0,(y=t.onSuccess)==null||y.call(t,f),n==null||n(),a.resolve(f))},C=f=>{var y;i||(i=!0,(y=t.onError)==null||y.call(t,f),n==null||n(),a.reject(f))},g=()=>new Promise(f=>{var y;n=Q=>{(i||w())&&f(Q)},(y=t.onPause)==null||y.call(t)}).then(()=>{var f;n=void 0,i||(f=t.onContinue)==null||f.call(t)}),S=()=>{if(i)return;let f;const y=s===0?t.initialPromise:void 0;try{f=y??t.fn()}catch(Q){f=Promise.reject(Q)}Promise.resolve(f).then(o).catch(Q=>{var K;if(i)return;const T=t.retry??(de?0:3),R=t.retryDelay??Nt,D=typeof R=="function"?R(s,Q):R,U=T===!0||typeof T=="number"&&sw()?void 0:g()).then(()=>{e?C(Q):S()})})};return{promise:a,cancel:h,continue:()=>(n==null||n(),a),cancelRetry:c,continueRetry:d,canStart:b,start:()=>(b()?S():g().then(S),a)}}function Bt(){let t=[],e=0,s=c=>{c()},i=c=>{c()},n=c=>setTimeout(c,0);const a=c=>{e?t.push(c):n(()=>{s(c)})},h=()=>{const c=t;t=[],c.length&&n(()=>{i(()=>{c.forEach(d=>{s(d)})})})};return{batch:c=>{let d;e++;try{d=c()}finally{e--,e||h()}return d},batchCalls:c=>(...d)=>{a(()=>{c(...d)})},schedule:a,setNotifyFunction:c=>{s=c},setBatchNotifyFunction:c=>{i=c},setScheduler:c=>{n=c}}}var E=Bt(),ne,vt,At=(vt=class{constructor(){l(this,ne)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ge(this.gcTime)&&u(this,ne,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(de?1/0:5*60*1e3))}clearGcTimeout(){r(this,ne)&&(clearTimeout(r(this,ne)),u(this,ne,void 0))}},ne=new WeakMap,vt),ve,we,j,ae,M,Ae,ue,H,$,wt,zt=(wt=class extends At{constructor(e){super();l(this,H);l(this,ve);l(this,we);l(this,j);l(this,ae);l(this,M);l(this,Ae);l(this,ue);u(this,ue,!1),u(this,Ae,e.defaultOptions),this.setOptions(e.options),this.observers=[],u(this,ae,e.client),u(this,j,r(this,ae).getQueryCache()),this.queryKey=e.queryKey,this.queryHash=e.queryHash,u(this,ve,Vt(this.options)),this.state=e.state??r(this,ve),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var e;return(e=r(this,M))==null?void 0:e.promise}setOptions(e){this.options={...r(this,Ae),...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&r(this,j).remove(this)}setData(e,s){const i=ze(this.state.data,e,this.options);return p(this,H,$).call(this,{data:i,type:"success",dataUpdatedAt:s==null?void 0:s.updatedAt,manual:s==null?void 0:s.manual}),i}setState(e,s){p(this,H,$).call(this,{type:"setState",state:e,setStateOptions:s})}cancel(e){var i,n;const s=(i=r(this,M))==null?void 0:i.promise;return(n=r(this,M))==null||n.cancel(e),s?s.then(k).catch(k):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(r(this,ve))}isActive(){return this.observers.some(e=>G(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===it||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Ft(this.state.dataUpdatedAt,e)}onFocus(){var s;const e=this.observers.find(i=>i.shouldFetchOnWindowFocus());e==null||e.refetch({cancelRefetch:!1}),(s=r(this,M))==null||s.continue()}onOnline(){var s;const e=this.observers.find(i=>i.shouldFetchOnReconnect());e==null||e.refetch({cancelRefetch:!1}),(s=r(this,M))==null||s.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),r(this,j).notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(s=>s!==e),this.observers.length||(r(this,M)&&(r(this,ue)?r(this,M).cancel({revert:!0}):r(this,M).cancelRetry()),this.scheduleGc()),r(this,j).notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||p(this,H,$).call(this,{type:"invalidate"})}fetch(e,s){var d,w,b;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(s!=null&&s.cancelRefetch))this.cancel({silent:!0});else if(r(this,M))return r(this,M).continueRetry(),r(this,M).promise}if(e&&this.setOptions(e),!this.options.queryFn){const o=this.observers.find(C=>C.options.queryFn);o&&this.setOptions(o.options)}const i=new AbortController,n=o=>{Object.defineProperty(o,"signal",{enumerable:!0,get:()=>(u(this,ue,!0),i.signal)})},a=()=>{const o=Et(this.options,s),C={client:r(this,ae),queryKey:this.queryKey,meta:this.meta};return n(C),u(this,ue,!1),this.options.persister?this.options.persister(o,C,this):o(C)},h={fetchOptions:s,options:this.options,queryKey:this.queryKey,client:r(this,ae),state:this.state,fetchFn:a};n(h),(d=this.options.behavior)==null||d.onFetch(h,this),u(this,we,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((w=h.fetchOptions)==null?void 0:w.meta))&&p(this,H,$).call(this,{type:"fetch",meta:(b=h.fetchOptions)==null?void 0:b.meta});const c=o=>{var C,g,S,f;_e(o)&&o.silent||p(this,H,$).call(this,{type:"error",error:o}),_e(o)||((g=(C=r(this,j).config).onError)==null||g.call(C,o,this),(f=(S=r(this,j).config).onSettled)==null||f.call(S,this.state.data,o,this)),this.scheduleGc()};return u(this,M,Tt({initialPromise:s==null?void 0:s.initialPromise,fn:h.fetchFn,abort:i.abort.bind(i),onSuccess:o=>{var C,g,S,f;if(o===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(o)}catch(y){c(y);return}(g=(C=r(this,j).config).onSuccess)==null||g.call(C,o,this),(f=(S=r(this,j).config).onSettled)==null||f.call(S,o,this.state.error,this),this.scheduleGc()},onError:c,onFail:(o,C)=>{p(this,H,$).call(this,{type:"failed",failureCount:o,error:C})},onPause:()=>{p(this,H,$).call(this,{type:"pause"})},onContinue:()=>{p(this,H,$).call(this,{type:"continue"})},retry:h.options.retry,retryDelay:h.options.retryDelay,networkMode:h.options.networkMode,canRun:()=>!0})),r(this,M).start()}},ve=new WeakMap,we=new WeakMap,j=new WeakMap,ae=new WeakMap,M=new WeakMap,Ae=new WeakMap,ue=new WeakMap,H=new WeakSet,$=function(e){const s=i=>{switch(e.type){case"failed":return{...i,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...i,fetchStatus:"paused"};case"continue":return{...i,fetchStatus:"fetching"};case"fetch":return{...i,...It(i.data,this.options),fetchMeta:e.meta??null};case"success":return{...i,data:e.data,dataUpdateCount:i.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const n=e.error;return _e(n)&&n.revert&&r(this,we)?{...r(this,we),fetchStatus:"idle"}:{...i,error:n,errorUpdateCount:i.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:i.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...i,isInvalidated:!0};case"setState":return{...i,...e.state}}};this.state=s(this.state),E.batch(()=>{this.observers.forEach(i=>{i.onQueryUpdate()}),r(this,j).notify({query:this,type:"updated",action:e})})},wt);function It(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Dt(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function Vt(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,s=e!==void 0,i=s?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var N,Ct,$t=(Ct=class extends Ue{constructor(e={}){super();l(this,N);this.config=e,u(this,N,new Map)}build(e,s,i){const n=s.queryKey,a=s.queryHash??st(n,s);let h=this.get(a);return h||(h=new zt({client:e,queryKey:n,queryHash:a,options:e.defaultQueryOptions(s),state:i,defaultOptions:e.getQueryDefaults(n)}),this.add(h)),h}add(e){r(this,N).has(e.queryHash)||(r(this,N).set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const s=r(this,N).get(e.queryHash);s&&(e.destroy(),s===e&&r(this,N).delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){E.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return r(this,N).get(e)}getAll(){return[...r(this,N).values()]}find(e){const s={exact:!0,...e};return this.getAll().find(i=>ut(s,i))}findAll(e={}){const s=this.getAll();return Object.keys(e).length>0?s.filter(i=>ut(e,i)):s}notify(e){E.batch(()=>{this.listeners.forEach(s=>{s(e)})})}onFocus(){E.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){E.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},N=new WeakMap,Ct),B,I,he,z,J,Ot,Wt=(Ot=class extends At{constructor(e){super();l(this,z);l(this,B);l(this,I);l(this,he);this.mutationId=e.mutationId,u(this,I,e.mutationCache),u(this,B,[]),this.state=e.state||Jt(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){r(this,B).includes(e)||(r(this,B).push(e),this.clearGcTimeout(),r(this,I).notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){u(this,B,r(this,B).filter(s=>s!==e)),this.scheduleGc(),r(this,I).notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){r(this,B).length||(this.state.status==="pending"?this.scheduleGc():r(this,I).remove(this))}continue(){var e;return((e=r(this,he))==null?void 0:e.continue())??this.execute(this.state.variables)}async execute(e){var n,a,h,c,d,w,b,o,C,g,S,f,y,Q,T,R,D,U,K,A;u(this,he,Tt({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(F,O)=>{p(this,z,J).call(this,{type:"failed",failureCount:F,error:O})},onPause:()=>{p(this,z,J).call(this,{type:"pause"})},onContinue:()=>{p(this,z,J).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>r(this,I).canRun(this)}));const s=this.state.status==="pending",i=!r(this,he).canStart();try{if(!s){p(this,z,J).call(this,{type:"pending",variables:e,isPaused:i}),await((a=(n=r(this,I).config).onMutate)==null?void 0:a.call(n,e,this));const O=await((c=(h=this.options).onMutate)==null?void 0:c.call(h,e));O!==this.state.context&&p(this,z,J).call(this,{type:"pending",context:O,variables:e,isPaused:i})}const F=await r(this,he).start();return await((w=(d=r(this,I).config).onSuccess)==null?void 0:w.call(d,F,e,this.state.context,this)),await((o=(b=this.options).onSuccess)==null?void 0:o.call(b,F,e,this.state.context)),await((g=(C=r(this,I).config).onSettled)==null?void 0:g.call(C,F,null,this.state.variables,this.state.context,this)),await((f=(S=this.options).onSettled)==null?void 0:f.call(S,F,null,e,this.state.context)),p(this,z,J).call(this,{type:"success",data:F}),F}catch(F){try{throw await((Q=(y=r(this,I).config).onError)==null?void 0:Q.call(y,F,e,this.state.context,this)),await((R=(T=this.options).onError)==null?void 0:R.call(T,F,e,this.state.context)),await((U=(D=r(this,I).config).onSettled)==null?void 0:U.call(D,void 0,F,this.state.variables,this.state.context,this)),await((A=(K=this.options).onSettled)==null?void 0:A.call(K,void 0,F,e,this.state.context)),F}finally{p(this,z,J).call(this,{type:"error",error:F})}}finally{r(this,I).runNext(this)}}},B=new WeakMap,I=new WeakMap,he=new WeakMap,z=new WeakSet,J=function(e){const s=i=>{switch(e.type){case"failed":return{...i,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...i,isPaused:!0};case"continue":return{...i,isPaused:!1};case"pending":return{...i,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...i,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...i,data:void 0,error:e.error,failureCount:i.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=s(this.state),E.batch(()=>{r(this,B).forEach(i=>{i.onMutationUpdate(e)}),r(this,I).notify({mutation:this,type:"updated",action:e})})},Ot);function Jt(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var W,_,Ie,Rt,Xt=(Rt=class extends Ue{constructor(e={}){super();l(this,W);l(this,_);l(this,Ie);this.config=e,u(this,W,new Set),u(this,_,new Map),u(this,Ie,0)}build(e,s,i){const n=new Wt({mutationCache:this,mutationId:++ke(this,Ie)._,options:e.defaultMutationOptions(s),state:i});return this.add(n),n}add(e){r(this,W).add(e);const s=Le(e);if(typeof s=="string"){const i=r(this,_).get(s);i?i.push(e):r(this,_).set(s,[e])}this.notify({type:"added",mutation:e})}remove(e){if(r(this,W).delete(e)){const s=Le(e);if(typeof s=="string"){const i=r(this,_).get(s);if(i)if(i.length>1){const n=i.indexOf(e);n!==-1&&i.splice(n,1)}else i[0]===e&&r(this,_).delete(s)}}this.notify({type:"removed",mutation:e})}canRun(e){const s=Le(e);if(typeof s=="string"){const i=r(this,_).get(s),n=i==null?void 0:i.find(a=>a.state.status==="pending");return!n||n===e}else return!0}runNext(e){var i;const s=Le(e);if(typeof s=="string"){const n=(i=r(this,_).get(s))==null?void 0:i.find(a=>a!==e&&a.state.isPaused);return(n==null?void 0:n.continue())??Promise.resolve()}else return Promise.resolve()}clear(){E.batch(()=>{r(this,W).forEach(e=>{this.notify({type:"removed",mutation:e})}),r(this,W).clear(),r(this,_).clear()})}getAll(){return Array.from(r(this,W))}find(e){const s={exact:!0,...e};return this.getAll().find(i=>ht(s,i))}findAll(e={}){return this.getAll().filter(s=>ht(e,s))}notify(e){E.batch(()=>{this.listeners.forEach(s=>{s(e)})})}resumePausedMutations(){const e=this.getAll().filter(s=>s.state.isPaused);return E.batch(()=>Promise.all(e.map(s=>s.continue().catch(k))))}},W=new WeakMap,_=new WeakMap,Ie=new WeakMap,Rt);function Le(t){var e;return(e=t.options.scope)==null?void 0:e.id}function lt(t){return{onFetch:(e,s)=>{var b,o,C,g,S;const i=e.options,n=(C=(o=(b=e.fetchOptions)==null?void 0:b.meta)==null?void 0:o.fetchMore)==null?void 0:C.direction,a=((g=e.state.data)==null?void 0:g.pages)||[],h=((S=e.state.data)==null?void 0:S.pageParams)||[];let c={pages:[],pageParams:[]},d=0;const w=async()=>{let f=!1;const y=R=>{Object.defineProperty(R,"signal",{enumerable:!0,get:()=>(e.signal.aborted?f=!0:e.signal.addEventListener("abort",()=>{f=!0}),e.signal)})},Q=Et(e.options,e.fetchOptions),T=async(R,D,U)=>{if(f)return Promise.reject();if(D==null&&R.pages.length)return Promise.resolve(R);const K={client:e.client,queryKey:e.queryKey,pageParam:D,direction:U?"backward":"forward",meta:e.options.meta};y(K);const A=await Q(K),{maxPages:F}=e.options,O=U?Ht:Kt;return{pages:O(R.pages,A,F),pageParams:O(R.pageParams,D,F)}};if(n&&a.length){const R=n==="backward",D=R?Yt:dt,U={pages:a,pageParams:h},K=D(i,U);c=await T(U,K,R)}else{const R=t??a.length;do{const D=d===0?h[0]??i.initialPageParam:dt(i,c);if(d>0&&D==null)break;c=await T(c,D),d++}while(d{var f,y;return(y=(f=e.options).persister)==null?void 0:y.call(f,w,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},s)}:e.fetchFn=w}}}function dt(t,{pages:e,pageParams:s}){const i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,s[i],s):void 0}function Yt(t,{pages:e,pageParams:s}){var i;return e.length>0?(i=t.getPreviousPageParam)==null?void 0:i.call(t,e[0],e,s[0],s):void 0}var P,Z,ee,Ce,Oe,te,Re,Pe,Pt,gs=(Pt=class{constructor(t={}){l(this,P);l(this,Z);l(this,ee);l(this,Ce);l(this,Oe);l(this,te);l(this,Re);l(this,Pe);u(this,P,t.queryCache||new $t),u(this,Z,t.mutationCache||new Xt),u(this,ee,t.defaultOptions||{}),u(this,Ce,new Map),u(this,Oe,new Map),u(this,te,0)}mount(){ke(this,te)._++,r(this,te)===1&&(u(this,Re,rt.subscribe(async t=>{t&&(await this.resumePausedMutations(),r(this,P).onFocus())})),u(this,Pe,Ke.subscribe(async t=>{t&&(await this.resumePausedMutations(),r(this,P).onOnline())})))}unmount(){var t,e;ke(this,te)._--,r(this,te)===0&&((t=r(this,Re))==null||t.call(this),u(this,Re,void 0),(e=r(this,Pe))==null||e.call(this),u(this,Pe,void 0))}isFetching(t){return r(this,P).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return r(this,Z).findAll({...t,status:"pending"}).length}getQueryData(t){var s;const e=this.defaultQueryOptions({queryKey:t});return(s=r(this,P).get(e.queryHash))==null?void 0:s.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),s=r(this,P).build(this,e),i=s.state.data;return i===void 0?this.fetchQuery(t):(t.revalidateIfStale&&s.isStaleByTime(pe(e.staleTime,s))&&this.prefetchQuery(e),Promise.resolve(i))}getQueriesData(t){return r(this,P).findAll(t).map(({queryKey:e,state:s})=>{const i=s.data;return[e,i]})}setQueryData(t,e,s){const i=this.defaultQueryOptions({queryKey:t}),n=r(this,P).get(i.queryHash),a=n==null?void 0:n.state.data,h=kt(e,a);if(h!==void 0)return r(this,P).build(this,i).setData(h,{...s,manual:!0})}setQueriesData(t,e,s){return E.batch(()=>r(this,P).findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,e,s)]))}getQueryState(t){var s;const e=this.defaultQueryOptions({queryKey:t});return(s=r(this,P).get(e.queryHash))==null?void 0:s.state}removeQueries(t){const e=r(this,P);E.batch(()=>{e.findAll(t).forEach(s=>{e.remove(s)})})}resetQueries(t,e){const s=r(this,P),i={type:"active",...t};return E.batch(()=>(s.findAll(t).forEach(n=>{n.reset()}),this.refetchQueries(i,e)))}cancelQueries(t,e={}){const s={revert:!0,...e},i=E.batch(()=>r(this,P).findAll(t).map(n=>n.cancel(s)));return Promise.all(i).then(k).catch(k)}invalidateQueries(t,e={}){return E.batch(()=>{if(r(this,P).findAll(t).forEach(i=>{i.invalidate()}),(t==null?void 0:t.refetchType)==="none")return Promise.resolve();const s={...t,type:(t==null?void 0:t.refetchType)??(t==null?void 0:t.type)??"active"};return this.refetchQueries(s,e)})}refetchQueries(t,e={}){const s={...e,cancelRefetch:e.cancelRefetch??!0},i=E.batch(()=>r(this,P).findAll(t).filter(n=>!n.isDisabled()).map(n=>{let a=n.fetch(void 0,s);return s.throwOnError||(a=a.catch(k)),n.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(i).then(k)}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const s=r(this,P).build(this,e);return s.isStaleByTime(pe(e.staleTime,s))?s.fetch(e):Promise.resolve(s.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(k).catch(k)}fetchInfiniteQuery(t){return t.behavior=lt(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(k).catch(k)}ensureInfiniteQueryData(t){return t.behavior=lt(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return Ke.isOnline()?r(this,Z).resumePausedMutations():Promise.resolve()}getQueryCache(){return r(this,P)}getMutationCache(){return r(this,Z)}getDefaultOptions(){return r(this,ee)}setDefaultOptions(t){u(this,ee,t)}setQueryDefaults(t,e){r(this,Ce).set(Me(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...r(this,Ce).values()],s={};return e.forEach(i=>{Te(t,i.queryKey)&&Object.assign(s,i.defaultOptions)}),s}setMutationDefaults(t,e){r(this,Oe).set(Me(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...r(this,Oe).values()];let s={};return e.forEach(i=>{Te(t,i.mutationKey)&&(s={...s,...i.defaultOptions})}),s}defaultQueryOptions(t){if(t._defaulted)return t;const e={...r(this,ee).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=st(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===it&&(e.enabled=!1),e}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...r(this,ee).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){r(this,P).clear(),r(this,Z).clear()}},P=new WeakMap,Z=new WeakMap,ee=new WeakMap,Ce=new WeakMap,Oe=new WeakMap,te=new WeakMap,Re=new WeakMap,Pe=new WeakMap,Pt),q,m,xe,x,oe,Se,se,V,qe,Fe,Qe,ce,le,ie,Ee,v,De,$e,We,Je,Xe,Ye,Ze,et,xt,St,Zt=(St=class extends Ue{constructor(e,s){super();l(this,v);l(this,q);l(this,m);l(this,xe);l(this,x);l(this,oe);l(this,Se);l(this,se);l(this,V);l(this,qe);l(this,Fe);l(this,Qe);l(this,ce);l(this,le);l(this,ie);l(this,Ee,new Set);this.options=s,u(this,q,e),u(this,V,null),u(this,se,Ve()),this.options.experimental_prefetchInRender||r(this,se).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(r(this,m).addObserver(this),ft(r(this,m),this.options)?p(this,v,De).call(this):this.updateResult(),p(this,v,Xe).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return tt(r(this,m),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return tt(r(this,m),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,p(this,v,Ye).call(this),p(this,v,Ze).call(this),r(this,m).removeObserver(this)}setOptions(e,s){const i=this.options,n=r(this,m);if(this.options=r(this,q).defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof G(this.options.enabled,r(this,m))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");p(this,v,et).call(this),r(this,m).setOptions(this.options),i._defaulted&&!Ne(this.options,i)&&r(this,q).getQueryCache().notify({type:"observerOptionsUpdated",query:r(this,m),observer:this});const a=this.hasListeners();a&&yt(r(this,m),n,this.options,i)&&p(this,v,De).call(this),this.updateResult(s),a&&(r(this,m)!==n||G(this.options.enabled,r(this,m))!==G(i.enabled,r(this,m))||pe(this.options.staleTime,r(this,m))!==pe(i.staleTime,r(this,m)))&&p(this,v,$e).call(this);const h=p(this,v,We).call(this);a&&(r(this,m)!==n||G(this.options.enabled,r(this,m))!==G(i.enabled,r(this,m))||h!==r(this,ie))&&p(this,v,Je).call(this,h)}getOptimisticResult(e){const s=r(this,q).getQueryCache().build(r(this,q),e),i=this.createResult(s,e);return ts(this,i)&&(u(this,x,i),u(this,Se,this.options),u(this,oe,r(this,m).state)),i}getCurrentResult(){return r(this,x)}trackResult(e,s){const i={};return Object.keys(e).forEach(n=>{Object.defineProperty(i,n,{configurable:!1,enumerable:!0,get:()=>(this.trackProp(n),s==null||s(n),e[n])})}),i}trackProp(e){r(this,Ee).add(e)}getCurrentQuery(){return r(this,m)}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const s=r(this,q).defaultQueryOptions(e),i=r(this,q).getQueryCache().build(r(this,q),s);return i.fetch().then(()=>this.createResult(i,s))}fetch(e){return p(this,v,De).call(this,{...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),r(this,x)))}createResult(e,s){var F;const i=r(this,m),n=this.options,a=r(this,x),h=r(this,oe),c=r(this,Se),w=e!==i?e.state:r(this,xe),{state:b}=e;let o={...b},C=!1,g;if(s._optimisticResults){const O=this.hasListeners(),fe=!O&&ft(e,s),ye=O&&yt(e,i,s,n);(fe||ye)&&(o={...o,...It(b.data,e.options)}),s._optimisticResults==="isRestoring"&&(o.fetchStatus="idle")}let{error:S,errorUpdatedAt:f,status:y}=o;if(s.select&&o.data!==void 0)if(a&&o.data===(h==null?void 0:h.data)&&s.select===r(this,qe))g=r(this,Fe);else try{u(this,qe,s.select),g=s.select(o.data),g=ze(a==null?void 0:a.data,g,s),u(this,Fe,g),u(this,V,null)}catch(O){u(this,V,O)}else g=o.data;if(s.placeholderData!==void 0&&g===void 0&&y==="pending"){let O;if(a!=null&&a.isPlaceholderData&&s.placeholderData===(c==null?void 0:c.placeholderData))O=a.data;else if(O=typeof s.placeholderData=="function"?s.placeholderData((F=r(this,Qe))==null?void 0:F.state.data,r(this,Qe)):s.placeholderData,s.select&&O!==void 0)try{O=s.select(O),u(this,V,null)}catch(fe){u(this,V,fe)}O!==void 0&&(y="success",g=ze(a==null?void 0:a.data,O,s),C=!0)}r(this,V)&&(S=r(this,V),g=r(this,Fe),f=Date.now(),y="error");const Q=o.fetchStatus==="fetching",T=y==="pending",R=y==="error",D=T&&Q,U=g!==void 0,A={status:y,fetchStatus:o.fetchStatus,isPending:T,isSuccess:y==="success",isError:R,isInitialLoading:D,isLoading:D,data:g,dataUpdatedAt:o.dataUpdatedAt,error:S,errorUpdatedAt:f,failureCount:o.fetchFailureCount,failureReason:o.fetchFailureReason,errorUpdateCount:o.errorUpdateCount,isFetched:o.dataUpdateCount>0||o.errorUpdateCount>0,isFetchedAfterMount:o.dataUpdateCount>w.dataUpdateCount||o.errorUpdateCount>w.errorUpdateCount,isFetching:Q,isRefetching:Q&&!T,isLoadingError:R&&!U,isPaused:o.fetchStatus==="paused",isPlaceholderData:C,isRefetchError:R&&U,isStale:nt(e,s),refetch:this.refetch,promise:r(this,se)};if(this.options.experimental_prefetchInRender){const O=je=>{A.status==="error"?je.reject(A.error):A.data!==void 0&&je.resolve(A.data)},fe=()=>{const je=u(this,se,A.promise=Ve());O(je)},ye=r(this,se);switch(ye.status){case"pending":e.queryHash===i.queryHash&&O(ye);break;case"fulfilled":(A.status==="error"||A.data!==ye.value)&&fe();break;case"rejected":(A.status!=="error"||A.error!==ye.reason)&&fe();break}}return A}updateResult(e){const s=r(this,x),i=this.createResult(r(this,m),this.options);if(u(this,oe,r(this,m).state),u(this,Se,this.options),r(this,oe).data!==void 0&&u(this,Qe,r(this,m)),Ne(i,s))return;u(this,x,i);const n={},a=()=>{if(!s)return!0;const{notifyOnChangeProps:h}=this.options,c=typeof h=="function"?h():h;if(c==="all"||!c&&!r(this,Ee).size)return!0;const d=new Set(c??r(this,Ee));return this.options.throwOnError&&d.add("error"),Object.keys(r(this,x)).some(w=>{const b=w;return r(this,x)[b]!==s[b]&&d.has(b)})};(e==null?void 0:e.listeners)!==!1&&a()&&(n.listeners=!0),p(this,v,xt).call(this,{...n,...e})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&p(this,v,Xe).call(this)}},q=new WeakMap,m=new WeakMap,xe=new WeakMap,x=new WeakMap,oe=new WeakMap,Se=new WeakMap,se=new WeakMap,V=new WeakMap,qe=new WeakMap,Fe=new WeakMap,Qe=new WeakMap,ce=new WeakMap,le=new WeakMap,ie=new WeakMap,Ee=new WeakMap,v=new WeakSet,De=function(e){p(this,v,et).call(this);let s=r(this,m).fetch(this.options,e);return e!=null&&e.throwOnError||(s=s.catch(k)),s},$e=function(){p(this,v,Ye).call(this);const e=pe(this.options.staleTime,r(this,m));if(de||r(this,x).isStale||!Ge(e))return;const i=Ft(r(this,x).dataUpdatedAt,e)+1;u(this,ce,setTimeout(()=>{r(this,x).isStale||this.updateResult()},i))},We=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(r(this,m)):this.options.refetchInterval)??!1},Je=function(e){p(this,v,Ze).call(this),u(this,ie,e),!(de||G(this.options.enabled,r(this,m))===!1||!Ge(r(this,ie))||r(this,ie)===0)&&u(this,le,setInterval(()=>{(this.options.refetchIntervalInBackground||rt.isFocused())&&p(this,v,De).call(this)},r(this,ie)))},Xe=function(){p(this,v,$e).call(this),p(this,v,Je).call(this,p(this,v,We).call(this))},Ye=function(){r(this,ce)&&(clearTimeout(r(this,ce)),u(this,ce,void 0))},Ze=function(){r(this,le)&&(clearInterval(r(this,le)),u(this,le,void 0))},et=function(){const e=r(this,q).getQueryCache().build(r(this,q),this.options);if(e===r(this,m))return;const s=r(this,m);u(this,m,e),u(this,xe,e.state),this.hasListeners()&&(s==null||s.removeObserver(this),e.addObserver(this))},xt=function(e){E.batch(()=>{e.listeners&&this.listeners.forEach(s=>{s(r(this,x))}),r(this,q).getQueryCache().notify({query:r(this,m),type:"observerResultsUpdated"})})},St);function es(t,e){return G(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function ft(t,e){return es(t,e)||t.state.data!==void 0&&tt(t,e,e.refetchOnMount)}function tt(t,e,s){if(G(e.enabled,t)!==!1){const i=typeof s=="function"?s(t):s;return i==="always"||i!==!1&&nt(t,e)}return!1}function yt(t,e,s,i){return(t!==e||G(i.enabled,t)===!1)&&(!s.suspense||t.state.status!=="error")&&nt(t,s)}function nt(t,e){return G(e.enabled,t)!==!1&&t.isStaleByTime(pe(e.staleTime,t))}function ts(t,e){return!Ne(t.getCurrentResult(),e)}var qt=L.createContext(void 0),ss=t=>{const e=L.useContext(qt);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},vs=({client:t,children:e})=>(L.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),jt.jsx(qt.Provider,{value:t,children:e})),Ut=L.createContext(!1),is=()=>L.useContext(Ut);Ut.Provider;function rs(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var ns=L.createContext(rs()),as=()=>L.useContext(ns);function us(t,e){return typeof t=="function"?t(...e):!!t}function pt(){}var hs=(t,e)=>{(t.suspense||t.throwOnError||t.experimental_prefetchInRender)&&(e.isReset()||(t.retryOnMount=!1))},os=t=>{L.useEffect(()=>{t.clearReset()},[t])},cs=({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:n})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(n&&t.data===void 0||us(s,[t.error,i])),ls=t=>{const e=t.staleTime;t.suspense&&(t.staleTime=typeof e=="function"?(...s)=>Math.max(e(...s),1e3):Math.max(e??1e3,1e3),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3)))},ds=(t,e)=>t.isLoading&&t.isFetching&&!e,fs=(t,e)=>(t==null?void 0:t.suspense)&&e.isPending,mt=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function ys(t,e,s){var o,C,g,S,f;const i=ss(),n=is(),a=as(),h=i.defaultQueryOptions(t);(C=(o=i.getDefaultOptions().queries)==null?void 0:o._experimental_beforeQuery)==null||C.call(o,h),h._optimisticResults=n?"isRestoring":"optimistic",ls(h),hs(h,a),os(a);const c=!i.getQueryCache().get(h.queryHash),[d]=L.useState(()=>new e(i,h)),w=d.getOptimisticResult(h),b=!n&&t.subscribed!==!1;if(L.useSyncExternalStore(L.useCallback(y=>{const Q=b?d.subscribe(E.batchCalls(y)):pt;return d.updateResult(),Q},[d,b]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),L.useEffect(()=>{d.setOptions(h,{listeners:!1})},[h,d]),fs(h,w))throw mt(h,d,a);if(cs({result:w,errorResetBoundary:a,throwOnError:h.throwOnError,query:i.getQueryCache().get(h.queryHash),suspense:h.suspense}))throw w.error;if((S=(g=i.getDefaultOptions().queries)==null?void 0:g._experimental_afterQuery)==null||S.call(g,h,w),h.experimental_prefetchInRender&&!de&&ds(w,n)){const y=c?mt(h,d,a):(f=i.getQueryCache().get(h.queryHash))==null?void 0:f.promise;y==null||y.catch(pt).finally(()=>{d.updateResult()})}return h.notifyOnChangeProps?w:d.trackResult(w)}function ws(t,e){return ys(t,Zt)}export{gs as Q,ss as a,vs as b,ws as u}; diff --git a/pkg/ui/frontend/dist/assets/radix-core-ByqQ8fsu.js b/pkg/ui/frontend/dist/assets/radix-core-ByqQ8fsu.js new file mode 100644 index 0000000000..6ce59bacc2 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/radix-core-ByqQ8fsu.js @@ -0,0 +1,49 @@ +import{r as c,c as nn,R as Er,d as Cr}from"./react-core-D_V7s-9r.js";var rn={exports:{}},je={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Pr=c,Ar=Symbol.for("react.element"),Rr=Symbol.for("react.fragment"),Sr=Object.prototype.hasOwnProperty,Or=Pr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Tr={key:!0,ref:!0,__self:!0,__source:!0};function on(e,t,n){var r,o={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(r in t)Sr.call(t,r)&&!Tr.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:Ar,type:e,key:i,ref:s,props:o,_owner:Or.current}}je.Fragment=Rr;je.jsx=on;je.jsxs=on;rn.exports=je;var C=rn.exports;function kt(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function sn(...e){return t=>{let n=!1;const r=e.map(o=>{const i=kt(o,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let o=0;o{const{children:n,...r}=e,o=c.Children.toArray(n),i=o.find(Nr);if(i){const s=i.props.children,a=o.map(l=>l===i?c.Children.count(s)>1?c.Children.only(null):c.isValidElement(s)?s.props.children:null:l);return C.jsx(rt,{...r,ref:t,children:c.isValidElement(s)?c.cloneElement(s,void 0,a):null})}return C.jsx(rt,{...r,ref:t,children:n})});ft.displayName="Slot";var rt=c.forwardRef((e,t)=>{const{children:n,...r}=e;if(c.isValidElement(n)){const o=Lr(n);return c.cloneElement(n,{...Mr(r,n.props),ref:t?sn(t,o):o})}return c.Children.count(n)>1?c.Children.only(null):null});rt.displayName="SlotClone";var an=({children:e})=>C.jsx(C.Fragment,{children:e});function Nr(e){return c.isValidElement(e)&&e.type===an}function Mr(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...a)=>{i(...a),o(...a)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function Lr(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function As(e,t){const n=c.createContext(t),r=i=>{const{children:s,...a}=i,l=c.useMemo(()=>a,Object.values(a));return C.jsx(n.Provider,{value:l,children:s})};r.displayName=e+"Provider";function o(i){const s=c.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[r,o]}function dt(e,t=[]){let n=[];function r(i,s){const a=c.createContext(s),l=n.length;n=[...n,s];const u=d=>{var y;const{scope:m,children:h,...g}=d,p=((y=m==null?void 0:m[e])==null?void 0:y[l])||a,v=c.useMemo(()=>g,Object.values(g));return C.jsx(p.Provider,{value:v,children:h})};u.displayName=i+"Provider";function f(d,m){var p;const h=((p=m==null?void 0:m[e])==null?void 0:p[l])||a,g=c.useContext(h);if(g)return g;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[u,f]}const o=()=>{const i=n.map(s=>c.createContext(s));return function(a){const l=(a==null?void 0:a[e])||i;return c.useMemo(()=>({[`__scope${e}`]:{...a,[e]:l}}),[a,l])}};return o.scopeName=e,[r,Dr(o,...t)]}function Dr(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const s=r.reduce((a,{useScope:l,scopeName:u})=>{const d=l(i)[`__scope${u}`];return{...a,...d}},{});return c.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}function I(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function J(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e}),c.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function cn({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=_r({defaultProp:t,onChange:n}),i=e!==void 0,s=i?e:r,a=J(n),l=c.useCallback(u=>{if(i){const d=typeof u=="function"?u(e):u;d!==e&&a(d)}else o(u)},[i,e,o,a]);return[s,l]}function _r({defaultProp:e,onChange:t}){const n=c.useState(e),[r]=n,o=c.useRef(r),i=J(t);return c.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}var oe=globalThis!=null&&globalThis.document?c.useLayoutEffect:()=>{};function kr(e){const[t,n]=c.useState(void 0);return oe(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let s,a;if("borderBoxSize"in i){const l=i.borderBoxSize,u=Array.isArray(l)?l[0]:l;s=u.inlineSize,a=u.blockSize}else s=e.offsetWidth,a=e.offsetHeight;n({width:s,height:a})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}function Fr(e,t){return c.useReducer((n,r)=>t[n][r]??n,e)}var we=e=>{const{present:t,children:n}=e,r=Ir(t),o=typeof n=="function"?n({present:r.isPresent}):c.Children.only(n),i=K(r.ref,jr(o));return typeof n=="function"||r.isPresent?c.cloneElement(o,{ref:i}):null};we.displayName="Presence";function Ir(e){const[t,n]=c.useState(),r=c.useRef({}),o=c.useRef(e),i=c.useRef("none"),s=e?"mounted":"unmounted",[a,l]=Fr(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const u=Ae(r.current);i.current=a==="mounted"?u:"none"},[a]),oe(()=>{const u=r.current,f=o.current;if(f!==e){const m=i.current,h=Ae(u);e?l("MOUNT"):h==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(f&&m!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,l]),oe(()=>{if(t){let u;const f=t.ownerDocument.defaultView??window,d=h=>{const p=Ae(r.current).includes(h.animationName);if(h.target===t&&p&&(l("ANIMATION_END"),!o.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",u=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},m=h=>{h.target===t&&(i.current=Ae(r.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{f.clearTimeout(u),t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:c.useCallback(u=>{u&&(r.current=getComputedStyle(u)),n(u)},[])}}function Ae(e){return(e==null?void 0:e.animationName)||"none"}function jr(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Wr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],B=Wr.reduce((e,t)=>{const n=c.forwardRef((r,o)=>{const{asChild:i,...s}=r,a=i?ft:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),C.jsx(a,{...s,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function $r(e,t){e&&nn.flushSync(()=>e.dispatchEvent(t))}function Br(e,t=globalThis==null?void 0:globalThis.document){const n=J(e);c.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Hr="DismissableLayer",ot="dismissableLayer.update",Vr="dismissableLayer.pointerDownOutside",Ur="dismissableLayer.focusOutside",Ft,ln=c.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),We=c.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...l}=e,u=c.useContext(ln),[f,d]=c.useState(null),m=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=c.useState({}),g=K(t,P=>d(P)),p=Array.from(u.layers),[v]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),y=p.indexOf(v),w=f?p.indexOf(f):-1,b=u.layersWithOutsidePointerEventsDisabled.size>0,x=w>=y,E=Yr(P=>{const S=P.target,N=[...u.branches].some(O=>O.contains(S));!x||N||(o==null||o(P),s==null||s(P),P.defaultPrevented||a==null||a())},m),A=Xr(P=>{const S=P.target;[...u.branches].some(O=>O.contains(S))||(i==null||i(P),s==null||s(P),P.defaultPrevented||a==null||a())},m);return Br(P=>{w===u.layers.size-1&&(r==null||r(P),!P.defaultPrevented&&a&&(P.preventDefault(),a()))},m),c.useEffect(()=>{if(f)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Ft=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),It(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=Ft)}},[f,m,n,u]),c.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),It())},[f,u]),c.useEffect(()=>{const P=()=>h({});return document.addEventListener(ot,P),()=>document.removeEventListener(ot,P)},[]),C.jsx(B.div,{...l,ref:g,style:{pointerEvents:b?x?"auto":"none":void 0,...e.style},onFocusCapture:I(e.onFocusCapture,A.onFocusCapture),onBlurCapture:I(e.onBlurCapture,A.onBlurCapture),onPointerDownCapture:I(e.onPointerDownCapture,E.onPointerDownCapture)})});We.displayName=Hr;var zr="DismissableLayerBranch",un=c.forwardRef((e,t)=>{const n=c.useContext(ln),r=c.useRef(null),o=K(t,r);return c.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),C.jsx(B.div,{...e,ref:o})});un.displayName=zr;function Yr(e,t=globalThis==null?void 0:globalThis.document){const n=J(e),r=c.useRef(!1),o=c.useRef(()=>{});return c.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let l=function(){fn(Vr,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=l,t.addEventListener("click",o.current,{once:!0})):l()}else t.removeEventListener("click",o.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Xr(e,t=globalThis==null?void 0:globalThis.document){const n=J(e),r=c.useRef(!1);return c.useEffect(()=>{const o=i=>{i.target&&!r.current&&fn(Ur,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function It(){const e=new CustomEvent(ot);document.dispatchEvent(e)}function fn(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?$r(o,i):o.dispatchEvent(i)}var Rs=We,Ss=un,Ke=0;function Kr(){c.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??jt()),document.body.insertAdjacentElement("beforeend",e[1]??jt()),Ke++,()=>{Ke===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Ke--}},[])}function jt(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Ge="focusScope.autoFocusOnMount",qe="focusScope.autoFocusOnUnmount",Wt={bubbles:!1,cancelable:!0},Gr="FocusScope",dn=c.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...s}=e,[a,l]=c.useState(null),u=J(o),f=J(i),d=c.useRef(null),m=K(t,p=>l(p)),h=c.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;c.useEffect(()=>{if(r){let p=function(b){if(h.paused||!a)return;const x=b.target;a.contains(x)?d.current=x:Q(d.current,{select:!0})},v=function(b){if(h.paused||!a)return;const x=b.relatedTarget;x!==null&&(a.contains(x)||Q(d.current,{select:!0}))},y=function(b){if(document.activeElement===document.body)for(const E of b)E.removedNodes.length>0&&Q(a)};document.addEventListener("focusin",p),document.addEventListener("focusout",v);const w=new MutationObserver(y);return a&&w.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",v),w.disconnect()}}},[r,a,h.paused]),c.useEffect(()=>{if(a){Bt.add(h);const p=document.activeElement;if(!a.contains(p)){const y=new CustomEvent(Ge,Wt);a.addEventListener(Ge,u),a.dispatchEvent(y),y.defaultPrevented||(qr(to(pn(a)),{select:!0}),document.activeElement===p&&Q(a))}return()=>{a.removeEventListener(Ge,u),setTimeout(()=>{const y=new CustomEvent(qe,Wt);a.addEventListener(qe,f),a.dispatchEvent(y),y.defaultPrevented||Q(p??document.body,{select:!0}),a.removeEventListener(qe,f),Bt.remove(h)},0)}}},[a,u,f,h]);const g=c.useCallback(p=>{if(!n&&!r||h.paused)return;const v=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,y=document.activeElement;if(v&&y){const w=p.currentTarget,[b,x]=Zr(w);b&&x?!p.shiftKey&&y===x?(p.preventDefault(),n&&Q(b,{select:!0})):p.shiftKey&&y===b&&(p.preventDefault(),n&&Q(x,{select:!0})):y===w&&p.preventDefault()}},[n,r,h.paused]);return C.jsx(B.div,{tabIndex:-1,...s,ref:m,onKeyDown:g})});dn.displayName=Gr;function qr(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Q(r,{select:t}),document.activeElement!==n)return}function Zr(e){const t=pn(e),n=$t(t,e),r=$t(t.reverse(),e);return[n,r]}function pn(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function $t(e,t){for(const n of e)if(!Qr(n,{upTo:t}))return n}function Qr(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Jr(e){return e instanceof HTMLInputElement&&"select"in e}function Q(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Jr(e)&&t&&e.select()}}var Bt=eo();function eo(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Ht(e,t),e.unshift(t)},remove(t){var n;e=Ht(e,t),(n=e[0])==null||n.resume()}}}function Ht(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function to(e){return e.filter(t=>t.tagName!=="A")}var no=Er.useId||(()=>{}),ro=0;function hn(e){const[t,n]=c.useState(no());return oe(()=>{n(r=>r??String(ro++))},[e]),t?`radix-${t}`:""}const oo=["top","right","bottom","left"],ee=Math.min,j=Math.max,_e=Math.round,Re=Math.floor,Y=e=>({x:e,y:e}),io={left:"right",right:"left",bottom:"top",top:"bottom"},so={start:"end",end:"start"};function it(e,t,n){return j(e,ee(t,n))}function q(e,t){return typeof e=="function"?e(t):e}function Z(e){return e.split("-")[0]}function he(e){return e.split("-")[1]}function pt(e){return e==="x"?"y":"x"}function ht(e){return e==="y"?"height":"width"}function te(e){return["top","bottom"].includes(Z(e))?"y":"x"}function mt(e){return pt(te(e))}function ao(e,t,n){n===void 0&&(n=!1);const r=he(e),o=mt(e),i=ht(o);let s=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=ke(s)),[s,ke(s)]}function co(e){const t=ke(e);return[st(e),t,st(t)]}function st(e){return e.replace(/start|end/g,t=>so[t])}function lo(e,t,n){const r=["left","right"],o=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?i:s;default:return[]}}function uo(e,t,n,r){const o=he(e);let i=lo(Z(e),n==="start",r);return o&&(i=i.map(s=>s+"-"+o),t&&(i=i.concat(i.map(st)))),i}function ke(e){return e.replace(/left|right|bottom|top/g,t=>io[t])}function fo(e){return{top:0,right:0,bottom:0,left:0,...e}}function mn(e){return typeof e!="number"?fo(e):{top:e,right:e,bottom:e,left:e}}function Fe(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Vt(e,t,n){let{reference:r,floating:o}=e;const i=te(t),s=mt(t),a=ht(s),l=Z(t),u=i==="y",f=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,m=r[a]/2-o[a]/2;let h;switch(l){case"top":h={x:f,y:r.y-o.height};break;case"bottom":h={x:f,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:d};break;case"left":h={x:r.x-o.width,y:d};break;default:h={x:r.x,y:r.y}}switch(he(t)){case"start":h[s]-=m*(n&&u?-1:1);break;case"end":h[s]+=m*(n&&u?-1:1);break}return h}const po=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:s}=n,a=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(t));let u=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:d}=Vt(u,r,l),m=r,h={},g=0;for(let p=0;p({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:s,elements:a,middlewareData:l}=t,{element:u,padding:f=0}=q(e,t)||{};if(u==null)return{};const d=mn(f),m={x:n,y:r},h=mt(o),g=ht(h),p=await s.getDimensions(u),v=h==="y",y=v?"top":"left",w=v?"bottom":"right",b=v?"clientHeight":"clientWidth",x=i.reference[g]+i.reference[h]-m[h]-i.floating[g],E=m[h]-i.reference[h],A=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u));let P=A?A[b]:0;(!P||!await(s.isElement==null?void 0:s.isElement(A)))&&(P=a.floating[b]||i.floating[g]);const S=x/2-E/2,N=P/2-p[g]/2-1,O=ee(d[y],N),k=ee(d[w],N),F=O,M=P-p[g]-k,T=P/2-p[g]/2+S,$=it(F,T,M),L=!l.arrow&&he(o)!=null&&T!==$&&i.reference[g]/2-(TT<=0)){var k,F;const T=(((k=i.flip)==null?void 0:k.index)||0)+1,$=P[T];if($)return{data:{index:T,overflows:O},reset:{placement:$}};let L=(F=O.filter(D=>D.overflows[0]<=0).sort((D,R)=>D.overflows[1]-R.overflows[1])[0])==null?void 0:F.placement;if(!L)switch(h){case"bestFit":{var M;const D=(M=O.filter(R=>{if(A){const _=te(R.placement);return _===w||_==="y"}return!0}).map(R=>[R.placement,R.overflows.filter(_=>_>0).reduce((_,U)=>_+U,0)]).sort((R,_)=>R[1]-_[1])[0])==null?void 0:M[0];D&&(L=D);break}case"initialPlacement":L=a;break}if(o!==L)return{reset:{placement:L}}}return{}}}};function Ut(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zt(e){return oo.some(t=>e[t]>=0)}const vo=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=q(e,t);switch(r){case"referenceHidden":{const i=await ge(t,{...o,elementContext:"reference"}),s=Ut(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:zt(s)}}}case"escaped":{const i=await ge(t,{...o,altBoundary:!0}),s=Ut(i,n.floating);return{data:{escapedOffsets:s,escaped:zt(s)}}}default:return{}}}}};async function go(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),s=Z(n),a=he(n),l=te(n)==="y",u=["left","top"].includes(s)?-1:1,f=i&&l?-1:1,d=q(t,e);let{mainAxis:m,crossAxis:h,alignmentAxis:g}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof g=="number"&&(h=a==="end"?g*-1:g),l?{x:h*f,y:m*u}:{x:m*u,y:h*f}}const yo=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:s,middlewareData:a}=t,l=await go(t,e);return s===((n=a.offset)==null?void 0:n.placement)&&(r=a.arrow)!=null&&r.alignmentOffset?{}:{x:o+l.x,y:i+l.y,data:{...l,placement:s}}}}},wo=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:a={fn:v=>{let{x:y,y:w}=v;return{x:y,y:w}}},...l}=q(e,t),u={x:n,y:r},f=await ge(t,l),d=te(Z(o)),m=pt(d);let h=u[m],g=u[d];if(i){const v=m==="y"?"top":"left",y=m==="y"?"bottom":"right",w=h+f[v],b=h-f[y];h=it(w,h,b)}if(s){const v=d==="y"?"top":"left",y=d==="y"?"bottom":"right",w=g+f[v],b=g-f[y];g=it(w,g,b)}const p=a.fn({...t,[m]:h,[d]:g});return{...p,data:{x:p.x-n,y:p.y-r,enabled:{[m]:i,[d]:s}}}}}},xo=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:s}=t,{offset:a=0,mainAxis:l=!0,crossAxis:u=!0}=q(e,t),f={x:n,y:r},d=te(o),m=pt(d);let h=f[m],g=f[d];const p=q(a,t),v=typeof p=="number"?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(l){const b=m==="y"?"height":"width",x=i.reference[m]-i.floating[b]+v.mainAxis,E=i.reference[m]+i.reference[b]-v.mainAxis;hE&&(h=E)}if(u){var y,w;const b=m==="y"?"width":"height",x=["top","left"].includes(Z(o)),E=i.reference[d]-i.floating[b]+(x&&((y=s.offset)==null?void 0:y[d])||0)+(x?0:v.crossAxis),A=i.reference[d]+i.reference[b]+(x?0:((w=s.offset)==null?void 0:w[d])||0)-(x?v.crossAxis:0);gA&&(g=A)}return{[m]:h,[d]:g}}}},bo=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:i,platform:s,elements:a}=t,{apply:l=()=>{},...u}=q(e,t),f=await ge(t,u),d=Z(o),m=he(o),h=te(o)==="y",{width:g,height:p}=i.floating;let v,y;d==="top"||d==="bottom"?(v=d,y=m===(await(s.isRTL==null?void 0:s.isRTL(a.floating))?"start":"end")?"left":"right"):(y=d,v=m==="end"?"top":"bottom");const w=p-f.top-f.bottom,b=g-f.left-f.right,x=ee(p-f[v],w),E=ee(g-f[y],b),A=!t.middlewareData.shift;let P=x,S=E;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(S=b),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(P=w),A&&!m){const O=j(f.left,0),k=j(f.right,0),F=j(f.top,0),M=j(f.bottom,0);h?S=g-2*(O!==0||k!==0?O+k:j(f.left,f.right)):P=p-2*(F!==0||M!==0?F+M:j(f.top,f.bottom))}await l({...t,availableWidth:S,availableHeight:P});const N=await s.getDimensions(a.floating);return g!==N.width||p!==N.height?{reset:{rects:!0}}:{}}}};function $e(){return typeof window<"u"}function me(e){return vn(e)?(e.nodeName||"").toLowerCase():"#document"}function W(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function G(e){var t;return(t=(vn(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function vn(e){return $e()?e instanceof Node||e instanceof W(e).Node:!1}function H(e){return $e()?e instanceof Element||e instanceof W(e).Element:!1}function X(e){return $e()?e instanceof HTMLElement||e instanceof W(e).HTMLElement:!1}function Yt(e){return!$e()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof W(e).ShadowRoot}function xe(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=V(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Eo(e){return["table","td","th"].includes(me(e))}function Be(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch{return!1}})}function vt(e){const t=gt(),n=H(e)?V(e):e;return["transform","translate","scale","rotate","perspective"].some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","translate","scale","rotate","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function Co(e){let t=ne(e);for(;X(t)&&!fe(t);){if(vt(t))return t;if(Be(t))return null;t=ne(t)}return null}function gt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function fe(e){return["html","body","#document"].includes(me(e))}function V(e){return W(e).getComputedStyle(e)}function He(e){return H(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ne(e){if(me(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Yt(e)&&e.host||G(e);return Yt(t)?t.host:t}function gn(e){const t=ne(e);return fe(t)?e.ownerDocument?e.ownerDocument.body:e.body:X(t)&&xe(t)?t:gn(t)}function ye(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=gn(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),s=W(o);if(i){const a=at(s);return t.concat(s,s.visualViewport||[],xe(o)?o:[],a&&n?ye(a):[])}return t.concat(o,ye(o,[],n))}function at(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function yn(e){const t=V(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=X(e),i=o?e.offsetWidth:n,s=o?e.offsetHeight:r,a=_e(n)!==i||_e(r)!==s;return a&&(n=i,r=s),{width:n,height:r,$:a}}function yt(e){return H(e)?e:e.contextElement}function le(e){const t=yt(e);if(!X(t))return Y(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=yn(t);let s=(i?_e(n.width):n.width)/r,a=(i?_e(n.height):n.height)/o;return(!s||!Number.isFinite(s))&&(s=1),(!a||!Number.isFinite(a))&&(a=1),{x:s,y:a}}const Po=Y(0);function wn(e){const t=W(e);return!gt()||!t.visualViewport?Po:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ao(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==W(e)?!1:t}function ie(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=yt(e);let s=Y(1);t&&(r?H(r)&&(s=le(r)):s=le(e));const a=Ao(i,n,r)?wn(i):Y(0);let l=(o.left+a.x)/s.x,u=(o.top+a.y)/s.y,f=o.width/s.x,d=o.height/s.y;if(i){const m=W(i),h=r&&H(r)?W(r):r;let g=m,p=at(g);for(;p&&r&&h!==g;){const v=le(p),y=p.getBoundingClientRect(),w=V(p),b=y.left+(p.clientLeft+parseFloat(w.paddingLeft))*v.x,x=y.top+(p.clientTop+parseFloat(w.paddingTop))*v.y;l*=v.x,u*=v.y,f*=v.x,d*=v.y,l+=b,u+=x,g=W(p),p=at(g)}}return Fe({width:f,height:d,x:l,y:u})}function wt(e,t){const n=He(e).scrollLeft;return t?t.left+n:ie(G(e)).left+n}function xn(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),o=r.left+t.scrollLeft-(n?0:wt(e,r)),i=r.top+t.scrollTop;return{x:o,y:i}}function Ro(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",s=G(r),a=t?Be(t.floating):!1;if(r===s||a&&i)return n;let l={scrollLeft:0,scrollTop:0},u=Y(1);const f=Y(0),d=X(r);if((d||!d&&!i)&&((me(r)!=="body"||xe(s))&&(l=He(r)),X(r))){const h=ie(r);u=le(r),f.x=h.x+r.clientLeft,f.y=h.y+r.clientTop}const m=s&&!d&&!i?xn(s,l,!0):Y(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+f.x+m.x,y:n.y*u.y-l.scrollTop*u.y+f.y+m.y}}function So(e){return Array.from(e.getClientRects())}function Oo(e){const t=G(e),n=He(e),r=e.ownerDocument.body,o=j(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=j(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let s=-n.scrollLeft+wt(e);const a=-n.scrollTop;return V(r).direction==="rtl"&&(s+=j(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:s,y:a}}function To(e,t){const n=W(e),r=G(e),o=n.visualViewport;let i=r.clientWidth,s=r.clientHeight,a=0,l=0;if(o){i=o.width,s=o.height;const u=gt();(!u||u&&t==="fixed")&&(a=o.offsetLeft,l=o.offsetTop)}return{width:i,height:s,x:a,y:l}}function No(e,t){const n=ie(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=X(e)?le(e):Y(1),s=e.clientWidth*i.x,a=e.clientHeight*i.y,l=o*i.x,u=r*i.y;return{width:s,height:a,x:l,y:u}}function Xt(e,t,n){let r;if(t==="viewport")r=To(e,n);else if(t==="document")r=Oo(G(e));else if(H(t))r=No(t,n);else{const o=wn(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Fe(r)}function bn(e,t){const n=ne(e);return n===t||!H(n)||fe(n)?!1:V(n).position==="fixed"||bn(n,t)}function Mo(e,t){const n=t.get(e);if(n)return n;let r=ye(e,[],!1).filter(a=>H(a)&&me(a)!=="body"),o=null;const i=V(e).position==="fixed";let s=i?ne(e):e;for(;H(s)&&!fe(s);){const a=V(s),l=vt(s);!l&&a.position==="fixed"&&(o=null),(i?!l&&!o:!l&&a.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||xe(s)&&!l&&bn(e,s))?r=r.filter(f=>f!==s):o=a,s=ne(s)}return t.set(e,r),r}function Lo(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const s=[...n==="clippingAncestors"?Be(t)?[]:Mo(t,this._c):[].concat(n),r],a=s[0],l=s.reduce((u,f)=>{const d=Xt(t,f,o);return u.top=j(d.top,u.top),u.right=ee(d.right,u.right),u.bottom=ee(d.bottom,u.bottom),u.left=j(d.left,u.left),u},Xt(t,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Do(e){const{width:t,height:n}=yn(e);return{width:t,height:n}}function _o(e,t,n){const r=X(t),o=G(t),i=n==="fixed",s=ie(e,!0,i,t);let a={scrollLeft:0,scrollTop:0};const l=Y(0);if(r||!r&&!i)if((me(t)!=="body"||xe(o))&&(a=He(t)),r){const m=ie(t,!0,i,t);l.x=m.x+t.clientLeft,l.y=m.y+t.clientTop}else o&&(l.x=wt(o));const u=o&&!r&&!i?xn(o,a):Y(0),f=s.left+a.scrollLeft-l.x-u.x,d=s.top+a.scrollTop-l.y-u.y;return{x:f,y:d,width:s.width,height:s.height}}function Ze(e){return V(e).position==="static"}function Kt(e,t){if(!X(e)||V(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return G(e)===n&&(n=n.ownerDocument.body),n}function En(e,t){const n=W(e);if(Be(e))return n;if(!X(e)){let o=ne(e);for(;o&&!fe(o);){if(H(o)&&!Ze(o))return o;o=ne(o)}return n}let r=Kt(e,t);for(;r&&Eo(r)&&Ze(r);)r=Kt(r,t);return r&&fe(r)&&Ze(r)&&!vt(r)?n:r||Co(e)||n}const ko=async function(e){const t=this.getOffsetParent||En,n=this.getDimensions,r=await n(e.floating);return{reference:_o(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Fo(e){return V(e).direction==="rtl"}const Io={convertOffsetParentRelativeRectToViewportRelativeRect:Ro,getDocumentElement:G,getClippingRect:Lo,getOffsetParent:En,getElementRects:ko,getClientRects:So,getDimensions:Do,getScale:le,isElement:H,isRTL:Fo};function Cn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function jo(e,t){let n=null,r;const o=G(e);function i(){var a;clearTimeout(r),(a=n)==null||a.disconnect(),n=null}function s(a,l){a===void 0&&(a=!1),l===void 0&&(l=1),i();const u=e.getBoundingClientRect(),{left:f,top:d,width:m,height:h}=u;if(a||t(),!m||!h)return;const g=Re(d),p=Re(o.clientWidth-(f+m)),v=Re(o.clientHeight-(d+h)),y=Re(f),b={rootMargin:-g+"px "+-p+"px "+-v+"px "+-y+"px",threshold:j(0,ee(1,l))||1};let x=!0;function E(A){const P=A[0].intersectionRatio;if(P!==l){if(!x)return s();P?s(!1,P):r=setTimeout(()=>{s(!1,1e-7)},1e3)}P===1&&!Cn(u,e.getBoundingClientRect())&&s(),x=!1}try{n=new IntersectionObserver(E,{...b,root:o.ownerDocument})}catch{n=new IntersectionObserver(E,b)}n.observe(e)}return s(!0),i}function Wo(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,u=yt(e),f=o||i?[...u?ye(u):[],...ye(t)]:[];f.forEach(y=>{o&&y.addEventListener("scroll",n,{passive:!0}),i&&y.addEventListener("resize",n)});const d=u&&a?jo(u,n):null;let m=-1,h=null;s&&(h=new ResizeObserver(y=>{let[w]=y;w&&w.target===u&&h&&(h.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var b;(b=h)==null||b.observe(t)})),n()}),u&&!l&&h.observe(u),h.observe(t));let g,p=l?ie(e):null;l&&v();function v(){const y=ie(e);p&&!Cn(p,y)&&n(),p=y,g=requestAnimationFrame(v)}return n(),()=>{var y;f.forEach(w=>{o&&w.removeEventListener("scroll",n),i&&w.removeEventListener("resize",n)}),d==null||d(),(y=h)==null||y.disconnect(),h=null,l&&cancelAnimationFrame(g)}}const $o=yo,Bo=wo,Ho=mo,Vo=bo,Uo=vo,Gt=ho,zo=xo,Yo=(e,t,n)=>{const r=new Map,o={platform:Io,...n},i={...o.platform,_c:r};return po(e,t,{...o,platform:i})};var Me=typeof document<"u"?c.useLayoutEffect:c.useEffect;function Ie(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ie(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!Ie(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function Pn(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function qt(e,t){const n=Pn(e);return Math.round(t*n)/n}function Qe(e){const t=c.useRef(e);return Me(()=>{t.current=e}),t}function Xo(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:s}={},transform:a=!0,whileElementsMounted:l,open:u}=e,[f,d]=c.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=c.useState(r);Ie(m,r)||h(r);const[g,p]=c.useState(null),[v,y]=c.useState(null),w=c.useCallback(R=>{R!==A.current&&(A.current=R,p(R))},[]),b=c.useCallback(R=>{R!==P.current&&(P.current=R,y(R))},[]),x=i||g,E=s||v,A=c.useRef(null),P=c.useRef(null),S=c.useRef(f),N=l!=null,O=Qe(l),k=Qe(o),F=Qe(u),M=c.useCallback(()=>{if(!A.current||!P.current)return;const R={placement:t,strategy:n,middleware:m};k.current&&(R.platform=k.current),Yo(A.current,P.current,R).then(_=>{const U={..._,isPositioned:F.current!==!1};T.current&&!Ie(S.current,U)&&(S.current=U,nn.flushSync(()=>{d(U)}))})},[m,t,n,k,F]);Me(()=>{u===!1&&S.current.isPositioned&&(S.current.isPositioned=!1,d(R=>({...R,isPositioned:!1})))},[u]);const T=c.useRef(!1);Me(()=>(T.current=!0,()=>{T.current=!1}),[]),Me(()=>{if(x&&(A.current=x),E&&(P.current=E),x&&E){if(O.current)return O.current(x,E,M);M()}},[x,E,M,O,N]);const $=c.useMemo(()=>({reference:A,floating:P,setReference:w,setFloating:b}),[w,b]),L=c.useMemo(()=>({reference:x,floating:E}),[x,E]),D=c.useMemo(()=>{const R={position:n,left:0,top:0};if(!L.floating)return R;const _=qt(L.floating,f.x),U=qt(L.floating,f.y);return a?{...R,transform:"translate("+_+"px, "+U+"px)",...Pn(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:_,top:U}},[n,a,L.floating,f.x,f.y]);return c.useMemo(()=>({...f,update:M,refs:$,elements:L,floatingStyles:D}),[f,M,$,L,D])}const Ko=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Gt({element:r.current,padding:o}).fn(n):{}:r?Gt({element:r,padding:o}).fn(n):{}}}},Go=(e,t)=>({...$o(e),options:[e,t]}),qo=(e,t)=>({...Bo(e),options:[e,t]}),Zo=(e,t)=>({...zo(e),options:[e,t]}),Qo=(e,t)=>({...Ho(e),options:[e,t]}),Jo=(e,t)=>({...Vo(e),options:[e,t]}),ei=(e,t)=>({...Uo(e),options:[e,t]}),ti=(e,t)=>({...Ko(e),options:[e,t]});var ni="Arrow",An=c.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return C.jsx(B.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:C.jsx("polygon",{points:"0,0 30,0 15,10"})})});An.displayName=ni;var ri=An,xt="Popper",[Rn,Ve]=dt(xt),[oi,Sn]=Rn(xt),On=e=>{const{__scopePopper:t,children:n}=e,[r,o]=c.useState(null);return C.jsx(oi,{scope:t,anchor:r,onAnchorChange:o,children:n})};On.displayName=xt;var Tn="PopperAnchor",Nn=c.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=Sn(Tn,n),s=c.useRef(null),a=K(t,s);return c.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||s.current)}),r?null:C.jsx(B.div,{...o,ref:a})});Nn.displayName=Tn;var bt="PopperContent",[ii,si]=Rn(bt),Mn=c.forwardRef((e,t)=>{var Ot,Tt,Nt,Mt,Lt,Dt;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:s=0,arrowPadding:a=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:d="partial",hideWhenDetached:m=!1,updatePositionStrategy:h="optimized",onPlaced:g,...p}=e,v=Sn(bt,n),[y,w]=c.useState(null),b=K(t,ve=>w(ve)),[x,E]=c.useState(null),A=kr(x),P=(A==null?void 0:A.width)??0,S=(A==null?void 0:A.height)??0,N=r+(i!=="center"?"-"+i:""),O=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},k=Array.isArray(u)?u:[u],F=k.length>0,M={padding:O,boundary:k.filter(ci),altBoundary:F},{refs:T,floatingStyles:$,placement:L,isPositioned:D,middlewareData:R}=Xo({strategy:"fixed",placement:N,whileElementsMounted:(...ve)=>Wo(...ve,{animationFrame:h==="always"}),elements:{reference:v.anchor},middleware:[Go({mainAxis:o+S,alignmentAxis:s}),l&&qo({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?Zo():void 0,...M}),l&&Qo({...M}),Jo({...M,apply:({elements:ve,rects:_t,availableWidth:yr,availableHeight:wr})=>{const{width:xr,height:br}=_t.reference,Pe=ve.floating.style;Pe.setProperty("--radix-popper-available-width",`${yr}px`),Pe.setProperty("--radix-popper-available-height",`${wr}px`),Pe.setProperty("--radix-popper-anchor-width",`${xr}px`),Pe.setProperty("--radix-popper-anchor-height",`${br}px`)}}),x&&ti({element:x,padding:a}),li({arrowWidth:P,arrowHeight:S}),m&&ei({strategy:"referenceHidden",...M})]}),[_,U]=_n(L),Ce=J(g);oe(()=>{D&&(Ce==null||Ce())},[D,Ce]);const pr=(Ot=R.arrow)==null?void 0:Ot.x,hr=(Tt=R.arrow)==null?void 0:Tt.y,mr=((Nt=R.arrow)==null?void 0:Nt.centerOffset)!==0,[vr,gr]=c.useState();return oe(()=>{y&&gr(window.getComputedStyle(y).zIndex)},[y]),C.jsx("div",{ref:T.setFloating,"data-radix-popper-content-wrapper":"",style:{...$,transform:D?$.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:vr,"--radix-popper-transform-origin":[(Mt=R.transformOrigin)==null?void 0:Mt.x,(Lt=R.transformOrigin)==null?void 0:Lt.y].join(" "),...((Dt=R.hide)==null?void 0:Dt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:C.jsx(ii,{scope:n,placedSide:_,onArrowChange:E,arrowX:pr,arrowY:hr,shouldHideArrow:mr,children:C.jsx(B.div,{"data-side":_,"data-align":U,...p,ref:b,style:{...p.style,animation:D?void 0:"none"}})})})});Mn.displayName=bt;var Ln="PopperArrow",ai={top:"bottom",right:"left",bottom:"top",left:"right"},Dn=c.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=si(Ln,r),s=ai[i.placedSide];return C.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:C.jsx(ri,{...o,ref:n,style:{...o.style,display:"block"}})})});Dn.displayName=Ln;function ci(e){return e!==null}var li=e=>({name:"transformOrigin",options:e,fn(t){var v,y,w;const{placement:n,rects:r,middlewareData:o}=t,s=((v=o.arrow)==null?void 0:v.centerOffset)!==0,a=s?0:e.arrowWidth,l=s?0:e.arrowHeight,[u,f]=_n(n),d={start:"0%",center:"50%",end:"100%"}[f],m=(((y=o.arrow)==null?void 0:y.x)??0)+a/2,h=(((w=o.arrow)==null?void 0:w.y)??0)+l/2;let g="",p="";return u==="bottom"?(g=s?d:`${m}px`,p=`${-l}px`):u==="top"?(g=s?d:`${m}px`,p=`${r.floating.height+l}px`):u==="right"?(g=`${-l}px`,p=s?d:`${h}px`):u==="left"&&(g=`${r.floating.width+l}px`,p=s?d:`${h}px`),{data:{x:g,y:p}}}});function _n(e){const[t,n="center"]=e.split("-");return[t,n]}var kn=On,Et=Nn,Fn=Mn,In=Dn,ui="Portal",Ct=c.forwardRef((e,t)=>{var a;const{container:n,...r}=e,[o,i]=c.useState(!1);oe(()=>i(!0),[]);const s=n||o&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return s?Cr.createPortal(C.jsx(B.div,{...r,ref:t}),s):null});Ct.displayName=ui;var fi=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},se=new WeakMap,Se=new WeakMap,Oe={},Je=0,jn=function(e){return e&&(e.host||jn(e.parentNode))},di=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=jn(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},pi=function(e,t,n,r){var o=di(t,Array.isArray(e)?e:[e]);Oe[n]||(Oe[n]=new WeakMap);var i=Oe[n],s=[],a=new Set,l=new Set(o),u=function(d){!d||a.has(d)||(a.add(d),u(d.parentNode))};o.forEach(u);var f=function(d){!d||l.has(d)||Array.prototype.forEach.call(d.children,function(m){if(a.has(m))f(m);else try{var h=m.getAttribute(r),g=h!==null&&h!=="false",p=(se.get(m)||0)+1,v=(i.get(m)||0)+1;se.set(m,p),i.set(m,v),s.push(m),p===1&&g&&Se.set(m,!0),v===1&&m.setAttribute(n,"true"),g||m.setAttribute(r,"true")}catch(y){console.error("aria-hidden: cannot operate on ",m,y)}})};return f(t),a.clear(),Je++,function(){s.forEach(function(d){var m=se.get(d)-1,h=i.get(d)-1;se.set(d,m),i.set(d,h),m||(Se.has(d)||d.removeAttribute(r),Se.delete(d)),h||d.removeAttribute(n)}),Je--,Je||(se=new WeakMap,se=new WeakMap,Se=new WeakMap,Oe={})}},hi=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=fi(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),pi(r,o,n,"aria-hidden")):function(){return null}},z=function(){return z=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return Mi;var t=Li(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},_i=Hn(),ue="data-scroll-locked",ki=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),` + .`.concat(vi,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(a,"px ").concat(r,`; + } + body[`).concat(ue,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(o,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(s,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(a,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(a,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(Le,` { + right: `).concat(a,"px ").concat(r,`; + } + + .`).concat(De,` { + margin-right: `).concat(a,"px ").concat(r,`; + } + + .`).concat(Le," .").concat(Le,` { + right: 0 `).concat(r,`; + } + + .`).concat(De," .").concat(De,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(ue,`] { + `).concat(gi,": ").concat(a,`px; + } +`)},Qt=function(){var e=parseInt(document.body.getAttribute(ue)||"0",10);return isFinite(e)?e:0},Fi=function(){c.useEffect(function(){return document.body.setAttribute(ue,(Qt()+1).toString()),function(){var e=Qt()-1;e<=0?document.body.removeAttribute(ue):document.body.setAttribute(ue,e.toString())}},[])},Ii=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Fi();var i=c.useMemo(function(){return Di(o)},[o]);return c.createElement(_i,{styles:ki(i,!t,o,n?"":"!important")})},ct=!1;if(typeof window<"u")try{var Te=Object.defineProperty({},"passive",{get:function(){return ct=!0,!0}});window.addEventListener("test",Te,Te),window.removeEventListener("test",Te,Te)}catch{ct=!1}var ae=ct?{passive:!1}:!1,ji=function(e){return e.tagName==="TEXTAREA"},Vn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!ji(e)&&n[t]==="visible")},Wi=function(e){return Vn(e,"overflowY")},$i=function(e){return Vn(e,"overflowX")},Jt=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=Un(e,r);if(o){var i=zn(e,r),s=i[1],a=i[2];if(s>a)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Bi=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Hi=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},Un=function(e,t){return e==="v"?Wi(t):$i(t)},zn=function(e,t){return e==="v"?Bi(t):Hi(t)},Vi=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ui=function(e,t,n,r,o){var i=Vi(e,window.getComputedStyle(t).direction),s=i*r,a=n.target,l=t.contains(a),u=!1,f=s>0,d=0,m=0;do{var h=zn(e,a),g=h[0],p=h[1],v=h[2],y=p-v-i*g;(g||y)&&Un(e,a)&&(d+=y,m+=g),a instanceof ShadowRoot?a=a.host:a=a.parentNode}while(!l&&a!==document.body||l&&(t.contains(a)||t===a));return(f&&Math.abs(d)<1||!f&&Math.abs(m)<1)&&(u=!0),u},Ne=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},en=function(e){return[e.deltaX,e.deltaY]},tn=function(e){return e&&"current"in e?e.current:e},zi=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Yi=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Xi=0,ce=[];function Ki(e){var t=c.useRef([]),n=c.useRef([0,0]),r=c.useRef(),o=c.useState(Xi++)[0],i=c.useState(Hn)[0],s=c.useRef(e);c.useEffect(function(){s.current=e},[e]),c.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var p=mi([e.lockRef.current],(e.shards||[]).map(tn),!0).filter(Boolean);return p.forEach(function(v){return v.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),p.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var a=c.useCallback(function(p,v){if("touches"in p&&p.touches.length===2||p.type==="wheel"&&p.ctrlKey)return!s.current.allowPinchZoom;var y=Ne(p),w=n.current,b="deltaX"in p?p.deltaX:w[0]-y[0],x="deltaY"in p?p.deltaY:w[1]-y[1],E,A=p.target,P=Math.abs(b)>Math.abs(x)?"h":"v";if("touches"in p&&P==="h"&&A.type==="range")return!1;var S=Jt(P,A);if(!S)return!0;if(S?E=P:(E=P==="v"?"h":"v",S=Jt(P,A)),!S)return!1;if(!r.current&&"changedTouches"in p&&(b||x)&&(r.current=E),!E)return!0;var N=r.current||E;return Ui(N,v,p,N==="h"?b:x)},[]),l=c.useCallback(function(p){var v=p;if(!(!ce.length||ce[ce.length-1]!==i)){var y="deltaY"in v?en(v):Ne(v),w=t.current.filter(function(E){return E.name===v.type&&(E.target===v.target||v.target===E.shadowParent)&&zi(E.delta,y)})[0];if(w&&w.should){v.cancelable&&v.preventDefault();return}if(!w){var b=(s.current.shards||[]).map(tn).filter(Boolean).filter(function(E){return E.contains(v.target)}),x=b.length>0?a(v,b[0]):!s.current.noIsolation;x&&v.cancelable&&v.preventDefault()}}},[]),u=c.useCallback(function(p,v,y,w){var b={name:p,delta:v,target:y,should:w,shadowParent:Gi(y)};t.current.push(b),setTimeout(function(){t.current=t.current.filter(function(x){return x!==b})},1)},[]),f=c.useCallback(function(p){n.current=Ne(p),r.current=void 0},[]),d=c.useCallback(function(p){u(p.type,en(p),p.target,a(p,e.lockRef.current))},[]),m=c.useCallback(function(p){u(p.type,Ne(p),p.target,a(p,e.lockRef.current))},[]);c.useEffect(function(){return ce.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:m}),document.addEventListener("wheel",l,ae),document.addEventListener("touchmove",l,ae),document.addEventListener("touchstart",f,ae),function(){ce=ce.filter(function(p){return p!==i}),document.removeEventListener("wheel",l,ae),document.removeEventListener("touchmove",l,ae),document.removeEventListener("touchstart",f,ae)}},[]);var h=e.removeScrollBar,g=e.inert;return c.createElement(c.Fragment,null,g?c.createElement(i,{styles:Yi(o)}):null,h?c.createElement(Ii,{gapMode:e.gapMode}):null)}function Gi(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const qi=Pi(Bn,Ki);var Yn=c.forwardRef(function(e,t){return c.createElement(Ue,z({},e,{ref:t,sideCar:qi}))});Yn.classNames=Ue.classNames;var Pt="Popover",[Xn,Os]=dt(Pt,[Ve]),be=Ve(),[Zi,re]=Xn(Pt),Kn=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:s=!1}=e,a=be(t),l=c.useRef(null),[u,f]=c.useState(!1),[d=!1,m]=cn({prop:r,defaultProp:o,onChange:i});return C.jsx(kn,{...a,children:C.jsx(Zi,{scope:t,contentId:hn(),triggerRef:l,open:d,onOpenChange:m,onOpenToggle:c.useCallback(()=>m(h=>!h),[m]),hasCustomAnchor:u,onCustomAnchorAdd:c.useCallback(()=>f(!0),[]),onCustomAnchorRemove:c.useCallback(()=>f(!1),[]),modal:s,children:n})})};Kn.displayName=Pt;var Gn="PopoverAnchor",Qi=c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=re(Gn,n),i=be(n),{onCustomAnchorAdd:s,onCustomAnchorRemove:a}=o;return c.useEffect(()=>(s(),()=>a()),[s,a]),C.jsx(Et,{...i,...r,ref:t})});Qi.displayName=Gn;var qn="PopoverTrigger",Zn=c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=re(qn,n),i=be(n),s=K(t,o.triggerRef),a=C.jsx(B.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":nr(o.open),...r,ref:s,onClick:I(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?a:C.jsx(Et,{asChild:!0,...i,children:a})});Zn.displayName=qn;var At="PopoverPortal",[Ji,es]=Xn(At,{forceMount:void 0}),Qn=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,i=re(At,t);return C.jsx(Ji,{scope:t,forceMount:n,children:C.jsx(we,{present:n||i.open,children:C.jsx(Ct,{asChild:!0,container:o,children:r})})})};Qn.displayName=At;var de="PopoverContent",Jn=c.forwardRef((e,t)=>{const n=es(de,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,i=re(de,e.__scopePopover);return C.jsx(we,{present:r||i.open,children:i.modal?C.jsx(ts,{...o,ref:t}):C.jsx(ns,{...o,ref:t})})});Jn.displayName=de;var ts=c.forwardRef((e,t)=>{const n=re(de,e.__scopePopover),r=c.useRef(null),o=K(t,r),i=c.useRef(!1);return c.useEffect(()=>{const s=r.current;if(s)return hi(s)},[]),C.jsx(Yn,{as:ft,allowPinchZoom:!0,children:C.jsx(er,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:I(e.onCloseAutoFocus,s=>{var a;s.preventDefault(),i.current||(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:I(e.onPointerDownOutside,s=>{const a=s.detail.originalEvent,l=a.button===0&&a.ctrlKey===!0,u=a.button===2||l;i.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:I(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1})})})}),ns=c.forwardRef((e,t)=>{const n=re(de,e.__scopePopover),r=c.useRef(!1),o=c.useRef(!1);return C.jsx(er,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var s,a;(s=e.onCloseAutoFocus)==null||s.call(e,i),i.defaultPrevented||(r.current||(a=n.triggerRef.current)==null||a.focus(),i.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:i=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const s=i.target;((u=n.triggerRef.current)==null?void 0:u.contains(s))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}})}),er=c.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:f,...d}=e,m=re(de,n),h=be(n);return Kr(),C.jsx(dn,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:C.jsx(We,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:f,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>m.onOpenChange(!1),children:C.jsx(Fn,{"data-state":nr(m.open),role:"dialog",id:m.contentId,...h,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),tr="PopoverClose",rs=c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=re(tr,n);return C.jsx(B.button,{type:"button",...r,ref:t,onClick:I(e.onClick,()=>o.onOpenChange(!1))})});rs.displayName=tr;var os="PopoverArrow",is=c.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=be(n);return C.jsx(In,{...o,...r,ref:t})});is.displayName=os;function nr(e){return e?"open":"closed"}var Ts=Kn,Ns=Zn,Ms=Qn,Ls=Jn,ss="VisuallyHidden",rr=c.forwardRef((e,t)=>C.jsx(B.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));rr.displayName=ss;var as=rr,[ze,Ds]=dt("Tooltip",[Ve]),Ye=Ve(),or="TooltipProvider",cs=700,lt="tooltip.open",[ls,Rt]=ze(or),ir=e=>{const{__scopeTooltip:t,delayDuration:n=cs,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:i}=e,[s,a]=c.useState(!0),l=c.useRef(!1),u=c.useRef(0);return c.useEffect(()=>{const f=u.current;return()=>window.clearTimeout(f)},[]),C.jsx(ls,{scope:t,isOpenDelayed:s,delayDuration:n,onOpen:c.useCallback(()=>{window.clearTimeout(u.current),a(!1)},[]),onClose:c.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>a(!0),r)},[r]),isPointerInTransitRef:l,onPointerInTransitChange:c.useCallback(f=>{l.current=f},[]),disableHoverableContent:o,children:i})};ir.displayName=or;var Xe="Tooltip",[us,Ee]=ze(Xe),sr=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o=!1,onOpenChange:i,disableHoverableContent:s,delayDuration:a}=e,l=Rt(Xe,e.__scopeTooltip),u=Ye(t),[f,d]=c.useState(null),m=hn(),h=c.useRef(0),g=s??l.disableHoverableContent,p=a??l.delayDuration,v=c.useRef(!1),[y=!1,w]=cn({prop:r,defaultProp:o,onChange:P=>{P?(l.onOpen(),document.dispatchEvent(new CustomEvent(lt))):l.onClose(),i==null||i(P)}}),b=c.useMemo(()=>y?v.current?"delayed-open":"instant-open":"closed",[y]),x=c.useCallback(()=>{window.clearTimeout(h.current),h.current=0,v.current=!1,w(!0)},[w]),E=c.useCallback(()=>{window.clearTimeout(h.current),h.current=0,w(!1)},[w]),A=c.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{v.current=!0,w(!0),h.current=0},p)},[p,w]);return c.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),C.jsx(kn,{...u,children:C.jsx(us,{scope:t,contentId:m,open:y,stateAttribute:b,trigger:f,onTriggerChange:d,onTriggerEnter:c.useCallback(()=>{l.isOpenDelayed?A():x()},[l.isOpenDelayed,A,x]),onTriggerLeave:c.useCallback(()=>{g?E():(window.clearTimeout(h.current),h.current=0)},[E,g]),onOpen:x,onClose:E,disableHoverableContent:g,children:n})})};sr.displayName=Xe;var ut="TooltipTrigger",ar=c.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Ee(ut,n),i=Rt(ut,n),s=Ye(n),a=c.useRef(null),l=K(t,a,o.onTriggerChange),u=c.useRef(!1),f=c.useRef(!1),d=c.useCallback(()=>u.current=!1,[]);return c.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),C.jsx(Et,{asChild:!0,...s,children:C.jsx(B.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:l,onPointerMove:I(e.onPointerMove,m=>{m.pointerType!=="touch"&&!f.current&&!i.isPointerInTransitRef.current&&(o.onTriggerEnter(),f.current=!0)}),onPointerLeave:I(e.onPointerLeave,()=>{o.onTriggerLeave(),f.current=!1}),onPointerDown:I(e.onPointerDown,()=>{u.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:I(e.onFocus,()=>{u.current||o.onOpen()}),onBlur:I(e.onBlur,o.onClose),onClick:I(e.onClick,o.onClose)})})});ar.displayName=ut;var St="TooltipPortal",[fs,ds]=ze(St,{forceMount:void 0}),cr=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,i=Ee(St,t);return C.jsx(fs,{scope:t,forceMount:n,children:C.jsx(we,{present:n||i.open,children:C.jsx(Ct,{asChild:!0,container:o,children:r})})})};cr.displayName=St;var pe="TooltipContent",lr=c.forwardRef((e,t)=>{const n=ds(pe,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,s=Ee(pe,e.__scopeTooltip);return C.jsx(we,{present:r||s.open,children:s.disableHoverableContent?C.jsx(ur,{side:o,...i,ref:t}):C.jsx(ps,{side:o,...i,ref:t})})}),ps=c.forwardRef((e,t)=>{const n=Ee(pe,e.__scopeTooltip),r=Rt(pe,e.__scopeTooltip),o=c.useRef(null),i=K(t,o),[s,a]=c.useState(null),{trigger:l,onClose:u}=n,f=o.current,{onPointerInTransitChange:d}=r,m=c.useCallback(()=>{a(null),d(!1)},[d]),h=c.useCallback((g,p)=>{const v=g.currentTarget,y={x:g.clientX,y:g.clientY},w=gs(y,v.getBoundingClientRect()),b=ys(y,w),x=ws(p.getBoundingClientRect()),E=bs([...b,...x]);a(E),d(!0)},[d]);return c.useEffect(()=>()=>m(),[m]),c.useEffect(()=>{if(l&&f){const g=v=>h(v,f),p=v=>h(v,l);return l.addEventListener("pointerleave",g),f.addEventListener("pointerleave",p),()=>{l.removeEventListener("pointerleave",g),f.removeEventListener("pointerleave",p)}}},[l,f,h,m]),c.useEffect(()=>{if(s){const g=p=>{const v=p.target,y={x:p.clientX,y:p.clientY},w=(l==null?void 0:l.contains(v))||(f==null?void 0:f.contains(v)),b=!xs(y,s);w?m():b&&(m(),u())};return document.addEventListener("pointermove",g),()=>document.removeEventListener("pointermove",g)}},[l,f,s,u,m]),C.jsx(ur,{...e,ref:i})}),[hs,ms]=ze(Xe,{isInside:!1}),ur=c.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:s,...a}=e,l=Ee(pe,n),u=Ye(n),{onClose:f}=l;return c.useEffect(()=>(document.addEventListener(lt,f),()=>document.removeEventListener(lt,f)),[f]),c.useEffect(()=>{if(l.trigger){const d=m=>{const h=m.target;h!=null&&h.contains(l.trigger)&&f()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[l.trigger,f]),C.jsx(We,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:d=>d.preventDefault(),onDismiss:f,children:C.jsxs(Fn,{"data-state":l.stateAttribute,...u,...a,ref:t,style:{...a.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[C.jsx(an,{children:r}),C.jsx(hs,{scope:n,isInside:!0,children:C.jsx(as,{id:l.contentId,role:"tooltip",children:o||r})})]})})});lr.displayName=pe;var fr="TooltipArrow",vs=c.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Ye(n);return ms(fr,n).isInside?null:C.jsx(In,{...o,...r,ref:t})});vs.displayName=fr;function gs(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function ys(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function ws(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function xs(e,t){const{x:n,y:r}=e;let o=!1;for(let i=0,s=t.length-1;ir!=f>r&&n<(u-a)*(r-l)/(f-l)+a&&(o=!o)}return o}function bs(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),Es(t)}function Es(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const i=t[t.length-1],s=t[t.length-2];if((i.x-s.x)*(o.y-s.y)>=(i.y-s.y)*(o.x-s.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const i=n[n.length-1],s=n[n.length-2];if((i.x-s.x)*(o.y-s.y)>=(i.y-s.y)*(o.x-s.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var _s=ir,ks=sr,Fs=ar,Is=cr,js=lr,Cs="Label",dr=c.forwardRef((e,t)=>C.jsx(B.label,{...e,ref:t,onMouseDown:n=>{var o;n.target.closest("button, input, select, textarea")||((o=e.onMouseDown)==null||o.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));dr.displayName=Cs;var Ws=dr;export{Et as A,Ms as B,Fn as C,We as D,Ls as E,dn as F,Ts as G,Is as H,js as I,_s as J,ks as K,Fs as L,Ws as M,Ss as N,Rs as O,B as P,Yn as R,ft as S,Ns as T,rr as V,cn as a,J as b,dt as c,I as d,hn as e,Ve as f,we as g,hi as h,Kr as i,C as j,In as k,sn as l,$r as m,Ct as n,kn as o,oe as p,kr as q,As as r,V as s,Xo as t,K as u,H as v,Wo as w,Qo as x,Go as y,ti as z}; diff --git a/pkg/ui/frontend/dist/assets/radix-inputs-D4_OLmm6.js b/pkg/ui/frontend/dist/assets/radix-inputs-D4_OLmm6.js new file mode 100644 index 0000000000..39b4651f1a --- /dev/null +++ b/pkg/ui/frontend/dist/assets/radix-inputs-D4_OLmm6.js @@ -0,0 +1 @@ +import{r as a,c as Le,b as V}from"./react-core-D_V7s-9r.js";import{c as fe,u as A,a as ee,j as d,P as _,d as E,g as kt,q as Ve,f as Be,A as Nt,p as q,h as Mt,i as jt,R as At,S as Ot,F as Dt,D as Lt,C as Vt,e as Ee,k as Bt,V as Ht,b as Gt,n as Ft,o as Wt}from"./radix-core-ByqQ8fsu.js";import{c as Kt,a as Oe,u as He,b as Ge,R as Ut,I as $t}from"./radix-navigation-DYoR-lWZ.js";function _e(t){const s=a.useRef({value:t,previous:t});return a.useMemo(()=>(s.current.value!==t&&(s.current.previous=s.current.value,s.current.value=t),s.current.previous),[t])}var ke="Checkbox",[zt,_o]=fe(ke),[qt,Xt]=zt(ke),Fe=a.forwardRef((t,s)=>{const{__scopeCheckbox:e,name:c,checked:r,defaultChecked:i,required:n,disabled:o,value:l="on",onCheckedChange:u,form:h,...v}=t,[S,y]=a.useState(null),w=A(s,b=>y(b)),p=a.useRef(!1),x=S?h||!!S.closest("form"):!0,[C=!1,f]=ee({prop:r,defaultProp:i,onChange:u}),m=a.useRef(C);return a.useEffect(()=>{const b=S==null?void 0:S.form;if(b){const k=()=>f(m.current);return b.addEventListener("reset",k),()=>b.removeEventListener("reset",k)}},[S,f]),d.jsxs(qt,{scope:e,state:C,disabled:o,children:[d.jsx(_.button,{type:"button",role:"checkbox","aria-checked":z(C)?"mixed":C,"aria-required":n,"data-state":Ue(C),"data-disabled":o?"":void 0,disabled:o,value:l,...v,ref:w,onKeyDown:E(t.onKeyDown,b=>{b.key==="Enter"&&b.preventDefault()}),onClick:E(t.onClick,b=>{f(k=>z(k)?!0:!k),x&&(p.current=b.isPropagationStopped(),p.current||b.stopPropagation())})}),x&&d.jsx(Yt,{control:S,bubbles:!p.current,name:c,value:l,checked:C,required:n,disabled:o,form:h,style:{transform:"translateX(-100%)"},defaultChecked:z(i)?!1:i})]})});Fe.displayName=ke;var We="CheckboxIndicator",Ke=a.forwardRef((t,s)=>{const{__scopeCheckbox:e,forceMount:c,...r}=t,i=Xt(We,e);return d.jsx(kt,{present:c||z(i.state)||i.state===!0,children:d.jsx(_.span,{"data-state":Ue(i.state),"data-disabled":i.disabled?"":void 0,...r,ref:s,style:{pointerEvents:"none",...t.style}})})});Ke.displayName=We;var Yt=t=>{const{control:s,checked:e,bubbles:c=!0,defaultChecked:r,...i}=t,n=a.useRef(null),o=_e(e),l=Ve(s);a.useEffect(()=>{const h=n.current,v=window.HTMLInputElement.prototype,y=Object.getOwnPropertyDescriptor(v,"checked").set;if(o!==e&&y){const w=new Event("click",{bubbles:c});h.indeterminate=z(e),y.call(h,z(e)?!1:e),h.dispatchEvent(w)}},[o,e,c]);const u=a.useRef(z(e)?!1:e);return d.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r??u.current,...i,tabIndex:-1,ref:n,style:{...t.style,...l,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function z(t){return t==="indeterminate"}function Ue(t){return z(t)?"indeterminate":t?"checked":"unchecked"}var ko=Fe,No=Ke,Zt=[" ","Enter","ArrowUp","ArrowDown"],Jt=[" ","Enter"],le="Select",[he,me,Qt]=Kt(le),[ne,Mo]=fe(le,[Qt,Be]),ge=Be(),[eo,X]=ne(le),[to,oo]=ne(le),$e=t=>{const{__scopeSelect:s,children:e,open:c,defaultOpen:r,onOpenChange:i,value:n,defaultValue:o,onValueChange:l,dir:u,name:h,autoComplete:v,disabled:S,required:y,form:w}=t,p=ge(s),[x,C]=a.useState(null),[f,m]=a.useState(null),[b,k]=a.useState(!1),se=He(u),[N=!1,D]=ee({prop:c,defaultProp:r,onChange:i}),[K,Z]=ee({prop:n,defaultProp:o,onChange:l}),B=a.useRef(null),H=x?w||!!x.closest("form"):!0,[U,G]=a.useState(new Set),F=Array.from(U).map(M=>M.props.value).join(";");return d.jsx(Wt,{...p,children:d.jsxs(eo,{required:y,scope:s,trigger:x,onTriggerChange:C,valueNode:f,onValueNodeChange:m,valueNodeHasChildren:b,onValueNodeHasChildrenChange:k,contentId:Ee(),value:K,onValueChange:Z,open:N,onOpenChange:D,dir:se,triggerPointerDownPosRef:B,disabled:S,children:[d.jsx(he.Provider,{scope:s,children:d.jsx(to,{scope:t.__scopeSelect,onNativeOptionAdd:a.useCallback(M=>{G(L=>new Set(L).add(M))},[]),onNativeOptionRemove:a.useCallback(M=>{G(L=>{const W=new Set(L);return W.delete(M),W})},[]),children:e})}),H?d.jsxs(vt,{"aria-hidden":!0,required:y,tabIndex:-1,name:h,autoComplete:v,value:K,onChange:M=>Z(M.target.value),disabled:S,form:w,children:[K===void 0?d.jsx("option",{value:""}):null,Array.from(U)]},F):null]})})};$e.displayName=le;var ze="SelectTrigger",qe=a.forwardRef((t,s)=>{const{__scopeSelect:e,disabled:c=!1,...r}=t,i=ge(e),n=X(ze,e),o=n.disabled||c,l=A(s,n.onTriggerChange),u=me(e),h=a.useRef("touch"),[v,S,y]=xt(p=>{const x=u().filter(m=>!m.disabled),C=x.find(m=>m.value===n.value),f=St(x,p,C);f!==void 0&&n.onValueChange(f.value)}),w=p=>{o||(n.onOpenChange(!0),y()),p&&(n.triggerPointerDownPosRef.current={x:Math.round(p.pageX),y:Math.round(p.pageY)})};return d.jsx(Nt,{asChild:!0,...i,children:d.jsx(_.button,{type:"button",role:"combobox","aria-controls":n.contentId,"aria-expanded":n.open,"aria-required":n.required,"aria-autocomplete":"none",dir:n.dir,"data-state":n.open?"open":"closed",disabled:o,"data-disabled":o?"":void 0,"data-placeholder":gt(n.value)?"":void 0,...r,ref:l,onClick:E(r.onClick,p=>{p.currentTarget.focus(),h.current!=="mouse"&&w(p)}),onPointerDown:E(r.onPointerDown,p=>{h.current=p.pointerType;const x=p.target;x.hasPointerCapture(p.pointerId)&&x.releasePointerCapture(p.pointerId),p.button===0&&p.ctrlKey===!1&&p.pointerType==="mouse"&&(w(p),p.preventDefault())}),onKeyDown:E(r.onKeyDown,p=>{const x=v.current!=="";!(p.ctrlKey||p.altKey||p.metaKey)&&p.key.length===1&&S(p.key),!(x&&p.key===" ")&&Zt.includes(p.key)&&(w(),p.preventDefault())})})})});qe.displayName=ze;var Xe="SelectValue",Ye=a.forwardRef((t,s)=>{const{__scopeSelect:e,className:c,style:r,children:i,placeholder:n="",...o}=t,l=X(Xe,e),{onValueNodeHasChildrenChange:u}=l,h=i!==void 0,v=A(s,l.onValueNodeChange);return q(()=>{u(h)},[u,h]),d.jsx(_.span,{...o,ref:v,style:{pointerEvents:"none"},children:gt(l.value)?d.jsx(d.Fragment,{children:n}):i})});Ye.displayName=Xe;var no="SelectIcon",Ze=a.forwardRef((t,s)=>{const{__scopeSelect:e,children:c,...r}=t;return d.jsx(_.span,{"aria-hidden":!0,...r,ref:s,children:c||"▼"})});Ze.displayName=no;var ro="SelectPortal",Je=t=>d.jsx(Ft,{asChild:!0,...t});Je.displayName=ro;var te="SelectContent",Qe=a.forwardRef((t,s)=>{const e=X(te,t.__scopeSelect),[c,r]=a.useState();if(q(()=>{r(new DocumentFragment)},[]),!e.open){const i=c;return i?Le.createPortal(d.jsx(et,{scope:t.__scopeSelect,children:d.jsx(he.Slot,{scope:t.__scopeSelect,children:d.jsx("div",{children:t.children})})}),i):null}return d.jsx(tt,{...t,ref:s})});Qe.displayName=te;var O=10,[et,Y]=ne(te),so="SelectContentImpl",tt=a.forwardRef((t,s)=>{const{__scopeSelect:e,position:c="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:i,onPointerDownOutside:n,side:o,sideOffset:l,align:u,alignOffset:h,arrowPadding:v,collisionBoundary:S,collisionPadding:y,sticky:w,hideWhenDetached:p,avoidCollisions:x,...C}=t,f=X(te,e),[m,b]=a.useState(null),[k,se]=a.useState(null),N=A(s,g=>b(g)),[D,K]=a.useState(null),[Z,B]=a.useState(null),H=me(e),[U,G]=a.useState(!1),F=a.useRef(!1);a.useEffect(()=>{if(m)return Mt(m)},[m]),jt();const M=a.useCallback(g=>{const[R,...j]=H().map(T=>T.ref.current),[I]=j.slice(-1),P=document.activeElement;for(const T of g)if(T===P||(T==null||T.scrollIntoView({block:"nearest"}),T===R&&k&&(k.scrollTop=0),T===I&&k&&(k.scrollTop=k.scrollHeight),T==null||T.focus(),document.activeElement!==P))return},[H,k]),L=a.useCallback(()=>M([D,m]),[M,D,m]);a.useEffect(()=>{U&&L()},[U,L]);const{onOpenChange:W,triggerPointerDownPosRef:$}=f;a.useEffect(()=>{if(m){let g={x:0,y:0};const R=I=>{var P,T;g={x:Math.abs(Math.round(I.pageX)-(((P=$.current)==null?void 0:P.x)??0)),y:Math.abs(Math.round(I.pageY)-(((T=$.current)==null?void 0:T.y)??0))}},j=I=>{g.x<=10&&g.y<=10?I.preventDefault():m.contains(I.target)||W(!1),document.removeEventListener("pointermove",R),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",R),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",R),document.removeEventListener("pointerup",j,{capture:!0})}}},[m,W,$]),a.useEffect(()=>{const g=()=>W(!1);return window.addEventListener("blur",g),window.addEventListener("resize",g),()=>{window.removeEventListener("blur",g),window.removeEventListener("resize",g)}},[W]);const[ve,ie]=xt(g=>{const R=H().filter(P=>!P.disabled),j=R.find(P=>P.ref.current===document.activeElement),I=St(R,g,j);I&&setTimeout(()=>I.ref.current.focus())}),xe=a.useCallback((g,R,j)=>{const I=!F.current&&!j;(f.value!==void 0&&f.value===R||I)&&(K(g),I&&(F.current=!0))},[f.value]),Se=a.useCallback(()=>m==null?void 0:m.focus(),[m]),oe=a.useCallback((g,R,j)=>{const I=!F.current&&!j;(f.value!==void 0&&f.value===R||I)&&B(g)},[f.value]),de=c==="popper"?be:ot,ae=de===be?{side:o,sideOffset:l,align:u,alignOffset:h,arrowPadding:v,collisionBoundary:S,collisionPadding:y,sticky:w,hideWhenDetached:p,avoidCollisions:x}:{};return d.jsx(et,{scope:e,content:m,viewport:k,onViewportChange:se,itemRefCallback:xe,selectedItem:D,onItemLeave:Se,itemTextRefCallback:oe,focusSelectedItem:L,selectedItemText:Z,position:c,isPositioned:U,searchRef:ve,children:d.jsx(At,{as:Ot,allowPinchZoom:!0,children:d.jsx(Dt,{asChild:!0,trapped:f.open,onMountAutoFocus:g=>{g.preventDefault()},onUnmountAutoFocus:E(r,g=>{var R;(R=f.trigger)==null||R.focus({preventScroll:!0}),g.preventDefault()}),children:d.jsx(Lt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:n,onFocusOutside:g=>g.preventDefault(),onDismiss:()=>f.onOpenChange(!1),children:d.jsx(de,{role:"listbox",id:f.contentId,"data-state":f.open?"open":"closed",dir:f.dir,onContextMenu:g=>g.preventDefault(),...C,...ae,onPlaced:()=>G(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:E(C.onKeyDown,g=>{const R=g.ctrlKey||g.altKey||g.metaKey;if(g.key==="Tab"&&g.preventDefault(),!R&&g.key.length===1&&ie(g.key),["ArrowUp","ArrowDown","Home","End"].includes(g.key)){let I=H().filter(P=>!P.disabled).map(P=>P.ref.current);if(["ArrowUp","End"].includes(g.key)&&(I=I.slice().reverse()),["ArrowUp","ArrowDown"].includes(g.key)){const P=g.target,T=I.indexOf(P);I=I.slice(T+1)}setTimeout(()=>M(I)),g.preventDefault()}})})})})})})});tt.displayName=so;var ao="SelectItemAlignedPosition",ot=a.forwardRef((t,s)=>{const{__scopeSelect:e,onPlaced:c,...r}=t,i=X(te,e),n=Y(te,e),[o,l]=a.useState(null),[u,h]=a.useState(null),v=A(s,N=>h(N)),S=me(e),y=a.useRef(!1),w=a.useRef(!0),{viewport:p,selectedItem:x,selectedItemText:C,focusSelectedItem:f}=n,m=a.useCallback(()=>{if(i.trigger&&i.valueNode&&o&&u&&p&&x&&C){const N=i.trigger.getBoundingClientRect(),D=u.getBoundingClientRect(),K=i.valueNode.getBoundingClientRect(),Z=C.getBoundingClientRect();if(i.dir!=="rtl"){const P=Z.left-D.left,T=K.left-P,J=N.left-T,Q=N.width+J,Ce=Math.max(Q,D.width),we=window.innerWidth-O,ye=Oe(T,[O,Math.max(O,we-Ce)]);o.style.minWidth=Q+"px",o.style.left=ye+"px"}else{const P=D.right-Z.right,T=window.innerWidth-K.right-P,J=window.innerWidth-N.right-T,Q=N.width+J,Ce=Math.max(Q,D.width),we=window.innerWidth-O,ye=Oe(T,[O,Math.max(O,we-Ce)]);o.style.minWidth=Q+"px",o.style.right=ye+"px"}const B=S(),H=window.innerHeight-O*2,U=p.scrollHeight,G=window.getComputedStyle(u),F=parseInt(G.borderTopWidth,10),M=parseInt(G.paddingTop,10),L=parseInt(G.borderBottomWidth,10),W=parseInt(G.paddingBottom,10),$=F+M+U+W+L,ve=Math.min(x.offsetHeight*5,$),ie=window.getComputedStyle(p),xe=parseInt(ie.paddingTop,10),Se=parseInt(ie.paddingBottom,10),oe=N.top+N.height/2-O,de=H-oe,ae=x.offsetHeight/2,g=x.offsetTop+ae,R=F+M+g,j=$-R;if(R<=oe){const P=B.length>0&&x===B[B.length-1].ref.current;o.style.bottom="0px";const T=u.clientHeight-p.offsetTop-p.offsetHeight,J=Math.max(de,ae+(P?Se:0)+T+L),Q=R+J;o.style.height=Q+"px"}else{const P=B.length>0&&x===B[0].ref.current;o.style.top="0px";const J=Math.max(oe,F+p.offsetTop+(P?xe:0)+ae)+j;o.style.height=J+"px",p.scrollTop=R-oe+p.offsetTop}o.style.margin=`${O}px 0`,o.style.minHeight=ve+"px",o.style.maxHeight=H+"px",c==null||c(),requestAnimationFrame(()=>y.current=!0)}},[S,i.trigger,i.valueNode,o,u,p,x,C,i.dir,c]);q(()=>m(),[m]);const[b,k]=a.useState();q(()=>{u&&k(window.getComputedStyle(u).zIndex)},[u]);const se=a.useCallback(N=>{N&&w.current===!0&&(m(),f==null||f(),w.current=!1)},[m,f]);return d.jsx(lo,{scope:e,contentWrapper:o,shouldExpandOnScrollRef:y,onScrollButtonChange:se,children:d.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:b},children:d.jsx(_.div,{...r,ref:v,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});ot.displayName=ao;var co="SelectPopperPosition",be=a.forwardRef((t,s)=>{const{__scopeSelect:e,align:c="start",collisionPadding:r=O,...i}=t,n=ge(e);return d.jsx(Vt,{...n,...i,ref:s,align:c,collisionPadding:r,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});be.displayName=co;var[lo,Ne]=ne(te,{}),Pe="SelectViewport",nt=a.forwardRef((t,s)=>{const{__scopeSelect:e,nonce:c,...r}=t,i=Y(Pe,e),n=Ne(Pe,e),o=A(s,i.onViewportChange),l=a.useRef(0);return d.jsxs(d.Fragment,{children:[d.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:c}),d.jsx(he.Slot,{scope:e,children:d.jsx(_.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:o,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:E(r.onScroll,u=>{const h=u.currentTarget,{contentWrapper:v,shouldExpandOnScrollRef:S}=n;if(S!=null&&S.current&&v){const y=Math.abs(l.current-h.scrollTop);if(y>0){const w=window.innerHeight-O*2,p=parseFloat(v.style.minHeight),x=parseFloat(v.style.height),C=Math.max(p,x);if(C0?b:0,v.style.justifyContent="flex-end")}}}l.current=h.scrollTop})})})]})});nt.displayName=Pe;var rt="SelectGroup",[io,uo]=ne(rt),po=a.forwardRef((t,s)=>{const{__scopeSelect:e,...c}=t,r=Ee();return d.jsx(io,{scope:e,id:r,children:d.jsx(_.div,{role:"group","aria-labelledby":r,...c,ref:s})})});po.displayName=rt;var st="SelectLabel",at=a.forwardRef((t,s)=>{const{__scopeSelect:e,...c}=t,r=uo(st,e);return d.jsx(_.div,{id:r.id,...c,ref:s})});at.displayName=st;var ue="SelectItem",[fo,ct]=ne(ue),lt=a.forwardRef((t,s)=>{const{__scopeSelect:e,value:c,disabled:r=!1,textValue:i,...n}=t,o=X(ue,e),l=Y(ue,e),u=o.value===c,[h,v]=a.useState(i??""),[S,y]=a.useState(!1),w=A(s,f=>{var m;return(m=l.itemRefCallback)==null?void 0:m.call(l,f,c,r)}),p=Ee(),x=a.useRef("touch"),C=()=>{r||(o.onValueChange(c),o.onOpenChange(!1))};if(c==="")throw new Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return d.jsx(fo,{scope:e,value:c,disabled:r,textId:p,isSelected:u,onItemTextChange:a.useCallback(f=>{v(m=>m||((f==null?void 0:f.textContent)??"").trim())},[]),children:d.jsx(he.ItemSlot,{scope:e,value:c,disabled:r,textValue:h,children:d.jsx(_.div,{role:"option","aria-labelledby":p,"data-highlighted":S?"":void 0,"aria-selected":u&&S,"data-state":u?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...n,ref:w,onFocus:E(n.onFocus,()=>y(!0)),onBlur:E(n.onBlur,()=>y(!1)),onClick:E(n.onClick,()=>{x.current!=="mouse"&&C()}),onPointerUp:E(n.onPointerUp,()=>{x.current==="mouse"&&C()}),onPointerDown:E(n.onPointerDown,f=>{x.current=f.pointerType}),onPointerMove:E(n.onPointerMove,f=>{var m;x.current=f.pointerType,r?(m=l.onItemLeave)==null||m.call(l):x.current==="mouse"&&f.currentTarget.focus({preventScroll:!0})}),onPointerLeave:E(n.onPointerLeave,f=>{var m;f.currentTarget===document.activeElement&&((m=l.onItemLeave)==null||m.call(l))}),onKeyDown:E(n.onKeyDown,f=>{var b;((b=l.searchRef)==null?void 0:b.current)!==""&&f.key===" "||(Jt.includes(f.key)&&C(),f.key===" "&&f.preventDefault())})})})})});lt.displayName=ue;var ce="SelectItemText",it=a.forwardRef((t,s)=>{const{__scopeSelect:e,className:c,style:r,...i}=t,n=X(ce,e),o=Y(ce,e),l=ct(ce,e),u=oo(ce,e),[h,v]=a.useState(null),S=A(s,C=>v(C),l.onItemTextChange,C=>{var f;return(f=o.itemTextRefCallback)==null?void 0:f.call(o,C,l.value,l.disabled)}),y=h==null?void 0:h.textContent,w=a.useMemo(()=>d.jsx("option",{value:l.value,disabled:l.disabled,children:y},l.value),[l.disabled,l.value,y]),{onNativeOptionAdd:p,onNativeOptionRemove:x}=u;return q(()=>(p(w),()=>x(w)),[p,x,w]),d.jsxs(d.Fragment,{children:[d.jsx(_.span,{id:l.textId,...i,ref:S}),l.isSelected&&n.valueNode&&!n.valueNodeHasChildren?Le.createPortal(i.children,n.valueNode):null]})});it.displayName=ce;var dt="SelectItemIndicator",ut=a.forwardRef((t,s)=>{const{__scopeSelect:e,...c}=t;return ct(dt,e).isSelected?d.jsx(_.span,{"aria-hidden":!0,...c,ref:s}):null});ut.displayName=dt;var Te="SelectScrollUpButton",pt=a.forwardRef((t,s)=>{const e=Y(Te,t.__scopeSelect),c=Ne(Te,t.__scopeSelect),[r,i]=a.useState(!1),n=A(s,c.onScrollButtonChange);return q(()=>{if(e.viewport&&e.isPositioned){let o=function(){const u=l.scrollTop>0;i(u)};const l=e.viewport;return o(),l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)}},[e.viewport,e.isPositioned]),r?d.jsx(ht,{...t,ref:n,onAutoScroll:()=>{const{viewport:o,selectedItem:l}=e;o&&l&&(o.scrollTop=o.scrollTop-l.offsetHeight)}}):null});pt.displayName=Te;var Ie="SelectScrollDownButton",ft=a.forwardRef((t,s)=>{const e=Y(Ie,t.__scopeSelect),c=Ne(Ie,t.__scopeSelect),[r,i]=a.useState(!1),n=A(s,c.onScrollButtonChange);return q(()=>{if(e.viewport&&e.isPositioned){let o=function(){const u=l.scrollHeight-l.clientHeight,h=Math.ceil(l.scrollTop)l.removeEventListener("scroll",o)}},[e.viewport,e.isPositioned]),r?d.jsx(ht,{...t,ref:n,onAutoScroll:()=>{const{viewport:o,selectedItem:l}=e;o&&l&&(o.scrollTop=o.scrollTop+l.offsetHeight)}}):null});ft.displayName=Ie;var ht=a.forwardRef((t,s)=>{const{__scopeSelect:e,onAutoScroll:c,...r}=t,i=Y("SelectScrollButton",e),n=a.useRef(null),o=me(e),l=a.useCallback(()=>{n.current!==null&&(window.clearInterval(n.current),n.current=null)},[]);return a.useEffect(()=>()=>l(),[l]),q(()=>{var h;const u=o().find(v=>v.ref.current===document.activeElement);(h=u==null?void 0:u.ref.current)==null||h.scrollIntoView({block:"nearest"})},[o]),d.jsx(_.div,{"aria-hidden":!0,...r,ref:s,style:{flexShrink:0,...r.style},onPointerDown:E(r.onPointerDown,()=>{n.current===null&&(n.current=window.setInterval(c,50))}),onPointerMove:E(r.onPointerMove,()=>{var u;(u=i.onItemLeave)==null||u.call(i),n.current===null&&(n.current=window.setInterval(c,50))}),onPointerLeave:E(r.onPointerLeave,()=>{l()})})}),ho="SelectSeparator",mt=a.forwardRef((t,s)=>{const{__scopeSelect:e,...c}=t;return d.jsx(_.div,{"aria-hidden":!0,...c,ref:s})});mt.displayName=ho;var Re="SelectArrow",mo=a.forwardRef((t,s)=>{const{__scopeSelect:e,...c}=t,r=ge(e),i=X(Re,e),n=Y(Re,e);return i.open&&n.position==="popper"?d.jsx(Bt,{...r,...c,ref:s}):null});mo.displayName=Re;function gt(t){return t===""||t===void 0}var vt=a.forwardRef((t,s)=>{const{value:e,...c}=t,r=a.useRef(null),i=A(s,r),n=_e(e);return a.useEffect(()=>{const o=r.current,l=window.HTMLSelectElement.prototype,h=Object.getOwnPropertyDescriptor(l,"value").set;if(n!==e&&h){const v=new Event("change",{bubbles:!0});h.call(o,e),o.dispatchEvent(v)}},[n,e]),d.jsx(Ht,{asChild:!0,children:d.jsx("select",{...c,ref:i,defaultValue:e})})});vt.displayName="BubbleSelect";function xt(t){const s=Gt(t),e=a.useRef(""),c=a.useRef(0),r=a.useCallback(n=>{const o=e.current+n;s(o),function l(u){e.current=u,window.clearTimeout(c.current),u!==""&&(c.current=window.setTimeout(()=>l(""),1e3))}(o)},[s]),i=a.useCallback(()=>{e.current="",window.clearTimeout(c.current)},[]);return a.useEffect(()=>()=>window.clearTimeout(c.current),[]),[e,r,i]}function St(t,s,e){const r=s.length>1&&Array.from(s).every(u=>u===s[0])?s[0]:s,i=e?t.indexOf(e):-1;let n=go(t,Math.max(i,0));r.length===1&&(n=n.filter(u=>u!==e));const l=n.find(u=>u.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==e?l:void 0}function go(t,s){return t.map((e,c)=>t[(s+c)%t.length])}var jo=$e,Ao=qe,Oo=Ye,Do=Ze,Lo=Je,Vo=Qe,Bo=nt,Ho=at,Go=lt,Fo=it,Wo=ut,Ko=pt,Uo=ft,$o=mt,Me="Switch",[vo,zo]=fe(Me),[xo,So]=vo(Me),Ct=a.forwardRef((t,s)=>{const{__scopeSwitch:e,name:c,checked:r,defaultChecked:i,required:n,disabled:o,value:l="on",onCheckedChange:u,form:h,...v}=t,[S,y]=a.useState(null),w=A(s,m=>y(m)),p=a.useRef(!1),x=S?h||!!S.closest("form"):!0,[C=!1,f]=ee({prop:r,defaultProp:i,onChange:u});return d.jsxs(xo,{scope:e,checked:C,disabled:o,children:[d.jsx(_.button,{type:"button",role:"switch","aria-checked":C,"aria-required":n,"data-state":bt(C),"data-disabled":o?"":void 0,disabled:o,value:l,...v,ref:w,onClick:E(t.onClick,m=>{f(b=>!b),x&&(p.current=m.isPropagationStopped(),p.current||m.stopPropagation())})}),x&&d.jsx(Co,{control:S,bubbles:!p.current,name:c,value:l,checked:C,required:n,disabled:o,form:h,style:{transform:"translateX(-100%)"}})]})});Ct.displayName=Me;var wt="SwitchThumb",yt=a.forwardRef((t,s)=>{const{__scopeSwitch:e,...c}=t,r=So(wt,e);return d.jsx(_.span,{"data-state":bt(r.checked),"data-disabled":r.disabled?"":void 0,...c,ref:s})});yt.displayName=wt;var Co=t=>{const{control:s,checked:e,bubbles:c=!0,...r}=t,i=a.useRef(null),n=_e(e),o=Ve(s);return a.useEffect(()=>{const l=i.current,u=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(u,"checked").set;if(n!==e&&v){const S=new Event("click",{bubbles:c});v.call(l,e),l.dispatchEvent(S)}},[n,e,c]),d.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:e,...r,tabIndex:-1,ref:i,style:{...t.style,...o,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function bt(t){return t?"checked":"unchecked"}var qo=Ct,Xo=yt,wo="Toggle",je=a.forwardRef((t,s)=>{const{pressed:e,defaultPressed:c=!1,onPressedChange:r,...i}=t,[n=!1,o]=ee({prop:e,onChange:r,defaultProp:c});return d.jsx(_.button,{type:"button","aria-pressed":n,"data-state":n?"on":"off","data-disabled":t.disabled?"":void 0,...i,ref:s,onClick:E(t.onClick,()=>{t.disabled||o(!n)})})});je.displayName=wo;var Yo=je,re="ToggleGroup",[Pt,Zo]=fe(re,[Ge]),Tt=Ge(),Ae=V.forwardRef((t,s)=>{const{type:e,...c}=t;if(e==="single"){const r=c;return d.jsx(yo,{...r,ref:s})}if(e==="multiple"){const r=c;return d.jsx(bo,{...r,ref:s})}throw new Error(`Missing prop \`type\` expected on \`${re}\``)});Ae.displayName=re;var[It,Rt]=Pt(re),yo=V.forwardRef((t,s)=>{const{value:e,defaultValue:c,onValueChange:r=()=>{},...i}=t,[n,o]=ee({prop:e,defaultProp:c,onChange:r});return d.jsx(It,{scope:t.__scopeToggleGroup,type:"single",value:n?[n]:[],onItemActivate:o,onItemDeactivate:V.useCallback(()=>o(""),[o]),children:d.jsx(Et,{...i,ref:s})})}),bo=V.forwardRef((t,s)=>{const{value:e,defaultValue:c,onValueChange:r=()=>{},...i}=t,[n=[],o]=ee({prop:e,defaultProp:c,onChange:r}),l=V.useCallback(h=>o((v=[])=>[...v,h]),[o]),u=V.useCallback(h=>o((v=[])=>v.filter(S=>S!==h)),[o]);return d.jsx(It,{scope:t.__scopeToggleGroup,type:"multiple",value:n,onItemActivate:l,onItemDeactivate:u,children:d.jsx(Et,{...i,ref:s})})});Ae.displayName=re;var[Po,To]=Pt(re),Et=V.forwardRef((t,s)=>{const{__scopeToggleGroup:e,disabled:c=!1,rovingFocus:r=!0,orientation:i,dir:n,loop:o=!0,...l}=t,u=Tt(e),h=He(n),v={role:"group",dir:h,...l};return d.jsx(Po,{scope:e,rovingFocus:r,disabled:c,children:r?d.jsx(Ut,{asChild:!0,...u,orientation:i,dir:h,loop:o,children:d.jsx(_.div,{...v,ref:s})}):d.jsx(_.div,{...v,ref:s})})}),pe="ToggleGroupItem",_t=V.forwardRef((t,s)=>{const e=Rt(pe,t.__scopeToggleGroup),c=To(pe,t.__scopeToggleGroup),r=Tt(t.__scopeToggleGroup),i=e.value.includes(t.value),n=c.disabled||t.disabled,o={...t,pressed:i,disabled:n},l=V.useRef(null);return c.rovingFocus?d.jsx($t,{asChild:!0,...r,focusable:!n,active:i,ref:l,children:d.jsx(De,{...o,ref:s})}):d.jsx(De,{...o,ref:s})});_t.displayName=pe;var De=V.forwardRef((t,s)=>{const{__scopeToggleGroup:e,value:c,...r}=t,i=Rt(pe,e),n={role:"radio","aria-checked":t.pressed,"aria-pressed":void 0},o=i.type==="single"?n:void 0;return d.jsx(je,{...o,...r,ref:s,onPressedChange:l=>{l?i.onItemActivate(c):i.onItemDeactivate(c)}})}),Jo=Ae,Qo=_t;export{Vo as C,No as I,Ho as L,Lo as P,ko as R,Ko as S,Ao as T,Bo as V,Do as a,Uo as b,Go as c,Wo as d,Fo as e,$o as f,jo as g,Oo as h,qo as i,Xo as j,Yo as k,Jo as l,Qo as m}; diff --git a/pkg/ui/frontend/dist/assets/radix-layout-BqTpm3s4.js b/pkg/ui/frontend/dist/assets/radix-layout-BqTpm3s4.js new file mode 100644 index 0000000000..a9e1f24a60 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/radix-layout-BqTpm3s4.js @@ -0,0 +1,5 @@ +import{r as s}from"./react-core-D_V7s-9r.js";import{c as I,u as _,j as i,P as R,d as g,g as N,R as Re,S as xe,h as me,i as De,F as Pe,D as q,r as be,a as j,e as O,n as Ee,f as z,A as _e,C as Ne,k as Oe,o as ye,p as Te}from"./radix-core-ByqQ8fsu.js";var M="Dialog",[Y,ot]=I(M),[we,v]=Y(M),Z=e=>{const{__scopeDialog:o,children:r,open:a,defaultOpen:t,onOpenChange:n,modal:c=!0}=e,l=s.useRef(null),u=s.useRef(null),[f=!1,p]=j({prop:a,defaultProp:t,onChange:n});return i.jsx(we,{scope:o,triggerRef:l,contentRef:u,contentId:O(),titleId:O(),descriptionId:O(),open:f,onOpenChange:p,onOpenToggle:s.useCallback(()=>p(x=>!x),[p]),modal:c,children:r})};Z.displayName=M;var J="DialogTrigger",Se=s.forwardRef((e,o)=>{const{__scopeDialog:r,...a}=e,t=v(J,r),n=_(o,t.triggerRef);return i.jsx(R.button,{type:"button","aria-haspopup":"dialog","aria-expanded":t.open,"aria-controls":t.contentId,"data-state":L(t.open),...a,ref:n,onClick:g(e.onClick,t.onOpenToggle)})});Se.displayName=J;var F="DialogPortal",[Ae,Q]=Y(F,{forceMount:void 0}),X=e=>{const{__scopeDialog:o,forceMount:r,children:a,container:t}=e,n=v(F,o);return i.jsx(Ae,{scope:o,forceMount:r,children:s.Children.map(a,c=>i.jsx(N,{present:r||n.open,children:i.jsx(Ee,{asChild:!0,container:t,children:c})}))})};X.displayName=F;var y="DialogOverlay",ee=s.forwardRef((e,o)=>{const r=Q(y,e.__scopeDialog),{forceMount:a=r.forceMount,...t}=e,n=v(y,e.__scopeDialog);return n.modal?i.jsx(N,{present:a||n.open,children:i.jsx(Ie,{...t,ref:o})}):null});ee.displayName=y;var Ie=s.forwardRef((e,o)=>{const{__scopeDialog:r,...a}=e,t=v(y,r);return i.jsx(Re,{as:xe,allowPinchZoom:!0,shards:[t.contentRef],children:i.jsx(R.div,{"data-state":L(t.open),...a,ref:o,style:{pointerEvents:"auto",...a.style}})})}),b="DialogContent",te=s.forwardRef((e,o)=>{const r=Q(b,e.__scopeDialog),{forceMount:a=r.forceMount,...t}=e,n=v(b,e.__scopeDialog);return i.jsx(N,{present:a||n.open,children:n.modal?i.jsx(je,{...t,ref:o}):i.jsx(Me,{...t,ref:o})})});te.displayName=b;var je=s.forwardRef((e,o)=>{const r=v(b,e.__scopeDialog),a=s.useRef(null),t=_(o,r.contentRef,a);return s.useEffect(()=>{const n=a.current;if(n)return me(n)},[]),i.jsx(oe,{...e,ref:t,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:g(e.onCloseAutoFocus,n=>{var c;n.preventDefault(),(c=r.triggerRef.current)==null||c.focus()}),onPointerDownOutside:g(e.onPointerDownOutside,n=>{const c=n.detail.originalEvent,l=c.button===0&&c.ctrlKey===!0;(c.button===2||l)&&n.preventDefault()}),onFocusOutside:g(e.onFocusOutside,n=>n.preventDefault())})}),Me=s.forwardRef((e,o)=>{const r=v(b,e.__scopeDialog),a=s.useRef(!1),t=s.useRef(!1);return i.jsx(oe,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var c,l;(c=e.onCloseAutoFocus)==null||c.call(e,n),n.defaultPrevented||(a.current||(l=r.triggerRef.current)==null||l.focus(),n.preventDefault()),a.current=!1,t.current=!1},onInteractOutside:n=>{var u,f;(u=e.onInteractOutside)==null||u.call(e,n),n.defaultPrevented||(a.current=!0,n.detail.originalEvent.type==="pointerdown"&&(t.current=!0));const c=n.target;((f=r.triggerRef.current)==null?void 0:f.contains(c))&&n.preventDefault(),n.detail.originalEvent.type==="focusin"&&t.current&&n.preventDefault()}})}),oe=s.forwardRef((e,o)=>{const{__scopeDialog:r,trapFocus:a,onOpenAutoFocus:t,onCloseAutoFocus:n,...c}=e,l=v(b,r),u=s.useRef(null),f=_(o,u);return De(),i.jsxs(i.Fragment,{children:[i.jsx(Pe,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:t,onUnmountAutoFocus:n,children:i.jsx(q,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":L(l.open),...c,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(Fe,{titleId:l.titleId}),i.jsx(Le,{contentRef:u,descriptionId:l.descriptionId})]})]})}),H="DialogTitle",ne=s.forwardRef((e,o)=>{const{__scopeDialog:r,...a}=e,t=v(H,r);return i.jsx(R.h2,{id:t.titleId,...a,ref:o})});ne.displayName=H;var re="DialogDescription",ae=s.forwardRef((e,o)=>{const{__scopeDialog:r,...a}=e,t=v(re,r);return i.jsx(R.p,{id:t.descriptionId,...a,ref:o})});ae.displayName=re;var se="DialogClose",ie=s.forwardRef((e,o)=>{const{__scopeDialog:r,...a}=e,t=v(se,r);return i.jsx(R.button,{type:"button",...a,ref:o,onClick:g(e.onClick,()=>t.onOpenChange(!1))})});ie.displayName=se;function L(e){return e?"open":"closed"}var ce="DialogTitleWarning",[nt,le]=be(ce,{contentName:b,titleName:H,docsSlug:"dialog"}),Fe=({titleId:e})=>{const o=le(ce),r=`\`${o.contentName}\` requires a \`${o.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${o.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${o.docsSlug}`;return s.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},He="DialogDescriptionWarning",Le=({contentRef:e,descriptionId:o})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${le(He).contentName}}.`;return s.useEffect(()=>{var n;const t=(n=e.current)==null?void 0:n.getAttribute("aria-describedby");o&&t&&(document.getElementById(o)||console.warn(a))},[a,e,o]),null},rt=Z,at=X,st=ee,it=te,ct=ne,lt=ae,dt=ie,A,k="HoverCard",[de,ut]=I(k,[z]),S=z(),[ke,$]=de(k),ue=e=>{const{__scopeHoverCard:o,children:r,open:a,defaultOpen:t,onOpenChange:n,openDelay:c=700,closeDelay:l=300}=e,u=S(o),f=s.useRef(0),p=s.useRef(0),x=s.useRef(!1),C=s.useRef(!1),[D=!1,d]=j({prop:a,defaultProp:t,onChange:n}),m=s.useCallback(()=>{clearTimeout(p.current),f.current=window.setTimeout(()=>d(!0),c)},[c,d]),P=s.useCallback(()=>{clearTimeout(f.current),!x.current&&!C.current&&(p.current=window.setTimeout(()=>d(!1),l))},[l,d]),E=s.useCallback(()=>d(!1),[d]);return s.useEffect(()=>()=>{clearTimeout(f.current),clearTimeout(p.current)},[]),i.jsx(ke,{scope:o,open:D,onOpenChange:d,onOpen:m,onClose:P,onDismiss:E,hasSelectionRef:x,isPointerDownOnContentRef:C,children:i.jsx(ye,{...u,children:r})})};ue.displayName=k;var fe="HoverCardTrigger",pe=s.forwardRef((e,o)=>{const{__scopeHoverCard:r,...a}=e,t=$(fe,r),n=S(r);return i.jsx(_e,{asChild:!0,...n,children:i.jsx(R.a,{"data-state":t.open?"open":"closed",...a,ref:o,onPointerEnter:g(e.onPointerEnter,w(t.onOpen)),onPointerLeave:g(e.onPointerLeave,w(t.onClose)),onFocus:g(e.onFocus,t.onOpen),onBlur:g(e.onBlur,t.onClose),onTouchStart:g(e.onTouchStart,c=>c.preventDefault())})})});pe.displayName=fe;var $e="HoverCardPortal",[ft,We]=de($e,{forceMount:void 0}),T="HoverCardContent",ge=s.forwardRef((e,o)=>{const r=We(T,e.__scopeHoverCard),{forceMount:a=r.forceMount,...t}=e,n=$(T,e.__scopeHoverCard);return i.jsx(N,{present:a||n.open,children:i.jsx(Ge,{"data-state":n.open?"open":"closed",...t,onPointerEnter:g(e.onPointerEnter,w(n.onOpen)),onPointerLeave:g(e.onPointerLeave,w(n.onClose)),ref:o})})});ge.displayName=T;var Ge=s.forwardRef((e,o)=>{const{__scopeHoverCard:r,onEscapeKeyDown:a,onPointerDownOutside:t,onFocusOutside:n,onInteractOutside:c,...l}=e,u=$(T,r),f=S(r),p=s.useRef(null),x=_(o,p),[C,D]=s.useState(!1);return s.useEffect(()=>{if(C){const d=document.body;return A=d.style.userSelect||d.style.webkitUserSelect,d.style.userSelect="none",d.style.webkitUserSelect="none",()=>{d.style.userSelect=A,d.style.webkitUserSelect=A}}},[C]),s.useEffect(()=>{if(p.current){const d=()=>{D(!1),u.isPointerDownOnContentRef.current=!1,setTimeout(()=>{var P;((P=document.getSelection())==null?void 0:P.toString())!==""&&(u.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",d),()=>{document.removeEventListener("pointerup",d),u.hasSelectionRef.current=!1,u.isPointerDownOnContentRef.current=!1}}},[u.isPointerDownOnContentRef,u.hasSelectionRef]),s.useEffect(()=>{p.current&&Ve(p.current).forEach(m=>m.setAttribute("tabindex","-1"))}),i.jsx(q,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:c,onEscapeKeyDown:a,onPointerDownOutside:t,onFocusOutside:g(n,d=>{d.preventDefault()}),onDismiss:u.onDismiss,children:i.jsx(Ne,{...f,...l,onPointerDown:g(l.onPointerDown,d=>{d.currentTarget.contains(d.target)&&D(!0),u.hasSelectionRef.current=!1,u.isPointerDownOnContentRef.current=!0}),ref:x,style:{...l.style,userSelect:C?"text":void 0,WebkitUserSelect:C?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),Be="HoverCardArrow",Ue=s.forwardRef((e,o)=>{const{__scopeHoverCard:r,...a}=e,t=S(r);return i.jsx(Oe,{...t,...a,ref:o})});Ue.displayName=Be;function w(e){return o=>o.pointerType==="touch"?void 0:e()}function Ve(e){const o=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;r.nextNode();)o.push(r.currentNode);return o}var pt=ue,gt=pe,vt=ge,W="Collapsible",[Ke,Ct]=I(W),[qe,G]=Ke(W),ve=s.forwardRef((e,o)=>{const{__scopeCollapsible:r,open:a,defaultOpen:t,disabled:n,onOpenChange:c,...l}=e,[u=!1,f]=j({prop:a,defaultProp:t,onChange:c});return i.jsx(qe,{scope:r,disabled:n,contentId:O(),open:u,onOpenToggle:s.useCallback(()=>f(p=>!p),[f]),children:i.jsx(R.div,{"data-state":U(u),"data-disabled":n?"":void 0,...l,ref:o})})});ve.displayName=W;var Ce="CollapsibleTrigger",ze=s.forwardRef((e,o)=>{const{__scopeCollapsible:r,...a}=e,t=G(Ce,r);return i.jsx(R.button,{type:"button","aria-controls":t.contentId,"aria-expanded":t.open||!1,"data-state":U(t.open),"data-disabled":t.disabled?"":void 0,disabled:t.disabled,...a,ref:o,onClick:g(e.onClick,t.onOpenToggle)})});ze.displayName=Ce;var B="CollapsibleContent",Ye=s.forwardRef((e,o)=>{const{forceMount:r,...a}=e,t=G(B,e.__scopeCollapsible);return i.jsx(N,{present:r||t.open,children:({present:n})=>i.jsx(Ze,{...a,ref:o,present:n})})});Ye.displayName=B;var Ze=s.forwardRef((e,o)=>{const{__scopeCollapsible:r,present:a,children:t,...n}=e,c=G(B,r),[l,u]=s.useState(a),f=s.useRef(null),p=_(o,f),x=s.useRef(0),C=x.current,D=s.useRef(0),d=D.current,m=c.open||l,P=s.useRef(m),E=s.useRef(void 0);return s.useEffect(()=>{const h=requestAnimationFrame(()=>P.current=!1);return()=>cancelAnimationFrame(h)},[]),Te(()=>{const h=f.current;if(h){E.current=E.current||{transitionDuration:h.style.transitionDuration,animationName:h.style.animationName},h.style.transitionDuration="0s",h.style.animationName="none";const V=h.getBoundingClientRect();x.current=V.height,D.current=V.width,P.current||(h.style.transitionDuration=E.current.transitionDuration,h.style.animationName=E.current.animationName),u(a)}},[c.open,a]),i.jsx(R.div,{"data-state":U(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!m,...n,ref:p,style:{"--radix-collapsible-content-height":C?`${C}px`:void 0,"--radix-collapsible-content-width":d?`${d}px`:void 0,...e.style},children:m&&t})});function U(e){return e?"open":"closed"}var ht=ve,Je="Separator",K="horizontal",Qe=["horizontal","vertical"],he=s.forwardRef((e,o)=>{const{decorative:r,orientation:a=K,...t}=e,n=Xe(a)?a:K,l=r?{role:"none"}:{"aria-orientation":n==="vertical"?n:void 0,role:"separator"};return i.jsx(R.div,{"data-orientation":n,...l,...t,ref:o})});he.displayName=Je;function Xe(e){return Qe.includes(e)}var Rt=he;export{it as C,lt as D,st as O,at as P,rt as R,ct as T,dt as a,vt as b,pt as c,gt as d,ht as e,ze as f,Ye as g,Rt as h}; diff --git a/pkg/ui/frontend/dist/assets/radix-navigation-DYoR-lWZ.js b/pkg/ui/frontend/dist/assets/radix-navigation-DYoR-lWZ.js new file mode 100644 index 0000000000..32ba7a49c0 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/radix-navigation-DYoR-lWZ.js @@ -0,0 +1 @@ +import{b as W,r as s}from"./react-core-D_V7s-9r.js";import{c as J,u as y,j as i,S as Re,a as Ee,b as G,P as E,d as w,e as ce,f as We,A as co,g as $,h as io,i as lo,F as uo,D as fo,C as po,k as mo,l as He,R as ho,m as vo,n as wo,o as bo,p as go}from"./radix-core-ByqQ8fsu.js";function Ye(e){const o=e+"CollectionProvider",[t,n]=J(o),[r,a]=t(o,{collectionRef:{current:null},itemMap:new Map}),c=v=>{const{scope:h,children:S}=v,R=W.useRef(null),g=W.useRef(new Map).current;return i.jsx(r,{scope:h,itemMap:g,collectionRef:R,children:S})};c.displayName=o;const u=e+"CollectionSlot",f=W.forwardRef((v,h)=>{const{scope:S,children:R}=v,g=a(u,S),C=y(h,g.collectionRef);return i.jsx(Re,{ref:C,children:R})});f.displayName=u;const m=e+"CollectionItemSlot",d="data-radix-collection-item",l=W.forwardRef((v,h)=>{const{scope:S,children:R,...g}=v,C=W.useRef(null),P=y(h,C),I=a(m,S);return W.useEffect(()=>(I.itemMap.set(C,{ref:C,...g}),()=>void I.itemMap.delete(C))),i.jsx(Re,{[d]:"",ref:P,children:R})});l.displayName=m;function p(v){const h=a(e+"CollectionConsumer",v);return W.useCallback(()=>{const R=h.collectionRef.current;if(!R)return[];const g=Array.from(R.querySelectorAll(`[${d}]`));return Array.from(h.itemMap.values()).sort((I,A)=>g.indexOf(I.ref.current)-g.indexOf(A.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:c,Slot:f,ItemSlot:l},p,n]}var So=s.createContext(void 0);function fe(e){const o=s.useContext(So);return e||o||"ltr"}var xe="rovingFocusGroup.onEntryFocus",Co={bubbles:!1,cancelable:!0},pe="RovingFocusGroup",[Me,ze,xo]=Ye(pe),[Ro,me]=J(pe,[xo]),[Mo,_o]=Ro(pe),Xe=s.forwardRef((e,o)=>i.jsx(Me.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(Me.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(Eo,{...e,ref:o})})}));Xe.displayName=pe;var Eo=s.forwardRef((e,o)=>{const{__scopeRovingFocusGroup:t,orientation:n,loop:r=!1,dir:a,currentTabStopId:c,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:f,onEntryFocus:m,preventScrollOnEntryFocus:d=!1,...l}=e,p=s.useRef(null),v=y(o,p),h=fe(a),[S=null,R]=Ee({prop:c,defaultProp:u,onChange:f}),[g,C]=s.useState(!1),P=G(m),I=ze(t),A=s.useRef(!1),[F,D]=s.useState(0);return s.useEffect(()=>{const M=p.current;if(M)return M.addEventListener(xe,P),()=>M.removeEventListener(xe,P)},[P]),i.jsx(Mo,{scope:t,orientation:n,dir:h,loop:r,currentTabStopId:S,onItemFocus:s.useCallback(M=>R(M),[R]),onItemShiftTab:s.useCallback(()=>C(!0),[]),onFocusableItemAdd:s.useCallback(()=>D(M=>M+1),[]),onFocusableItemRemove:s.useCallback(()=>D(M=>M-1),[]),children:i.jsx(E.div,{tabIndex:g||F===0?-1:0,"data-orientation":n,...l,ref:v,style:{outline:"none",...e.style},onMouseDown:w(e.onMouseDown,()=>{A.current=!0}),onFocus:w(e.onFocus,M=>{const x=!A.current;if(M.target===M.currentTarget&&x&&!g){const _=new CustomEvent(xe,Co);if(M.currentTarget.dispatchEvent(_),!_.defaultPrevented){const N=I().filter(U=>U.focusable),z=N.find(U=>U.active),ae=N.find(U=>U.id===S),ge=[z,ae,...N].filter(Boolean).map(U=>U.ref.current);Je(ge,d)}}A.current=!1}),onBlur:w(e.onBlur,()=>C(!1))})})}),qe="RovingFocusGroupItem",Ze=s.forwardRef((e,o)=>{const{__scopeRovingFocusGroup:t,focusable:n=!0,active:r=!1,tabStopId:a,...c}=e,u=ce(),f=a||u,m=_o(qe,t),d=m.currentTabStopId===f,l=ze(t),{onFocusableItemAdd:p,onFocusableItemRemove:v}=m;return s.useEffect(()=>{if(n)return p(),()=>v()},[n,p,v]),i.jsx(Me.ItemSlot,{scope:t,id:f,focusable:n,active:r,children:i.jsx(E.span,{tabIndex:d?0:-1,"data-orientation":m.orientation,...c,ref:o,onMouseDown:w(e.onMouseDown,h=>{n?m.onItemFocus(f):h.preventDefault()}),onFocus:w(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:w(e.onKeyDown,h=>{if(h.key==="Tab"&&h.shiftKey){m.onItemShiftTab();return}if(h.target!==h.currentTarget)return;const S=Io(h,m.orientation,m.dir);if(S!==void 0){if(h.metaKey||h.ctrlKey||h.altKey||h.shiftKey)return;h.preventDefault();let g=l().filter(C=>C.focusable).map(C=>C.ref.current);if(S==="last")g.reverse();else if(S==="prev"||S==="next"){S==="prev"&&g.reverse();const C=g.indexOf(h.currentTarget);g=m.loop?yo(g,C+1):g.slice(C+1)}setTimeout(()=>Je(g))}})})})});Ze.displayName=qe;var Po={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function To(e,o){return o!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Io(e,o,t){const n=To(e.key,t);if(!(o==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(o==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return Po[n]}function Je(e,o=!1){const t=document.activeElement;for(const n of e)if(n===t||(n.focus({preventScroll:o}),document.activeElement!==t))return}function yo(e,o){return e.map((t,n)=>e[(o+n)%e.length])}var Qe=Xe,et=Ze,_e=["Enter"," "],Ao=["ArrowDown","PageUp","Home"],tt=["ArrowUp","PageDown","End"],Do=[...Ao,...tt],No={ltr:[..._e,"ArrowRight"],rtl:[..._e,"ArrowLeft"]},Oo={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ne="Menu",[te,jo,Lo]=Ye(ne),[H,ot]=J(ne,[Lo,We,me]),he=We(),nt=me(),[Fo,Y]=H(ne),[ko,re]=H(ne),rt=e=>{const{__scopeMenu:o,open:t=!1,children:n,dir:r,onOpenChange:a,modal:c=!0}=e,u=he(o),[f,m]=s.useState(null),d=s.useRef(!1),l=G(a),p=fe(r);return s.useEffect(()=>{const v=()=>{d.current=!0,document.addEventListener("pointerdown",h,{capture:!0,once:!0}),document.addEventListener("pointermove",h,{capture:!0,once:!0})},h=()=>d.current=!1;return document.addEventListener("keydown",v,{capture:!0}),()=>{document.removeEventListener("keydown",v,{capture:!0}),document.removeEventListener("pointerdown",h,{capture:!0}),document.removeEventListener("pointermove",h,{capture:!0})}},[]),i.jsx(bo,{...u,children:i.jsx(Fo,{scope:o,open:t,onOpenChange:l,content:f,onContentChange:m,children:i.jsx(ko,{scope:o,onClose:s.useCallback(()=>l(!1),[l]),isUsingKeyboardRef:d,dir:p,modal:c,children:n})})})};rt.displayName=ne;var Go="MenuAnchor",Pe=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,r=he(t);return i.jsx(co,{...r,...n,ref:o})});Pe.displayName=Go;var Te="MenuPortal",[Ko,at]=H(Te,{forceMount:void 0}),st=e=>{const{__scopeMenu:o,forceMount:t,children:n,container:r}=e,a=Y(Te,o);return i.jsx(Ko,{scope:o,forceMount:t,children:i.jsx($,{present:t||a.open,children:i.jsx(wo,{asChild:!0,container:r,children:n})})})};st.displayName=Te;var j="MenuContent",[Uo,Ie]=H(j),ct=s.forwardRef((e,o)=>{const t=at(j,e.__scopeMenu),{forceMount:n=t.forceMount,...r}=e,a=Y(j,e.__scopeMenu),c=re(j,e.__scopeMenu);return i.jsx(te.Provider,{scope:e.__scopeMenu,children:i.jsx($,{present:n||a.open,children:i.jsx(te.Slot,{scope:e.__scopeMenu,children:c.modal?i.jsx(Vo,{...r,ref:o}):i.jsx($o,{...r,ref:o})})})})}),Vo=s.forwardRef((e,o)=>{const t=Y(j,e.__scopeMenu),n=s.useRef(null),r=y(o,n);return s.useEffect(()=>{const a=n.current;if(a)return io(a)},[]),i.jsx(ye,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:w(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),$o=s.forwardRef((e,o)=>{const t=Y(j,e.__scopeMenu);return i.jsx(ye,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),ye=s.forwardRef((e,o)=>{const{__scopeMenu:t,loop:n=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:c,disableOutsidePointerEvents:u,onEntryFocus:f,onEscapeKeyDown:m,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:p,onDismiss:v,disableOutsideScroll:h,...S}=e,R=Y(j,t),g=re(j,t),C=he(t),P=nt(t),I=jo(t),[A,F]=s.useState(null),D=s.useRef(null),M=y(o,D,R.onContentChange),x=s.useRef(0),_=s.useRef(""),N=s.useRef(0),z=s.useRef(null),ae=s.useRef("right"),se=s.useRef(0),ge=h?ho:s.Fragment,U=h?{as:Re,allowPinchZoom:!0}:void 0,so=b=>{var q,Ue;const O=_.current+b,k=I().filter(V=>!V.disabled),B=document.activeElement,Se=(q=k.find(V=>V.ref.current===B))==null?void 0:q.textValue,Ce=k.map(V=>V.textValue),Ke=tn(Ce,O,Se),Q=(Ue=k.find(V=>V.textValue===Ke))==null?void 0:Ue.ref.current;(function V(Ve){_.current=Ve,window.clearTimeout(x.current),Ve!==""&&(x.current=window.setTimeout(()=>V(""),1e3))})(O),Q&&setTimeout(()=>Q.focus())};s.useEffect(()=>()=>window.clearTimeout(x.current),[]),lo();const X=s.useCallback(b=>{var k,B;return ae.current===((k=z.current)==null?void 0:k.side)&&nn(b,(B=z.current)==null?void 0:B.area)},[]);return i.jsx(Uo,{scope:t,searchRef:_,onItemEnter:s.useCallback(b=>{X(b)&&b.preventDefault()},[X]),onItemLeave:s.useCallback(b=>{var O;X(b)||((O=D.current)==null||O.focus(),F(null))},[X]),onTriggerLeave:s.useCallback(b=>{X(b)&&b.preventDefault()},[X]),pointerGraceTimerRef:N,onPointerGraceIntentChange:s.useCallback(b=>{z.current=b},[]),children:i.jsx(ge,{...U,children:i.jsx(uo,{asChild:!0,trapped:r,onMountAutoFocus:w(a,b=>{var O;b.preventDefault(),(O=D.current)==null||O.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:i.jsx(fo,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:m,onPointerDownOutside:d,onFocusOutside:l,onInteractOutside:p,onDismiss:v,children:i.jsx(Qe,{asChild:!0,...P,dir:g.dir,orientation:"vertical",loop:n,currentTabStopId:A,onCurrentTabStopIdChange:F,onEntryFocus:w(f,b=>{g.isUsingKeyboardRef.current||b.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(po,{role:"menu","aria-orientation":"vertical","data-state":Rt(R.open),"data-radix-menu-content":"",dir:g.dir,...C,...S,ref:M,style:{outline:"none",...S.style},onKeyDown:w(S.onKeyDown,b=>{const k=b.target.closest("[data-radix-menu-content]")===b.currentTarget,B=b.ctrlKey||b.altKey||b.metaKey,Se=b.key.length===1;k&&(b.key==="Tab"&&b.preventDefault(),!B&&Se&&so(b.key));const Ce=D.current;if(b.target!==Ce||!Do.includes(b.key))return;b.preventDefault();const Q=I().filter(q=>!q.disabled).map(q=>q.ref.current);tt.includes(b.key)&&Q.reverse(),Qo(Q)}),onBlur:w(e.onBlur,b=>{b.currentTarget.contains(b.target)||(window.clearTimeout(x.current),_.current="")}),onPointerMove:w(e.onPointerMove,oe(b=>{const O=b.target,k=se.current!==b.clientX;if(b.currentTarget.contains(O)&&k){const B=b.clientX>se.current?"right":"left";ae.current=B,se.current=b.clientX}}))})})})})})})});ct.displayName=j;var Bo="MenuGroup",Ae=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return i.jsx(E.div,{role:"group",...n,ref:o})});Ae.displayName=Bo;var Wo="MenuLabel",it=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return i.jsx(E.div,{...n,ref:o})});it.displayName=Wo;var ie="MenuItem",$e="menu.itemSelect",ve=s.forwardRef((e,o)=>{const{disabled:t=!1,onSelect:n,...r}=e,a=s.useRef(null),c=re(ie,e.__scopeMenu),u=Ie(ie,e.__scopeMenu),f=y(o,a),m=s.useRef(!1),d=()=>{const l=a.current;if(!t&&l){const p=new CustomEvent($e,{bubbles:!0,cancelable:!0});l.addEventListener($e,v=>n==null?void 0:n(v),{once:!0}),vo(l,p),p.defaultPrevented?m.current=!1:c.onClose()}};return i.jsx(lt,{...r,ref:f,disabled:t,onClick:w(e.onClick,d),onPointerDown:l=>{var p;(p=e.onPointerDown)==null||p.call(e,l),m.current=!0},onPointerUp:w(e.onPointerUp,l=>{var p;m.current||(p=l.currentTarget)==null||p.click()}),onKeyDown:w(e.onKeyDown,l=>{const p=u.searchRef.current!=="";t||p&&l.key===" "||_e.includes(l.key)&&(l.currentTarget.click(),l.preventDefault())})})});ve.displayName=ie;var lt=s.forwardRef((e,o)=>{const{__scopeMenu:t,disabled:n=!1,textValue:r,...a}=e,c=Ie(ie,t),u=nt(t),f=s.useRef(null),m=y(o,f),[d,l]=s.useState(!1),[p,v]=s.useState("");return s.useEffect(()=>{const h=f.current;h&&v((h.textContent??"").trim())},[a.children]),i.jsx(te.ItemSlot,{scope:t,disabled:n,textValue:r??p,children:i.jsx(et,{asChild:!0,...u,focusable:!n,children:i.jsx(E.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...a,ref:m,onPointerMove:w(e.onPointerMove,oe(h=>{n?c.onItemLeave(h):(c.onItemEnter(h),h.defaultPrevented||h.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:w(e.onPointerLeave,oe(h=>c.onItemLeave(h))),onFocus:w(e.onFocus,()=>l(!0)),onBlur:w(e.onBlur,()=>l(!1))})})})}),Ho="MenuCheckboxItem",ut=s.forwardRef((e,o)=>{const{checked:t=!1,onCheckedChange:n,...r}=e;return i.jsx(ht,{scope:e.__scopeMenu,checked:t,children:i.jsx(ve,{role:"menuitemcheckbox","aria-checked":le(t)?"mixed":t,...r,ref:o,"data-state":Ne(t),onSelect:w(r.onSelect,()=>n==null?void 0:n(le(t)?!0:!t),{checkForDefaultPrevented:!1})})})});ut.displayName=Ho;var dt="MenuRadioGroup",[Yo,zo]=H(dt,{value:void 0,onValueChange:()=>{}}),ft=s.forwardRef((e,o)=>{const{value:t,onValueChange:n,...r}=e,a=G(n);return i.jsx(Yo,{scope:e.__scopeMenu,value:t,onValueChange:a,children:i.jsx(Ae,{...r,ref:o})})});ft.displayName=dt;var pt="MenuRadioItem",mt=s.forwardRef((e,o)=>{const{value:t,...n}=e,r=zo(pt,e.__scopeMenu),a=t===r.value;return i.jsx(ht,{scope:e.__scopeMenu,checked:a,children:i.jsx(ve,{role:"menuitemradio","aria-checked":a,...n,ref:o,"data-state":Ne(a),onSelect:w(n.onSelect,()=>{var c;return(c=r.onValueChange)==null?void 0:c.call(r,t)},{checkForDefaultPrevented:!1})})})});mt.displayName=pt;var De="MenuItemIndicator",[ht,Xo]=H(De,{checked:!1}),vt=s.forwardRef((e,o)=>{const{__scopeMenu:t,forceMount:n,...r}=e,a=Xo(De,t);return i.jsx($,{present:n||le(a.checked)||a.checked===!0,children:i.jsx(E.span,{...r,ref:o,"data-state":Ne(a.checked)})})});vt.displayName=De;var qo="MenuSeparator",wt=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e;return i.jsx(E.div,{role:"separator","aria-orientation":"horizontal",...n,ref:o})});wt.displayName=qo;var Zo="MenuArrow",bt=s.forwardRef((e,o)=>{const{__scopeMenu:t,...n}=e,r=he(t);return i.jsx(mo,{...r,...n,ref:o})});bt.displayName=Zo;var Jo="MenuSub",[tr,gt]=H(Jo),ee="MenuSubTrigger",St=s.forwardRef((e,o)=>{const t=Y(ee,e.__scopeMenu),n=re(ee,e.__scopeMenu),r=gt(ee,e.__scopeMenu),a=Ie(ee,e.__scopeMenu),c=s.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:f}=a,m={__scopeMenu:e.__scopeMenu},d=s.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return s.useEffect(()=>d,[d]),s.useEffect(()=>{const l=u.current;return()=>{window.clearTimeout(l),f(null)}},[u,f]),i.jsx(Pe,{asChild:!0,...m,children:i.jsx(lt,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":r.contentId,"data-state":Rt(t.open),...e,ref:He(o,r.onTriggerChange),onClick:l=>{var p;(p=e.onClick)==null||p.call(e,l),!(e.disabled||l.defaultPrevented)&&(l.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:w(e.onPointerMove,oe(l=>{a.onItemEnter(l),!l.defaultPrevented&&!e.disabled&&!t.open&&!c.current&&(a.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{t.onOpenChange(!0),d()},100))})),onPointerLeave:w(e.onPointerLeave,oe(l=>{var v,h;d();const p=(v=t.content)==null?void 0:v.getBoundingClientRect();if(p){const S=(h=t.content)==null?void 0:h.dataset.side,R=S==="right",g=R?-5:5,C=p[R?"left":"right"],P=p[R?"right":"left"];a.onPointerGraceIntentChange({area:[{x:l.clientX+g,y:l.clientY},{x:C,y:p.top},{x:P,y:p.top},{x:P,y:p.bottom},{x:C,y:p.bottom}],side:S}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(l),l.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:w(e.onKeyDown,l=>{var v;const p=a.searchRef.current!=="";e.disabled||p&&l.key===" "||No[n.dir].includes(l.key)&&(t.onOpenChange(!0),(v=t.content)==null||v.focus(),l.preventDefault())})})})});St.displayName=ee;var Ct="MenuSubContent",xt=s.forwardRef((e,o)=>{const t=at(j,e.__scopeMenu),{forceMount:n=t.forceMount,...r}=e,a=Y(j,e.__scopeMenu),c=re(j,e.__scopeMenu),u=gt(Ct,e.__scopeMenu),f=s.useRef(null),m=y(o,f);return i.jsx(te.Provider,{scope:e.__scopeMenu,children:i.jsx($,{present:n||a.open,children:i.jsx(te.Slot,{scope:e.__scopeMenu,children:i.jsx(ye,{id:u.contentId,"aria-labelledby":u.triggerId,...r,ref:m,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{var l;c.isUsingKeyboardRef.current&&((l=f.current)==null||l.focus()),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:w(e.onFocusOutside,d=>{d.target!==u.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:w(e.onEscapeKeyDown,d=>{c.onClose(),d.preventDefault()}),onKeyDown:w(e.onKeyDown,d=>{var v;const l=d.currentTarget.contains(d.target),p=Oo[c.dir].includes(d.key);l&&p&&(a.onOpenChange(!1),(v=u.trigger)==null||v.focus(),d.preventDefault())})})})})})});xt.displayName=Ct;function Rt(e){return e?"open":"closed"}function le(e){return e==="indeterminate"}function Ne(e){return le(e)?"indeterminate":e?"checked":"unchecked"}function Qo(e){const o=document.activeElement;for(const t of e)if(t===o||(t.focus(),document.activeElement!==o))return}function en(e,o){return e.map((t,n)=>e[(o+n)%e.length])}function tn(e,o,t){const r=o.length>1&&Array.from(o).every(m=>m===o[0])?o[0]:o,a=t?e.indexOf(t):-1;let c=en(e,Math.max(a,0));r.length===1&&(c=c.filter(m=>m!==t));const f=c.find(m=>m.toLowerCase().startsWith(r.toLowerCase()));return f!==t?f:void 0}function on(e,o){const{x:t,y:n}=e;let r=!1;for(let a=0,c=o.length-1;an!=d>n&&t<(m-u)*(n-f)/(d-f)+u&&(r=!r)}return r}function nn(e,o){if(!o)return!1;const t={x:e.clientX,y:e.clientY};return on(t,o)}function oe(e){return o=>o.pointerType==="mouse"?e(o):void 0}var rn=rt,an=Pe,sn=st,cn=ct,ln=Ae,un=it,dn=ve,fn=ut,pn=ft,mn=mt,hn=vt,vn=wt,wn=bt,bn=St,gn=xt,Oe="DropdownMenu",[Sn,or]=J(Oe,[ot]),T=ot(),[Cn,Mt]=Sn(Oe),_t=e=>{const{__scopeDropdownMenu:o,children:t,dir:n,open:r,defaultOpen:a,onOpenChange:c,modal:u=!0}=e,f=T(o),m=s.useRef(null),[d=!1,l]=Ee({prop:r,defaultProp:a,onChange:c});return i.jsx(Cn,{scope:o,triggerId:ce(),triggerRef:m,contentId:ce(),open:d,onOpenChange:l,onOpenToggle:s.useCallback(()=>l(p=>!p),[l]),modal:u,children:i.jsx(rn,{...f,open:d,onOpenChange:l,dir:n,modal:u,children:t})})};_t.displayName=Oe;var Et="DropdownMenuTrigger",Pt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,disabled:n=!1,...r}=e,a=Mt(Et,t),c=T(t);return i.jsx(an,{asChild:!0,...c,children:i.jsx(E.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...r,ref:He(o,a.triggerRef),onPointerDown:w(e.onPointerDown,u=>{!n&&u.button===0&&u.ctrlKey===!1&&(a.onOpenToggle(),a.open||u.preventDefault())}),onKeyDown:w(e.onKeyDown,u=>{n||(["Enter"," "].includes(u.key)&&a.onOpenToggle(),u.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(u.key)&&u.preventDefault())})})})});Pt.displayName=Et;var xn="DropdownMenuPortal",Tt=e=>{const{__scopeDropdownMenu:o,...t}=e,n=T(o);return i.jsx(sn,{...n,...t})};Tt.displayName=xn;var It="DropdownMenuContent",yt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=Mt(It,t),a=T(t),c=s.useRef(!1);return i.jsx(cn,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...n,ref:o,onCloseAutoFocus:w(e.onCloseAutoFocus,u=>{var f;c.current||(f=r.triggerRef.current)==null||f.focus(),c.current=!1,u.preventDefault()}),onInteractOutside:w(e.onInteractOutside,u=>{const f=u.detail.originalEvent,m=f.button===0&&f.ctrlKey===!0,d=f.button===2||m;(!r.modal||d)&&(c.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});yt.displayName=It;var Rn="DropdownMenuGroup",Mn=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(ln,{...r,...n,ref:o})});Mn.displayName=Rn;var _n="DropdownMenuLabel",At=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(un,{...r,...n,ref:o})});At.displayName=_n;var En="DropdownMenuItem",Dt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(dn,{...r,...n,ref:o})});Dt.displayName=En;var Pn="DropdownMenuCheckboxItem",Nt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(fn,{...r,...n,ref:o})});Nt.displayName=Pn;var Tn="DropdownMenuRadioGroup",In=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(pn,{...r,...n,ref:o})});In.displayName=Tn;var yn="DropdownMenuRadioItem",Ot=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(mn,{...r,...n,ref:o})});Ot.displayName=yn;var An="DropdownMenuItemIndicator",jt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(hn,{...r,...n,ref:o})});jt.displayName=An;var Dn="DropdownMenuSeparator",Lt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(vn,{...r,...n,ref:o})});Lt.displayName=Dn;var Nn="DropdownMenuArrow",On=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(wn,{...r,...n,ref:o})});On.displayName=Nn;var jn="DropdownMenuSubTrigger",Ft=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(bn,{...r,...n,ref:o})});Ft.displayName=jn;var Ln="DropdownMenuSubContent",kt=s.forwardRef((e,o)=>{const{__scopeDropdownMenu:t,...n}=e,r=T(t);return i.jsx(gn,{...r,...n,ref:o,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});kt.displayName=Ln;var nr=_t,rr=Pt,ar=Tt,sr=yt,cr=At,ir=Dt,lr=Nt,ur=Ot,dr=jt,fr=Lt,pr=Ft,mr=kt;function Fn(e,[o,t]){return Math.min(t,Math.max(o,e))}function kn(e,o){return s.useReducer((t,n)=>o[t][n]??t,e)}var je="ScrollArea",[Gt,hr]=J(je),[Gn,L]=Gt(je),Kt=s.forwardRef((e,o)=>{const{__scopeScrollArea:t,type:n="hover",dir:r,scrollHideDelay:a=600,...c}=e,[u,f]=s.useState(null),[m,d]=s.useState(null),[l,p]=s.useState(null),[v,h]=s.useState(null),[S,R]=s.useState(null),[g,C]=s.useState(0),[P,I]=s.useState(0),[A,F]=s.useState(!1),[D,M]=s.useState(!1),x=y(o,N=>f(N)),_=fe(r);return i.jsx(Gn,{scope:t,type:n,dir:_,scrollHideDelay:a,scrollArea:u,viewport:m,onViewportChange:d,content:l,onContentChange:p,scrollbarX:v,onScrollbarXChange:h,scrollbarXEnabled:A,onScrollbarXEnabledChange:F,scrollbarY:S,onScrollbarYChange:R,scrollbarYEnabled:D,onScrollbarYEnabledChange:M,onCornerWidthChange:C,onCornerHeightChange:I,children:i.jsx(E.div,{dir:_,...c,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":g+"px","--radix-scroll-area-corner-height":P+"px",...e.style}})})});Kt.displayName=je;var Ut="ScrollAreaViewport",Vt=s.forwardRef((e,o)=>{const{__scopeScrollArea:t,children:n,nonce:r,...a}=e,c=L(Ut,t),u=s.useRef(null),f=y(o,u,c.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),i.jsx(E.div,{"data-radix-scroll-area-viewport":"",...a,ref:f,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Vt.displayName=Ut;var K="ScrollAreaScrollbar",Kn=s.forwardRef((e,o)=>{const{forceMount:t,...n}=e,r=L(K,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:c}=r,u=e.orientation==="horizontal";return s.useEffect(()=>(u?a(!0):c(!0),()=>{u?a(!1):c(!1)}),[u,a,c]),r.type==="hover"?i.jsx(Un,{...n,ref:o,forceMount:t}):r.type==="scroll"?i.jsx(Vn,{...n,ref:o,forceMount:t}):r.type==="auto"?i.jsx($t,{...n,ref:o,forceMount:t}):r.type==="always"?i.jsx(Le,{...n,ref:o}):null});Kn.displayName=K;var Un=s.forwardRef((e,o)=>{const{forceMount:t,...n}=e,r=L(K,e.__scopeScrollArea),[a,c]=s.useState(!1);return s.useEffect(()=>{const u=r.scrollArea;let f=0;if(u){const m=()=>{window.clearTimeout(f),c(!0)},d=()=>{f=window.setTimeout(()=>c(!1),r.scrollHideDelay)};return u.addEventListener("pointerenter",m),u.addEventListener("pointerleave",d),()=>{window.clearTimeout(f),u.removeEventListener("pointerenter",m),u.removeEventListener("pointerleave",d)}}},[r.scrollArea,r.scrollHideDelay]),i.jsx($,{present:t||a,children:i.jsx($t,{"data-state":a?"visible":"hidden",...n,ref:o})})}),Vn=s.forwardRef((e,o)=>{const{forceMount:t,...n}=e,r=L(K,e.__scopeScrollArea),a=e.orientation==="horizontal",c=be(()=>f("SCROLL_END"),100),[u,f]=kn("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(u==="idle"){const m=window.setTimeout(()=>f("HIDE"),r.scrollHideDelay);return()=>window.clearTimeout(m)}},[u,r.scrollHideDelay,f]),s.useEffect(()=>{const m=r.viewport,d=a?"scrollLeft":"scrollTop";if(m){let l=m[d];const p=()=>{const v=m[d];l!==v&&(f("SCROLL"),c()),l=v};return m.addEventListener("scroll",p),()=>m.removeEventListener("scroll",p)}},[r.viewport,a,f,c]),i.jsx($,{present:t||u!=="hidden",children:i.jsx(Le,{"data-state":u==="hidden"?"hidden":"visible",...n,ref:o,onPointerEnter:w(e.onPointerEnter,()=>f("POINTER_ENTER")),onPointerLeave:w(e.onPointerLeave,()=>f("POINTER_LEAVE"))})})}),$t=s.forwardRef((e,o)=>{const t=L(K,e.__scopeScrollArea),{forceMount:n,...r}=e,[a,c]=s.useState(!1),u=e.orientation==="horizontal",f=be(()=>{if(t.viewport){const m=t.viewport.offsetWidth{const{orientation:t="vertical",...n}=e,r=L(K,e.__scopeScrollArea),a=s.useRef(null),c=s.useRef(0),[u,f]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),m=Yt(u.viewport,u.content),d={...n,sizes:u,onSizesChange:f,hasThumb:m>0&&m<1,onThumbChange:p=>a.current=p,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:p=>c.current=p};function l(p,v){return Xn(p,c.current,u,v)}return t==="horizontal"?i.jsx($n,{...d,ref:o,onThumbPositionChange:()=>{if(r.viewport&&a.current){const p=r.viewport.scrollLeft,v=Be(p,u,r.dir);a.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:p=>{r.viewport&&(r.viewport.scrollLeft=p)},onDragScroll:p=>{r.viewport&&(r.viewport.scrollLeft=l(p,r.dir))}}):t==="vertical"?i.jsx(Bn,{...d,ref:o,onThumbPositionChange:()=>{if(r.viewport&&a.current){const p=r.viewport.scrollTop,v=Be(p,u);a.current.style.transform=`translate3d(0, ${v}px, 0)`}},onWheelScroll:p=>{r.viewport&&(r.viewport.scrollTop=p)},onDragScroll:p=>{r.viewport&&(r.viewport.scrollTop=l(p))}}):null}),$n=s.forwardRef((e,o)=>{const{sizes:t,onSizesChange:n,...r}=e,a=L(K,e.__scopeScrollArea),[c,u]=s.useState(),f=s.useRef(null),m=y(o,f,a.onScrollbarXChange);return s.useEffect(()=>{f.current&&u(getComputedStyle(f.current))},[f]),i.jsx(Wt,{"data-orientation":"horizontal",...r,ref:m,sizes:t,style:{bottom:0,left:a.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:a.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":we(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,l)=>{if(a.viewport){const p=a.viewport.scrollLeft+d.deltaX;e.onWheelScroll(p),Xt(p,l)&&d.preventDefault()}},onResize:()=>{f.current&&a.viewport&&c&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:f.current.clientWidth,paddingStart:de(c.paddingLeft),paddingEnd:de(c.paddingRight)}})}})}),Bn=s.forwardRef((e,o)=>{const{sizes:t,onSizesChange:n,...r}=e,a=L(K,e.__scopeScrollArea),[c,u]=s.useState(),f=s.useRef(null),m=y(o,f,a.onScrollbarYChange);return s.useEffect(()=>{f.current&&u(getComputedStyle(f.current))},[f]),i.jsx(Wt,{"data-orientation":"vertical",...r,ref:m,sizes:t,style:{top:0,right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":we(t)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,l)=>{if(a.viewport){const p=a.viewport.scrollTop+d.deltaY;e.onWheelScroll(p),Xt(p,l)&&d.preventDefault()}},onResize:()=>{f.current&&a.viewport&&c&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:f.current.clientHeight,paddingStart:de(c.paddingTop),paddingEnd:de(c.paddingBottom)}})}})}),[Wn,Bt]=Gt(K),Wt=s.forwardRef((e,o)=>{const{__scopeScrollArea:t,sizes:n,hasThumb:r,onThumbChange:a,onThumbPointerUp:c,onThumbPointerDown:u,onThumbPositionChange:f,onDragScroll:m,onWheelScroll:d,onResize:l,...p}=e,v=L(K,t),[h,S]=s.useState(null),R=y(o,x=>S(x)),g=s.useRef(null),C=s.useRef(""),P=v.viewport,I=n.content-n.viewport,A=G(d),F=G(f),D=be(l,10);function M(x){if(g.current){const _=x.clientX-g.current.left,N=x.clientY-g.current.top;m({x:_,y:N})}}return s.useEffect(()=>{const x=_=>{const N=_.target;(h==null?void 0:h.contains(N))&&A(_,I)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[P,h,I,A]),s.useEffect(F,[n,F]),Z(h,D),Z(v.content,D),i.jsx(Wn,{scope:t,scrollbar:h,hasThumb:r,onThumbChange:G(a),onThumbPointerUp:G(c),onThumbPositionChange:F,onThumbPointerDown:G(u),children:i.jsx(E.div,{...p,ref:R,style:{position:"absolute",...p.style},onPointerDown:w(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),g.current=h.getBoundingClientRect(),C.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),M(x))}),onPointerMove:w(e.onPointerMove,M),onPointerUp:w(e.onPointerUp,x=>{const _=x.target;_.hasPointerCapture(x.pointerId)&&_.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=C.current,v.viewport&&(v.viewport.style.scrollBehavior=""),g.current=null})})})}),ue="ScrollAreaThumb",Hn=s.forwardRef((e,o)=>{const{forceMount:t,...n}=e,r=Bt(ue,e.__scopeScrollArea);return i.jsx($,{present:t||r.hasThumb,children:i.jsx(Yn,{ref:o,...n})})}),Yn=s.forwardRef((e,o)=>{const{__scopeScrollArea:t,style:n,...r}=e,a=L(ue,t),c=Bt(ue,t),{onThumbPositionChange:u}=c,f=y(o,l=>c.onThumbChange(l)),m=s.useRef(void 0),d=be(()=>{m.current&&(m.current(),m.current=void 0)},100);return s.useEffect(()=>{const l=a.viewport;if(l){const p=()=>{if(d(),!m.current){const v=qn(l,u);m.current=v,u()}};return u(),l.addEventListener("scroll",p),()=>l.removeEventListener("scroll",p)}},[a.viewport,d,u]),i.jsx(E.div,{"data-state":c.hasThumb?"visible":"hidden",...r,ref:f,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:w(e.onPointerDownCapture,l=>{const v=l.target.getBoundingClientRect(),h=l.clientX-v.left,S=l.clientY-v.top;c.onThumbPointerDown({x:h,y:S})}),onPointerUp:w(e.onPointerUp,c.onThumbPointerUp)})});Hn.displayName=ue;var Fe="ScrollAreaCorner",Ht=s.forwardRef((e,o)=>{const t=L(Fe,e.__scopeScrollArea),n=!!(t.scrollbarX&&t.scrollbarY);return t.type!=="scroll"&&n?i.jsx(zn,{...e,ref:o}):null});Ht.displayName=Fe;var zn=s.forwardRef((e,o)=>{const{__scopeScrollArea:t,...n}=e,r=L(Fe,t),[a,c]=s.useState(0),[u,f]=s.useState(0),m=!!(a&&u);return Z(r.scrollbarX,()=>{var l;const d=((l=r.scrollbarX)==null?void 0:l.offsetHeight)||0;r.onCornerHeightChange(d),f(d)}),Z(r.scrollbarY,()=>{var l;const d=((l=r.scrollbarY)==null?void 0:l.offsetWidth)||0;r.onCornerWidthChange(d),c(d)}),m?i.jsx(E.div,{...n,ref:o,style:{width:a,height:u,position:"absolute",right:r.dir==="ltr"?0:void 0,left:r.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function de(e){return e?parseInt(e,10):0}function Yt(e,o){const t=e/o;return isNaN(t)?0:t}function we(e){const o=Yt(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-t)*o;return Math.max(n,18)}function Xn(e,o,t,n="ltr"){const r=we(t),a=r/2,c=o||a,u=r-c,f=t.scrollbar.paddingStart+c,m=t.scrollbar.size-t.scrollbar.paddingEnd-u,d=t.content-t.viewport,l=n==="ltr"?[0,d]:[d*-1,0];return zt([f,m],l)(e)}function Be(e,o,t="ltr"){const n=we(o),r=o.scrollbar.paddingStart+o.scrollbar.paddingEnd,a=o.scrollbar.size-r,c=o.content-o.viewport,u=a-n,f=t==="ltr"?[0,c]:[c*-1,0],m=Fn(e,f);return zt([0,c],[0,u])(m)}function zt(e,o){return t=>{if(e[0]===e[1]||o[0]===o[1])return o[0];const n=(o[1]-o[0])/(e[1]-e[0]);return o[0]+n*(t-e[0])}}function Xt(e,o){return e>0&&e{})=>{let t={left:e.scrollLeft,top:e.scrollTop},n=0;return function r(){const a={left:e.scrollLeft,top:e.scrollTop},c=t.left!==a.left,u=t.top!==a.top;(c||u)&&o(),t=a,n=window.requestAnimationFrame(r)}(),()=>window.cancelAnimationFrame(n)};function be(e,o){const t=G(e),n=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(n.current),[]),s.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(t,o)},[t,o])}function Z(e,o){const t=G(o);go(()=>{let n=0;if(e){const r=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(t)});return r.observe(e),()=>{window.cancelAnimationFrame(n),r.unobserve(e)}}},[e,t])}var vr=Kt,wr=Vt,br=Ht,ke="Tabs",[Zn,gr]=J(ke,[me]),qt=me(),[Jn,Ge]=Zn(ke),Zt=s.forwardRef((e,o)=>{const{__scopeTabs:t,value:n,onValueChange:r,defaultValue:a,orientation:c="horizontal",dir:u,activationMode:f="automatic",...m}=e,d=fe(u),[l,p]=Ee({prop:n,onChange:r,defaultProp:a});return i.jsx(Jn,{scope:t,baseId:ce(),value:l,onValueChange:p,orientation:c,dir:d,activationMode:f,children:i.jsx(E.div,{dir:d,"data-orientation":c,...m,ref:o})})});Zt.displayName=ke;var Jt="TabsList",Qt=s.forwardRef((e,o)=>{const{__scopeTabs:t,loop:n=!0,...r}=e,a=Ge(Jt,t),c=qt(t);return i.jsx(Qe,{asChild:!0,...c,orientation:a.orientation,dir:a.dir,loop:n,children:i.jsx(E.div,{role:"tablist","aria-orientation":a.orientation,...r,ref:o})})});Qt.displayName=Jt;var eo="TabsTrigger",to=s.forwardRef((e,o)=>{const{__scopeTabs:t,value:n,disabled:r=!1,...a}=e,c=Ge(eo,t),u=qt(t),f=ro(c.baseId,n),m=ao(c.baseId,n),d=n===c.value;return i.jsx(et,{asChild:!0,...u,focusable:!r,active:d,children:i.jsx(E.button,{type:"button",role:"tab","aria-selected":d,"aria-controls":m,"data-state":d?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:f,...a,ref:o,onMouseDown:w(e.onMouseDown,l=>{!r&&l.button===0&&l.ctrlKey===!1?c.onValueChange(n):l.preventDefault()}),onKeyDown:w(e.onKeyDown,l=>{[" ","Enter"].includes(l.key)&&c.onValueChange(n)}),onFocus:w(e.onFocus,()=>{const l=c.activationMode!=="manual";!d&&!r&&l&&c.onValueChange(n)})})})});to.displayName=eo;var oo="TabsContent",no=s.forwardRef((e,o)=>{const{__scopeTabs:t,value:n,forceMount:r,children:a,...c}=e,u=Ge(oo,t),f=ro(u.baseId,n),m=ao(u.baseId,n),d=n===u.value,l=s.useRef(d);return s.useEffect(()=>{const p=requestAnimationFrame(()=>l.current=!1);return()=>cancelAnimationFrame(p)},[]),i.jsx($,{present:r||d,children:({present:p})=>i.jsx(E.div,{"data-state":d?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":f,hidden:!p,id:m,tabIndex:0,...c,ref:o,style:{...e.style,animationDuration:l.current?"0s":void 0},children:p&&a})})});no.displayName=oo;function ro(e,o){return`${e}-trigger-${o}`}function ao(e,o){return`${e}-content-${o}`}var Sr=Zt,Cr=Qt,xr=to,Rr=no;export{sr as C,et as I,cr as L,ar as P,Qe as R,pr as S,rr as T,wr as V,Fn as a,me as b,Ye as c,mr as d,ir as e,lr as f,dr as g,ur as h,fr as i,nr as j,vr as k,br as l,Kn as m,Hn as n,Cr as o,xr as p,Rr as q,Sr as r,fe as u}; diff --git a/pkg/ui/frontend/dist/assets/react-core-D_V7s-9r.js b/pkg/ui/frontend/dist/assets/react-core-D_V7s-9r.js new file mode 100644 index 0000000000..e46154114c --- /dev/null +++ b/pkg/ui/frontend/dist/assets/react-core-D_V7s-9r.js @@ -0,0 +1,32 @@ +function $o(e,n){for(var t=0;tr[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var kd=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ao={exports:{}},T={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Kt=Symbol.for("react.element"),ba=Symbol.for("react.portal"),ef=Symbol.for("react.fragment"),nf=Symbol.for("react.strict_mode"),tf=Symbol.for("react.profiler"),rf=Symbol.for("react.provider"),lf=Symbol.for("react.context"),uf=Symbol.for("react.forward_ref"),of=Symbol.for("react.suspense"),sf=Symbol.for("react.memo"),af=Symbol.for("react.lazy"),Li=Symbol.iterator;function ff(e){return e===null||typeof e!="object"?null:(e=Li&&e[Li]||e["@@iterator"],typeof e=="function"?e:null)}var Bo={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ho=Object.assign,Wo={};function rt(e,n,t){this.props=e,this.context=n,this.refs=Wo,this.updater=t||Bo}rt.prototype.isReactComponent={};rt.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};rt.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Qo(){}Qo.prototype=rt.prototype;function Du(e,n,t){this.props=e,this.context=n,this.refs=Wo,this.updater=t||Bo}var Iu=Du.prototype=new Qo;Iu.constructor=Du;Ho(Iu,rt.prototype);Iu.isPureReactComponent=!0;var Ri=Array.isArray,Ko=Object.prototype.hasOwnProperty,Fu={current:null},Yo={key:!0,ref:!0,__self:!0,__source:!0};function Xo(e,n,t){var r,l={},u=null,i=null;if(n!=null)for(r in n.ref!==void 0&&(i=n.ref),n.key!==void 0&&(u=""+n.key),n)Ko.call(n,r)&&!Yo.hasOwnProperty(r)&&(l[r]=n[r]);var o=arguments.length-2;if(o===1)l.children=t;else if(1>>1,X=C[H];if(0>>1;Hl(hl,z))vnl(qt,hl)?(C[H]=qt,C[vn]=z,H=vn):(C[H]=hl,C[hn]=z,H=hn);else if(vnl(qt,z))C[H]=qt,C[vn]=z,H=vn;else break e}}return N}function l(C,N){var z=C.sortIndex-N.sortIndex;return z!==0?z:C.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var s=[],f=[],h=1,m=null,p=3,g=!1,w=!1,k=!1,F=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(C){for(var N=t(f);N!==null;){if(N.callback===null)r(f);else if(N.startTime<=C)r(f),N.sortIndex=N.expirationTime,n(s,N);else break;N=t(f)}}function v(C){if(k=!1,d(C),!w)if(t(s)!==null)w=!0,pl(E);else{var N=t(f);N!==null&&ml(v,N.startTime-C)}}function E(C,N){w=!1,k&&(k=!1,c(P),P=-1),g=!0;var z=p;try{for(d(N),m=t(s);m!==null&&(!(m.expirationTime>N)||C&&!xe());){var H=m.callback;if(typeof H=="function"){m.callback=null,p=m.priorityLevel;var X=H(m.expirationTime<=N);N=e.unstable_now(),typeof X=="function"?m.callback=X:m===t(s)&&r(s),d(N)}else r(s);m=t(s)}if(m!==null)var Jt=!0;else{var hn=t(f);hn!==null&&ml(v,hn.startTime-N),Jt=!1}return Jt}finally{m=null,p=z,g=!1}}var _=!1,x=null,P=-1,B=5,L=-1;function xe(){return!(e.unstable_now()-LC||125H?(C.sortIndex=z,n(f,C),t(s)===null&&C===t(f)&&(k?(c(P),P=-1):k=!0,ml(v,z-H))):(C.sortIndex=X,n(s,C),w||g||(w=!0,pl(E))),C},e.unstable_shouldYield=xe,e.unstable_wrapCallback=function(C){var N=p;return function(){var z=p;p=N;try{return C.apply(this,arguments)}finally{p=z}}}})(qo);Jo.exports=qo;var vf=Jo.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yf=Uu,ve=vf;function y(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Bl=Object.prototype.hasOwnProperty,gf=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Oi={},Di={};function wf(e){return Bl.call(Di,e)?!0:Bl.call(Oi,e)?!1:gf.test(e)?Di[e]=!0:(Oi[e]=!0,!1)}function kf(e,n,t,r){if(t!==null&&t.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return r?!1:t!==null?!t.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Sf(e,n,t,r){if(n===null||typeof n>"u"||kf(e,n,t,r))return!0;if(r)return!1;if(t!==null)switch(t.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function oe(e,n,t,r,l,u,i){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=u,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){b[e]=new oe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];b[n]=new oe(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){b[e]=new oe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){b[e]=new oe(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){b[e]=new oe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){b[e]=new oe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){b[e]=new oe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){b[e]=new oe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){b[e]=new oe(e,5,!1,e.toLowerCase(),null,!1,!1)});var $u=/[\-:]([a-z])/g;function Vu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace($u,Vu);b[n]=new oe(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace($u,Vu);b[n]=new oe(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace($u,Vu);b[n]=new oe(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){b[e]=new oe(e,1,!1,e.toLowerCase(),null,!1,!1)});b.xlinkHref=new oe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){b[e]=new oe(e,1,!1,e.toLowerCase(),null,!0,!0)});function Au(e,n,t,r){var l=b.hasOwnProperty(n)?b[n]:null;(l!==null?l.type!==0:r||!(2o||l[i]!==u[o]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=o);break}}}finally{gl=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?vt(e):""}function Ef(e){switch(e.tag){case 5:return vt(e.type);case 16:return vt("Lazy");case 13:return vt("Suspense");case 19:return vt("SuspenseList");case 0:case 2:case 15:return e=wl(e.type,!1),e;case 11:return e=wl(e.type.render,!1),e;case 1:return e=wl(e.type,!0),e;default:return""}}function Kl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case On:return"Fragment";case Mn:return"Portal";case Hl:return"Profiler";case Bu:return"StrictMode";case Wl:return"Suspense";case Ql:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case ns:return(e.displayName||"Context")+".Consumer";case es:return(e._context.displayName||"Context")+".Provider";case Hu:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Wu:return n=e.displayName||null,n!==null?n:Kl(e.type)||"Memo";case Ge:n=e._payload,e=e._init;try{return Kl(e(n))}catch{}}return null}function Cf(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Kl(n);case 8:return n===Bu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function fn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function rs(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function _f(e){var n=rs(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&typeof t<"u"&&typeof t.get=="function"&&typeof t.set=="function"){var l=t.get,u=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,u.call(this,i)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function nr(e){e._valueTracker||(e._valueTracker=_f(e))}function ls(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=rs(e)?e.checked?"true":"false":e.value),e=r,e!==t?(n.setValue(e),!0):!1}function zr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Yl(e,n){var t=n.checked;return V({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:t??e._wrapperState.initialChecked})}function Fi(e,n){var t=n.defaultValue==null?"":n.defaultValue,r=n.checked!=null?n.checked:n.defaultChecked;t=fn(n.value!=null?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function us(e,n){n=n.checked,n!=null&&Au(e,"checked",n,!1)}function Xl(e,n){us(e,n);var t=fn(n.value),r=n.type;if(t!=null)r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Gl(e,n.type,t):n.hasOwnProperty("defaultValue")&&Gl(e,n.type,fn(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function ji(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!(r!=="submit"&&r!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}t=e.name,t!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,t!==""&&(e.name=t)}function Gl(e,n,t){(n!=="number"||zr(e.ownerDocument)!==e)&&(t==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var yt=Array.isArray;function Wn(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=tr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Lt(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&t.nodeType===3){t.nodeValue=n;return}}e.textContent=n}var kt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},xf=["Webkit","ms","Moz","O"];Object.keys(kt).forEach(function(e){xf.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),kt[n]=kt[e]})});function as(e,n,t){return n==null||typeof n=="boolean"||n===""?"":t||typeof n!="number"||n===0||kt.hasOwnProperty(e)&&kt[e]?(""+n).trim():n+"px"}function fs(e,n){e=e.style;for(var t in n)if(n.hasOwnProperty(t)){var r=t.indexOf("--")===0,l=as(t,n[t],r);t==="float"&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}var Pf=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ql(e,n){if(n){if(Pf[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(y(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(y(61))}if(n.style!=null&&typeof n.style!="object")throw Error(y(62))}}function bl(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var eu=null;function Qu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var nu=null,Qn=null,Kn=null;function Vi(e){if(e=Gt(e)){if(typeof nu!="function")throw Error(y(280));var n=e.stateNode;n&&(n=tl(n),nu(e.stateNode,e.type,n))}}function cs(e){Qn?Kn?Kn.push(e):Kn=[e]:Qn=e}function ds(){if(Qn){var e=Qn,n=Kn;if(Kn=Qn=null,Vi(e),n)for(e=0;e>>=0,e===0?32:31-(jf(e)/Uf|0)|0}var rr=64,lr=4194304;function gt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Mr(e,n){var t=e.pendingLanes;if(t===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,i=t&268435455;if(i!==0){var o=i&~l;o!==0?r=gt(o):(u&=i,u!==0&&(r=gt(u)))}else i=t&~l,i!==0?r=gt(i):u!==0&&(r=gt(u));if(r===0)return 0;if(n!==0&&n!==r&&!(n&l)&&(l=r&-r,u=n&-n,l>=u||l===16&&(u&4194240)!==0))return n;if(r&4&&(r|=t&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function Yt(e,n,t){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Le(n),e[n]=t}function Bf(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Et),Gi=" ",Zi=!1;function Ms(e,n){switch(e){case"keyup":return vc.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Os(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Dn=!1;function gc(e,n){switch(e){case"compositionend":return Os(n);case"keypress":return n.which!==32?null:(Zi=!0,Gi);case"textInput":return e=n.data,e===Gi&&Zi?null:e;default:return null}}function wc(e,n){if(Dn)return e==="compositionend"||!bu&&Ms(e,n)?(e=Ls(),wr=Zu=be=null,Dn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:t,offset:n-e};e=r}e:{for(;t;){if(t.nextSibling){t=t.nextSibling;break e}t=t.parentNode}t=void 0}t=eo(t)}}function js(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?js(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Us(){for(var e=window,n=zr();n instanceof e.HTMLIFrameElement;){try{var t=typeof n.contentWindow.location.href=="string"}catch{t=!1}if(t)e=n.contentWindow;else break;n=zr(e.document)}return n}function ei(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function zc(e){var n=Us(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&js(t.ownerDocument.documentElement,t)){if(r!==null&&ei(t)){if(n=r.start,e=r.end,e===void 0&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if(e=(n=t.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var l=t.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=no(t,u);var i=no(t,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(n=n.createRange(),n.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(n),e.extend(i.node,i.offset)):(n.setEnd(i.node,i.offset),e.addRange(n)))}}for(n=[],e=t;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof t.focus=="function"&&t.focus(),t=0;t=document.documentMode,In=null,ou=null,_t=null,su=!1;function to(e,n,t){var r=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;su||In==null||In!==zr(r)||(r=In,"selectionStart"in r&&ei(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),_t&&Ft(_t,r)||(_t=r,r=Ir(ou,"onSelect"),0Un||(e.current=mu[Un],mu[Un]=null,Un--)}function O(e,n){Un++,mu[Un]=e.current,e.current=n}var cn={},re=pn(cn),fe=pn(!1),_n=cn;function Jn(e,n){var t=e.type.contextTypes;if(!t)return cn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in t)l[u]=n[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=l),l}function ce(e){return e=e.childContextTypes,e!=null}function jr(){I(fe),I(re)}function ao(e,n,t){if(re.current!==cn)throw Error(y(168));O(re,n),O(fe,t)}function Ys(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,typeof r.getChildContext!="function")return t;r=r.getChildContext();for(var l in r)if(!(l in n))throw Error(y(108,Cf(e)||"Unknown",l));return V({},t,r)}function Ur(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||cn,_n=re.current,O(re,e),O(fe,fe.current),!0}function fo(e,n,t){var r=e.stateNode;if(!r)throw Error(y(169));t?(e=Ys(e,n,_n),r.__reactInternalMemoizedMergedChildContext=e,I(fe),I(re),O(re,e)):I(fe),O(fe,t)}var $e=null,rl=!1,Ol=!1;function Xs(e){$e===null?$e=[e]:$e.push(e)}function Vc(e){rl=!0,Xs(e)}function mn(){if(!Ol&&$e!==null){Ol=!0;var e=0,n=M;try{var t=$e;for(M=1;e>=i,l-=i,Ve=1<<32-Le(n)+l|t<P?(B=x,x=null):B=x.sibling;var L=p(c,x,d[P],v);if(L===null){x===null&&(x=B);break}e&&x&&L.alternate===null&&n(c,x),a=u(L,a,P),_===null?E=L:_.sibling=L,_=L,x=B}if(P===d.length)return t(c,x),j&&yn(c,P),E;if(x===null){for(;PP?(B=x,x=null):B=x.sibling;var xe=p(c,x,L.value,v);if(xe===null){x===null&&(x=B);break}e&&x&&xe.alternate===null&&n(c,x),a=u(xe,a,P),_===null?E=xe:_.sibling=xe,_=xe,x=B}if(L.done)return t(c,x),j&&yn(c,P),E;if(x===null){for(;!L.done;P++,L=d.next())L=m(c,L.value,v),L!==null&&(a=u(L,a,P),_===null?E=L:_.sibling=L,_=L);return j&&yn(c,P),E}for(x=r(c,x);!L.done;P++,L=d.next())L=g(x,c,P,L.value,v),L!==null&&(e&&L.alternate!==null&&x.delete(L.key===null?P:L.key),a=u(L,a,P),_===null?E=L:_.sibling=L,_=L);return e&&x.forEach(function(it){return n(c,it)}),j&&yn(c,P),E}function F(c,a,d,v){if(typeof d=="object"&&d!==null&&d.type===On&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case er:e:{for(var E=d.key,_=a;_!==null;){if(_.key===E){if(E=d.type,E===On){if(_.tag===7){t(c,_.sibling),a=l(_,d.props.children),a.return=c,c=a;break e}}else if(_.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===Ge&&mo(E)===_.type){t(c,_.sibling),a=l(_,d.props),a.ref=pt(c,_,d),a.return=c,c=a;break e}t(c,_);break}else n(c,_);_=_.sibling}d.type===On?(a=Cn(d.props.children,c.mode,v,d.key),a.return=c,c=a):(v=Nr(d.type,d.key,d.props,null,c.mode,v),v.ref=pt(c,a,d),v.return=c,c=v)}return i(c);case Mn:e:{for(_=d.key;a!==null;){if(a.key===_)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){t(c,a.sibling),a=l(a,d.children||[]),a.return=c,c=a;break e}else{t(c,a);break}else n(c,a);a=a.sibling}a=Al(d,c.mode,v),a.return=c,c=a}return i(c);case Ge:return _=d._init,F(c,a,_(d._payload),v)}if(yt(d))return w(c,a,d,v);if(st(d))return k(c,a,d,v);cr(c,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(t(c,a.sibling),a=l(a,d),a.return=c,c=a):(t(c,a),a=Vl(d,c.mode,v),a.return=c,c=a),i(c)):t(c,a)}return F}var bn=qs(!0),bs=qs(!1),Ar=pn(null),Br=null,An=null,li=null;function ui(){li=An=Br=null}function ii(e){var n=Ar.current;I(Ar),e._currentValue=n}function yu(e,n,t){for(;e!==null;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,r!==null&&(r.childLanes|=n)):r!==null&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Xn(e,n){Br=e,li=An=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(ae=!0),e.firstContext=null)}function Ce(e){var n=e._currentValue;if(li!==e)if(e={context:e,memoizedValue:n,next:null},An===null){if(Br===null)throw Error(y(308));An=e,Br.dependencies={lanes:0,firstContext:e}}else An=An.next=e;return n}var kn=null;function oi(e){kn===null?kn=[e]:kn.push(e)}function ea(e,n,t,r){var l=n.interleaved;return l===null?(t.next=t,oi(n)):(t.next=l.next,l.next=t),n.interleaved=t,Qe(e,r)}function Qe(e,n){e.lanes|=n;var t=e.alternate;for(t!==null&&(t.lanes|=n),t=e,e=e.return;e!==null;)e.childLanes|=n,t=e.alternate,t!==null&&(t.childLanes|=n),t=e,e=e.return;return t.tag===3?t.stateNode:null}var Ze=!1;function si(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function na(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Be(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function un(e,n,t){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,R&2){var l=r.pending;return l===null?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Qe(e,t)}return l=r.interleaved,l===null?(n.next=n,oi(r)):(n.next=l.next,l.next=n),r.interleaved=n,Qe(e,t)}function Sr(e,n,t){if(n=n.updateQueue,n!==null&&(n=n.shared,(t&4194240)!==0)){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Yu(e,t)}}function ho(e,n){var t=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,t===r)){var l=null,u=null;if(t=t.firstBaseUpdate,t!==null){do{var i={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};u===null?l=u=i:u=u.next=i,t=t.next}while(t!==null);u===null?l=u=n:u=u.next=n}else l=u=n;t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=t;return}e=t.lastBaseUpdate,e===null?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Hr(e,n,t,r){var l=e.updateQueue;Ze=!1;var u=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var s=o,f=s.next;s.next=null,i===null?u=f:i.next=f,i=s;var h=e.alternate;h!==null&&(h=h.updateQueue,o=h.lastBaseUpdate,o!==i&&(o===null?h.firstBaseUpdate=f:o.next=f,h.lastBaseUpdate=s))}if(u!==null){var m=l.baseState;i=0,h=f=s=null,o=u;do{var p=o.lane,g=o.eventTime;if((r&p)===p){h!==null&&(h=h.next={eventTime:g,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var w=e,k=o;switch(p=n,g=t,k.tag){case 1:if(w=k.payload,typeof w=="function"){m=w.call(g,m,p);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=k.payload,p=typeof w=="function"?w.call(g,m,p):w,p==null)break e;m=V({},m,p);break e;case 2:Ze=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[o]:p.push(o))}else g={eventTime:g,lane:p,tag:o.tag,payload:o.payload,callback:o.callback,next:null},h===null?(f=h=g,s=m):h=h.next=g,i|=p;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;p=o,o=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(h===null&&(s=m),l.baseState=s,l.firstBaseUpdate=f,l.lastBaseUpdate=h,n=l.shared.interleaved,n!==null){l=n;do i|=l.lane,l=l.next;while(l!==n)}else u===null&&(l.shared.lanes=0);Nn|=i,e.lanes=i,e.memoizedState=m}}function vo(e,n,t){if(e=n.effects,n.effects=null,e!==null)for(n=0;nt?t:4,e(!0);var r=Il.transition;Il.transition={};try{e(!1),n()}finally{M=t,Il.transition=r}}function ga(){return _e().memoizedState}function Wc(e,n,t){var r=sn(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},wa(e))ka(n,t);else if(t=ea(e,n,t,r),t!==null){var l=ue();Re(t,e,r,l),Sa(t,n,r)}}function Qc(e,n,t){var r=sn(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(wa(e))ka(n,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=n.lastRenderedReducer,u!==null))try{var i=n.lastRenderedState,o=u(i,t);if(l.hasEagerState=!0,l.eagerState=o,Me(o,i)){var s=n.interleaved;s===null?(l.next=l,oi(n)):(l.next=s.next,s.next=l),n.interleaved=l;return}}catch{}finally{}t=ea(e,n,l,r),t!==null&&(l=ue(),Re(t,e,r,l),Sa(t,n,r))}}function wa(e){var n=e.alternate;return e===$||n!==null&&n===$}function ka(e,n){xt=Qr=!0;var t=e.pending;t===null?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function Sa(e,n,t){if(t&4194240){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,Yu(e,t)}}var Kr={readContext:Ce,useCallback:ee,useContext:ee,useEffect:ee,useImperativeHandle:ee,useInsertionEffect:ee,useLayoutEffect:ee,useMemo:ee,useReducer:ee,useRef:ee,useState:ee,useDebugValue:ee,useDeferredValue:ee,useTransition:ee,useMutableSource:ee,useSyncExternalStore:ee,useId:ee,unstable_isNewReconciler:!1},Kc={readContext:Ce,useCallback:function(e,n){return De().memoizedState=[e,n===void 0?null:n],e},useContext:Ce,useEffect:go,useImperativeHandle:function(e,n,t){return t=t!=null?t.concat([e]):null,Cr(4194308,4,pa.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Cr(4194308,4,e,n)},useInsertionEffect:function(e,n){return Cr(4,2,e,n)},useMemo:function(e,n){var t=De();return n=n===void 0?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=De();return n=t!==void 0?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=Wc.bind(null,$,e),[r.memoizedState,e]},useRef:function(e){var n=De();return e={current:e},n.memoizedState=e},useState:yo,useDebugValue:vi,useDeferredValue:function(e){return De().memoizedState=e},useTransition:function(){var e=yo(!1),n=e[0];return e=Hc.bind(null,e[1]),De().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=$,l=De();if(j){if(t===void 0)throw Error(y(407));t=t()}else{if(t=n(),Z===null)throw Error(y(349));Pn&30||ua(r,n,t)}l.memoizedState=t;var u={value:t,getSnapshot:n};return l.queue=u,go(oa.bind(null,r,u,e),[e]),r.flags|=2048,Wt(9,ia.bind(null,r,u,t,n),void 0,null),t},useId:function(){var e=De(),n=Z.identifierPrefix;if(j){var t=Ae,r=Ve;t=(r&~(1<<32-Le(r)-1)).toString(32)+t,n=":"+n+"R"+t,t=Bt++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),t==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[Ie]=n,e[$t]=r,Ra(e,n,!1,!1),n.stateNode=e;e:{switch(i=bl(t,r),t){case"dialog":D("cancel",e),D("close",e),l=r;break;case"iframe":case"object":case"embed":D("load",e),l=r;break;case"video":case"audio":for(l=0;ltt&&(n.flags|=128,r=!0,mt(u,!1),n.lanes=4194304)}else{if(!r)if(e=Wr(i),e!==null){if(n.flags|=128,r=!0,t=e.updateQueue,t!==null&&(n.updateQueue=t,n.flags|=4),mt(u,!0),u.tail===null&&u.tailMode==="hidden"&&!i.alternate&&!j)return ne(n),null}else 2*W()-u.renderingStartTime>tt&&t!==1073741824&&(n.flags|=128,r=!0,mt(u,!1),n.lanes=4194304);u.isBackwards?(i.sibling=n.child,n.child=i):(t=u.last,t!==null?t.sibling=i:n.child=i,u.last=i)}return u.tail!==null?(n=u.tail,u.rendering=n,u.tail=n.sibling,u.renderingStartTime=W(),n.sibling=null,t=U.current,O(U,r?t&1|2:t&1),n):(ne(n),null);case 22:case 23:return Ei(),r=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(n.flags|=8192),r&&n.mode&1?pe&1073741824&&(ne(n),n.subtreeFlags&6&&(n.flags|=8192)):ne(n),null;case 24:return null;case 25:return null}throw Error(y(156,n.tag))}function ed(e,n){switch(ti(n),n.tag){case 1:return ce(n.type)&&jr(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return et(),I(fe),I(re),ci(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return fi(n),null;case 13:if(I(U),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(y(340));qn()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return I(U),null;case 4:return et(),null;case 10:return ii(n.type._context),null;case 22:case 23:return Ei(),null;case 24:return null;default:return null}}var pr=!1,te=!1,nd=typeof WeakSet=="function"?WeakSet:Set,S=null;function Bn(e,n){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){A(e,n,r)}else t.current=null}function Pu(e,n,t){try{t()}catch(r){A(e,n,r)}}var To=!1;function td(e,n){if(au=Or,e=Us(),ei(e)){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{t=(t=e.ownerDocument)&&t.defaultView||window;var r=t.getSelection&&t.getSelection();if(r&&r.rangeCount!==0){t=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{t.nodeType,u.nodeType}catch{t=null;break e}var i=0,o=-1,s=-1,f=0,h=0,m=e,p=null;n:for(;;){for(var g;m!==t||l!==0&&m.nodeType!==3||(o=i+l),m!==u||r!==0&&m.nodeType!==3||(s=i+r),m.nodeType===3&&(i+=m.nodeValue.length),(g=m.firstChild)!==null;)p=m,m=g;for(;;){if(m===e)break n;if(p===t&&++f===l&&(o=i),p===u&&++h===r&&(s=i),(g=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=g}t=o===-1||s===-1?null:{start:o,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(fu={focusedElem:e,selectionRange:t},Or=!1,S=n;S!==null;)if(n=S,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,S=e;else for(;S!==null;){n=S;try{var w=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,F=w.memoizedState,c=n.stateNode,a=c.getSnapshotBeforeUpdate(n.elementType===n.type?k:Ne(n.type,k),F);c.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=n.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(v){A(n,n.return,v)}if(e=n.sibling,e!==null){e.return=n.return,S=e;break}S=n.return}return w=To,To=!1,w}function Pt(e,n,t){var r=n.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&Pu(n,t,u)}l=l.next}while(l!==r)}}function il(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function Nu(e){var n=e.ref;if(n!==null){var t=e.stateNode;switch(e.tag){case 5:e=t;break;default:e=t}typeof n=="function"?n(e):n.current=e}}function Da(e){var n=e.alternate;n!==null&&(e.alternate=null,Da(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Ie],delete n[$t],delete n[pu],delete n[Uc],delete n[$c])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Ia(e){return e.tag===5||e.tag===3||e.tag===4}function Lo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ia(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function zu(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.nodeType===8?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(t.nodeType===8?(n=t.parentNode,n.insertBefore(e,t)):(n=t,n.appendChild(e)),t=t._reactRootContainer,t!=null||n.onclick!==null||(n.onclick=Fr));else if(r!==4&&(e=e.child,e!==null))for(zu(e,n,t),e=e.sibling;e!==null;)zu(e,n,t),e=e.sibling}function Tu(e,n,t){var r=e.tag;if(r===5||r===6)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Tu(e,n,t),e=e.sibling;e!==null;)Tu(e,n,t),e=e.sibling}var J=null,ze=!1;function Xe(e,n,t){for(t=t.child;t!==null;)Fa(e,n,t),t=t.sibling}function Fa(e,n,t){if(Fe&&typeof Fe.onCommitFiberUnmount=="function")try{Fe.onCommitFiberUnmount(qr,t)}catch{}switch(t.tag){case 5:te||Bn(t,n);case 6:var r=J,l=ze;J=null,Xe(e,n,t),J=r,ze=l,J!==null&&(ze?(e=J,t=t.stateNode,e.nodeType===8?e.parentNode.removeChild(t):e.removeChild(t)):J.removeChild(t.stateNode));break;case 18:J!==null&&(ze?(e=J,t=t.stateNode,e.nodeType===8?Ml(e.parentNode,t):e.nodeType===1&&Ml(e,t),Dt(e)):Ml(J,t.stateNode));break;case 4:r=J,l=ze,J=t.stateNode.containerInfo,ze=!0,Xe(e,n,t),J=r,ze=l;break;case 0:case 11:case 14:case 15:if(!te&&(r=t.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,i=u.destroy;u=u.tag,i!==void 0&&(u&2||u&4)&&Pu(t,n,i),l=l.next}while(l!==r)}Xe(e,n,t);break;case 1:if(!te&&(Bn(t,n),r=t.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(o){A(t,n,o)}Xe(e,n,t);break;case 21:Xe(e,n,t);break;case 22:t.mode&1?(te=(r=te)||t.memoizedState!==null,Xe(e,n,t),te=r):Xe(e,n,t);break;default:Xe(e,n,t)}}function Ro(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var t=e.stateNode;t===null&&(t=e.stateNode=new nd),n.forEach(function(r){var l=cd.bind(null,e,r);t.has(r)||(t.add(r),r.then(l,l))})}}function Pe(e,n){var t=n.deletions;if(t!==null)for(var r=0;rl&&(l=i),r&=~u}if(r=l,r=W()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ld(r/1960))-r,10e?16:e,en===null)var r=!1;else{if(e=en,en=null,Gr=0,R&6)throw Error(y(331));var l=R;for(R|=4,S=e.current;S!==null;){var u=S,i=u.child;if(S.flags&16){var o=u.deletions;if(o!==null){for(var s=0;sW()-ki?En(e,0):wi|=t),de(e,n)}function Wa(e,n){n===0&&(e.mode&1?(n=lr,lr<<=1,!(lr&130023424)&&(lr=4194304)):n=1);var t=ue();e=Qe(e,n),e!==null&&(Yt(e,n,t),de(e,t))}function fd(e){var n=e.memoizedState,t=0;n!==null&&(t=n.retryLane),Wa(e,t)}function cd(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(n),Wa(e,t)}var Qa;Qa=function(e,n,t){if(e!==null)if(e.memoizedProps!==n.pendingProps||fe.current)ae=!0;else{if(!(e.lanes&t)&&!(n.flags&128))return ae=!1,qc(e,n,t);ae=!!(e.flags&131072)}else ae=!1,j&&n.flags&1048576&&Gs(n,Vr,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;_r(e,n),e=n.pendingProps;var l=Jn(n,re.current);Xn(n,t),l=pi(null,n,r,e,l,t);var u=mi();return n.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,ce(r)?(u=!0,Ur(n)):u=!1,n.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,si(n),l.updater=ul,n.stateNode=l,l._reactInternals=n,wu(n,r,e,t),n=Eu(null,n,r,!0,u,t)):(n.tag=0,j&&u&&ni(n),le(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(_r(e,n),e=n.pendingProps,l=r._init,r=l(r._payload),n.type=r,l=n.tag=pd(r),e=Ne(r,e),l){case 0:n=Su(null,n,r,e,t);break e;case 1:n=Po(null,n,r,e,t);break e;case 11:n=_o(null,n,r,e,t);break e;case 14:n=xo(null,n,r,Ne(r.type,e),t);break e}throw Error(y(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ne(r,l),Su(e,n,r,l,t);case 1:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ne(r,l),Po(e,n,r,l,t);case 3:e:{if(za(n),e===null)throw Error(y(387));r=n.pendingProps,u=n.memoizedState,l=u.element,na(e,n),Hr(n,r,null,t);var i=n.memoizedState;if(r=i.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},n.updateQueue.baseState=u,n.memoizedState=u,n.flags&256){l=nt(Error(y(423)),n),n=No(e,n,r,t,l);break e}else if(r!==l){l=nt(Error(y(424)),n),n=No(e,n,r,t,l);break e}else for(me=ln(n.stateNode.containerInfo.firstChild),he=n,j=!0,Te=null,t=bs(n,null,r,t),n.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling;else{if(qn(),r===l){n=Ke(e,n,t);break e}le(e,n,r,t)}n=n.child}return n;case 5:return ta(n),e===null&&vu(n),r=n.type,l=n.pendingProps,u=e!==null?e.memoizedProps:null,i=l.children,cu(r,l)?i=null:u!==null&&cu(r,u)&&(n.flags|=32),Na(e,n),le(e,n,i,t),n.child;case 6:return e===null&&vu(n),null;case 13:return Ta(e,n,t);case 4:return ai(n,n.stateNode.containerInfo),r=n.pendingProps,e===null?n.child=bn(n,null,r,t):le(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ne(r,l),_o(e,n,r,l,t);case 7:return le(e,n,n.pendingProps,t),n.child;case 8:return le(e,n,n.pendingProps.children,t),n.child;case 12:return le(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,u=n.memoizedProps,i=l.value,O(Ar,r._currentValue),r._currentValue=i,u!==null)if(Me(u.value,i)){if(u.children===l.children&&!fe.current){n=Ke(e,n,t);break e}}else for(u=n.child,u!==null&&(u.return=n);u!==null;){var o=u.dependencies;if(o!==null){i=u.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=Be(-1,t&-t),s.tag=2;var f=u.updateQueue;if(f!==null){f=f.shared;var h=f.pending;h===null?s.next=s:(s.next=h.next,h.next=s),f.pending=s}}u.lanes|=t,s=u.alternate,s!==null&&(s.lanes|=t),yu(u.return,t,n),o.lanes|=t;break}s=s.next}}else if(u.tag===10)i=u.type===n.type?null:u.child;else if(u.tag===18){if(i=u.return,i===null)throw Error(y(341));i.lanes|=t,o=i.alternate,o!==null&&(o.lanes|=t),yu(i,t,n),i=u.sibling}else i=u.child;if(i!==null)i.return=u;else for(i=u;i!==null;){if(i===n){i=null;break}if(u=i.sibling,u!==null){u.return=i.return,i=u;break}i=i.return}u=i}le(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Xn(n,t),l=Ce(l),r=r(l),n.flags|=1,le(e,n,r,t),n.child;case 14:return r=n.type,l=Ne(r,n.pendingProps),l=Ne(r.type,l),xo(e,n,r,l,t);case 15:return xa(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:Ne(r,l),_r(e,n),n.tag=1,ce(r)?(e=!0,Ur(n)):e=!1,Xn(n,t),Ea(n,r,l),wu(n,r,l,t),Eu(null,n,r,!0,e,t);case 19:return La(e,n,t);case 22:return Pa(e,n,t)}throw Error(y(156,n.tag))};function Ka(e,n){return ws(e,n)}function dd(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Se(e,n,t,r){return new dd(e,n,t,r)}function _i(e){return e=e.prototype,!(!e||!e.isReactComponent)}function pd(e){if(typeof e=="function")return _i(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Hu)return 11;if(e===Wu)return 14}return 2}function an(e,n){var t=e.alternate;return t===null?(t=Se(e.tag,n,e.key,e.mode),t.elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=e.flags&14680064,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Nr(e,n,t,r,l,u){var i=2;if(r=e,typeof e=="function")_i(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case On:return Cn(t.children,l,u,n);case Bu:i=8,l|=8;break;case Hl:return e=Se(12,t,n,l|2),e.elementType=Hl,e.lanes=u,e;case Wl:return e=Se(13,t,n,l),e.elementType=Wl,e.lanes=u,e;case Ql:return e=Se(19,t,n,l),e.elementType=Ql,e.lanes=u,e;case ts:return sl(t,l,u,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case es:i=10;break e;case ns:i=9;break e;case Hu:i=11;break e;case Wu:i=14;break e;case Ge:i=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return n=Se(i,t,n,l),n.elementType=e,n.type=r,n.lanes=u,n}function Cn(e,n,t,r){return e=Se(7,e,r,n),e.lanes=t,e}function sl(e,n,t,r){return e=Se(22,e,r,n),e.elementType=ts,e.lanes=t,e.stateNode={isHidden:!1},e}function Vl(e,n,t){return e=Se(6,e,null,n),e.lanes=t,e}function Al(e,n,t){return n=Se(4,e.children!==null?e.children:[],e.key,n),n.lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function md(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Sl(0),this.expirationTimes=Sl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Sl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function xi(e,n,t,r,l,u,i,o,s){return e=new md(e,n,t,o,s),n===1?(n=1,u===!0&&(n|=8)):n=0,u=Se(3,null,null,n),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},si(u),e}function hd(e,n,t){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Za)}catch(e){console.error(e)}}Za(),Zo.exports=ye;var Ja=Zo.exports;const wd=Vo(Ja),Ed=$o({__proto__:null,default:wd},[Ja]);export{Sd as R,Ed as a,hf as b,Ja as c,wd as d,kd as e,Vo as g,Uu as r}; diff --git a/pkg/ui/frontend/dist/assets/react-router-Bj-soKrx.js b/pkg/ui/frontend/dist/assets/react-router-Bj-soKrx.js new file mode 100644 index 0000000000..b0f79b109c --- /dev/null +++ b/pkg/ui/frontend/dist/assets/react-router-Bj-soKrx.js @@ -0,0 +1,29 @@ +import{r as v,R as en,a as tn,b as rn}from"./react-core-D_V7s-9r.js";/** + * @remix-run/router v1.21.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function V(){return V=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Ne(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function an(){return Math.random().toString(36).substr(2,8)}function Xt(e,t){return{usr:e.state,key:e.key,idx:t}}function Ze(e,t,r,n){return r===void 0&&(r=null),V({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?he(t):t,{state:r,key:t&&t.key||n||an()})}function Le(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function he(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function on(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:l=!1}=n,o=a.history,d=J.Pop,u=null,f=h();f==null&&(f=0,o.replaceState(V({},o.state,{idx:f}),""));function h(){return(o.state||{idx:null}).idx}function p(){d=J.Pop;let R=h(),j=R==null?null:R-f;f=R,u&&u({action:d,location:x.location,delta:j})}function y(R,j){d=J.Push;let M=Ze(x.location,R,j);f=h()+1;let I=Xt(M,f),k=x.createHref(M);try{o.pushState(I,"",k)}catch(X){if(X instanceof DOMException&&X.name==="DataCloneError")throw X;a.location.assign(k)}l&&u&&u({action:d,location:x.location,delta:1})}function b(R,j){d=J.Replace;let M=Ze(x.location,R,j);f=h();let I=Xt(M,f),k=x.createHref(M);o.replaceState(I,"",k),l&&u&&u({action:d,location:x.location,delta:0})}function S(R){let j=a.location.origin!=="null"?a.location.origin:a.location.href,M=typeof R=="string"?R:Le(R);return M=M.replace(/ $/,"%20"),U(j,"No window.location.(origin|href) available to create URL for href: "+M),new URL(M,j)}let x={get action(){return d},get location(){return e(a,o)},listen(R){if(u)throw new Error("A history only accepts one active listener");return a.addEventListener(Gt,p),u=R,()=>{a.removeEventListener(Gt,p),u=null}},createHref(R){return t(a,R)},createURL:S,encodeLocation(R){let j=S(R);return{pathname:j.pathname,search:j.search,hash:j.hash}},push:y,replace:b,go(R){return o.go(R)}};return x}var z;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(z||(z={}));const ln=new Set(["lazy","caseSensitive","path","id","index","children"]);function sn(e){return e.index===!0}function pt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,l)=>{let o=[...r,String(l)],d=typeof a.id=="string"?a.id:o.join("-");if(U(a.index!==!0||!a.children,"Cannot specify children on an index route"),U(!n[d],'Found a route id collision on id "'+d+`". Route id's must be globally unique within Data Router usages`),sn(a)){let u=V({},a,t(a),{id:d});return n[d]=u,u}else{let u=V({},a,t(a),{id:d,children:void 0});return n[d]=u,a.children&&(u.children=pt(a.children,t,o,n)),u}})}function xe(e,t,r){return r===void 0&&(r="/"),ht(e,t,r,!1)}function ht(e,t,r,n){let a=typeof t=="string"?he(t):t,l=Ae(a.pathname||"/",r);if(l==null)return null;let o=vr(e);dn(o);let d=null;for(let u=0;d==null&&u{let u={relativePath:d===void 0?l.path||"":d,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};u.relativePath.startsWith("/")&&(U(u.relativePath.startsWith(n),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(n.length));let f=fe([n,u.relativePath]),h=r.concat(u);l.children&&l.children.length>0&&(U(l.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+f+'".')),vr(l.children,t,h,f)),!(l.path==null&&!l.index)&&t.push({path:f,score:vn(f,l.index),routesMeta:h})};return e.forEach((l,o)=>{var d;if(l.path===""||!((d=l.path)!=null&&d.includes("?")))a(l,o);else for(let u of yr(l.path))a(l,o,u)}),t}function yr(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),l=r.replace(/\?$/,"");if(n.length===0)return a?[l,""]:[l];let o=yr(n.join("/")),d=[];return d.push(...o.map(u=>u===""?l:[l,u].join("/"))),a&&d.push(...o),d.map(u=>e.startsWith("/")&&u===""?"/":u)}function dn(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:yn(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const cn=/^:[\w-]+$/,fn=3,hn=2,pn=1,mn=10,gn=-2,Qt=e=>e==="*";function vn(e,t){let r=e.split("/"),n=r.length;return r.some(Qt)&&(n+=gn),t&&(n+=hn),r.filter(a=>!Qt(a)).reduce((a,l)=>a+(cn.test(l)?fn:l===""?pn:mn),n)}function yn(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function bn(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},l="/",o=[];for(let d=0;d{let{paramName:y,isOptional:b}=h;if(y==="*"){let x=d[p]||"";o=l.slice(0,l.length-x.length).replace(/(.)\/+$/,"$1")}const S=d[p];return b&&!S?f[y]=void 0:f[y]=(S||"").replace(/%2F/g,"/"),f},{}),pathname:l,pathnameBase:o,pattern:e}}function wn(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Ne(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,d,u)=>(n.push({paramName:d,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function Rn(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ne(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Ae(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function En(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?he(e):e;return{pathname:r?r.startsWith("/")?r:Sn(r,t):t,search:Pn(n),hash:Dn(a)}}function Sn(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function xt(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function br(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Ft(e,t){let r=br(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function _t(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=he(e):(a=V({},e),U(!a.pathname||!a.pathname.includes("?"),xt("?","pathname","search",a)),U(!a.pathname||!a.pathname.includes("#"),xt("#","pathname","hash",a)),U(!a.search||!a.search.includes("#"),xt("#","search","hash",a)));let l=e===""||a.pathname==="",o=l?"/":a.pathname,d;if(o==null)d=r;else{let p=t.length-1;if(!n&&o.startsWith("..")){let y=o.split("/");for(;y[0]==="..";)y.shift(),p-=1;a.pathname=y.join("/")}d=p>=0?t[p]:"/"}let u=En(a,d),f=o&&o!=="/"&&o.endsWith("/"),h=(l||o===".")&&r.endsWith("/");return!u.pathname.endsWith("/")&&(f||h)&&(u.pathname+="/"),u}const fe=e=>e.join("/").replace(/\/\/+/g,"/"),xn=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Pn=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Dn=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class mt{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function vt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const wr=["post","put","patch","delete"],Ln=new Set(wr),Cn=["get",...wr],Mn=new Set(Cn),Tn=new Set([301,302,303,307,308]),Un=new Set([307,308]),Pt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Fn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Je={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Ot=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_n=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Rr="remix-router-transitions";function On(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;U(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let i=e.detectErrorBoundary;a=s=>({hasErrorBoundary:i(s)})}else a=_n;let l={},o=pt(e.routes,a,void 0,l),d,u=e.basename||"/",f=e.dataStrategy||Nn,h=e.patchRoutesOnNavigation,p=V({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),y=null,b=new Set,S=null,x=null,R=null,j=e.hydrationData!=null,M=xe(o,e.history.location,u),I=null;if(M==null&&!h){let i=ae(404,{pathname:e.history.location.pathname}),{matches:s,route:c}=sr(o);M=s,I={[c.id]:i}}M&&!e.hydrationData&&st(M,o,e.history.location.pathname).active&&(M=null);let k;if(M)if(M.some(i=>i.route.lazy))k=!1;else if(!M.some(i=>i.route.loader))k=!0;else if(p.v7_partialHydration){let i=e.hydrationData?e.hydrationData.loaderData:null,s=e.hydrationData?e.hydrationData.errors:null;if(s){let c=M.findIndex(g=>s[g.route.id]!==void 0);k=M.slice(0,c+1).every(g=>!Ct(g.route,i,s))}else k=M.every(c=>!Ct(c.route,i,s))}else k=e.hydrationData!=null;else if(k=!1,M=[],p.v7_partialHydration){let i=st(null,o,e.history.location.pathname);i.active&&i.matches&&(M=i.matches)}let X,m={historyAction:e.history.action,location:e.history.location,matches:M,initialized:k,navigation:Pt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||I,fetchers:new Map,blockers:new Map},ee=J.Pop,F=!1,O,$=!1,te=new Map,Q=null,ne=!1,Z=!1,Me=[],nt=new Set,G=new Map,at=0,ke=-1,Te=new Map,ue=new Set,Ue=new Map,He=new Map,oe=new Set,be=new Map,we=new Map,it;function Ir(){if(y=e.history.listen(i=>{let{action:s,location:c,delta:g}=i;if(it){it(),it=void 0;return}Ne(we.size===0||g!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let w=Wt({currentLocation:m.location,nextLocation:c,historyAction:s});if(w&&g!=null){let L=new Promise(T=>{it=T});e.history.go(g*-1),lt(w,{state:"blocked",location:c,proceed(){lt(w,{state:"proceeding",proceed:void 0,reset:void 0,location:c}),L.then(()=>e.history.go(g))},reset(){let T=new Map(m.blockers);T.set(w,Je),re({blockers:T})}});return}return Re(s,c)}),r){Zn(t,te);let i=()=>qn(t,te);t.addEventListener("pagehide",i),Q=()=>t.removeEventListener("pagehide",i)}return m.initialized||Re(J.Pop,m.location,{initialHydration:!0}),X}function Nr(){y&&y(),Q&&Q(),b.clear(),O&&O.abort(),m.fetchers.forEach((i,s)=>ot(s)),m.blockers.forEach((i,s)=>Vt(s))}function Ar(i){return b.add(i),()=>b.delete(i)}function re(i,s){s===void 0&&(s={}),m=V({},m,i);let c=[],g=[];p.v7_fetcherPersist&&m.fetchers.forEach((w,L)=>{w.state==="idle"&&(oe.has(L)?g.push(L):c.push(L))}),oe.forEach(w=>{!m.fetchers.has(w)&&!G.has(w)&&g.push(w)}),[...b].forEach(w=>w(m,{deletedFetchers:g,viewTransitionOpts:s.viewTransitionOpts,flushSync:s.flushSync===!0})),p.v7_fetcherPersist?(c.forEach(w=>m.fetchers.delete(w)),g.forEach(w=>ot(w))):g.forEach(w=>oe.delete(w))}function Fe(i,s,c){var g,w;let{flushSync:L}=c===void 0?{}:c,T=m.actionData!=null&&m.navigation.formMethod!=null&&le(m.navigation.formMethod)&&m.navigation.state==="loading"&&((g=i.state)==null?void 0:g._isRedirect)!==!0,P;s.actionData?Object.keys(s.actionData).length>0?P=s.actionData:P=null:T?P=m.actionData:P=null;let D=s.loaderData?or(m.loaderData,s.loaderData,s.matches||[],s.errors):m.loaderData,E=m.blockers;E.size>0&&(E=new Map(E),E.forEach((B,q)=>E.set(q,Je)));let C=F===!0||m.navigation.formMethod!=null&&le(m.navigation.formMethod)&&((w=i.state)==null?void 0:w._isRedirect)!==!0;d&&(o=d,d=void 0),ne||ee===J.Pop||(ee===J.Push?e.history.push(i,i.state):ee===J.Replace&&e.history.replace(i,i.state));let _;if(ee===J.Pop){let B=te.get(m.location.pathname);B&&B.has(i.pathname)?_={currentLocation:m.location,nextLocation:i}:te.has(i.pathname)&&(_={currentLocation:i,nextLocation:m.location})}else if($){let B=te.get(m.location.pathname);B?B.add(i.pathname):(B=new Set([i.pathname]),te.set(m.location.pathname,B)),_={currentLocation:m.location,nextLocation:i}}re(V({},s,{actionData:P,loaderData:D,historyAction:ee,location:i,initialized:!0,navigation:Pt,revalidation:"idle",restoreScrollPosition:Jt(i,s.matches||m.matches),preventScrollReset:C,blockers:E}),{viewTransitionOpts:_,flushSync:L===!0}),ee=J.Pop,F=!1,$=!1,ne=!1,Z=!1,Me=[]}async function It(i,s){if(typeof i=="number"){e.history.go(i);return}let c=Lt(m.location,m.matches,u,p.v7_prependBasename,i,p.v7_relativeSplatPath,s==null?void 0:s.fromRouteId,s==null?void 0:s.relative),{path:g,submission:w,error:L}=Zt(p.v7_normalizeFormMethod,!1,c,s),T=m.location,P=Ze(m.location,g,s&&s.state);P=V({},P,e.history.encodeLocation(P));let D=s&&s.replace!=null?s.replace:void 0,E=J.Push;D===!0?E=J.Replace:D===!1||w!=null&&le(w.formMethod)&&w.formAction===m.location.pathname+m.location.search&&(E=J.Replace);let C=s&&"preventScrollReset"in s?s.preventScrollReset===!0:void 0,_=(s&&s.flushSync)===!0,B=Wt({currentLocation:T,nextLocation:P,historyAction:E});if(B){lt(B,{state:"blocked",location:P,proceed(){lt(B,{state:"proceeding",proceed:void 0,reset:void 0,location:P}),It(i,s)},reset(){let q=new Map(m.blockers);q.set(B,Je),re({blockers:q})}});return}return await Re(E,P,{submission:w,pendingError:L,preventScrollReset:C,replace:s&&s.replace,enableViewTransition:s&&s.viewTransition,flushSync:_})}function zr(){if(wt(),re({revalidation:"loading"}),m.navigation.state!=="submitting"){if(m.navigation.state==="idle"){Re(m.historyAction,m.location,{startUninterruptedRevalidation:!0});return}Re(ee||m.historyAction,m.navigation.location,{overrideNavigation:m.navigation,enableViewTransition:$===!0})}}async function Re(i,s,c){O&&O.abort(),O=null,ee=i,ne=(c&&c.startUninterruptedRevalidation)===!0,Xr(m.location,m.matches),F=(c&&c.preventScrollReset)===!0,$=(c&&c.enableViewTransition)===!0;let g=d||o,w=c&&c.overrideNavigation,L=xe(g,s,u),T=(c&&c.flushSync)===!0,P=st(L,g,s.pathname);if(P.active&&P.matches&&(L=P.matches),!L){let{error:H,notFoundMatches:A,route:W}=Rt(s.pathname);Fe(s,{matches:A,loaderData:{},errors:{[W.id]:H}},{flushSync:T});return}if(m.initialized&&!Z&&Vn(m.location,s)&&!(c&&c.submission&&le(c.submission.formMethod))){Fe(s,{matches:L},{flushSync:T});return}O=new AbortController;let D=Be(e.history,s,O.signal,c&&c.submission),E;if(c&&c.pendingError)E=[Pe(L).route.id,{type:z.error,error:c.pendingError}];else if(c&&c.submission&&le(c.submission.formMethod)){let H=await kr(D,s,c.submission,L,P.active,{replace:c.replace,flushSync:T});if(H.shortCircuited)return;if(H.pendingActionResult){let[A,W]=H.pendingActionResult;if(ie(W)&&vt(W.error)&&W.error.status===404){O=null,Fe(s,{matches:H.matches,loaderData:{},errors:{[A]:W.error}});return}}L=H.matches||L,E=H.pendingActionResult,w=Dt(s,c.submission),T=!1,P.active=!1,D=Be(e.history,D.url,D.signal)}let{shortCircuited:C,matches:_,loaderData:B,errors:q}=await Hr(D,s,L,P.active,w,c&&c.submission,c&&c.fetcherSubmission,c&&c.replace,c&&c.initialHydration===!0,T,E);C||(O=null,Fe(s,V({matches:_||L},lr(E),{loaderData:B,errors:q})))}async function kr(i,s,c,g,w,L){L===void 0&&(L={}),wt();let T=Xn(s,c);if(re({navigation:T},{flushSync:L.flushSync===!0}),w){let E=await ut(g,s.pathname,i.signal);if(E.type==="aborted")return{shortCircuited:!0};if(E.type==="error"){let C=Pe(E.partialMatches).route.id;return{matches:E.partialMatches,pendingActionResult:[C,{type:z.error,error:E.error}]}}else if(E.matches)g=E.matches;else{let{notFoundMatches:C,error:_,route:B}=Rt(s.pathname);return{matches:C,pendingActionResult:[B.id,{type:z.error,error:_}]}}}let P,D=Xe(g,s);if(!D.route.action&&!D.route.lazy)P={type:z.error,error:ae(405,{method:i.method,pathname:s.pathname,routeId:D.route.id})};else if(P=(await $e("action",m,i,[D],g,null))[D.route.id],i.signal.aborted)return{shortCircuited:!0};if(De(P)){let E;return L&&L.replace!=null?E=L.replace:E=nr(P.response.headers.get("Location"),new URL(i.url),u)===m.location.pathname+m.location.search,await Ee(i,P,!0,{submission:c,replace:E}),{shortCircuited:!0}}if(ve(P))throw ae(400,{type:"defer-action"});if(ie(P)){let E=Pe(g,D.route.id);return(L&&L.replace)!==!0&&(ee=J.Push),{matches:g,pendingActionResult:[E.route.id,P]}}return{matches:g,pendingActionResult:[D.route.id,P]}}async function Hr(i,s,c,g,w,L,T,P,D,E,C){let _=w||Dt(s,L),B=L||T||dr(_),q=!ne&&(!p.v7_partialHydration||!D);if(g){if(q){let K=Nt(C);re(V({navigation:_},K!==void 0?{actionData:K}:{}),{flushSync:E})}let N=await ut(c,s.pathname,i.signal);if(N.type==="aborted")return{shortCircuited:!0};if(N.type==="error"){let K=Pe(N.partialMatches).route.id;return{matches:N.partialMatches,loaderData:{},errors:{[K]:N.error}}}else if(N.matches)c=N.matches;else{let{error:K,notFoundMatches:Oe,route:Ke}=Rt(s.pathname);return{matches:Oe,loaderData:{},errors:{[Ke.id]:K}}}}let H=d||o,[A,W]=er(e.history,m,c,B,s,p.v7_partialHydration&&D===!0,p.v7_skipActionErrorRevalidation,Z,Me,nt,oe,Ue,ue,H,u,C);if(Et(N=>!(c&&c.some(K=>K.route.id===N))||A&&A.some(K=>K.route.id===N)),ke=++at,A.length===0&&W.length===0){let N=Ht();return Fe(s,V({matches:c,loaderData:{},errors:C&&ie(C[1])?{[C[0]]:C[1].error}:null},lr(C),N?{fetchers:new Map(m.fetchers)}:{}),{flushSync:E}),{shortCircuited:!0}}if(q){let N={};if(!g){N.navigation=_;let K=Nt(C);K!==void 0&&(N.actionData=K)}W.length>0&&(N.fetchers=$r(W)),re(N,{flushSync:E})}W.forEach(N=>{me(N.key),N.controller&&G.set(N.key,N.controller)});let _e=()=>W.forEach(N=>me(N.key));O&&O.signal.addEventListener("abort",_e);let{loaderResults:Ve,fetcherResults:ce}=await At(m,c,A,W,i);if(i.signal.aborted)return{shortCircuited:!0};O&&O.signal.removeEventListener("abort",_e),W.forEach(N=>G.delete(N.key));let se=ft(Ve);if(se)return await Ee(i,se.result,!0,{replace:P}),{shortCircuited:!0};if(se=ft(ce),se)return ue.add(se.key),await Ee(i,se.result,!0,{replace:P}),{shortCircuited:!0};let{loaderData:St,errors:We}=ir(m,c,Ve,C,W,ce,be);be.forEach((N,K)=>{N.subscribe(Oe=>{(Oe||N.done)&&be.delete(K)})}),p.v7_partialHydration&&D&&m.errors&&(We=V({},m.errors,We));let Se=Ht(),dt=$t(ke),ct=Se||dt||W.length>0;return V({matches:c,loaderData:St,errors:We},ct?{fetchers:new Map(m.fetchers)}:{})}function Nt(i){if(i&&!ie(i[1]))return{[i[0]]:i[1].data};if(m.actionData)return Object.keys(m.actionData).length===0?null:m.actionData}function $r(i){return i.forEach(s=>{let c=m.fetchers.get(s.key),g=Ye(void 0,c?c.data:void 0);m.fetchers.set(s.key,g)}),new Map(m.fetchers)}function Vr(i,s,c,g){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");me(i);let w=(g&&g.flushSync)===!0,L=d||o,T=Lt(m.location,m.matches,u,p.v7_prependBasename,c,p.v7_relativeSplatPath,s,g==null?void 0:g.relative),P=xe(L,T,u),D=st(P,L,T);if(D.active&&D.matches&&(P=D.matches),!P){de(i,s,ae(404,{pathname:T}),{flushSync:w});return}let{path:E,submission:C,error:_}=Zt(p.v7_normalizeFormMethod,!0,T,g);if(_){de(i,s,_,{flushSync:w});return}let B=Xe(P,E),q=(g&&g.preventScrollReset)===!0;if(C&&le(C.formMethod)){Wr(i,s,E,B,P,D.active,w,q,C);return}Ue.set(i,{routeId:s,path:E}),Kr(i,s,E,B,P,D.active,w,q,C)}async function Wr(i,s,c,g,w,L,T,P,D){wt(),Ue.delete(i);function E(Y){if(!Y.route.action&&!Y.route.lazy){let je=ae(405,{method:D.formMethod,pathname:c,routeId:s});return de(i,s,je,{flushSync:T}),!0}return!1}if(!L&&E(g))return;let C=m.fetchers.get(i);pe(i,Qn(D,C),{flushSync:T});let _=new AbortController,B=Be(e.history,c,_.signal,D);if(L){let Y=await ut(w,c,B.signal);if(Y.type==="aborted")return;if(Y.type==="error"){de(i,s,Y.error,{flushSync:T});return}else if(Y.matches){if(w=Y.matches,g=Xe(w,c),E(g))return}else{de(i,s,ae(404,{pathname:c}),{flushSync:T});return}}G.set(i,_);let q=at,A=(await $e("action",m,B,[g],w,i))[g.route.id];if(B.signal.aborted){G.get(i)===_&&G.delete(i);return}if(p.v7_fetcherPersist&&oe.has(i)){if(De(A)||ie(A)){pe(i,ge(void 0));return}}else{if(De(A))if(G.delete(i),ke>q){pe(i,ge(void 0));return}else return ue.add(i),pe(i,Ye(D)),Ee(B,A,!1,{fetcherSubmission:D,preventScrollReset:P});if(ie(A)){de(i,s,A.error);return}}if(ve(A))throw ae(400,{type:"defer-action"});let W=m.navigation.location||m.location,_e=Be(e.history,W,_.signal),Ve=d||o,ce=m.navigation.state!=="idle"?xe(Ve,m.navigation.location,u):m.matches;U(ce,"Didn't find any matches after fetcher action");let se=++at;Te.set(i,se);let St=Ye(D,A.data);m.fetchers.set(i,St);let[We,Se]=er(e.history,m,ce,D,W,!1,p.v7_skipActionErrorRevalidation,Z,Me,nt,oe,Ue,ue,Ve,u,[g.route.id,A]);Se.filter(Y=>Y.key!==i).forEach(Y=>{let je=Y.key,Yt=m.fetchers.get(je),qr=Ye(void 0,Yt?Yt.data:void 0);m.fetchers.set(je,qr),me(je),Y.controller&&G.set(je,Y.controller)}),re({fetchers:new Map(m.fetchers)});let dt=()=>Se.forEach(Y=>me(Y.key));_.signal.addEventListener("abort",dt);let{loaderResults:ct,fetcherResults:N}=await At(m,ce,We,Se,_e);if(_.signal.aborted)return;_.signal.removeEventListener("abort",dt),Te.delete(i),G.delete(i),Se.forEach(Y=>G.delete(Y.key));let K=ft(ct);if(K)return Ee(_e,K.result,!1,{preventScrollReset:P});if(K=ft(N),K)return ue.add(K.key),Ee(_e,K.result,!1,{preventScrollReset:P});let{loaderData:Oe,errors:Ke}=ir(m,ce,ct,void 0,Se,N,be);if(m.fetchers.has(i)){let Y=ge(A.data);m.fetchers.set(i,Y)}$t(se),m.navigation.state==="loading"&&se>ke?(U(ee,"Expected pending action"),O&&O.abort(),Fe(m.navigation.location,{matches:ce,loaderData:Oe,errors:Ke,fetchers:new Map(m.fetchers)})):(re({errors:Ke,loaderData:or(m.loaderData,Oe,ce,Ke),fetchers:new Map(m.fetchers)}),Z=!1)}async function Kr(i,s,c,g,w,L,T,P,D){let E=m.fetchers.get(i);pe(i,Ye(D,E?E.data:void 0),{flushSync:T});let C=new AbortController,_=Be(e.history,c,C.signal);if(L){let A=await ut(w,c,_.signal);if(A.type==="aborted")return;if(A.type==="error"){de(i,s,A.error,{flushSync:T});return}else if(A.matches)w=A.matches,g=Xe(w,c);else{de(i,s,ae(404,{pathname:c}),{flushSync:T});return}}G.set(i,C);let B=at,H=(await $e("loader",m,_,[g],w,i))[g.route.id];if(ve(H)&&(H=await jt(H,_.signal,!0)||H),G.get(i)===C&&G.delete(i),!_.signal.aborted){if(oe.has(i)){pe(i,ge(void 0));return}if(De(H))if(ke>B){pe(i,ge(void 0));return}else{ue.add(i),await Ee(_,H,!1,{preventScrollReset:P});return}if(ie(H)){de(i,s,H.error);return}U(!ve(H),"Unhandled fetcher deferred data"),pe(i,ge(H.data))}}async function Ee(i,s,c,g){let{submission:w,fetcherSubmission:L,preventScrollReset:T,replace:P}=g===void 0?{}:g;s.response.headers.has("X-Remix-Revalidate")&&(Z=!0);let D=s.response.headers.get("Location");U(D,"Expected a Location header on the redirect Response"),D=nr(D,new URL(i.url),u);let E=Ze(m.location,D,{_isRedirect:!0});if(r){let A=!1;if(s.response.headers.has("X-Remix-Reload-Document"))A=!0;else if(Ot.test(D)){const W=e.history.createURL(D);A=W.origin!==t.location.origin||Ae(W.pathname,u)==null}if(A){P?t.location.replace(D):t.location.assign(D);return}}O=null;let C=P===!0||s.response.headers.has("X-Remix-Replace")?J.Replace:J.Push,{formMethod:_,formAction:B,formEncType:q}=m.navigation;!w&&!L&&_&&B&&q&&(w=dr(m.navigation));let H=w||L;if(Un.has(s.response.status)&&H&&le(H.formMethod))await Re(C,E,{submission:V({},H,{formAction:D}),preventScrollReset:T||F,enableViewTransition:c?$:void 0});else{let A=Dt(E,w);await Re(C,E,{overrideNavigation:A,fetcherSubmission:L,preventScrollReset:T||F,enableViewTransition:c?$:void 0})}}async function $e(i,s,c,g,w,L){let T,P={};try{T=await An(f,i,s,c,g,w,L,l,a)}catch(D){return g.forEach(E=>{P[E.route.id]={type:z.error,error:D}}),P}for(let[D,E]of Object.entries(T))if(Wn(E)){let C=E.result;P[D]={type:z.redirect,response:Hn(C,c,D,w,u,p.v7_relativeSplatPath)}}else P[D]=await kn(E);return P}async function At(i,s,c,g,w){let L=i.matches,T=$e("loader",i,w,c,s,null),P=Promise.all(g.map(async C=>{if(C.matches&&C.match&&C.controller){let B=(await $e("loader",i,Be(e.history,C.path,C.controller.signal),[C.match],C.matches,C.key))[C.match.route.id];return{[C.key]:B}}else return Promise.resolve({[C.key]:{type:z.error,error:ae(404,{pathname:C.path})}})})),D=await T,E=(await P).reduce((C,_)=>Object.assign(C,_),{});return await Promise.all([Yn(s,D,w.signal,L,i.loaderData),Gn(s,E,g)]),{loaderResults:D,fetcherResults:E}}function wt(){Z=!0,Me.push(...Et()),Ue.forEach((i,s)=>{G.has(s)&&nt.add(s),me(s)})}function pe(i,s,c){c===void 0&&(c={}),m.fetchers.set(i,s),re({fetchers:new Map(m.fetchers)},{flushSync:(c&&c.flushSync)===!0})}function de(i,s,c,g){g===void 0&&(g={});let w=Pe(m.matches,s);ot(i),re({errors:{[w.route.id]:c},fetchers:new Map(m.fetchers)},{flushSync:(g&&g.flushSync)===!0})}function zt(i){return He.set(i,(He.get(i)||0)+1),oe.has(i)&&oe.delete(i),m.fetchers.get(i)||Fn}function ot(i){let s=m.fetchers.get(i);G.has(i)&&!(s&&s.state==="loading"&&Te.has(i))&&me(i),Ue.delete(i),Te.delete(i),ue.delete(i),p.v7_fetcherPersist&&oe.delete(i),nt.delete(i),m.fetchers.delete(i)}function Jr(i){let s=(He.get(i)||0)-1;s<=0?(He.delete(i),oe.add(i),p.v7_fetcherPersist||ot(i)):He.set(i,s),re({fetchers:new Map(m.fetchers)})}function me(i){let s=G.get(i);s&&(s.abort(),G.delete(i))}function kt(i){for(let s of i){let c=zt(s),g=ge(c.data);m.fetchers.set(s,g)}}function Ht(){let i=[],s=!1;for(let c of ue){let g=m.fetchers.get(c);U(g,"Expected fetcher: "+c),g.state==="loading"&&(ue.delete(c),i.push(c),s=!0)}return kt(i),s}function $t(i){let s=[];for(let[c,g]of Te)if(g0}function Yr(i,s){let c=m.blockers.get(i)||Je;return we.get(i)!==s&&we.set(i,s),c}function Vt(i){m.blockers.delete(i),we.delete(i)}function lt(i,s){let c=m.blockers.get(i)||Je;U(c.state==="unblocked"&&s.state==="blocked"||c.state==="blocked"&&s.state==="blocked"||c.state==="blocked"&&s.state==="proceeding"||c.state==="blocked"&&s.state==="unblocked"||c.state==="proceeding"&&s.state==="unblocked","Invalid blocker state transition: "+c.state+" -> "+s.state);let g=new Map(m.blockers);g.set(i,s),re({blockers:g})}function Wt(i){let{currentLocation:s,nextLocation:c,historyAction:g}=i;if(we.size===0)return;we.size>1&&Ne(!1,"A router only supports one blocker at a time");let w=Array.from(we.entries()),[L,T]=w[w.length-1],P=m.blockers.get(L);if(!(P&&P.state==="proceeding")&&T({currentLocation:s,nextLocation:c,historyAction:g}))return L}function Rt(i){let s=ae(404,{pathname:i}),c=d||o,{matches:g,route:w}=sr(c);return Et(),{notFoundMatches:g,route:w,error:s}}function Et(i){let s=[];return be.forEach((c,g)=>{(!i||i(g))&&(c.cancel(),s.push(g),be.delete(g))}),s}function Gr(i,s,c){if(S=i,R=s,x=c||null,!j&&m.navigation===Pt){j=!0;let g=Jt(m.location,m.matches);g!=null&&re({restoreScrollPosition:g})}return()=>{S=null,R=null,x=null}}function Kt(i,s){return x&&x(i,s.map(g=>un(g,m.loaderData)))||i.key}function Xr(i,s){if(S&&R){let c=Kt(i,s);S[c]=R()}}function Jt(i,s){if(S){let c=Kt(i,s),g=S[c];if(typeof g=="number")return g}return null}function st(i,s,c){if(h)if(i){if(Object.keys(i[0].params).length>0)return{active:!0,matches:ht(s,c,u,!0)}}else return{active:!0,matches:ht(s,c,u,!0)||[]};return{active:!1,matches:null}}async function ut(i,s,c){if(!h)return{type:"success",matches:i};let g=i;for(;;){let w=d==null,L=d||o,T=l;try{await h({path:s,matches:g,patch:(E,C)=>{c.aborted||rr(E,C,L,T,a)}})}catch(E){return{type:"error",error:E,partialMatches:g}}finally{w&&!c.aborted&&(o=[...o])}if(c.aborted)return{type:"aborted"};let P=xe(L,s,u);if(P)return{type:"success",matches:P};let D=ht(L,s,u,!0);if(!D||g.length===D.length&&g.every((E,C)=>E.route.id===D[C].route.id))return{type:"success",matches:null};g=D}}function Qr(i){l={},d=pt(i,a,void 0,l)}function Zr(i,s){let c=d==null;rr(i,s,d||o,l,a),c&&(o=[...o],re({}))}return X={get basename(){return u},get future(){return p},get state(){return m},get routes(){return o},get window(){return t},initialize:Ir,subscribe:Ar,enableScrollRestoration:Gr,navigate:It,fetch:Vr,revalidate:zr,createHref:i=>e.history.createHref(i),encodeLocation:i=>e.history.encodeLocation(i),getFetcher:zt,deleteFetcher:Jr,dispose:Nr,getBlocker:Yr,deleteBlocker:Vt,patchRoutes:Zr,_internalFetchControllers:G,_internalActiveDeferreds:be,_internalSetRoutes:Qr},X}function jn(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Lt(e,t,r,n,a,l,o,d){let u,f;if(o){u=[];for(let p of t)if(u.push(p),p.route.id===o){f=p;break}}else u=t,f=t[t.length-1];let h=_t(a||".",Ft(u,l),Ae(e.pathname,r)||e.pathname,d==="path");if(a==null&&(h.search=e.search,h.hash=e.hash),(a==null||a===""||a===".")&&f){let p=Bt(h.search);if(f.route.index&&!p)h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index";else if(!f.route.index&&p){let y=new URLSearchParams(h.search),b=y.getAll("index");y.delete("index"),b.filter(x=>x).forEach(x=>y.append("index",x));let S=y.toString();h.search=S?"?"+S:""}}return n&&r!=="/"&&(h.pathname=h.pathname==="/"?r:fe([r,h.pathname])),Le(h)}function Zt(e,t,r,n){if(!n||!jn(n))return{path:r};if(n.formMethod&&!Jn(n.formMethod))return{path:r,error:ae(405,{method:n.formMethod})};let a=()=>({path:r,error:ae(400,{type:"invalid-body"})}),l=n.formMethod||"get",o=e?l.toUpperCase():l.toLowerCase(),d=xr(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!le(o))return a();let y=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((b,S)=>{let[x,R]=S;return""+b+x+"="+R+` +`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:d,formEncType:n.formEncType,formData:void 0,json:void 0,text:y}}}else if(n.formEncType==="application/json"){if(!le(o))return a();try{let y=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:d,formEncType:n.formEncType,formData:void 0,json:y,text:void 0}}}catch{return a()}}}U(typeof FormData=="function","FormData is not available in this environment");let u,f;if(n.formData)u=Mt(n.formData),f=n.formData;else if(n.body instanceof FormData)u=Mt(n.body),f=n.body;else if(n.body instanceof URLSearchParams)u=n.body,f=ar(u);else if(n.body==null)u=new URLSearchParams,f=new FormData;else try{u=new URLSearchParams(n.body),f=ar(u)}catch{return a()}let h={formMethod:o,formAction:d,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:f,json:void 0,text:void 0};if(le(h.formMethod))return{path:r,submission:h};let p=he(r);return t&&p.search&&Bt(p.search)&&u.append("index",""),p.search="?"+u,{path:Le(p),submission:h}}function qt(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function er(e,t,r,n,a,l,o,d,u,f,h,p,y,b,S,x){let R=x?ie(x[1])?x[1].error:x[1].data:void 0,j=e.createURL(t.location),M=e.createURL(a),I=r;l&&t.errors?I=qt(r,Object.keys(t.errors)[0],!0):x&&ie(x[1])&&(I=qt(r,x[0]));let k=x?x[1].statusCode:void 0,X=o&&k&&k>=400,m=I.filter((F,O)=>{let{route:$}=F;if($.lazy)return!0;if($.loader==null)return!1;if(l)return Ct($,t.loaderData,t.errors);if(Bn(t.loaderData,t.matches[O],F)||u.some(ne=>ne===F.route.id))return!0;let te=t.matches[O],Q=F;return tr(F,V({currentUrl:j,currentParams:te.params,nextUrl:M,nextParams:Q.params},n,{actionResult:R,actionStatus:k,defaultShouldRevalidate:X?!1:d||j.pathname+j.search===M.pathname+M.search||j.search!==M.search||Er(te,Q)}))}),ee=[];return p.forEach((F,O)=>{if(l||!r.some(Z=>Z.route.id===F.routeId)||h.has(O))return;let $=xe(b,F.path,S);if(!$){ee.push({key:O,routeId:F.routeId,path:F.path,matches:null,match:null,controller:null});return}let te=t.fetchers.get(O),Q=Xe($,F.path),ne=!1;y.has(O)?ne=!1:f.has(O)?(f.delete(O),ne=!0):te&&te.state!=="idle"&&te.data===void 0?ne=d:ne=tr(Q,V({currentUrl:j,currentParams:t.matches[t.matches.length-1].params,nextUrl:M,nextParams:r[r.length-1].params},n,{actionResult:R,actionStatus:k,defaultShouldRevalidate:X?!1:d})),ne&&ee.push({key:O,routeId:F.routeId,path:F.path,matches:$,match:Q,controller:new AbortController})}),[m,ee]}function Ct(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Bn(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function Er(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function tr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function rr(e,t,r,n,a){var l;let o;if(e){let f=n[e];U(f,"No route found to patch children into: routeId = "+e),f.children||(f.children=[]),o=f.children}else o=r;let d=t.filter(f=>!o.some(h=>Sr(f,h))),u=pt(d,a,[e||"_","patch",String(((l=o)==null?void 0:l.length)||"0")],n);o.push(...u)}function Sr(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(l=>Sr(r,l))}):!1}async function In(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];U(a,"No route found in manifest");let l={};for(let o in n){let u=a[o]!==void 0&&o!=="hasErrorBoundary";Ne(!u,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!u&&!ln.has(o)&&(l[o]=n[o])}Object.assign(a,l),Object.assign(a,V({},t(a),{lazy:void 0}))}async function Nn(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,l,o)=>Object.assign(a,{[r[o].route.id]:l}),{})}async function An(e,t,r,n,a,l,o,d,u,f){let h=l.map(b=>b.route.lazy?In(b.route,u,d):void 0),p=l.map((b,S)=>{let x=h[S],R=a.some(M=>M.route.id===b.route.id);return V({},b,{shouldLoad:R,resolve:async M=>(M&&n.method==="GET"&&(b.route.lazy||b.route.loader)&&(R=!0),R?zn(t,n,b,x,M,f):Promise.resolve({type:z.data,result:void 0}))})}),y=await e({matches:p,request:n,params:l[0].params,fetcherKey:o,context:f});try{await Promise.all(h)}catch{}return y}async function zn(e,t,r,n,a,l){let o,d,u=f=>{let h,p=new Promise((S,x)=>h=x);d=()=>h(),t.signal.addEventListener("abort",d);let y=S=>typeof f!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):f({request:t,params:r.params,context:l},...S!==void 0?[S]:[]),b=(async()=>{try{return{type:"data",result:await(a?a(x=>y(x)):y())}}catch(S){return{type:"error",result:S}}})();return Promise.race([b,p])};try{let f=r.route[e];if(n)if(f){let h,[p]=await Promise.all([u(f).catch(y=>{h=y}),n]);if(h!==void 0)throw h;o=p}else if(await n,f=r.route[e],f)o=await u(f);else if(e==="action"){let h=new URL(t.url),p=h.pathname+h.search;throw ae(405,{method:t.method,pathname:p,routeId:r.route.id})}else return{type:z.data,result:void 0};else if(f)o=await u(f);else{let h=new URL(t.url),p=h.pathname+h.search;throw ae(404,{pathname:p})}U(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(f){return{type:z.error,result:f}}finally{d&&t.signal.removeEventListener("abort",d)}return o}async function kn(e){let{result:t,type:r}=e;if(Pr(t)){let f;try{let h=t.headers.get("Content-Type");h&&/\bapplication\/json\b/.test(h)?t.body==null?f=null:f=await t.json():f=await t.text()}catch(h){return{type:z.error,error:h}}return r===z.error?{type:z.error,error:new mt(t.status,t.statusText,f),statusCode:t.status,headers:t.headers}:{type:z.data,data:f,statusCode:t.status,headers:t.headers}}if(r===z.error){if(ur(t)){var n;if(t.data instanceof Error){var a;return{type:z.error,error:t.data,statusCode:(a=t.init)==null?void 0:a.status}}t=new mt(((n=t.init)==null?void 0:n.status)||500,void 0,t.data)}return{type:z.error,error:t,statusCode:vt(t)?t.status:void 0}}if(Kn(t)){var l,o;return{type:z.deferred,deferredData:t,statusCode:(l=t.init)==null?void 0:l.status,headers:((o=t.init)==null?void 0:o.headers)&&new Headers(t.init.headers)}}if(ur(t)){var d,u;return{type:z.data,data:t.data,statusCode:(d=t.init)==null?void 0:d.status,headers:(u=t.init)!=null&&u.headers?new Headers(t.init.headers):void 0}}return{type:z.data,data:t}}function Hn(e,t,r,n,a,l){let o=e.headers.get("Location");if(U(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ot.test(o)){let d=n.slice(0,n.findIndex(u=>u.route.id===r)+1);o=Lt(new URL(t.url),d,a,!0,o,l),e.headers.set("Location",o)}return e}function nr(e,t,r){if(Ot.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),l=Ae(a.pathname,r)!=null;if(a.origin===t.origin&&l)return a.pathname+a.search+a.hash}return e}function Be(e,t,r,n){let a=e.createURL(xr(t)).toString(),l={signal:r};if(n&&le(n.formMethod)){let{formMethod:o,formEncType:d}=n;l.method=o.toUpperCase(),d==="application/json"?(l.headers=new Headers({"Content-Type":d}),l.body=JSON.stringify(n.json)):d==="text/plain"?l.body=n.text:d==="application/x-www-form-urlencoded"&&n.formData?l.body=Mt(n.formData):l.body=n.formData}return new Request(a,l)}function Mt(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function ar(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function $n(e,t,r,n,a){let l={},o=null,d,u=!1,f={},h=r&&ie(r[1])?r[1].error:void 0;return e.forEach(p=>{if(!(p.route.id in t))return;let y=p.route.id,b=t[y];if(U(!De(b),"Cannot handle redirect results in processLoaderData"),ie(b)){let S=b.error;h!==void 0&&(S=h,h=void 0),o=o||{};{let x=Pe(e,y);o[x.route.id]==null&&(o[x.route.id]=S)}l[y]=void 0,u||(u=!0,d=vt(b.error)?b.error.status:500),b.headers&&(f[y]=b.headers)}else ve(b)?(n.set(y,b.deferredData),l[y]=b.deferredData.data,b.statusCode!=null&&b.statusCode!==200&&!u&&(d=b.statusCode),b.headers&&(f[y]=b.headers)):(l[y]=b.data,b.statusCode&&b.statusCode!==200&&!u&&(d=b.statusCode),b.headers&&(f[y]=b.headers))}),h!==void 0&&r&&(o={[r[0]]:h},l[r[0]]=void 0),{loaderData:l,errors:o,statusCode:d||200,loaderHeaders:f}}function ir(e,t,r,n,a,l,o){let{loaderData:d,errors:u}=$n(t,r,n,o);return a.forEach(f=>{let{key:h,match:p,controller:y}=f,b=l[h];if(U(b,"Did not find corresponding fetcher result"),!(y&&y.signal.aborted))if(ie(b)){let S=Pe(e.matches,p==null?void 0:p.route.id);u&&u[S.route.id]||(u=V({},u,{[S.route.id]:b.error})),e.fetchers.delete(h)}else if(De(b))U(!1,"Unhandled fetcher revalidation redirect");else if(ve(b))U(!1,"Unhandled fetcher deferred data");else{let S=ge(b.data);e.fetchers.set(h,S)}}),{loaderData:d,errors:u}}function or(e,t,r,n){let a=V({},t);for(let l of r){let o=l.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&l.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function lr(e){return e?ie(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Pe(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function sr(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function ae(e,t){let{pathname:r,routeId:n,method:a,type:l,message:o}=t===void 0?{}:t,d="Unknown Server Error",u="Unknown @remix-run/router error";return e===400?(d="Bad Request",a&&r&&n?u="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":l==="defer-action"?u="defer() is not supported in actions":l==="invalid-body"&&(u="Unable to encode submission body")):e===403?(d="Forbidden",u='Route "'+n+'" does not match URL "'+r+'"'):e===404?(d="Not Found",u='No route matches URL "'+r+'"'):e===405&&(d="Method Not Allowed",a&&r&&n?u="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(u='Invalid request method "'+a.toUpperCase()+'"')),new mt(e||500,d,new Error(u),!0)}function ft(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(De(a))return{key:n,result:a}}}function xr(e){let t=typeof e=="string"?he(e):e;return Le(V({},t,{hash:""}))}function Vn(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Wn(e){return Pr(e.result)&&Tn.has(e.result.status)}function ve(e){return e.type===z.deferred}function ie(e){return e.type===z.error}function De(e){return(e&&e.type)===z.redirect}function ur(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Kn(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Pr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Jn(e){return Mn.has(e.toLowerCase())}function le(e){return Ln.has(e.toLowerCase())}async function Yn(e,t,r,n,a){let l=Object.entries(t);for(let o=0;o(y==null?void 0:y.route.id)===d);if(!f)continue;let h=n.find(y=>y.route.id===f.route.id),p=h!=null&&!Er(h,f)&&(a&&a[f.route.id])!==void 0;ve(u)&&p&&await jt(u,r,!1).then(y=>{y&&(t[d]=y)})}}async function Gn(e,t,r){for(let n=0;n(f==null?void 0:f.route.id)===l)&&ve(d)&&(U(o,"Expected an AbortController for revalidating fetcher deferred result"),await jt(d,o.signal,!0).then(f=>{f&&(t[a]=f)}))}}async function jt(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:z.data,data:e.deferredData.unwrappedData}}catch(a){return{type:z.error,error:a}}return{type:z.data,data:e.deferredData.data}}}function Bt(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Xe(e,t){let r=typeof t=="string"?he(t).search:t.search;if(e[e.length-1].route.index&&Bt(r||""))return e[e.length-1];let n=br(e);return n[n.length-1]}function dr(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:l,json:o}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(l!=null)return{formMethod:t,formAction:r,formEncType:n,formData:l,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function Dt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Xn(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Ye(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Qn(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function ge(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Zn(e,t){try{let r=e.sessionStorage.getItem(Rr);if(r){let n=JSON.parse(r);for(let[a,l]of Object.entries(n||{}))l&&Array.isArray(l)&&t.set(a,new Set(l||[]))}}catch{}}function qn(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Rr,JSON.stringify(r))}catch(n){Ne(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/** + * React Router v6.28.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function et(){return et=Object.assign?Object.assign.bind():function(e){for(var t=1;t{d.current=!0}),v.useCallback(function(f,h){if(h===void 0&&(h={}),!d.current)return;if(typeof f=="number"){n.go(f);return}let p=_t(f,JSON.parse(o),l,h.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:fe([t,p.pathname])),(h.replace?n.replace:n.push)(p,h.state,h)},[t,n,o,l,e])}function Qa(){let{matches:e}=v.useContext(ye),t=e[e.length-1];return t?t.params:{}}function Tr(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=v.useContext(Ce),{matches:a}=v.useContext(ye),{pathname:l}=ze(),o=JSON.stringify(Ft(a,n.v7_relativeSplatPath));return v.useMemo(()=>_t(e,JSON.parse(o),l,r==="path"),[e,o,l,r])}function ra(e,t){return Ur(e,t)}function Ur(e,t,r,n){rt()||U(!1);let{navigator:a}=v.useContext(Ce),{matches:l}=v.useContext(ye),o=l[l.length-1],d=o?o.params:{};o&&o.pathname;let u=o?o.pathnameBase:"/";o&&o.route;let f=ze(),h;if(t){var p;let R=typeof t=="string"?he(t):t;u==="/"||(p=R.pathname)!=null&&p.startsWith(u)||U(!1),h=R}else h=f;let y=h.pathname||"/",b=y;if(u!=="/"){let R=u.replace(/^\//,"").split("/");b="/"+y.replace(/^\//,"").split("/").slice(R.length).join("/")}let S=xe(e,{pathname:b}),x=la(S&&S.map(R=>Object.assign({},R,{params:Object.assign({},d,R.params),pathname:fe([u,a.encodeLocation?a.encodeLocation(R.pathname).pathname:R.pathname]),pathnameBase:R.pathnameBase==="/"?u:fe([u,a.encodeLocation?a.encodeLocation(R.pathnameBase).pathname:R.pathnameBase])})),l,r,n);return t&&x?v.createElement(bt.Provider,{value:{location:et({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:J.Pop}},x):x}function na(){let e=ca(),t=vt(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},t),r?v.createElement("pre",{style:a},r):null,null)}const aa=v.createElement(na,null);class ia extends v.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?v.createElement(ye.Provider,{value:this.props.routeContext},v.createElement(Lr.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function oa(e){let{routeContext:t,match:r,children:n}=e,a=v.useContext(yt);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),v.createElement(ye.Provider,{value:t},n)}function la(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var l;if(!r)return null;if(r.errors)e=r.matches;else if((l=n)!=null&&l.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,d=(a=r)==null?void 0:a.errors;if(d!=null){let h=o.findIndex(p=>p.route.id&&(d==null?void 0:d[p.route.id])!==void 0);h>=0||U(!1),o=o.slice(0,Math.min(o.length,h+1))}let u=!1,f=-1;if(r&&n&&n.v7_partialHydration)for(let h=0;h=0?o=o.slice(0,f+1):o=[o[0]];break}}}return o.reduceRight((h,p,y)=>{let b,S=!1,x=null,R=null;r&&(b=d&&p.route.id?d[p.route.id]:void 0,x=p.route.errorElement||aa,u&&(f<0&&y===0?(S=!0,R=null):f===y&&(S=!0,R=p.route.hydrateFallbackElement||null)));let j=t.concat(o.slice(0,y+1)),M=()=>{let I;return b?I=x:S?I=R:p.route.Component?I=v.createElement(p.route.Component,null):p.route.element?I=p.route.element:I=h,v.createElement(oa,{match:p,routeContext:{outlet:h,matches:j,isDataRoute:r!=null},children:I})};return r&&(p.route.ErrorBoundary||p.route.errorElement||y===0)?v.createElement(ia,{location:r.location,revalidation:r.revalidation,component:x,error:b,children:M(),routeContext:{outlet:null,matches:j,isDataRoute:!0}}):M()},null)}var Fr=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Fr||{}),gt=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(gt||{});function sa(e){let t=v.useContext(yt);return t||U(!1),t}function ua(e){let t=v.useContext(Dr);return t||U(!1),t}function da(e){let t=v.useContext(ye);return t||U(!1),t}function _r(e){let t=da(),r=t.matches[t.matches.length-1];return r.route.id||U(!1),r.route.id}function ca(){var e;let t=v.useContext(Lr),r=ua(gt.UseRouteError),n=_r(gt.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function fa(){let{router:e}=sa(Fr.UseNavigateStable),t=_r(gt.UseNavigateStable),r=v.useRef(!1);return Cr(()=>{r.current=!0}),v.useCallback(function(a,l){l===void 0&&(l={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,et({fromRouteId:t},l)))},[e,t])}const cr={};function ha(e,t){cr[t]||(cr[t]=!0,console.warn(t))}const Ie=(e,t,r)=>ha(e,"⚠️ React Router Future Flag Warning: "+t+". "+("You can use the `"+e+"` future flag to opt-in early. ")+("For more information, see "+r+"."));function pa(e,t){(e==null?void 0:e.v7_startTransition)===void 0&&Ie("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||!t.v7_relativeSplatPath)&&Ie("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(t.v7_fetcherPersist===void 0&&Ie("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),t.v7_normalizeFormMethod===void 0&&Ie("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),t.v7_partialHydration===void 0&&Ie("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),t.v7_skipActionErrorRevalidation===void 0&&Ie("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}function ma(e){U(!1)}function ga(e){let{basename:t="/",children:r=null,location:n,navigationType:a=J.Pop,navigator:l,static:o=!1,future:d}=e;rt()&&U(!1);let u=t.replace(/^\/*/,"/"),f=v.useMemo(()=>({basename:u,navigator:l,static:o,future:et({v7_relativeSplatPath:!1},d)}),[u,d,l,o]);typeof n=="string"&&(n=he(n));let{pathname:h="/",search:p="",hash:y="",state:b=null,key:S="default"}=n,x=v.useMemo(()=>{let R=Ae(h,u);return R==null?null:{location:{pathname:R,search:p,hash:y,state:b,key:S},navigationType:a}},[u,h,p,y,b,S,a]);return x==null?null:v.createElement(Ce.Provider,{value:f},v.createElement(bt.Provider,{children:r,value:x}))}function Za(e){let{children:t,location:r}=e;return ra(Tt(t),r)}new Promise(()=>{});function Tt(e,t){t===void 0&&(t=[]);let r=[];return v.Children.forEach(e,(n,a)=>{if(!v.isValidElement(n))return;let l=[...t,a];if(n.type===v.Fragment){r.push.apply(r,Tt(n.props.children,l));return}n.type!==ma&&U(!1),!n.props.index||!n.props.children||U(!1);let o={id:n.props.id||l.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=Tt(n.props.children,l)),r.push(o)}),r}function va(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:v.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:v.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:v.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** + * React Router DOM v6.28.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function tt(){return tt=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[a]=e[a]);return r}function ba(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function wa(e,t){return e.button===0&&(!t||t==="_self")&&!ba(e)}function Ut(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Ra(e,t){let r=Ut(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(l=>{r.append(a,l)})}),r}const Ea=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Sa="6";try{window.__reactRouterVersion=Sa}catch{}function qa(e,t){return On({basename:t==null?void 0:t.basename,future:tt({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:nn({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||xa(),routes:e,mapRouteProperties:va,dataStrategy:t==null?void 0:t.dataStrategy,patchRoutesOnNavigation:t==null?void 0:t.patchRoutesOnNavigation,window:t==null?void 0:t.window}).initialize()}function xa(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=tt({},t,{errors:Pa(t.errors)})),t}function Pa(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new mt(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let l=window[a.__subType];if(typeof l=="function")try{let o=new l(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let l=new Error(a.message);l.stack="",r[n]=l}}else r[n]=a;return r}const Da=v.createContext({isTransitioning:!1}),La=v.createContext(new Map),Ca="startTransition",fr=en[Ca],Ma="flushSync",hr=tn[Ma];function Ta(e){fr?fr(e):e()}function Ge(e){hr?hr(e):e()}class Ua{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function ei(e){let{fallbackElement:t,router:r,future:n}=e,[a,l]=v.useState(r.state),[o,d]=v.useState(),[u,f]=v.useState({isTransitioning:!1}),[h,p]=v.useState(),[y,b]=v.useState(),[S,x]=v.useState(),R=v.useRef(new Map),{v7_startTransition:j}=n||{},M=v.useCallback(F=>{j?Ta(F):F()},[j]),I=v.useCallback((F,O)=>{let{deletedFetchers:$,flushSync:te,viewTransitionOpts:Q}=O;F.fetchers.forEach((Z,Me)=>{Z.data!==void 0&&R.current.set(Me,Z.data)}),$.forEach(Z=>R.current.delete(Z));let ne=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!Q||ne){te?Ge(()=>l(F)):M(()=>l(F));return}if(te){Ge(()=>{y&&(h&&h.resolve(),y.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:Q.currentLocation,nextLocation:Q.nextLocation})});let Z=r.window.document.startViewTransition(()=>{Ge(()=>l(F))});Z.finished.finally(()=>{Ge(()=>{p(void 0),b(void 0),d(void 0),f({isTransitioning:!1})})}),Ge(()=>b(Z));return}y?(h&&h.resolve(),y.skipTransition(),x({state:F,currentLocation:Q.currentLocation,nextLocation:Q.nextLocation})):(d(F),f({isTransitioning:!0,flushSync:!1,currentLocation:Q.currentLocation,nextLocation:Q.nextLocation}))},[r.window,y,h,R,M]);v.useLayoutEffect(()=>r.subscribe(I),[r,I]),v.useEffect(()=>{u.isTransitioning&&!u.flushSync&&p(new Ua)},[u]),v.useEffect(()=>{if(h&&o&&r.window){let F=o,O=h.promise,$=r.window.document.startViewTransition(async()=>{M(()=>l(F)),await O});$.finished.finally(()=>{p(void 0),b(void 0),d(void 0),f({isTransitioning:!1})}),b($)}},[M,o,h,r.window]),v.useEffect(()=>{h&&o&&a.location.key===o.location.key&&h.resolve()},[h,y,a.location,o]),v.useEffect(()=>{!u.isTransitioning&&S&&(d(S.state),f({isTransitioning:!0,flushSync:!1,currentLocation:S.currentLocation,nextLocation:S.nextLocation}),x(void 0))},[u.isTransitioning,S]),v.useEffect(()=>{},[]);let k=v.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:F=>r.navigate(F),push:(F,O,$)=>r.navigate(F,{state:O,preventScrollReset:$==null?void 0:$.preventScrollReset}),replace:(F,O,$)=>r.navigate(F,{replace:!0,state:O,preventScrollReset:$==null?void 0:$.preventScrollReset})}),[r]),X=r.basename||"/",m=v.useMemo(()=>({router:r,navigator:k,static:!1,basename:X}),[r,k,X]),ee=v.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return v.useEffect(()=>pa(n,r.future),[n,r.future]),v.createElement(v.Fragment,null,v.createElement(yt.Provider,{value:m},v.createElement(Dr.Provider,{value:a},v.createElement(La.Provider,{value:R.current},v.createElement(Da.Provider,{value:u},v.createElement(ga,{basename:X,location:a.location,navigationType:a.historyAction,navigator:k,future:ee},a.initialized||r.future.v7_partialHydration?v.createElement(Fa,{routes:r.routes,future:r.future,state:a}):t))))),null)}const Fa=v.memo(_a);function _a(e){let{routes:t,future:r,state:n}=e;return Ur(t,void 0,n,r)}const Oa=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ja=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ti=v.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:l,replace:o,state:d,target:u,to:f,preventScrollReset:h,viewTransition:p}=t,y=ya(t,Ea),{basename:b}=v.useContext(Ce),S,x=!1;if(typeof f=="string"&&ja.test(f)&&(S=f,Oa))try{let I=new URL(window.location.href),k=f.startsWith("//")?new URL(I.protocol+f):new URL(f),X=Ae(k.pathname,b);k.origin===I.origin&&X!=null?f=X+k.search+k.hash:x=!0}catch{}let R=ea(f,{relative:a}),j=Ba(f,{replace:o,state:d,target:u,preventScrollReset:h,relative:a,viewTransition:p});function M(I){n&&n(I),I.defaultPrevented||j(I)}return v.createElement("a",tt({},y,{href:S||R,onClick:x||l?n:M,ref:r,target:u}))});var pr;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(pr||(pr={}));var mr;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(mr||(mr={}));function Ba(e,t){let{target:r,replace:n,state:a,preventScrollReset:l,relative:o,viewTransition:d}=t===void 0?{}:t,u=Mr(),f=ze(),h=Tr(e,{relative:o});return v.useCallback(p=>{if(wa(p,r)){p.preventDefault();let y=n!==void 0?n:Le(f)===Le(h);u(e,{replace:y,state:a,preventScrollReset:l,relative:o,viewTransition:d})}},[f,u,h,n,a,r,e,l,o,d])}function ri(e){let t=v.useRef(Ut(e)),r=v.useRef(!1),n=ze(),a=v.useMemo(()=>Ra(n.search,r.current?null:t.current),[n.search]),l=Mr(),o=v.useCallback((d,u)=>{const f=Ut(typeof d=="function"?d(a):d);r.current=!0,l("?"+f,u)},[l,a]);return[a,o]}var Ia=function(t){return t.join("/").replace(/\/\/+/g,"/")},Na=/^:\w+$/,Aa=3,za=2,ka=1,Ha=10,$a=-2,gr=function(t){return t==="*"};function Va(e,t){var r=e.split("/"),n=r.length;return r.some(gr)&&(n+=$a),t&&(n+=za),r.filter(function(a){return!gr(a)}).reduce(function(a,l){return Na.test(l)?a+Aa:l===""?a+ka:a+Ha},n)}function Wa(e,t){var r=e.length===t.length&&e.slice(0,-1).every(function(n,a){return n===t[a]});return r?e[e.length-1]-t[t.length-1]:0}function Or(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";return e.forEach(function(a,l){var o;if(typeof a.path!="string"&&!a.index&&!(!((o=a.children)===null||o===void 0)&&o.length))throw new Error("useBreadcrumbs: `path` or `index` must be provided in every route object");if(a.path&&a.index)throw new Error("useBreadcrumbs: `path` and `index` cannot be provided at the same time");var d={relativePath:a.path||"",childrenIndex:l,route:a};if(d.relativePath.charAt(0)==="/"){if(!d.relativePath.startsWith(n))throw new Error("useBreadcrumbs: The absolute path of the child route must start with the parent path");d.relativePath=d.relativePath.slice(n.length)}var u=Ia([n,d.relativePath]),f=r.concat(d);if(a.children&&a.children.length>0){if(a.index)throw new Error("useBreadcrumbs: Index route cannot have child routes");Or(a.children,t,f,u)}t.push({path:u,score:Va(u,a.index),routesMeta:f})}),t}function Ka(e){return e.sort(function(t,r){return t.score!==r.score?r.score-t.score:Wa(t.routesMeta.map(function(n){return n.childrenIndex}),r.routesMeta.map(function(n){return n.childrenIndex}))})}var Qe=Symbol("NO_BREADCRUMB"),jr=function(t){return t.replace(/^[\s_]+|[\s_]+$/g,"").replace(/[-_\s]+/g," ").replace(/^[a-z]/,function(r){return r.toUpperCase()})},Br=function(t){var r=t.breadcrumb,n=t.match,a=t.location,l=t.props,o=Object.assign({match:n,location:a,key:n.pathname},l||{});return Object.assign(Object.assign({},o),{breadcrumb:typeof r=="string"?v.createElement("span",{key:o.key},r):rn.createElement(r,Object.assign({},o))})},Ja=function(t){var r=t.currentSection,n=t.location,a=t.pathSection,l=t.defaultFormatter,o=qe({end:!0,path:a},a);return Br({breadcrumb:l?l(r):jr(r),match:o,location:n})},Ya=function(t){var r=t.currentSection,n=t.disableDefaults,a=t.excludePaths,l=t.defaultFormatter,o=t.location,d=t.pathSection,u=t.branches,f,h=function(y){return qe({path:y,end:!0},d)!=null};return a&&a.some(h)?Qe:(u.some(function(p){var y=p.path,b=p.routesMeta,S=b[b.length-1].route,x=S.breadcrumb;if(!x&&S.index){var R=b[b.length-2];R&&R.route.breadcrumb&&(x=R.route.breadcrumb)}var j=S.caseSensitive,M=S.props,I=qe({path:y,end:!0,caseSensitive:j},d);return I&&x===null?(f=Qe,!0):I?!x&&n?(f=Qe,!0):(f=Br({breadcrumb:x||(l?l(r):jr(r)),match:Object.assign(Object.assign({},I),{route:S}),location:o,props:M}),!0):!1}),f||(n?Qe:Ja({pathSection:d,currentSection:d==="/"?"Home":r,location:o,defaultFormatter:l})))},Ga=function(t){var r=t.routes,n=t.location,a=t.options,l=a===void 0?{}:a,o=n.pathname,d=Ka(Or(r)),u=[];return o.split("?")[0].split("/").reduce(function(f,h,p){var y=h?"".concat(f,"/").concat(h):"/";if(y==="/"&&p!==0)return"";var b=Ya(Object.assign({currentSection:h,location:n,pathSection:y,branches:d},l));return b!==Qe&&u.push(b),y==="/"?"":y},""),u},ni=function(t,r){return Ga({routes:t,location:ze(),options:r})};export{ti as L,Za as R,ri as a,Qa as b,ni as c,ze as d,ma as e,qa as f,ei as g,Mr as u}; diff --git a/pkg/ui/frontend/dist/assets/style-De_mcyPH.css b/pkg/ui/frontend/dist/assets/style-De_mcyPH.css new file mode 100644 index 0000000000..c4b94cacd3 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/style-De_mcyPH.css @@ -0,0 +1 @@ +@charset "UTF-8";.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media (max-width: 400px),(max-height: 550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--popover: 0 0% 100%;--popover-foreground: 0 0% 3.9%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--primary: 0 0% 9%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--ring: 0 0% 3.9%;--radius: .5rem;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}.dark{--background: 0 0% 7%;--foreground: 0 0% 90%;--card: 0 0% 9%;--card-foreground: 0 0% 90%;--popover: 0 0% 7%;--popover-foreground: 0 0% 90%;--primary: 199 87% 64%;--primary-foreground: 0 0% 7%;--secondary: 0 0% 11%;--secondary-foreground: 0 0% 90%;--muted: 0 0% 11%;--muted-foreground: 0 0% 63%;--accent: 0 0% 11%;--accent-foreground: 0 0% 90%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 90%;--border: 0 0% 13%;--input: 0 0% 13%;--ring: 0 0% 13%;--radius: .25rem;--chart-1: 199 87% 64%;--chart-2: 120 56% 49%;--chart-3: 40 100% 50%;--chart-4: 283 39% 53%;--chart-5: 13 75% 58%;--sidebar-background: 0 0% 7%;--sidebar-foreground: 0 0% 90%;--sidebar-primary: 199 87% 64%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 0 0% 11%;--sidebar-accent-foreground: 0 0% 90%;--sidebar-border: 0 0% 13%;--sidebar-ring: 199 87% 64%}body{background-color:hsl(var(--background));font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-right-6{right:-1.5rem}.bottom-0{bottom:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-3{margin-left:-.75rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.2rem\]{height:1.2rem}.h-\[120px\]{height:120px}.h-\[180px\]{height:180px}.h-\[1px\]{height:1px}.h-\[500px\]{height:500px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[32px\]{min-height:32px}.min-h-\[60px\]{min-height:60px}.min-h-\[80vh\]{min-height:80vh}.min-h-\[calc\(100vh-12rem\)\]{min-height:calc(100vh - 12rem)}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[1\.2rem\]{width:1.2rem}.w-\[100px\]{width:100px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-\[1px\]{width:1px}.w-\[200px\]{width:200px}.w-\[250px\]{width:250px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[50px\]{width:50px}.w-\[80px\]{width:80px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[120px\]{min-width:120px}.min-w-\[200px\]{min-width:200px}.min-w-\[300px\]{min-width:300px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[450px\]{max-width:450px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[200px_1fr_80px\]{grid-template-columns:200px 1fr 80px}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-2{row-gap:.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:hsl(var(--border))}.self-end{align-self:flex-end}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/50{background-color:hsl(var(--card) / .5)}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-fuchsia-100{--tw-bg-opacity: 1;background-color:rgb(250 232 255 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-500\/20{background-color:#6b728033}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/20{background-color:#22c55e33}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-lime-100{--tw-bg-opacity: 1;background-color:rgb(236 252 203 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/5{background-color:hsl(var(--muted) / .05)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500\/20{background-color:#f9731633}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-500\/20{background-color:#a855f733}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/20{background-color:#ef444433}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-teal-100{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/20{background-color:#eab30833}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-primary\/50{--tw-gradient-to: hsl(var(--primary) / .5) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-fuchsia-800{--tw-text-opacity: 1;color:rgb(134 25 143 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-800{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.text-lime-800{--tw-text-opacity: 1;color:rgb(63 98 18 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-purple-800{--tw-text-opacity: 1;color:rgb(107 33 168 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-sky-800{--tw-text-opacity: 1;color:rgb(7 89 133 / var(--tw-text-opacity, 1))}.text-teal-800{--tw-text-opacity: 1;color:rgb(17 94 89 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.\!ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@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))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-50{--tw-enter-scale: .5}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.paused{animation-play-state:paused}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:bg-border\/40:after{content:var(--tw-content);background-color:hsl(var(--border) / .4)}.last\:mb-0:last-child{margin-bottom:0}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-blue-500\/30:hover{background-color:#3b82f64d}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-500\/30:hover{background-color:#6b72804d}.hover\:bg-green-500\/30:hover{background-color:#22c55e4d}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-500\/30:hover{background-color:#f973164d}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-purple-500\/30:hover{background-color:#a855f74d}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/30:hover{background-color:#ef44444d}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-yellow-500\/30:hover{background-color:#eab3084d}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-red-900:hover{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring-1:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-gray-300:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity, 1))}.hover\:after\:bg-border:hover:after{content:var(--tw-content);background-color:hsl(var(--border))}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-red-50:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.group:hover .group-hover\:animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.group:hover .group-hover\:animate-spin{animation:spin 1s linear infinite}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-muted\/50[data-state=open]{background-color:hsl(var(--muted) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:bg-amber-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-500\/30:is(.dark *){background-color:#3b82f64d}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 37 84 / var(--tw-bg-opacity, 1))}.dark\:bg-cyan-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity, 1))}.dark\:bg-cyan-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(8 51 68 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity, 1))}.dark\:bg-fuchsia-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(112 26 117 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-500\/30:is(.dark *){background-color:#6b72804d}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-green-500\/30:is(.dark *){background-color:#22c55e4d}.dark\:bg-green-500\/80:is(.dark *){background-color:#22c55ecc}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.dark\:bg-green-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(5 46 22 / var(--tw-bg-opacity, 1))}.dark\:bg-indigo-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity, 1))}.dark\:bg-indigo-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity, 1))}.dark\:bg-lime-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(54 83 20 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-500\/30:is(.dark *){background-color:#f973164d}.dark\:bg-orange-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(124 45 18 / var(--tw-bg-opacity, 1))}.dark\:bg-orange-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(67 20 7 / var(--tw-bg-opacity, 1))}.dark\:bg-purple-500\/30:is(.dark *){background-color:#a855f74d}.dark\:bg-purple-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(88 28 135 / var(--tw-bg-opacity, 1))}.dark\:bg-purple-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(59 7 100 / var(--tw-bg-opacity, 1))}.dark\:bg-red-500\/30:is(.dark *){background-color:#ef44444d}.dark\:bg-red-500\/80:is(.dark *){background-color:#ef4444cc}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.dark\:bg-red-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity, 1))}.dark\:bg-rose-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(136 19 55 / var(--tw-bg-opacity, 1))}.dark\:bg-sky-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(12 74 110 / var(--tw-bg-opacity, 1))}.dark\:bg-teal-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(19 78 74 / var(--tw-bg-opacity, 1))}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-yellow-500\/30:is(.dark *){background-color:#eab3084d}.dark\:bg-yellow-500\/80:is(.dark *){background-color:#eab308cc}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(66 32 6 / var(--tw-bg-opacity, 1))}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-200:is(.dark *){--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.dark\:text-cyan-300:is(.dark *){--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-fuchsia-200:is(.dark *){--tw-text-opacity: 1;color:rgb(245 208 254 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-indigo-200:is(.dark *){--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:text-lime-200:is(.dark *){--tw-text-opacity: 1;color:rgb(217 249 157 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-rose-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity, 1))}.dark\:text-rose-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.dark\:text-teal-200:is(.dark *){--tw-text-opacity: 1;color:rgb(153 246 228 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-green-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-yellow-500:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.dark\:hover\:ring-gray-600:hover:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity, 1))}.dark\:disabled\:hover\:bg-red-950:hover:disabled:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(69 10 10 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex{display:flex}.sm\:h-24{height:6rem}.sm\:w-24{width:6rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-6{padding:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-7xl{font-size:4.5rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:block{display:block}.md\:flex{display:flex}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize} diff --git a/pkg/ui/frontend/dist/assets/theme-utils-CNom64Sw.js b/pkg/ui/frontend/dist/assets/theme-utils-CNom64Sw.js new file mode 100644 index 0000000000..1906165eb8 --- /dev/null +++ b/pkg/ui/frontend/dist/assets/theme-utils-CNom64Sw.js @@ -0,0 +1 @@ +import{r as l}from"./react-core-D_V7s-9r.js";var v=(t,i,m,n,s,a,u,d)=>{let r=document.documentElement,h=["light","dark"];function o(e){(Array.isArray(t)?t:[t]).forEach(c=>{let p=c==="class",S=p&&a?s.map(f=>a[f]||f):s;p?(r.classList.remove(...S),r.classList.add(e)):r.setAttribute(c,e)}),y(e)}function y(e){d&&h.includes(e)&&(r.style.colorScheme=e)}function g(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(n)o(n);else try{let e=localStorage.getItem(i)||m,c=u&&e==="system"?g():e;o(c)}catch{}},E=l.createContext(void 0),b={setTheme:t=>{},themes:[]},w=()=>{var t;return(t=l.useContext(E))!=null?t:b};l.memo(({forcedTheme:t,storageKey:i,attribute:m,enableSystem:n,enableColorScheme:s,defaultTheme:a,value:u,themes:d,nonce:r,scriptProps:h})=>{let o=JSON.stringify([m,i,a,t,d,u,n,s]).slice(1,-1);return l.createElement("script",{...h,suppressHydrationWarning:!0,nonce:typeof window>"u"?r:"",dangerouslySetInnerHTML:{__html:`(${v.toString()})(${o})`}})});export{w as z}; diff --git a/pkg/ui/frontend/dist/assets/ui-icons-CFVjIJRk.js b/pkg/ui/frontend/dist/assets/ui-icons-CFVjIJRk.js new file mode 100644 index 0000000000..df33ce94fd --- /dev/null +++ b/pkg/ui/frontend/dist/assets/ui-icons-CFVjIJRk.js @@ -0,0 +1,191 @@ +import{r as h,b as s}from"./react-core-D_V7s-9r.js";/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const g=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),m=(...e)=>e.filter((t,o,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===o).join(" ").trim();/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var x={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const b=h.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:r,className:a="",children:c,iconNode:p,...y},i)=>h.createElement("svg",{ref:i,...x,width:t,height:t,stroke:e,strokeWidth:r?Number(o)*24/Number(t):o,className:m("lucide",a),...y},[...p.map(([w,_])=>h.createElement(w,_)),...Array.isArray(c)?c:[c]]));/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const n=(e,t)=>{const o=h.forwardRef(({className:r,...a},c)=>h.createElement(b,{ref:c,iconNode:t,className:m(`lucide-${g(e)}`,r),...a}));return o.displayName=`${e}`,o};/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const C=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],le=n("ArrowDown",C);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const M=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],pe=n("ArrowUp",M);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const N=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],ue=n("BookOpen",N);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ke=n("Check",$);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const j=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],me=n("ChevronDown",j);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const O=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ve=n("ChevronRight",O);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const P=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],fe=n("ChevronUp",P);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const D=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],we=n("ChevronsUpDown",D);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const A=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],_e=n("CircleAlert",A);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const q=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]],ge=n("CircleArrowDown",q);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const z=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]],xe=n("CircleArrowRight",z);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const L=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]],be=n("CircleArrowUp",L);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const E=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],Ce=n("CircleDot",E);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const R=[["path",{d:"M15.6 2.7a10 10 0 1 0 5.7 5.7",key:"1e0p6d"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M13.4 10.6 19 5",key:"1kr7tw"}]],Me=n("CircleGauge",R);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ne=n("Circle",S);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const U=[["rect",{x:"2",y:"6",width:"20",height:"8",rx:"1",key:"1estib"}],["path",{d:"M17 14v7",key:"7m2elx"}],["path",{d:"M7 14v7",key:"1cm7wv"}],["path",{d:"M17 3v3",key:"1v4jwn"}],["path",{d:"M7 3v3",key:"7o6guu"}],["path",{d:"M10 14 2.3 6.3",key:"1023jk"}],["path",{d:"m14 6 7.7 7.7",key:"1s8pl2"}],["path",{d:"m8 6 8 8",key:"hl96qh"}]],$e=n("Construction",U);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const H=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],je=n("Copy",H);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const V=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Oe=n("Database",V);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const B=[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]],Pe=n("Download",B);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const I=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]],De=n("File",I);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const F=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],Ae=n("Folder",F);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const G=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]],qe=n("House",G);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const W=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],ze=n("LayoutDashboard",W);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Z=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Le=n("LoaderCircle",Z);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],Ee=n("Moon",K);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const T=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],Re=n("PanelLeft",T);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const X=[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]],Se=n("Pause",X);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const J=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Ue=n("Plus",J);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Q=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],He=n("RefreshCw",Q);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Y=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Ve=n("RotateCcw",Y);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ee=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],Be=n("Search",ee);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const te=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Ie=n("Sun",te);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oe=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]],Fe=n("Users",oe);/** + * @license lucide-react v0.474.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const re=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ge=n("X",re);var v={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},u=s.createContext&&s.createContext(v),ne=["attr","size","title"];function ae(e,t){if(e==null)return{};var o=ce(e,t),r,a;if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function ce(e,t){if(e==null)return{};var o={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;o[r]=e[r]}return o}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;ts.createElement(t.tag,l({key:o},t.attr),f(t.child)))}function We(e){return t=>s.createElement(ye,d({attr:l({},e.attr)},t),f(e.child))}function ye(e){var t=o=>{var{attr:r,size:a,title:c}=e,p=ae(e,ne),y=a||o.size||"1em",i;return o.className&&(i=o.className),e.className&&(i=(i?i+" ":"")+e.className),s.createElement("svg",d({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},o.attr,r,p,{className:i,style:l(l({color:e.color||o.color},o.style),e.style),height:y,width:y,xmlns:"http://www.w3.org/2000/svg"}),c&&s.createElement("title",null,c),e.children)};return u!==void 0?s.createElement(u.Consumer,null,o=>t(o)):t(v)}export{le as A,ue as B,ve as C,Pe as D,Ae as F,We as G,qe as H,Le as L,Ee as M,Se as P,Ve as R,Ie as S,Fe as U,Ge as X,ke as a,Ne as b,pe as c,we as d,xe as e,Be as f,_e as g,Ce as h,be as i,ge as j,me as k,fe as l,De as m,je as n,He as o,$e as p,Ue as q,Re as r,ze as s,Oe as t,Me as u}; diff --git a/pkg/ui/frontend/dist/assets/ui-utils-BNSC_Jv-.js b/pkg/ui/frontend/dist/assets/ui-utils-BNSC_Jv-.js new file mode 100644 index 0000000000..33dde34c5d --- /dev/null +++ b/pkg/ui/frontend/dist/assets/ui-utils-BNSC_Jv-.js @@ -0,0 +1 @@ +function ee(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,Q=le,Oe=(e,t)=>r=>{var o;if((t==null?void 0:t.variants)==null)return Q(e,r==null?void 0:r.class,r==null?void 0:r.className);const{variants:l,defaultVariants:n}=t,a=Object.keys(l).map(c=>{const g=r==null?void 0:r[c],h=n==null?void 0:n[c];if(g===null)return null;const m=H(g)||H(h);return l[c][m]}),s=r&&Object.entries(r).reduce((c,g)=>{let[h,m]=g;return m===void 0||(c[h]=m),c},{}),b=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((c,g)=>{let{class:h,className:m,...v}=g;return Object.entries(v).every(x=>{let[f,d]=x;return Array.isArray(d)?d.includes({...n,...s}[f]):{...n,...s}[f]===d})?[...c,h,m]:c},[]);return Q(e,a,b,r==null?void 0:r.class,r==null?void 0:r.className)},U="-",ie=e=>{const t=ce(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:a=>{const s=a.split(U);return s[0]===""&&s.length!==1&&s.shift(),re(s,t)||ae(a)},getConflictingClassGroupIds:(a,s)=>{const b=r[a]||[];return s&&o[a]?[...b,...o[a]]:b}}},re=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const r=e[0],o=t.nextPart.get(r),l=o?re(e.slice(1),o):void 0;if(l)return l;if(t.validators.length===0)return;const n=e.join(U);return(a=t.validators.find(({validator:s})=>s(n)))==null?void 0:a.classGroupId},Y=/^\[(.+)\]$/,ae=e=>{if(Y.test(e)){const t=Y.exec(e)[1],r=t==null?void 0:t.substring(0,t.indexOf(":"));if(r)return"arbitrary.."+r}},ce=e=>{const{theme:t,prefix:r}=e,o={nextPart:new Map,validators:[]};return ue(Object.entries(e.classGroups),r).forEach(([n,a])=>{$(a,o,n,t)}),o},$=(e,t,r,o)=>{e.forEach(l=>{if(typeof l=="string"){const n=l===""?t:D(t,l);n.classGroupId=r;return}if(typeof l=="function"){if(de(l)){$(l(o),t,r,o);return}t.validators.push({validator:l,classGroupId:r});return}Object.entries(l).forEach(([n,a])=>{$(a,D(t,n),r,o)})})},D=(e,t)=>{let r=e;return t.split(U).forEach(o=>{r.nextPart.has(o)||r.nextPart.set(o,{nextPart:new Map,validators:[]}),r=r.nextPart.get(o)}),r},de=e=>e.isThemeGetter,ue=(e,t)=>t?e.map(([r,o])=>{const l=o.map(n=>typeof n=="string"?t+n:typeof n=="object"?Object.fromEntries(Object.entries(n).map(([a,s])=>[t+a,s])):n);return[r,l]}):e,pe=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=new Map,o=new Map;const l=(n,a)=>{r.set(n,a),t++,t>e&&(t=0,o=r,r=new Map)};return{get(n){let a=r.get(n);if(a!==void 0)return a;if((a=o.get(n))!==void 0)return l(n,a),a},set(n,a){r.has(n)?r.set(n,a):l(n,a)}}},te="!",be=e=>{const{separator:t,experimentalParseClassName:r}=e,o=t.length===1,l=t[0],n=t.length,a=s=>{const b=[];let c=0,g=0,h;for(let d=0;dg?h-g:void 0;return{modifiers:b,hasImportantModifier:v,baseClassName:x,maybePostfixModifierPosition:f}};return r?s=>r({className:s,parseClassName:a}):a},ge=e=>{if(e.length<=1)return e;const t=[];let r=[];return e.forEach(o=>{o[0]==="["?(t.push(...r.sort(),o),r=[]):r.push(o)}),t.push(...r.sort()),t},fe=e=>({cache:pe(e.cacheSize),parseClassName:be(e),...ie(e)}),me=/\s+/,he=(e,t)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:l}=t,n=[],a=e.trim().split(me);let s="";for(let b=a.length-1;b>=0;b-=1){const c=a[b],{modifiers:g,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:v}=r(c);let x=!!v,f=o(x?m.substring(0,v):m);if(!f){if(!x){s=c+(s.length>0?" "+s:s);continue}if(f=o(m),!f){s=c+(s.length>0?" "+s:s);continue}x=!1}const d=ge(g).join(":"),y=h?d+te:d,w=y+f;if(n.includes(w))continue;n.push(w);const R=l(f,x);for(let S=0;S0?" "+s:s)}return s};function ye(){let e=0,t,r,o="";for(;e{if(typeof e=="string")return e;let t,r="";for(let o=0;oh(g),e());return r=fe(c),o=r.cache.get,l=r.cache.set,n=s,s(b)}function s(b){const c=o(b);if(c)return c;const g=he(b,r);return l(b,g),g}return function(){return n(ye.apply(null,arguments))}}const u=e=>{const t=r=>r[e]||[];return t.isThemeGetter=!0,t},ne=/^\[(?:([a-z-]+):)?(.+)\]$/i,we=/^\d+\/\d+$/,ve=new Set(["px","full","screen"]),ke=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ce=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ze=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Ae=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Se=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,C=e=>M(e)||ve.has(e)||we.test(e),z=e=>G(e,"length",Ee),M=e=>!!e&&!Number.isNaN(Number(e)),_=e=>G(e,"number",M),I=e=>!!e&&Number.isInteger(Number(e)),Me=e=>e.endsWith("%")&&M(e.slice(0,-1)),i=e=>ne.test(e),A=e=>ke.test(e),Ge=new Set(["length","size","percentage"]),Re=e=>G(e,Ge,se),Pe=e=>G(e,"position",se),Ie=new Set(["image","url"]),Ne=e=>G(e,Ie,Ve),je=e=>G(e,"",Te),N=()=>!0,G=(e,t,r)=>{const o=ne.exec(e);return o?o[1]?typeof t=="string"?o[1]===t:t.has(o[1]):r(o[2]):!1},Ee=e=>Ce.test(e)&&!ze.test(e),se=()=>!1,Te=e=>Ae.test(e),Ve=e=>Se.test(e),Le=()=>{const e=u("colors"),t=u("spacing"),r=u("blur"),o=u("brightness"),l=u("borderColor"),n=u("borderRadius"),a=u("borderSpacing"),s=u("borderWidth"),b=u("contrast"),c=u("grayscale"),g=u("hueRotate"),h=u("invert"),m=u("gap"),v=u("gradientColorStops"),x=u("gradientColorStopPositions"),f=u("inset"),d=u("margin"),y=u("opacity"),w=u("padding"),R=u("saturate"),S=u("scale"),j=u("sepia"),B=u("skew"),F=u("space"),q=u("translate"),V=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",i,t],p=()=>[i,t],J=()=>["",C,z],E=()=>["auto",M,i],K=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],T=()=>["solid","dashed","dotted","double","none"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],P=()=>["","0",i],Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>[M,i];return{cacheSize:500,separator:":",theme:{colors:[N],spacing:[C,z],blur:["none","",A,i],brightness:k(),borderColor:[e],borderRadius:["none","","full",A,i],borderSpacing:p(),borderWidth:J(),contrast:k(),grayscale:P(),hueRotate:k(),invert:P(),gap:p(),gradientColorStops:[e],gradientColorStopPositions:[Me,z],inset:O(),margin:O(),opacity:k(),padding:p(),saturate:k(),scale:k(),sepia:P(),skew:k(),space:p(),translate:p()},classGroups:{aspect:[{aspect:["auto","square","video",i]}],container:["container"],columns:[{columns:[A]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...K(),i]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[f]}],"inset-x":[{"inset-x":[f]}],"inset-y":[{"inset-y":[f]}],start:[{start:[f]}],end:[{end:[f]}],top:[{top:[f]}],right:[{right:[f]}],bottom:[{bottom:[f]}],left:[{left:[f]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",I,i]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",i]}],grow:[{grow:P()}],shrink:[{shrink:P()}],order:[{order:["first","last","none",I,i]}],"grid-cols":[{"grid-cols":[N]}],"col-start-end":[{col:["auto",{span:["full",I,i]},i]}],"col-start":[{"col-start":E()}],"col-end":[{"col-end":E()}],"grid-rows":[{"grid-rows":[N]}],"row-start-end":[{row:["auto",{span:[I,i]},i]}],"row-start":[{"row-start":E()}],"row-end":[{"row-end":E()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",i]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",i]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[w]}],px:[{px:[w]}],py:[{py:[w]}],ps:[{ps:[w]}],pe:[{pe:[w]}],pt:[{pt:[w]}],pr:[{pr:[w]}],pb:[{pb:[w]}],pl:[{pl:[w]}],m:[{m:[d]}],mx:[{mx:[d]}],my:[{my:[d]}],ms:[{ms:[d]}],me:[{me:[d]}],mt:[{mt:[d]}],mr:[{mr:[d]}],mb:[{mb:[d]}],ml:[{ml:[d]}],"space-x":[{"space-x":[F]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[F]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",i,t]}],"min-w":[{"min-w":[i,t,"min","max","fit"]}],"max-w":[{"max-w":[i,t,"none","full","min","max","fit","prose",{screen:[A]},A]}],h:[{h:[i,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[i,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[i,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[i,t,"auto","min","max","fit"]}],"font-size":[{text:["base",A,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",_]}],"font-family":[{font:[N]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",i]}],"line-clamp":[{"line-clamp":["none",M,_]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",C,i]}],"list-image":[{"list-image":["none",i]}],"list-style-type":[{list:["none","disc","decimal",i]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...T(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",C,z]}],"underline-offset":[{"underline-offset":["auto",C,i]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",i]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",i]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...K(),Pe]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Re]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Ne]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[x]}],"gradient-via-pos":[{via:[x]}],"gradient-to-pos":[{to:[x]}],"gradient-from":[{from:[v]}],"gradient-via":[{via:[v]}],"gradient-to":[{to:[v]}],rounded:[{rounded:[n]}],"rounded-s":[{"rounded-s":[n]}],"rounded-e":[{"rounded-e":[n]}],"rounded-t":[{"rounded-t":[n]}],"rounded-r":[{"rounded-r":[n]}],"rounded-b":[{"rounded-b":[n]}],"rounded-l":[{"rounded-l":[n]}],"rounded-ss":[{"rounded-ss":[n]}],"rounded-se":[{"rounded-se":[n]}],"rounded-ee":[{"rounded-ee":[n]}],"rounded-es":[{"rounded-es":[n]}],"rounded-tl":[{"rounded-tl":[n]}],"rounded-tr":[{"rounded-tr":[n]}],"rounded-br":[{"rounded-br":[n]}],"rounded-bl":[{"rounded-bl":[n]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...T(),"hidden"]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:T()}],"border-color":[{border:[l]}],"border-color-x":[{"border-x":[l]}],"border-color-y":[{"border-y":[l]}],"border-color-s":[{"border-s":[l]}],"border-color-e":[{"border-e":[l]}],"border-color-t":[{"border-t":[l]}],"border-color-r":[{"border-r":[l]}],"border-color-b":[{"border-b":[l]}],"border-color-l":[{"border-l":[l]}],"divide-color":[{divide:[l]}],"outline-style":[{outline:["",...T()]}],"outline-offset":[{"outline-offset":[C,i]}],"outline-w":[{outline:[C,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[C,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",A,je]}],"shadow-color":[{shadow:[N]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...X(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":X()}],filter:[{filter:["","none"]}],blur:[{blur:[r]}],brightness:[{brightness:[o]}],contrast:[{contrast:[b]}],"drop-shadow":[{"drop-shadow":["","none",A,i]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[g]}],invert:[{invert:[h]}],saturate:[{saturate:[R]}],sepia:[{sepia:[j]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[r]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[b]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[g]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[R]}],"backdrop-sepia":[{"backdrop-sepia":[j]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",i]}],duration:[{duration:k()}],ease:[{ease:["linear","in","out","in-out",i]}],delay:[{delay:k()}],animate:[{animate:["none","spin","ping","pulse","bounce",i]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[I,i]}],"translate-x":[{"translate-x":[q]}],"translate-y":[{"translate-y":[q]}],"skew-x":[{"skew-x":[B]}],"skew-y":[{"skew-y":[B]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",i]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",i]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",i]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[C,z,_]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},We=xe(Le);export{Oe as a,le as c,We as t}; diff --git a/pkg/ui/frontend/dist/index.html b/pkg/ui/frontend/dist/index.html new file mode 100644 index 0000000000..9af5b6ebee --- /dev/null +++ b/pkg/ui/frontend/dist/index.html @@ -0,0 +1,29 @@ + + + + + + + Loki UI + + + + + + + + + + + + + + + + + + +
+ + + diff --git a/pkg/dataobj/explorer/ui/index.html b/pkg/ui/frontend/index.html similarity index 87% rename from pkg/dataobj/explorer/ui/index.html rename to pkg/ui/frontend/index.html index f2fa33609b..fab4e5be42 100644 --- a/pkg/dataobj/explorer/ui/index.html +++ b/pkg/ui/frontend/index.html @@ -4,7 +4,7 @@ - DataObj Explorer + Loki UI diff --git a/pkg/ui/frontend/package-lock.json b/pkg/ui/frontend/package-lock.json new file mode 100644 index 0000000000..b26bf58e31 --- /dev/null +++ b/pkg/ui/frontend/package-lock.json @@ -0,0 +1,6954 @@ +{ + "name": "@grafana/loki-ui", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@grafana/loki-ui", + "version": "0.0.0", + "dependencies": { + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-collapsible": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-hover-card": "^1.1.5", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-popover": "^1.1.5", + "@radix-ui/react-progress": "^1.1.1", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-select": "^2.1.5", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@radix-ui/react-toast": "^1.2.5", + "@radix-ui/react-toggle": "^1.1.1", + "@radix-ui/react-toggle-group": "^1.1.1", + "@radix-ui/react-tooltip": "^1.1.7", + "@tanstack/react-query": "^5.66.0", + "@tanstack/react-query-devtools": "^5.66.0", + "@types/lodash": "^4.17.15", + "@types/react-datepicker": "^6.2.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "date-fns": "^3.3.1", + "lodash": "^4.17.21", + "lucide-react": "^0.474.0", + "next-themes": "^0.4.4", + "prism-react-renderer": "^2.4.1", + "react": "^18.2.0", + "react-code-block": "^1.1.1", + "react-datepicker": "^8.0.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react-router-dom": "^6.22.0", + "recharts": "^2.15.1", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "use-react-router-breadcrumbs": "^4.0.1", + "zod": "^3.24.1" + }, + "devDependencies": { + "@types/node": "^22.12.0", + "@types/react": "^18.2.0", + "@types/react-dom": "^18.2.0", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.20", + "depcheck": "^1.4.7", + "eslint": "^8.38.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.5.1", + "tailwindcss": "^3.4.1", + "typescript": "^5.0.2", + "vite": "^5.1.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@hookform/resolvers": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", + "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz", + "integrity": "sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.2.tgz", + "integrity": "sha512-PliMB63vxz7vggcyq0IxNYk8vGDrLXVWw4+W4B8YnwI1s18x7YZYqlG9PLX7XxAJUi0g2DxP4XKJMFHh/iVh9A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", + "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", + "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", + "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.5.tgz", + "integrity": "sha512-0jPlX3ZrUIhtMAY0m1SBn1koI4Yqsizq2UwdUiQF1GseSZLZBPa6b8tNS+m32K94Yb4wxtWFSQs85wujQvwahg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", + "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.5.tgz", + "integrity": "sha512-YXkTAftOIW2Bt3qKH8vYr6n9gCkVrvyvfiTObVjoHVTHnNj26rmvO87IKa3VgtgCjb8FAQ6qOjNViwl+9iIzlg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.1.tgz", + "integrity": "sha512-6diOawA84f/eMxFHcWut0aE1C2kyE9dOyCTQOMRR2C/qPiXz/X0SaiA/RLbapQaXUCmy0/hLMf9meSccD1N0pA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.2.tgz", + "integrity": "sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.5.tgz", + "integrity": "sha512-eVV7N8jBXAXnyrc+PsOF89O9AfVgGnbLxUtBb0clJ8y8ENMWLARGMI/1/SBRLz7u4HqxLgN71BJ17eono3wcjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.1.tgz", + "integrity": "sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", + "integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.5.tgz", + "integrity": "sha512-ZzUsAaOx8NdXZZKcFNDhbSlbsCUy8qQWmzTdgrlrhhZAOx2ofLtKrBDW9fkqhFvXgmtv560Uj16pkLkqML7SHA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.1.tgz", + "integrity": "sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.1.tgz", + "integrity": "sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-toggle": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.7.tgz", + "integrity": "sha512-ss0s80BC0+g0+Zc53MvilcnTYSOi4mSuFWBPYPuTOFGjx+pUU+ZrmamMNwS56t8MTFlniA5ocjd4jYm/CdhbOg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@remix-run/router": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.1.tgz", + "integrity": "sha512-KeBYSwohb8g4/wCcnksvKTYlg69O62sQeLynn2YE+5z7JWEj95if27kclW9QqbrlsQ2DINI8fjbV3zyuKfwjKg==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.1.tgz", + "integrity": "sha512-/pqA4DmqyCm8u5YIDzIdlLcEmuvxb0v8fZdFhVMszSpDTgbQKdw3/mB3eMUHIbubtJ6F9j+LtmyCnHTEqIHyzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.1.tgz", + "integrity": "sha512-If3PDskT77q7zgqVqYuj7WG3WC08G1kwXGVFi9Jr8nY6eHucREHkfpX79c0ACAjLj3QIWKPJR7w4i+f5EdLH5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.1.tgz", + "integrity": "sha512-zCpKHioQ9KgZToFp5Wvz6zaWbMzYQ2LJHQ+QixDKq52KKrF65ueu6Af4hLlLWHjX1Wf/0G5kSJM9PySW9IrvHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.1.tgz", + "integrity": "sha512-sFvF+t2+TyUo/ZQqUcifrJIgznx58oFZbdHS9TvHq3xhPVL9nOp+yZ6LKrO9GWTP+6DbFtoyLDbjTpR62Mbr3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.1.tgz", + "integrity": "sha512-NbOa+7InvMWRcY9RG+B6kKIMD/FsnQPH0MWUvDlQB1iXnF/UcKSudCXZtv4lW+C276g3w5AxPbfry5rSYvyeYA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.1.tgz", + "integrity": "sha512-JRBRmwvHPXR881j2xjry8HZ86wIPK2CcDw0EXchE1UgU0ubWp9nvlT7cZYKc6bkypBt745b4bglf3+xJ7hXWWw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.1.tgz", + "integrity": "sha512-PKvszb+9o/vVdUzCCjL0sKHukEQV39tD3fepXxYrHE3sTKrRdCydI7uldRLbjLmDA3TFDmh418XH19NOsDRH8g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.1.tgz", + "integrity": "sha512-9WHEMV6Y89eL606ReYowXuGF1Yb2vwfKWKdD1A5h+OYnPZSJvxbEjxTRKPgi7tkP2DSnW0YLab1ooy+i/FQp/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.1.tgz", + "integrity": "sha512-tZWc9iEt5fGJ1CL2LRPw8OttkCBDs+D8D3oEM8mH8S1ICZCtFJhD7DZ3XMGM8kpqHvhGUTvNUYVDnmkj4BDXnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.1.tgz", + "integrity": "sha512-FTYc2YoTWUsBz5GTTgGkRYYJ5NGJIi/rCY4oK/I8aKowx1ToXeoVVbIE4LGAjsauvlhjfl0MYacxClLld1VrOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.1.tgz", + "integrity": "sha512-F51qLdOtpS6P1zJVRzYM0v6MrBNypyPEN1GfMiz0gPu9jN8ScGaEFIZQwteSsGKg799oR5EaP7+B2jHgL+d+Kw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.1.tgz", + "integrity": "sha512-wO0WkfSppfX4YFm5KhdCCpnpGbtgQNj/tgvYzrVYFKDpven8w2N6Gg5nB6w+wAMO3AIfSTWeTjfVe+uZ23zAlg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.1.tgz", + "integrity": "sha512-iWswS9cIXfJO1MFYtI/4jjlrGb/V58oMu4dYJIKnR5UIwbkzR0PJ09O0PDZT0oJ3LYWXBSWahNf/Mjo6i1E5/g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.1.tgz", + "integrity": "sha512-RKt8NI9tebzmEthMnfVgG3i/XeECkMPS+ibVZjZ6mNekpbbUmkNWuIN2yHsb/mBPyZke4nlI4YqIdFPgKuoyQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.1.tgz", + "integrity": "sha512-WQFLZ9c42ECqEjwg/GHHsouij3pzLXkFdz0UxHa/0OM12LzvX7DzedlY0SIEly2v18YZLRhCRoHZDxbBSWoGYg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.1.tgz", + "integrity": "sha512-BLoiyHDOWoS3uccNSADMza6V6vCNiphi94tQlVIL5de+r6r/CCQuNnerf+1g2mnk2b6edp5dk0nhdZ7aEjOBsA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.1.tgz", + "integrity": "sha512-w2l3UnlgYTNNU+Z6wOR8YdaioqfEnwPjIsJ66KxKAf0p+AuL2FHeTX6qvM+p/Ue3XPBVNyVSfCrfZiQh7vZHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.1.tgz", + "integrity": "sha512-Am9H+TGLomPGkBnaPWie4F3x+yQ2rr4Bk2jpwy+iV+Gel9jLAu/KqT8k3X4jxFPW6Zf8OMnehyutsd+eHoq1WQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", + "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tanstack/query-core": { + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.66.0.tgz", + "integrity": "sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.65.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.65.0.tgz", + "integrity": "sha512-g5y7zc07U9D3esMdqUfTEVu9kMHoIaVBsD0+M3LPdAdD710RpTcLiNvJY1JkYXqkq9+NV+CQoemVNpQPBXVsJg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.66.0.tgz", + "integrity": "sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.66.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-query-devtools": { + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.66.0.tgz", + "integrity": "sha512-uB57wA2YZaQ2fPcFW0E9O1zAGDGSbRKRx84uMk/86VyU9jWVxvJ3Uzp+zNm+nZJYsuekCIo2opTdgNuvM3cKgA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-devtools": "5.65.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.66.0", + "react": "^18 || ^19" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==", + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.12.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-datepicker": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-6.2.0.tgz", + "integrity": "sha512-+JtO4Fm97WLkJTH8j8/v3Ldh7JCNRwjMYjRaKh4KHH0M3jJoXtwiD3JBCsdlg3tsFIw9eQSqyAPeVDN2H2oM9Q==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.2", + "@types/react": "*", + "date-fns": "^3.3.1" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001696", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", + "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.4.tgz", + "integrity": "sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.0", + "use-sync-external-store": "^1.2.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/depcheck": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.7.tgz", + "integrity": "sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@vue/compiler-sfc": "^3.3.4", + "callsite": "^1.0.0", + "camelcase": "^6.3.0", + "cosmiconfig": "^7.1.0", + "debug": "^4.3.4", + "deps-regex": "^0.2.0", + "findup-sync": "^5.0.0", + "ignore": "^5.2.4", + "is-core-module": "^2.12.0", + "js-yaml": "^3.14.1", + "json5": "^2.2.3", + "lodash": "^4.17.21", + "minimatch": "^7.4.6", + "multimatch": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "readdirp": "^3.6.0", + "require-package-name": "^2.0.1", + "resolve": "^1.22.3", + "resolve-from": "^5.0.0", + "semver": "^7.5.4", + "yargs": "^16.2.0" + }, + "bin": { + "depcheck": "bin/depcheck.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/depcheck/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/depcheck/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/depcheck/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/depcheck/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/depcheck/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/deps-regex": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deps-regex/-/deps-regex-0.2.0.tgz", + "integrity": "sha512-PwuBojGMQAYbWkMXOY9Pd/NWCDNHVH12pnS7WHqZkTSeMESe4hwnKKRp0yR87g37113x4JPbo/oIvXY+s/f56Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", + "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.474.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", + "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/next-themes": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.4.tgz", + "integrity": "sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-code-block": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/react-code-block/-/react-code-block-1.1.1.tgz", + "integrity": "sha512-32FWIZe5YBN7if9VP4+R2IFOWCzko2/OBGoTZE3Wjn9G0W8kMhN2CvwXcCKjw6DCKLwtrVmoCQCywPAlV+P9pg==", + "license": "MIT", + "peerDependencies": { + "prism-react-renderer": "^2", + "react": "^18", + "react-dom": "^18" + } + }, + "node_modules/react-datepicker": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-8.0.0.tgz", + "integrity": "sha512-OmWkFx3BGPXQhBdhFCZyfqR6n2Z5T3WaEXQxz0tdTY6zNntklnIDkaDSYsbKwy7TcyBgeoneG5f4sCwmFPJ4eA==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.3", + "clsx": "^2.1.1", + "date-fns": "^4.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/react-datepicker/node_modules/@floating-ui/react": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", + "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.9", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/react-datepicker/node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz", + "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "6.28.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.2.tgz", + "integrity": "sha512-BgFY7+wEGVjHCiqaj2XiUBQ1kkzfg6UoKYwEe0wv+FF+HNPCxtS/MVPvLAPH++EsuCMReZl9RYVGqcHLk5ms3A==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.28.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.2.tgz", + "integrity": "sha512-O81EWqNJWqvlN/a7eTudAdQm0TbI7hw+WIi7OwwMcTn5JMyZ0ibTFNGz+t+Lju0df4LcqowCegcrK22lB1q9Kw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.21.1", + "react-router": "6.28.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.1.tgz", + "integrity": "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.4", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", + "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.1", + "@rollup/rollup-android-arm64": "4.32.1", + "@rollup/rollup-darwin-arm64": "4.32.1", + "@rollup/rollup-darwin-x64": "4.32.1", + "@rollup/rollup-freebsd-arm64": "4.32.1", + "@rollup/rollup-freebsd-x64": "4.32.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", + "@rollup/rollup-linux-arm-musleabihf": "4.32.1", + "@rollup/rollup-linux-arm64-gnu": "4.32.1", + "@rollup/rollup-linux-arm64-musl": "4.32.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", + "@rollup/rollup-linux-riscv64-gnu": "4.32.1", + "@rollup/rollup-linux-s390x-gnu": "4.32.1", + "@rollup/rollup-linux-x64-gnu": "4.32.1", + "@rollup/rollup-linux-x64-musl": "4.32.1", + "@rollup/rollup-win32-arm64-msvc": "4.32.1", + "@rollup/rollup-win32-ia32-msvc": "4.32.1", + "@rollup/rollup-win32-x64-msvc": "4.32.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-react-router-breadcrumbs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/use-react-router-breadcrumbs/-/use-react-router-breadcrumbs-4.0.1.tgz", + "integrity": "sha512-Zbcy0KvWt1JePFcUHJAnTr7Z+AeO9WxmPs6A5Q/xqOVoi8edPKzpqHF87WB2opXwie/QjCxrEyTB7kFg7fgXvQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8", + "react-router-dom": ">=6.0.0" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/pkg/ui/frontend/package.json b/pkg/ui/frontend/package.json new file mode 100644 index 0000000000..bbee773742 --- /dev/null +++ b/pkg/ui/frontend/package.json @@ -0,0 +1,74 @@ +{ + "name": "@grafana/loki-ui", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives", + "preview": "vite preview" + }, + "dependencies": { + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-collapsible": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-hover-card": "^1.1.5", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-popover": "^1.1.5", + "@radix-ui/react-progress": "^1.1.1", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-select": "^2.1.5", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@radix-ui/react-toast": "^1.2.5", + "@radix-ui/react-toggle": "^1.1.1", + "@radix-ui/react-toggle-group": "^1.1.1", + "@radix-ui/react-tooltip": "^1.1.7", + "@tanstack/react-query": "^5.66.0", + "@tanstack/react-query-devtools": "^5.66.0", + "@types/lodash": "^4.17.15", + "@types/react-datepicker": "^6.2.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "date-fns": "^3.3.1", + "lodash": "^4.17.21", + "lucide-react": "^0.474.0", + "next-themes": "^0.4.4", + "prism-react-renderer": "^2.4.1", + "react": "^18.2.0", + "react-code-block": "^1.1.1", + "react-datepicker": "^8.0.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.54.2", + "react-icons": "^5.4.0", + "react-router-dom": "^6.22.0", + "recharts": "^2.15.1", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "use-react-router-breadcrumbs": "^4.0.1", + "zod": "^3.24.1" + }, + "devDependencies": { + "@types/node": "^22.12.0", + "@types/react": "^18.2.0", + "@types/react-dom": "^18.2.0", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.20", + "depcheck": "^1.4.7", + "eslint": "^8.38.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", + "postcss": "^8.5.1", + "tailwindcss": "^3.4.1", + "typescript": "^5.0.2", + "vite": "^5.1.0" + } +} diff --git a/pkg/dataobj/explorer/ui/postcss.config.js b/pkg/ui/frontend/postcss.config.js similarity index 96% rename from pkg/dataobj/explorer/ui/postcss.config.js rename to pkg/ui/frontend/postcss.config.js index 2e7af2b7f1..2aa7205d4b 100644 --- a/pkg/dataobj/explorer/ui/postcss.config.js +++ b/pkg/ui/frontend/postcss.config.js @@ -3,4 +3,4 @@ export default { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/pkg/ui/frontend/src/App.tsx b/pkg/ui/frontend/src/App.tsx new file mode 100644 index 0000000000..9b2551acbe --- /dev/null +++ b/pkg/ui/frontend/src/App.tsx @@ -0,0 +1,28 @@ +import { Routes, Route } from "react-router-dom"; +import { AppLayout } from "./layout/layout"; +import { ThemeProvider } from "./features/theme/components/theme-provider"; +import { QueryProvider } from "./providers/query-provider"; +import { ClusterProvider } from "./contexts/cluster-provider"; +import { routes } from "./config/routes"; + +export default function App() { + return ( + + + + + + {routes.map((route) => ( + + ))} + + + + + + ); +} diff --git a/pkg/dataobj/explorer/ui/src/components/file-metadata/CompressionRatio.tsx b/pkg/ui/frontend/src/components/common/compression-ratio.tsx similarity index 100% rename from pkg/dataobj/explorer/ui/src/components/file-metadata/CompressionRatio.tsx rename to pkg/ui/frontend/src/components/common/compression-ratio.tsx diff --git a/pkg/ui/frontend/src/components/common/copy-button.tsx b/pkg/ui/frontend/src/components/common/copy-button.tsx new file mode 100644 index 0000000000..4fdfd64630 --- /dev/null +++ b/pkg/ui/frontend/src/components/common/copy-button.tsx @@ -0,0 +1,43 @@ +import { Button } from "@/components/ui/button"; +import { Copy, Check } from "lucide-react"; +import { useState } from "react"; +import { cn } from "@/lib/utils"; + +interface CopyButtonProps { + text: string; + className?: string; + onCopy?: () => void; +} + +export function CopyButton({ text, className, onCopy }: CopyButtonProps) { + const [hasCopied, setHasCopied] = useState(false); + + const copyToClipboard = () => { + navigator.clipboard.writeText(text).then(() => { + setHasCopied(true); + onCopy?.(); + setTimeout(() => setHasCopied(false), 2000); + }); + }; + + return ( + + ); +} diff --git a/pkg/ui/frontend/src/components/common/data-table-column-header.tsx b/pkg/ui/frontend/src/components/common/data-table-column-header.tsx new file mode 100644 index 0000000000..de2b1b5c2f --- /dev/null +++ b/pkg/ui/frontend/src/components/common/data-table-column-header.tsx @@ -0,0 +1,83 @@ +import { ChevronsUpDown, ArrowDown, ArrowUp } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { Button } from "../ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "../ui/dropdown-menu"; + +interface DataTableColumnHeaderProps { + title: string; + field: TField; + sortField: string; + sortDirection: "asc" | "desc"; + onSort: (field: TField) => void; +} + +export function DataTableColumnHeader({ + title, + field, + sortField, + sortDirection, + onSort, +}: DataTableColumnHeaderProps) { + const isCurrentSort = sortField === field; + + const handleSort = (direction: "asc" | "desc") => { + if (sortField === field && sortDirection === direction) { + return; + } + onSort(field); + }; + + return ( +
+ + + + + + handleSort("asc")} + className={cn( + "cursor-pointer", + isCurrentSort && sortDirection === "asc" && "bg-accent" + )} + > + + Asc + + handleSort("desc")} + className={cn( + "cursor-pointer", + isCurrentSort && sortDirection === "desc" && "bg-accent" + )} + > + + Desc + + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/common/date-hover.tsx b/pkg/ui/frontend/src/components/common/date-hover.tsx new file mode 100644 index 0000000000..297c54a8a2 --- /dev/null +++ b/pkg/ui/frontend/src/components/common/date-hover.tsx @@ -0,0 +1,47 @@ +import React from "react"; +import { formatDistanceToNow, format } from "date-fns"; +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from "@/components/ui/hover-card"; +interface DateHoverProps { + date: Date; + className?: string; +} + +export const DateHover: React.FC = ({ + date, + className = "", +}) => { + const relativeTime = formatDistanceToNow(date, { addSuffix: true }); + const localTime = format(date, "yyyy-MM-dd HH:mm:ss"); + const utcTime = format( + new Date(date.getTime() + date.getTimezoneOffset() * 60000), + "yyyy-MM-dd HH:mm:ss" + ); + + return ( + + +
{relativeTime}
+
+ +
+
+ + UTC + + {utcTime} +
+
+ + Local + + {localTime} +
+
+
+
+ ); +}; diff --git a/pkg/ui/frontend/src/components/common/index.ts b/pkg/ui/frontend/src/components/common/index.ts new file mode 100644 index 0000000000..fdf5faa0e3 --- /dev/null +++ b/pkg/ui/frontend/src/components/common/index.ts @@ -0,0 +1 @@ +export * from "./multi-select"; diff --git a/pkg/ui/frontend/src/components/common/multi-select.tsx b/pkg/ui/frontend/src/components/common/multi-select.tsx new file mode 100644 index 0000000000..ca2600d96a --- /dev/null +++ b/pkg/ui/frontend/src/components/common/multi-select.tsx @@ -0,0 +1,110 @@ +// src/components/multi-select.tsx + +import * as React from "react"; +import { ChevronsUpDown } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { Button } from "@/components/ui/button"; +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, +} from "@/components/ui/command"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; +import { Checkbox } from "@/components/ui/checkbox"; + +export interface Option { + value: string; + label: string; +} + +interface MultiSelectProps { + options: Option[]; + selected: string[]; + onChange: (values: string[]) => void; + placeholder?: string; + emptyMessage?: string; + className?: string; +} + +export function MultiSelect({ + options = [], + selected = [], + onChange, + placeholder = "Select options...", + emptyMessage = "No options found.", + className, +}: MultiSelectProps) { + const [open, setOpen] = React.useState(false); + + const handleSelect = (value: string) => { + const newSelected = selected.includes(value) + ? selected.filter((item) => item !== value) + : [...selected, value]; + onChange(newSelected); + }; + + const handleSelectAll = () => { + if (selected.length === options.length) { + onChange([]); + } else { + onChange(options.map((option) => option.value)); + } + }; + + const selectedCount = selected.length; + const totalOptions = options.length; + + return ( + + + + + + + + {emptyMessage} + + {totalOptions > 0 && ( + +
+ 0 && selectedCount === totalOptions + } + aria-label="Select all" + /> + Select all +
+
+ )} + {options.map((option) => ( + handleSelect(option.value)} + > +
+ + {option.label} +
+
+ ))} +
+
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/common/refresh-loop.tsx b/pkg/ui/frontend/src/components/common/refresh-loop.tsx new file mode 100644 index 0000000000..fab017a779 --- /dev/null +++ b/pkg/ui/frontend/src/components/common/refresh-loop.tsx @@ -0,0 +1,66 @@ +import { useEffect, useState } from "react"; +import { Button } from "@/components/ui/button"; +import { Loader2, Pause } from "lucide-react"; + +interface RefreshLoopProps { + onRefresh: () => void; + isPaused?: boolean; + isLoading: boolean; + className?: string; +} + +export function RefreshLoop({ + onRefresh, + isPaused = false, + isLoading, + className, +}: RefreshLoopProps) { + const [delayedLoading, setDelayedLoading] = useState(isLoading); + + useEffect(() => { + let timeoutId: NodeJS.Timeout; + if (isLoading) { + setDelayedLoading(true); + } else { + timeoutId = setTimeout(() => { + setDelayedLoading(false); + }, 1000); // Keep loading state for 1 second after isLoading becomes false + } + return () => { + if (timeoutId) clearTimeout(timeoutId); + }; + }, [isLoading]); + + return ( +
+ + {isPaused ? ( + + ) : ( + + )} + + {isPaused + ? "Auto-refresh paused" + : delayedLoading + ? "Refreshing..." + : ``} + +
+ ); +} diff --git a/pkg/dataobj/explorer/ui/src/components/layout/Breadcrumb.tsx b/pkg/ui/frontend/src/components/explorer/breadcrumb.tsx similarity index 59% rename from pkg/dataobj/explorer/ui/src/components/layout/Breadcrumb.tsx rename to pkg/ui/frontend/src/components/explorer/breadcrumb.tsx index 076b806f17..000e707dfd 100644 --- a/pkg/dataobj/explorer/ui/src/components/layout/Breadcrumb.tsx +++ b/pkg/ui/frontend/src/components/explorer/breadcrumb.tsx @@ -1,11 +1,15 @@ -import React from "react"; +import { useSearchParams } from "react-router-dom"; +import React, { useMemo } from "react"; +import { findNodeName } from "@/lib/utils"; +import { useCluster } from "@/contexts/use-cluster"; +import { + BreadcrumbList, + BreadcrumbItem, + BreadcrumbLink, + Breadcrumb, + BreadcrumbSeparator, +} from "@/components/ui/breadcrumb"; import { Link } from "react-router-dom"; -import { useBasename } from "../../contexts/BasenameContext"; - -interface BreadcrumbProps { - parts: string[]; - isLastPartClickable?: boolean; -} const getProviderStyles = ( provider: string @@ -91,29 +95,36 @@ const getProviderStyles = ( } }; -export const Breadcrumb: React.FC = ({ - parts, - isLastPartClickable = false, -}) => { +export function ExplorerBreadcrumb() { const [provider, setProvider] = React.useState(""); - const basename = useBasename(); + // const basename = useBasename(); // TODO: use basename + const { cluster } = useCluster(); + + const nodeName = useMemo(() => { + return findNodeName(cluster?.members, "dataobj-explorer"); + }, [cluster?.members]); React.useEffect(() => { - fetch(`${basename}api/provider`) - .then((res) => res.json()) - .then((data) => setProvider(data.provider)) - .catch(console.error); - }, [basename]); + if (nodeName) { + fetch(`/ui/api/v1/proxy/${nodeName}/dataobj/api/v1/provider`) + .then((res) => res.json()) + .then((data) => setProvider(data.provider)) + .catch(console.error); + } + }, [nodeName]); + const [searchParams] = useSearchParams(); + const path = searchParams.get("path") || ""; + const segments = path.split("/").filter(Boolean); const providerStyles = getProviderStyles(provider); return ( - + + + {segments.length > 0 && } + {segments.map((segment, index) => { + const currentPath = segments.slice(0, index + 1).join("/"); + const isLastItem = index === segments.length - 1; + return ( + + + + {isLastItem ? ( + {segment} + ) : ( + + {segment} + + )} + + + {index < segments.length - 1 && } + + ); + })} + + ); -}; +} diff --git a/pkg/ui/frontend/src/components/explorer/file-list.tsx b/pkg/ui/frontend/src/components/explorer/file-list.tsx new file mode 100644 index 0000000000..243efaef29 --- /dev/null +++ b/pkg/ui/frontend/src/components/explorer/file-list.tsx @@ -0,0 +1,144 @@ +import { useNavigate, useSearchParams, Link } from "react-router-dom"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; +import { FolderIcon, FileIcon, DownloadIcon } from "lucide-react"; +import { ExplorerFile } from "@/types/explorer"; +import { formatBytes } from "@/lib/utils"; +import { DateHover } from "../common/date-hover"; +import { Button } from "../ui/button"; + +interface FileListProps { + current: string; + parent: string | null; + files: ExplorerFile[]; + folders: string[]; +} + +export function FileList({ current, parent, files, folders }: FileListProps) { + const navigate = useNavigate(); + const [, setSearchParams] = useSearchParams(); + + const handleNavigate = (path: string) => { + setSearchParams({ path }); + }; + + const handleFileClick = (file: ExplorerFile) => { + navigate( + `/storage/dataobj/metadata?path=${encodeURIComponent( + current + "/" + file.name + )}` + ); + }; + + return ( +
+ + + + Name + Modified + Size + + + + + {parent !== current && ( + handleNavigate(parent || "")} + > + +
+ + + + .. +
+
+ - + - + +
+ )} + {folders.map((folder) => ( + + handleNavigate(current ? `${current}/${folder}` : folder) + } + > + +
+ + {folder} +
+
+ - + - + +
+ ))} + + {files.map((file) => ( + { + if ((e.target as HTMLElement).closest("a[download]")) { + return; + } + handleFileClick(file); + }} + > + +
+ + {file.name} +
+
+ + + + {formatBytes(file.size)} + + + +
+ ))} +
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/explorer/file-metadata.tsx b/pkg/ui/frontend/src/components/explorer/file-metadata.tsx new file mode 100644 index 0000000000..914d5681b5 --- /dev/null +++ b/pkg/ui/frontend/src/components/explorer/file-metadata.tsx @@ -0,0 +1,549 @@ +import { Link } from "react-router-dom"; +import { DownloadIcon } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { Button } from "@/components/ui/button"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { formatBytes } from "@/lib/utils"; +import { FileMetadataResponse } from "@/types/explorer"; +import { DateHover } from "@/components/common/date-hover"; +import { CopyButton } from "../common/copy-button"; +import { CompressionRatio } from "../common/compression-ratio"; +import { useState } from "react"; + +// Value type to badge styling mapping +const getValueTypeBadgeStyle = (valueType: string): string => { + switch (valueType) { + case "INT64": + return "bg-blue-500/20 text-blue-700 dark:bg-blue-500/30 dark:text-blue-300 hover:bg-blue-500/30"; + case "BYTES": + return "bg-red-500/20 text-red-700 dark:bg-red-500/30 dark:text-red-300 hover:bg-red-500/30"; + case "FLOAT64": + return "bg-purple-500/20 text-purple-700 dark:bg-purple-500/30 dark:text-purple-300 hover:bg-purple-500/30"; + case "BOOL": + return "bg-yellow-500/20 text-yellow-700 dark:bg-yellow-500/30 dark:text-yellow-300 hover:bg-yellow-500/30"; + case "STRING": + return "bg-green-500/20 text-green-700 dark:bg-green-500/30 dark:text-green-300 hover:bg-green-500/30"; + case "TIMESTAMP": + return "bg-orange-500/20 text-orange-700 dark:bg-orange-500/30 dark:text-orange-300 hover:bg-orange-500/30"; + default: + return "bg-gray-500/20 text-gray-700 dark:bg-gray-500/30 dark:text-gray-300 hover:bg-gray-500/30"; + } +}; + +interface FileMetadataViewProps { + metadata: FileMetadataResponse; + filename: string; + downloadUrl: string; +} + +export function FileMetadataView({ + metadata, + filename, + downloadUrl, +}: FileMetadataViewProps) { + const [expandedSectionIndex, setExpandedSectionIndex] = useState< + number | null + >(null); + const [expandedColumns, setExpandedColumns] = useState< + Record + >({}); + + const toggleSection = (sectionIndex: number) => { + setExpandedSectionIndex( + expandedSectionIndex === sectionIndex ? null : sectionIndex + ); + }; + + const toggleColumn = (sectionIndex: number, columnIndex: number) => { + const key = `${sectionIndex}-${columnIndex}`; + setExpandedColumns((prev) => ({ + ...prev, + [key]: !prev[key], + })); + }; + + // Calculate file-level stats + const totalCompressed = metadata.sections.reduce( + (sum, section) => sum + section.totalCompressedSize, + 0 + ); + const totalUncompressed = metadata.sections.reduce( + (sum, section) => sum + section.totalUncompressedSize, + 0 + ); + + // Get stream and log counts from first column of each section + const streamSection = metadata.sections.filter( + (s) => s.type === "SECTION_TYPE_STREAMS" + ); + const logSection = metadata.sections.filter( + (s) => s.type === "SECTION_TYPE_LOGS" + ); + const streamCount = streamSection?.reduce( + (sum, sec) => sum + (sec.columns[0].rows_count || 0), + 0 + ); + const logCount = logSection?.reduce( + (sum, sec) => sum + (sec.columns[0].rows_count || 0), + 0 + ); + + return ( + + + + + + + + ); +} + +// Sub-components + +interface FileHeaderProps { + filename: string; + downloadUrl: string; + lastModified: string; +} + +function FileHeader({ filename, downloadUrl, lastModified }: FileHeaderProps) { + return ( + +
+ + Thor Dataobj File + + +
+ +
+
+
+ + {filename} + + +
+
+ Last Modified: + +
+
+
+
+
+ ); +} + +interface HeadlineStatsProps { + totalCompressed: number; + totalUncompressed: number; + sections: FileMetadataResponse["sections"]; + streamCount?: number; + logCount?: number; +} + +function HeadlineStats({ + totalCompressed, + totalUncompressed, + sections, + streamCount, + logCount, +}: HeadlineStatsProps) { + return ( +
+
+
Compression
+ +
+ {formatBytes(totalCompressed)} → {formatBytes(totalUncompressed)} +
+
+
+
Sections
+
{sections.length}
+
+ {sections.map((s) => s.type).join(", ")} +
+
+ {streamCount && ( +
+
Stream Count
+
+ {streamCount.toLocaleString()} +
+
+ )} + {logCount && ( +
+
Log Count
+
{logCount.toLocaleString()}
+
+ )} +
+ ); +} + +interface SectionsListProps { + sections: FileMetadataResponse["sections"]; + expandedSectionIndex: number | null; + expandedColumns: Record; + onToggleSection: (index: number) => void; + onToggleColumn: (sectionIndex: number, columnIndex: number) => void; +} + +function SectionsList({ + sections, + expandedSectionIndex, + expandedColumns, + onToggleSection, + onToggleColumn, +}: SectionsListProps) { + return ( +
+ {sections.map((section, sectionIndex) => ( +
onToggleSection(sectionIndex)} + onToggleColumn={(columnIndex) => + onToggleColumn(sectionIndex, columnIndex) + } + /> + ))} +
+ ); +} + +interface SectionProps { + section: FileMetadataResponse["sections"][0]; + sectionIndex: number; + isExpanded: boolean; + expandedColumns: Record; + onToggle: () => void; + onToggleColumn: (columnIndex: number) => void; +} + +function Section({ + section, + sectionIndex, + isExpanded, + expandedColumns, + onToggle, + onToggleColumn, +}: SectionProps) { + return ( +
+ + + {isExpanded && ( +
+ + +
+ )} +
+ ); +} + +interface SectionStatsProps { + section: FileMetadataResponse["sections"][0]; +} + +function SectionStats({ section }: SectionStatsProps) { + return ( +
+
+
Compression
+ +
+ {formatBytes(section.totalCompressedSize)} →{" "} + {formatBytes(section.totalUncompressedSize)} +
+
+
+
Column Count
+
{section.columnCount}
+
+
+
Type
+
+ + {section.type} + +
+
+
+ ); +} + +interface ColumnsListProps { + columns: FileMetadataResponse["sections"][0]["columns"]; + sectionIndex: number; + expandedColumns: Record; + onToggleColumn: (columnIndex: number) => void; +} + +function ColumnsList({ + columns, + sectionIndex, + expandedColumns, + onToggleColumn, +}: ColumnsListProps) { + return ( +
+

Columns ({columns.length})

+
+ {columns.map((column, columnIndex) => ( + onToggleColumn(columnIndex)} + /> + ))} +
+
+ ); +} + +interface ColumnProps { + column: FileMetadataResponse["sections"][0]["columns"][0]; + isExpanded: boolean; + onToggle: () => void; +} + +function Column({ column, isExpanded, onToggle }: ColumnProps) { + return ( + + + + {isExpanded && ( + + + {column.pages.length > 0 && } + + )} + + ); +} + +interface ColumnStatsProps { + column: FileMetadataResponse["sections"][0]["columns"][0]; +} + +function ColumnStats({ column }: ColumnStatsProps) { + return ( +
+
+
+ + {column.compression || "NONE"} + +
+
+ +
+
+ {formatBytes(column.compressed_size)} →{" "} + {formatBytes(column.uncompressed_size)} +
+
+
+
Rows
+
+ {column.rows_count.toLocaleString()} +
+
+
+
Values Count
+
+ {column.values_count.toLocaleString()} +
+
+
+
Offset
+
+ {formatBytes(column.metadata_offset)} +
+
+
+ ); +} + +interface ColumnPagesProps { + pages: FileMetadataResponse["sections"][0]["columns"][0]["pages"]; +} + +function ColumnPages({ pages }: ColumnPagesProps) { + return ( +
+
Pages ({pages.length})
+
+ + + + + + + + + + + + {pages.map((page, pageIndex) => ( + + + + + + + + ))} + +
+ # + + Rows + + Values + + Encoding + + Compression +
{pageIndex + 1}{page.rows_count.toLocaleString()}{page.values_count.toLocaleString()} + + {page.encoding} + + +
+ + + ({formatBytes(page.compressed_size)} →{" "} + {formatBytes(page.uncompressed_size)}) + +
+
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/index.ts b/pkg/ui/frontend/src/components/index.ts new file mode 100644 index 0000000000..109feb5c18 --- /dev/null +++ b/pkg/ui/frontend/src/components/index.ts @@ -0,0 +1,5 @@ +export * from "./ui"; +export * from "./shared"; +export * from "./nodes"; +export * from "./common"; +export * from "./version-display"; diff --git a/pkg/ui/frontend/src/components/nodes/data-table-column-header.tsx b/pkg/ui/frontend/src/components/nodes/data-table-column-header.tsx new file mode 100644 index 0000000000..339a7dd2db --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/data-table-column-header.tsx @@ -0,0 +1,83 @@ +import { ChevronsUpDown, ArrowDown, ArrowUp } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { Button } from "../ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "../ui/dropdown-menu"; + +interface DataTableColumnHeaderProps { + title: string; + field: "name" | "target" | "version" | "buildDate"; + sortField: string; + sortDirection: "asc" | "desc"; + onSort: (field: "name" | "target" | "version" | "buildDate") => void; +} + +export function DataTableColumnHeader({ + title, + field, + sortField, + sortDirection, + onSort, +}: DataTableColumnHeaderProps) { + const isCurrentSort = sortField === field; + + const handleSort = (direction: "asc" | "desc") => { + if (sortField === field && sortDirection === direction) { + return; + } + onSort(field); + }; + + return ( +
+ + + + + + handleSort("asc")} + className={cn( + "cursor-pointer", + isCurrentSort && sortDirection === "asc" && "bg-accent" + )} + > + + Asc + + handleSort("desc")} + className={cn( + "cursor-pointer", + isCurrentSort && sortDirection === "desc" && "bg-accent" + )} + > + + Desc + + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/index.ts b/pkg/ui/frontend/src/components/nodes/index.ts new file mode 100644 index 0000000000..801a69cc88 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/index.ts @@ -0,0 +1,12 @@ +export * from "./data-table-column-header"; +export * from "./log-level-select"; +export * from "./node-filters"; +export * from "./node-list"; +export * from "./node-status-indicator"; +export * from "./pprof-controls"; +export * from "./service-state-distribution"; +export * from "./service-table"; +export * from "./status-badge"; +export * from "./storage-type-indicator"; +export * from "./target-distribution-chart"; +export * from "./version-information"; diff --git a/pkg/ui/frontend/src/components/nodes/log-level-select.tsx b/pkg/ui/frontend/src/components/nodes/log-level-select.tsx new file mode 100644 index 0000000000..7349bea551 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/log-level-select.tsx @@ -0,0 +1,88 @@ +"use client"; + +import { Check, AlertCircle } from "lucide-react"; +import { useLogLevel } from "@/hooks/use-log-level"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { cn } from "@/lib/utils"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; + +const LOG_LEVELS = ["debug", "info", "warn", "error"] as const; + +interface LogLevelSelectProps { + nodeName: string; + className?: string; +} + +export function LogLevelSelect({ nodeName, className }: LogLevelSelectProps) { + const { logLevel, isLoading, error, success, setLogLevel } = + useLogLevel(nodeName); + + const handleValueChange = (value: string) => { + setLogLevel(value); + }; + + return ( +
+ + + {/* Success/Error Indicator with Tooltip */} + + + +
+ {success && ( + + )} + {error && ( + + )} +
+
+ + {success && "Log level updated successfully"} + {error && error} + +
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/node-filters.tsx b/pkg/ui/frontend/src/components/nodes/node-filters.tsx new file mode 100644 index 0000000000..2390354e30 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/node-filters.tsx @@ -0,0 +1,92 @@ +import React from "react"; +import { NodeState, ALL_NODE_STATES } from "../../types/cluster"; +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { MultiSelect } from "@/components/common/multi-select"; +import { RefreshCw } from "lucide-react"; + +interface NodeFiltersProps { + nameFilter: string; + targetFilter: string[]; + selectedStates: NodeState[]; + onNameFilterChange: (value: string) => void; + onTargetFilterChange: (value: string[]) => void; + onStatesChange: (states: NodeState[]) => void; + onRefresh: () => void; + availableTargets: string[]; + isLoading?: boolean; +} + +const NodeFilters: React.FC = ({ + nameFilter, + targetFilter, + selectedStates, + onNameFilterChange, + onTargetFilterChange, + onStatesChange, + onRefresh, + availableTargets, +}) => { + const stateOptions = ALL_NODE_STATES.map((state) => ({ + label: state, + value: state, + })); + + const handleStateChange = (values: string[]) => { + onStatesChange(values as NodeState[]); + }; + + return ( +
+
+
+ + ) => + onNameFilterChange(e.target.value) + } + placeholder="Filter by node name..." + className="w-[300px]" + /> + ({ + value: target, + label: target, + }))} + selected={targetFilter} + onChange={onTargetFilterChange} + placeholder="All Targets" + className="w-[300px]" + /> +
+
+
+ + +
+
+ +
+
+ ); +}; + +export default NodeFilters; diff --git a/pkg/ui/frontend/src/components/nodes/node-list.tsx b/pkg/ui/frontend/src/components/nodes/node-list.tsx new file mode 100644 index 0000000000..d9a3f2d93c --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/node-list.tsx @@ -0,0 +1,193 @@ +import React from "react"; +import { formatDistanceToNow, parseISO, isValid } from "date-fns"; +import { Member } from "@/types/cluster"; +import StatusBadge from "@/components/nodes/status-badge"; +import { ReadinessIndicator } from "@/components/nodes/readiness-indicator"; +import { DataTableColumnHeader } from "@/components/common/data-table-column-header"; +import { Button } from "@/components/ui/button"; +import { ArrowRightCircle } from "lucide-react"; +import { useNavigate } from "react-router-dom"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; + +type NodeSortField = "name" | "target" | "version" | "buildDate"; + +interface NodeListProps { + nodes: { [key: string]: Member }; + sortField: NodeSortField; + sortDirection: "asc" | "desc"; + onSort: (field: NodeSortField) => void; +} + +interface NodeRowProps { + name: string; + node: Member; + onNavigate: (name: string) => void; +} + +const formatBuildDate = (dateStr: string) => { + try { + const date = parseISO(dateStr); + if (!isValid(date)) { + return "Invalid date"; + } + return formatDistanceToNow(date, { addSuffix: true }); + } catch (error) { + console.warn("Error parsing date:", dateStr, error); + return "Invalid date"; + } +}; + +const NodeRow: React.FC = ({ name, node, onNavigate }) => { + return ( + onNavigate(name)} + > + {name} + {node.target} + {node.build.version} + {formatBuildDate(node.build.buildDate)} + + + + + + + + + + + ); +}; + +const NodeList: React.FC = ({ + nodes, + sortField, + sortDirection, + onSort, +}) => { + const navigate = useNavigate(); + + const compareDates = (dateStrA: string, dateStrB: string) => { + const dateA = parseISO(dateStrA); + const dateB = parseISO(dateStrB); + if (!isValid(dateA) && !isValid(dateB)) return 0; + if (!isValid(dateA)) return 1; + if (!isValid(dateB)) return -1; + return dateA.getTime() - dateB.getTime(); + }; + + const sortedNodes = Object.entries(nodes).sort(([aKey, a], [bKey, b]) => { + let comparison = 0; + switch (sortField) { + case "name": + comparison = aKey.localeCompare(bKey); + break; + case "target": + comparison = a.target.localeCompare(b.target); + break; + case "version": + comparison = a.build.version.localeCompare(b.build.version); + break; + case "buildDate": + comparison = compareDates(a.build.buildDate, b.build.buildDate); + break; + } + return sortDirection === "asc" ? comparison : -comparison; + }); + + const handleNavigate = (name: string) => { + navigate(`/nodes/${name}`); + }; + + return ( +
+ + + + + + title="Node Name" + field="name" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Target" + field="target" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Version" + field="version" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Build Date" + field="buildDate" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + Status + Ready + Actions + + + + {sortedNodes.map(([name, node]) => ( + + ))} + {sortedNodes.length === 0 && ( + + +
No nodes found
+
+
+ )} +
+
+
+ ); +}; + +export default NodeList; diff --git a/pkg/ui/frontend/src/components/nodes/node-status-indicator.tsx b/pkg/ui/frontend/src/components/nodes/node-status-indicator.tsx new file mode 100644 index 0000000000..41c76b853a --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/node-status-indicator.tsx @@ -0,0 +1,79 @@ +import { useEffect, useState } from "react"; +import { cn } from "@/lib/utils"; + +interface NodeStatusIndicatorProps { + nodeName: string; + className?: string; +} + +interface NodeStatus { + isReady: boolean; + message: string; +} + +export function NodeStatusIndicator({ + nodeName, + className, +}: NodeStatusIndicatorProps) { + const [status, setStatus] = useState({ + isReady: false, + message: "Checking status...", + }); + const [isVisible, setIsVisible] = useState(true); + + useEffect(() => { + const checkStatus = async () => { + try { + const response = await fetch(`/ui/api/v1/proxy/${nodeName}/ready`); + const text = await response.text(); + setStatus({ + isReady: response.ok && text.includes("ready"), + message: response.ok ? "Ready" : text, + }); + } catch (error) { + setStatus({ + isReady: false, + message: + error instanceof Error ? error.message : "Failed to check status", + }); + } + }; + + // Initial check + checkStatus(); + + // Set up the status check interval + const statusInterval = setInterval(checkStatus, 3000); + + // Set up the blink interval + const blinkInterval = setInterval(() => { + setIsVisible((prev) => !prev); + }, 1000); + + // Cleanup intervals on unmount + return () => { + clearInterval(statusInterval); + clearInterval(blinkInterval); + }; + }, [nodeName]); + + return ( +
+ + {status.message} + +
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/pprof-controls.tsx b/pkg/ui/frontend/src/components/nodes/pprof-controls.tsx new file mode 100644 index 0000000000..d8d13ef9a6 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/pprof-controls.tsx @@ -0,0 +1,124 @@ +import { Button } from "@/components/ui/button"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/ui/tooltip"; + +interface PprofControlsProps { + nodeName: string; +} + +const pprofTypes = [ + { + name: "allocs", + description: "A sampling of all past memory allocations", + }, + { + name: "block", + description: + "Stack traces that led to blocking on synchronization primitives", + }, + { + name: "heap", + description: "A sampling of memory allocations of live objects", + }, + { + name: "mutex", + description: "Stack traces of holders of contended mutexes", + }, + { + name: "profile", + urlSuffix: "?seconds=15", + description: "CPU profile (15 seconds)", + displayName: "profile", + }, + { + name: "goroutine", + description: "Stack traces of all current goroutines (debug=1)", + variants: [ + { + suffix: "?debug=0", + label: "Basic", + description: "Basic goroutine info", + }, + { + suffix: "?debug=1", + label: "Standard", + description: "Standard goroutine stack traces", + }, + { + suffix: "?debug=2", + label: "Full", + description: "Full goroutine stack dump with additional info", + }, + ], + }, + { + name: "threadcreate", + description: "Stack traces that led to the creation of new OS threads", + urlSuffix: "?debug=1", + displayName: "threadcreate", + }, + { + name: "trace", + description: "A trace of execution of the current program", + urlSuffix: "?debug=1", + displayName: "trace", + }, +]; + +export function PprofControls({ nodeName }: PprofControlsProps) { + const downloadPprof = (type: string) => { + window.open(`/ui/api/v1/proxy/${nodeName}/debug/pprof/${type}`, "_blank"); + }; + + return ( +
+ Profiling Tools: +
+ {pprofTypes.map((type) => { + if (type.variants) { + return type.variants.map((variant) => ( + + + + + +

{variant.description}

+
+
+ )); + } + + return ( + + + + + +

{type.description}

+
+
+ ); + })} +
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/readiness-indicator.tsx b/pkg/ui/frontend/src/components/nodes/readiness-indicator.tsx new file mode 100644 index 0000000000..570aba6b97 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/readiness-indicator.tsx @@ -0,0 +1,41 @@ +import { cn } from "@/lib/utils"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; + +interface ReadinessIndicatorProps { + isReady?: boolean; + message?: string; + className?: string; +} + +export function ReadinessIndicator({ + isReady, + message, + className, +}: ReadinessIndicatorProps) { + return ( + + + +
+
+
+ + +

+ {message || (isReady ? "Ready" : "Not Ready")} +

+
+ + + ); +} diff --git a/pkg/ui/frontend/src/components/nodes/service-state-distribution.tsx b/pkg/ui/frontend/src/components/nodes/service-state-distribution.tsx new file mode 100644 index 0000000000..760d971dd5 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/service-state-distribution.tsx @@ -0,0 +1,109 @@ +import { useMemo } from "react"; +import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } from "recharts"; +import { NodeState } from "@/types/cluster"; + +const STATE_COLORS: Record = { + Running: "#10B981", // emerald-500 + Starting: "#F59E0B", // amber-500 + New: "#3B82F6", // blue-500 + Stopping: "#F59E0B", // amber-500 + Terminated: "#6B7280", // gray-500 + Failed: "#EF4444", // red-500 +}; + +interface ServiceStateDistributionProps { + services: Array<{ service: string; status: string }>; +} + +export function ServiceStateDistribution({ + services, +}: ServiceStateDistributionProps) { + const data = useMemo(() => { + const stateCounts = services.reduce((acc, { status }) => { + const state = status as NodeState; + acc.set(state, (acc.get(state) || 0) + 1); + return acc; + }, new Map()); + + return Array.from(stateCounts.entries()) + .sort((a, b) => b[1] - a[1]) + .map(([state, count]) => ({ + name: state, + value: count, + color: STATE_COLORS[state], + })); + }, [services]); + + const total = useMemo(() => services.length, [services]); + + if (data.length === 0) { + return null; + } + + return ( +
+
+
+
{total}
+
Services
+
+ + + + {data.map((entry) => ( + + ))} + + { + if (!active || !payload || !payload[0]) return null; + const data = payload[0].payload; + return ( +
+
+ {data.name} + {data.value} +
+ ); + }} + /> + + +
+
+ {data.map((item) => ( +
+
+
+ {item.name} +
+ {item.value} +
+ ))} +
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/service-table.tsx b/pkg/ui/frontend/src/components/nodes/service-table.tsx new file mode 100644 index 0000000000..b9f8b1e0aa --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/service-table.tsx @@ -0,0 +1,64 @@ +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; +import { ScrollArea } from "@/components/ui/scroll-area"; + +interface Service { + service: string; + status: string; +} + +interface ServiceTableProps { + services: Service[]; +} + +const getStatusColor = (status: string) => { + switch (status) { + case "Running": + return "text-green-600 dark:text-green-400"; + case "Starting": + return "text-yellow-600 dark:text-yellow-400"; + case "Failed": + return "text-red-600 dark:text-red-400"; + case "New": + return "text-blue-600 dark:text-blue-400"; + case "Terminated": + return "text-gray-600 dark:text-gray-400"; + default: + return "text-gray-600 dark:text-gray-400"; + } +}; + +export function ServiceTable({ services }: ServiceTableProps) { + return ( + + + + + Service + Status + + + + {services.map((service) => ( + + {service.service} + + {service.status} + + + ))} + +
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/status-badge.tsx b/pkg/ui/frontend/src/components/nodes/status-badge.tsx new file mode 100644 index 0000000000..46e9907c37 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/status-badge.tsx @@ -0,0 +1,109 @@ +import React from "react"; +import { ServiceState } from "../../types/cluster"; +import { Badge } from "@/components/ui/badge"; +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from "@/components/ui/hover-card"; + +interface StatusBadgeProps { + services: ServiceState[]; + error?: string; +} + +const StatusBadge: React.FC = ({ services, error }) => { + const getStatusInfo = () => { + if (error) { + return { + className: + "bg-red-500 dark:bg-red-500/80 hover:bg-red-600 dark:hover:bg-red-500 text-white border-transparent", + tooltip: `Error: ${error}`, + status: "error", + }; + } + + const allRunning = services.every((s) => s.status === "Running"); + const onlyStartingOrRunning = services.every( + (s) => s.status === "Starting" || s.status === "Running" + ); + + if (allRunning) { + return { + className: + "bg-green-500 dark:bg-green-500/80 hover:bg-green-600 dark:hover:bg-green-500 text-white border-transparent", + status: "healthy", + }; + } else if (onlyStartingOrRunning) { + return { + className: + "bg-yellow-500 dark:bg-yellow-500/80 hover:bg-yellow-600 dark:hover:bg-yellow-500 text-white border-transparent", + status: "pending", + }; + } else { + return { + className: + "bg-red-500 dark:bg-red-500/80 hover:bg-red-600 dark:hover:bg-red-500 text-white border-transparent", + status: "unhealthy", + }; + } + }; + + const getStatusColor = (status: string) => { + switch (status) { + case "Running": + return "text-green-600 dark:text-green-400"; + case "Starting": + return "text-yellow-600 dark:text-yellow-400"; + case "Failed": + return "text-red-600 dark:text-red-400"; + case "Terminated": + return "text-gray-600 dark:text-gray-400"; + case "Stopping": + return "text-orange-600 dark:text-orange-400"; + case "New": + return "text-blue-600 dark:text-blue-400"; + default: + return "text-gray-600 dark:text-gray-400"; + } + }; + + const { className } = getStatusInfo(); + + return ( + + + + + +
+
+ Service Status +
+
+ {services.map((service, idx) => ( +
+ {service.service} + + {service.status} + +
+ ))} +
+ {error && ( +
+ {error} +
+ )} +
+
+
+ ); +}; + +export default StatusBadge; diff --git a/pkg/ui/frontend/src/components/nodes/storage-type-indicator.tsx b/pkg/ui/frontend/src/components/nodes/storage-type-indicator.tsx new file mode 100644 index 0000000000..d5853413b7 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/storage-type-indicator.tsx @@ -0,0 +1,73 @@ +import { cn } from "@/lib/utils"; + +interface StorageTypeIndicatorProps { + type: string; + className?: string; +} + +const storageTypeColors: Record = { + // AWS related + aws: "text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400", + "aws-dynamo": + "text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400", + s3: "text-yellow-600 bg-yellow-100 dark:bg-yellow-950 dark:text-yellow-400", + + // Azure + azure: "text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400", + + // GCP related + gcp: "text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400", + "gcp-columnkey": + "text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400", + gcs: "text-blue-600 bg-blue-100 dark:bg-blue-950 dark:text-blue-400", + + // Alibaba Cloud + alibabacloud: + "text-orange-600 bg-orange-100 dark:bg-orange-950 dark:text-orange-400", + + // Local storage types + filesystem: "text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400", + local: "text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400", + + // Database types + boltdb: + "text-emerald-600 bg-emerald-100 dark:bg-emerald-950 dark:text-emerald-400", + cassandra: "text-blue-700 bg-blue-100 dark:bg-blue-950 dark:text-blue-400", + bigtable: "text-red-600 bg-red-100 dark:bg-red-950 dark:text-red-400", + "bigtable-hashed": + "text-red-600 bg-red-100 dark:bg-red-950 dark:text-red-400", + + // Other cloud providers + bos: "text-cyan-600 bg-cyan-100 dark:bg-cyan-950 dark:text-cyan-400", + cos: "text-green-600 bg-green-100 dark:bg-green-950 dark:text-green-400", + swift: + "text-orange-600 bg-orange-100 dark:bg-orange-950 dark:text-orange-400", + + // Special types + inmemory: + "text-purple-600 bg-purple-100 dark:bg-purple-950 dark:text-purple-400", + "grpc-store": + "text-indigo-600 bg-indigo-100 dark:bg-indigo-950 dark:text-indigo-400", +}; + +export function StorageTypeIndicator({ + type, + className, +}: StorageTypeIndicatorProps) { + const normalizedType = type.toLowerCase(); + const colorClasses = + storageTypeColors[normalizedType] || + "text-gray-600 bg-gray-100 dark:bg-gray-800 dark:text-gray-400"; + + return ( + + {normalizedType} + + ); +} diff --git a/pkg/ui/frontend/src/components/nodes/target-distribution-chart.tsx b/pkg/ui/frontend/src/components/nodes/target-distribution-chart.tsx new file mode 100644 index 0000000000..59b5a3d66d --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/target-distribution-chart.tsx @@ -0,0 +1,90 @@ +import { useMemo } from "react"; +import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } from "recharts"; +import { Member } from "@/types/cluster"; + +// Use theme chart colors directly +const getChartColor = (index: number): string => { + return `hsl(var(--chart-${(index % 6) + 1}))`; +}; + +interface TargetDistributionChartProps { + nodes: { [key: string]: Member }; +} + +export function TargetDistributionChart({ + nodes, +}: TargetDistributionChartProps) { + const data = useMemo(() => { + const targetCounts = new Map(); + + Object.values(nodes).forEach((node) => { + const target = node.target || "unknown"; + targetCounts.set(target, (targetCounts.get(target) || 0) + 1); + }); + + return Array.from(targetCounts.entries()) + .sort((a, b) => b[1] - a[1]) + .map(([name, value], index) => ({ + name, + value, + color: getChartColor(index), + })); + }, [nodes]); + + const totalNodes = useMemo(() => { + return Object.keys(nodes).length; + }, [nodes]); + + if (data.length === 0) { + return null; + } + + return ( +
+
+
{totalNodes}
+
Nodes
+
+ + + + {data.map((entry, index) => ( + + ))} + + { + if (!active || !payload || !payload[0]) return null; + const data = payload[0].payload; + return ( +
+
+ {data.name} + {data.value} +
+ ); + }} + /> + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/nodes/version-information.tsx b/pkg/ui/frontend/src/components/nodes/version-information.tsx new file mode 100644 index 0000000000..7e16689168 --- /dev/null +++ b/pkg/ui/frontend/src/components/nodes/version-information.tsx @@ -0,0 +1,97 @@ +import { Card, CardHeader, CardContent, CardTitle } from "@/components/ui/card"; +import { Label } from "@/components/ui/label"; +import { FaApple, FaLinux, FaWindows } from "react-icons/fa"; +import { Badge } from "@/components/ui/badge"; + +interface VersionInformationProps { + build: { + version: string; + branch?: string; + goVersion: string; + }; + edition: string; + os: string; + arch: string; +} + +const getOSIcon = (os: string) => { + const osLower = os.toLowerCase(); + if (osLower.includes("darwin") || osLower.includes("mac")) { + return ; + } + if (osLower.includes("linux")) { + return ; + } + if (osLower.includes("windows")) { + return ; + } + return null; +}; + +const getEditionBadgeStyle = (edition: string): string => { + const editionLower = edition.toLowerCase(); + + if (editionLower === "oss") { + return "bg-blue-500/20 text-blue-700 dark:bg-blue-500/30 dark:text-blue-300 hover:bg-blue-500/30"; + } + if (editionLower === "enterprise") { + return "bg-yellow-500/20 text-yellow-700 dark:bg-yellow-500/30 dark:text-yellow-300 hover:bg-yellow-500/30"; + } + return ""; // default badge style +}; + +export function VersionInformation({ + build, + edition, + os, + arch, +}: VersionInformationProps) { + const osIcon = getOSIcon(os); + + return ( + + + Version Information + + +
+
+
+ +

{build.version}

+
+
+ +

{build.branch}

+
+
+ +

{build.goVersion}

+
+
+
+
+ +
+ + {edition.toUpperCase()} + +
+
+
+ +

{arch}

+
+
+ +
+ {osIcon} +

{os}

+
+
+
+
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/partition-ring-filters.tsx b/pkg/ui/frontend/src/components/ring/partition-ring-filters.tsx new file mode 100644 index 0000000000..c31802c2ff --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/partition-ring-filters.tsx @@ -0,0 +1,97 @@ +import { Input } from "@/components/ui/input"; +import { MultiSelect, Option } from "@/components/common/multi-select"; +import { PartitionInstance, PartitionStates } from "@/types/ring"; +import { parseZoneFromOwner } from "@/lib/ring-utils"; + +interface PartitionRingFiltersProps { + idFilter: string[]; + onIdFilterChange: (value: string[]) => void; + stateFilter: string[]; + onStateFilterChange: (value: string[]) => void; + zoneFilter: string[]; + onZoneFilterChange: (value: string[]) => void; + ownerFilter: string; + onOwnerFilterChange: (value: string) => void; + uniqueStates: string[]; + uniqueZones: string[]; + partitions: PartitionInstance[]; +} + +export function PartitionRingFilters({ + idFilter, + onIdFilterChange, + stateFilter, + onStateFilterChange, + zoneFilter, + onZoneFilterChange, + ownerFilter, + onOwnerFilterChange, + uniqueStates, + partitions, +}: PartitionRingFiltersProps) { + // Create options for each filter type + const stateOptions: Option[] = uniqueStates.map((state) => ({ + value: state, + label: PartitionStates[parseInt(state) as keyof typeof PartitionStates], + })); + + // Get unique zones from all owners + const allZones = new Set(); + partitions.forEach((partition) => { + partition.owner_ids.forEach((owner) => { + const zone = parseZoneFromOwner(owner); + if (zone) allZones.add(zone); + }); + }); + + const zoneOptions: Option[] = Array.from(allZones) + .sort() + .map((zone) => ({ + value: zone, + label: zone, + })); + + // Get unique partition IDs + const uniquePartitions = Array.from( + new Set(partitions.map((p) => p.id.toString())) + ).sort((a, b) => parseInt(a) - parseInt(b)); + + const partitionOptions: Option[] = uniquePartitions.map((id) => ({ + value: id, + label: `Partition ${id}`, + })); + + return ( +
+
+ onOwnerFilterChange(e.target.value)} + className="max-w-sm" + /> +
+ + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/partition-ring-table.tsx b/pkg/ui/frontend/src/components/ring/partition-ring-table.tsx new file mode 100644 index 0000000000..fe5d8f3d0c --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/partition-ring-table.tsx @@ -0,0 +1,335 @@ +import { useMemo } from "react"; +import { Link } from "react-router-dom"; +import { PartitionInstance } from "@/types/ring"; +import { + formatTimestamp, + formatRelativeTime, + getZoneColors, +} from "@/lib/ring-utils"; +import { cn } from "@/lib/utils"; +import { Checkbox } from "@/components/ui/checkbox"; +import { ArrowRightCircle } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; +import { DataTableColumnHeader } from "@/components/common/data-table-column-header"; +import { RateWithTrend } from "./rate-with-trend"; + +export type SortField = + | "id" + | "state" + | "owner" + | "timestamp" + | "zone" + | "uncompressed_rate" + | "compressed_rate"; + +interface SelectAllCheckboxProps { + allPartitions: PartitionInstance[]; + selectedIds: Set; + onChange: (selectedIds: Set) => void; +} + +function SelectAllCheckbox({ + allPartitions, + selectedIds, + onChange, +}: SelectAllCheckboxProps) { + // Get unique partition IDs from all partitions + const uniquePartitionIds = useMemo(() => { + return Array.from(new Set(allPartitions.map((p) => p.id))); + }, [allPartitions]); + + const allSelected = uniquePartitionIds.every((id) => selectedIds.has(id)); + + const handleChange = () => { + if (allSelected) { + // Unselect all partitions + onChange(new Set()); + } else { + // Select all unique partitions + onChange(new Set(uniquePartitionIds)); + } + }; + + return ( + 0 && allSelected} + onCheckedChange={handleChange} + aria-label="Select all partitions" + /> + ); +} + +function getStateColors(state: number): string { + switch (state) { + case 2: // Active + return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200"; + case 1: // Pending + return "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200"; + case 3: // Inactive + return "bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200"; + case 4: // Deleted + return "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200"; + default: // Unknown + return "bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200"; + } +} + +interface PartitionRingTableProps { + partitions: PartitionInstance[]; + selectedPartitions: Set; + onSelectPartition: (id: number) => void; + sortField: SortField; + sortDirection: "asc" | "desc"; + onSort: (field: SortField) => void; + onStateChange: (partitionIds: number[], newState: number) => void; + previousPartitions?: PartitionInstance[]; +} + +const STATE_OPTIONS = [ + { value: 1, label: "Pending" }, + { value: 2, label: "Active" }, + { value: 3, label: "Inactive" }, + { value: 4, label: "Deleted" }, +]; + +export function PartitionRingTable({ + partitions, + selectedPartitions, + onSelectPartition, + sortField, + sortDirection, + onSort, +}: PartitionRingTableProps) { + // Sort partitions according to the current sort field + const sortedPartitions = useMemo(() => { + return [...partitions].sort((a, b) => { + let comparison = 0; + switch (sortField) { + case "uncompressed_rate": { + comparison = (a.uncompressedRate || 0) - (b.uncompressedRate || 0); + break; + } + case "compressed_rate": { + comparison = (a.compressedRate || 0) - (b.compressedRate || 0); + break; + } + case "id": + comparison = a.id - b.id; + break; + case "state": + comparison = a.state - b.state; + break; + case "owner": + comparison = a.owner_id?.localeCompare(b.owner_id || "") || 0; + break; + case "zone": + comparison = (a.zone || "").localeCompare(b.zone || ""); + break; + case "timestamp": + comparison = + new Date(a.state_timestamp).getTime() - + new Date(b.state_timestamp).getTime(); + break; + } + return sortDirection === "asc" ? comparison : -comparison; + }); + }, [partitions, sortField, sortDirection]); + + return ( + <> + + + + + { + const uniqueIds = new Set(partitions.map((p) => p.id)); + uniqueIds.forEach((id) => { + if (newSelection.has(id) !== selectedPartitions.has(id)) { + onSelectPartition(id); + } + }); + }} + /> + + + + title="Owner" + field="owner" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Zone" + field="zone" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Partition ID" + field="id" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="State" + field="state" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Last Update" + field="timestamp" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Uncompressed Rate" + field="uncompressed_rate" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Compressed Rate" + field="compressed_rate" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + + + {sortedPartitions.map((partition) => { + return ( + + + onSelectPartition(partition.id)} + aria-label={`Select partition ${partition.id}`} + /> + + + + {partition.owner_id} + + + + + {partition.zone || "-"} + + + + + {partition.id} + + + + + {STATE_OPTIONS.find((opt) => opt.value === partition.state) + ?.label || "Unknown"} + + + + + {formatRelativeTime(partition.state_timestamp)} + + + + + + + + + +
+ + + +
+
+
+ ); + })} + {sortedPartitions.length === 0 && ( + + +
No partitions found
+
+
+ )} +
+
+ + ); +} diff --git a/pkg/ui/frontend/src/components/ring/partition-state-distribution-chart.tsx b/pkg/ui/frontend/src/components/ring/partition-state-distribution-chart.tsx new file mode 100644 index 0000000000..ef6d53e56d --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/partition-state-distribution-chart.tsx @@ -0,0 +1,100 @@ +import { useMemo } from "react"; +import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } from "recharts"; +import { PartitionInstance, PartitionStates } from "@/types/ring"; + +// Map states to their corresponding hex colors +const getStateColor = (state: number): string => { + switch (state) { + case 2: // Active + return "#22c55e"; // green-500 + case 1: // Pending + return "#3b82f6"; // blue-500 + case 3: // Inactive + return "#eab308"; // yellow-500 + case 4: // Deleted + return "#ef4444"; // red-500 + default: // Unknown + return "#6b7280"; // gray-500 + } +}; + +interface PartitionStateDistributionChartProps { + partitions: PartitionInstance[]; +} + +export function PartitionStateDistributionChart({ + partitions, +}: PartitionStateDistributionChartProps) { + const data = useMemo(() => { + const stateCounts = new Map(); + + partitions.forEach((partition) => { + const state = partition.state; + stateCounts.set(state, (stateCounts.get(state) || 0) + 1); + }); + + return Array.from(stateCounts.entries()) + .sort((a, b) => b[1] - a[1]) + .map(([state, value]) => ({ + name: PartitionStates[state as keyof typeof PartitionStates], + value, + color: getStateColor(state), + })); + }, [partitions]); + + const totalPartitions = useMemo(() => { + return partitions.length; + }, [partitions]); + + if (data.length === 0) { + return null; + } + + return ( +
+
+
{totalPartitions}
+
Partitions
+
+ + + + {data.map((entry) => ( + + ))} + + { + if (!active || !payload || !payload[0]) return null; + const data = payload[0].payload; + return ( +
+
+ {data.name} + {data.value} +
+ ); + }} + /> + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/rate-with-trend.tsx b/pkg/ui/frontend/src/components/ring/rate-with-trend.tsx new file mode 100644 index 0000000000..4266e521a8 --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/rate-with-trend.tsx @@ -0,0 +1,62 @@ +import { useMemo, useRef, useEffect } from "react"; +import { ArrowUpCircle, ArrowDownCircle } from "lucide-react"; +import { formatBytes } from "@/lib/ring-utils"; + +interface RateWithTrendProps { + currentRate: number; + label?: string; + className?: string; +} + +function getRateTrend(current: number, previous: number): "up" | "down" | null { + if (current === undefined || previous === undefined) { + return null; + } + + // Add a small threshold to avoid showing changes for tiny fluctuations + const threshold = 0.1; // 10% threshold + const percentChange = Math.abs((current - previous) / previous); + + if (percentChange < threshold) { + return null; + } + + return current > previous ? "up" : "down"; +} + +function TrendIndicator({ trend }: { trend: "up" | "down" | null }) { + if (!trend) return null; + + return trend === "up" ? ( + + ) : ( + + ); +} + +export function RateWithTrend({ + currentRate, + label, + className, +}: RateWithTrendProps) { + const previousRateRef = useRef(currentRate); + const trend = useMemo( + () => getRateTrend(currentRate, previousRateRef.current), + [currentRate] + ); + + useEffect(() => { + const timeoutId = setTimeout(() => { + previousRateRef.current = currentRate; + }, 2000); // Update previous rate after a delay to show trend + + return () => clearTimeout(timeoutId); + }, [currentRate]); + + return ( + + {formatBytes(currentRate)}/s{label && ` ${label}`} + + + ); +} diff --git a/pkg/ui/frontend/src/components/ring/ring-filters.tsx b/pkg/ui/frontend/src/components/ring/ring-filters.tsx new file mode 100644 index 0000000000..efac975ebf --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/ring-filters.tsx @@ -0,0 +1,63 @@ +import { Search } from "lucide-react"; +import { Input } from "@/components/ui/input"; +import { MultiSelect } from "../common/multi-select"; + +interface RingFiltersProps { + idFilter: string; + onIdFilterChange: (value: string) => void; + stateFilter: string[]; + onStateFilterChange: (value: string[]) => void; + zoneFilter: string[]; + onZoneFilterChange: (value: string[]) => void; + uniqueStates: string[]; + uniqueZones: string[]; +} + +export function RingFilters({ + idFilter, + onIdFilterChange, + stateFilter, + onStateFilterChange, + zoneFilter, + onZoneFilterChange, + uniqueStates, + uniqueZones, +}: RingFiltersProps) { + return ( +
+
+ + onIdFilterChange(e.target.value)} + className="pl-8" + /> +
+ {uniqueStates.length > 0 && ( + ({ + value: state, + label: state, + }))} + selected={stateFilter} + onChange={onStateFilterChange} + placeholder="Filter by State" + className="w-[180px]" + /> + )} + {uniqueZones.length > 0 && ( + ({ + value: zone, + label: zone, + }))} + selected={zoneFilter} + onChange={onZoneFilterChange} + placeholder="Filter by Zone" + className="w-[180px]" + /> + )} +
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/ring-instance-table.tsx b/pkg/ui/frontend/src/components/ring/ring-instance-table.tsx new file mode 100644 index 0000000000..194748d58a --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/ring-instance-table.tsx @@ -0,0 +1,262 @@ +import { Link } from "react-router-dom"; +import { RingInstance } from "@/types/ring"; +import { + formatRelativeTime, + formatTimestamp, + getStateColors, + getZoneColors, +} from "@/lib/ring-utils"; +import { cn } from "@/lib/utils"; +import { Checkbox } from "@/components/ui/checkbox"; +import { ArrowRightCircle } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; +import { DataTableColumnHeader } from "@/components/common/data-table-column-header"; +import { Progress } from "@/components/ui/progress"; + +export type SortField = + | "id" + | "state" + | "address" + | "zone" + | "timestamp" + | "ownership" + | "tokens"; + +interface SelectAllCheckboxProps { + visibleIds: string[]; + selectedIds: Set; + onChange: (selectedIds: Set) => void; +} + +function SelectAllCheckbox({ + visibleIds, + selectedIds, + onChange, +}: SelectAllCheckboxProps) { + const allVisibleSelected = visibleIds.every((id) => selectedIds.has(id)); + + const handleChange = () => { + const visibleIdsSet = new Set(visibleIds); + if (allVisibleSelected) { + // Keep only the instances that are not currently visible + onChange( + new Set([...selectedIds].filter((id) => !visibleIdsSet.has(id))) + ); + } else { + // Add all visible instances to the current selection + onChange(new Set([...selectedIds, ...visibleIds])); + } + }; + + return ( + 0 && allVisibleSelected} + onCheckedChange={handleChange} + aria-label="Select all visible instances" + /> + ); +} + +interface RingInstanceTableProps { + instances: RingInstance[]; + selectedInstances: Set; + onSelectInstance: (instanceId: string) => void; + sortField: SortField; + sortDirection: "asc" | "desc"; + onSort: (field: SortField) => void; + showTokens?: boolean; +} + +export function RingInstanceTable({ + instances, + selectedInstances, + onSelectInstance, + sortField, + sortDirection, + onSort, + showTokens = false, +}: RingInstanceTableProps) { + return ( + + + + + instance.id)} + selectedIds={selectedInstances} + onChange={(newSelection) => { + instances.forEach((instance) => { + if ( + newSelection.has(instance.id) !== + selectedInstances.has(instance.id) + ) { + onSelectInstance(instance.id); + } + }); + }} + /> + + + + title="ID" + field="id" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="State" + field="state" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Address" + field="address" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + {showTokens && ( + + + title="Ownership" + field="ownership" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + )} + + + title="Zone" + field="zone" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + title="Last Heartbeat" + field="timestamp" + sortField={sortField} + sortDirection={sortDirection} + onSort={onSort} + /> + + + + + + {instances.map((instance) => { + const ownership = showTokens ? instance.ownership : 0; + return ( + + + onSelectInstance(instance.id)} + aria-label={`Select instance ${instance.id}`} + /> + + + + {instance.id} + + + + + {instance.state} + + + {instance.address} + {showTokens && ( + +
+
+ {ownership} + + {instance.tokens.length} tokens + +
+ +
+
+ )} + + {instance.zone ? ( + + {instance.zone} + + ) : ( + - + )} + + + + {formatRelativeTime(instance.timestamp)} + + + + + +
+ ); + })} + {instances.length === 0 && ( + + +
No instances found
+
+
+ )} +
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/ring-state-distribution-chart.tsx b/pkg/ui/frontend/src/components/ring/ring-state-distribution-chart.tsx new file mode 100644 index 0000000000..9687f234fa --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/ring-state-distribution-chart.tsx @@ -0,0 +1,102 @@ +import { useMemo } from "react"; +import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } from "recharts"; +import { RingInstance } from "@/types/ring"; + +// Map states to their corresponding hex colors +const getStateColor = (state: string): string => { + switch (state) { + case "ACTIVE": + return "#22c55e"; // green-500 + case "LEAVING": + return "#eab308"; // yellow-500 + case "PENDING": + return "#3b82f6"; // blue-500 + case "JOINING": + return "#a855f7"; // purple-500 + case "LEFT": + return "#ef4444"; // red-500 + default: + return "#6b7280"; // gray-500 + } +}; + +interface RingStateDistributionChartProps { + instances: RingInstance[]; +} + +export function RingStateDistributionChart({ + instances, +}: RingStateDistributionChartProps) { + const data = useMemo(() => { + const stateCounts = new Map(); + + instances.forEach((instance) => { + const state = instance.state || "unknown"; + stateCounts.set(state, (stateCounts.get(state) || 0) + 1); + }); + + return Array.from(stateCounts.entries()) + .sort((a, b) => b[1] - a[1]) + .map(([name, value]) => ({ + name, + value, + color: getStateColor(name), + })); + }, [instances]); + + const totalInstances = useMemo(() => { + return instances.length; + }, [instances]); + + if (data.length === 0) { + return null; + } + + return ( +
+
+
{totalInstances}
+
Instances
+
+ + + + {data.map((entry) => ( + + ))} + + { + if (!active || !payload || !payload[0]) return null; + const data = payload[0].payload; + return ( +
+
+ {data.name} + {data.value} +
+ ); + }} + /> + + +
+ ); +} diff --git a/pkg/ui/frontend/src/components/ring/ring-stats.tsx b/pkg/ui/frontend/src/components/ring/ring-stats.tsx new file mode 100644 index 0000000000..0739d7a3b6 --- /dev/null +++ b/pkg/ui/frontend/src/components/ring/ring-stats.tsx @@ -0,0 +1,87 @@ +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Loader2, Pause } from "lucide-react"; +import { cn } from "@/lib/utils"; + +interface RingStatsProps { + nextRefresh: number; + isPaused: boolean; + onRefresh: () => void; + instancesByState: Record; +} + +export function RingStats({ + nextRefresh, + isPaused, + onRefresh, + instancesByState, +}: RingStatsProps) { + const activeInstances = instancesByState["ACTIVE"] || 0; + const inactiveInstances = Object.entries(instancesByState) + .filter(([state]) => state !== "ACTIVE") + .reduce((sum, [_, count]) => sum + count, 0); + + return ( +
+ + +
+ + Next Ring Update + + +
+
+ +
+ {isPaused ? "Paused" : `${nextRefresh}s`} +
+
+
+ + + + Active Instances + + + +
+ {activeInstances} +
+
+
+ + + + Inactive Instances + + + +
+ {inactiveInstances} +
+
+
+
+ ); +} diff --git a/pkg/ui/frontend/src/components/shared/breadcrumb-nav.tsx b/pkg/ui/frontend/src/components/shared/breadcrumb-nav.tsx new file mode 100644 index 0000000000..22a13fdf5f --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/breadcrumb-nav.tsx @@ -0,0 +1,43 @@ +import * as React from "react"; +import useBreadcrumbs from "use-react-router-breadcrumbs"; +import { Link } from "react-router-dom"; +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbList, + BreadcrumbPage, + BreadcrumbSeparator, +} from "@/components/ui/breadcrumb"; +import { routes } from "@/config/routes"; + +export function BreadcrumbNav() { + const breadcrumbs = useBreadcrumbs(routes, { + disableDefaults: true, + }); + + return ( + + + {breadcrumbs.map(({ match, breadcrumb }, index) => ( + + + {index === breadcrumbs.length - 1 ? ( + {breadcrumb} + ) : ( + + {breadcrumb} + + )} + + {index < breadcrumbs.length - 1 && ( + + )} + + ))} + + + ); +} diff --git a/pkg/ui/frontend/src/components/shared/errors/error-boundary.tsx b/pkg/ui/frontend/src/components/shared/errors/error-boundary.tsx new file mode 100644 index 0000000000..4b20316743 --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/errors/error-boundary.tsx @@ -0,0 +1,51 @@ +import React from "react"; + +interface Props { + children: React.ReactNode; +} + +interface State { + hasError: boolean; + error?: Error; +} + +export class ErrorBoundary extends React.Component { + constructor(props: Props) { + super(props); + this.state = { hasError: false }; + } + + static getDerivedStateFromError(error: Error): State { + return { + hasError: true, + error, + }; + } + + render() { + if (this.state.hasError) { + return ( +
+
+

+ Something went wrong +

+
+
+                {this.state.error?.message}
+              
+
+ +
+
+ ); + } + + return this.props.children; + } +} diff --git a/pkg/ui/frontend/src/components/shared/errors/index.ts b/pkg/ui/frontend/src/components/shared/errors/index.ts new file mode 100644 index 0000000000..90e954fb2e --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/errors/index.ts @@ -0,0 +1 @@ +export * from "./error-boundary"; diff --git a/pkg/ui/frontend/src/components/shared/errors/not-found.tsx b/pkg/ui/frontend/src/components/shared/errors/not-found.tsx new file mode 100644 index 0000000000..f26db2102d --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/errors/not-found.tsx @@ -0,0 +1,99 @@ +import { Button } from "@/components/ui/button"; +import { + Card, + CardContent, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Home, RotateCcw } from "lucide-react"; +import { useNavigate, useSearchParams } from "react-router-dom"; +import { cn } from "@/lib/utils"; + +export function NotFound() { + const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const pathToShow = searchParams.get("path") || window.location.pathname; + + return ( +
+ + +
+
+
+
+ Loki Logo +
+
+
+ + 404 + +
+ +

+ Oops! Page Not Found +

+

+ Even with our powerful log aggregation, we couldn't find this page + in any of our streams! +

+

+ Error: LogQL query returned 0 results for label{" "} + {`{path="${pathToShow}"}`} +

+
+ + + + +
+ +
+ ); +} diff --git a/pkg/ui/frontend/src/components/shared/index.ts b/pkg/ui/frontend/src/components/shared/index.ts new file mode 100644 index 0000000000..afd7f76866 --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/index.ts @@ -0,0 +1,3 @@ +export * from "./errors"; +export * from "./breadcrumb-nav"; +export * from "./route-breadcrumbs"; diff --git a/pkg/ui/frontend/src/components/shared/route-breadcrumbs.tsx b/pkg/ui/frontend/src/components/shared/route-breadcrumbs.tsx new file mode 100644 index 0000000000..9a43d52131 --- /dev/null +++ b/pkg/ui/frontend/src/components/shared/route-breadcrumbs.tsx @@ -0,0 +1,11 @@ +import type { BreadcrumbComponentType } from "use-react-router-breadcrumbs"; + +export const NodeBreadcrumb: BreadcrumbComponentType = ({ match }) => { + const nodeName = match.params.nodeName; + return {nodeName}; +}; + +export const RingBreadcrumb: BreadcrumbComponentType = ({ match }) => { + const ringName = match.params.ringName; + return {ringName}; +}; diff --git a/pkg/ui/frontend/src/components/ui/alert.tsx b/pkg/ui/frontend/src/components/ui/alert.tsx new file mode 100644 index 0000000000..5afd41d142 --- /dev/null +++ b/pkg/ui/frontend/src/components/ui/alert.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)) +Alert.displayName = "Alert" + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertTitle.displayName = "AlertTitle" + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertDescription.displayName = "AlertDescription" + +export { Alert, AlertTitle, AlertDescription } diff --git a/pkg/ui/frontend/src/components/ui/badge.tsx b/pkg/ui/frontend/src/components/ui/badge.tsx new file mode 100644 index 0000000000..e87d62bf1a --- /dev/null +++ b/pkg/ui/frontend/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/pkg/ui/frontend/src/components/ui/breadcrumb.tsx b/pkg/ui/frontend/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000000..60e6c96f72 --- /dev/null +++ b/pkg/ui/frontend/src/components/ui/breadcrumb.tsx @@ -0,0 +1,115 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { ChevronRight, MoreHorizontal } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Breadcrumb = React.forwardRef< + HTMLElement, + React.ComponentPropsWithoutRef<"nav"> & { + separator?: React.ReactNode + } +>(({ ...props }, ref) =>